From 562168a558986117bb36e0fa34c11f0507414213 Mon Sep 17 00:00:00 2001 From: xta147 <2038307727@qq.com> Date: Sun, 26 Nov 2023 01:28:14 +0800 Subject: [PATCH] =?UTF-8?q?'=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- grailed-ui-admin-vue3/.editorconfig | 12 + grailed-ui-admin-vue3/.env | 14 + grailed-ui-admin-vue3/.env - 副本.da | 32 + grailed-ui-admin-vue3/.env.base | 19 + grailed-ui-admin-vue3/.env.da | 32 + grailed-ui-admin-vue3/.env.dev | 31 + grailed-ui-admin-vue3/.env.in | 32 + grailed-ui-admin-vue3/.env.nz | 32 + grailed-ui-admin-vue3/.env.pro | 31 + grailed-ui-admin-vue3/.env.pt | 32 + grailed-ui-admin-vue3/.env.uk | 32 + grailed-ui-admin-vue3/.env.us | 32 + grailed-ui-admin-vue3/.eslintignore | 8 + .../.eslintrc-auto-import.json | 259 + grailed-ui-admin-vue3/.eslintrc.js | 71 + grailed-ui-admin-vue3/.gitignore | 12 + grailed-ui-admin-vue3/.prettierignore | 11 + grailed-ui-admin-vue3/.stylelintignore | 6 + grailed-ui-admin-vue3/.vscode/extensions.json | 19 + grailed-ui-admin-vue3/.vscode/launch.json | 16 + grailed-ui-admin-vue3/.vscode/settings.json | 167 + grailed-ui-admin-vue3/LICENSE | 21 + grailed-ui-admin-vue3/README.md | 235 + grailed-ui-admin-vue3/build/vite/index.ts | 108 + grailed-ui-admin-vue3/build/vite/optimize.ts | 110 + grailed-ui-admin-vue3/index.html | 147 + grailed-ui-admin-vue3/package.json | 152 + grailed-ui-admin-vue3/postcss.config.js | 5 + grailed-ui-admin-vue3/prettier.config.js | 22 + grailed-ui-admin-vue3/public/favicon.ico | Bin 0 -> 4286 bytes grailed-ui-admin-vue3/public/home.png | Bin 0 -> 74352 bytes grailed-ui-admin-vue3/public/logo.gif | Bin 0 -> 69228 bytes grailed-ui-admin-vue3/public/logo2.png | Bin 0 -> 24783 bytes grailed-ui-admin-vue3/src/App.vue | 57 + .../src/api/infra/apiAccessLog/index.ts | 30 + .../src/api/infra/apiErrorLog/index.ts | 48 + .../src/api/infra/codegen/index.ts | 123 + .../src/api/infra/config/index.ts | 60 + .../src/api/infra/dataSourceConfig/index.ts | 35 + .../src/api/infra/dbDoc/index.ts | 16 + .../src/api/infra/file/index.ts | 17 + .../src/api/infra/fileConfig/index.ts | 61 + .../src/api/infra/job/index.ts | 63 + .../src/api/infra/jobLog/index.ts | 33 + .../src/api/infra/redis/index.ts | 8 + .../src/api/infra/redis/types.ts | 176 + grailed-ui-admin-vue3/src/api/login/index.ts | 64 + .../src/api/login/oauth2/index.ts | 41 + grailed-ui-admin-vue3/src/api/login/types.ts | 28 + .../src/api/mall/product/brand.ts | 61 + .../src/api/mall/product/category.ts | 60 + .../src/api/mall/product/property.ts | 103 + .../src/api/mall/product/spu.ts | 107 + .../combination/combinationActivity.ts | 61 + .../src/api/mall/promotion/coupon.ts | 18 + .../src/api/mall/promotion/couponTemplate.ts | 83 + .../mall/promotion/seckill/seckillActivity.ts | 63 + .../mall/promotion/seckill/seckillConfig.ts | 49 + .../api/mall/trade/delivery/express/index.ts | 40 + .../trade/delivery/expressTemplate/index.ts | 54 + .../mall/trade/delivery/pickUpStore/index.ts | 46 + .../src/api/mall/trade/order/index.ts | 12 + .../api/mall/trade/order/type/orderType.ts | 228 + .../src/api/member/balanceAccount/index.ts | 54 + .../src/api/member/balanceRecord/index.ts | 42 + .../api/member/bankWithdrawalDetail/index.ts | 46 + .../src/api/member/brand/index.ts | 40 + .../src/api/member/category/index.ts | 41 + .../src/api/member/channel/index.ts | 43 + .../src/api/member/channelConfig/index.ts | 40 + .../src/api/member/checkIn/index.ts | 39 + .../src/api/member/combinationConfig/index.ts | 46 + .../src/api/member/combinationRecord/index.ts | 42 + .../src/api/member/combinationReocrd/index.ts | 42 + .../src/api/member/contentCarouse/index.ts | 40 + .../member/continuousSignInConfig/index.ts | 38 + .../src/api/member/countries/index.ts | 41 + .../member/cryptoWithdrawalDetail/index.ts | 42 + .../member/cumulativeSignInConfig/index.ts | 38 + .../src/api/member/customTask/index.ts | 44 + .../src/api/member/dailySignInConfig/index.ts | 38 + .../src/api/member/h5Pages/index.ts | 47 + .../src/api/member/levelConfig/index.ts | 44 + .../src/api/member/messageSession/index.ts | 39 + .../src/api/member/payOrder/index.ts | 65 + .../src/api/member/payOrderExtension/index.ts | 47 + .../src/api/member/product/index.ts | 54 + .../src/api/member/signInRecord/index.ts | 40 + .../src/api/member/tagRelations/index.ts | 37 + .../src/api/member/tags/index.ts | 38 + .../src/api/member/taskComment/index.ts | 50 + .../src/api/member/taskRecord/index.ts | 48 + .../src/api/member/user/index.ts | 94 + .../src/api/member/userBank/index.ts | 45 + .../src/api/member/userCrypto/index.ts | 44 + .../src/api/member/userExtension/index.ts | 45 + .../src/api/member/withdrawal/index.ts | 50 + .../src/api/message/blacklist/index.ts | 37 + .../src/api/message/content/index.ts | 44 + .../src/api/message/memberRemark/index.ts | 38 + .../src/api/message/quickGroup/index.ts | 36 + .../src/api/message/quickReplies/index.ts | 38 + .../src/api/mp/account/index.ts | 46 + .../src/api/mp/autoReply/index.ts | 39 + .../src/api/mp/draft/index.ts | 35 + .../src/api/mp/freePublish/index.ts | 23 + .../src/api/mp/material/index.ts | 16 + .../src/api/mp/menu/index.ts | 26 + .../src/api/mp/message/index.ts | 17 + .../src/api/mp/statistics/index.ts | 33 + grailed-ui-admin-vue3/src/api/mp/tag/index.ts | 60 + .../src/api/mp/user/index.ts | 31 + .../src/api/pay/app/index.ts | 78 + .../src/api/pay/channel/index.ts | 46 + .../src/api/pay/merchant/index.ts | 78 + .../src/api/pay/order/index.ts | 114 + .../src/api/pay/refund/index.ts | 116 + .../src/api/point/config/index.ts | 19 + .../src/api/point/record/index.ts | 47 + .../src/api/point/signInConfig/index.ts | 37 + .../src/api/point/signInRecord/index.ts | 38 + .../src/api/system/area/index.ts | 19 + .../src/api/system/dept/index.ts | 43 + .../src/api/system/dict/dict.data.ts | 49 + .../src/api/system/dict/dict.type.ts | 44 + .../src/api/system/errorCode/index.ts | 40 + .../src/api/system/loginLog/index.ts | 24 + .../src/api/system/mail/account/index.ts | 41 + .../src/api/system/mail/log/index.ts | 30 + .../src/api/system/mail/template/index.ts | 50 + .../src/api/system/menu/index.ts | 49 + .../src/api/system/notice/index.ts | 37 + .../src/api/system/notify/message/index.ts | 48 + .../src/api/system/notify/template/index.ts | 49 + .../src/api/system/oauth2/client.ts | 47 + .../src/api/system/oauth2/token.ts | 22 + .../src/api/system/operatelog/index.ts | 33 + .../src/api/system/permission/index.ts | 42 + .../src/api/system/role/index.ts | 61 + .../src/api/system/sensitiveWord/index.ts | 58 + .../src/api/system/sms/smsChannel/index.ts | 43 + .../src/api/system/sms/smsLog/index.ts | 39 + .../src/api/system/sms/smsTemplate/index.ts | 60 + .../src/api/system/tenant/index.ts | 62 + .../src/api/system/tenantPackage/index.ts | 42 + .../system/translatorDeepl/translatorDeepl.js | 73 + .../src/api/system/user/index.ts | 76 + .../src/api/system/user/profile.ts | 77 + .../src/api/system/user/socialUser.ts | 31 + .../src/assets/audio/Notify.mp3 | Bin 0 -> 24480 bytes .../src/assets/audio/newMsgNotify.mp3 | Bin 0 -> 13252 bytes .../src/assets/audio/recharte_notify.mp3 | Bin 0 -> 42048 bytes .../src/assets/audio/withdrawal_notify.mp3 | Bin 0 -> 41472 bytes .../src/assets/imgs/avatar.gif | Bin 0 -> 6334 bytes .../src/assets/imgs/avatar.jpg | Bin 0 -> 6264 bytes .../src/assets/imgs/logo.png | Bin 0 -> 26131 bytes .../src/assets/imgs/logo2.png | Bin 0 -> 24783 bytes .../src/assets/imgs/profile.jpg | Bin 0 -> 7885 bytes .../src/assets/imgs/wechat.png | Bin 0 -> 1881 bytes grailed-ui-admin-vue3/src/assets/svgs/403.svg | 1 + grailed-ui-admin-vue3/src/assets/svgs/404.svg | 1 + grailed-ui-admin-vue3/src/assets/svgs/500.svg | 1 + .../src/assets/svgs/icon.svg | 3 + .../src/assets/svgs/login-bg.svg | 7 + .../src/assets/svgs/login-box-bg.svg | 1 + .../src/assets/svgs/message.svg | 3 + .../src/assets/svgs/money.svg | 3 + .../src/assets/svgs/peoples.svg | 4 + .../src/assets/svgs/shopping.svg | 3 + .../src/assets/svgs/speaker-wave.svg | 3 + .../src/assets/svgs/speaker-x-mark.svg | 3 + .../src/components/Backtop/index.ts | 3 + .../src/components/Backtop/src/Backtop.vue | 17 + .../src/components/ConfigGlobal/index.ts | 3 + .../ConfigGlobal/src/ConfigGlobal.vue | 63 + .../src/components/ContentDetailWrap/index.ts | 3 + .../src/ContentDetailWrap.vue | 58 + .../src/components/ContentWrap/index.ts | 3 + .../ContentWrap/src/ContentWrap.vue | 34 + .../src/components/CountTo/index.ts | 3 + .../src/components/CountTo/src/CountTo.vue | 182 + .../src/components/Crontab/index.ts | 2 + .../src/components/Crontab/src/Crontab.vue | 1011 + .../src/components/Cropper/index.ts | 4 + .../components/Cropper/src/CopperModal.vue | 261 + .../src/components/Cropper/src/Cropper.vue | 183 + .../components/Cropper/src/CropperAvatar.vue | 140 + .../src/components/Cropper/src/types.ts | 8 + .../src/components/Descriptions/index.ts | 3 + .../Descriptions/src/Descriptions.vue | 163 + .../src/components/Dialog/index.ts | 3 + .../src/components/Dialog/src/Dialog.vue | 138 + .../src/components/DictTag/index.ts | 3 + .../src/components/DictTag/src/DictTag.vue | 60 + .../src/components/DocAlert/index.vue | 34 + .../src/components/Echart/index.ts | 3 + .../src/components/Echart/src/Echart.vue | 115 + .../src/components/Editor/index.ts | 8 + .../src/components/Editor/src/Editor.vue | 202 + .../src/components/Error/index.ts | 3 + .../src/components/Error/src/Error.vue | 58 + .../src/components/Form/index.ts | 15 + .../src/components/Form/src/Form.vue | 307 + .../src/components/Form/src/componentMap.ts | 55 + .../Form/src/components/useRenderCheckbox.tsx | 26 + .../Form/src/components/useRenderRadio.tsx | 26 + .../Form/src/components/useRenderSelect.tsx | 57 + .../src/components/Form/src/helper.ts | 148 + .../src/components/Form/src/types.ts | 17 + .../src/components/Highlight/index.ts | 3 + .../components/Highlight/src/Highlight.vue | 65 + .../src/components/IFrame/index.ts | 3 + .../src/components/IFrame/src/IFrame.vue | 32 + .../src/components/Icon/index.ts | 4 + .../src/components/Icon/src/Icon.vue | 85 + .../src/components/Icon/src/IconSelect.vue | 229 + .../src/components/Icon/src/data.ts | 1961 ++ .../src/components/ImageViewer/index.ts | 33 + .../ImageViewer/src/ImageViewer.vue | 35 + .../src/components/ImageViewer/src/types.ts | 9 + .../src/components/Infotip/index.ts | 3 + .../src/components/Infotip/src/Infotip.vue | 54 + .../src/components/InputPassword/index.ts | 3 + .../InputPassword/src/InputPassword.vue | 152 + .../src/components/Pagination/index.vue | 77 + .../src/components/PhoneNumberInput/index.ts | 0 .../PhoneNumberInput/src/PhoneNumberInput.vue | 49 + .../PhoneNumberInput/src/countryList.json | 492 + .../src/components/Qrcode/index.ts | 3 + .../src/components/Qrcode/src/Qrcode.vue | 253 + .../src/components/RouterSearch/index.vue | 76 + .../src/components/Search/index.ts | 3 + .../src/components/Search/src/Search.vue | 157 + .../src/components/Sticky/index.ts | 3 + .../src/components/Sticky/src/Sticky.vue | 143 + .../src/components/Table/index.ts | 12 + .../src/components/Table/src/Table.vue | 311 + .../src/components/Table/src/helper.ts | 8 + .../src/components/Table/src/types.ts | 26 + .../src/components/Tooltip/index.ts | 3 + .../src/components/Tooltip/src/Tooltip.vue | 17 + .../src/components/UploadFile/index.ts | 5 + .../components/UploadFile/src/UploadFile.vue | 170 + .../components/UploadFile/src/UploadImg.vue | 271 + .../components/UploadFile/src/UploadImgs.vue | 309 + .../src/components/Verifition/index.ts | 3 + .../src/components/Verifition/src/Verify.vue | 441 + .../Verifition/src/Verify/VerifyPoints.vue | 250 + .../Verifition/src/Verify/VerifySlide.vue | 380 + .../components/Verifition/src/Verify/index.ts | 4 + .../components/Verifition/src/utils/ase.ts | 14 + .../components/Verifition/src/utils/util.ts | 102 + .../src/components/XButton/index.ts | 4 + .../src/components/XButton/src/XButton.vue | 50 + .../components/XButton/src/XTextButton.vue | 49 + .../package/designer/ProcessDesigner.vue | 704 + .../package/designer/ProcessViewer.vue | 575 + .../package/designer/index.ts | 8 + .../package/designer/index2.ts | 8 + .../plugins/content-pad/contentPadProvider.js | 423 + .../designer/plugins/content-pad/index.js | 6 + .../package/designer/plugins/defaultEmpty.js | 24 + .../descriptor/activitiDescriptor.json | 994 + .../plugins/descriptor/camundaDescriptor.json | 1010 + .../descriptor/flowableDescriptor.json | 1207 + .../activiti/activitiExtension.js | 83 + .../extension-moddle/activiti/index.js | 11 + .../extension-moddle/camunda/extension.js | 151 + .../plugins/extension-moddle/camunda/index.js | 8 + .../flowable/flowableExtension.js | 83 + .../extension-moddle/flowable/index.js | 10 + .../designer/plugins/palette/CustomPalette.js | 221 + .../package/designer/plugins/palette/index.js | 22 + .../plugins/palette/paletteProvider.js | 213 + .../plugins/translate/customTranslate.js | 44 + .../package/designer/plugins/translate/zh.js | 240 + .../bpmnProcessDesigner/package/index.ts | 11 + .../package/palette/ProcessPalette.vue | 45 + .../package/penal/PropertiesPanel.vue | 211 + .../package/penal/base/ElementBaseInfo.vue | 184 + .../penal/flow-condition/FlowCondition.vue | 194 + .../package/penal/form/ElementForm.vue | 472 + .../package/penal/index.js | 7 + .../penal/listeners/ElementListeners.vue | 419 + .../penal/listeners/UserTaskListeners.vue | 471 + .../package/penal/listeners/template.js | 178 + .../package/penal/listeners/utilSelf.ts | 62 + .../multi-instance/ElementMultiInstance.vue | 259 + .../penal/other/ElementOtherConfig.vue | 55 + .../penal/properties/ElementProperties.vue | 169 + .../penal/signal-message/SignalAndMessage.vue | 113 + .../package/penal/task/ElementTask.vue | 86 + .../task/task-components/ReceiveTask.vue | 125 + .../penal/task/task-components/ScriptTask.vue | 99 + .../penal/task/task-components/UserTask.vue | 98 + .../package/theme/element-variables.scss | 70 + .../package/theme/index.scss | 2 + .../package/theme/process-designer.scss | 161 + .../package/theme/process-panel.scss | 107 + .../bpmnProcessDesigner/package/utils.ts | 77 + .../src/highlight/index.js | 5 + .../modules/custom-renderer/CustomRenderer.js | 14 + .../src/modules/custom-renderer/index.js | 6 + .../src/modules/rules/CustomRules.js | 16 + .../src/modules/rules/index.js | 6 + .../bpmnProcessDesigner/src/translations.ts | 25 + .../src/utils/directive/clickOutSide.js | 39 + .../bpmnProcessDesigner/src/utils/index.js | 10 + .../bpmnProcessDesigner/src/utils/xml2json.js | 50 + grailed-ui-admin-vue3/src/components/index.ts | 6 + .../src/config/axios/config.ts | 28 + .../src/config/axios/errorCode.ts | 6 + .../src/config/axios/index.ts | 54 + .../src/config/axios/service.ts | 225 + grailed-ui-admin-vue3/src/directives/index.ts | 13 + .../src/directives/permission/hasPermi.ts | 27 + .../src/directives/permission/hasRole.ts | 27 + .../src/hooks/event/useScrollTo.ts | 60 + .../src/hooks/web/useCache.ts | 27 + .../src/hooks/web/useConfigGlobal.ts | 9 + .../src/hooks/web/useCrudSchemas.ts | 308 + .../src/hooks/web/useDesign.ts | 18 + .../src/hooks/web/useEmitt.ts | 22 + .../src/hooks/web/useForm.ts | 94 + .../src/hooks/web/useI18n.ts | 53 + .../src/hooks/web/useIcon.ts | 8 + .../src/hooks/web/useIntro.ts | 47 + .../src/hooks/web/useLocale.ts | 35 + .../src/hooks/web/useMessage.ts | 95 + .../src/hooks/web/useNProgress.ts | 33 + .../src/hooks/web/usePageLoading.ts | 18 + .../src/hooks/web/useTable.ts | 223 + .../src/hooks/web/useTimeAgo.ts | 49 + .../src/hooks/web/useTitle.ts | 24 + .../src/hooks/web/useValidator.ts | 62 + .../src/hooks/web/useWatermark.ts | 55 + grailed-ui-admin-vue3/src/layout/Layout.vue | 78 + .../src/layout/components/AppView.vue | 61 + .../src/layout/components/Breadcrumb/index.ts | 3 + .../components/Breadcrumb/src/Breadcrumb.vue | 128 + .../components/Breadcrumb/src/helper.ts | 34 + .../src/layout/components/Collapse/index.ts | 3 + .../components/Collapse/src/Collapse.vue | 36 + .../layout/components/ContextMenu/index.ts | 10 + .../ContextMenu/src/ContextMenu.vue | 76 + .../src/layout/components/Footer/index.ts | 3 + .../layout/components/Footer/src/Footer.vue | 27 + .../layout/components/LocaleDropdown/index.ts | 3 + .../LocaleDropdown/src/LocaleDropdown.vue | 52 + .../src/layout/components/Logo/index.ts | 3 + .../src/layout/components/Logo/src/Logo.vue | 90 + .../src/layout/components/Menu/index.ts | 3 + .../src/layout/components/Menu/src/Menu.vue | 290 + .../Menu/src/components/useRenderMenuItem.tsx | 59 + .../src/components/useRenderMenuTitle.tsx | 22 + .../src/layout/components/Menu/src/helper.ts | 54 + .../src/layout/components/Message/index.ts | 3 + .../layout/components/Message/src/Message.vue | 125 + .../layout/components/NotifyAudio/index.ts | 3 + .../NotifyAudio/src/NotifyAudio.vue | 117 + .../src/layout/components/Screenfull/index.ts | 3 + .../components/Screenfull/src/Screenfull.vue | 32 + .../src/layout/components/Setting/index.ts | 3 + .../layout/components/Setting/src/Setting.vue | 299 + .../src/components/ColorRadioPicker.vue | 67 + .../src/components/InterfaceDisplay.vue | 224 + .../src/components/LayoutRadioPicker.vue | 172 + .../layout/components/SizeDropdown/index.ts | 3 + .../SizeDropdown/src/SizeDropdown.vue | 40 + .../src/layout/components/TabMenu/index.ts | 3 + .../layout/components/TabMenu/src/TabMenu.vue | 240 + .../layout/components/TabMenu/src/helper.ts | 51 + .../src/layout/components/TagsView/index.ts | 3 + .../components/TagsView/src/TagsView.vue | 585 + .../layout/components/TagsView/src/helper.ts | 25 + .../layout/components/ThemeSwitch/index.ts | 3 + .../ThemeSwitch/src/ThemeSwitch.vue | 49 + .../src/layout/components/ToolHeader.vue | 93 + .../src/layout/components/UserInfo/index.ts | 3 + .../components/UserInfo/src/UserInfo.vue | 78 + .../src/layout/components/useRenderLayout.tsx | 306 + grailed-ui-admin-vue3/src/locales/en.ts | 447 + grailed-ui-admin-vue3/src/locales/zh-CN.ts | 455 + grailed-ui-admin-vue3/src/main.ts | 71 + grailed-ui-admin-vue3/src/permission.ts | 70 + .../src/plugins/animate.css/index.ts | 1 + .../src/plugins/echarts/index.ts | 45 + .../src/plugins/elementPlus/index.ts | 17 + .../src/plugins/formCreate/index.ts | 43 + .../src/plugins/svgIcon/index.ts | 3 + .../src/plugins/unocss/index.ts | 1 + .../src/plugins/vueI18n/helper.ts | 3 + .../src/plugins/vueI18n/index.ts | 42 + grailed-ui-admin-vue3/src/router/index.ts | 28 + .../src/router/modules/remaining.ts | 311 + grailed-ui-admin-vue3/src/store/index.ts | 10 + .../src/store/modules/app.ts | 274 + .../src/store/modules/audio.ts | 15 + .../src/store/modules/dict.ts | 104 + .../src/store/modules/locale.ts | 60 + .../src/store/modules/permission.ts | 67 + .../src/store/modules/tagsView.ts | 140 + .../src/store/modules/user.ts | 84 + .../src/styles/global.module.scss | 6 + grailed-ui-admin-vue3/src/styles/index.scss | 35 + grailed-ui-admin-vue3/src/styles/theme.scss | 6 + grailed-ui-admin-vue3/src/styles/var.css | 66 + .../src/styles/variables.scss | 4 + .../src/types/components.d.ts | 56 + .../src/types/configGlobal.d.ts | 4 + .../src/types/contextMenu.d.ts | 7 + .../src/types/descriptions.d.ts | 13 + .../src/types/elementPlus.d.ts | 3 + grailed-ui-admin-vue3/src/types/form.d.ts | 44 + grailed-ui-admin-vue3/src/types/icon.d.ts | 5 + grailed-ui-admin-vue3/src/types/infoTip.d.ts | 4 + grailed-ui-admin-vue3/src/types/layout.d.ts | 1 + .../src/types/localeDropdown.d.ts | 10 + grailed-ui-admin-vue3/src/types/qrcode.d.ts | 9 + grailed-ui-admin-vue3/src/types/table.d.ts | 44 + grailed-ui-admin-vue3/src/types/theme.d.ts | 16 + grailed-ui-admin-vue3/src/utils/Logger.ts | 100 + grailed-ui-admin-vue3/src/utils/auth.ts | 92 + grailed-ui-admin-vue3/src/utils/color.ts | 153 + grailed-ui-admin-vue3/src/utils/constants.ts | 292 + grailed-ui-admin-vue3/src/utils/dict.ts | 198 + grailed-ui-admin-vue3/src/utils/domUtils.ts | 289 + grailed-ui-admin-vue3/src/utils/download.ts | 38 + grailed-ui-admin-vue3/src/utils/filt.ts | 157 + grailed-ui-admin-vue3/src/utils/formCreate.ts | 54 + grailed-ui-admin-vue3/src/utils/formRules.ts | 7 + grailed-ui-admin-vue3/src/utils/formatTime.ts | 223 + grailed-ui-admin-vue3/src/utils/index.ts | 211 + grailed-ui-admin-vue3/src/utils/is.ts | 105 + grailed-ui-admin-vue3/src/utils/jsencrypt.ts | 31 + grailed-ui-admin-vue3/src/utils/permission.ts | 45 + grailed-ui-admin-vue3/src/utils/propTypes.ts | 28 + .../src/utils/routerHelper.ts | 238 + grailed-ui-admin-vue3/src/utils/tree.ts | 399 + grailed-ui-admin-vue3/src/utils/tsxHelper.ts | 16 + grailed-ui-admin-vue3/src/views/Error/403.vue | 8 + grailed-ui-admin-vue3/src/views/Error/404.vue | 7 + grailed-ui-admin-vue3/src/views/Error/500.vue | 7 + .../src/views/Home/Index.vue | 224 + .../src/views/Home/Index2.vue | 319 + .../src/views/Home/echarts-data.ts | 308 + grailed-ui-admin-vue3/src/views/Home/types.ts | 55 + .../src/views/Login/Login.vue | 104 + .../src/views/Login/components/LoginForm.vue | 266 + .../views/Login/components/LoginFormTitle.vue | 26 + .../src/views/Login/components/MobileForm.vue | 225 + .../src/views/Login/components/QrCodeForm.vue | 30 + .../views/Login/components/RegisterForm.vue | 142 + .../src/views/Login/components/SSOLogin.vue | 199 + .../src/views/Login/components/index.ts | 8 + .../src/views/Login/components/useLogin.ts | 42 + .../src/views/Profile/Index.vue | 64 + .../views/Profile/components/BasicInfo.vue | 90 + .../views/Profile/components/ProfileUser.vue | 99 + .../src/views/Profile/components/ResetPwd.vue | 70 + .../views/Profile/components/UserAvatar.vue | 41 + .../views/Profile/components/UserSocial.vue | 94 + .../src/views/Profile/components/index.ts | 7 + .../src/views/Redirect/Redirect.vue | 28 + .../infra/apiAccessLog/ApiAccessLogDetail.vue | 67 + .../src/views/infra/apiAccessLog/index.vue | 219 + .../infra/apiErrorLog/ApiErrorLogDetail.vue | 81 + .../src/views/infra/apiErrorLog/index.vue | 252 + .../src/views/infra/build/index.vue | 143 + .../src/views/infra/codegen/EditTable.vue | 83 + .../src/views/infra/codegen/ImportTable.vue | 151 + .../src/views/infra/codegen/PreviewCode.vue | 222 + .../codegen/components/BasicInfoForm.vue | 87 + .../codegen/components/ColumInfoForm.vue | 153 + .../codegen/components/GenerateInfoForm.vue | 391 + .../views/infra/codegen/components/index.ts | 4 + .../src/views/infra/codegen/index.vue | 256 + .../src/views/infra/config/ConfigForm.vue | 131 + .../src/views/infra/config/index.vue | 228 + .../dataSourceConfig/DataSourceConfigForm.vue | 111 + .../views/infra/dataSourceConfig/index.vue | 106 + .../src/views/infra/dbDoc/index.vue | 59 + .../src/views/infra/druid/index.vue | 28 + .../src/views/infra/file/FileForm.vue | 104 + .../src/views/infra/file/index.vue | 164 + .../views/infra/fileConfig/FileConfigForm.vue | 195 + .../src/views/infra/fileConfig/index.vue | 217 + .../src/views/infra/job/JobDetail.vue | 73 + .../src/views/infra/job/JobForm.vue | 131 + .../src/views/infra/job/index.vue | 307 + .../views/infra/job/logger/JobLogDetail.vue | 59 + .../src/views/infra/job/logger/index.vue | 200 + .../src/views/infra/redis/index.vue | 268 + .../src/views/infra/server/index.vue | 27 + .../src/views/infra/skywalking/index.vue | 27 + .../src/views/infra/swagger/index.vue | 28 + .../src/views/infra/testDemo/index.vue | 4 + .../src/views/infra/webSocket/index.vue | 118 + .../views/mall/product/brand/BrandForm.vue | 123 + .../src/views/mall/product/brand/index.vue | 180 + .../mall/product/category/CategoryForm.vue | 141 + .../src/views/mall/product/category/index.vue | 147 + .../mall/product/property/PropertyForm.vue | 96 + .../src/views/mall/product/property/index.vue | 170 + .../mall/product/property/value/ValueForm.vue | 105 + .../mall/product/property/value/index.vue | 163 + .../src/views/mall/product/spu/addForm.vue | 189 + .../product/spu/components/BasicInfoForm.vue | 353 + .../spu/components/DescriptionForm.vue | 109 + .../spu/components/OtherSettingsForm.vue | 183 + .../spu/components/ProductAttributes.vue | 119 + .../spu/components/ProductPropertyAddForm.vue | 99 + .../mall/product/spu/components/SkuList.vue | 542 + .../mall/product/spu/components/index.ts | 71 + .../mall/product/spu/components/spu.data.ts | 105 + .../src/views/mall/product/spu/index.vue | 470 + .../combination/CombinationActivityForm.vue | 186 + .../combination/combinationActivity.data.ts | 159 + .../mall/promotion/combination/index.vue | 117 + .../promotion/components/SpuAndSkuList.vue | 112 + .../mall/promotion/components/SpuSelect.vue | 298 + .../views/mall/promotion/components/index.ts | 14 + .../src/views/mall/promotion/coupon/index.vue | 200 + .../mall/promotion/couponTemplate/index.vue | 614 + .../seckill/activity/SeckillActivityForm.vue | 206 + .../mall/promotion/seckill/activity/index.vue | 137 + .../seckill/activity/seckillActivity.data.ts | 259 + .../seckill/config/SeckillConfigForm.vue | 78 + .../mall/promotion/seckill/config/index.vue | 138 + .../seckill/config/seckillConfig.data.ts | 82 + .../trade/delivery/express/ExpressForm.vue | 127 + .../mall/trade/delivery/express/index.vue | 187 + .../expressTemplate/ExpressTemplateForm.vue | 434 + .../trade/delivery/expressTemplate/index.vue | 163 + .../delivery/pickUpStore/PickUpStoreForm.vue | 287 + .../mall/trade/delivery/pickUpStore/index.vue | 201 + .../src/views/mall/trade/order/index.vue | 572 + .../mall/trade/order/tradeOrderDetail.vue | 365 + .../src/views/member/UserAssignRoleForm.vue | 96 + .../src/views/member/UserForm.vue | 203 + .../src/views/member/UserImportForm.vue | 133 + .../balanceAccount/BalanceAccountForm.vue | 117 + .../src/views/member/balanceAccount/index.vue | 229 + .../balanceRecord/BalanceRecordForm.vue | 139 + .../src/views/member/balanceRecord/index.vue | 237 + .../BankWithdrawalDetailForm.vue | 138 + .../member/bankWithdrawalDetail/index.vue | 226 + .../src/views/member/brand/BrandForm.vue | 119 + .../src/views/member/brand/index.vue | 188 + .../views/member/category/CategoryForm.vue | 124 + .../src/views/member/category/index.vue | 214 + .../src/views/member/channel/ChannelForm.vue | 137 + .../src/views/member/channel/index.vue | 223 + .../channelConfig/ChannelConfigForm.vue | 132 + .../src/views/member/channelConfig/index.vue | 262 + .../src/views/member/checkIn/CheckInForm.vue | 105 + .../src/views/member/checkIn/index.vue | 211 + .../CombinationConfigForm.vue | 132 + .../views/member/combinationConfig/index.vue | 256 + .../CombinationRecordForm.vue | 136 + .../views/member/combinationRecord/index.vue | 293 + .../CombinationReocrdForm.vue | 136 + .../views/member/combinationReocrd/index.vue | 293 + .../contentCarouse/ContentCarouseForm.vue | 132 + .../src/views/member/contentCarouse/index.vue | 215 + .../ContinuousSignInConfigForm.vue | 101 + .../member/continuousSignInConfig/index.vue | 184 + .../views/member/countries/CountriesForm.vue | 121 + .../src/views/member/countries/index.vue | 223 + .../CryptoWithdrawalDetailForm.vue | 119 + .../member/cryptoWithdrawalDetail/index.vue | 182 + .../CumulativeSignInConfigForm.vue | 101 + .../member/cumulativeSignInConfig/index.vue | 187 + .../DailySignInConfigForm.vue | 102 + .../views/member/dailySignInConfig/index.vue | 172 + .../src/views/member/financeConfig/index.vue | 128 + .../src/views/member/h5Pages/index.vue | 95 + .../src/views/member/index.vue | 352 + .../member/levelConfig/LevelConfigForm.vue | 134 + .../src/views/member/levelConfig/index.vue | 204 + .../member/customTask/CustomTaskForm.vue | 117 + .../views/member/member/customTask/index.vue | 236 + .../messageSession/MessageSessionForm.vue | 102 + .../src/views/member/messageSession/index.vue | 231 + .../views/member/payOrder/PayOrderApprove.vue | 53 + .../views/member/payOrder/PayOrderForm.vue | 223 + .../src/views/member/payOrder/index.vue | 317 + .../PayOrderExtensionForm.vue | 145 + .../views/member/payOrderExtension/index.vue | 275 + .../src/views/member/product/ProductForm.vue | 140 + .../src/views/member/product/index.vue | 197 + .../member/signInRecord/SignInRecordForm.vue | 118 + .../src/views/member/signInRecord/index.vue | 227 + .../src/views/member/siteConfig/index.vue | 134 + .../member/tagRelations/TagRelationsForm.vue | 96 + .../src/views/member/tagRelations/index.vue | 198 + .../src/views/member/tags/TagsForm.vue | 101 + .../src/views/member/tags/index.vue | 190 + .../member/taskComment/TaskCommentForm.vue | 190 + .../src/views/member/taskComment/index.vue | 363 + .../src/views/member/taskConfig/index.vue | 218 + .../member/taskRecord/TaskRecordForm.vue | 171 + .../src/views/member/taskRecord/index.vue | 205 + .../views/member/user/BalanceAccountTable.vue | 191 + .../views/member/user/BalanceRecordTable.vue | 29 + .../member/user/CombinationConfigTable.vue | 503 + .../src/views/member/user/CustomTaskTable.vue | 60 + .../src/views/member/user/TaskRecordTable.vue | 34 + .../member/user/UserCreditScoreTable.vue | 51 + .../src/views/member/user/UserForm.vue | 278 + .../src/views/member/user/UserLevelTable.vue | 91 + .../views/member/user/UserPasswordTable.vue | 51 + .../user/UserWithdrawalPasswordTable.vue | 52 + .../src/views/member/user/index.vue | 565 + .../views/member/userBank/UserBankForm.vue | 138 + .../src/views/member/userBank/index.vue | 238 + .../member/userCrypto/UserCryptoForm.vue | 138 + .../src/views/member/userCrypto/index.vue | 191 + .../userExtension/UserExtensionForm.vue | 136 + .../src/views/member/userExtension/index.vue | 202 + .../withdrawal/WithdrawalApproveForm.vue | 128 + .../member/withdrawal/WithdrawalForm.vue | 163 + .../src/views/member/withdrawal/index.vue | 329 + .../views/message/blacklist/BlacklistForm.vue | 96 + .../src/views/message/blacklist/index.vue | 184 + .../src/views/message/content/ContentForm.vue | 154 + .../src/views/message/content/index.vue | 266 + .../message/memberRemark/MemberRemarkForm.vue | 101 + .../src/views/message/memberRemark/index.vue | 195 + .../message/quickGroup/QuickGroupForm.vue | 91 + .../src/views/message/quickGroup/index.vue | 186 + .../message/quickReplies/QuickRepliesForm.vue | 143 + .../src/views/message/quickReplies/index.vue | 239 + .../src/views/mp/account/AccountForm.vue | 160 + .../src/views/mp/account/index.vue | 195 + .../mp/autoReply/components/ReplyForm.vue | 80 + .../mp/autoReply/components/ReplyTable.vue | 115 + .../views/mp/autoReply/components/types.ts | 7 + .../src/views/mp/autoReply/index.vue | 241 + .../mp/components/wx-account-select/index.ts | 3 + .../mp/components/wx-account-select/main.vue | 47 + .../views/mp/components/wx-location/index.ts | 3 + .../views/mp/components/wx-location/main.vue | 73 + .../mp/components/wx-material-select/index.ts | 6 + .../mp/components/wx-material-select/main.vue | 279 + .../mp/components/wx-material-select/types.ts | 11 + .../src/views/mp/components/wx-msg/card.scss | 116 + .../views/mp/components/wx-msg/comment.scss | 126 + .../mp/components/wx-msg/components/Msg.vue | 69 + .../components/wx-msg/components/MsgEvent.vue | 49 + .../components/wx-msg/components/MsgList.vue | 62 + .../src/views/mp/components/wx-msg/index.ts | 6 + .../src/views/mp/components/wx-msg/main.vue | 192 + .../src/views/mp/components/wx-msg/types.ts | 17 + .../src/views/mp/components/wx-music/index.ts | 3 + .../src/views/mp/components/wx-music/main.vue | 62 + .../src/views/mp/components/wx-news/index.ts | 3 + .../src/views/mp/components/wx-news/main.vue | 119 + .../wx-reply/components/TabImage.vue | 171 + .../wx-reply/components/TabMusic.vue | 116 + .../wx-reply/components/TabNews.vue | 76 + .../wx-reply/components/TabText.vue | 22 + .../wx-reply/components/TabVideo.vue | 128 + .../wx-reply/components/TabVoice.vue | 160 + .../components/wx-reply/components/types.ts | 54 + .../src/views/mp/components/wx-reply/index.ts | 7 + .../src/views/mp/components/wx-reply/main.vue | 208 + .../mp/components/wx-video-play/index.ts | 3 + .../mp/components/wx-video-play/main.vue | 73 + .../mp/components/wx-voice-play/index.ts | 3 + .../mp/components/wx-voice-play/main.vue | 105 + .../views/mp/draft/components/CoverSelect.vue | 166 + .../views/mp/draft/components/DraftTable.vue | 87 + .../views/mp/draft/components/NewsForm.vue | 304 + .../src/views/mp/draft/components/index.ts | 7 + .../src/views/mp/draft/components/types.ts | 40 + .../src/views/mp/draft/editor-config.ts | 75 + .../src/views/mp/draft/index.vue | 202 + .../src/views/mp/draft/mock.js | 151 + .../src/views/mp/freePublish/index.vue | 336 + .../src/views/mp/hooks/useUpload.ts | 50 + .../mp/material/components/ImageTable.vue | 83 + .../mp/material/components/UploadFile.vue | 74 + .../mp/material/components/UploadVideo.vue | 126 + .../mp/material/components/VideoTable.vue | 59 + .../mp/material/components/VoiceTable.vue | 51 + .../views/mp/material/components/upload.ts | 31 + .../src/views/mp/material/index.vue | 154 + .../views/mp/menu/assets/iphone_backImg.png | Bin 0 -> 34272 bytes .../src/views/mp/menu/assets/menu_foot.png | Bin 0 -> 1348 bytes .../src/views/mp/menu/assets/menu_head.png | Bin 0 -> 12673 bytes .../views/mp/menu/components/MenuEditor.vue | 244 + .../mp/menu/components/MenuPreviewer.vue | 226 + .../views/mp/menu/components/menuOptions.ts | 42 + .../src/views/mp/menu/components/types.ts | 73 + .../src/views/mp/menu/index.vue | 401 + .../src/views/mp/message/MessageTable.vue | 145 + .../src/views/mp/message/index.vue | 152 + .../src/views/mp/statistics/index.vue | 368 + .../src/views/mp/tag/TagForm.vue | 98 + .../src/views/mp/tag/index.vue | 154 + .../src/views/mp/user/UserForm.vue | 102 + .../src/views/mp/user/index.vue | 181 + .../src/views/pay/app/components/AppForm.vue | 130 + .../components/channel/AlipayChannelForm.vue | 316 + .../components/channel/MockChannelForm.vue | 122 + .../components/channel/WeixinChannelForm.vue | 342 + .../src/views/pay/app/index.vue | 452 + .../src/views/pay/merchant/MerchantForm.vue | 113 + .../src/views/pay/merchant/index.vue | 245 + .../src/views/pay/order/OrderDetail.vue | 117 + .../src/views/pay/order/index.vue | 339 + .../src/views/pay/refund/RefundDetail.vue | 117 + .../src/views/pay/refund/index.vue | 344 + .../src/views/report/goview/index.vue | 10 + .../src/views/report/jmreport/index.vue | 13 + .../src/views/system/area/AreaForm.vue | 72 + .../src/views/system/area/index.vue | 75 + .../src/views/system/dept/DeptForm.vue | 173 + .../src/views/system/dept/index.vue | 190 + .../src/views/system/dict/DictTypeForm.vue | 124 + .../views/system/dict/data/DictDataForm.vue | 183 + .../src/views/system/dict/data/index.vue | 210 + .../src/views/system/dict/index.vue | 231 + .../views/system/errorCode/ErrorCodeForm.vue | 112 + .../src/views/system/errorCode/index.vue | 228 + .../views/system/loginlog/LoginLogDetail.vue | 51 + .../src/views/system/loginlog/index.vue | 180 + .../system/mail/account/MailAccountDetail.vue | 28 + .../system/mail/account/MailAccountForm.vue | 68 + .../views/system/mail/account/account.data.ts | 76 + .../src/views/system/mail/account/index.vue | 106 + .../views/system/mail/log/MailLogDetail.vue | 33 + .../src/views/system/mail/log/index.vue | 63 + .../src/views/system/mail/log/log.data.ts | 133 + .../system/mail/template/MailTemplateForm.vue | 74 + .../mail/template/MailTemplateSendForm.vue | 115 + .../src/views/system/mail/template/index.vue | 107 + .../system/mail/template/template.data.ts | 113 + .../src/views/system/menu/MenuForm.vue | 256 + .../src/views/system/menu/index.vue | 214 + .../src/views/system/notice/NoticeForm.vue | 132 + .../src/views/system/notice/index.vue | 175 + .../notify/message/NotifyMessageDetail.vue | 66 + .../src/views/system/notify/message/index.vue | 212 + .../notify/my/MyNotifyMessageDetail.vue | 48 + .../src/views/system/notify/my/index.vue | 218 + .../notify/template/NotifyTemplateForm.vue | 141 + .../template/NotifyTemplateSendForm.vue | 129 + .../views/system/notify/template/index.vue | 235 + .../views/system/oauth2/client/ClientForm.vue | 261 + .../src/views/system/oauth2/client/index.vue | 191 + .../src/views/system/oauth2/token/index.vue | 164 + .../system/operatelog/OperateLogDetail.vue | 82 + .../src/views/system/operatelog/index.vue | 213 + .../views/system/role/RoleAssignMenuForm.vue | 160 + .../system/role/RoleDataPermissionForm.vue | 167 + .../src/views/system/role/RoleForm.vue | 126 + .../src/views/system/role/index.vue | 265 + .../sensitiveWord/SensitiveWordForm.vue | 131 + .../sensitiveWord/SensitiveWordTestForm.vue | 91 + .../src/views/system/sensitiveWord/index.vue | 253 + .../system/sms/channel/SmsChannelForm.vue | 144 + .../src/views/system/sms/channel/index.vue | 202 + .../src/views/system/sms/log/SmsLogDetail.vue | 89 + .../src/views/system/sms/log/index.vue | 268 + .../system/sms/template/SmsTemplateForm.vue | 163 + .../sms/template/SmsTemplateSendForm.vue | 120 + .../src/views/system/sms/template/index.vue | 316 + .../src/views/system/tenant/TenantForm.vue | 160 + .../src/views/system/tenant/index.vue | 239 + .../tenantPackage/TenantPackageForm.vue | 194 + .../src/views/system/tenantPackage/index.vue | 180 + .../views/system/translatorDeepl/index.vue | 245 + .../src/views/system/user/DeptTree.vue | 58 + .../views/system/user/UserAssignRoleForm.vue | 96 + .../src/views/system/user/UserForm.vue | 214 + .../src/views/system/user/UserImportForm.vue | 133 + .../src/views/system/user/index.vue | 358 + grailed-ui-admin-vue3/stylelint.config.js | 233 + grailed-ui-admin-vue3/tsconfig.json | 45 + grailed-ui-admin-vue3/types/components.d.ts | 8 + grailed-ui-admin-vue3/types/custom-types.d.ts | 27 + grailed-ui-admin-vue3/types/env.d.ts | 32 + grailed-ui-admin-vue3/types/global.d.ts | 53 + grailed-ui-admin-vue3/types/router.d.ts | 81 + grailed-ui-admin-vue3/uno.config.ts | 105 + grailed-ui-admin-vue3/vite.config.ts | 81 + grailed-ui-admin-vue3/yarn.lock | 8291 +++++ grailed-ui-go-view/.commitlintrc.js | 3 + grailed-ui-go-view/.env | 15 + grailed-ui-go-view/.eslintignore | 11 + grailed-ui-go-view/.eslintrc.js | 30 + grailed-ui-go-view/.gitignore | 6 + grailed-ui-go-view/.husky/commit-msg | 4 + .../.workflow/branch-pipeline.yml | 51 + .../.workflow/master-pipeline.yml | 49 + grailed-ui-go-view/.workflow/pr-pipeline.yml | 36 + grailed-ui-go-view/LICENSE | 21 + grailed-ui-go-view/Makefile | 25 + grailed-ui-go-view/README.md | 92 + grailed-ui-go-view/build/constant.ts | 41 + grailed-ui-go-view/index.css | 85 + grailed-ui-go-view/index.html | 29 + grailed-ui-go-view/package-lock.json | 9491 ++++++ grailed-ui-go-view/package.json | 85 + grailed-ui-go-view/plop/plopfile.js | 5 + .../plop/store-template/index.d.hbs | 3 + .../plop/store-template/index.hbs | 11 + .../plop/store-template/prompt.js | 45 + grailed-ui-go-view/pnpm-lock.yaml | 6397 ++++ grailed-ui-go-view/prettier.config.js | 12 + grailed-ui-go-view/public/favicon.ico | Bin 0 -> 3098 bytes grailed-ui-go-view/readme/go-view-canvas.png | Bin 0 -> 352381 bytes grailed-ui-go-view/readme/go-view-color.png | Bin 0 -> 223165 bytes grailed-ui-go-view/readme/go-view-doc.png | Bin 0 -> 143556 bytes grailed-ui-go-view/readme/go-view-event.png | Bin 0 -> 159545 bytes grailed-ui-go-view/readme/go-view-fetch.png | Bin 0 -> 156313 bytes grailed-ui-go-view/readme/go-view-filter.png | Bin 0 -> 263102 bytes .../readme/go-view-indexpage.png | Bin 0 -> 170836 bytes grailed-ui-go-view/readme/go-view-qq.png | Bin 0 -> 9874 bytes grailed-ui-go-view/readme/go-view-theme.png | Bin 0 -> 143108 bytes grailed-ui-go-view/readme/logo-poster.png | Bin 0 -> 57171 bytes grailed-ui-go-view/readme/logo-t-y.png | Bin 0 -> 4799 bytes grailed-ui-go-view/readme/logo.png | Bin 0 -> 3282 bytes grailed-ui-go-view/readme/preview.png | Bin 0 -> 49994 bytes grailed-ui-go-view/src/App.vue | 37 + grailed-ui-go-view/src/api/axios.config.ts | 12 + grailed-ui-go-view/src/api/axios.ts | 97 + grailed-ui-go-view/src/api/http.ts | 254 + .../src/api/mock/heatMapData.json | 199 + grailed-ui-go-view/src/api/mock/index.ts | 108 + grailed-ui-go-view/src/api/mock/map.json | 9 + grailed-ui-go-view/src/api/mock/scatter.json | 56 + grailed-ui-go-view/src/api/mock/test.mock.ts | 223 + grailed-ui-go-view/src/api/mock/treemap.json | 50 + grailed-ui-go-view/src/api/path/index.ts | 3 + grailed-ui-go-view/src/api/path/infra.api.ts | 13 + .../src/api/path/project.api.ts | 77 + grailed-ui-go-view/src/api/path/project.d.ts | 40 + grailed-ui-go-view/src/api/path/system.api.ts | 66 + grailed-ui-go-view/src/api/path/system.d.ts | 23 + .../src/assets/images/Error.svg | 255 + .../src/assets/images/canvas/noData.png | Bin 0 -> 10135 bytes .../src/assets/images/canvas/noImage.png | Bin 0 -> 6527 bytes .../src/assets/images/chart/charts/bar_x.png | Bin 0 -> 18479 bytes .../src/assets/images/chart/charts/bar_y.png | Bin 0 -> 16011 bytes .../assets/images/chart/charts/capsule.png | Bin 0 -> 40037 bytes .../src/assets/images/chart/charts/funnel.png | Bin 0 -> 14508 bytes .../assets/images/chart/charts/heatmap.png | Bin 0 -> 28130 bytes .../src/assets/images/chart/charts/line.png | Bin 0 -> 36598 bytes .../images/chart/charts/line_gradient.png | Bin 0 -> 27883 bytes .../chart/charts/line_gradient_single.png | Bin 0 -> 22783 bytes .../chart/charts/line_linear_single.png | Bin 0 -> 35213 bytes .../src/assets/images/chart/charts/map.png | Bin 0 -> 105561 bytes .../assets/images/chart/charts/map_amap.png | Bin 0 -> 67594 bytes .../assets/images/chart/charts/pie-circle.png | Bin 0 -> 31334 bytes .../src/assets/images/chart/charts/pie.png | Bin 0 -> 54785 bytes .../assets/images/chart/charts/process.png | Bin 0 -> 12729 bytes .../src/assets/images/chart/charts/radar.png | Bin 0 -> 37884 bytes .../charts/scatter-logarithmic-regression.png | Bin 0 -> 39718 bytes .../images/chart/charts/scatter-multi.png | Bin 0 -> 63196 bytes .../assets/images/chart/charts/scatter.png | Bin 0 -> 20002 bytes .../assets/images/chart/charts/tree_map.png | Bin 0 -> 9293 bytes .../images/chart/charts/water_WaterPolo.png | Bin 0 -> 18970 bytes .../assets/images/chart/decorates/border.png | Bin 0 -> 5845 bytes .../images/chart/decorates/border01.png | Bin 0 -> 4291 bytes .../images/chart/decorates/border02.png | Bin 0 -> 3824 bytes .../images/chart/decorates/border03.png | Bin 0 -> 3668 bytes .../images/chart/decorates/border04.png | Bin 0 -> 3735 bytes .../images/chart/decorates/border05.png | Bin 0 -> 2537 bytes .../images/chart/decorates/border06.png | Bin 0 -> 2881 bytes .../images/chart/decorates/border07.png | Bin 0 -> 2796 bytes .../images/chart/decorates/border08.png | Bin 0 -> 1957 bytes .../images/chart/decorates/border09.png | Bin 0 -> 2168 bytes .../images/chart/decorates/border10.png | Bin 0 -> 2499 bytes .../images/chart/decorates/border11.png | Bin 0 -> 2106 bytes .../images/chart/decorates/border12.png | Bin 0 -> 2436 bytes .../images/chart/decorates/border13.png | Bin 0 -> 1902 bytes .../assets/images/chart/decorates/clock.png | Bin 0 -> 24901 bytes .../images/chart/decorates/countdown.png | Bin 0 -> 27851 bytes .../images/chart/decorates/decorates01.png | Bin 0 -> 1965 bytes .../images/chart/decorates/decorates02.png | Bin 0 -> 1972 bytes .../images/chart/decorates/decorates03.png | Bin 0 -> 3697 bytes .../images/chart/decorates/decorates04.png | Bin 0 -> 2820 bytes .../images/chart/decorates/decorates05.png | Bin 0 -> 2063 bytes .../images/chart/decorates/decorates06.png | Bin 0 -> 11960 bytes .../images/chart/decorates/flipper-number.png | Bin 0 -> 27933 bytes .../assets/images/chart/decorates/number.png | Bin 0 -> 18890 bytes .../images/chart/decorates/threeEarth01.png | Bin 0 -> 179743 bytes .../assets/images/chart/decorates/time.png | Bin 0 -> 14963 bytes .../images/chart/informations/iframe.png | Bin 0 -> 5847 bytes .../images/chart/informations/photo.png | Bin 0 -> 9499 bytes .../chart/informations/text_barrage.png | Bin 0 -> 22694 bytes .../chart/informations/text_gradient.png | Bin 0 -> 44896 bytes .../images/chart/informations/text_static.png | Bin 0 -> 15922 bytes .../images/chart/informations/video.png | Bin 0 -> 8402 bytes .../images/chart/informations/words_cloud.png | Bin 0 -> 75805 bytes .../images/chart/tables/table_scrollboard.png | Bin 0 -> 6960 bytes .../images/chart/tables/tables_list.png | Bin 0 -> 3816 bytes .../src/assets/images/exception/403.svg | 1 + .../src/assets/images/exception/404.svg | 1 + .../src/assets/images/exception/500.svg | 1 + .../assets/images/exception/developing.svg | 1 + .../src/assets/images/exception/image-404.png | Bin 0 -> 12649 bytes .../assets/images/exception/load-error.svg | 1 + .../src/assets/images/exception/nodata.svg | 1 + .../src/assets/images/exception/texture.png | Bin 0 -> 6290 bytes .../assets/images/exception/theme-color.png | Bin 0 -> 6016 bytes .../src/assets/images/login/input.png | Bin 0 -> 5542 bytes .../src/assets/images/login/login-bg.png | Bin 0 -> 18051 bytes .../src/assets/images/login/one.png | Bin 0 -> 30218 bytes .../src/assets/images/login/three.png | Bin 0 -> 25697 bytes .../src/assets/images/login/two.png | Bin 0 -> 34793 bytes .../src/assets/images/tips/loadingSvg.svg | 19 + grailed-ui-go-view/src/assets/logo.png | Bin 0 -> 11619 bytes .../src/assets/videos/earth.mp4 | Bin 0 -> 1502247 bytes .../src/components/GoAppProvider/index.ts | 3 + .../src/components/GoAppProvider/index.vue | 28 + .../src/components/GoLangSelect/index.ts | 3 + .../src/components/GoLangSelect/index.vue | 32 + .../components/GoLoading/LoadingSkeleton.vue | 6 + .../src/components/GoLoading/index.ts | 17 + .../src/components/GoLoading/index.vue | 16 + .../src/components/GoReload/index.ts | 3 + .../src/components/GoReload/index.vue | 20 + .../src/components/GoSkeleton/index.ts | 3 + .../src/components/GoSkeleton/index.vue | 39 + .../src/components/GoSystemInfo/index.ts | 3 + .../src/components/GoSystemInfo/index.vue | 106 + .../src/components/GoSystemSet/index.d.ts | 12 + .../src/components/GoSystemSet/index.ts | 3 + .../src/components/GoSystemSet/index.vue | 207 + .../src/components/GoThemeSelect/index.ts | 3 + .../src/components/GoThemeSelect/index.vue | 22 + .../src/components/GoUserInfo/index.ts | 3 + .../src/components/GoUserInfo/index.vue | 152 + .../src/components/GoUserInfo/person.png | Bin 0 -> 8927 bytes .../src/components/I18n/index.ts | 3 + .../src/components/I18n/index.vue | 8 + .../components/Pages/ChartGlobImage/index.ts | 3 + .../components/Pages/ChartGlobImage/index.vue | 31 + .../Pages/ChartItemSetting/CollapseItem.vue | 36 + .../Pages/ChartItemSetting/GlobalSetting.vue | 322 + .../GlobalSettingPosition.vue | 29 + .../Pages/ChartItemSetting/NameSetting.vue | 42 + .../ChartItemSetting/PositionSetting.vue | 128 + .../Pages/ChartItemSetting/SettingItem.vue | 32 + .../Pages/ChartItemSetting/SettingItemBox.vue | 59 + .../Pages/ChartItemSetting/SizeSetting.vue | 43 + .../Pages/ChartItemSetting/StylesSetting.vue | 184 + .../Pages/ChartItemSetting/index.ts | 20 + .../src/components/Pages/Flipper/index.ts | 5 + .../src/components/Pages/Flipper/index.vue | 218 + .../Pages/MonacoEditor/EditorWorker.vue | 24 + .../Pages/MonacoEditor/index.hook.ts | 76 + .../components/Pages/MonacoEditor/index.ts | 4 + .../components/Pages/MonacoEditor/index.vue | 92 + .../ThemeColorSelect/components/ColorList.vue | 114 + .../Pages/ThemeColorSelect/index.ts | 3 + .../Pages/ThemeColorSelect/index.vue | 163 + .../components/Plugins/DialogContent/index.ts | 3 + .../Plugins/DialogContent/index.vue | 7 + .../Plugins/LoadingContent/index.ts | 3 + .../Plugins/LoadingContent/index.vue | 9 + .../Plugins/MessageContent/index.ts | 3 + .../Plugins/MessageContent/index.vue | 8 + .../components/Tips/MacOsControlBtn/index.ts | 3 + .../components/Tips/MacOsControlBtn/index.vue | 142 + .../src/components/Verifition/index.ts | 3 + .../src/components/Verifition/src/Verify.vue | 444 + .../Verifition/src/Verify/VerifyPoints.vue | 251 + .../Verifition/src/Verify/VerifySlide.vue | 378 + .../components/Verifition/src/Verify/index.ts | 4 + .../components/Verifition/src/utils/ase.ts | 14 + .../components/Verifition/src/utils/util.ts | 97 + grailed-ui-go-view/src/directives/index.ts | 1 + grailed-ui-go-view/src/enums/editPageEnum.ts | 95 + grailed-ui-go-view/src/enums/eventEnum.ts | 31 + grailed-ui-go-view/src/enums/fileTypeEnum.ts | 10 + grailed-ui-go-view/src/enums/httpEnum.ts | 136 + grailed-ui-go-view/src/enums/pageEnum.ts | 64 + grailed-ui-go-view/src/enums/pluginEnum.ts | 6 + grailed-ui-go-view/src/enums/storageEnum.ts | 14 + grailed-ui-go-view/src/enums/styleEnum.ts | 19 + grailed-ui-go-view/src/hooks/index.ts | 8 + .../src/hooks/useChartDataFetch.hook.ts | 111 + .../src/hooks/useChartDataPondFetch.hook.ts | 115 + grailed-ui-go-view/src/hooks/useCode.hook.ts | 10 + grailed-ui-go-view/src/hooks/useLang.hook.ts | 24 + .../src/hooks/useLifeHandler.hook.ts | 79 + .../src/hooks/usePreviewScale.hook.ts | 218 + .../src/hooks/useSystemInit.hook.ts | 8 + grailed-ui-go-view/src/hooks/useTheme.hook.ts | 50 + grailed-ui-go-view/src/i18n/en/index.ts | 51 + grailed-ui-go-view/src/i18n/en/login.ts | 7 + grailed-ui-go-view/src/i18n/en/project.ts | 17 + grailed-ui-go-view/src/i18n/index.ts | 36 + grailed-ui-go-view/src/i18n/zh/index.ts | 56 + grailed-ui-go-view/src/i18n/zh/login.ts | 7 + grailed-ui-go-view/src/i18n/zh/project.ts | 18 + .../layout/components/LayoutFooter/index.ts | 3 + .../layout/components/LayoutFooter/index.vue | 29 + .../layout/components/LayoutHeader/index.ts | 3 + .../layout/components/LayoutHeader/index.vue | 55 + .../components/LayoutHeaderPro/index.ts | 3 + .../components/LayoutHeaderPro/index.vue | 21 + .../src/layout/components/LayoutMain/index.ts | 3 + .../layout/components/LayoutMain/index.vue | 14 + .../components/LayoutTransitionMain/index.ts | 3 + .../components/LayoutTransitionMain/index.vue | 14 + grailed-ui-go-view/src/layout/index.vue | 7 + .../src/layout/parentLayout.vue | 3 + grailed-ui-go-view/src/main.ts | 56 + .../chartConfiguration/echarts/axis.ts | 56 + .../chartConfiguration/echarts/index.ts | 3 + .../chartConfiguration/echarts/label.ts | 7 + .../chartConfiguration/echarts/line.ts | 18 + .../Charts/Bars/BarCommon/config.ts | 48 + .../Charts/Bars/BarCommon/config.vue | 62 + .../Charts/Bars/BarCommon/data.json | 40 + .../components/Charts/Bars/BarCommon/index.ts | 14 + .../Charts/Bars/BarCommon/index.vue | 79 + .../Charts/Bars/BarCrossrange/config.ts | 48 + .../Charts/Bars/BarCrossrange/config.vue | 75 + .../Charts/Bars/BarCrossrange/data.json | 40 + .../Charts/Bars/BarCrossrange/index.ts | 14 + .../Charts/Bars/BarCrossrange/index.vue | 78 + .../Charts/Bars/CapsuleChart/config.ts | 25 + .../Charts/Bars/CapsuleChart/config.vue | 53 + .../Charts/Bars/CapsuleChart/data.json | 10 + .../Charts/Bars/CapsuleChart/index.ts | 14 + .../Charts/Bars/CapsuleChart/index.vue | 226 + .../packages/components/Charts/Bars/index.ts | 5 + .../Charts/Lines/LineCommon/config.ts | 54 + .../Charts/Lines/LineCommon/config.vue | 74 + .../Charts/Lines/LineCommon/data.json | 40 + .../Charts/Lines/LineCommon/index.ts | 14 + .../Charts/Lines/LineCommon/index.vue | 79 + .../Charts/Lines/LineGradientSingle/config.ts | 65 + .../Lines/LineGradientSingle/config.vue | 74 + .../Charts/Lines/LineGradientSingle/data.json | 33 + .../Charts/Lines/LineGradientSingle/index.ts | 14 + .../Charts/Lines/LineGradientSingle/index.vue | 81 + .../Charts/Lines/LineGradients/config.ts | 92 + .../Charts/Lines/LineGradients/config.vue | 95 + .../Charts/Lines/LineGradients/data.json | 40 + .../Charts/Lines/LineGradients/index.ts | 14 + .../Charts/Lines/LineGradients/index.vue | 79 + .../Charts/Lines/LineLinearSingle/config.ts | 61 + .../Charts/Lines/LineLinearSingle/config.vue | 97 + .../Charts/Lines/LineLinearSingle/data.json | 33 + .../Charts/Lines/LineLinearSingle/index.ts | 14 + .../Charts/Lines/LineLinearSingle/index.vue | 78 + .../packages/components/Charts/Lines/index.ts | 6 + .../components/Charts/Maps/MapAmap/config.ts | 83 + .../components/Charts/Maps/MapAmap/config.vue | 199 + .../components/Charts/Maps/MapAmap/data.json | 19 + .../components/Charts/Maps/MapAmap/index.ts | 14 + .../components/Charts/Maps/MapAmap/index.vue | 130 + .../components/Charts/Maps/MapBase/config.ts | 157 + .../components/Charts/Maps/MapBase/config.vue | 277 + .../components/Charts/Maps/MapBase/data.json | 79 + .../components/Charts/Maps/MapBase/index.ts | 14 + .../components/Charts/Maps/MapBase/index.vue | 152 + .../Maps/MapBase/mapGeojson/110000.json | 1 + .../Maps/MapBase/mapGeojson/120000.json | 1 + .../Maps/MapBase/mapGeojson/130000.json | 1 + .../Maps/MapBase/mapGeojson/140000.json | 1 + .../Maps/MapBase/mapGeojson/150000.json | 1 + .../Maps/MapBase/mapGeojson/210000.json | 1 + .../Maps/MapBase/mapGeojson/220000.json | 1 + .../Maps/MapBase/mapGeojson/230000.json | 1 + .../Maps/MapBase/mapGeojson/310000.json | 1 + .../Maps/MapBase/mapGeojson/320000.json | 1 + .../Maps/MapBase/mapGeojson/330000.json | 1 + .../Maps/MapBase/mapGeojson/340000.json | 1 + .../Maps/MapBase/mapGeojson/350000.json | 1 + .../Maps/MapBase/mapGeojson/360000.json | 1 + .../Maps/MapBase/mapGeojson/370000.json | 1 + .../Maps/MapBase/mapGeojson/410000.json | 1 + .../Maps/MapBase/mapGeojson/420000.json | 1 + .../Maps/MapBase/mapGeojson/430000.json | 1 + .../Maps/MapBase/mapGeojson/440000.json | 1 + .../Maps/MapBase/mapGeojson/450000.json | 1 + .../Maps/MapBase/mapGeojson/460000.json | 1 + .../Maps/MapBase/mapGeojson/500000.json | 1 + .../Maps/MapBase/mapGeojson/510000.json | 1 + .../Maps/MapBase/mapGeojson/520000.json | 1 + .../Maps/MapBase/mapGeojson/530000.json | 1 + .../Maps/MapBase/mapGeojson/540000.json | 1 + .../Maps/MapBase/mapGeojson/610000.json | 1 + .../Maps/MapBase/mapGeojson/620000.json | 1 + .../Maps/MapBase/mapGeojson/630000.json | 1 + .../Maps/MapBase/mapGeojson/640000.json | 1 + .../Maps/MapBase/mapGeojson/650000.json | 1 + .../Maps/MapBase/mapGeojson/710000.json | 1 + .../Maps/MapBase/mapGeojson/810000.json | 1 + .../Maps/MapBase/mapGeojson/820000.json | 1 + .../Charts/Maps/MapBase/mapGeojson/china.json | 1 + .../Charts/Maps/MapBase/mapGeojson/empty.json | 4 + .../Maps/MapBase/mapWithoutHainanIsLands.json | 25711 ++++++++++++++++ .../packages/components/Charts/Maps/index.ts | 4 + .../components/Charts/Mores/Funnel/config.ts | 62 + .../components/Charts/Mores/Funnel/config.vue | 67 + .../components/Charts/Mores/Funnel/data.json | 10 + .../components/Charts/Mores/Funnel/index.ts | 14 + .../components/Charts/Mores/Funnel/index.vue | 41 + .../components/Charts/Mores/Heatmap/config.ts | 61 + .../Charts/Mores/Heatmap/config.vue | 21 + .../components/Charts/Mores/Heatmap/data.json | 199 + .../components/Charts/Mores/Heatmap/index.ts | 14 + .../components/Charts/Mores/Heatmap/index.vue | 92 + .../components/Charts/Mores/Process/config.ts | 61 + .../Charts/Mores/Process/config.vue | 65 + .../components/Charts/Mores/Process/index.ts | 23 + .../components/Charts/Mores/Process/index.vue | 74 + .../components/Charts/Mores/Radar/config.ts | 51 + .../components/Charts/Mores/Radar/config.vue | 145 + .../components/Charts/Mores/Radar/data.json | 20 + .../components/Charts/Mores/Radar/index.ts | 14 + .../components/Charts/Mores/Radar/index.vue | 74 + .../components/Charts/Mores/TreeMap/config.ts | 27 + .../Charts/Mores/TreeMap/config.vue | 17 + .../components/Charts/Mores/TreeMap/data.json | 50 + .../components/Charts/Mores/TreeMap/index.ts | 14 + .../components/Charts/Mores/TreeMap/index.vue | 67 + .../Charts/Mores/WaterPolo/config.ts | 97 + .../Charts/Mores/WaterPolo/config.vue | 71 + .../Charts/Mores/WaterPolo/index.ts | 14 + .../Charts/Mores/WaterPolo/index.vue | 97 + .../packages/components/Charts/Mores/index.ts | 8 + .../Charts/Pies/PieCircle/config.ts | 65 + .../Charts/Pies/PieCircle/config.vue | 92 + .../components/Charts/Pies/PieCircle/index.ts | 15 + .../Charts/Pies/PieCircle/index.vue | 74 + .../Charts/Pies/PieCommon/config.ts | 71 + .../Charts/Pies/PieCommon/config.vue | 88 + .../Charts/Pies/PieCommon/data.json | 33 + .../components/Charts/Pies/PieCommon/index.ts | 14 + .../Charts/Pies/PieCommon/index.vue | 61 + .../packages/components/Charts/Pies/index.ts | 4 + .../Charts/Scatters/ScatterCommon/config.ts | 81 + .../Charts/Scatters/ScatterCommon/config.vue | 55 + .../Charts/Scatters/ScatterCommon/data.json | 110 + .../Charts/Scatters/ScatterCommon/index.ts | 14 + .../Charts/Scatters/ScatterCommon/index.vue | 95 + .../ScatterLogarithmicRegression/config.ts | 93 + .../ScatterLogarithmicRegression/config.vue | 18 + .../ScatterLogarithmicRegression/data.json | 64 + .../ScatterLogarithmicRegression/index.ts | 14 + .../ScatterLogarithmicRegression/index.vue | 73 + .../components/Charts/Scatters/index.ts | 4 + .../components/Charts/Scatters/shard.ts | 15 + .../src/packages/components/Charts/index.d.ts | 18 + .../src/packages/components/Charts/index.ts | 8 + .../Decorates/Borders/Border01/config.ts | 16 + .../Decorates/Borders/Border01/config.vue | 67 + .../Decorates/Borders/Border01/index.ts | 13 + .../Decorates/Borders/Border01/index.vue | 99 + .../Decorates/Borders/Border02/config.ts | 15 + .../Decorates/Borders/Border02/config.vue | 54 + .../Decorates/Borders/Border02/index.ts | 14 + .../Decorates/Borders/Border02/index.vue | 56 + .../Decorates/Borders/Border03/config.ts | 15 + .../Decorates/Borders/Border03/config.vue | 54 + .../Decorates/Borders/Border03/index.ts | 13 + .../Decorates/Borders/Border03/index.vue | 122 + .../Decorates/Borders/Border04/config.ts | 20 + .../Decorates/Borders/Border04/config.vue | 98 + .../Decorates/Borders/Border04/index.ts | 13 + .../Decorates/Borders/Border04/index.vue | 253 + .../Decorates/Borders/Border05/config.ts | 15 + .../Decorates/Borders/Border05/config.vue | 54 + .../Decorates/Borders/Border05/index.ts | 13 + .../Decorates/Borders/Border05/index.vue | 62 + .../Decorates/Borders/Border06/config.ts | 15 + .../Decorates/Borders/Border06/config.vue | 54 + .../Decorates/Borders/Border06/index.ts | 13 + .../Decorates/Borders/Border06/index.vue | 84 + .../Decorates/Borders/Border07/config.ts | 15 + .../Decorates/Borders/Border07/config.vue | 54 + .../Decorates/Borders/Border07/index.ts | 13 + .../Decorates/Borders/Border07/index.vue | 143 + .../Decorates/Borders/Border08/config.ts | 17 + .../Decorates/Borders/Border08/config.vue | 71 + .../Decorates/Borders/Border08/index.ts | 13 + .../Decorates/Borders/Border08/index.vue | 87 + .../Decorates/Borders/Border09/config.ts | 15 + .../Decorates/Borders/Border09/config.vue | 54 + .../Decorates/Borders/Border09/index.ts | 13 + .../Decorates/Borders/Border09/index.vue | 44 + .../Decorates/Borders/Border10/config.ts | 15 + .../Decorates/Borders/Border10/config.vue | 54 + .../Decorates/Borders/Border10/index.ts | 13 + .../Decorates/Borders/Border10/index.vue | 111 + .../Decorates/Borders/Border11/config.ts | 15 + .../Decorates/Borders/Border11/config.vue | 54 + .../Decorates/Borders/Border11/index.ts | 13 + .../Decorates/Borders/Border11/index.vue | 66 + .../Decorates/Borders/Border12/config.ts | 15 + .../Decorates/Borders/Border12/config.vue | 54 + .../Decorates/Borders/Border12/index.ts | 13 + .../Decorates/Borders/Border12/index.vue | 70 + .../Decorates/Borders/Border13/config.ts | 15 + .../Decorates/Borders/Border13/config.vue | 54 + .../Decorates/Borders/Border13/index.ts | 13 + .../Decorates/Borders/Border13/index.vue | 48 + .../components/Decorates/Borders/index.ts | 29 + .../Decorates/Decorates/Decorates01/config.ts | 17 + .../Decorates/Decorates01/config.vue | 69 + .../Decorates/Decorates/Decorates01/index.ts | 13 + .../Decorates/Decorates/Decorates01/index.vue | 47 + .../Decorates/Decorates/Decorates02/config.ts | 16 + .../Decorates/Decorates02/config.vue | 42 + .../Decorates/Decorates/Decorates02/index.ts | 13 + .../Decorates/Decorates/Decorates02/index.vue | 39 + .../Decorates/Decorates/Decorates03/config.ts | 19 + .../Decorates/Decorates03/config.vue | 68 + .../Decorates/Decorates/Decorates03/index.ts | 13 + .../Decorates/Decorates/Decorates03/index.vue | 62 + .../Decorates/Decorates/Decorates04/config.ts | 16 + .../Decorates/Decorates04/config.vue | 51 + .../Decorates/Decorates/Decorates04/index.ts | 13 + .../Decorates/Decorates/Decorates04/index.vue | 53 + .../Decorates/Decorates/Decorates05/config.ts | 15 + .../Decorates/Decorates05/config.vue | 55 + .../Decorates/Decorates/Decorates05/index.ts | 14 + .../Decorates/Decorates/Decorates05/index.vue | 174 + .../Decorates/Decorates/Decorates06/config.ts | 19 + .../Decorates/Decorates06/config.vue | 42 + .../Decorates/Decorates/Decorates06/index.ts | 14 + .../Decorates/Decorates/Decorates06/index.vue | 75 + .../components/Decorates/Decorates/index.ts | 15 + .../Decorates/Mores/Clock/config.ts | 17 + .../Decorates/Mores/Clock/config.vue | 33 + .../components/Decorates/Mores/Clock/index.ts | 14 + .../Decorates/Mores/Clock/index.vue | 102 + .../Decorates/Mores/CountDown/config.ts | 47 + .../Decorates/Mores/CountDown/config.vue | 98 + .../Decorates/Mores/CountDown/index.ts | 13 + .../Decorates/Mores/CountDown/index.vue | 188 + .../Decorates/Mores/FlipperNumber/config.ts | 39 + .../Decorates/Mores/FlipperNumber/config.vue | 72 + .../Decorates/Mores/FlipperNumber/index.ts | 13 + .../Decorates/Mores/FlipperNumber/index.vue | 85 + .../Decorates/Mores/Number/config.ts | 25 + .../Decorates/Mores/Number/config.vue | 96 + .../Decorates/Mores/Number/index.ts | 13 + .../Decorates/Mores/Number/index.vue | 79 + .../Decorates/Mores/TimeCommon/config.ts | 38 + .../Decorates/Mores/TimeCommon/config.vue | 99 + .../Decorates/Mores/TimeCommon/index.ts | 13 + .../Decorates/Mores/TimeCommon/index.vue | 93 + .../components/Decorates/Mores/index.ts | 7 + .../Three/ThreeEarth01/code/Utils/arc.ts | 236 + .../Three/ThreeEarth01/code/Utils/common.ts | 137 + .../ThreeEarth01/code/interfaces/IEvents.ts | 4 + .../ThreeEarth01/code/interfaces/IWord.ts | 6 + .../code/shaders/earth/fragment.fs | 23 + .../ThreeEarth01/code/shaders/earth/vertex.vs | 12 + .../Three/ThreeEarth01/code/world/Assets.ts | 34 + .../Three/ThreeEarth01/code/world/Basic.ts | 62 + .../Three/ThreeEarth01/code/world/Earth.ts | 496 + .../ThreeEarth01/code/world/Resources.ts | 54 + .../Three/ThreeEarth01/code/world/Word.ts | 112 + .../Decorates/Three/ThreeEarth01/config.ts | 17 + .../Decorates/Three/ThreeEarth01/config.vue | 14 + .../Decorates/Three/ThreeEarth01/data.json | 84 + .../ThreeEarth01/images/earth/aircraft.png | Bin 0 -> 3669 bytes .../ThreeEarth01/images/earth/aperture.png | Bin 0 -> 13011 bytes .../Three/ThreeEarth01/images/earth/earth.png | Bin 0 -> 579508 bytes .../Three/ThreeEarth01/images/earth/glow.png | Bin 0 -> 30039 bytes .../ThreeEarth01/images/earth/gradient.png | Bin 0 -> 5589 bytes .../ThreeEarth01/images/earth/label-old.png | Bin 0 -> 516321 bytes .../Three/ThreeEarth01/images/earth/label.png | Bin 0 -> 13011 bytes .../images/earth/light_column.png | Bin 0 -> 4670 bytes .../ThreeEarth01/images/earth/redCircle.png | Bin 0 -> 43149 bytes .../Decorates/Three/ThreeEarth01/index.ts | 14 + .../Decorates/Three/ThreeEarth01/index.vue | 81 + .../components/Decorates/Three/index.ts | 3 + .../packages/components/Decorates/index.d.ts | 13 + .../packages/components/Decorates/index.ts | 6 + .../Informations/Mores/Iframe/config.ts | 20 + .../Informations/Mores/Iframe/config.vue | 36 + .../Informations/Mores/Iframe/index.ts | 14 + .../Informations/Mores/Iframe/index.vue | 49 + .../Informations/Mores/Image/config.ts | 21 + .../Informations/Mores/Image/config.vue | 67 + .../Informations/Mores/Image/index.ts | 14 + .../Informations/Mores/Image/index.vue | 57 + .../Informations/Mores/Video/config.ts | 24 + .../Informations/Mores/Video/config.vue | 63 + .../Informations/Mores/Video/index.ts | 14 + .../Informations/Mores/Video/index.vue | 65 + .../Informations/Mores/WordCloud/config.ts | 95 + .../Informations/Mores/WordCloud/config.vue | 82 + .../Informations/Mores/WordCloud/data.json | 90 + .../Informations/Mores/WordCloud/index.ts | 14 + .../Informations/Mores/WordCloud/index.vue | 72 + .../components/Informations/Mores/index.ts | 6 + .../Informations/Texts/TextBarrage/config.ts | 42 + .../Informations/Texts/TextBarrage/config.vue | 89 + .../Informations/Texts/TextBarrage/index.ts | 13 + .../Informations/Texts/TextBarrage/index.vue | 102 + .../Informations/Texts/TextCommon/config.ts | 52 + .../Informations/Texts/TextCommon/config.vue | 134 + .../Informations/Texts/TextCommon/index.ts | 13 + .../Informations/Texts/TextCommon/index.vue | 89 + .../Informations/Texts/TextGradient/config.ts | 20 + .../Texts/TextGradient/config.vue | 45 + .../Informations/Texts/TextGradient/index.ts | 14 + .../Informations/Texts/TextGradient/index.vue | 54 + .../components/Informations/Texts/index.ts | 5 + .../components/Informations/index.d.ts | 11 + .../packages/components/Informations/index.ts | 4 + .../Tables/Tables/TableList/config.ts | 36 + .../Tables/Tables/TableList/config.vue | 95 + .../Tables/Tables/TableList/data.json | 14 + .../Tables/Tables/TableList/index.ts | 14 + .../Tables/Tables/TableList/index.vue | 259 + .../Tables/Tables/TableScrollBoard/config.ts | 26 + .../Tables/Tables/TableScrollBoard/config.vue | 100 + .../Tables/Tables/TableScrollBoard/data.json | 12 + .../Tables/Tables/TableScrollBoard/index.ts | 14 + .../Tables/Tables/TableScrollBoard/index.vue | 388 + .../components/Tables/Tables/index.ts | 4 + .../src/packages/components/Tables/index.d.ts | 7 + .../src/packages/components/Tables/index.ts | 3 + grailed-ui-go-view/src/packages/index.d.ts | 171 + grailed-ui-go-view/src/packages/index.ts | 81 + .../src/packages/public/chart.ts | 35 + .../src/packages/public/index.ts | 2 + .../src/packages/public/publicConfig.ts | 132 + .../src/plugins/customComponents.ts | 17 + grailed-ui-go-view/src/plugins/directives.ts | 17 + grailed-ui-go-view/src/plugins/icon.ts | 302 + grailed-ui-go-view/src/plugins/index.ts | 4 + grailed-ui-go-view/src/plugins/naive.ts | 211 + grailed-ui-go-view/src/router/base.ts | 80 + grailed-ui-go-view/src/router/constant.ts | 13 + grailed-ui-go-view/src/router/index.ts | 44 + .../src/router/modules/chart.route.ts | 21 + .../src/router/modules/edit.route.ts | 20 + .../src/router/modules/index.ts | 11 + .../src/router/modules/preview.route.ts | 20 + .../src/router/modules/project.router.ts | 49 + .../src/router/router-guards.ts | 40 + grailed-ui-go-view/src/router/types.ts | 40 + .../src/settings/animations/index.ts | 57 + .../settings/chartThemes/global.theme.json | 101 + .../src/settings/chartThemes/index.ts | 91 + .../settings/chartThemes/themes/chalk.json | 12 + .../settings/chartThemes/themes/customed.json | 13 + .../src/settings/chartThemes/themes/dark.json | 13 + .../settings/chartThemes/themes/essos.json | 10 + .../settings/chartThemes/themes/macarons.json | 24 + .../chartThemes/themes/purple-passion.json | 10 + .../src/settings/chartThemes/themes/roma.json | 24 + .../settings/chartThemes/themes/shine.json | 12 + .../settings/chartThemes/themes/vintage.json | 14 + .../settings/chartThemes/themes/walden.json | 10 + .../settings/chartThemes/themes/westeros.json | 10 + .../chartThemes/themes/wonderland.json | 10 + .../src/settings/designColor.json | 3677 +++ .../src/settings/designColorRecommend.json | 30 + .../src/settings/designSetting.ts | 77 + .../src/settings/httpSetting.ts | 2 + grailed-ui-go-view/src/settings/pathConst.ts | 10 + .../src/settings/systemSetting.ts | 19 + grailed-ui-go-view/src/store/index.ts | 10 + .../chartEditStore/chartEditStore.d.ts | 248 + .../modules/chartEditStore/chartEditStore.ts | 988 + .../chartHistoryStore/chartHistoryDefine.ts | 23 + .../chartHistoryStore/chartHistoryStore.d.ts | 78 + .../chartHistoryStore/chartHistoryStore.ts | 188 + .../chartLayoutStore/chartLayoutStore.d.ts | 36 + .../chartLayoutStore/chartLayoutStore.ts | 77 + .../modules/designStore/designStore.d.ts | 19 + .../store/modules/designStore/designStore.ts | 51 + .../store/modules/langStore/langStore.d.ts | 5 + .../src/store/modules/langStore/langStore.ts | 36 + .../modules/packagesStore/packagesStore.d.ts | 8 + .../modules/packagesStore/packagesStore.ts | 16 + .../modules/settingStore/settingStore.d.ts | 31 + .../modules/settingStore/settingStore.ts | 54 + .../modules/systemStore/systemStore.d.ts | 31 + .../store/modules/systemStore/systemStore.ts | 40 + .../src/styles/common/_dark.scss | 36 + .../src/styles/common/_light.scss | 37 + .../src/styles/common/animation.scss | 68 + .../src/styles/common/format.scss | 23 + .../src/styles/common/mixins/config.scss | 4 + .../src/styles/common/mixins/function.scss | 3 + .../src/styles/common/mixins/mixins.scss | 78 + .../src/styles/common/style.scss | 127 + .../src/styles/common/theme.scss | 10 + grailed-ui-go-view/src/styles/common/var.scss | 87 + .../src/styles/pages/index.scss | 9 + grailed-ui-go-view/src/utils/components.ts | 30 + grailed-ui-go-view/src/utils/crypto.ts | 34 + grailed-ui-go-view/src/utils/file.ts | 116 + grailed-ui-go-view/src/utils/http.ts | 6 + grailed-ui-go-view/src/utils/index.ts | 10 + grailed-ui-go-view/src/utils/plugin.ts | 129 + grailed-ui-go-view/src/utils/router.ts | 213 + grailed-ui-go-view/src/utils/storage.ts | 110 + grailed-ui-go-view/src/utils/style.ts | 102 + grailed-ui-go-view/src/utils/type.ts | 33 + grailed-ui-go-view/src/utils/utils.ts | 406 + .../src/views/chart/ContentBox/index.ts | 3 + .../src/views/chart/ContentBox/index.vue | 184 + .../components/ChartsItemBox/index.ts | 3 + .../components/ChartsItemBox/index.vue | 226 + .../components/ChartsOptionContent/index.ts | 3 + .../components/ChartsOptionContent/index.vue | 143 + .../components/ChartsSearch/index.ts | 3 + .../components/ChartsSearch/index.vue | 264 + .../ContentCharts/hooks/useAside.hook.ts | 92 + .../ContentCharts/hooks/useLayout.hook.ts | 20 + .../src/views/chart/ContentCharts/index.ts | 3 + .../src/views/chart/ContentCharts/index.vue | 123 + .../components/ChartThemeColor/index.vue | 113 + .../components/CanvasPage/index.ts | 3 + .../components/CanvasPage/index.vue | 364 + .../components/ChartAnimation/index.vue | 93 + .../components/ChartDataAjax/index.ts | 3 + .../components/ChartDataAjax/index.vue | 195 + .../ChartDataMatchingAndShow/index.ts | 3 + .../ChartDataMatchingAndShow/index.vue | 209 + .../components/ChartDataMonacoEditor/index.ts | 3 + .../ChartDataMonacoEditor/index.vue | 214 + .../ChartDataDisplay/displayTable.vue | 64 + .../components/ChartDataDisplay/index.ts | 3 + .../components/ChartDataDisplay/index.vue | 191 + .../components/ChartDataPondControl/index.ts | 3 + .../components/ChartDataPondControl/index.vue | 234 + .../components/ChartDataPondList/index.ts | 3 + .../components/ChartDataPondList/index.vue | 202 + .../components/ChartDataPond/index.ts | 3 + .../components/ChartDataPond/index.vue | 185 + .../components/RequestGlobalConfig/index.ts | 3 + .../components/RequestGlobalConfig/index.vue | 108 + .../RequestGlobalHeaderTable/index.ts | 3 + .../RequestGlobalHeaderTable/index.vue | 45 + .../components/RequestHeader/index.ts | 3 + .../components/RequestHeader/index.vue | 140 + .../components/RequestHeaderTable/index.ts | 3 + .../components/RequestHeaderTable/index.vue | 161 + .../components/RequestTargetConfig/index.ts | 3 + .../components/RequestTargetConfig/index.vue | 159 + .../components/ChartDataRequest/index.ts | 4 + .../components/ChartDataRequest/index.vue | 98 + .../components/ChartDataRequest/pondIndex.vue | 111 + .../components/ChartDataStatic/index.ts | 3 + .../components/ChartDataStatic/index.vue | 16 + .../ChartData/hooks/useFile.hooks.ts | 49 + .../components/ChartData/index.d.ts | 105 + .../components/ChartData/index.vue | 49 + .../importTemplate.ts | 189 + .../ChartEventAdvancedHandle/index.ts | 3 + .../ChartEventAdvancedHandle/index.vue | 253 + .../components/ChartEventBaseHandle/index.ts | 3 + .../components/ChartEventBaseHandle/index.vue | 215 + .../ChartEvent/components/index.scss | 51 + .../components/ChartEvent/index.vue | 21 + .../components/ChartSetting/index.vue | 25 + .../components/hooks/useTargetData.hook.ts | 14 + .../chart/ContentConfigurations/index.d.ts | 7 + .../chart/ContentConfigurations/index.ts | 3 + .../chart/ContentConfigurations/index.vue | 172 + .../components/EditAlignLine/index.ts | 3 + .../components/EditAlignLine/index.vue | 285 + .../components/EditBottom/index.ts | 3 + .../components/EditBottom/index.vue | 179 + .../components/EditDataSync/index.ts | 3 + .../components/EditDataSync/index.vue | 97 + .../ContentEdit/components/EditGroup/index.ts | 3 + .../components/EditGroup/index.vue | 129 + .../components/EditHistory/index.ts | 3 + .../components/EditHistory/index.vue | 154 + .../ContentEdit/components/EditRange/index.ts | 3 + .../components/EditRange/index.vue | 69 + .../ContentEdit/components/EditRule/index.ts | 3 + .../ContentEdit/components/EditRule/index.vue | 356 + .../components/EditSelect/index.ts | 3 + .../components/EditSelect/index.vue | 114 + .../components/EditShapeBox/index.ts | 3 + .../components/EditShapeBox/index.vue | 164 + .../EditShortcutKey/ShortcutKeyModal.vue | 152 + .../components/EditShortcutKey/index.ts | 3 + .../components/EditShortcutKey/index.vue | 41 + .../EditTools/hooks/useFile.hooks.ts | 68 + .../EditTools/hooks/useSyncUpdate.hook.ts | 65 + .../components/EditTools/index.d.ts | 12 + .../ContentEdit/components/EditTools/index.ts | 3 + .../components/EditTools/index.vue | 370 + .../components/EditTools/utils/index.ts | 41 + .../components/EditWatermark/index.ts | 3 + .../components/EditWatermark/index.vue | 29 + .../chart/ContentEdit/hooks/useDrag.hook.ts | 382 + .../chart/ContentEdit/hooks/useLayout.hook.ts | 29 + .../chart/ContentEdit/hooks/useStyle.hook.ts | 65 + .../src/views/chart/ContentEdit/index.ts | 3 + .../src/views/chart/ContentEdit/index.vue | 210 + .../ContentHeader/headerLeftBtn/index.ts | 3 + .../ContentHeader/headerLeftBtn/index.vue | 164 + .../ContentHeader/headerRightBtn/index.ts | 3 + .../ContentHeader/headerRightBtn/index.vue | 200 + .../chart/ContentHeader/headerTitle/index.ts | 3 + .../chart/ContentHeader/headerTitle/index.vue | 86 + .../components/LayersGroupListItem/index.ts | 3 + .../components/LayersGroupListItem/index.vue | 277 + .../components/LayersListItem/index.ts | 3 + .../components/LayersListItem/index.vue | 159 + .../components/LayersStatus/index.ts | 3 + .../components/LayersStatus/index.vue | 86 + .../src/views/chart/ContentLayers/enums.ts | 0 .../src/views/chart/ContentLayers/index.ts | 3 + .../src/views/chart/ContentLayers/index.vue | 223 + .../src/views/chart/ContentLoad/index.ts | 3 + .../src/views/chart/ContentLoad/index.vue | 40 + .../chart/hooks/useContextMenu.hook.d.ts | 11 + .../views/chart/hooks/useContextMenu.hook.ts | 277 + .../src/views/chart/hooks/useKeyboard.hook.ts | 251 + .../src/views/chart/hooks/useSync.hook.ts | 348 + grailed-ui-go-view/src/views/chart/index.vue | 76 + grailed-ui-go-view/src/views/edit/index.vue | 137 + .../src/views/exception/403.vue | 44 + .../src/views/exception/404.vue | 44 + .../src/views/exception/500.vue | 45 + grailed-ui-go-view/src/views/login/index.vue | 432 + .../components/PreviewRenderGroup/index.ts | 3 + .../components/PreviewRenderGroup/index.vue | 59 + .../components/PreviewRenderList/index.ts | 3 + .../components/PreviewRenderList/index.vue | 85 + .../views/preview/hooks/useComInstall.hook.ts | 36 + .../src/views/preview/hooks/useScale.hook.ts | 87 + .../src/views/preview/hooks/useStore.hook.ts | 9 + .../src/views/preview/index.d.ts | 6 + .../src/views/preview/index.vue | 9 + .../src/views/preview/suspenseIndex.vue | 110 + .../src/views/preview/utils/index.ts | 2 + .../src/views/preview/utils/storage.ts | 38 + .../src/views/preview/utils/style.ts | 46 + .../src/views/preview/wrapper.vue | 25 + .../src/views/project/index.vue | 49 + .../components/ProjectItemsCard/index.ts | 3 + .../components/ProjectItemsCard/index.vue | 254 + .../ProjectItemsList/hooks/useData.hook.ts | 124 + .../ProjectItemsList/hooks/useModal.hook.ts | 42 + .../components/ProjectItemsList/index.ts | 3 + .../components/ProjectItemsList/index.vue | 76 + .../components/ProjectItemsModalCard/index.ts | 3 + .../ProjectItemsModalCard/index.vue | 177 + .../src/views/project/items/index.d.ts | 11 + .../src/views/project/items/index.vue | 15 + .../ProjectLayoutAsideFooter/index.ts | 3 + .../ProjectLayoutAsideFooter/index.vue | 77 + .../components/CreateModal/index.ts | 3 + .../components/CreateModal/index.vue | 138 + .../components/ProjectLayoutCreate/index.ts | 3 + .../components/ProjectLayoutCreate/index.vue | 54 + .../components/ProjectLayoutSider/index.ts | 3 + .../components/ProjectLayoutSider/index.vue | 100 + .../components/ProjectLayoutSider/menu.ts | 86 + .../src/views/project/mtTemplate/index.vue | 24 + .../views/project/templateMarket/index.vue | 19 + .../src/views/redirect/UnPublish.vue | 35 + .../src/views/redirect/index.vue | 31 + grailed-ui-go-view/tsconfig.json | 25 + grailed-ui-go-view/types/global.d.ts | 16 + grailed-ui-go-view/types/shims-vue.d.ts | 8 + grailed-ui-go-view/types/vite-env.d.ts | 10 + grailed-ui-go-view/vite.config.ts | 92 + grailed_app/.env | 0 grailed_app/.env - 副本.da | 8 + grailed_app/.env.da | 10 + grailed_app/.env.dev | 7 + grailed_app/.env.in | 8 + grailed_app/.env.nz | 8 + grailed_app/.env.pt | 8 + grailed_app/.env.uk | 8 + grailed_app/.env.us | 8 + grailed_app/.gitignore | 28 + grailed_app/.prettierignore | 15 + grailed_app/.vscode/extensions.json | 3 + grailed_app/README.md | 40 + grailed_app/components.d.ts | 40 + grailed_app/env.d.ts | 3 + grailed_app/index.html | 13 + grailed_app/package-lock.json | 9989 ++++++ grailed_app/package.json | 62 + grailed_app/postcss.config.ts | 12 + grailed_app/prettier.config.ts | 21 + grailed_app/public/baltini-logo.webp | Bin 0 -> 7146 bytes grailed_app/public/faviocn.webp | Bin 0 -> 928 bytes grailed_app/src/App.vue | 5 + grailed_app/src/api/auth/index.ts | 9 + grailed_app/src/api/auth/type.ts | 29 + grailed_app/src/api/balance/index.ts | 18 + grailed_app/src/api/channelConfig/index.ts | 14 + grailed_app/src/api/checkIn/index.ts | 9 + grailed_app/src/api/countries/index.ts | 5 + grailed_app/src/api/home/index.ts | 18 + grailed_app/src/api/order/index.ts | 10 + grailed_app/src/api/pages/index.ts | 5 + grailed_app/src/api/payOrder/index.ts | 9 + grailed_app/src/api/service/index.ts | 5 + grailed_app/src/api/settings/index.ts | 13 + grailed_app/src/api/start/index.ts | 5 + grailed_app/src/api/user/index.ts | 22 + grailed_app/src/api/withdrawal/Index.ts | 16 + grailed_app/src/assets/css/main.css | 20 + grailed_app/src/assets/icons/allow-down.svg | 3 + grailed_app/src/assets/icons/allow-left.svg | 4 + .../src/assets/icons/angle-left-circle.svg | 4 + grailed_app/src/assets/icons/chatLess.svg | 3 + .../src/assets/icons/chevron-right.svg | 4 + grailed_app/src/assets/icons/click.svg | 1 + grailed_app/src/assets/icons/close.svg | 4 + grailed_app/src/assets/icons/copy-alt.svg | 5 + grailed_app/src/assets/icons/daily/left.svg | 5 + grailed_app/src/assets/icons/daily/right.svg | 5 + grailed_app/src/assets/icons/dollar.svg | 9 + .../src/assets/icons/home_selected.svg | 3 + .../src/assets/icons/home_unselected.svg | 6 + grailed_app/src/assets/icons/keys.svg | 3 + grailed_app/src/assets/icons/lang_icon.svg | 1 + .../src/assets/icons/order_selected.svg | 4 + .../src/assets/icons/order_unselected.svg | 5 + grailed_app/src/assets/icons/profile/bell.svg | 4 + .../src/assets/icons/profile/profile-lv-0.svg | 60 + .../icons/profile/question-mark-circle.svg | 4 + .../src/assets/icons/profile/settings.svg | 4 + .../src/assets/icons/profile/user-plus.svg | 4 + .../src/assets/icons/profile_selected.svg | 4 + .../src/assets/icons/profile_unselected.svg | 6 + .../src/assets/icons/service_selected.svg | 3 + .../src/assets/icons/service_unselected.svg | 5 + .../src/assets/icons/settings/about-icon.svg | 4 + .../src/assets/icons/settings/arrow.svg | 13 + .../icons/settings/currency-dollar-icon.svg | 3 + .../assets/icons/settings/globe-alt-icon.svg | 4 + .../assets/icons/settings/language-icon.svg | 4 + .../src/assets/icons/settings/logout-icon.svg | 4 + .../assets/icons/settings/password-icon.svg | 4 + .../assets/icons/settings/personal-icon.svg | 3 + .../src/assets/icons/settings/user-circle.svg | 4 + .../src/assets/icons/start_selected.svg | 5 + .../src/assets/icons/start_unselected.svg | 5 + grailed_app/src/assets/icons/vip.svg | 5 + .../src/assets/icons/vip/vip0-icon.svg | 9 + .../src/assets/icons/vip/vip1-icon.svg | 9 + .../src/assets/icons/vip/vip2-icon.svg | 9 + .../src/assets/icons/vip/vip3-icon.svg | 9 + .../src/assets/icons/vip/vip4-icon.svg | 9 + grailed_app/src/assets/icons/volume.svg | 5 + grailed_app/src/assets/imgs/avatar.jpg | Bin 0 -> 31403 bytes grailed_app/src/assets/imgs/customer.jpg | Bin 0 -> 31898 bytes .../src/assets/imgs/daily/daily-check-bg.png | Bin 0 -> 64086 bytes .../assets/imgs/daily/daily-check-book.png | Bin 0 -> 11156 bytes .../src/assets/imgs/home/aliexpress.png | Bin 0 -> 3093 bytes grailed_app/src/assets/imgs/home/amazon.png | Bin 0 -> 3233 bytes grailed_app/src/assets/imgs/home/ebay.png | Bin 0 -> 4048 bytes .../src/assets/imgs/home/icon-about.png | Bin 0 -> 13291 bytes grailed_app/src/assets/imgs/home/icon-faq.png | Bin 0 -> 11538 bytes .../src/assets/imgs/home/icon-invite.png | Bin 0 -> 11927 bytes .../src/assets/imgs/home/icon-term.png | Bin 0 -> 13657 bytes grailed_app/src/assets/imgs/home/manomano.png | Bin 0 -> 3825 bytes grailed_app/src/assets/imgs/home/onbuy.png | Bin 0 -> 3996 bytes grailed_app/src/assets/imgs/home/shopify.png | Bin 0 -> 4305 bytes grailed_app/src/assets/imgs/home/tiktok.jpg | Bin 0 -> 6310 bytes grailed_app/src/assets/imgs/home/wish.png | Bin 0 -> 4203 bytes grailed_app/src/assets/imgs/home/zalando.png | Bin 0 -> 2385 bytes grailed_app/src/assets/imgs/home_bg.png | Bin 0 -> 1319720 bytes grailed_app/src/assets/imgs/invitation_bg.png | Bin 0 -> 91574 bytes .../src/assets/imgs/login/login-bg.png | Bin 0 -> 332827 bytes grailed_app/src/assets/imgs/logo.png | Bin 0 -> 24939 bytes .../src/assets/imgs/main/avatarBoy.png | Bin 0 -> 23680 bytes .../src/assets/imgs/main/avatarGirl.png | Bin 0 -> 24305 bytes .../src/assets/imgs/main/home_selected.png | Bin 0 -> 907 bytes .../src/assets/imgs/main/home_unselected.png | Bin 0 -> 1250 bytes .../src/assets/imgs/main/order_selected.png | Bin 0 -> 438 bytes .../src/assets/imgs/main/order_unselected.png | Bin 0 -> 412 bytes .../src/assets/imgs/main/profile_selected.png | Bin 0 -> 1267 bytes .../assets/imgs/main/profile_unselected.png | Bin 0 -> 1866 bytes .../src/assets/imgs/main/service_selected.png | Bin 0 -> 795 bytes .../assets/imgs/main/service_unselected.png | Bin 0 -> 890 bytes .../src/assets/imgs/main/start_selected.png | Bin 0 -> 596 bytes .../src/assets/imgs/main/start_unselected.png | Bin 0 -> 627 bytes .../src/assets/imgs/phone_border_bg.png | Bin 0 -> 23524 bytes grailed_app/src/assets/imgs/recharge.png | Bin 0 -> 88794 bytes .../src/assets/imgs/recharge/dollar-big.png | Bin 0 -> 15136 bytes .../src/assets/imgs/recharge/dollar-small.png | Bin 0 -> 1249 bytes grailed_app/src/assets/imgs/recharge/line.png | Bin 0 -> 153122 bytes .../src/assets/imgs/start/card-vip-bg.png | Bin 0 -> 153122 bytes grailed_app/src/assets/imgs/start/level1.png | Bin 0 -> 7105 bytes grailed_app/src/assets/imgs/start/level2.png | Bin 0 -> 7321 bytes grailed_app/src/assets/imgs/start/level3.png | Bin 0 -> 7888 bytes grailed_app/src/assets/imgs/start/level4.png | Bin 0 -> 9049 bytes grailed_app/src/assets/imgs/start/level5.png | Bin 0 -> 8714 bytes grailed_app/src/assets/imgs/sub-title-bg.png | Bin 0 -> 4121 bytes grailed_app/src/assets/imgs/task-1.jpg | Bin 0 -> 12224 bytes grailed_app/src/assets/imgs/whatsapp.png | Bin 0 -> 7177 bytes grailed_app/src/assets/imgs/withdraw.png | Bin 0 -> 71512 bytes grailed_app/src/assets/logo/baltini-logo.webp | Bin 0 -> 7146 bytes grailed_app/src/assets/logo/luxe-logo.jpg | Bin 0 -> 9517 bytes grailed_app/src/assets/logo/luxlair-logo.jpg | Bin 0 -> 24939 bytes .../src/assets/lottie/animation_loading.json | 1 + .../src/assets/lottie/animation_success.json | 1 + grailed_app/src/components/Dialog.vue | 98 + grailed_app/src/components/GrailedDialog.vue | 95 + grailed_app/src/components/GrailedHeader.vue | 7 + grailed_app/src/components/Success.vue | 33 + grailed_app/src/components/SvgIcon.vue | 32 + grailed_app/src/components/TermsModal.vue | 98 + grailed_app/src/config/axios/config.ts | 30 + grailed_app/src/config/axios/errorCode.ts | 7 + grailed_app/src/config/axios/index.ts | 56 + grailed_app/src/config/axios/service.ts | 158 + grailed_app/src/hooks/useCache.ts | 27 + grailed_app/src/hooks/useLogo.ts | 22 + grailed_app/src/i18n/helper.ts | 4 + grailed_app/src/i18n/index.ts | 43 + grailed_app/src/i18n/lang/da-dk.ts | 366 + grailed_app/src/i18n/lang/dn-de.ts | 355 + grailed_app/src/i18n/lang/en-us.ts | 384 + grailed_app/src/i18n/lang/en-us2.ts | 355 + grailed_app/src/i18n/lang/lang-base.ts | 353 + grailed_app/src/i18n/lang/pt-pt.ts | 392 + grailed_app/src/i18n/lang/st-st.ts | 378 + grailed_app/src/main.ts | 19 + grailed_app/src/router/index.ts | 151 + grailed_app/src/router/permission.ts | 22 + grailed_app/src/stores/counter.ts | 13 + grailed_app/src/stores/modules/locale.ts | 0 grailed_app/src/utils/auth.ts | 42 + grailed_app/src/utils/formatTime.ts | 223 + grailed_app/src/utils/pageUtils.ts | 52 + grailed_app/src/views/Main.vue | 81 + grailed_app/src/views/about/Index.vue | 39 + grailed_app/src/views/balanceRecord/Index.vue | 96 + grailed_app/src/views/bindCrypto/Index.vue | 86 + grailed_app/src/views/channelSelect/Index.vue | 96 + grailed_app/src/views/dailyCheckIn/Index.vue | 174 + grailed_app/src/views/helpGuide/Index.vue | 68 + grailed_app/src/views/home/Index.vue | 277 + .../src/views/home/components/Carousel.vue | 25 + .../src/views/home/components/Introduce.vue | 234 + .../src/views/home/components/MemberList.vue | 58 + .../src/views/home/components/Notice.vue | 67 + .../src/views/home/components/Partners.vue | 73 + .../src/views/home/components/TaskCarouse.vue | 87 + grailed_app/src/views/invitation/Index.vue | 110 + grailed_app/src/views/language/Index.vue | 69 + grailed_app/src/views/notification/Index.vue | 19 + grailed_app/src/views/order/Index.vue | 252 + grailed_app/src/views/password/Index.vue | 120 + .../src/views/payOrderDetails/Index.vue | 109 + grailed_app/src/views/profile/Index.vue | 234 + grailed_app/src/views/recharge/Index.vue | 164 + grailed_app/src/views/service/Index.vue | 93 + grailed_app/src/views/service/chat/index.vue | 41 + grailed_app/src/views/settings/Index.vue | 140 + .../src/views/settingsPersonal/Index.vue | 257 + grailed_app/src/views/signIn/Index.vue | 213 + grailed_app/src/views/signUp/Index.vue | 221 + grailed_app/src/views/start/Index.vue | 207 + .../src/views/start/components/GrabOrder.vue | 126 + .../views/start/components/OrderDetails.vue | 186 + grailed_app/src/views/start/types/index.ts | 11 + grailed_app/src/views/wallet/Index.vue | 5 + grailed_app/src/views/withdrawal/Index.vue | 320 + .../withdrawal/components/PaymentPassword.vue | 66 + grailed_app/tailwind.config.ts | 44 + grailed_app/tsconfig.app.json | 12 + grailed_app/tsconfig.json | 24 + grailed_app/tsconfig.node.json | 16 + grailed_app/types/global.d.ts | 50 + grailed_app/vite.config.ts | 54 + grailed_app/yarn.lock | 3397 ++ server-node-grailed | 1 + vue3-cutomer-chat/.env.da | 4 + vue3-cutomer-chat/.env.dev | 4 + vue3-cutomer-chat/.env.in | 4 + vue3-cutomer-chat/.env.nz | 4 + vue3-cutomer-chat/.env.pt | 4 + vue3-cutomer-chat/.env.uk | 4 + vue3-cutomer-chat/.env.us | 4 + vue3-cutomer-chat/.gitignore | 28 + vue3-cutomer-chat/README.md | 40 + vue3-cutomer-chat/auto-imports.d.ts | 9 + vue3-cutomer-chat/components.d.ts | 25 + vue3-cutomer-chat/env.d.ts | 1 + vue3-cutomer-chat/index.html | 13 + vue3-cutomer-chat/package-lock.json | 9747 ++++++ vue3-cutomer-chat/package.json | 51 + vue3-cutomer-chat/postcss.config.ts | 13 + vue3-cutomer-chat/public/favicon.ico | Bin 0 -> 205384 bytes vue3-cutomer-chat/src/App.vue | 6 + vue3-cutomer-chat/src/api/auth/type.ts | 29 + vue3-cutomer-chat/src/api/content/index.ts | 6 + vue3-cutomer-chat/src/api/user/index.ts | 15 + vue3-cutomer-chat/src/assets/audio/notify.mp3 | Bin 0 -> 26396 bytes vue3-cutomer-chat/src/assets/css/main.css | 3 + .../src/assets/emoji/emoji-data.json | 15321 +++++++++ .../src/assets/icons/arrow-path.svg | 3 + .../src/assets/icons/caret-left.svg | 3 + .../src/assets/icons/check-circle.svg | 3 + vue3-cutomer-chat/src/assets/icons/check.svg | 3 + .../src/assets/icons/ellipsis-horizontal.svg | 3 + .../src/assets/icons/exclamation-triangle.svg | 3 + .../src/assets/icons/face-smile.svg | 3 + vue3-cutomer-chat/src/assets/icons/images.svg | 3 + .../src/assets/icons/paper-clip.svg | 3 + vue3-cutomer-chat/src/assets/icons/search.svg | 3 + vue3-cutomer-chat/src/assets/icons/send.svg | 2 + .../src/assets/icons/service.svg | 1 + .../src/assets/icons/success.svg | 1 + vue3-cutomer-chat/src/components/SvgIcon.vue | 30 + vue3-cutomer-chat/src/config/axios/config.ts | 24 + vue3-cutomer-chat/src/config/axios/index.ts | 56 + vue3-cutomer-chat/src/config/axios/service.ts | 157 + vue3-cutomer-chat/src/hooks/useCache.ts | 27 + vue3-cutomer-chat/src/main.ts | 15 + vue3-cutomer-chat/src/router/index.ts | 15 + vue3-cutomer-chat/src/stores/counter.ts | 12 + vue3-cutomer-chat/src/stores/message.ts | 43 + vue3-cutomer-chat/src/types/global.d.ts | 39 + vue3-cutomer-chat/src/utils/auth.ts | 42 + vue3-cutomer-chat/src/utils/formatTime.ts | 223 + vue3-cutomer-chat/src/views/chat/Index.vue | 135 + .../src/views/chat/components/ChatContent.vue | 327 + .../src/views/chat/components/ChatFooter.vue | 199 + .../src/views/chat/components/ChatHeader.vue | 40 + .../src/views/chat/components/EmojiPicker.vue | 86 + .../views/chat/components/MessageContent.vue | 65 + vue3-cutomer-chat/src/worker/stompWorkers.ts | 13 + vue3-cutomer-chat/tailwind.config.ts | 18 + vue3-cutomer-chat/tsconfig.app.json | 12 + vue3-cutomer-chat/tsconfig.json | 11 + vue3-cutomer-chat/tsconfig.node.json | 16 + vue3-cutomer-chat/vite.config.ts | 48 + vue3-cutomer-chat/yarn.lock | 2895 ++ vue3-service-chat/.env.da | 6 + vue3-service-chat/.env.dev | 6 + vue3-service-chat/.env.in | 6 + vue3-service-chat/.env.nz | 6 + vue3-service-chat/.env.pt | 6 + vue3-service-chat/.env.uk | 6 + vue3-service-chat/.env.us | 6 + vue3-service-chat/.env2.da | 6 + vue3-service-chat/.gitignore | 28 + vue3-service-chat/.vscode/extensions.json | 3 + vue3-service-chat/README.md | 40 + vue3-service-chat/auto-imports.d.ts | 10 + vue3-service-chat/components.d.ts | 39 + vue3-service-chat/env.d.ts | 1 + vue3-service-chat/index.html | 13 + vue3-service-chat/logo2.png | Bin 0 -> 24783 bytes vue3-service-chat/package.json | 49 + vue3-service-chat/postcss.config.ts | 12 + vue3-service-chat/src/App.vue | 9 + vue3-service-chat/src/api/auth/index.ts | 10 + vue3-service-chat/src/api/auth/type.ts | 29 + vue3-service-chat/src/api/black/index.ts | 8 + vue3-service-chat/src/api/content/index.ts | 6 + vue3-service-chat/src/api/file/index.ts | 9 + vue3-service-chat/src/api/remark/index.ts | 8 + vue3-service-chat/src/api/reply/index.ts | 8 + vue3-service-chat/src/api/session/index.ts | 8 + vue3-service-chat/src/api/tags/index.ts | 14 + vue3-service-chat/src/api/user/index.ts | 14 + vue3-service-chat/src/assets/audio/notify.mp3 | Bin 0 -> 23328 bytes vue3-service-chat/src/assets/css/main.css | 3 + .../src/assets/emoji/emoji-data.json | 15321 +++++++++ .../src/assets/icons/arrow-path.svg | 3 + .../src/assets/icons/caret-left.svg | 3 + .../assets/icons/clipboard-document-list.svg | 3 + vue3-service-chat/src/assets/icons/delete.svg | 3 + .../src/assets/icons/ellipsis-horizontal.svg | 3 + .../src/assets/icons/exclamation-triangle.svg | 3 + .../src/assets/icons/face-smile.svg | 3 + vue3-service-chat/src/assets/icons/images.svg | 3 + vue3-service-chat/src/assets/icons/logo2.svg | 376 + .../src/assets/icons/paper-clip.svg | 3 + vue3-service-chat/src/assets/icons/search.svg | 3 + vue3-service-chat/src/assets/icons/send.svg | 2 + .../src/assets/icons/service.svg | 1 + .../src/assets/icons/setting.svg | 4 + .../src/assets/icons/speaker-wave.svg | 3 + .../src/assets/icons/speaker-x-mark.svg | 3 + .../src/assets/icons/success-multiple.svg | 8 + .../src/assets/icons/success-singleton.svg | 7 + .../src/assets/icons/success.svg | 8 + vue3-service-chat/src/assets/icons/tag.svg | 4 + .../src/assets/icons/user-minus.svg | 1 + vue3-service-chat/src/assets/imgs/logo2.png | Bin 0 -> 24783 bytes vue3-service-chat/src/assets/logo.svg | 1 + vue3-service-chat/src/components/SvgIcon.vue | 30 + vue3-service-chat/src/components/UserTag.vue | 28 + vue3-service-chat/src/config/axios/config.ts | 25 + .../src/config/axios/errorCode.ts | 7 + vue3-service-chat/src/config/axios/index.ts | 52 + vue3-service-chat/src/config/axios/service.ts | 158 + vue3-service-chat/src/hooks/useCache.ts | 27 + vue3-service-chat/src/main.ts | 16 + vue3-service-chat/src/router/index.ts | 38 + vue3-service-chat/src/stores/audioStore.ts | 21 + vue3-service-chat/src/stores/counter.ts | 120 + vue3-service-chat/src/types/global.d.ts | 68 + vue3-service-chat/src/utils/audioUtils.ts | 89 + vue3-service-chat/src/utils/auth.ts | 47 + vue3-service-chat/src/utils/formatTime.ts | 223 + vue3-service-chat/src/utils/stringUtils.ts | 3 + vue3-service-chat/src/views/chat/Index.vue | 61 + .../src/views/chat/components/Chat.vue | 367 + .../src/views/chat/components/ChatContent.vue | 247 + .../src/views/chat/components/ChatFooter.vue | 241 + .../src/views/chat/components/EmojiPicker.vue | 87 + .../views/chat/components/MessageContent.vue | 103 + .../src/views/chat/components/RemarkForm.vue | 65 + .../views/chat/components/ReplyPresets.vue | 112 + .../src/views/chat/components/Sidebar.vue | 561 + vue3-service-chat/src/views/login/Index.vue | 111 + vue3-service-chat/src/worker/stompWorkers.ts | 13 + vue3-service-chat/tailwind.config.ts | 18 + vue3-service-chat/tsconfig.app.json | 12 + vue3-service-chat/tsconfig.json | 11 + vue3-service-chat/tsconfig.node.json | 16 + vue3-service-chat/vite.config.ts | 50 + vue3-service-chat/yarn.lock | 3289 ++ 1933 files changed, 259241 insertions(+) create mode 100644 grailed-ui-admin-vue3/.editorconfig create mode 100644 grailed-ui-admin-vue3/.env create mode 100644 grailed-ui-admin-vue3/.env - 副本.da create mode 100644 grailed-ui-admin-vue3/.env.base create mode 100644 grailed-ui-admin-vue3/.env.da create mode 100644 grailed-ui-admin-vue3/.env.dev create mode 100644 grailed-ui-admin-vue3/.env.in create mode 100644 grailed-ui-admin-vue3/.env.nz create mode 100644 grailed-ui-admin-vue3/.env.pro create mode 100644 grailed-ui-admin-vue3/.env.pt create mode 100644 grailed-ui-admin-vue3/.env.uk create mode 100644 grailed-ui-admin-vue3/.env.us create mode 100644 grailed-ui-admin-vue3/.eslintignore create mode 100644 grailed-ui-admin-vue3/.eslintrc-auto-import.json create mode 100644 grailed-ui-admin-vue3/.eslintrc.js create mode 100644 grailed-ui-admin-vue3/.gitignore create mode 100644 grailed-ui-admin-vue3/.prettierignore create mode 100644 grailed-ui-admin-vue3/.stylelintignore create mode 100644 grailed-ui-admin-vue3/.vscode/extensions.json create mode 100644 grailed-ui-admin-vue3/.vscode/launch.json create mode 100644 grailed-ui-admin-vue3/.vscode/settings.json create mode 100644 grailed-ui-admin-vue3/LICENSE create mode 100644 grailed-ui-admin-vue3/README.md create mode 100644 grailed-ui-admin-vue3/build/vite/index.ts create mode 100644 grailed-ui-admin-vue3/build/vite/optimize.ts create mode 100644 grailed-ui-admin-vue3/index.html create mode 100644 grailed-ui-admin-vue3/package.json create mode 100644 grailed-ui-admin-vue3/postcss.config.js create mode 100644 grailed-ui-admin-vue3/prettier.config.js create mode 100644 grailed-ui-admin-vue3/public/favicon.ico create mode 100644 grailed-ui-admin-vue3/public/home.png create mode 100644 grailed-ui-admin-vue3/public/logo.gif create mode 100644 grailed-ui-admin-vue3/public/logo2.png create mode 100644 grailed-ui-admin-vue3/src/App.vue create mode 100644 grailed-ui-admin-vue3/src/api/infra/apiAccessLog/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/apiErrorLog/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/codegen/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/config/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/dataSourceConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/dbDoc/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/file/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/fileConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/job/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/jobLog/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/redis/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/infra/redis/types.ts create mode 100644 grailed-ui-admin-vue3/src/api/login/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/login/oauth2/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/login/types.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/product/brand.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/product/category.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/product/property.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/product/spu.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/promotion/combination/combinationActivity.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/promotion/coupon.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/promotion/couponTemplate.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillActivity.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillConfig.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/trade/delivery/express/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/trade/delivery/expressTemplate/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/trade/delivery/pickUpStore/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/trade/order/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mall/trade/order/type/orderType.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/balanceAccount/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/balanceRecord/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/bankWithdrawalDetail/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/brand/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/category/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/channel/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/channelConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/checkIn/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/combinationConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/combinationRecord/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/combinationReocrd/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/contentCarouse/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/continuousSignInConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/countries/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/cryptoWithdrawalDetail/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/cumulativeSignInConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/customTask/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/dailySignInConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/h5Pages/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/levelConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/messageSession/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/payOrder/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/payOrderExtension/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/product/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/signInRecord/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/tagRelations/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/tags/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/taskComment/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/taskRecord/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/user/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/userBank/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/userCrypto/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/userExtension/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/member/withdrawal/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/message/blacklist/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/message/content/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/message/memberRemark/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/message/quickGroup/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/message/quickReplies/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/account/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/autoReply/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/draft/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/freePublish/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/material/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/menu/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/message/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/statistics/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/tag/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/mp/user/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/pay/app/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/pay/channel/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/pay/merchant/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/pay/order/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/pay/refund/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/point/config/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/point/record/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/point/signInConfig/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/point/signInRecord/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/area/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/dept/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/dict/dict.data.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/dict/dict.type.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/errorCode/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/loginLog/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/mail/account/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/mail/log/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/mail/template/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/menu/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/notice/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/notify/message/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/notify/template/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/oauth2/client.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/oauth2/token.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/operatelog/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/permission/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/role/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/sensitiveWord/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/sms/smsChannel/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/sms/smsLog/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/sms/smsTemplate/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/tenant/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/tenantPackage/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/translatorDeepl/translatorDeepl.js create mode 100644 grailed-ui-admin-vue3/src/api/system/user/index.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/user/profile.ts create mode 100644 grailed-ui-admin-vue3/src/api/system/user/socialUser.ts create mode 100644 grailed-ui-admin-vue3/src/assets/audio/Notify.mp3 create mode 100644 grailed-ui-admin-vue3/src/assets/audio/newMsgNotify.mp3 create mode 100644 grailed-ui-admin-vue3/src/assets/audio/recharte_notify.mp3 create mode 100644 grailed-ui-admin-vue3/src/assets/audio/withdrawal_notify.mp3 create mode 100644 grailed-ui-admin-vue3/src/assets/imgs/avatar.gif create mode 100644 grailed-ui-admin-vue3/src/assets/imgs/avatar.jpg create mode 100644 grailed-ui-admin-vue3/src/assets/imgs/logo.png create mode 100644 grailed-ui-admin-vue3/src/assets/imgs/logo2.png create mode 100644 grailed-ui-admin-vue3/src/assets/imgs/profile.jpg create mode 100644 grailed-ui-admin-vue3/src/assets/imgs/wechat.png create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/403.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/404.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/500.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/icon.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/login-bg.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/login-box-bg.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/message.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/money.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/peoples.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/shopping.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/speaker-wave.svg create mode 100644 grailed-ui-admin-vue3/src/assets/svgs/speaker-x-mark.svg create mode 100644 grailed-ui-admin-vue3/src/components/Backtop/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Backtop/src/Backtop.vue create mode 100644 grailed-ui-admin-vue3/src/components/ConfigGlobal/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue create mode 100644 grailed-ui-admin-vue3/src/components/ContentDetailWrap/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue create mode 100644 grailed-ui-admin-vue3/src/components/ContentWrap/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/ContentWrap/src/ContentWrap.vue create mode 100644 grailed-ui-admin-vue3/src/components/CountTo/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/CountTo/src/CountTo.vue create mode 100644 grailed-ui-admin-vue3/src/components/Crontab/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Crontab/src/Crontab.vue create mode 100644 grailed-ui-admin-vue3/src/components/Cropper/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue create mode 100644 grailed-ui-admin-vue3/src/components/Cropper/src/Cropper.vue create mode 100644 grailed-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue create mode 100644 grailed-ui-admin-vue3/src/components/Cropper/src/types.ts create mode 100644 grailed-ui-admin-vue3/src/components/Descriptions/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue create mode 100644 grailed-ui-admin-vue3/src/components/Dialog/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Dialog/src/Dialog.vue create mode 100644 grailed-ui-admin-vue3/src/components/DictTag/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/DictTag/src/DictTag.vue create mode 100644 grailed-ui-admin-vue3/src/components/DocAlert/index.vue create mode 100644 grailed-ui-admin-vue3/src/components/Echart/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Echart/src/Echart.vue create mode 100644 grailed-ui-admin-vue3/src/components/Editor/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Editor/src/Editor.vue create mode 100644 grailed-ui-admin-vue3/src/components/Error/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Error/src/Error.vue create mode 100644 grailed-ui-admin-vue3/src/components/Form/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Form/src/Form.vue create mode 100644 grailed-ui-admin-vue3/src/components/Form/src/componentMap.ts create mode 100644 grailed-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx create mode 100644 grailed-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx create mode 100644 grailed-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx create mode 100644 grailed-ui-admin-vue3/src/components/Form/src/helper.ts create mode 100644 grailed-ui-admin-vue3/src/components/Form/src/types.ts create mode 100644 grailed-ui-admin-vue3/src/components/Highlight/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Highlight/src/Highlight.vue create mode 100644 grailed-ui-admin-vue3/src/components/IFrame/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/IFrame/src/IFrame.vue create mode 100644 grailed-ui-admin-vue3/src/components/Icon/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Icon/src/Icon.vue create mode 100644 grailed-ui-admin-vue3/src/components/Icon/src/IconSelect.vue create mode 100644 grailed-ui-admin-vue3/src/components/Icon/src/data.ts create mode 100644 grailed-ui-admin-vue3/src/components/ImageViewer/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue create mode 100644 grailed-ui-admin-vue3/src/components/ImageViewer/src/types.ts create mode 100644 grailed-ui-admin-vue3/src/components/Infotip/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Infotip/src/Infotip.vue create mode 100644 grailed-ui-admin-vue3/src/components/InputPassword/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue create mode 100644 grailed-ui-admin-vue3/src/components/Pagination/index.vue create mode 100644 grailed-ui-admin-vue3/src/components/PhoneNumberInput/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/PhoneNumberInput.vue create mode 100644 grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/countryList.json create mode 100644 grailed-ui-admin-vue3/src/components/Qrcode/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Qrcode/src/Qrcode.vue create mode 100644 grailed-ui-admin-vue3/src/components/RouterSearch/index.vue create mode 100644 grailed-ui-admin-vue3/src/components/Search/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Search/src/Search.vue create mode 100644 grailed-ui-admin-vue3/src/components/Sticky/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Sticky/src/Sticky.vue create mode 100644 grailed-ui-admin-vue3/src/components/Table/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Table/src/Table.vue create mode 100644 grailed-ui-admin-vue3/src/components/Table/src/helper.ts create mode 100644 grailed-ui-admin-vue3/src/components/Table/src/types.ts create mode 100644 grailed-ui-admin-vue3/src/components/Tooltip/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Tooltip/src/Tooltip.vue create mode 100644 grailed-ui-admin-vue3/src/components/UploadFile/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue create mode 100644 grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue create mode 100644 grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue create mode 100644 grailed-ui-admin-vue3/src/components/Verifition/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Verifition/src/Verify.vue create mode 100644 grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue create mode 100644 grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue create mode 100644 grailed-ui-admin-vue3/src/components/Verifition/src/Verify/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/Verifition/src/utils/ase.ts create mode 100644 grailed-ui-admin-vue3/src/components/Verifition/src/utils/util.ts create mode 100644 grailed-ui-admin-vue3/src/components/XButton/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/XButton/src/XButton.vue create mode 100644 grailed-ui-admin-vue3/src/components/XButton/src/XTextButton.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index2.ts create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/index.ts create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/template.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/element-variables.scss create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/index.scss create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-designer.scss create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-panel.scss create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/utils.ts create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/highlight/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/translations.ts create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/index.js create mode 100644 grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/xml2json.js create mode 100644 grailed-ui-admin-vue3/src/components/index.ts create mode 100644 grailed-ui-admin-vue3/src/config/axios/config.ts create mode 100644 grailed-ui-admin-vue3/src/config/axios/errorCode.ts create mode 100644 grailed-ui-admin-vue3/src/config/axios/index.ts create mode 100644 grailed-ui-admin-vue3/src/config/axios/service.ts create mode 100644 grailed-ui-admin-vue3/src/directives/index.ts create mode 100644 grailed-ui-admin-vue3/src/directives/permission/hasPermi.ts create mode 100644 grailed-ui-admin-vue3/src/directives/permission/hasRole.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/event/useScrollTo.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useCache.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useDesign.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useEmitt.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useForm.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useI18n.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useIcon.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useIntro.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useLocale.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useMessage.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useNProgress.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/usePageLoading.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useTable.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useTimeAgo.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useTitle.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useValidator.ts create mode 100644 grailed-ui-admin-vue3/src/hooks/web/useWatermark.ts create mode 100644 grailed-ui-admin-vue3/src/layout/Layout.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/AppView.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Breadcrumb/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Collapse/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/ContextMenu/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Footer/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Logo/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Menu/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx create mode 100644 grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx create mode 100644 grailed-ui-admin-vue3/src/layout/components/Menu/src/helper.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Message/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Message/src/Message.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/NotifyAudio/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/NotifyAudio/src/NotifyAudio.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Screenfull/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Setting/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/TabMenu/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/TagsView/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/ToolHeader.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/UserInfo/index.ts create mode 100644 grailed-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue create mode 100644 grailed-ui-admin-vue3/src/layout/components/useRenderLayout.tsx create mode 100644 grailed-ui-admin-vue3/src/locales/en.ts create mode 100644 grailed-ui-admin-vue3/src/locales/zh-CN.ts create mode 100644 grailed-ui-admin-vue3/src/main.ts create mode 100644 grailed-ui-admin-vue3/src/permission.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/animate.css/index.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/echarts/index.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/elementPlus/index.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/formCreate/index.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/svgIcon/index.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/unocss/index.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/vueI18n/helper.ts create mode 100644 grailed-ui-admin-vue3/src/plugins/vueI18n/index.ts create mode 100644 grailed-ui-admin-vue3/src/router/index.ts create mode 100644 grailed-ui-admin-vue3/src/router/modules/remaining.ts create mode 100644 grailed-ui-admin-vue3/src/store/index.ts create mode 100644 grailed-ui-admin-vue3/src/store/modules/app.ts create mode 100644 grailed-ui-admin-vue3/src/store/modules/audio.ts create mode 100644 grailed-ui-admin-vue3/src/store/modules/dict.ts create mode 100644 grailed-ui-admin-vue3/src/store/modules/locale.ts create mode 100644 grailed-ui-admin-vue3/src/store/modules/permission.ts create mode 100644 grailed-ui-admin-vue3/src/store/modules/tagsView.ts create mode 100644 grailed-ui-admin-vue3/src/store/modules/user.ts create mode 100644 grailed-ui-admin-vue3/src/styles/global.module.scss create mode 100644 grailed-ui-admin-vue3/src/styles/index.scss create mode 100644 grailed-ui-admin-vue3/src/styles/theme.scss create mode 100644 grailed-ui-admin-vue3/src/styles/var.css create mode 100644 grailed-ui-admin-vue3/src/styles/variables.scss create mode 100644 grailed-ui-admin-vue3/src/types/components.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/configGlobal.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/contextMenu.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/descriptions.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/elementPlus.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/form.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/icon.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/infoTip.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/layout.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/localeDropdown.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/qrcode.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/table.d.ts create mode 100644 grailed-ui-admin-vue3/src/types/theme.d.ts create mode 100644 grailed-ui-admin-vue3/src/utils/Logger.ts create mode 100644 grailed-ui-admin-vue3/src/utils/auth.ts create mode 100644 grailed-ui-admin-vue3/src/utils/color.ts create mode 100644 grailed-ui-admin-vue3/src/utils/constants.ts create mode 100644 grailed-ui-admin-vue3/src/utils/dict.ts create mode 100644 grailed-ui-admin-vue3/src/utils/domUtils.ts create mode 100644 grailed-ui-admin-vue3/src/utils/download.ts create mode 100644 grailed-ui-admin-vue3/src/utils/filt.ts create mode 100644 grailed-ui-admin-vue3/src/utils/formCreate.ts create mode 100644 grailed-ui-admin-vue3/src/utils/formRules.ts create mode 100644 grailed-ui-admin-vue3/src/utils/formatTime.ts create mode 100644 grailed-ui-admin-vue3/src/utils/index.ts create mode 100644 grailed-ui-admin-vue3/src/utils/is.ts create mode 100644 grailed-ui-admin-vue3/src/utils/jsencrypt.ts create mode 100644 grailed-ui-admin-vue3/src/utils/permission.ts create mode 100644 grailed-ui-admin-vue3/src/utils/propTypes.ts create mode 100644 grailed-ui-admin-vue3/src/utils/routerHelper.ts create mode 100644 grailed-ui-admin-vue3/src/utils/tree.ts create mode 100644 grailed-ui-admin-vue3/src/utils/tsxHelper.ts create mode 100644 grailed-ui-admin-vue3/src/views/Error/403.vue create mode 100644 grailed-ui-admin-vue3/src/views/Error/404.vue create mode 100644 grailed-ui-admin-vue3/src/views/Error/500.vue create mode 100644 grailed-ui-admin-vue3/src/views/Home/Index.vue create mode 100644 grailed-ui-admin-vue3/src/views/Home/Index2.vue create mode 100644 grailed-ui-admin-vue3/src/views/Home/echarts-data.ts create mode 100644 grailed-ui-admin-vue3/src/views/Home/types.ts create mode 100644 grailed-ui-admin-vue3/src/views/Login/Login.vue create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/LoginForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/LoginFormTitle.vue create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/MobileForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/QrCodeForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/RegisterForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/SSOLogin.vue create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/Login/components/useLogin.ts create mode 100644 grailed-ui-admin-vue3/src/views/Profile/Index.vue create mode 100644 grailed-ui-admin-vue3/src/views/Profile/components/BasicInfo.vue create mode 100644 grailed-ui-admin-vue3/src/views/Profile/components/ProfileUser.vue create mode 100644 grailed-ui-admin-vue3/src/views/Profile/components/ResetPwd.vue create mode 100644 grailed-ui-admin-vue3/src/views/Profile/components/UserAvatar.vue create mode 100644 grailed-ui-admin-vue3/src/views/Profile/components/UserSocial.vue create mode 100644 grailed-ui-admin-vue3/src/views/Profile/components/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/Redirect/Redirect.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/apiAccessLog/ApiAccessLogDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/apiAccessLog/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/apiErrorLog/ApiErrorLogDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/build/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/EditTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/ImportTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/PreviewCode.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/components/BasicInfoForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/components/ColumInfoForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/components/GenerateInfoForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/components/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/infra/codegen/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/config/ConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/config/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/dataSourceConfig/DataSourceConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/dbDoc/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/druid/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/file/FileForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/file/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/fileConfig/FileConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/fileConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/job/JobDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/job/JobForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/job/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/job/logger/JobLogDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/job/logger/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/redis/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/server/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/skywalking/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/swagger/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/testDemo/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/infra/webSocket/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/brand/BrandForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/brand/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/category/CategoryForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/category/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/property/PropertyForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/property/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/property/value/ValueForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/property/value/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/addForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/BasicInfoForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/DescriptionForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/OtherSettingsForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/ProductAttributes.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/ProductPropertyAddForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/SkuList.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/components/spu.data.ts create mode 100644 grailed-ui-admin-vue3/src/views/mall/product/spu/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/combination/CombinationActivityForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/combination/combinationActivity.data.ts create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/combination/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/components/SpuAndSkuList.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/components/SpuSelect.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/components/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/coupon/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/couponTemplate/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/seckill/activity/SeckillActivityForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/seckill/activity/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/seckill/activity/seckillActivity.data.ts create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/seckill/config/SeckillConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/seckill/config/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/promotion/seckill/config/seckillConfig.data.ts create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/delivery/express/ExpressForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/delivery/express/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/delivery/expressTemplate/ExpressTemplateForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/delivery/expressTemplate/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/delivery/pickUpStore/PickUpStoreForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/delivery/pickUpStore/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/order/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mall/trade/order/tradeOrderDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/UserAssignRoleForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/UserForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/UserImportForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/balanceAccount/BalanceAccountForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/balanceAccount/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/balanceRecord/BalanceRecordForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/balanceRecord/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/BankWithdrawalDetailForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/brand/BrandForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/brand/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/category/CategoryForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/category/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/channel/ChannelForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/channel/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/channelConfig/ChannelConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/channelConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/checkIn/CheckInForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/checkIn/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/combinationConfig/CombinationConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/combinationConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/combinationRecord/CombinationRecordForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/combinationRecord/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/combinationReocrd/CombinationReocrdForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/combinationReocrd/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/contentCarouse/ContentCarouseForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/contentCarouse/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/ContinuousSignInConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/countries/CountriesForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/countries/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/CryptoWithdrawalDetailForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/CumulativeSignInConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/dailySignInConfig/DailySignInConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/dailySignInConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/financeConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/h5Pages/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/levelConfig/LevelConfigForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/levelConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/member/customTask/CustomTaskForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/member/customTask/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/messageSession/MessageSessionForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/messageSession/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderApprove.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/payOrder/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/payOrderExtension/PayOrderExtensionForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/payOrderExtension/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/product/ProductForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/product/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/signInRecord/SignInRecordForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/signInRecord/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/siteConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/tagRelations/TagRelationsForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/tagRelations/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/tags/TagsForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/tags/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/taskComment/TaskCommentForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/taskComment/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/taskConfig/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/taskRecord/TaskRecordForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/taskRecord/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/BalanceAccountTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/BalanceRecordTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/CombinationConfigTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/CustomTaskTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/TaskRecordTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/UserCreditScoreTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/UserForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/UserLevelTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/UserPasswordTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/UserWithdrawalPasswordTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/user/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/userBank/UserBankForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/userBank/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/userCrypto/UserCryptoForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/userCrypto/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/userExtension/UserExtensionForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/userExtension/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalApproveForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/member/withdrawal/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/blacklist/BlacklistForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/blacklist/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/content/ContentForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/content/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/memberRemark/MemberRemarkForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/memberRemark/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/quickGroup/QuickGroupForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/quickGroup/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/quickReplies/QuickRepliesForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/message/quickReplies/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/account/AccountForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/account/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/autoReply/components/types.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/autoReply/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-location/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-location/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/types.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/card.scss create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/comment.scss create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/Msg.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgEvent.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgList.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-msg/types.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-music/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-music/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-news/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-news/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabImage.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabMusic.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabNews.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabText.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVideo.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVoice.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/types.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-reply/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/main.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/components/CoverSelect.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/components/DraftTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/components/NewsForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/components/index.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/components/types.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/editor-config.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/draft/mock.js create mode 100644 grailed-ui-admin-vue3/src/views/mp/freePublish/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/hooks/useUpload.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/material/components/ImageTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/material/components/UploadFile.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/material/components/UploadVideo.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/material/components/VideoTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/material/components/VoiceTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/material/components/upload.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/material/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/assets/iphone_backImg.png create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/assets/menu_foot.png create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/assets/menu_head.png create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/components/MenuEditor.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/components/MenuPreviewer.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/components/menuOptions.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/components/types.ts create mode 100644 grailed-ui-admin-vue3/src/views/mp/menu/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/message/MessageTable.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/message/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/statistics/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/tag/TagForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/tag/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/user/UserForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/mp/user/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/app/components/AppForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/app/components/channel/AlipayChannelForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/app/components/channel/MockChannelForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/app/components/channel/WeixinChannelForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/app/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/merchant/MerchantForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/merchant/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/order/OrderDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/order/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/refund/RefundDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/pay/refund/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/report/goview/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/report/jmreport/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/area/AreaForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/area/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/dept/DeptForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/dept/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/dict/DictTypeForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/dict/data/DictDataForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/dict/data/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/dict/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/errorCode/ErrorCodeForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/errorCode/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/loginlog/LoginLogDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/loginlog/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/account/MailAccountDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/account/MailAccountForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/account/account.data.ts create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/account/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/log/MailLogDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/log/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/log/log.data.ts create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/template/MailTemplateForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/template/MailTemplateSendForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/template/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/mail/template/template.data.ts create mode 100644 grailed-ui-admin-vue3/src/views/system/menu/MenuForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/menu/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notice/NoticeForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notice/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notify/message/NotifyMessageDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notify/message/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notify/my/MyNotifyMessageDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notify/my/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notify/template/NotifyTemplateForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notify/template/NotifyTemplateSendForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/notify/template/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/oauth2/client/ClientForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/oauth2/client/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/oauth2/token/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/operatelog/OperateLogDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/operatelog/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/role/RoleAssignMenuForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/role/RoleDataPermissionForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/role/RoleForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/role/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sensitiveWord/SensitiveWordForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sensitiveWord/SensitiveWordTestForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sensitiveWord/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sms/channel/SmsChannelForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sms/channel/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sms/log/SmsLogDetail.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sms/log/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sms/template/SmsTemplateForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sms/template/SmsTemplateSendForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/sms/template/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/tenant/TenantForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/tenant/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/tenantPackage/TenantPackageForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/tenantPackage/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/translatorDeepl/index.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/user/DeptTree.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/user/UserAssignRoleForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/user/UserForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/user/UserImportForm.vue create mode 100644 grailed-ui-admin-vue3/src/views/system/user/index.vue create mode 100644 grailed-ui-admin-vue3/stylelint.config.js create mode 100644 grailed-ui-admin-vue3/tsconfig.json create mode 100644 grailed-ui-admin-vue3/types/components.d.ts create mode 100644 grailed-ui-admin-vue3/types/custom-types.d.ts create mode 100644 grailed-ui-admin-vue3/types/env.d.ts create mode 100644 grailed-ui-admin-vue3/types/global.d.ts create mode 100644 grailed-ui-admin-vue3/types/router.d.ts create mode 100644 grailed-ui-admin-vue3/uno.config.ts create mode 100644 grailed-ui-admin-vue3/vite.config.ts create mode 100644 grailed-ui-admin-vue3/yarn.lock create mode 100644 grailed-ui-go-view/.commitlintrc.js create mode 100644 grailed-ui-go-view/.env create mode 100644 grailed-ui-go-view/.eslintignore create mode 100644 grailed-ui-go-view/.eslintrc.js create mode 100644 grailed-ui-go-view/.gitignore create mode 100644 grailed-ui-go-view/.husky/commit-msg create mode 100644 grailed-ui-go-view/.workflow/branch-pipeline.yml create mode 100644 grailed-ui-go-view/.workflow/master-pipeline.yml create mode 100644 grailed-ui-go-view/.workflow/pr-pipeline.yml create mode 100644 grailed-ui-go-view/LICENSE create mode 100644 grailed-ui-go-view/Makefile create mode 100644 grailed-ui-go-view/README.md create mode 100644 grailed-ui-go-view/build/constant.ts create mode 100644 grailed-ui-go-view/index.css create mode 100644 grailed-ui-go-view/index.html create mode 100644 grailed-ui-go-view/package-lock.json create mode 100644 grailed-ui-go-view/package.json create mode 100644 grailed-ui-go-view/plop/plopfile.js create mode 100644 grailed-ui-go-view/plop/store-template/index.d.hbs create mode 100644 grailed-ui-go-view/plop/store-template/index.hbs create mode 100644 grailed-ui-go-view/plop/store-template/prompt.js create mode 100644 grailed-ui-go-view/pnpm-lock.yaml create mode 100644 grailed-ui-go-view/prettier.config.js create mode 100644 grailed-ui-go-view/public/favicon.ico create mode 100644 grailed-ui-go-view/readme/go-view-canvas.png create mode 100644 grailed-ui-go-view/readme/go-view-color.png create mode 100644 grailed-ui-go-view/readme/go-view-doc.png create mode 100644 grailed-ui-go-view/readme/go-view-event.png create mode 100644 grailed-ui-go-view/readme/go-view-fetch.png create mode 100644 grailed-ui-go-view/readme/go-view-filter.png create mode 100644 grailed-ui-go-view/readme/go-view-indexpage.png create mode 100644 grailed-ui-go-view/readme/go-view-qq.png create mode 100644 grailed-ui-go-view/readme/go-view-theme.png create mode 100644 grailed-ui-go-view/readme/logo-poster.png create mode 100644 grailed-ui-go-view/readme/logo-t-y.png create mode 100644 grailed-ui-go-view/readme/logo.png create mode 100644 grailed-ui-go-view/readme/preview.png create mode 100644 grailed-ui-go-view/src/App.vue create mode 100644 grailed-ui-go-view/src/api/axios.config.ts create mode 100644 grailed-ui-go-view/src/api/axios.ts create mode 100644 grailed-ui-go-view/src/api/http.ts create mode 100644 grailed-ui-go-view/src/api/mock/heatMapData.json create mode 100644 grailed-ui-go-view/src/api/mock/index.ts create mode 100644 grailed-ui-go-view/src/api/mock/map.json create mode 100644 grailed-ui-go-view/src/api/mock/scatter.json create mode 100644 grailed-ui-go-view/src/api/mock/test.mock.ts create mode 100644 grailed-ui-go-view/src/api/mock/treemap.json create mode 100644 grailed-ui-go-view/src/api/path/index.ts create mode 100644 grailed-ui-go-view/src/api/path/infra.api.ts create mode 100644 grailed-ui-go-view/src/api/path/project.api.ts create mode 100644 grailed-ui-go-view/src/api/path/project.d.ts create mode 100644 grailed-ui-go-view/src/api/path/system.api.ts create mode 100644 grailed-ui-go-view/src/api/path/system.d.ts create mode 100644 grailed-ui-go-view/src/assets/images/Error.svg create mode 100644 grailed-ui-go-view/src/assets/images/canvas/noData.png create mode 100644 grailed-ui-go-view/src/assets/images/canvas/noImage.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/bar_x.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/bar_y.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/capsule.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/funnel.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/heatmap.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/line.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/line_gradient.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/line_gradient_single.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/line_linear_single.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/map.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/map_amap.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/pie-circle.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/pie.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/process.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/radar.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/scatter-logarithmic-regression.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/scatter-multi.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/scatter.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/tree_map.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/charts/water_WaterPolo.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border01.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border02.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border03.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border04.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border05.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border06.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border07.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border08.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border09.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border10.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border11.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border12.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/border13.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/clock.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/countdown.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/decorates01.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/decorates02.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/decorates03.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/decorates04.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/decorates05.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/decorates06.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/flipper-number.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/number.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/threeEarth01.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/decorates/time.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/informations/iframe.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/informations/photo.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/informations/text_barrage.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/informations/text_gradient.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/informations/text_static.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/informations/video.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/informations/words_cloud.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/tables/table_scrollboard.png create mode 100644 grailed-ui-go-view/src/assets/images/chart/tables/tables_list.png create mode 100644 grailed-ui-go-view/src/assets/images/exception/403.svg create mode 100644 grailed-ui-go-view/src/assets/images/exception/404.svg create mode 100644 grailed-ui-go-view/src/assets/images/exception/500.svg create mode 100644 grailed-ui-go-view/src/assets/images/exception/developing.svg create mode 100644 grailed-ui-go-view/src/assets/images/exception/image-404.png create mode 100644 grailed-ui-go-view/src/assets/images/exception/load-error.svg create mode 100644 grailed-ui-go-view/src/assets/images/exception/nodata.svg create mode 100644 grailed-ui-go-view/src/assets/images/exception/texture.png create mode 100644 grailed-ui-go-view/src/assets/images/exception/theme-color.png create mode 100644 grailed-ui-go-view/src/assets/images/login/input.png create mode 100644 grailed-ui-go-view/src/assets/images/login/login-bg.png create mode 100644 grailed-ui-go-view/src/assets/images/login/one.png create mode 100644 grailed-ui-go-view/src/assets/images/login/three.png create mode 100644 grailed-ui-go-view/src/assets/images/login/two.png create mode 100644 grailed-ui-go-view/src/assets/images/tips/loadingSvg.svg create mode 100644 grailed-ui-go-view/src/assets/logo.png create mode 100644 grailed-ui-go-view/src/assets/videos/earth.mp4 create mode 100644 grailed-ui-go-view/src/components/GoAppProvider/index.ts create mode 100644 grailed-ui-go-view/src/components/GoAppProvider/index.vue create mode 100644 grailed-ui-go-view/src/components/GoLangSelect/index.ts create mode 100644 grailed-ui-go-view/src/components/GoLangSelect/index.vue create mode 100644 grailed-ui-go-view/src/components/GoLoading/LoadingSkeleton.vue create mode 100644 grailed-ui-go-view/src/components/GoLoading/index.ts create mode 100644 grailed-ui-go-view/src/components/GoLoading/index.vue create mode 100644 grailed-ui-go-view/src/components/GoReload/index.ts create mode 100644 grailed-ui-go-view/src/components/GoReload/index.vue create mode 100644 grailed-ui-go-view/src/components/GoSkeleton/index.ts create mode 100644 grailed-ui-go-view/src/components/GoSkeleton/index.vue create mode 100644 grailed-ui-go-view/src/components/GoSystemInfo/index.ts create mode 100644 grailed-ui-go-view/src/components/GoSystemInfo/index.vue create mode 100644 grailed-ui-go-view/src/components/GoSystemSet/index.d.ts create mode 100644 grailed-ui-go-view/src/components/GoSystemSet/index.ts create mode 100644 grailed-ui-go-view/src/components/GoSystemSet/index.vue create mode 100644 grailed-ui-go-view/src/components/GoThemeSelect/index.ts create mode 100644 grailed-ui-go-view/src/components/GoThemeSelect/index.vue create mode 100644 grailed-ui-go-view/src/components/GoUserInfo/index.ts create mode 100644 grailed-ui-go-view/src/components/GoUserInfo/index.vue create mode 100644 grailed-ui-go-view/src/components/GoUserInfo/person.png create mode 100644 grailed-ui-go-view/src/components/I18n/index.ts create mode 100644 grailed-ui-go-view/src/components/I18n/index.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartGlobImage/index.ts create mode 100644 grailed-ui-go-view/src/components/Pages/ChartGlobImage/index.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/CollapseItem.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/GlobalSetting.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/GlobalSettingPosition.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/NameSetting.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/PositionSetting.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/SettingItem.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/SettingItemBox.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/SizeSetting.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/StylesSetting.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ChartItemSetting/index.ts create mode 100644 grailed-ui-go-view/src/components/Pages/Flipper/index.ts create mode 100644 grailed-ui-go-view/src/components/Pages/Flipper/index.vue create mode 100644 grailed-ui-go-view/src/components/Pages/MonacoEditor/EditorWorker.vue create mode 100644 grailed-ui-go-view/src/components/Pages/MonacoEditor/index.hook.ts create mode 100644 grailed-ui-go-view/src/components/Pages/MonacoEditor/index.ts create mode 100644 grailed-ui-go-view/src/components/Pages/MonacoEditor/index.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ThemeColorSelect/components/ColorList.vue create mode 100644 grailed-ui-go-view/src/components/Pages/ThemeColorSelect/index.ts create mode 100644 grailed-ui-go-view/src/components/Pages/ThemeColorSelect/index.vue create mode 100644 grailed-ui-go-view/src/components/Plugins/DialogContent/index.ts create mode 100644 grailed-ui-go-view/src/components/Plugins/DialogContent/index.vue create mode 100644 grailed-ui-go-view/src/components/Plugins/LoadingContent/index.ts create mode 100644 grailed-ui-go-view/src/components/Plugins/LoadingContent/index.vue create mode 100644 grailed-ui-go-view/src/components/Plugins/MessageContent/index.ts create mode 100644 grailed-ui-go-view/src/components/Plugins/MessageContent/index.vue create mode 100644 grailed-ui-go-view/src/components/Tips/MacOsControlBtn/index.ts create mode 100644 grailed-ui-go-view/src/components/Tips/MacOsControlBtn/index.vue create mode 100644 grailed-ui-go-view/src/components/Verifition/index.ts create mode 100644 grailed-ui-go-view/src/components/Verifition/src/Verify.vue create mode 100644 grailed-ui-go-view/src/components/Verifition/src/Verify/VerifyPoints.vue create mode 100644 grailed-ui-go-view/src/components/Verifition/src/Verify/VerifySlide.vue create mode 100644 grailed-ui-go-view/src/components/Verifition/src/Verify/index.ts create mode 100644 grailed-ui-go-view/src/components/Verifition/src/utils/ase.ts create mode 100644 grailed-ui-go-view/src/components/Verifition/src/utils/util.ts create mode 100644 grailed-ui-go-view/src/directives/index.ts create mode 100644 grailed-ui-go-view/src/enums/editPageEnum.ts create mode 100644 grailed-ui-go-view/src/enums/eventEnum.ts create mode 100644 grailed-ui-go-view/src/enums/fileTypeEnum.ts create mode 100644 grailed-ui-go-view/src/enums/httpEnum.ts create mode 100644 grailed-ui-go-view/src/enums/pageEnum.ts create mode 100644 grailed-ui-go-view/src/enums/pluginEnum.ts create mode 100644 grailed-ui-go-view/src/enums/storageEnum.ts create mode 100644 grailed-ui-go-view/src/enums/styleEnum.ts create mode 100644 grailed-ui-go-view/src/hooks/index.ts create mode 100644 grailed-ui-go-view/src/hooks/useChartDataFetch.hook.ts create mode 100644 grailed-ui-go-view/src/hooks/useChartDataPondFetch.hook.ts create mode 100644 grailed-ui-go-view/src/hooks/useCode.hook.ts create mode 100644 grailed-ui-go-view/src/hooks/useLang.hook.ts create mode 100644 grailed-ui-go-view/src/hooks/useLifeHandler.hook.ts create mode 100644 grailed-ui-go-view/src/hooks/usePreviewScale.hook.ts create mode 100644 grailed-ui-go-view/src/hooks/useSystemInit.hook.ts create mode 100644 grailed-ui-go-view/src/hooks/useTheme.hook.ts create mode 100644 grailed-ui-go-view/src/i18n/en/index.ts create mode 100644 grailed-ui-go-view/src/i18n/en/login.ts create mode 100644 grailed-ui-go-view/src/i18n/en/project.ts create mode 100644 grailed-ui-go-view/src/i18n/index.ts create mode 100644 grailed-ui-go-view/src/i18n/zh/index.ts create mode 100644 grailed-ui-go-view/src/i18n/zh/login.ts create mode 100644 grailed-ui-go-view/src/i18n/zh/project.ts create mode 100644 grailed-ui-go-view/src/layout/components/LayoutFooter/index.ts create mode 100644 grailed-ui-go-view/src/layout/components/LayoutFooter/index.vue create mode 100644 grailed-ui-go-view/src/layout/components/LayoutHeader/index.ts create mode 100644 grailed-ui-go-view/src/layout/components/LayoutHeader/index.vue create mode 100644 grailed-ui-go-view/src/layout/components/LayoutHeaderPro/index.ts create mode 100644 grailed-ui-go-view/src/layout/components/LayoutHeaderPro/index.vue create mode 100644 grailed-ui-go-view/src/layout/components/LayoutMain/index.ts create mode 100644 grailed-ui-go-view/src/layout/components/LayoutMain/index.vue create mode 100644 grailed-ui-go-view/src/layout/components/LayoutTransitionMain/index.ts create mode 100644 grailed-ui-go-view/src/layout/components/LayoutTransitionMain/index.vue create mode 100644 grailed-ui-go-view/src/layout/index.vue create mode 100644 grailed-ui-go-view/src/layout/parentLayout.vue create mode 100644 grailed-ui-go-view/src/main.ts create mode 100644 grailed-ui-go-view/src/packages/chartConfiguration/echarts/axis.ts create mode 100644 grailed-ui-go-view/src/packages/chartConfiguration/echarts/index.ts create mode 100644 grailed-ui-go-view/src/packages/chartConfiguration/echarts/label.ts create mode 100644 grailed-ui-go-view/src/packages/chartConfiguration/echarts/line.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCommon/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCommon/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCommon/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCommon/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCommon/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCrossrange/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCrossrange/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCrossrange/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCrossrange/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/BarCrossrange/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/CapsuleChart/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/CapsuleChart/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/CapsuleChart/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/CapsuleChart/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/CapsuleChart/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Bars/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineCommon/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineCommon/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineCommon/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineCommon/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineCommon/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradientSingle/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradientSingle/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradientSingle/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradientSingle/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradientSingle/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradients/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradients/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradients/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradients/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineGradients/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineLinearSingle/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineLinearSingle/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineLinearSingle/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineLinearSingle/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/LineLinearSingle/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Lines/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapAmap/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapAmap/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapAmap/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapAmap/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapAmap/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/110000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/120000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/130000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/140000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/150000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/210000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/220000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/230000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/310000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/320000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/330000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/340000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/350000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/360000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/370000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/410000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/420000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/430000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/440000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/450000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/460000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/500000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/510000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/520000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/530000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/540000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/610000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/620000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/630000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/640000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/650000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/710000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/810000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/820000.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/china.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapGeojson/empty.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/MapBase/mapWithoutHainanIsLands.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Maps/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Funnel/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Funnel/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Funnel/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Funnel/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Funnel/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Heatmap/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Heatmap/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Heatmap/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Heatmap/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Heatmap/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Process/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Process/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Process/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Process/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Radar/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Radar/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Radar/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Radar/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/Radar/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/TreeMap/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/TreeMap/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/TreeMap/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/TreeMap/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/TreeMap/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/WaterPolo/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/WaterPolo/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/WaterPolo/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/WaterPolo/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Mores/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCircle/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCircle/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCircle/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCircle/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCommon/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCommon/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCommon/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCommon/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/PieCommon/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Pies/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterCommon/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterCommon/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterCommon/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterCommon/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterCommon/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterLogarithmicRegression/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterLogarithmicRegression/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterLogarithmicRegression/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterLogarithmicRegression/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/ScatterLogarithmicRegression/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/Scatters/shard.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/index.d.ts create mode 100644 grailed-ui-go-view/src/packages/components/Charts/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border01/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border01/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border01/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border01/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border02/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border02/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border02/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border02/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border03/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border03/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border03/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border03/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border04/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border04/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border04/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border04/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border05/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border05/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border05/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border05/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border06/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border06/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border06/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border06/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border07/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border07/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border07/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border07/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border08/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border08/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border08/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border08/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border09/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border09/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border09/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border09/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border10/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border10/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border10/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border10/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border11/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border11/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border11/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border11/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border12/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border12/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border12/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border12/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border13/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border13/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border13/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/Border13/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Borders/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates01/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates01/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates01/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates01/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates02/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates02/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates02/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates02/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates03/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates03/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates03/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates03/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates04/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates04/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates04/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates04/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates05/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates05/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates05/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates05/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates06/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates06/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates06/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/Decorates06/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Decorates/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Clock/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Clock/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Clock/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Clock/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/CountDown/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/CountDown/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/CountDown/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/CountDown/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/FlipperNumber/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/FlipperNumber/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/FlipperNumber/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/FlipperNumber/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Number/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Number/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Number/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/Number/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/TimeCommon/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/TimeCommon/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/TimeCommon/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/TimeCommon/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Mores/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/Utils/arc.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/Utils/common.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/interfaces/IEvents.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/interfaces/IWord.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/shaders/earth/fragment.fs create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/shaders/earth/vertex.vs create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/world/Assets.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/world/Basic.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/world/Earth.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/world/Resources.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/code/world/Word.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/aircraft.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/aperture.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/earth.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/glow.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/gradient.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/label-old.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/label.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/light_column.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/images/earth/redCircle.png create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/ThreeEarth01/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/Three/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/index.d.ts create mode 100644 grailed-ui-go-view/src/packages/components/Decorates/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Iframe/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Iframe/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Iframe/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Iframe/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Mores/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Informations/Texts/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/index.d.ts create mode 100644 grailed-ui-go-view/src/packages/components/Informations/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.ts create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.vue create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/data.json create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.vue create mode 100644 grailed-ui-go-view/src/packages/components/Tables/Tables/index.ts create mode 100644 grailed-ui-go-view/src/packages/components/Tables/index.d.ts create mode 100644 grailed-ui-go-view/src/packages/components/Tables/index.ts create mode 100644 grailed-ui-go-view/src/packages/index.d.ts create mode 100644 grailed-ui-go-view/src/packages/index.ts create mode 100644 grailed-ui-go-view/src/packages/public/chart.ts create mode 100644 grailed-ui-go-view/src/packages/public/index.ts create mode 100644 grailed-ui-go-view/src/packages/public/publicConfig.ts create mode 100644 grailed-ui-go-view/src/plugins/customComponents.ts create mode 100644 grailed-ui-go-view/src/plugins/directives.ts create mode 100644 grailed-ui-go-view/src/plugins/icon.ts create mode 100644 grailed-ui-go-view/src/plugins/index.ts create mode 100644 grailed-ui-go-view/src/plugins/naive.ts create mode 100644 grailed-ui-go-view/src/router/base.ts create mode 100644 grailed-ui-go-view/src/router/constant.ts create mode 100644 grailed-ui-go-view/src/router/index.ts create mode 100644 grailed-ui-go-view/src/router/modules/chart.route.ts create mode 100644 grailed-ui-go-view/src/router/modules/edit.route.ts create mode 100644 grailed-ui-go-view/src/router/modules/index.ts create mode 100644 grailed-ui-go-view/src/router/modules/preview.route.ts create mode 100644 grailed-ui-go-view/src/router/modules/project.router.ts create mode 100644 grailed-ui-go-view/src/router/router-guards.ts create mode 100644 grailed-ui-go-view/src/router/types.ts create mode 100644 grailed-ui-go-view/src/settings/animations/index.ts create mode 100644 grailed-ui-go-view/src/settings/chartThemes/global.theme.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/index.ts create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/chalk.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/customed.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/dark.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/essos.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/macarons.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/purple-passion.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/roma.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/shine.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/vintage.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/walden.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/westeros.json create mode 100644 grailed-ui-go-view/src/settings/chartThemes/themes/wonderland.json create mode 100644 grailed-ui-go-view/src/settings/designColor.json create mode 100644 grailed-ui-go-view/src/settings/designColorRecommend.json create mode 100644 grailed-ui-go-view/src/settings/designSetting.ts create mode 100644 grailed-ui-go-view/src/settings/httpSetting.ts create mode 100644 grailed-ui-go-view/src/settings/pathConst.ts create mode 100644 grailed-ui-go-view/src/settings/systemSetting.ts create mode 100644 grailed-ui-go-view/src/store/index.ts create mode 100644 grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.ts create mode 100644 grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryDefine.ts create mode 100644 grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.ts create mode 100644 grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.ts create mode 100644 grailed-ui-go-view/src/store/modules/designStore/designStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/designStore/designStore.ts create mode 100644 grailed-ui-go-view/src/store/modules/langStore/langStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/langStore/langStore.ts create mode 100644 grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.ts create mode 100644 grailed-ui-go-view/src/store/modules/settingStore/settingStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/settingStore/settingStore.ts create mode 100644 grailed-ui-go-view/src/store/modules/systemStore/systemStore.d.ts create mode 100644 grailed-ui-go-view/src/store/modules/systemStore/systemStore.ts create mode 100644 grailed-ui-go-view/src/styles/common/_dark.scss create mode 100644 grailed-ui-go-view/src/styles/common/_light.scss create mode 100644 grailed-ui-go-view/src/styles/common/animation.scss create mode 100644 grailed-ui-go-view/src/styles/common/format.scss create mode 100644 grailed-ui-go-view/src/styles/common/mixins/config.scss create mode 100644 grailed-ui-go-view/src/styles/common/mixins/function.scss create mode 100644 grailed-ui-go-view/src/styles/common/mixins/mixins.scss create mode 100644 grailed-ui-go-view/src/styles/common/style.scss create mode 100644 grailed-ui-go-view/src/styles/common/theme.scss create mode 100644 grailed-ui-go-view/src/styles/common/var.scss create mode 100644 grailed-ui-go-view/src/styles/pages/index.scss create mode 100644 grailed-ui-go-view/src/utils/components.ts create mode 100644 grailed-ui-go-view/src/utils/crypto.ts create mode 100644 grailed-ui-go-view/src/utils/file.ts create mode 100644 grailed-ui-go-view/src/utils/http.ts create mode 100644 grailed-ui-go-view/src/utils/index.ts create mode 100644 grailed-ui-go-view/src/utils/plugin.ts create mode 100644 grailed-ui-go-view/src/utils/router.ts create mode 100644 grailed-ui-go-view/src/utils/storage.ts create mode 100644 grailed-ui-go-view/src/utils/style.ts create mode 100644 grailed-ui-go-view/src/utils/type.ts create mode 100644 grailed-ui-go-view/src/utils/utils.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentBox/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentBox/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useAside.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useLayout.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentCharts/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/components/ChartThemeColor/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartAnimation/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/displayTable.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/pondIndex.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/hooks/useFile.hooks.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/importTemplate.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/index.scss create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartSetting/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/components/hooks/useTargetData.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/index.d.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentConfigurations/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/ShortcutKeyModal.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useFile.hooks.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useSyncUpdate.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.d.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/utils/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useDrag.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useLayout.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useStyle.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentEdit/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/enums.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentLayers/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/ContentLoad/index.ts create mode 100644 grailed-ui-go-view/src/views/chart/ContentLoad/index.vue create mode 100644 grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.d.ts create mode 100644 grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/hooks/useKeyboard.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/hooks/useSync.hook.ts create mode 100644 grailed-ui-go-view/src/views/chart/index.vue create mode 100644 grailed-ui-go-view/src/views/edit/index.vue create mode 100644 grailed-ui-go-view/src/views/exception/403.vue create mode 100644 grailed-ui-go-view/src/views/exception/404.vue create mode 100644 grailed-ui-go-view/src/views/exception/500.vue create mode 100644 grailed-ui-go-view/src/views/login/index.vue create mode 100644 grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.ts create mode 100644 grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.vue create mode 100644 grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.ts create mode 100644 grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.vue create mode 100644 grailed-ui-go-view/src/views/preview/hooks/useComInstall.hook.ts create mode 100644 grailed-ui-go-view/src/views/preview/hooks/useScale.hook.ts create mode 100644 grailed-ui-go-view/src/views/preview/hooks/useStore.hook.ts create mode 100644 grailed-ui-go-view/src/views/preview/index.d.ts create mode 100644 grailed-ui-go-view/src/views/preview/index.vue create mode 100644 grailed-ui-go-view/src/views/preview/suspenseIndex.vue create mode 100644 grailed-ui-go-view/src/views/preview/utils/index.ts create mode 100644 grailed-ui-go-view/src/views/preview/utils/storage.ts create mode 100644 grailed-ui-go-view/src/views/preview/utils/style.ts create mode 100644 grailed-ui-go-view/src/views/preview/wrapper.vue create mode 100644 grailed-ui-go-view/src/views/project/index.vue create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.ts create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.vue create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useData.hook.ts create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useModal.hook.ts create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.ts create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.vue create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.ts create mode 100644 grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.vue create mode 100644 grailed-ui-go-view/src/views/project/items/index.d.ts create mode 100644 grailed-ui-go-view/src/views/project/items/index.vue create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.ts create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.vue create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.ts create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.vue create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.ts create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.vue create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.ts create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.vue create mode 100644 grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/menu.ts create mode 100644 grailed-ui-go-view/src/views/project/mtTemplate/index.vue create mode 100644 grailed-ui-go-view/src/views/project/templateMarket/index.vue create mode 100644 grailed-ui-go-view/src/views/redirect/UnPublish.vue create mode 100644 grailed-ui-go-view/src/views/redirect/index.vue create mode 100644 grailed-ui-go-view/tsconfig.json create mode 100644 grailed-ui-go-view/types/global.d.ts create mode 100644 grailed-ui-go-view/types/shims-vue.d.ts create mode 100644 grailed-ui-go-view/types/vite-env.d.ts create mode 100644 grailed-ui-go-view/vite.config.ts create mode 100644 grailed_app/.env create mode 100644 grailed_app/.env - 副本.da create mode 100644 grailed_app/.env.da create mode 100644 grailed_app/.env.dev create mode 100644 grailed_app/.env.in create mode 100644 grailed_app/.env.nz create mode 100644 grailed_app/.env.pt create mode 100644 grailed_app/.env.uk create mode 100644 grailed_app/.env.us create mode 100644 grailed_app/.gitignore create mode 100644 grailed_app/.prettierignore create mode 100644 grailed_app/.vscode/extensions.json create mode 100644 grailed_app/README.md create mode 100644 grailed_app/components.d.ts create mode 100644 grailed_app/env.d.ts create mode 100644 grailed_app/index.html create mode 100644 grailed_app/package-lock.json create mode 100644 grailed_app/package.json create mode 100644 grailed_app/postcss.config.ts create mode 100644 grailed_app/prettier.config.ts create mode 100644 grailed_app/public/baltini-logo.webp create mode 100644 grailed_app/public/faviocn.webp create mode 100644 grailed_app/src/App.vue create mode 100644 grailed_app/src/api/auth/index.ts create mode 100644 grailed_app/src/api/auth/type.ts create mode 100644 grailed_app/src/api/balance/index.ts create mode 100644 grailed_app/src/api/channelConfig/index.ts create mode 100644 grailed_app/src/api/checkIn/index.ts create mode 100644 grailed_app/src/api/countries/index.ts create mode 100644 grailed_app/src/api/home/index.ts create mode 100644 grailed_app/src/api/order/index.ts create mode 100644 grailed_app/src/api/pages/index.ts create mode 100644 grailed_app/src/api/payOrder/index.ts create mode 100644 grailed_app/src/api/service/index.ts create mode 100644 grailed_app/src/api/settings/index.ts create mode 100644 grailed_app/src/api/start/index.ts create mode 100644 grailed_app/src/api/user/index.ts create mode 100644 grailed_app/src/api/withdrawal/Index.ts create mode 100644 grailed_app/src/assets/css/main.css create mode 100644 grailed_app/src/assets/icons/allow-down.svg create mode 100644 grailed_app/src/assets/icons/allow-left.svg create mode 100644 grailed_app/src/assets/icons/angle-left-circle.svg create mode 100644 grailed_app/src/assets/icons/chatLess.svg create mode 100644 grailed_app/src/assets/icons/chevron-right.svg create mode 100644 grailed_app/src/assets/icons/click.svg create mode 100644 grailed_app/src/assets/icons/close.svg create mode 100644 grailed_app/src/assets/icons/copy-alt.svg create mode 100644 grailed_app/src/assets/icons/daily/left.svg create mode 100644 grailed_app/src/assets/icons/daily/right.svg create mode 100644 grailed_app/src/assets/icons/dollar.svg create mode 100644 grailed_app/src/assets/icons/home_selected.svg create mode 100644 grailed_app/src/assets/icons/home_unselected.svg create mode 100644 grailed_app/src/assets/icons/keys.svg create mode 100644 grailed_app/src/assets/icons/lang_icon.svg create mode 100644 grailed_app/src/assets/icons/order_selected.svg create mode 100644 grailed_app/src/assets/icons/order_unselected.svg create mode 100644 grailed_app/src/assets/icons/profile/bell.svg create mode 100644 grailed_app/src/assets/icons/profile/profile-lv-0.svg create mode 100644 grailed_app/src/assets/icons/profile/question-mark-circle.svg create mode 100644 grailed_app/src/assets/icons/profile/settings.svg create mode 100644 grailed_app/src/assets/icons/profile/user-plus.svg create mode 100644 grailed_app/src/assets/icons/profile_selected.svg create mode 100644 grailed_app/src/assets/icons/profile_unselected.svg create mode 100644 grailed_app/src/assets/icons/service_selected.svg create mode 100644 grailed_app/src/assets/icons/service_unselected.svg create mode 100644 grailed_app/src/assets/icons/settings/about-icon.svg create mode 100644 grailed_app/src/assets/icons/settings/arrow.svg create mode 100644 grailed_app/src/assets/icons/settings/currency-dollar-icon.svg create mode 100644 grailed_app/src/assets/icons/settings/globe-alt-icon.svg create mode 100644 grailed_app/src/assets/icons/settings/language-icon.svg create mode 100644 grailed_app/src/assets/icons/settings/logout-icon.svg create mode 100644 grailed_app/src/assets/icons/settings/password-icon.svg create mode 100644 grailed_app/src/assets/icons/settings/personal-icon.svg create mode 100644 grailed_app/src/assets/icons/settings/user-circle.svg create mode 100644 grailed_app/src/assets/icons/start_selected.svg create mode 100644 grailed_app/src/assets/icons/start_unselected.svg create mode 100644 grailed_app/src/assets/icons/vip.svg create mode 100644 grailed_app/src/assets/icons/vip/vip0-icon.svg create mode 100644 grailed_app/src/assets/icons/vip/vip1-icon.svg create mode 100644 grailed_app/src/assets/icons/vip/vip2-icon.svg create mode 100644 grailed_app/src/assets/icons/vip/vip3-icon.svg create mode 100644 grailed_app/src/assets/icons/vip/vip4-icon.svg create mode 100644 grailed_app/src/assets/icons/volume.svg create mode 100644 grailed_app/src/assets/imgs/avatar.jpg create mode 100644 grailed_app/src/assets/imgs/customer.jpg create mode 100644 grailed_app/src/assets/imgs/daily/daily-check-bg.png create mode 100644 grailed_app/src/assets/imgs/daily/daily-check-book.png create mode 100644 grailed_app/src/assets/imgs/home/aliexpress.png create mode 100644 grailed_app/src/assets/imgs/home/amazon.png create mode 100644 grailed_app/src/assets/imgs/home/ebay.png create mode 100644 grailed_app/src/assets/imgs/home/icon-about.png create mode 100644 grailed_app/src/assets/imgs/home/icon-faq.png create mode 100644 grailed_app/src/assets/imgs/home/icon-invite.png create mode 100644 grailed_app/src/assets/imgs/home/icon-term.png create mode 100644 grailed_app/src/assets/imgs/home/manomano.png create mode 100644 grailed_app/src/assets/imgs/home/onbuy.png create mode 100644 grailed_app/src/assets/imgs/home/shopify.png create mode 100644 grailed_app/src/assets/imgs/home/tiktok.jpg create mode 100644 grailed_app/src/assets/imgs/home/wish.png create mode 100644 grailed_app/src/assets/imgs/home/zalando.png create mode 100644 grailed_app/src/assets/imgs/home_bg.png create mode 100644 grailed_app/src/assets/imgs/invitation_bg.png create mode 100644 grailed_app/src/assets/imgs/login/login-bg.png create mode 100644 grailed_app/src/assets/imgs/logo.png create mode 100644 grailed_app/src/assets/imgs/main/avatarBoy.png create mode 100644 grailed_app/src/assets/imgs/main/avatarGirl.png create mode 100644 grailed_app/src/assets/imgs/main/home_selected.png create mode 100644 grailed_app/src/assets/imgs/main/home_unselected.png create mode 100644 grailed_app/src/assets/imgs/main/order_selected.png create mode 100644 grailed_app/src/assets/imgs/main/order_unselected.png create mode 100644 grailed_app/src/assets/imgs/main/profile_selected.png create mode 100644 grailed_app/src/assets/imgs/main/profile_unselected.png create mode 100644 grailed_app/src/assets/imgs/main/service_selected.png create mode 100644 grailed_app/src/assets/imgs/main/service_unselected.png create mode 100644 grailed_app/src/assets/imgs/main/start_selected.png create mode 100644 grailed_app/src/assets/imgs/main/start_unselected.png create mode 100644 grailed_app/src/assets/imgs/phone_border_bg.png create mode 100644 grailed_app/src/assets/imgs/recharge.png create mode 100644 grailed_app/src/assets/imgs/recharge/dollar-big.png create mode 100644 grailed_app/src/assets/imgs/recharge/dollar-small.png create mode 100644 grailed_app/src/assets/imgs/recharge/line.png create mode 100644 grailed_app/src/assets/imgs/start/card-vip-bg.png create mode 100644 grailed_app/src/assets/imgs/start/level1.png create mode 100644 grailed_app/src/assets/imgs/start/level2.png create mode 100644 grailed_app/src/assets/imgs/start/level3.png create mode 100644 grailed_app/src/assets/imgs/start/level4.png create mode 100644 grailed_app/src/assets/imgs/start/level5.png create mode 100644 grailed_app/src/assets/imgs/sub-title-bg.png create mode 100644 grailed_app/src/assets/imgs/task-1.jpg create mode 100644 grailed_app/src/assets/imgs/whatsapp.png create mode 100644 grailed_app/src/assets/imgs/withdraw.png create mode 100644 grailed_app/src/assets/logo/baltini-logo.webp create mode 100644 grailed_app/src/assets/logo/luxe-logo.jpg create mode 100644 grailed_app/src/assets/logo/luxlair-logo.jpg create mode 100644 grailed_app/src/assets/lottie/animation_loading.json create mode 100644 grailed_app/src/assets/lottie/animation_success.json create mode 100644 grailed_app/src/components/Dialog.vue create mode 100644 grailed_app/src/components/GrailedDialog.vue create mode 100644 grailed_app/src/components/GrailedHeader.vue create mode 100644 grailed_app/src/components/Success.vue create mode 100644 grailed_app/src/components/SvgIcon.vue create mode 100644 grailed_app/src/components/TermsModal.vue create mode 100644 grailed_app/src/config/axios/config.ts create mode 100644 grailed_app/src/config/axios/errorCode.ts create mode 100644 grailed_app/src/config/axios/index.ts create mode 100644 grailed_app/src/config/axios/service.ts create mode 100644 grailed_app/src/hooks/useCache.ts create mode 100644 grailed_app/src/hooks/useLogo.ts create mode 100644 grailed_app/src/i18n/helper.ts create mode 100644 grailed_app/src/i18n/index.ts create mode 100644 grailed_app/src/i18n/lang/da-dk.ts create mode 100644 grailed_app/src/i18n/lang/dn-de.ts create mode 100644 grailed_app/src/i18n/lang/en-us.ts create mode 100644 grailed_app/src/i18n/lang/en-us2.ts create mode 100644 grailed_app/src/i18n/lang/lang-base.ts create mode 100644 grailed_app/src/i18n/lang/pt-pt.ts create mode 100644 grailed_app/src/i18n/lang/st-st.ts create mode 100644 grailed_app/src/main.ts create mode 100644 grailed_app/src/router/index.ts create mode 100644 grailed_app/src/router/permission.ts create mode 100644 grailed_app/src/stores/counter.ts create mode 100644 grailed_app/src/stores/modules/locale.ts create mode 100644 grailed_app/src/utils/auth.ts create mode 100644 grailed_app/src/utils/formatTime.ts create mode 100644 grailed_app/src/utils/pageUtils.ts create mode 100644 grailed_app/src/views/Main.vue create mode 100644 grailed_app/src/views/about/Index.vue create mode 100644 grailed_app/src/views/balanceRecord/Index.vue create mode 100644 grailed_app/src/views/bindCrypto/Index.vue create mode 100644 grailed_app/src/views/channelSelect/Index.vue create mode 100644 grailed_app/src/views/dailyCheckIn/Index.vue create mode 100644 grailed_app/src/views/helpGuide/Index.vue create mode 100644 grailed_app/src/views/home/Index.vue create mode 100644 grailed_app/src/views/home/components/Carousel.vue create mode 100644 grailed_app/src/views/home/components/Introduce.vue create mode 100644 grailed_app/src/views/home/components/MemberList.vue create mode 100644 grailed_app/src/views/home/components/Notice.vue create mode 100644 grailed_app/src/views/home/components/Partners.vue create mode 100644 grailed_app/src/views/home/components/TaskCarouse.vue create mode 100644 grailed_app/src/views/invitation/Index.vue create mode 100644 grailed_app/src/views/language/Index.vue create mode 100644 grailed_app/src/views/notification/Index.vue create mode 100644 grailed_app/src/views/order/Index.vue create mode 100644 grailed_app/src/views/password/Index.vue create mode 100644 grailed_app/src/views/payOrderDetails/Index.vue create mode 100644 grailed_app/src/views/profile/Index.vue create mode 100644 grailed_app/src/views/recharge/Index.vue create mode 100644 grailed_app/src/views/service/Index.vue create mode 100644 grailed_app/src/views/service/chat/index.vue create mode 100644 grailed_app/src/views/settings/Index.vue create mode 100644 grailed_app/src/views/settingsPersonal/Index.vue create mode 100644 grailed_app/src/views/signIn/Index.vue create mode 100644 grailed_app/src/views/signUp/Index.vue create mode 100644 grailed_app/src/views/start/Index.vue create mode 100644 grailed_app/src/views/start/components/GrabOrder.vue create mode 100644 grailed_app/src/views/start/components/OrderDetails.vue create mode 100644 grailed_app/src/views/start/types/index.ts create mode 100644 grailed_app/src/views/wallet/Index.vue create mode 100644 grailed_app/src/views/withdrawal/Index.vue create mode 100644 grailed_app/src/views/withdrawal/components/PaymentPassword.vue create mode 100644 grailed_app/tailwind.config.ts create mode 100644 grailed_app/tsconfig.app.json create mode 100644 grailed_app/tsconfig.json create mode 100644 grailed_app/tsconfig.node.json create mode 100644 grailed_app/types/global.d.ts create mode 100644 grailed_app/vite.config.ts create mode 100644 grailed_app/yarn.lock create mode 160000 server-node-grailed create mode 100644 vue3-cutomer-chat/.env.da create mode 100644 vue3-cutomer-chat/.env.dev create mode 100644 vue3-cutomer-chat/.env.in create mode 100644 vue3-cutomer-chat/.env.nz create mode 100644 vue3-cutomer-chat/.env.pt create mode 100644 vue3-cutomer-chat/.env.uk create mode 100644 vue3-cutomer-chat/.env.us create mode 100644 vue3-cutomer-chat/.gitignore create mode 100644 vue3-cutomer-chat/README.md create mode 100644 vue3-cutomer-chat/auto-imports.d.ts create mode 100644 vue3-cutomer-chat/components.d.ts create mode 100644 vue3-cutomer-chat/env.d.ts create mode 100644 vue3-cutomer-chat/index.html create mode 100644 vue3-cutomer-chat/package-lock.json create mode 100644 vue3-cutomer-chat/package.json create mode 100644 vue3-cutomer-chat/postcss.config.ts create mode 100644 vue3-cutomer-chat/public/favicon.ico create mode 100644 vue3-cutomer-chat/src/App.vue create mode 100644 vue3-cutomer-chat/src/api/auth/type.ts create mode 100644 vue3-cutomer-chat/src/api/content/index.ts create mode 100644 vue3-cutomer-chat/src/api/user/index.ts create mode 100644 vue3-cutomer-chat/src/assets/audio/notify.mp3 create mode 100644 vue3-cutomer-chat/src/assets/css/main.css create mode 100644 vue3-cutomer-chat/src/assets/emoji/emoji-data.json create mode 100644 vue3-cutomer-chat/src/assets/icons/arrow-path.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/caret-left.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/check-circle.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/check.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/ellipsis-horizontal.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/exclamation-triangle.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/face-smile.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/images.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/paper-clip.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/search.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/send.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/service.svg create mode 100644 vue3-cutomer-chat/src/assets/icons/success.svg create mode 100644 vue3-cutomer-chat/src/components/SvgIcon.vue create mode 100644 vue3-cutomer-chat/src/config/axios/config.ts create mode 100644 vue3-cutomer-chat/src/config/axios/index.ts create mode 100644 vue3-cutomer-chat/src/config/axios/service.ts create mode 100644 vue3-cutomer-chat/src/hooks/useCache.ts create mode 100644 vue3-cutomer-chat/src/main.ts create mode 100644 vue3-cutomer-chat/src/router/index.ts create mode 100644 vue3-cutomer-chat/src/stores/counter.ts create mode 100644 vue3-cutomer-chat/src/stores/message.ts create mode 100644 vue3-cutomer-chat/src/types/global.d.ts create mode 100644 vue3-cutomer-chat/src/utils/auth.ts create mode 100644 vue3-cutomer-chat/src/utils/formatTime.ts create mode 100644 vue3-cutomer-chat/src/views/chat/Index.vue create mode 100644 vue3-cutomer-chat/src/views/chat/components/ChatContent.vue create mode 100644 vue3-cutomer-chat/src/views/chat/components/ChatFooter.vue create mode 100644 vue3-cutomer-chat/src/views/chat/components/ChatHeader.vue create mode 100644 vue3-cutomer-chat/src/views/chat/components/EmojiPicker.vue create mode 100644 vue3-cutomer-chat/src/views/chat/components/MessageContent.vue create mode 100644 vue3-cutomer-chat/src/worker/stompWorkers.ts create mode 100644 vue3-cutomer-chat/tailwind.config.ts create mode 100644 vue3-cutomer-chat/tsconfig.app.json create mode 100644 vue3-cutomer-chat/tsconfig.json create mode 100644 vue3-cutomer-chat/tsconfig.node.json create mode 100644 vue3-cutomer-chat/vite.config.ts create mode 100644 vue3-cutomer-chat/yarn.lock create mode 100644 vue3-service-chat/.env.da create mode 100644 vue3-service-chat/.env.dev create mode 100644 vue3-service-chat/.env.in create mode 100644 vue3-service-chat/.env.nz create mode 100644 vue3-service-chat/.env.pt create mode 100644 vue3-service-chat/.env.uk create mode 100644 vue3-service-chat/.env.us create mode 100644 vue3-service-chat/.env2.da create mode 100644 vue3-service-chat/.gitignore create mode 100644 vue3-service-chat/.vscode/extensions.json create mode 100644 vue3-service-chat/README.md create mode 100644 vue3-service-chat/auto-imports.d.ts create mode 100644 vue3-service-chat/components.d.ts create mode 100644 vue3-service-chat/env.d.ts create mode 100644 vue3-service-chat/index.html create mode 100644 vue3-service-chat/logo2.png create mode 100644 vue3-service-chat/package.json create mode 100644 vue3-service-chat/postcss.config.ts create mode 100644 vue3-service-chat/src/App.vue create mode 100644 vue3-service-chat/src/api/auth/index.ts create mode 100644 vue3-service-chat/src/api/auth/type.ts create mode 100644 vue3-service-chat/src/api/black/index.ts create mode 100644 vue3-service-chat/src/api/content/index.ts create mode 100644 vue3-service-chat/src/api/file/index.ts create mode 100644 vue3-service-chat/src/api/remark/index.ts create mode 100644 vue3-service-chat/src/api/reply/index.ts create mode 100644 vue3-service-chat/src/api/session/index.ts create mode 100644 vue3-service-chat/src/api/tags/index.ts create mode 100644 vue3-service-chat/src/api/user/index.ts create mode 100644 vue3-service-chat/src/assets/audio/notify.mp3 create mode 100644 vue3-service-chat/src/assets/css/main.css create mode 100644 vue3-service-chat/src/assets/emoji/emoji-data.json create mode 100644 vue3-service-chat/src/assets/icons/arrow-path.svg create mode 100644 vue3-service-chat/src/assets/icons/caret-left.svg create mode 100644 vue3-service-chat/src/assets/icons/clipboard-document-list.svg create mode 100644 vue3-service-chat/src/assets/icons/delete.svg create mode 100644 vue3-service-chat/src/assets/icons/ellipsis-horizontal.svg create mode 100644 vue3-service-chat/src/assets/icons/exclamation-triangle.svg create mode 100644 vue3-service-chat/src/assets/icons/face-smile.svg create mode 100644 vue3-service-chat/src/assets/icons/images.svg create mode 100644 vue3-service-chat/src/assets/icons/logo2.svg create mode 100644 vue3-service-chat/src/assets/icons/paper-clip.svg create mode 100644 vue3-service-chat/src/assets/icons/search.svg create mode 100644 vue3-service-chat/src/assets/icons/send.svg create mode 100644 vue3-service-chat/src/assets/icons/service.svg create mode 100644 vue3-service-chat/src/assets/icons/setting.svg create mode 100644 vue3-service-chat/src/assets/icons/speaker-wave.svg create mode 100644 vue3-service-chat/src/assets/icons/speaker-x-mark.svg create mode 100644 vue3-service-chat/src/assets/icons/success-multiple.svg create mode 100644 vue3-service-chat/src/assets/icons/success-singleton.svg create mode 100644 vue3-service-chat/src/assets/icons/success.svg create mode 100644 vue3-service-chat/src/assets/icons/tag.svg create mode 100644 vue3-service-chat/src/assets/icons/user-minus.svg create mode 100644 vue3-service-chat/src/assets/imgs/logo2.png create mode 100644 vue3-service-chat/src/assets/logo.svg create mode 100644 vue3-service-chat/src/components/SvgIcon.vue create mode 100644 vue3-service-chat/src/components/UserTag.vue create mode 100644 vue3-service-chat/src/config/axios/config.ts create mode 100644 vue3-service-chat/src/config/axios/errorCode.ts create mode 100644 vue3-service-chat/src/config/axios/index.ts create mode 100644 vue3-service-chat/src/config/axios/service.ts create mode 100644 vue3-service-chat/src/hooks/useCache.ts create mode 100644 vue3-service-chat/src/main.ts create mode 100644 vue3-service-chat/src/router/index.ts create mode 100644 vue3-service-chat/src/stores/audioStore.ts create mode 100644 vue3-service-chat/src/stores/counter.ts create mode 100644 vue3-service-chat/src/types/global.d.ts create mode 100644 vue3-service-chat/src/utils/audioUtils.ts create mode 100644 vue3-service-chat/src/utils/auth.ts create mode 100644 vue3-service-chat/src/utils/formatTime.ts create mode 100644 vue3-service-chat/src/utils/stringUtils.ts create mode 100644 vue3-service-chat/src/views/chat/Index.vue create mode 100644 vue3-service-chat/src/views/chat/components/Chat.vue create mode 100644 vue3-service-chat/src/views/chat/components/ChatContent.vue create mode 100644 vue3-service-chat/src/views/chat/components/ChatFooter.vue create mode 100644 vue3-service-chat/src/views/chat/components/EmojiPicker.vue create mode 100644 vue3-service-chat/src/views/chat/components/MessageContent.vue create mode 100644 vue3-service-chat/src/views/chat/components/RemarkForm.vue create mode 100644 vue3-service-chat/src/views/chat/components/ReplyPresets.vue create mode 100644 vue3-service-chat/src/views/chat/components/Sidebar.vue create mode 100644 vue3-service-chat/src/views/login/Index.vue create mode 100644 vue3-service-chat/src/worker/stompWorkers.ts create mode 100644 vue3-service-chat/tailwind.config.ts create mode 100644 vue3-service-chat/tsconfig.app.json create mode 100644 vue3-service-chat/tsconfig.json create mode 100644 vue3-service-chat/tsconfig.node.json create mode 100644 vue3-service-chat/vite.config.ts create mode 100644 vue3-service-chat/yarn.lock diff --git a/grailed-ui-admin-vue3/.editorconfig b/grailed-ui-admin-vue3/.editorconfig new file mode 100644 index 0000000..79a12ff --- /dev/null +++ b/grailed-ui-admin-vue3/.editorconfig @@ -0,0 +1,12 @@ +root = true +[*.{js,ts,vue}] +charset = utf-8 # 设置文件字符集为 utf-8 +end_of_line = lf # 控制换行类型(lf | cr | crlf) +insert_final_newline = true # 始终在文件末尾插入一个新行 +indent_style = space # 缩进风格(tab | space) +indent_size = 2 # 缩进大小 +max_line_length = 100 # 最大行长度 + +[*.md] # 仅 md 文件适用以下规则 +max_line_length = off # 关闭最大行长度限制 +trim_trailing_whitespace = false # 关闭末尾空格修剪 diff --git a/grailed-ui-admin-vue3/.env b/grailed-ui-admin-vue3/.env new file mode 100644 index 0000000..6ea7eec --- /dev/null +++ b/grailed-ui-admin-vue3/.env @@ -0,0 +1,14 @@ + + +# 项目本地运行端口号 +VITE_PORT=80 + +# open 运行 npm run dev 时自动打开浏览器 +VITE_OPEN=true + +# 租户开关 +VITE_APP_TENANT_ENABLE=false + +# 验证码的开关 +VITE_APP_CAPTCHA_ENABLE=false + diff --git a/grailed-ui-admin-vue3/.env - 副本.da b/grailed-ui-admin-vue3/.env - 副本.da new file mode 100644 index 0000000..06e9a40 --- /dev/null +++ b/grailed-ui-admin-vue3/.env - 副本.da @@ -0,0 +1,32 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false +# 标题 +VITE_APP_TITLE=丹麦后台 +# 请求路径 +VITE_BASE_URL='https://backend.dabackend.site' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-da diff --git a/grailed-ui-admin-vue3/.env.base b/grailed-ui-admin-vue3/.env.base new file mode 100644 index 0000000..2258461 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.base @@ -0,0 +1,19 @@ +# 本地开发环境 +NODE_ENV=development +VITE_APP_TITLE=LUALAIR +VITE_DEV=true + +# 请求路径 +VITE_BASE_URL='http://localhost:48080' + +# 上传路径 +VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH=/dev-api + +# 接口地址 +VITE_API_URL=/admin-api + +# 打包路径 +VITE_BASE_PATH=/ diff --git a/grailed-ui-admin-vue3/.env.da b/grailed-ui-admin-vue3/.env.da new file mode 100644 index 0000000..23d4ae4 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.da @@ -0,0 +1,32 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false +# 标题 +VITE_APP_TITLE=成都演示后台 +# 请求路径 +VITE_BASE_URL='https://backend.22y.fun' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-da diff --git a/grailed-ui-admin-vue3/.env.dev b/grailed-ui-admin-vue3/.env.dev new file mode 100644 index 0000000..befca23 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.dev @@ -0,0 +1,31 @@ +# 开发环境 +NODE_ENV=development + +VITE_DEV=false +VITE_APP_TITLE=成都演示后台 +# 请求路径 +VITE_BASE_URL='http://127.0.0.1:48080' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH=/dev-api + +# 接口地址 +VITE_API_URL=/admin-api + +# 打包路径 +VITE_BASE_PATH=/ + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=false + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 输出路径 +VITE_OUT_DIR=dist diff --git a/grailed-ui-admin-vue3/.env.in b/grailed-ui-admin-vue3/.env.in new file mode 100644 index 0000000..cd52810 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.in @@ -0,0 +1,32 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false +# 标题 +VITE_APP_TITLE=印度后台 +# 请求路径 +VITE_BASE_URL='https://backend.inbackend.site' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-in diff --git a/grailed-ui-admin-vue3/.env.nz b/grailed-ui-admin-vue3/.env.nz new file mode 100644 index 0000000..b83d456 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.nz @@ -0,0 +1,32 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false +# 标题 +VITE_APP_TITLE=新西兰后台 +# 请求路径 +VITE_BASE_URL='https://backend.nzbackend.site' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-nz diff --git a/grailed-ui-admin-vue3/.env.pro b/grailed-ui-admin-vue3/.env.pro new file mode 100644 index 0000000..8cb2754 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.pro @@ -0,0 +1,31 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='https://backend-us.order-sys.xyz' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-pro diff --git a/grailed-ui-admin-vue3/.env.pt b/grailed-ui-admin-vue3/.env.pt new file mode 100644 index 0000000..1222dfb --- /dev/null +++ b/grailed-ui-admin-vue3/.env.pt @@ -0,0 +1,32 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false +# 标题 +VITE_APP_TITLE=葡萄牙后台 +# 请求路径 +VITE_BASE_URL='https://backend.ptbackend.site' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-pt diff --git a/grailed-ui-admin-vue3/.env.uk b/grailed-ui-admin-vue3/.env.uk new file mode 100644 index 0000000..bf5ba06 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.uk @@ -0,0 +1,32 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false +# 标题 +VITE_APP_TITLE=英国后台 +# 请求路径 +VITE_BASE_URL='https://backend.ukbackend.site' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-uk diff --git a/grailed-ui-admin-vue3/.env.us b/grailed-ui-admin-vue3/.env.us new file mode 100644 index 0000000..9cc2989 --- /dev/null +++ b/grailed-ui-admin-vue3/.env.us @@ -0,0 +1,32 @@ +# 生产环境 +NODE_ENV=production + +VITE_DEV=false +# 标题 +VITE_APP_TITLE=美国后台 +# 请求路径 +VITE_BASE_URL='https://backend.usbackend.site' + +# 上传路径 +VITE_UPLOAD_URL='/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-us diff --git a/grailed-ui-admin-vue3/.eslintignore b/grailed-ui-admin-vue3/.eslintignore new file mode 100644 index 0000000..1e85c0f --- /dev/null +++ b/grailed-ui-admin-vue3/.eslintignore @@ -0,0 +1,8 @@ +/build/ +/config/ +/dist/ +/*.js +/test/unit/coverage/ +/node_modules/* +/dist* +/src/main.ts diff --git a/grailed-ui-admin-vue3/.eslintrc-auto-import.json b/grailed-ui-admin-vue3/.eslintrc-auto-import.json new file mode 100644 index 0000000..024c96a --- /dev/null +++ b/grailed-ui-admin-vue3/.eslintrc-auto-import.json @@ -0,0 +1,259 @@ +{ + "globals": { + "EffectScope": true, + "ElMessage": true, + "ElMessageBox": true, + "ElTag": true, + "asyncComputed": true, + "autoResetRef": true, + "computed": true, + "computedAsync": true, + "computedEager": true, + "computedInject": true, + "computedWithControl": true, + "controlledComputed": true, + "controlledRef": true, + "createApp": true, + "createEventHook": true, + "createGlobalState": true, + "createInjectionState": true, + "createReactiveFn": true, + "createSharedComposable": true, + "createUnrefFn": true, + "customRef": true, + "debouncedRef": true, + "debouncedWatch": true, + "defineAsyncComponent": true, + "defineComponent": true, + "eagerComputed": true, + "effectScope": true, + "extendRef": true, + "getCurrentInstance": true, + "getCurrentScope": true, + "h": true, + "ignorableWatch": true, + "inject": true, + "isDefined": true, + "isProxy": true, + "isReactive": true, + "isReadonly": true, + "isRef": true, + "makeDestructurable": true, + "markRaw": true, + "nextTick": true, + "onActivated": true, + "onBeforeMount": true, + "onBeforeUnmount": true, + "onBeforeUpdate": true, + "onClickOutside": true, + "onDeactivated": true, + "onErrorCaptured": true, + "onKeyStroke": true, + "onLongPress": true, + "onMounted": true, + "onRenderTracked": true, + "onRenderTriggered": true, + "onScopeDispose": true, + "onServerPrefetch": true, + "onStartTyping": true, + "onUnmounted": true, + "onUpdated": true, + "pausableWatch": true, + "provide": true, + "reactify": true, + "reactifyObject": true, + "reactive": true, + "reactiveComputed": true, + "reactiveOmit": true, + "reactivePick": true, + "readonly": true, + "ref": true, + "refAutoReset": true, + "refDebounced": true, + "refDefault": true, + "refThrottled": true, + "refWithControl": true, + "resolveComponent": true, + "resolveRef": true, + "resolveUnref": true, + "shallowReactive": true, + "shallowReadonly": true, + "shallowRef": true, + "syncRef": true, + "syncRefs": true, + "templateRef": true, + "throttledRef": true, + "throttledWatch": true, + "toRaw": true, + "toReactive": true, + "toRef": true, + "toRefs": true, + "triggerRef": true, + "tryOnBeforeMount": true, + "tryOnBeforeUnmount": true, + "tryOnMounted": true, + "tryOnScopeDispose": true, + "tryOnUnmounted": true, + "unref": true, + "unrefElement": true, + "until": true, + "useActiveElement": true, + "useArrayEvery": true, + "useArrayFilter": true, + "useArrayFind": true, + "useArrayFindIndex": true, + "useArrayJoin": true, + "useArrayMap": true, + "useArrayReduce": true, + "useArraySome": true, + "useAsyncQueue": true, + "useAsyncState": true, + "useAttrs": true, + "useBase64": true, + "useBattery": true, + "useBluetooth": true, + "useBreakpoints": true, + "useBroadcastChannel": true, + "useBrowserLocation": true, + "useCached": true, + "useClipboard": true, + "useColorMode": true, + "useConfirmDialog": true, + "useCounter": true, + "useCssModule": true, + "useCssVar": true, + "useCssVars": true, + "useCurrentElement": true, + "useCycleList": true, + "useDark": true, + "useDateFormat": true, + "useDebounce": true, + "useDebounceFn": true, + "useDebouncedRefHistory": true, + "useDeviceMotion": true, + "useDeviceOrientation": true, + "useDevicePixelRatio": true, + "useDevicesList": true, + "useDisplayMedia": true, + "useDocumentVisibility": true, + "useDraggable": true, + "useDropZone": true, + "useElementBounding": true, + "useElementByPoint": true, + "useElementHover": true, + "useElementSize": true, + "useElementVisibility": true, + "useEventBus": true, + "useEventListener": true, + "useEventSource": true, + "useEyeDropper": true, + "useFavicon": true, + "useFetch": true, + "useFileDialog": true, + "useFileSystemAccess": true, + "useFocus": true, + "useFocusWithin": true, + "useFps": true, + "useFullscreen": true, + "useGamepad": true, + "useGeolocation": true, + "useIdle": true, + "useImage": true, + "useInfiniteScroll": true, + "useIntersectionObserver": true, + "useInterval": true, + "useIntervalFn": true, + "useKeyModifier": true, + "useLastChanged": true, + "useLocalStorage": true, + "useMagicKeys": true, + "useManualRefHistory": true, + "useMediaControls": true, + "useMediaQuery": true, + "useMemoize": true, + "useMemory": true, + "useMounted": true, + "useMouse": true, + "useMouseInElement": true, + "useMousePressed": true, + "useMutationObserver": true, + "useNavigatorLanguage": true, + "useNetwork": true, + "useNow": true, + "useObjectUrl": true, + "useOffsetPagination": true, + "useOnline": true, + "usePageLeave": true, + "useParallax": true, + "usePermission": true, + "usePointer": true, + "usePointerSwipe": true, + "usePreferredColorScheme": true, + "usePreferredDark": true, + "usePreferredLanguages": true, + "useRafFn": true, + "useRefHistory": true, + "useResizeObserver": true, + "useRoute": true, + "useRouter": true, + "useScreenOrientation": true, + "useScreenSafeArea": true, + "useScriptTag": true, + "useScroll": true, + "useScrollLock": true, + "useSessionStorage": true, + "useShare": true, + "useSlots": true, + "useSpeechRecognition": true, + "useSpeechSynthesis": true, + "useStepper": true, + "useStorage": true, + "useStorageAsync": true, + "useStyleTag": true, + "useSupported": true, + "useSwipe": true, + "useTemplateRefsList": true, + "useTextDirection": true, + "useTextSelection": true, + "useTextareaAutosize": true, + "useThrottle": true, + "useThrottleFn": true, + "useThrottledRefHistory": true, + "useTimeAgo": true, + "useTimeout": true, + "useTimeoutFn": true, + "useTimeoutPoll": true, + "useTimestamp": true, + "useTitle": true, + "useToggle": true, + "useTransition": true, + "useUrlSearchParams": true, + "useUserMedia": true, + "useVModel": true, + "useVModels": true, + "useVibrate": true, + "useVirtualList": true, + "useWakeLock": true, + "useWebNotification": true, + "useWebSocket": true, + "useWebWorker": true, + "useWebWorkerFn": true, + "useWindowFocus": true, + "useWindowScroll": true, + "useWindowSize": true, + "watch": true, + "watchArray": true, + "watchAtMost": true, + "watchDebounced": true, + "watchEffect": true, + "watchIgnorable": true, + "watchOnce": true, + "watchPausable": true, + "watchPostEffect": true, + "watchSyncEffect": true, + "watchThrottled": true, + "watchTriggerable": true, + "watchWithFilter": true, + "whenever": true + } +} diff --git a/grailed-ui-admin-vue3/.eslintrc.js b/grailed-ui-admin-vue3/.eslintrc.js new file mode 100644 index 0000000..31c239b --- /dev/null +++ b/grailed-ui-admin-vue3/.eslintrc.js @@ -0,0 +1,71 @@ +// @ts-check +const { defineConfig } = require('eslint-define-config') +module.exports = defineConfig({ + root: true, + env: { + browser: true, + node: true, + es6: true + }, + parser: 'vue-eslint-parser', + plugins: ['vue'], + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 2020, + sourceType: 'module', + jsxPragma: 'React', + ecmaFeatures: { + jsx: true + } + }, + extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + 'plugin:prettier/recommended' + ], + rules: { + 'vue/script-setup-uses-vars': 'error', + 'vue/no-reserved-component-names': 'off', + 'vue/no-setup-props-destructure': 'off', + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-empty-function': 'off', + 'vue/custom-event-name-casing': 'off', + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-unused-vars': 'off', + 'no-unused-vars': 'off', + 'space-before-function-paren': 'off', + + 'vue/attributes-order': 'off', + 'vue/one-component-per-file': 'off', + 'vue/html-closing-bracket-newline': 'off', + 'vue/max-attributes-per-line': 'off', + 'vue/multiline-html-element-content-newline': 'off', + 'vue/singleline-html-element-content-newline': 'off', + 'vue/attribute-hyphenation': 'off', + 'vue/require-default-prop': 'off', + 'vue/require-explicit-emits': 'off', + 'vue/html-self-closing': [ + 'error', + { + html: { + void: 'always', + normal: 'never', + component: 'always' + }, + svg: 'always', + math: 'always' + } + ], + 'vue/multi-word-component-names': 'off', + 'vue/no-v-html': 'off' + } +}) diff --git a/grailed-ui-admin-vue3/.gitignore b/grailed-ui-admin-vue3/.gitignore new file mode 100644 index 0000000..9114a0d --- /dev/null +++ b/grailed-ui-admin-vue3/.gitignore @@ -0,0 +1,12 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local +/dist* +*-lock.* +pnpm-debug +auto-*.d.ts +.idea +.history +dist* diff --git a/grailed-ui-admin-vue3/.prettierignore b/grailed-ui-admin-vue3/.prettierignore new file mode 100644 index 0000000..f68ea86 --- /dev/null +++ b/grailed-ui-admin-vue3/.prettierignore @@ -0,0 +1,11 @@ +/node_modules/** +/dist/ +/dist* +/public/* +/docs/* +/vite.config.ts +/src/types/env.d.ts +/src/types/auto-components.d.ts +/src/types/auto-imports.d.ts +/docs/**/* +CHANGELOG diff --git a/grailed-ui-admin-vue3/.stylelintignore b/grailed-ui-admin-vue3/.stylelintignore new file mode 100644 index 0000000..aa605b4 --- /dev/null +++ b/grailed-ui-admin-vue3/.stylelintignore @@ -0,0 +1,6 @@ +/dist/* +/public/* +public/* +/dist* +/src/types/env.d.ts +/docs/**/* diff --git a/grailed-ui-admin-vue3/.vscode/extensions.json b/grailed-ui-admin-vue3/.vscode/extensions.json new file mode 100644 index 0000000..5d7e57f --- /dev/null +++ b/grailed-ui-admin-vue3/.vscode/extensions.json @@ -0,0 +1,19 @@ +{ + "recommendations": [ + "christian-kohler.path-intellisense", + "vscode-icons-team.vscode-icons", + "davidanson.vscode-markdownlint", + "stylelint.vscode-stylelint", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "mrmlnc.vscode-less", + "lokalise.i18n-ally", + "redhat.vscode-yaml", + "csstools.postcss", + "mikestead.dotenv", + "eamodio.gitlens", + "antfu.iconify", + "antfu.unocss", + "Vue.volar" + ] +} diff --git a/grailed-ui-admin-vue3/.vscode/launch.json b/grailed-ui-admin-vue3/.vscode/launch.json new file mode 100644 index 0000000..64dbf1d --- /dev/null +++ b/grailed-ui-admin-vue3/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "msedge", + "request": "launch", + "name": "Launch Edge against 47.250.38.157", + "url": "http://47.250.38.157", + "webRoot": "${workspaceFolder}/src", + "sourceMaps": true + } + ] +} diff --git a/grailed-ui-admin-vue3/.vscode/settings.json b/grailed-ui-admin-vue3/.vscode/settings.json new file mode 100644 index 0000000..90cca6f --- /dev/null +++ b/grailed-ui-admin-vue3/.vscode/settings.json @@ -0,0 +1,167 @@ +{ + "typescript.tsdk": "./node_modules/typescript/lib", + "volar.tsPlugin": true, + "volar.tsPluginStatus": false, + "npm.packageManager": "pnpm", + "editor.tabSize": 2, + "prettier.printWidth": 100, // 超过最大值换行 + "editor.defaultFormatter": "esbenp.prettier-vscode", + "files.eol": "\n", + "search.exclude": { + "**/node_modules": true, + "**/*.log": true, + "**/*.log*": true, + "**/bower_components": true, + "**/dist": true, + "**/elehukouben": true, + "**/.git": true, + "**/.gitignore": true, + "**/.svn": true, + "**/.DS_Store": true, + "**/.idea": true, + "**/.vscode": false, + "**/yarn.lock": true, + "**/tmp": true, + "out": true, + "dist": true, + "node_modules": true, + "CHANGELOG.md": true, + "examples": true, + "res": true, + "screenshots": true, + "yarn-error.log": true, + "**/.yarn": true + }, + "files.exclude": { + "**/.cache": true, + "**/.editorconfig": true, + "**/.eslintcache": true, + "**/bower_components": true, + "**/.idea": true, + "**/tmp": true, + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true + }, + "files.watcherExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/.vscode/**": true, + "**/node_modules/**": true, + "**/tmp/**": true, + "**/bower_components/**": true, + "**/dist/**": true, + "**/yarn.lock": true + }, + "stylelint.enable": true, + "stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass"], + "path-intellisense.mappings": { + "@/": "${workspaceRoot}/src" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "rvest.vs-code-prettier-eslint" + }, + "[html]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[css]": { + "editor.defaultFormatter": "rvest.vs-code-prettier-eslint" + }, + "[less]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[scss]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "[vue]": { + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true, + "source.fixAll.stylelint": true + }, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "i18n-ally.localesPaths": ["src/locales"], + "i18n-ally.keystyle": "nested", + "i18n-ally.sortKeys": true, + "i18n-ally.namespace": true, + "i18n-ally.enabledParsers": ["ts"], + "i18n-ally.sourceLanguage": "zh-CN", + "i18n-ally.displayLanguage": "zh-CN", + "i18n-ally.enabledFrameworks": ["vue", "react"], + "cSpell.words": [ + "brotli", + "browserslist", + "codemirror", + "commitlint", + "cropperjs", + "echarts", + "esnext", + "esno", + "iconify", + "INTLIFY", + "lintstagedrc", + "logicflow", + "nprogress", + "Permi", + "pinia", + "pnpm", + "qrcode", + "sider", + "sortablejs", + "stylelint", + "unocss", + "unplugin", + "videojs", + "vitejs", + "vueuse", + "wangeditor", + "xingyu", + "yudao", + "zxcvbn" + ], + "vetur.format.scriptInitialIndent": true, + "vetur.format.styleInitialIndent": true, + "vetur.validation.script": false, + "MicroPython.executeButton": [ + { + "text": "▶", + "tooltip": "运行", + "alignment": "left", + "command": "extension.executeFile", + "priority": 3.5 + } + ], + "MicroPython.syncButton": [ + { + "text": "$(sync)", + "tooltip": "同步", + "alignment": "left", + "command": "extension.execute", + "priority": 4 + } + ], + // 控制相关文件嵌套展示 + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.expand": false, + "explorer.fileNesting.patterns": { + "*.ts": "$(capture).test.ts, $(capture).test.tsx", + "*.tsx": "$(capture).test.ts, $(capture).test.tsx", + "*.env": "$(capture).env.*", + "package.json": "pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.gitignore,prettier.config.js,stylelint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore" + }, + "terminal.integrated.scrollback": 10000 +} diff --git a/grailed-ui-admin-vue3/LICENSE b/grailed-ui-admin-vue3/LICENSE new file mode 100644 index 0000000..9861118 --- /dev/null +++ b/grailed-ui-admin-vue3/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021-present Archer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/grailed-ui-admin-vue3/README.md b/grailed-ui-admin-vue3/README.md new file mode 100644 index 0000000..c9b9f71 --- /dev/null +++ b/grailed-ui-admin-vue3/README.md @@ -0,0 +1,235 @@ +**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!!** + +**「我喜欢写代码,乐此不疲」** +**「我喜欢做开源,以此为乐」** + +我 🐶 在上海艰苦奋斗,早中晚在 top3 大厂认真搬砖,夜里为开源做贡献。 + +如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 + +## 🐶 新手必读 + +* nodejs > 16.0.0 && pnpm > 8.6.0 (强制使用pnpm) +* 演示地址【Vue3 + element-plus】: +* 演示地址【Vue3 + vben(ant-design-vue)】: +* 演示地址【Vue2 + element-ui】: +* 启动文档: +* 视频教程: + +## 🐯 平台简介 + +**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。 + +* 采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) 实现 +* 改换 saas,自动引入等功能 +* 使用 Element Plus 免费开源的中后台模版,具备如下特性: + +![首页](public/home.png) + +* **最新技术栈**:使用 Vue3、Vite4 等前端前沿技术开发 +* **TypeScript**: 应用程序级 JavaScript 的语言 +* **主题**: 可配置的主题 +* **国际化**:内置完善的国际化方案 +* **权限**:内置完善的动态路由权限生成方案 +* **组件**:二次封装了多个常用的组件 +* **示例**:内置丰富的示例 + +## 技术栈 + +| 框架 | 说明 | 版本 | +|----------------------------------------------------------------------|------------------|--------| +| [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.3.4 | +| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.4.8 | +| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.3.9 | +| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 5.1.6 | +| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.6 | +| [vueuse](https://vueuse.org/) | 常用工具集 | 10.3.0 | +| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | +| [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.2.4 | +| [unocss](https://uno.antfu.me/) | 原子 css | 0.54.1 | +| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.1.1 | +| [wangeditor](https://www.wangeditor.com/) | 富文本编辑器 | 5.1.23 | + +## 开发工具 + +推荐 VS Code 开发,配合插件如下: + +| 插件名 | 功能 | +|-------------------------------|--------------------------| +| TypeScript Vue Plugin (Volar) | 用于 TypeScript 的 Vue 插件 | +| Vue Language Features (Volar) | Vue3.0 语法支持 | +| unocss | unocss for vscode | +| Iconify IntelliSense | Iconify 预览和搜索 | +| i18n Ally | 国际化智能提示 | +| Stylelint | Css 格式化 | +| Prettier | 代码格式化 | +| ESLint | 脚本代码检查 | +| DotENV | env 文件高亮 | + +## 内置功能 + +系统内置多种多种业务功能,可以用于快速你的业务系统: + +* 系统功能 +* 基础设施 +* 工作流程 +* 支付系统 +* 会员中心 +* 数据报表 +* 商城系统 +* 微信公众号 + +### 系统功能 + +| | 功能 | 描述 | +|-----|-------|---------------------------------| +| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 | +| ⭐️ | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 | +| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | +| | 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能 | +| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 | +| | 岗位管理 | 配置系统用户所属担任职务 | +| 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 | +| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 | +| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | +| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 | +| 🚀 | 邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 | +| 🚀 | 站内信 | 系统内的消息通知,提供站内信模版、站内信消息 | +| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 | +| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 | +| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 | +| | 通知公告 | 系统通知公告信息发布维护 | +| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 | +| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 | +| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 | + +### 工作流程 + +| | 功能 | 描述 | +|-----|-------|----------------------------------------| +| 🚀 | 流程模型 | 配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则 | +| 🚀 | 流程表单 | 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件 | +| 🚀 | 用户分组 | 自定义用户分组,可用于工作流的审批分组 | +| 🚀 | 我的流程 | 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线 | +| 🚀 | 待办任务 | 查看自己【未】审批的工作任务,支持通过、不通过、转发、委派、退回等操作 | +| 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 | +| 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 | + +### 支付系统 + +| | 功能 | 描述 | +|-----|------|---------------------------| +| 🚀 | 商户信息 | 管理商户信息,支持 Saas 场景下的多商户功能 | +| 🚀 | 应用信息 | 配置商户的应用信息,对接支付宝、微信等多个支付渠道 | +| 🚀 | 支付订单 | 查看用户发起的支付宝、微信等的【支付】订单 | +| 🚀 | 退款订单 | 查看用户发起的支付宝、微信等的【退款】订单 | + +ps:核心功能已经实现,正在对接微信小程序中... + +### 基础设施 + +| | 功能 | 描述 | +|-----|----------|----------------------------------------------| +| 🚀 | 代码生成 | 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 | +| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 | +| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 | +| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 | +| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 | +| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 | +| 🚀 | 文件服务 | 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等 | +| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 | +| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 | +| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 | +| 🚀 | 消息队列 | 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费 | +| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 | +| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 | +| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 | +| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 | +| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 | +| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 | +| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 | +| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 | + +### 数据报表 + +| | 功能 | 描述 | +|-----|-------|--------------------| +| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 | +| 🚀 | 大屏设计器 | 拖拽生成数据大屏,内置几十种图表组件 | + +### 微信公众号 + +| | 功能 | 描述 | +|-----|--------|-------------------------------| +| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 | +| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 | +| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 | +| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 | +| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 | +| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 | +| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 | +| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 | +| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 | +| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 | + +### 商城系统 + +建设中... + +![功能图](http://static.iocoder.cn/mall%20%E5%8A%9F%E8%83%BD%E5%9B%BE-min.png) + +![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-admin-min.gif) + +![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-h5-min.gif) + +## 🐷 演示图 + +### 系统功能 + +| 模块 | biu | biu | biu | +|------------|--------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------| +| 登录 & 首页 | ![登录](https://static.iocoder.cn/images/ruoyi-vue-pro/登录.jpg?imageView2/2/format/webp/w/1280) | ![首页](https://static.iocoder.cn/images/ruoyi-vue-pro/首页.jpg?imageView2/2/format/webp/w/1280) | ![个人中心](https://static.iocoder.cn/images/ruoyi-vue-pro/个人中心.jpg?imageView2/2/format/webp/w/1280) | +| 用户 & 应用 | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/用户管理.jpg?imageView2/2/format/webp/w/1280) | ![令牌管理](https://static.iocoder.cn/images/ruoyi-vue-pro/令牌管理.jpg?imageView2/2/format/webp/w/1280) | ![应用管理](https://static.iocoder.cn/images/ruoyi-vue-pro/应用管理.jpg?imageView2/2/format/webp/w/1280) | +| 租户 & 套餐 | ![租户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/租户管理.jpg?imageView2/2/format/webp/w/1280) | ![租户套餐](https://static.iocoder.cn/images/ruoyi-vue-pro/租户套餐.png) | - | +| 部门 & 岗位 | ![部门管理](https://static.iocoder.cn/images/ruoyi-vue-pro/部门管理.jpg?imageView2/2/format/webp/w/1280) | ![岗位管理](https://static.iocoder.cn/images/ruoyi-vue-pro/岗位管理.jpg?imageView2/2/format/webp/w/1280) | - | +| 菜单 & 角色 | ![菜单管理](https://static.iocoder.cn/images/ruoyi-vue-pro/菜单管理.jpg?imageView2/2/format/webp/w/1280) | ![角色管理](https://static.iocoder.cn/images/ruoyi-vue-pro/角色管理.jpg?imageView2/2/format/webp/w/1280) | - | +| 审计日志 | ![操作日志](https://static.iocoder.cn/images/ruoyi-vue-pro/操作日志.jpg?imageView2/2/format/webp/w/1280) | ![登录日志](https://static.iocoder.cn/images/ruoyi-vue-pro/登录日志.jpg?imageView2/2/format/webp/w/1280) | - | +| 短信 | ![短信渠道](https://static.iocoder.cn/images/ruoyi-vue-pro/短信渠道.jpg?imageView2/2/format/webp/w/1280) | ![短信模板](https://static.iocoder.cn/images/ruoyi-vue-pro/短信模板.jpg?imageView2/2/format/webp/w/1280) | ![短信日志](https://static.iocoder.cn/images/ruoyi-vue-pro/短信日志.jpg?imageView2/2/format/webp/w/1280) | +| 字典 & 敏感词 | ![字典类型](https://static.iocoder.cn/images/ruoyi-vue-pro/字典类型.jpg?imageView2/2/format/webp/w/1280) | ![字典数据](https://static.iocoder.cn/images/ruoyi-vue-pro/字典数据.jpg?imageView2/2/format/webp/w/1280) | ![敏感词](https://static.iocoder.cn/images/ruoyi-vue-pro/敏感词.jpg?imageView2/2/format/webp/w/1280) | +| 错误码 & 通知 | ![错误码管理](https://static.iocoder.cn/images/ruoyi-vue-pro/错误码管理.jpg?imageView2/2/format/webp/w/1280) | ![通知公告](https://static.iocoder.cn/images/ruoyi-vue-pro/通知公告.jpg?imageView2/2/format/webp/w/1280) | - | + +### 工作流程 + +| 模块 | biu | biu | biu | +|---------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------| +| 流程模型 | ![流程模型-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-列表.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-设计](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-设计.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-定义](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-定义.jpg?imageView2/2/format/webp/w/1280) | +| 表单 & 分组 | ![流程表单](https://static.iocoder.cn/images/ruoyi-vue-pro/流程表单.jpg?imageView2/2/format/webp/w/1280) | ![用户分组](https://static.iocoder.cn/images/ruoyi-vue-pro/用户分组.jpg?imageView2/2/format/webp/w/1280) | - | +| 我的流程 | ![我的流程-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-列表.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-发起.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-详情.jpg?imageView2/2/format/webp/w/1280) | +| 待办 & 已办 | ![任务列表-审批](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-审批.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-待办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-待办.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-已办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-已办.jpg?imageView2/2/format/webp/w/1280) | +| OA 请假 | ![OA请假-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-列表.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-发起.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-详情.jpg?imageView2/2/format/webp/w/1280) | + +### 基础设施 + +| 模块 | biu | biu | biu | +|---------------|----------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------| +| 代码生成 | ![代码生成](https://static.iocoder.cn/images/ruoyi-vue-pro/代码生成.jpg?imageView2/2/format/webp/w/1280) | ![生成效果](https://static.iocoder.cn/images/ruoyi-vue-pro/生成效果.jpg?imageView2/2/format/webp/w/1280) | - | +| 文档 | ![系统接口](https://static.iocoder.cn/images/ruoyi-vue-pro/系统接口.jpg?imageView2/2/format/webp/w/1280) | ![数据库文档](https://static.iocoder.cn/images/ruoyi-vue-pro/数据库文档.jpg?imageView2/2/format/webp/w/1280) | - | +| 文件 & 配置 | ![文件配置](https://static.iocoder.cn/images/ruoyi-vue-pro/文件配置.jpg?imageView2/2/format/webp/w/1280) | ![文件管理](https://static.iocoder.cn/images/ruoyi-vue-pro/文件管理2.jpg?imageView2/2/format/webp/w/1280) | ![配置管理](https://static.iocoder.cn/images/ruoyi-vue-pro/配置管理.jpg?imageView2/2/format/webp/w/1280) | +| 定时任务 | ![定时任务](https://static.iocoder.cn/images/ruoyi-vue-pro/定时任务.jpg?imageView2/2/format/webp/w/1280) | ![任务日志](https://static.iocoder.cn/images/ruoyi-vue-pro/任务日志.jpg?imageView2/2/format/webp/w/1280) | - | +| API 日志 | ![访问日志](https://static.iocoder.cn/images/ruoyi-vue-pro/访问日志.jpg?imageView2/2/format/webp/w/1280) | ![错误日志](https://static.iocoder.cn/images/ruoyi-vue-pro/错误日志.jpg?imageView2/2/format/webp/w/1280) | - | +| MySQL & Redis | ![MySQL](https://static.iocoder.cn/images/ruoyi-vue-pro/MySQL.jpg?imageView2/2/format/webp/w/1280) | ![Redis](https://static.iocoder.cn/images/ruoyi-vue-pro/Redis.jpg?imageView2/2/format/webp/w/1280) | - | +| 监控平台 | ![Java监控](https://static.iocoder.cn/images/ruoyi-vue-pro/Java监控.jpg?imageView2/2/format/webp/w/1280) | ![链路追踪](https://static.iocoder.cn/images/ruoyi-vue-pro/链路追踪.jpg?imageView2/2/format/webp/w/1280) | ![日志中心](https://static.iocoder.cn/images/ruoyi-vue-pro/日志中心.jpg?imageView2/2/format/webp/w/1280) | + +### 支付系统 + +| 模块 | biu | biu | biu | +|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------| +| 商家 & 应用 | ![商户信息](https://static.iocoder.cn/images/ruoyi-vue-pro/商户信息.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-列表.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-编辑.jpg?imageView2/2/format/webp/w/1280) | +| 支付 & 退款 | ![支付订单](https://static.iocoder.cn/images/ruoyi-vue-pro/支付订单.jpg?imageView2/2/format/webp/w/1280) | ![退款订单](https://static.iocoder.cn/images/ruoyi-vue-pro/退款订单.jpg?imageView2/2/format/webp/w/1280) | --- | + +### 数据报表 + +| 模块 | biu | biu | biu | +|-------|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| +| 报表设计器 | ![数据报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-数据报表.jpg?imageView2/2/format/webp/w/1280) | ![图形报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-图形报表.jpg?imageView2/2/format/webp/w/1280) | ![报表设计器-打印设计](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-打印设计.jpg?imageView2/2/format/webp/w/1280) | +| 大屏设计器 | ![大屏列表](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-列表.jpg?imageView2/2/format/webp/w/1280) | ![大屏预览](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-预览.jpg?imageView2/2/format/webp/w/1280) | ![大屏编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-编辑.jpg?imageView2/2/format/webp/w/1280) | diff --git a/grailed-ui-admin-vue3/build/vite/index.ts b/grailed-ui-admin-vue3/build/vite/index.ts new file mode 100644 index 0000000..377e5a7 --- /dev/null +++ b/grailed-ui-admin-vue3/build/vite/index.ts @@ -0,0 +1,108 @@ +import { resolve } from 'path' +import Vue from '@vitejs/plugin-vue' +import VueJsx from '@vitejs/plugin-vue-jsx' +import progress from 'vite-plugin-progress' +import EslintPlugin from 'vite-plugin-eslint' +import PurgeIcons from 'vite-plugin-purge-icons' +import { ViteEjsPlugin } from 'vite-plugin-ejs' +// @ts-ignore +import ElementPlus from 'unplugin-element-plus/vite' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' +import viteCompression from 'vite-plugin-compression' +import topLevelAwait from 'vite-plugin-top-level-await' +import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite' +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' +import UnoCSS from 'unocss/vite' + +export function createVitePlugins() { + const root = process.cwd() + + // 路径查找 + function pathResolve(dir: string) { + return resolve(root, '.', dir) + } + + return [ + Vue(), + VueJsx(), + UnoCSS(), + progress(), + PurgeIcons(), + ElementPlus({}), + AutoImport({ + include: [ + /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx + /\.vue$/, + /\.vue\?vue/, // .vue + /\.md$/ // .md + ], + imports: [ + 'vue', + 'vue-router', + // 可额外添加需要 autoImport 的组件 + { + '@/hooks/web/useI18n': ['useI18n'], + '@/hooks/web/useMessage': ['useMessage'], + '@/hooks/web/useTable': ['useTable'], + '@/hooks/web/useCrudSchemas': ['useCrudSchemas'], + '@/utils/formRules': ['required'], + '@/utils/dict': ['DICT_TYPE'] + } + ], + dts: 'src/types/auto-imports.d.ts', + resolvers: [ElementPlusResolver()], + eslintrc: { + enabled: false, // Default `false` + filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json` + globalsPropValue: true // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable') + } + }), + Components({ + // 要搜索组件的目录的相对路径 + dirs: ['src/components'], + // 组件的有效文件扩展名 + extensions: ['vue', 'md'], + // 搜索子目录 + deep: true, + include: [/\.vue$/, /\.vue\?vue/], + // 生成自定义 `auto-components.d.ts` 全局声明 + dts: 'src/types/auto-components.d.ts', + // 自定义组件的解析器 + resolvers: [ElementPlusResolver()], + exclude: [/[\\/]node_modules[\\/]/] + }), + EslintPlugin({ + cache: false, + include: ['src/**/*.tsx'] // 检查的文件 + // include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件 + }), + VueI18nPlugin({ + runtimeOnly: true, + compositionOnly: true, + include: [resolve(__dirname, 'src/locales/**')] + }), + createSvgIconsPlugin({ + iconDirs: [pathResolve('src/assets/svgs')], + symbolId: 'icon-[dir]-[name]', + svgoOptions: true + }), + viteCompression({ + verbose: true, // 是否在控制台输出压缩结果 + disable: false, // 是否禁用 + threshold: 10240, // 体积大于 threshold 才会被压缩,单位 b + algorithm: 'gzip', // 压缩算法,可选 [ 'gzip' , 'brotliCompress' ,'deflate' , 'deflateRaw'] + ext: '.gz', // 生成的压缩包后缀 + deleteOriginFile: false //压缩后是否删除源文件 + }), + ViteEjsPlugin(), + topLevelAwait({ + // https://juejin.cn/post/7152191742513512485 + // The export name of top-level await promise for each chunk module + promiseExportName: '__tla', + // The function to generate import names of top-level await promise in each chunk module + promiseImportName: (i) => `__tla_${i}` + }) + ] +} diff --git a/grailed-ui-admin-vue3/build/vite/optimize.ts b/grailed-ui-admin-vue3/build/vite/optimize.ts new file mode 100644 index 0000000..d34e1b3 --- /dev/null +++ b/grailed-ui-admin-vue3/build/vite/optimize.ts @@ -0,0 +1,110 @@ +const include = [ + 'qs', + 'url', + 'vue', + 'sass', + 'mitt', + 'axios', + 'pinia', + 'dayjs', + 'qrcode', + 'unocss', + 'vue-router', + 'vue-types', + 'vue-i18n', + 'crypto-js', + 'cropperjs', + 'lodash-es', + 'nprogress', + 'web-storage-cache', + '@iconify/iconify', + '@vueuse/core', + '@zxcvbn-ts/core', + 'echarts/core', + 'echarts/charts', + 'echarts/components', + 'echarts/renderers', + 'echarts-wordcloud', + '@wangeditor/editor', + '@wangeditor/editor-for-vue', + 'element-plus', + 'element-plus/es', + 'element-plus/es/locale/lang/zh-cn', + 'element-plus/es/locale/lang/en', + 'element-plus/es/components/backtop/style/css', + 'element-plus/es/components/form/style/css', + 'element-plus/es/components/radio-group/style/css', + 'element-plus/es/components/radio/style/css', + 'element-plus/es/components/checkbox/style/css', + 'element-plus/es/components/checkbox-group/style/css', + 'element-plus/es/components/switch/style/css', + 'element-plus/es/components/time-picker/style/css', + 'element-plus/es/components/date-picker/style/css', + 'element-plus/es/components/descriptions/style/css', + 'element-plus/es/components/descriptions-item/style/css', + 'element-plus/es/components/link/style/css', + 'element-plus/es/components/tooltip/style/css', + 'element-plus/es/components/drawer/style/css', + 'element-plus/es/components/dialog/style/css', + 'element-plus/es/components/checkbox-button/style/css', + 'element-plus/es/components/option-group/style/css', + 'element-plus/es/components/radio-button/style/css', + 'element-plus/es/components/cascader/style/css', + 'element-plus/es/components/color-picker/style/css', + 'element-plus/es/components/input-number/style/css', + 'element-plus/es/components/rate/style/css', + 'element-plus/es/components/select-v2/style/css', + 'element-plus/es/components/tree-select/style/css', + 'element-plus/es/components/slider/style/css', + 'element-plus/es/components/time-select/style/css', + 'element-plus/es/components/autocomplete/style/css', + 'element-plus/es/components/image-viewer/style/css', + 'element-plus/es/components/upload/style/css', + 'element-plus/es/components/col/style/css', + 'element-plus/es/components/form-item/style/css', + 'element-plus/es/components/alert/style/css', + 'element-plus/es/components/breadcrumb/style/css', + 'element-plus/es/components/select/style/css', + 'element-plus/es/components/input/style/css', + 'element-plus/es/components/breadcrumb-item/style/css', + 'element-plus/es/components/tag/style/css', + 'element-plus/es/components/pagination/style/css', + 'element-plus/es/components/table/style/css', + 'element-plus/es/components/table-v2/style/css', + 'element-plus/es/components/table-column/style/css', + 'element-plus/es/components/card/style/css', + 'element-plus/es/components/row/style/css', + 'element-plus/es/components/button/style/css', + 'element-plus/es/components/menu/style/css', + 'element-plus/es/components/sub-menu/style/css', + 'element-plus/es/components/menu-item/style/css', + 'element-plus/es/components/option/style/css', + 'element-plus/es/components/dropdown/style/css', + 'element-plus/es/components/dropdown-menu/style/css', + 'element-plus/es/components/dropdown-item/style/css', + 'element-plus/es/components/skeleton/style/css', + 'element-plus/es/components/skeleton/style/css', + 'element-plus/es/components/backtop/style/css', + 'element-plus/es/components/menu/style/css', + 'element-plus/es/components/sub-menu/style/css', + 'element-plus/es/components/menu-item/style/css', + 'element-plus/es/components/dropdown/style/css', + 'element-plus/es/components/tree/style/css', + 'element-plus/es/components/dropdown-menu/style/css', + 'element-plus/es/components/dropdown-item/style/css', + 'element-plus/es/components/badge/style/css', + 'element-plus/es/components/breadcrumb/style/css', + 'element-plus/es/components/breadcrumb-item/style/css', + 'element-plus/es/components/image/style/css', + 'element-plus/es/components/collapse-transition/style/css', + 'element-plus/es/components/timeline/style/css', + 'element-plus/es/components/timeline-item/style/css', + 'element-plus/es/components/collapse/style/css', + 'element-plus/es/components/collapse-item/style/css', + 'element-plus/es/components/button-group/style/css', + 'element-plus/es/components/text/style/css' +] + +const exclude = ['@iconify/json'] + +export { include, exclude } diff --git a/grailed-ui-admin-vue3/index.html b/grailed-ui-admin-vue3/index.html new file mode 100644 index 0000000..544b91a --- /dev/null +++ b/grailed-ui-admin-vue3/index.html @@ -0,0 +1,147 @@ + + + + + + + + + + %VITE_APP_TITLE% + + +
+ +
+
+
+
+
+
+
+
+
+ + + diff --git a/grailed-ui-admin-vue3/package.json b/grailed-ui-admin-vue3/package.json new file mode 100644 index 0000000..331ba2d --- /dev/null +++ b/grailed-ui-admin-vue3/package.json @@ -0,0 +1,152 @@ +{ + "name": "grailed-ui-admin-vue3", + "version": "1.8.0-snapshot", + "description": "基于vue3、vite4、element-plus、typesScript", + "author": "xingyu", + "private": false, + "scripts": { + "i": "pnpm install", + "dev": "vite --mode base", + "front": "vite --mode front", + "ts:check": "vue-tsc --noEmit", + "build:pro": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode pro", + "build:da": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode da", + "build:us": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode us", + "build:uk": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode uk", + "build:pt": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode pt", + "build:nz": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode nz", + "build:in": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode in", + "build:dev": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode dev", + "build:base": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode base", + "build:stage": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode stage", + "build:static": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode static", + "build:front": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode front", + "serve:pro": "vite preview --mode pro", + "serve:dev": "vite preview --mode dev", + "preview": "pnpm build:base && vite preview", + "clean": "npx rimraf node_modules", + "clean:cache": "npx rimraf node_modules/.cache", + "lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src", + "lint:format": "prettier --write --loglevel warn \"src/**/*.{js,ts,json,tsx,css,less,scss,vue,html,md}\"", + "lint:style": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", + "lint:lint-staged": "lint-staged -c " + }, + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@form-create/designer": "^3.1.0", + "@form-create/element-ui": "^3.1.17", + "@iconify/iconify": "^3.1.1", + "@stomp/stompjs": "^7.0.0", + "@videojs-player/vue": "^1.0.0", + "@vueuse/core": "^10.3.0", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.10", + "@zxcvbn-ts/core": "^3.0.3", + "animate.css": "^4.1.1", + "axios": "^1.4.0", + "benz-amr-recorder": "^1.1.5", + "bpmn-js-token-simulation": "^0.10.0", + "camunda-bpmn-moddle": "^7.0.1", + "cropperjs": "^1.5.13", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.9", + "diagram-js": "^11.6.0", + "echarts": "^5.4.3", + "echarts-wordcloud": "^2.1.0", + "element-plus": "2.3.9", + "fast-xml-parser": "^4.2.7", + "highlight.js": "^11.8.0", + "intro.js": "^7.0.1", + "jsencrypt": "^3.3.2", + "lodash-es": "^4.17.21", + "min-dash": "^4.1.1", + "mitt": "^3.0.1", + "nprogress": "^0.2.0", + "pinia": "^2.1.6", + "qrcode": "^1.5.3", + "qs": "^6.11.2", + "steady-xml": "^0.1.0", + "url": "^0.11.1", + "video.js": "^7.21.5", + "vue": "3.3.4", + "vue-dompurify-html": "^4.1.4", + "vue-i18n": "9.2.2", + "vue-router": "^4.2.4", + "vue-types": "^5.1.1", + "vuedraggable": "^4.1.0", + "web-storage-cache": "^1.1.1", + "xml-js": "^1.6.11" + }, + "devDependencies": { + "@commitlint/cli": "^17.6.7", + "@commitlint/config-conventional": "^17.6.7", + "@iconify/json": "^2.2.98", + "@intlify/unplugin-vue-i18n": "^0.12.2", + "@purge-icons/generated": "^0.9.0", + "@types/intro.js": "^5.1.1", + "@types/lodash-es": "^4.17.8", + "@types/node": "^20.4.0", + "@types/nprogress": "^0.2.0", + "@types/qrcode": "^1.5.1", + "@types/qs": "^6.9.7", + "@typescript-eslint/eslint-plugin": "^6.2.1", + "@typescript-eslint/parser": "^6.2.1", + "@unocss/transformer-variant-group": "^0.54.1", + "@vitejs/plugin-legacy": "^4.1.1", + "@vitejs/plugin-vue": "^4.2.3", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vue-macros/volar": "^0.13.2", + "autoprefixer": "^10.4.14", + "bpmn-js": "^8.9.0", + "bpmn-js-properties-panel": "^0.46.0", + "consola": "^3.2.3", + "eslint": "^8.46.0", + "eslint-config-prettier": "^8.10.0", + "eslint-define-config": "^1.22.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-vue": "^9.16.1", + "lint-staged": "^13.2.3", + "postcss": "^8.4.27", + "postcss-html": "^1.5.0", + "postcss-scss": "^4.0.6", + "prettier": "^3.0.1", + "rimraf": "^5.0.1", + "rollup": "^3.27.2", + "sass": "^1.64.2", + "stylelint": "^15.10.2", + "stylelint-config-html": "^1.1.0", + "stylelint-config-recommended": "^13.0.0", + "stylelint-config-standard": "^34.0.0", + "stylelint-order": "^6.0.3", + "terser": "^5.19.2", + "typescript": "5.1.6", + "unocss": "^0.54.1", + "unplugin-auto-import": "^0.16.6", + "unplugin-element-plus": "^0.8.0", + "unplugin-vue-components": "^0.25.1", + "vite": "4.4.8", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-ejs": "^1.6.4", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-progress": "^0.0.7", + "vite-plugin-purge-icons": "^0.9.2", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-top-level-await": "^1.3.1", + "vue-eslint-parser": "^9.3.1", + "vue-tsc": "^1.8.8" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://gitee.com/yudaocode/yudao-ui-admin-vue3" + }, + "bugs": { + "url": "https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues" + }, + "homepage": "https://gitee.com/yudaocode/yudao-ui-admin-vue3", + "packageManager": "pnpm@8.6.0", + "engines": { + "node": ">= 16.0.0", + "pnpm": ">=8.6.0" + } +} diff --git a/grailed-ui-admin-vue3/postcss.config.js b/grailed-ui-admin-vue3/postcss.config.js new file mode 100644 index 0000000..961986e --- /dev/null +++ b/grailed-ui-admin-vue3/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/grailed-ui-admin-vue3/prettier.config.js b/grailed-ui-admin-vue3/prettier.config.js new file mode 100644 index 0000000..b014bbf --- /dev/null +++ b/grailed-ui-admin-vue3/prettier.config.js @@ -0,0 +1,22 @@ +module.exports = { + printWidth: 100, // 每行代码长度(默认80) + tabWidth: 2, // 每个tab相当于多少个空格(默认2)ab进行缩进(默认false) + useTabs: false, // 是否使用tab + semi: false, // 声明结尾使用分号(默认true) + vueIndentScriptAndStyle: false, + singleQuote: true, // 使用单引号(默认false) + quoteProps: 'as-needed', + bracketSpacing: true, // 对象字面量的大括号间使用空格(默认true) + trailingComma: 'none', // 多行使用拖尾逗号(默认none) + jsxSingleQuote: false, + // 箭头函数参数括号 默认avoid 可选 avoid| always + // avoid 能省略括号的时候就省略 例如x => x + // always 总是有括号 + arrowParens: 'always', + insertPragma: false, + requirePragma: false, + proseWrap: 'never', + htmlWhitespaceSensitivity: 'strict', + endOfLine: 'auto', + rangeStart: 0 +} diff --git a/grailed-ui-admin-vue3/public/favicon.ico b/grailed-ui-admin-vue3/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5a7de08267811feb034bb0c54ab38ca417731aab GIT binary patch literal 4286 zcmcJTdr*|u8OGm?f3Tad7j|KHxq~xpVq;A@HfgF7QY~O)Go9%q6O&2POq*#slbPnf zwzf$$rcG^ZYDE+@N@~3q7I49+L1DRyKt#F7{U!nn%U;+^j39aYobU7VmKqZ!%ltTJ zSayHU`<%1G3`F1^k7e(&;Z`VJu(?k;=T7X%N)jqMq!dMyZeDC3iF!z6rw+67kxV&jDKh*=XMMH7BzC%0ZZgW^F*GR;m`LJ8Nxh;MnV_2 zo#Aeu7~L8}V>!_RD+rBki)NV^cA^7!L1e&FY)JDI!(TGDXW-mnR@`bh?a0EnGI=P9 zy>>$Z2m|CjGIt$Z+!8}0*)asCbu>FBggr}a!3yv^PwX`@<_>sE4e5ZqN9V>rmTRUF zbU(T+S`C+7@m92s-#UA`Fo4_`PSqdlNi_8Le1D!YO<=@vm4O z$%$c4iIKfW(ZR8ZbU?mO?%glC2lvBQG7OL4g2E>3CE|D(x!lD@#>|2OxWk0scT#t^ zS6+JEa8?X~2srB%*M&`SJoL{S_(0yf@}t;S27g&Z0Hpg)z+Z89e{|ZcvsAWtlnyU! zrooK~1ov;@oE;J_FsSek>;)U+*tyTdzLW6F6!^;ZVSuI_-@Jq7m6vJu4@{*G56tUW zpGZTSVx!<}kX-N$2;dyp7%$QPemsxlS=d(&zn~%_Fjb*XpK`!o{mnXPeP))mj8zZ^lWb$NF4{~3AH+q%ce-ErK%W3!iN7WAAnu?S-NPqStq)-K z^r;$jQ1|uDpfTeToz0w~uIE_Ym=?0w^$yVAEIfqUV+#(N3e zk2~QhGcbJDsny&3bvhLwfBl_1IF%8kGpjCBvvt~9zrr8d9#JR!m$M(Jd}05>Eb4nd zJ`&DTz3>To1b>z3MIY{C28N5L>h#j;Kcx$R41YcR4PV_s^-rhhbVi8kGeYX7r!U!S zQoWp`s}X+Qa=*iY4)hJLtt9w=1?Lsv?f#1(Q9@*K9WgR|GWA#mr*$@egH|Q{flqJW zfn&Lc>e2!ND{_P?Q{22wTP^vKVHzF$V&C_+Q16C#BfNFp?VUHBP>oj2B zhz=UjK_mQU{=dKMNf%Wv_mX3|SB)O*b?E`FSmwIXFFL5s)z(Cu`t>S;|CO%wi8Gz> zcD{3+@uDaWG)hk4Wq*?l=C;AD68_*>&6hq4$5NbB{u8&riVPuS;Bxqt{>2%98FcW< z-UZpz{a%6r-kQ#JN!+2ZHi^e>j@Xfb z(FH3R_9nI5>KFImbdI(Z5j@?YYO33 z34gFFoDTl5j|!g{5?GNTRI+4*l?*4In&hHK`i1Yt`Ne(~9lZ9R?`G5acM|n*SGN8s znFXUbf8oK55?7tV%W!hALlXom0foB5=@9%tUGVsTz3@jvj0}t(u4OpB%*i{yd6`D*|GZP1pkYzYvxb4teMYa#Zj_Lo>g|rUJiD`FX%!C-Qg-g2Nw4TGLa#a|M&na z8A`8a_#|~g>R_v;>eddvKnJhy{!TWvy`7|kyQ1Zf^VxYMQp~8#D(_{d@N%#l^n?dP zJ>eOEc0bbbz}_Ep9p1mVhmnEN1LG{D9z=$tSMNjqf-V*rZoG@=pcx%l%Ab3d&aIih z8eE{+mp&i+1G+xk}WiODJh<6N)JDmfKzAKZd|2|w0ncYeRMI&V=sBLj;JI14`X znA}4Vday6K$fZk1`Dluh#aSF*>g2+Oy}Ud24Cm@=8E1fdP!-j*CXKqY;$HSP>1S?o zig|DLDt@t+^XG}oKAp^97_-1JPiEbH%mN~Xwb-w{LX;}_oG4M?Bhm>5iNXX9qIrUK L_}7DgzT)vecywrn literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/public/home.png b/grailed-ui-admin-vue3/public/home.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd41455a9ef128c5798691a1d74b472c6d6344a GIT binary patch literal 74352 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�BJed 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 z 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 z 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
VAe2s{eg4*X_+BfWjCb5M&nWs4@vgBurRKd-O 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�aJ1C;kQ8Vc1m@%yOGC&oqn)vdD z$QvsqpPi{vP)95`2BKXl@mBlFT)!7Rz0JMx5@{NuyIP;f={-A9Yq)Epl7R(as$IWp zhxOEo&1UN^?sDsJPs}Y#; z+9$y4j;!Nd?|I5Z%2xl$tlZG{N>7g`!lwzeF9o*^zpUnf8Q8ZcyvYX0yxXC*d1w2( z53$qxyf+!9f+b2d7R)cn`p!9Dl`Xzw!&*}n7Z7G2xnM{2?MzVn;w7}Ct*DYV86`Ta zX%Z=hP>+jxfLQ7Gm#JCdbypy-FULJPFT6re(*3LLU-V7lbaJ&fX+v}d2x;vB4&8WO6_{K~u zKF49==S(+JI`#};oEhTZ3z;nSN5tVJm8W+TWI&pFC-uJMwDDF!clphL_KL0fj(ITV z*RS8s3oU#+$L6#U{D(mCLdYfA^@UF?^etqeH;kMX!)`hhFNSl`H^)cZ2^U(5yqDs% z6h+soTZ$H|Szr2mznxx>mmYIkj*-U|FUKnX=Na(gbd>0B(q{eFE*I&=DiWz9_hZ6`!9gyPk4}>%&NT+vKWumusoKJzUT$R>nQ4lfZEN zC~<8tP7`CXIVrwAhyZL8HFvf^t>tnT$>3=(H|WVvW(`YH?Mi@a6h-=_hc`W$lzw(T zOS#%}p?Tgab%s8Zvpty_R9Pe(ci@{b%8XG$*EM>R<>DhCS1^#pLv30zdmQF}jQRer zC-2fforsKsw)p99*D#Cz5YJwaELMYQ@iTEV#obm7AkE3N2};8a!*q^RVwm(qn$UpN zAtbokCAdU?-jAV&tz;s=q4e?#WR1A8pWF2C=V=e&ArxpUoV6(q-B(XKH_u&ibJL*p zA#E$sxVC(?=BqtZpCdbZt;hSwKCoWl!TJb5GjXmXS=?$g&9HHEZO6)SLfO8@Vurl$ zJS#&>$I)&bEM}F(ER#Aos`s)pA##DSZw~AUTE9fvCC0s7wm-xdWt`V*X`&L>N05Ml zmgXbM&*dJN9;StMbU@sgANcRHBY(u{I8F}QYNFs3dZWZi2-8+aB@6?hH%iz4d|)X_{x{*et0YxU4Llj1+jf z=NeX?Qg6gOU8EL(28r%#n#)`Yp}VfxT>Q*x#6_1kLw1 zH&S*MT0cX0{@d*J_;g-E4%$|p=HD!$NMqa|k6RmrY4Kg=*S<2}0y*%Nou%I(Y^V-Q zqgl{UWZa*6Y{@NpAEb)1Y|LGaLW`K@Kc!^7&`FgrDR+l3Wtsc9T7oTzt8K!gl4h8o z#-&>UuN{{BVX4jMbg1&rn zy3S)`uCK9nXa3Jm7kOSb{f8ELd)gMU3p%ZL3F#b(E#0WbJB{ zVV2)2Q?~ZF`*5Mv1z4Y>2^>=#&A{$^aq}V3r>q5U6dl$-_0-j zt9&teZ`BaXr<1K)U$NSg_7F7JTVJ_0@a^g6+b{k(a6kR8!u{9Z%U}QGMD9%*wWs4D z9akQnl%7P4`|tXoHa$Rn?dTJ_eIFL!)BOi0Q!JRN( z$&j4DI(@x#`gfbkZvLY&SBsh>LQAufk^5|&8I9@ozYxX;{}7CkW~UPla?VP zRgQiGe;uY9rkVx557bAPTrgWrm)RK0vTQ!TH68~tDOc)B;Rds9m{hnfcW3F;qGlU? YiG>KZL3Dy+=y_3(EUdSO5S3 literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/public/logo2.png b/grailed-ui-admin-vue3/public/logo2.png new file mode 100644 index 0000000000000000000000000000000000000000..f4de9acc191eccfad95e58589b63c48f36d5ade5 GIT binary patch literal 24783 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 DOo#kG literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/App.vue b/grailed-ui-admin-vue3/src/App.vue new file mode 100644 index 0000000..7407d97 --- /dev/null +++ b/grailed-ui-admin-vue3/src/App.vue @@ -0,0 +1,57 @@ + + + diff --git a/grailed-ui-admin-vue3/src/api/infra/apiAccessLog/index.ts b/grailed-ui-admin-vue3/src/api/infra/apiAccessLog/index.ts new file mode 100644 index 0000000..c6b4b45 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/apiAccessLog/index.ts @@ -0,0 +1,30 @@ +import request from '@/config/axios' + +export interface ApiAccessLogVO { + id: number + traceId: string + userId: number + userType: number + applicationName: string + requestMethod: string + requestParams: string + requestUrl: string + userIp: string + userAgent: string + beginTime: Date + endTIme: Date + duration: number + resultCode: number + resultMsg: string + createTime: Date +} + +// 查询列表API 访问日志 +export const getApiAccessLogPage = (params: PageParam) => { + return request.get({ url: '/infra/api-access-log/page', params }) +} + +// 导出API 访问日志 +export const exportApiAccessLog = (params) => { + return request.download({ url: '/infra/api-access-log/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/apiErrorLog/index.ts b/grailed-ui-admin-vue3/src/api/infra/apiErrorLog/index.ts new file mode 100644 index 0000000..59ee214 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/apiErrorLog/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface ApiErrorLogVO { + id: number + traceId: string + userId: number + userType: number + applicationName: string + requestMethod: string + requestParams: string + requestUrl: string + userIp: string + userAgent: string + exceptionTime: Date + exceptionName: string + exceptionMessage: string + exceptionRootCauseMessage: string + exceptionStackTrace: string + exceptionClassName: string + exceptionFileName: string + exceptionMethodName: string + exceptionLineNumber: number + processUserId: number + processStatus: number + processTime: Date + resultCode: number + createTime: Date +} + +// 查询列表API 访问日志 +export const getApiErrorLogPage = (params: PageParam) => { + return request.get({ url: '/infra/api-error-log/page', params }) +} + +// 更新 API 错误日志的处理状态 +export const updateApiErrorLogPage = (id: number, processStatus: number) => { + return request.put({ + url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus + }) +} + +// 导出API 访问日志 +export const exportApiErrorLog = (params) => { + return request.download({ + url: '/infra/api-error-log/export-excel', + params + }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/codegen/index.ts b/grailed-ui-admin-vue3/src/api/infra/codegen/index.ts new file mode 100644 index 0000000..64701ef --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/codegen/index.ts @@ -0,0 +1,123 @@ +import request from '@/config/axios' + +export type CodegenTableVO = { + id: number + tableId: number + isParentMenuIdValid: boolean + dataSourceConfigId: number + scene: number + tableName: string + tableComment: string + remark: string + moduleName: string + businessName: string + className: string + classComment: string + author: string + createTime: Date + updateTime: Date + templateType: number + parentMenuId: number +} + +export type CodegenColumnVO = { + id: number + tableId: number + columnName: string + dataType: string + columnComment: string + nullable: number + primaryKey: number + autoIncrement: string + ordinalPosition: number + javaType: string + javaField: string + dictType: string + example: string + createOperation: number + updateOperation: number + listOperation: number + listOperationCondition: string + listOperationResult: number + htmlType: string +} + +export type DatabaseTableVO = { + name: string + comment: string +} + +export type CodegenDetailVO = { + table: CodegenTableVO + columns: CodegenColumnVO[] +} + +export type CodegenPreviewVO = { + filePath: string + code: string +} + +export type CodegenUpdateReqVO = { + table: CodegenTableVO | any + columns: CodegenColumnVO[] +} + +export type CodegenCreateListReqVO = { + dataSourceConfigId: number + tableNames: string[] +} + +// 查询列表代码生成表定义 +export const getCodegenTablePage = (params: PageParam) => { + return request.get({ url: '/infra/codegen/table/page', params }) +} + +// 查询详情代码生成表定义 +export const getCodegenTable = (id: number) => { + return request.get({ url: '/infra/codegen/detail?tableId=' + id }) +} + +// 新增代码生成表定义 +export const createCodegenTable = (data: CodegenCreateListReqVO) => { + return request.post({ url: '/infra/codegen/create', data }) +} + +// 修改代码生成表定义 +export const updateCodegenTable = (data: CodegenUpdateReqVO) => { + return request.put({ url: '/infra/codegen/update', data }) +} + +// 基于数据库的表结构,同步数据库的表和字段定义 +export const syncCodegenFromDB = (id: number) => { + return request.put({ url: '/infra/codegen/sync-from-db?tableId=' + id }) +} + +// 基于 SQL 建表语句,同步数据库的表和字段定义 +export const syncCodegenFromSQL = (id: number, sql: string) => { + return request.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql }) +} + +// 预览生成代码 +export const previewCodegen = (id: number) => { + return request.get({ url: '/infra/codegen/preview?tableId=' + id }) +} + +// 下载生成代码 +export const downloadCodegen = (id: number) => { + return request.download({ url: '/infra/codegen/download?tableId=' + id }) +} + +// 获得表定义 +export const getSchemaTableList = (params) => { + return request.get({ url: '/infra/codegen/db/table/list', params }) +} + +// 基于数据库的表结构,创建代码生成器的表定义 +export const createCodegenList = (data) => { + return request.post({ url: '/infra/codegen/create-list', data }) +} + +// 删除代码生成表定义 +export const deleteCodegenTable = (id: number) => { + return request.delete({ url: '/infra/codegen/delete?tableId=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/config/index.ts b/grailed-ui-admin-vue3/src/api/infra/config/index.ts new file mode 100644 index 0000000..e8e8f14 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/config/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface ConfigVO { + id: number | undefined + category: string + name: string + key: string + value: string + type: number + visible: boolean + remark: string + createTime: Date +} + +// 查询参数列表 +export const getConfigPage = (params: PageParam) => { + return request.get({ url: '/infra/config/page', params }) +} + +// 查询参数详情 +export const getConfig = (id: number) => { + return request.get({ url: '/infra/config/get?id=' + id }) +} + +// 根据参数键名查询参数值 +export const getConfigKey = (configKey: string) => { + return request.get({ url: '/infra/config/get-value-by-key?key=' + configKey }) +} + +// 新增参数 +export const createConfig = (data: ConfigVO) => { + return request.post({ url: '/infra/config/create', data }) +} + +// 修改参数 +export const updateConfig = (data: ConfigVO) => { + return request.put({ url: '/infra/config/update', data }) +} + +// 删除参数 +export const deleteConfig = (id: number) => { + return request.delete({ url: '/infra/config/delete?id=' + id }) +} + +// 导出参数 +export const exportConfig = (params) => { + return request.download({ url: '/infra/config/export', params }) +} + +export const batchCreateSiteConfig = (data: any) => { + return request.post({ url: '/infra/config/site-config', data }) +} + +export const batchCreateTaskConfig = (data: any) => { + return request.post({ url: '/infra/config/task-config', data }) +} + +export const batchCreateFinanceConfig = (data: any) => { + return request.post({ url: '/infra/config/finance-config', data }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/dataSourceConfig/index.ts b/grailed-ui-admin-vue3/src/api/infra/dataSourceConfig/index.ts new file mode 100644 index 0000000..b413f34 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/dataSourceConfig/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +export interface DataSourceConfigVO { + id: number | undefined + name: string + url: string + username: string + password: string + createTime?: Date +} + +// 新增数据源配置 +export const createDataSourceConfig = (data: DataSourceConfigVO) => { + return request.post({ url: '/infra/data-source-config/create', data }) +} + +// 修改数据源配置 +export const updateDataSourceConfig = (data: DataSourceConfigVO) => { + return request.put({ url: '/infra/data-source-config/update', data }) +} + +// 删除数据源配置 +export const deleteDataSourceConfig = (id: number) => { + return request.delete({ url: '/infra/data-source-config/delete?id=' + id }) +} + +// 查询数据源配置详情 +export const getDataSourceConfig = (id: number) => { + return request.get({ url: '/infra/data-source-config/get?id=' + id }) +} + +// 查询数据源配置列表 +export const getDataSourceConfigList = () => { + return request.get({ url: '/infra/data-source-config/list' }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/dbDoc/index.ts b/grailed-ui-admin-vue3/src/api/infra/dbDoc/index.ts new file mode 100644 index 0000000..1a1a36b --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/dbDoc/index.ts @@ -0,0 +1,16 @@ +import request from '@/config/axios' + +// 导出Html +export const exportHtml = () => { + return request.download({ url: '/infra/db-doc/export-html' }) +} + +// 导出Word +export const exportWord = () => { + return request.download({ url: '/infra/db-doc/export-word' }) +} + +// 导出Markdown +export const exportMarkdown = () => { + return request.download({ url: '/infra/db-doc/export-markdown' }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/file/index.ts b/grailed-ui-admin-vue3/src/api/infra/file/index.ts new file mode 100644 index 0000000..f64bc0d --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/file/index.ts @@ -0,0 +1,17 @@ +import request from '@/config/axios' + +export interface FilePageReqVO extends PageParam { + path?: string + type?: string + createTime?: Date[] +} + +// 查询文件列表 +export const getFilePage = (params: FilePageReqVO) => { + return request.get({ url: '/infra/file/page', params }) +} + +// 删除文件 +export const deleteFile = (id: number) => { + return request.delete({ url: '/infra/file/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/fileConfig/index.ts b/grailed-ui-admin-vue3/src/api/infra/fileConfig/index.ts new file mode 100644 index 0000000..b72f18b --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/fileConfig/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface FileClientConfig { + basePath: string + host?: string + port?: number + username?: string + password?: string + mode?: string + endpoint?: string + bucket?: string + accessKey?: string + accessSecret?: string + domain: string +} + +export interface FileConfigVO { + id: number + name: string + storage: any + master: boolean + visible: boolean + config: FileClientConfig + remark: string + createTime: Date +} + +// 查询文件配置列表 +export const getFileConfigPage = (params: PageParam) => { + return request.get({ url: '/infra/file-config/page', params }) +} + +// 查询文件配置详情 +export const getFileConfig = (id: number) => { + return request.get({ url: '/infra/file-config/get?id=' + id }) +} + +// 更新文件配置为主配置 +export const updateFileConfigMaster = (id: number) => { + return request.put({ url: '/infra/file-config/update-master?id=' + id }) +} + +// 新增文件配置 +export const createFileConfig = (data: FileConfigVO) => { + return request.post({ url: '/infra/file-config/create', data }) +} + +// 修改文件配置 +export const updateFileConfig = (data: FileConfigVO) => { + return request.put({ url: '/infra/file-config/update', data }) +} + +// 删除文件配置 +export const deleteFileConfig = (id: number) => { + return request.delete({ url: '/infra/file-config/delete?id=' + id }) +} + +// 测试文件配置 +export const testFileConfig = (id: number) => { + return request.get({ url: '/infra/file-config/test?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/job/index.ts b/grailed-ui-admin-vue3/src/api/infra/job/index.ts new file mode 100644 index 0000000..033b2cb --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/job/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface JobVO { + id: number + name: string + status: number + handlerName: string + handlerParam: string + cronExpression: string + retryCount: number + retryInterval: number + monitorTimeout: number + createTime: Date +} + +// 任务列表 +export const getJobPage = (params: PageParam) => { + return request.get({ url: '/infra/job/page', params }) +} + +// 任务详情 +export const getJob = (id: number) => { + return request.get({ url: '/infra/job/get?id=' + id }) +} + +// 新增任务 +export const createJob = (data: JobVO) => { + return request.post({ url: '/infra/job/create', data }) +} + +// 修改定时任务调度 +export const updateJob = (data: JobVO) => { + return request.put({ url: '/infra/job/update', data }) +} + +// 删除定时任务调度 +export const deleteJob = (id: number) => { + return request.delete({ url: '/infra/job/delete?id=' + id }) +} + +// 导出定时任务调度 +export const exportJob = (params) => { + return request.download({ url: '/infra/job/export-excel', params }) +} + +// 任务状态修改 +export const updateJobStatus = (id: number, status: number) => { + const params = { + id, + status + } + return request.put({ url: '/infra/job/update-status', params }) +} + +// 定时任务立即执行一次 +export const runJob = (id: number) => { + return request.put({ url: '/infra/job/trigger?id=' + id }) +} + +// 获得定时任务的下 n 次执行时间 +export const getJobNextTimes = (id: number) => { + return request.get({ url: '/infra/job/get_next_times?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/jobLog/index.ts b/grailed-ui-admin-vue3/src/api/infra/jobLog/index.ts new file mode 100644 index 0000000..f429cd9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/jobLog/index.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +export interface JobLogVO { + id: number + jobId: number + handlerName: string + handlerParam: string + cronExpression: string + executeIndex: string + beginTime: string + endTime: string + duration: string + status: number + createTime: string +} + +// 任务日志列表 +export const getJobLogPage = (params: PageParam) => { + return request.get({ url: '/infra/job-log/page', params }) +} + +// 任务日志详情 +export const getJobLog = (id: number) => { + return request.get({ url: '/infra/job-log/get?id=' + id }) +} + +// 导出定时任务日志 +export const exportJobLog = (params) => { + return request.download({ + url: '/infra/job-log/export-excel', + params + }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/redis/index.ts b/grailed-ui-admin-vue3/src/api/infra/redis/index.ts new file mode 100644 index 0000000..f27be77 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/redis/index.ts @@ -0,0 +1,8 @@ +import request from '@/config/axios' + +/** + * 获取redis 监控信息 + */ +export const getCache = () => { + return request.get({ url: '/infra/redis/get-monitor-info' }) +} diff --git a/grailed-ui-admin-vue3/src/api/infra/redis/types.ts b/grailed-ui-admin-vue3/src/api/infra/redis/types.ts new file mode 100644 index 0000000..548bfe9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/infra/redis/types.ts @@ -0,0 +1,176 @@ +export interface RedisMonitorInfoVO { + info: RedisInfoVO + dbSize: number + commandStats: RedisCommandStatsVO[] +} + +export interface RedisInfoVO { + io_threaded_reads_processed: string + tracking_clients: string + uptime_in_seconds: string + cluster_connections: string + current_cow_size: string + maxmemory_human: string + aof_last_cow_size: string + master_replid2: string + mem_replication_backlog: string + aof_rewrite_scheduled: string + total_net_input_bytes: string + rss_overhead_ratio: string + hz: string + current_cow_size_age: string + redis_build_id: string + errorstat_BUSYGROUP: string + aof_last_bgrewrite_status: string + multiplexing_api: string + client_recent_max_output_buffer: string + allocator_resident: string + mem_fragmentation_bytes: string + aof_current_size: string + repl_backlog_first_byte_offset: string + tracking_total_prefixes: string + redis_mode: string + redis_git_dirty: string + aof_delayed_fsync: string + allocator_rss_bytes: string + repl_backlog_histlen: string + io_threads_active: string + rss_overhead_bytes: string + total_system_memory: string + loading: string + evicted_keys: string + maxclients: string + cluster_enabled: string + redis_version: string + repl_backlog_active: string + mem_aof_buffer: string + allocator_frag_bytes: string + io_threaded_writes_processed: string + instantaneous_ops_per_sec: string + used_memory_human: string + total_error_replies: string + role: string + maxmemory: string + used_memory_lua: string + rdb_current_bgsave_time_sec: string + used_memory_startup: string + used_cpu_sys_main_thread: string + lazyfree_pending_objects: string + aof_pending_bio_fsync: string + used_memory_dataset_perc: string + allocator_frag_ratio: string + arch_bits: string + used_cpu_user_main_thread: string + mem_clients_normal: string + expired_time_cap_reached_count: string + unexpected_error_replies: string + mem_fragmentation_ratio: string + aof_last_rewrite_time_sec: string + master_replid: string + aof_rewrite_in_progress: string + lru_clock: string + maxmemory_policy: string + run_id: string + latest_fork_usec: string + tracking_total_items: string + total_commands_processed: string + expired_keys: string + errorstat_ERR: string + used_memory: string + module_fork_in_progress: string + errorstat_WRONGPASS: string + aof_buffer_length: string + dump_payload_sanitizations: string + mem_clients_slaves: string + keyspace_misses: string + server_time_usec: string + executable: string + lazyfreed_objects: string + db0: string + used_memory_peak_human: string + keyspace_hits: string + rdb_last_cow_size: string + aof_pending_rewrite: string + used_memory_overhead: string + active_defrag_hits: string + tcp_port: string + uptime_in_days: string + used_memory_peak_perc: string + current_save_keys_processed: string + blocked_clients: string + total_reads_processed: string + expire_cycle_cpu_milliseconds: string + sync_partial_err: string + used_memory_scripts_human: string + aof_current_rewrite_time_sec: string + aof_enabled: string + process_supervised: string + master_repl_offset: string + used_memory_dataset: string + used_cpu_user: string + rdb_last_bgsave_status: string + tracking_total_keys: string + atomicvar_api: string + allocator_rss_ratio: string + client_recent_max_input_buffer: string + clients_in_timeout_table: string + aof_last_write_status: string + mem_allocator: string + used_memory_scripts: string + used_memory_peak: string + process_id: string + master_failover_state: string + errorstat_NOAUTH: string + used_cpu_sys: string + repl_backlog_size: string + connected_slaves: string + current_save_keys_total: string + gcc_version: string + total_system_memory_human: string + sync_full: string + connected_clients: string + module_fork_last_cow_size: string + total_writes_processed: string + allocator_active: string + total_net_output_bytes: string + pubsub_channels: string + current_fork_perc: string + active_defrag_key_hits: string + rdb_changes_since_last_save: string + instantaneous_input_kbps: string + used_memory_rss_human: string + configured_hz: string + expired_stale_perc: string + active_defrag_misses: string + used_cpu_sys_children: string + number_of_cached_scripts: string + sync_partial_ok: string + used_memory_lua_human: string + rdb_last_save_time: string + pubsub_patterns: string + slave_expires_tracked_keys: string + redis_git_sha1: string + used_memory_rss: string + rdb_last_bgsave_time_sec: string + os: string + mem_not_counted_for_evict: string + active_defrag_running: string + rejected_connections: string + aof_rewrite_buffer_length: string + total_forks: string + active_defrag_key_misses: string + allocator_allocated: string + aof_base_size: string + instantaneous_output_kbps: string + second_repl_offset: string + rdb_bgsave_in_progress: string + used_cpu_user_children: string + total_connections_received: string + migrate_cached_sockets: string +} + +export interface RedisCommandStatsVO { + command: string + calls: number + usec: number +} diff --git a/grailed-ui-admin-vue3/src/api/login/index.ts b/grailed-ui-admin-vue3/src/api/login/index.ts new file mode 100644 index 0000000..b65a90c --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/login/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' +import { getRefreshToken } from '@/utils/auth' +import type { UserLoginVO } from './types' + +export interface SmsCodeVO { + mobile: string + scene: number +} + +export interface SmsLoginVO { + mobile: string + code: string +} + +// 登录 +export const login = (data: UserLoginVO) => { + return request.post({ url: '/system/auth/login', data }) +} + +// 刷新访问令牌 +export const refreshToken = () => { + return request.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() }) +} + +// 使用租户名,获得租户编号 +export const getTenantIdByName = (name: string) => { + return request.get({ url: '/system/tenant/get-id-by-name?name=' + name }) +} + +// 登出 +export const loginOut = () => { + return request.post({ url: '/system/auth/logout' }) +} + +// 获取用户权限信息 +export const getInfo = () => { + return request.get({ url: '/system/auth/get-permission-info' }) +} + +//获取登录验证码 +export const sendSmsCode = (data: SmsCodeVO) => { + return request.post({ url: '/system/auth/send-sms-code', data }) +} + +// 短信验证码登录 +export const smsLogin = (data: SmsLoginVO) => { + return request.post({ url: '/system/auth/sms-login', data }) +} + +// 社交授权的跳转 +export const socialAuthRedirect = (type: number, redirectUri: string) => { + return request.get({ + url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri + }) +} +// 获取验证图片以及 token +export const getCode = (data) => { + return request.postOriginal({ url: 'system/captcha/get', data }) +} + +// 滑动或者点选验证 +export const reqCheck = (data) => { + return request.postOriginal({ url: 'system/captcha/check', data }) +} diff --git a/grailed-ui-admin-vue3/src/api/login/oauth2/index.ts b/grailed-ui-admin-vue3/src/api/login/oauth2/index.ts new file mode 100644 index 0000000..aef1820 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/login/oauth2/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +// 获得授权信息 +export const getAuthorize = (clientId: string) => { + return request.get({ url: '/system/oauth2/authorize?clientId=' + clientId }) +} + +// 发起授权 +export const authorize = ( + responseType: string, + clientId: string, + redirectUri: string, + state: string, + autoApprove: boolean, + checkedScopes: string[], + uncheckedScopes: string[] +) => { + // 构建 scopes + const scopes = {} + for (const scope of checkedScopes) { + scopes[scope] = true + } + for (const scope of uncheckedScopes) { + scopes[scope] = false + } + // 发起请求 + return request.post({ + url: '/system/oauth2/authorize', + headers: { + 'Content-type': 'application/x-www-form-urlencoded' + }, + params: { + response_type: responseType, + client_id: clientId, + redirect_uri: redirectUri, + state: state, + auto_approve: autoApprove, + scope: JSON.stringify(scopes) + } + }) +} diff --git a/grailed-ui-admin-vue3/src/api/login/types.ts b/grailed-ui-admin-vue3/src/api/login/types.ts new file mode 100644 index 0000000..b2173f7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/login/types.ts @@ -0,0 +1,28 @@ +export type UserLoginVO = { + username: string + password: string + captchaVerification: string +} + +export type TokenType = { + id: number // 编号 + accessToken: string // 访问令牌 + refreshToken: string // 刷新令牌 + userId: number // 用户编号 + userType: number //用户类型 + clientId: string //客户端编号 + expiresTime: number //过期时间 +} + +export type UserVO = { + id: number + username: string + nickname: string + deptId: number + email: string + mobile: string + sex: number + avatar: string + loginIp: string + loginDate: string +} diff --git a/grailed-ui-admin-vue3/src/api/mall/product/brand.ts b/grailed-ui-admin-vue3/src/api/mall/product/brand.ts new file mode 100644 index 0000000..94d5370 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/product/brand.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +/** + * 商品品牌 + */ +export interface BrandVO { + /** + * 品牌编号 + */ + id?: number + /** + * 品牌名称 + */ + name: string + /** + * 品牌图片 + */ + picUrl: string + /** + * 品牌排序 + */ + sort?: number + /** + * 品牌描述 + */ + description?: string + /** + * 开启状态 + */ + status: number +} + +// 创建商品品牌 +export const createBrand = (data: BrandVO) => { + return request.post({ url: '/product/brand/create', data }) +} + +// 更新商品品牌 +export const updateBrand = (data: BrandVO) => { + return request.put({ url: '/product/brand/update', data }) +} + +// 删除商品品牌 +export const deleteBrand = (id: number) => { + return request.delete({ url: `/product/brand/delete?id=${id}` }) +} + +// 获得商品品牌 +export const getBrand = (id: number) => { + return request.get({ url: `/product/brand/get?id=${id}` }) +} + +// 获得商品品牌列表 +export const getBrandParam = (params: PageParam) => { + return request.get({ url: '/product/brand/page', params }) +} + +// 获得商品品牌精简信息列表 +export const getSimpleBrandList = () => { + return request.get({ url: '/product/brand/list-all-simple' }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/product/category.ts b/grailed-ui-admin-vue3/src/api/mall/product/category.ts new file mode 100644 index 0000000..8158fc0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/product/category.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +/** + * 产品分类 + */ +export interface CategoryVO { + /** + * 分类编号 + */ + id?: number + /** + * 父分类编号 + */ + parentId?: number + /** + * 分类名称 + */ + name: string + /** + * 移动端分类图 + */ + picUrl: string + /** + * PC 端分类图 + */ + bigPicUrl?: string + /** + * 分类排序 + */ + sort: number + /** + * 开启状态 + */ + status: number +} + +// 创建商品分类 +export const createCategory = (data: CategoryVO) => { + return request.post({ url: '/product/category/create', data }) +} + +// 更新商品分类 +export const updateCategory = (data: CategoryVO) => { + return request.put({ url: '/product/category/update', data }) +} + +// 删除商品分类 +export const deleteCategory = (id: number) => { + return request.delete({ url: `/product/category/delete?id=${id}` }) +} + +// 获得商品分类 +export const getCategory = (id: number) => { + return request.get({ url: `/product/category/get?id=${id}` }) +} + +// 获得商品分类列表 +export const getCategoryList = (params: any) => { + return request.get({ url: '/product/category/list', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/product/property.ts b/grailed-ui-admin-vue3/src/api/mall/product/property.ts new file mode 100644 index 0000000..ac8bac5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/product/property.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +/** + * 商品属性 + */ +export interface PropertyVO { + id?: number + /** 名称 */ + name: string + /** 备注 */ + remark?: string +} + +/** + * 属性值 + */ +export interface PropertyValueVO { + id?: number + /** 属性项的编号 */ + propertyId?: number + /** 名称 */ + name: string + /** 备注 */ + remark?: string +} + +/** + * 商品属性值的明细 + */ +export interface PropertyValueDetailVO { + /** 属性项的编号 */ + propertyId: number // 属性的编号 + /** 属性的名称 */ + propertyName: string + /** 属性值的编号 */ + valueId: number + /** 属性值的名称 */ + valueName: string +} + +// ------------------------ 属性项 ------------------- + +// 创建属性项 +export const createProperty = (data: PropertyVO) => { + return request.post({ url: '/product/property/create', data }) +} + +// 更新属性项 +export const updateProperty = (data: PropertyVO) => { + return request.put({ url: '/product/property/update', data }) +} + +// 删除属性项 +export const deleteProperty = (id: number) => { + return request.delete({ url: `/product/property/delete?id=${id}` }) +} + +// 获得属性项 +export const getProperty = (id: number): Promise => { + return request.get({ url: `/product/property/get?id=${id}` }) +} + +// 获得属性项分页 +export const getPropertyPage = (params: PageParam) => { + return request.get({ url: '/product/property/page', params }) +} + +// 获得属性项列表 +export const getPropertyList = (params: any) => { + return request.get({ url: '/product/property/list', params }) +} + +// 获得属性项列表 +export const getPropertyListAndValue = (data: any) => { + return request.post({ url: '/product/property/get-value-list', data }) +} + +// ------------------------ 属性值 ------------------- + +// 获得属性值分页 +export const getPropertyValuePage = (params: PageParam & any) => { + return request.get({ url: '/product/property/value/page', params }) +} + +// 获得属性值 +export const getPropertyValue = (id: number): Promise => { + return request.get({ url: `/product/property/value/get?id=${id}` }) +} + +// 创建属性值 +export const createPropertyValue = (data: PropertyValueVO) => { + return request.post({ url: '/product/property/value/create', data }) +} + +// 更新属性值 +export const updatePropertyValue = (data: PropertyValueVO) => { + return request.put({ url: '/product/property/value/update', data }) +} + +// 删除属性值 +export const deletePropertyValue = (id: number) => { + return request.delete({ url: `/product/property/value/delete?id=${id}` }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/product/spu.ts b/grailed-ui-admin-vue3/src/api/mall/product/spu.ts new file mode 100644 index 0000000..0ea324b --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/product/spu.ts @@ -0,0 +1,107 @@ +import request from '@/config/axios' + +export interface Property { + propertyId?: number // 属性编号 + propertyName?: string // 属性名称 + valueId?: number // 属性值编号 + valueName?: string // 属性值名称 +} + +export interface Sku { + id?: number // 商品 SKU 编号 + spuId?: number // SPU 编号 + properties?: Property[] // 属性数组 + price?: number // 商品价格 + marketPrice?: number // 市场价 + costPrice?: number // 成本价 + barCode?: string // 商品条码 + picUrl?: string // 图片地址 + stock?: number // 库存 + weight?: number // 商品重量,单位:kg 千克 + volume?: number // 商品体积,单位:m^3 平米 + subCommissionFirstPrice?: number // 一级分销的佣金 + subCommissionSecondPrice?: number // 二级分销的佣金 + salesCount?: number // 商品销量 +} + +export interface Spu { + id?: number + name?: string // 商品名称 + categoryId?: number | null // 商品分类 + keyword?: string // 关键字 + unit?: number | null // 单位 + picUrl?: string // 商品封面图 + sliderPicUrls?: string[] // 商品轮播图 + introduction?: string // 商品简介 + deliveryTemplateId?: number | null // 运费模版 + brandId?: number | null // 商品品牌编号 + specType?: boolean // 商品规格 + subCommissionType?: boolean // 分销类型 + skus?: Sku[] // sku数组 + description?: string // 商品详情 + sort?: number // 商品排序 + giveIntegral?: number // 赠送积分 + virtualSalesCount?: number // 虚拟销量 + recommendHot?: boolean // 是否热卖 + recommendBenefit?: boolean // 是否优惠 + recommendBest?: boolean // 是否精品 + recommendNew?: boolean // 是否新品 + recommendGood?: boolean // 是否优品 + price?: number // 商品价格 + salesCount?: number // 商品销量 + marketPrice?: number // 市场价 + costPrice?: number // 成本价 + stock?: number // 商品库存 + createTime?: Date // 商品创建时间 + status?: number // 商品状态 +} + +// 获得 Spu 列表 +export const getSpuPage = (params: PageParam) => { + return request.get({ url: '/product/spu/page', params }) +} + +// 获得 Spu 列表 tabsCount +export const getTabsCount = () => { + return request.get({ url: '/product/spu/get-count' }) +} + +// 创建商品 Spu +export const createSpu = (data: Spu) => { + return request.post({ url: '/product/spu/create', data }) +} + +// 更新商品 Spu +export const updateSpu = (data: Spu) => { + return request.put({ url: '/product/spu/update', data }) +} + +// 更新商品 Spu status +export const updateStatus = (data: { id: number; status: number }) => { + return request.put({ url: '/product/spu/update-status', data }) +} + +// 获得商品 Spu +export const getSpu = (id: number) => { + return request.get({ url: `/product/spu/get-detail?id=${id}` }) +} + +// 获得商品 Spu 详情列表 +export const getSpuDetailList = (ids: number[]) => { + return request.get({ url: `/product/spu/list?spuIds=${ids}` }) +} + +// 删除商品 Spu +export const deleteSpu = (id: number) => { + return request.delete({ url: `/product/spu/delete?id=${id}` }) +} + +// 导出商品 Spu Excel +export const exportSpu = async (params) => { + return await request.download({ url: '/product/spu/export', params }) +} + +// 获得商品 SPU 精简列表 +export const getSpuSimpleList = async () => { + return request.get({ url: '/product/spu/get-simple-list' }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/promotion/combination/combinationActivity.ts b/grailed-ui-admin-vue3/src/api/mall/promotion/combination/combinationActivity.ts new file mode 100644 index 0000000..1e211c8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/promotion/combination/combinationActivity.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' +import { Sku, Spu } from '@/api/mall/product/spu' + +export interface CombinationActivityVO { + id?: number + name?: string + spuId?: number + totalLimitCount?: number + singleLimitCount?: number + startTime?: Date + endTime?: Date + userSize?: number + totalNum?: number + successNum?: number + orderUserCount?: number + virtualGroup?: number + status?: number + limitDuration?: number + products: CombinationProductVO[] +} + +// 拼团活动所需属性 +export interface CombinationProductVO { + spuId: number + skuId: number + activePrice: number // 拼团价格 +} + +// 扩展 Sku 配置 +export type SkuExtension = Sku & { + productConfig: CombinationProductVO +} + +export interface SpuExtension extends Spu { + skus: SkuExtension[] // 重写类型 +} + +// 查询拼团活动列表 +export const getCombinationActivityPage = async (params) => { + return await request.get({ url: '/promotion/combination-activity/page', params }) +} + +// 查询拼团活动详情 +export const getCombinationActivity = async (id: number) => { + return await request.get({ url: '/promotion/combination-activity/get?id=' + id }) +} + +// 新增拼团活动 +export const createCombinationActivity = async (data: CombinationActivityVO) => { + return await request.post({ url: '/promotion/combination-activity/create', data }) +} + +// 修改拼团活动 +export const updateCombinationActivity = async (data: CombinationActivityVO) => { + return await request.put({ url: '/promotion/combination-activity/update', data }) +} + +// 删除拼团活动 +export const deleteCombinationActivity = async (id: number) => { + return await request.delete({ url: '/promotion/combination-activity/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/promotion/coupon.ts b/grailed-ui-admin-vue3/src/api/mall/promotion/coupon.ts new file mode 100644 index 0000000..565b86f --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/promotion/coupon.ts @@ -0,0 +1,18 @@ +import request from '@/config/axios' + +// TODO @dhb52:vo 缺少 + +// 删除优惠劵 +export const deleteCoupon = async (id: number) => { + return request.delete({ + url: `/promotion/coupon/delete?id=${id}` + }) +} + +// 获得优惠劵分页 +export const getCouponPage = async (params: PageParam) => { + return request.get({ + url: '/promotion/coupon/page', + params: params + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/promotion/couponTemplate.ts b/grailed-ui-admin-vue3/src/api/mall/promotion/couponTemplate.ts new file mode 100644 index 0000000..6a58876 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/promotion/couponTemplate.ts @@ -0,0 +1,83 @@ +import request from '@/config/axios' + +export interface CouponTemplateVO { + id: number + name: string + status: number + totalCount: number + takeLimitCount: number + takeType: number + usePrice: number + productScope: number + productSpuIds: string + validityType: number + validStartTime: Date + validEndTime: Date + fixedStartTerm: number + fixedEndTerm: number + discountType: number + discountPercent: number + discountPrice: number + discountLimitPrice: number + takeCount: number + useCount: number +} + +// 创建优惠劵模板 +export function createCouponTemplate(data: CouponTemplateVO) { + return request.post({ + url: '/promotion/coupon-template/create', + data: data + }) +} + +// 更新优惠劵模板 +export function updateCouponTemplate(data: CouponTemplateVO) { + return request.put({ + url: '/promotion/coupon-template/update', + data: data + }) +} + +// 更新优惠劵模板的状态 +export function updateCouponTemplateStatus(id: number, status: [0, 1]) { + const data = { + id, + status + } + return request.put({ + url: '/promotion/coupon-template/update-status', + data: data + }) +} + +// 删除优惠劵模板 +export function deleteCouponTemplate(id: number) { + return request.delete({ + url: '/promotion/coupon-template/delete?id=' + id + }) +} + +// 获得优惠劵模板 +export function getCouponTemplate(id: number) { + return request.get({ + url: '/promotion/coupon-template/get?id=' + id + }) +} + +// 获得优惠劵模板分页 +export function getCouponTemplatePage(params: PageParam) { + return request.get({ + url: '/promotion/coupon-template/page', + params: params + }) +} + +// 导出优惠劵模板 Excel +export function exportCouponTemplateExcel(params: PageParam) { + return request.get({ + url: '/promotion/coupon-template/export-excel', + params: params, + responseType: 'blob' + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillActivity.ts b/grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillActivity.ts new file mode 100644 index 0000000..42c1c31 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillActivity.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' +import { Sku, Spu } from '@/api/mall/product/spu' + +export interface SeckillActivityVO { + id?: number + spuId?: number + name?: string + status?: number + remark?: string + startTime?: Date + endTime?: Date + sort?: number + configIds?: string + orderCount?: number + userCount?: number + totalPrice?: number + totalLimitCount?: number + singleLimitCount?: number + stock?: number + totalStock?: number + products?: SeckillProductVO[] +} + +// 秒杀活动所需属性 +export interface SeckillProductVO { + skuId: number + seckillPrice: number + stock: number +} + +// 扩展 Sku 配置 +export type SkuExtension = Sku & { + productConfig: SeckillProductVO +} + +export interface SpuExtension extends Spu { + skus: SkuExtension[] // 重写类型 +} + +// 查询秒杀活动列表 +export const getSeckillActivityPage = async (params) => { + return await request.get({ url: '/promotion/seckill-activity/page', params }) +} + +// 查询秒杀活动详情 +export const getSeckillActivity = async (id: number) => { + return await request.get({ url: '/promotion/seckill-activity/get?id=' + id }) +} + +// 新增秒杀活动 +export const createSeckillActivity = async (data: SeckillActivityVO) => { + return await request.post({ url: '/promotion/seckill-activity/create', data }) +} + +// 修改秒杀活动 +export const updateSeckillActivity = async (data: SeckillActivityVO) => { + return await request.put({ url: '/promotion/seckill-activity/update', data }) +} + +// 删除秒杀活动 +export const deleteSeckillActivity = async (id: number) => { + return await request.delete({ url: '/promotion/seckill-activity/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillConfig.ts b/grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillConfig.ts new file mode 100644 index 0000000..eee8211 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/promotion/seckill/seckillConfig.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface SeckillConfigVO { + id: number + name: string + startTime: string + endTime: string + sliderPicUrls: string[] + status: number +} + +// 查询秒杀时段配置列表 +export const getSeckillConfigPage = async (params) => { + return await request.get({ url: '/promotion/seckill-config/page', params }) +} + +// 查询秒杀时段配置详情 +export const getSeckillConfig = async (id: number) => { + return await request.get({ url: '/promotion/seckill-config/get?id=' + id }) +} + +// 获得所有开启状态的秒杀时段精简列表 +export const getListAllSimple = async () => { + return await request.get({ url: '/promotion/seckill-config/list-all-simple' }) +} + +// 新增秒杀时段配置 +export const createSeckillConfig = async (data: SeckillConfigVO) => { + return await request.post({ url: '/promotion/seckill-config/create', data }) +} + +// 修改秒杀时段配置 +export const updateSeckillConfig = async (data: SeckillConfigVO) => { + return await request.put({ url: '/promotion/seckill-config/update', data }) +} + +// 修改时段配置状态 +export const updateSeckillConfigStatus = (id: number, status: number) => { + const data = { + id, + status + } + return request.put({ url: '/promotion/seckill-config/update-status', data: data }) +} + +// 删除秒杀时段配置 +export const deleteSeckillConfig = async (id: number) => { + return await request.delete({ url: '/promotion/seckill-config/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/trade/delivery/express/index.ts b/grailed-ui-admin-vue3/src/api/mall/trade/delivery/express/index.ts new file mode 100644 index 0000000..95429a4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/trade/delivery/express/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface DeliveryExpressVO { + id: number + code: string + name: string + logo: string + sort: number + status: number +} + +// 查询快递公司列表 +export const getDeliveryExpressPage = async (params: PageParam) => { + return await request.get({ url: '/trade/delivery/express/page', params }) +} + +// 查询快递公司详情 +export const getDeliveryExpress = async (id: number) => { + return await request.get({ url: '/trade/delivery/express/get?id=' + id }) +} + +// 新增快递公司 +export const createDeliveryExpress = async (data: DeliveryExpressVO) => { + return await request.post({ url: '/trade/delivery/express/create', data }) +} + +// 修改快递公司 +export const updateDeliveryExpress = async (data: DeliveryExpressVO) => { + return await request.put({ url: '/trade/delivery/express/update', data }) +} + +// 删除快递公司 +export const deleteDeliveryExpress = async (id: number) => { + return await request.delete({ url: '/trade/delivery/express/delete?id=' + id }) +} + +// 导出快递公司 Excel +export const exportDeliveryExpressApi = async (params) => { + return await request.download({ url: '/trade/delivery/express/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/trade/delivery/expressTemplate/index.ts b/grailed-ui-admin-vue3/src/api/mall/trade/delivery/expressTemplate/index.ts new file mode 100644 index 0000000..9ed23bc --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/trade/delivery/expressTemplate/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +export interface DeliveryExpressTemplateVO { + id: number + name: string + chargeMode: number + sort: number + templateCharge: ExpressTemplateChargeVO[] + templateFree: ExpressTemplateFreeVO[] +} + +export declare type ExpressTemplateChargeVO = { + areaIds: number[] + startCount: number + startPrice: number + extraCount: number + extraPrice: number +} + +export declare type ExpressTemplateFreeVO = { + areaIds: number[] + freeCount: number + freePrice: number +} + +// 查询快递运费模板列表 +export const getDeliveryExpressTemplatePage = async (params: PageParam) => { + return await request.get({ url: '/trade/delivery/express-template/page', params }) +} + +// 查询快递运费模板详情 +export const getDeliveryExpressTemplate = async (id: number) => { + return await request.get({ url: '/trade/delivery/express-template/get?id=' + id }) +} + +// 查询快递运费模板详情 +export const getSimpleTemplateList = async () => { + return await request.get({ url: '/trade/delivery/express-template/list-all-simple' }) +} + +// 新增快递运费模板 +export const createDeliveryExpressTemplate = async (data: DeliveryExpressTemplateVO) => { + return await request.post({ url: '/trade/delivery/express-template/create', data }) +} + +// 修改快递运费模板 +export const updateDeliveryExpressTemplate = async (data: DeliveryExpressTemplateVO) => { + return await request.put({ url: '/trade/delivery/express-template/update', data }) +} + +// 删除快递运费模板 +export const deleteDeliveryExpressTemplate = async (id: number) => { + return await request.delete({ url: '/trade/delivery/express-template/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/trade/delivery/pickUpStore/index.ts b/grailed-ui-admin-vue3/src/api/mall/trade/delivery/pickUpStore/index.ts new file mode 100644 index 0000000..90fb3d0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/trade/delivery/pickUpStore/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface DeliveryPickUpStoreVO { + id: number + name: string + introduction: string + phone: string + areaId: number + detailAddress: string + logo: string + openingTime: string + closingTime: string + latitude: number + longitude: number + status: number +} + +// 查询自提门店列表 +export const getDeliveryPickUpStorePage = async (params: DeliveryPickUpStorePageReqVO) => { + return await request.get({ url: '/trade/delivery/pick-up-store/page', params }) +} + +// 查询自提门店详情 +export const getDeliveryPickUpStore = async (id: number) => { + return await request.get({ url: '/trade/delivery/pick-up-store/get?id=' + id }) +} + +// 新增自提门店 +export const createDeliveryPickUpStore = async (data: DeliveryPickUpStoreVO) => { + return await request.post({ url: '/trade/delivery/pick-up-store/create', data }) +} + +// 修改自提门店 +export const updateDeliveryPickUpStore = async (data: DeliveryPickUpStoreVO) => { + return await request.put({ url: '/trade/delivery/pick-up-store/update', data }) +} + +// 删除自提门店 +export const deleteDeliveryPickUpStore = async (id: number) => { + return await request.delete({ url: '/trade/delivery/pick-up-store/delete?id=' + id }) +} + +// 导出自提门店 Excel +export const exportDeliveryPickUpStoreApi = async (params) => { + return await request.download({ url: '/trade/delivery/pick-up-store/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/trade/order/index.ts b/grailed-ui-admin-vue3/src/api/mall/trade/order/index.ts new file mode 100644 index 0000000..462c69f --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/trade/order/index.ts @@ -0,0 +1,12 @@ +import request from '@/config/axios' + +// 获得交易订单分页 +// TODO @xiaobai:改成 getOrderPage +export const getOrderList = (params: PageParam) => { + return request.get({ url: '/trade/order/page', params }) +} + +// 获得交易订单详情 +export const getOrderDetail = (id: number) => { + return request.get({ url: '/trade/order/get-detail?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/mall/trade/order/type/orderType.ts b/grailed-ui-admin-vue3/src/api/mall/trade/order/type/orderType.ts new file mode 100644 index 0000000..24606a3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mall/trade/order/type/orderType.ts @@ -0,0 +1,228 @@ +// TODO @xiaobai:这个放到 order/index.ts 里哈 +// TODO @xiaobai:注释放到变量后面,这样简洁一点 +// TODO @xiaobai:这个改成 TradeOrderRespVO +export interface TradeOrderPageItemRespVO { + // 订单编号 + id?: number + // 订单流水号 + no?: string + // 下单时间 + createTime?: Date + // 订单类型 + type?: number + // 订单来源 + terminal?: number + // 用户编号 + userId?: number + // 用户 IP + userIp?: string + // 用户备注 + userRemark?: string + // 订单状态 + status?: number + // 购买的商品数量 + productCount?: number + // 订单完成时间 + finishTime?: Date + // 订单取消时间 + cancelTime?: Date + // 取消类型 + cancelType?: number + // 商家备注 + remark?: string + // 支付订单编号 + payOrderId: number + // 是否已支付 + payed?: boolean + // 付款时间 + payTime?: Date + // 支付渠道 + payChannelCode?: string + // 商品原价(总) + originalPrice?: number + // 订单原价(总) + orderPrice?: number + // 订单优惠(总) + discountPrice?: number + // 运费金额 + deliveryPrice?: number + // 订单调价(总) + adjustPrice?: number + // 应付金额(总) + payPrice?: number + // 配送模板编号 + deliveryTemplateId?: number + // 发货物流公司编号 + logisticsId?: number + // 发货物流单号 + logisticsNo?: string + // 发货状态 + deliveryStatus?: number + // 发货时间 + deliveryTime?: Date + // 收货时间 + receiveTime?: Date + // 收件人名称 + receiverName?: string + // 收件人手机 + receiverMobile?: string + // 收件人地区编号 + receiverAreaId?: number + // 收件人邮编 + receiverPostCode?: number + // 收件人详细地址 + receiverDetailAddress?: string + // 售后状态 + afterSaleStatus?: number + // 退款金额 + refundPrice?: number + // 优惠劵编号 + couponId?: number + // 优惠劵减免金额 + couponPrice?: number + // 积分抵扣的金额 + pointPrice?: number + //收件人地区名字 + receiverAreaName?: string + // 订单项列表 + items?: TradeOrderItemBaseVO[] + //用户信息 + user?: MemberUserRespDTO +} + +// TODO @xiaobai:这个改成 TradeOrderItemRespVO +/** + * 交易订单项 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +export interface TradeOrderItemBaseVO { + // ========== 订单项基本信息 ========== + /** + * 编号 + */ + id?: number + /** + * 用户编号 + */ + userId?: number + /** + * 订单编号 + */ + orderId?: number + // ========== 商品基本信息 ========== + /** + * 商品 SPU 编号 + */ + spuId?: number + /** + * 商品 SPU 名称 + */ + spuName?: string + /** + * 商品 SKU 编号 + */ + skuId?: number + /** + * 商品图片 + */ + picUrl?: string + /** + * 购买数量 + */ + count?: number + // ========== 价格 + 支付基本信息 ========== + /** + * 商品原价(总) + */ + originalPrice?: number + /** + * 商品原价(单) + */ + originalUnitPrice?: number + /** + * 商品优惠(总) + */ + discountPrice?: number + /** + * 商品实付金额(总) + */ + payPrice?: number + /** + * 子订单分摊金额(总) + */ + orderPartPrice?: number + /** + * 分摊后子订单实付金额(总) + */ + orderDividePrice?: number + // ========== 营销基本信息 ========== + // TODO 芋艿:在捉摸一下 + // ========== 售后基本信息 ========== + /** + * 售后状态 + */ + afterSaleStatus?: number + //属性数组 + properties?: ProductPropertyValueDetailRespVO[] +} + +/** + * 管理后台 - 商品属性值的明细 Response VO + */ +export interface ProductPropertyValueDetailRespVO { + /** + * 属性的编号 + */ + propertyId?: number + /** + * 属性的名称 + */ + propertyName?: string + /** + * 属性值的编号 + */ + valueId?: number + /** + * 属性值的名称 + */ + valueName?: string +} + +/** + * 订单详情查询 请求 + */ +export interface TradeOrderPageReqVO { + pageNo: number + pageSize: number + no?: string + userId?: string + userNickname?: string + userMobile?: string + receiverName?: string + receiverMobile?: string + terminal?: string + type?: number + status?: number + payChannelCode?: string + createTime?: [Date, Date] + spuName?: string + itemCount?: string + all?: string +} + +//用户信息 +export interface MemberUserRespDTO { + id?: number + nickname?: string + status?: number + avatar?: string + mobile?: string +} +//订单详情选中type +export interface SelectType { + queryParams: TradeOrderPageReqVO + selectTotal: number //选中的数量 + selectAllFlag: boolean //全选标识 + selectData: Map> //存放涉及选中得页面以及每页选中得数据订单号 全选时根据条件查询 排除取消的list订单 + unSelectList: Set //登记取消的list 全选标识为true 时登记单独取消的list,再次选中时排除, 全选标识为false 时清空list +} diff --git a/grailed-ui-admin-vue3/src/api/member/balanceAccount/index.ts b/grailed-ui-admin-vue3/src/api/member/balanceAccount/index.ts new file mode 100644 index 0000000..bb34e34 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/balanceAccount/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +export interface BalanceAccountVO { + userId: number + balance: number + freezeBalance: number + password: string + status: number +} + +// 查询会员账户列表 +export const getBalanceAccountPage = async (params) => { + return await request.get({ url: `/member/balance-account/page`, params }) +} + +// 查询会员账户详情 +export const getBalanceAccount = async (id: number) => { + return await request.get({ url: `/member/balance-account/get?id=` + id }) +} + +// 新增会员账户 +export const createBalanceAccount = async (data: BalanceAccountVO) => { + return await request.post({ url: `/member/balance-account/create`, data }) +} + +// 修改会员账户 +export const updateBalanceAccount = async (data: BalanceAccountVO) => { + return await request.put({ url: `/member/balance-account/update`, data }) +} + +// 删除会员账户 +export const deleteBalanceAccount = async (id: number) => { + return await request.delete({ url: `/member/balance-account/delete?id=` + id }) +} + +// 导出会员账户 Excel +export const exportBalanceAccount = async (params) => { + return await request.download({ url: `/member/balance-account/export-excel`, params }) +} + +// 查询会员账户by userId +export const getBalanceAccountByUseId = async (params) => { + return await request.get({ url: `/member/balance-account/get/${params.userId}` }) +} + +// 修改账户余额 +export const updateBalanceAccountByUser = async (data: any) => { + return await request.post({ url: `/member/balance-account/update-balance`, data }) +} + +// 修改取款密码 +export const updateBalanceAccountPassword = async (data: any) => { + return await request.put({ url: `/member/balance-account/update-password`, data }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/balanceRecord/index.ts b/grailed-ui-admin-vue3/src/api/member/balanceRecord/index.ts new file mode 100644 index 0000000..a037cae --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/balanceRecord/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface BalanceRecordVO { + id: number + userId: number + beforeAmount: number + amount: number + afterAmount: number + type: string + flow: string + description: string +} + +// 查询余额日志列表 +export const getBalanceRecordPage = async (params) => { + return await request.get({ url: `/member/balance-record/page`, params }) +} + +// 查询余额日志详情 +export const getBalanceRecord = async (id: number) => { + return await request.get({ url: `/member/balance-record/get?id=` + id }) +} + +// 新增余额日志 +export const createBalanceRecord = async (data: BalanceRecordVO) => { + return await request.post({ url: `/member/balance-record/create`, data }) +} + +// 修改余额日志 +export const updateBalanceRecord = async (data: BalanceRecordVO) => { + return await request.put({ url: `/member/balance-record/update`, data }) +} + +// 删除余额日志 +export const deleteBalanceRecord = async (id: number) => { + return await request.delete({ url: `/member/balance-record/delete?id=` + id }) +} + +// 导出余额日志 Excel +export const exportBalanceRecord = async (params) => { + return await request.download({ url: `/member/balance-record/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/bankWithdrawalDetail/index.ts b/grailed-ui-admin-vue3/src/api/member/bankWithdrawalDetail/index.ts new file mode 100644 index 0000000..d4c2e2d --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/bankWithdrawalDetail/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface BankWithdrawalDetailVO { + id: number + withdrawalId: number + bankName: string + bankCountry: string + accountName: string + accountNumber: string + iban: string + swiftBicCode: string + bankAddress: string + branchName: string + branchAddress: string + bankFee: number +} + +// 查询银行卡提现详情列表 +export const getBankWithdrawalDetailPage = async (params) => { + return await request.get({ url: `/member/bank-withdrawal-detail/page`, params }) +} + +// 查询银行卡提现详情详情 +export const getBankWithdrawalDetail = async (id: number) => { + return await request.get({ url: `/member/bank-withdrawal-detail/get?id=` + id }) +} + +// 新增银行卡提现详情 +export const createBankWithdrawalDetail = async (data: BankWithdrawalDetailVO) => { + return await request.post({ url: `/member/bank-withdrawal-detail/create`, data }) +} + +// 修改银行卡提现详情 +export const updateBankWithdrawalDetail = async (data: BankWithdrawalDetailVO) => { + return await request.put({ url: `/member/bank-withdrawal-detail/update`, data }) +} + +// 删除银行卡提现详情 +export const deleteBankWithdrawalDetail = async (id: number) => { + return await request.delete({ url: `/member/bank-withdrawal-detail/delete?id=` + id }) +} + +// 导出银行卡提现详情 Excel +export const exportBankWithdrawalDetail = async (params) => { + return await request.download({ url: `/member/bank-withdrawal-detail/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/brand/index.ts b/grailed-ui-admin-vue3/src/api/member/brand/index.ts new file mode 100644 index 0000000..da83606 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/brand/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface BrandVO { + id: number + name: string + picUrl: string + description: string + sort: number + status: number +} + +// 查询商品品牌列表 +export const getBrandPage = async (params) => { + return await request.get({ url: `/member/brand/page`, params }) +} + +// 查询商品品牌详情 +export const getBrand = async (id: number) => { + return await request.get({ url: `/member/brand/get?id=` + id }) +} + +// 新增商品品牌 +export const createBrand = async (data: BrandVO) => { + return await request.post({ url: `/member/brand/create`, data }) +} + +// 修改商品品牌 +export const updateBrand = async (data: BrandVO) => { + return await request.put({ url: `/member/brand/update`, data }) +} + +// 删除商品品牌 +export const deleteBrand = async (id: number) => { + return await request.delete({ url: `/member/brand/delete?id=` + id }) +} + +// 导出商品品牌 Excel +export const exportBrand = async (params) => { + return await request.download({ url: `/member/brand/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/category/index.ts b/grailed-ui-admin-vue3/src/api/member/category/index.ts new file mode 100644 index 0000000..6da0657 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/category/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +export interface CategoryVO { + id: number + parentId: number + name: string + picUrl: string + bigPicUrl: string + sort: number + status: number +} + +// 查询商品分类列表 +export const getCategoryPage = async (params) => { + return await request.get({ url: `/member/category/page`, params }) +} + +// 查询商品分类详情 +export const getCategory = async (id: number) => { + return await request.get({ url: `/member/category/get?id=` + id }) +} + +// 新增商品分类 +export const createCategory = async (data: CategoryVO) => { + return await request.post({ url: `/member/category/create`, data }) +} + +// 修改商品分类 +export const updateCategory = async (data: CategoryVO) => { + return await request.put({ url: `/member/category/update`, data }) +} + +// 删除商品分类 +export const deleteCategory = async (id: number) => { + return await request.delete({ url: `/member/category/delete?id=` + id }) +} + +// 导出商品分类 Excel +export const exportCategory = async (params) => { + return await request.download({ url: `/member/category/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/channel/index.ts b/grailed-ui-admin-vue3/src/api/member/channel/index.ts new file mode 100644 index 0000000..bdb4505 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/channel/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +export interface ChannelVO { + accountCode: string + accountName: string + bankName: string + bankCountry: string + iban: string + bankAddress: string + branchName: string + branchAddress: string + configId: number +} + +// 查询渠道列列表 +export const getChannelPage = async (params) => { + return await request.get({ url: `/member/channel/page`, params }) +} + +// 查询渠道列详情 +export const getChannel = async (id: number) => { + return await request.get({ url: `/member/channel/get?id=` + id }) +} + +// 新增渠道列 +export const createChannel = async (data: ChannelVO) => { + return await request.post({ url: `/member/channel/create`, data }) +} + +// 修改渠道列 +export const updateChannel = async (data: ChannelVO) => { + return await request.put({ url: `/member/channel/update`, data }) +} + +// 删除渠道列 +export const deleteChannel = async (id: number) => { + return await request.delete({ url: `/member/channel/delete?id=` + id }) +} + +// 导出渠道列 Excel +export const exportChannel = async (params) => { + return await request.download({ url: `/member/channel/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/channelConfig/index.ts b/grailed-ui-admin-vue3/src/api/member/channelConfig/index.ts new file mode 100644 index 0000000..1c4a64b --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/channelConfig/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface ChannelConfigVO { + id: number + channelName: string + channelType: number + iconLink: string + scenario: number + status: number +} + +// 查询渠道配置列表 +export const getChannelConfigPage = async (params) => { + return await request.get({ url: `/member/channel-config/page`, params }) +} + +// 查询渠道配置详情 +export const getChannelConfig = async (id: number) => { + return await request.get({ url: `/member/channel-config/get?id=` + id }) +} + +// 新增渠道配置 +export const createChannelConfig = async (data: ChannelConfigVO) => { + return await request.post({ url: `/member/channel-config/create`, data }) +} + +// 修改渠道配置 +export const updateChannelConfig = async (data: ChannelConfigVO) => { + return await request.put({ url: `/member/channel-config/update`, data }) +} + +// 删除渠道配置 +export const deleteChannelConfig = async (id: number) => { + return await request.delete({ url: `/member/channel-config/delete?id=` + id }) +} + +// 导出渠道配置 Excel +export const exportChannelConfig = async (params) => { + return await request.download({ url: `/member/channel-config/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/checkIn/index.ts b/grailed-ui-admin-vue3/src/api/member/checkIn/index.ts new file mode 100644 index 0000000..59cba40 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/checkIn/index.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +export interface CheckInVO { + id: number + userId : number + checkInMonth: number + checkInDate: string + receivedReward: string +} + +// 查询用户签到列表 +export const getCheckInPage = async (params) => { + return await request.get({ url: `/member/check-in/page`, params }) +} + +// 查询用户签到详情 +export const getCheckIn = async (id: number) => { + return await request.get({ url: `/member/check-in/get?id=` + id }) +} + +// 新增用户签到 +export const createCheckIn = async (data: CheckInVO) => { + return await request.post({ url: `/member/check-in/create`, data }) +} + +// 修改用户签到 +export const updateCheckIn = async (data: CheckInVO) => { + return await request.put({ url: `/member/check-in/update`, data }) +} + +// 删除用户签到 +export const deleteCheckIn = async (id: number) => { + return await request.delete({ url: `/member/check-in/delete?id=` + id }) +} + +// 导出用户签到 Excel +export const exportCheckIn = async (params) => { + return await request.download({ url: `/member/check-in/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/combinationConfig/index.ts b/grailed-ui-admin-vue3/src/api/member/combinationConfig/index.ts new file mode 100644 index 0000000..1a5100e --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/combinationConfig/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface CombinationConfigVO { + id: number + userId: number + comboSequence: number + executeStatus: number + multiplier: number + deleteStatus: number + description: string +} + +// 查询连单设置列表 +export const getCombinationConfigPage = async (params) => { + return await request.get({ url: `/member/combination-config/page`, params }) +} + +// 查询连单设置详情 +export const getCombinationConfig = async (id: number) => { + return await request.get({ url: `/member/combination-config/get?id=` + id }) +} + +// 新增连单设置 +export const createCombinationConfig = async (data: any) => { + return await request.post({ url: `/member/combination-config/create`, data }) +} + +// 修改连单设置 +export const updateCombinationConfig = async (data: CombinationConfigVO) => { + return await request.put({ url: `/member/combination-config/update`, data }) +} + +// 删除连单设置 +export const deleteCombinationConfig = async (id: number) => { + return await request.delete({ url: `/member/combination-config/delete?id=` + id }) +} + +// 导出连单设置 Excel +export const exportCombinationConfig = async (params) => { + return await request.download({ url: `/member/combination-config/export-excel`, params }) +} + +// 修改执行状态 +export const updateCombinationExecuteStatus = async (data: any) => { + return await request.put({ url: `/member/combination-config/execute-status`, data }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/combinationRecord/index.ts b/grailed-ui-admin-vue3/src/api/member/combinationRecord/index.ts new file mode 100644 index 0000000..ff0fea8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/combinationRecord/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface CombinationRecordVO { + id: number + combinationId: number + productId: number + unitPrice: number + totalPrice: number + quantity: number + executeStatus: number + submitTime: Date +} + +// 查询连单记录列表 +export const getCombinationRecordPage = async (params) => { + return await request.get({ url: `/member/combination-record/page`, params }) +} + +// 查询连单记录详情 +export const getCombinationRecord = async (id: number) => { + return await request.get({ url: `/member/combination-record/get?id=` + id }) +} + +// 新增连单记录 +export const createCombinationRecord = async (data: CombinationRecordVO) => { + return await request.post({ url: `/member/combination-record/create`, data }) +} + +// 修改连单记录 +export const updateCombinationRecord = async (data: CombinationRecordVO) => { + return await request.put({ url: `/member/combination-record/update`, data }) +} + +// 删除连单记录 +export const deleteCombinationRecord = async (id: number) => { + return await request.delete({ url: `/member/combination-record/delete?id=` + id }) +} + +// 导出连单记录 Excel +export const exportCombinationRecord = async (params) => { + return await request.download({ url: `/member/combination-record/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/combinationReocrd/index.ts b/grailed-ui-admin-vue3/src/api/member/combinationReocrd/index.ts new file mode 100644 index 0000000..030e297 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/combinationReocrd/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface CombinationReocrdVO { + id: number + combinationId: number + productId: number + unitPrice: number + totalPrice: number + quantity: number + executeStatus: number + submitTime: Date +} + +// 查询连单记录列表 +export const getCombinationReocrdPage = async (params) => { + return await request.get({ url: `/member/combination-reocrd/page`, params }) +} + +// 查询连单记录详情 +export const getCombinationReocrd = async (id: number) => { + return await request.get({ url: `/member/combination-reocrd/get?id=` + id }) +} + +// 新增连单记录 +export const createCombinationReocrd = async (data: CombinationReocrdVO) => { + return await request.post({ url: `/member/combination-reocrd/create`, data }) +} + +// 修改连单记录 +export const updateCombinationReocrd = async (data: CombinationReocrdVO) => { + return await request.put({ url: `/member/combination-reocrd/update`, data }) +} + +// 删除连单记录 +export const deleteCombinationReocrd = async (id: number) => { + return await request.delete({ url: `/member/combination-reocrd/delete?id=` + id }) +} + +// 导出连单记录 Excel +export const exportCombinationReocrd = async (params) => { + return await request.download({ url: `/member/combination-reocrd/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/contentCarouse/index.ts b/grailed-ui-admin-vue3/src/api/member/contentCarouse/index.ts new file mode 100644 index 0000000..1305222 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/contentCarouse/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface ContentCarouseVO { + id: number + carouseName: string + link: string + sort: number + linkTo: string + status: number +} + +// 查询轮播图列表 +export const getContentCarousePage = async (params) => { + return await request.get({ url: `/member/content-carouse/page`, params }) +} + +// 查询轮播图详情 +export const getContentCarouse = async (id: number) => { + return await request.get({ url: `/member/content-carouse/get?id=` + id }) +} + +// 新增轮播图 +export const createContentCarouse = async (data: ContentCarouseVO) => { + return await request.post({ url: `/member/content-carouse/create`, data }) +} + +// 修改轮播图 +export const updateContentCarouse = async (data: ContentCarouseVO) => { + return await request.put({ url: `/member/content-carouse/update`, data }) +} + +// 删除轮播图 +export const deleteContentCarouse = async (id: number) => { + return await request.delete({ url: `/member/content-carouse/delete?id=` + id }) +} + +// 导出轮播图 Excel +export const exportContentCarouse = async (params) => { + return await request.download({ url: `/member/content-carouse/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/continuousSignInConfig/index.ts b/grailed-ui-admin-vue3/src/api/member/continuousSignInConfig/index.ts new file mode 100644 index 0000000..d227efe --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/continuousSignInConfig/index.ts @@ -0,0 +1,38 @@ +import request from '@/config/axios' + +export interface ContinuousSignInConfigVO { + id: number + continuousDays: number + rewardAmount : number + comment: string +} + +// 查询连续签到配置列表 +export const getContinuousSignInConfigPage = async (params) => { + return await request.get({ url: `/member/continuous-sign-in-config/page`, params }) +} + +// 查询连续签到配置详情 +export const getContinuousSignInConfig = async (id: number) => { + return await request.get({ url: `/member/continuous-sign-in-config/get?id=` + id }) +} + +// 新增连续签到配置 +export const createContinuousSignInConfig = async (data: ContinuousSignInConfigVO) => { + return await request.post({ url: `/member/continuous-sign-in-config/create`, data }) +} + +// 修改连续签到配置 +export const updateContinuousSignInConfig = async (data: ContinuousSignInConfigVO) => { + return await request.put({ url: `/member/continuous-sign-in-config/update`, data }) +} + +// 删除连续签到配置 +export const deleteContinuousSignInConfig = async (id: number) => { + return await request.delete({ url: `/member/continuous-sign-in-config/delete?id=` + id }) +} + +// 导出连续签到配置 Excel +export const exportContinuousSignInConfig = async (params) => { + return await request.download({ url: `/member/continuous-sign-in-config/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/countries/index.ts b/grailed-ui-admin-vue3/src/api/member/countries/index.ts new file mode 100644 index 0000000..3587ebd --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/countries/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +export interface CountriesVO { + id: number + cnName: string + enName: string + localName: string + countryCode: string + phoneCode: string + flagIcon: string +} + +// 查询国家列列表 +export const getCountriesPage = async (params) => { + return await request.get({ url: `/member/countries/page`, params }) +} + +// 查询国家列详情 +export const getCountries = async (id: number) => { + return await request.get({ url: `/member/countries/get?id=` + id }) +} + +// 新增国家列 +export const createCountries = async (data: CountriesVO) => { + return await request.post({ url: `/member/countries/create`, data }) +} + +// 修改国家列 +export const updateCountries = async (data: CountriesVO) => { + return await request.put({ url: `/member/countries/update`, data }) +} + +// 删除国家列 +export const deleteCountries = async (id: number) => { + return await request.delete({ url: `/member/countries/delete?id=` + id }) +} + +// 导出国家列 Excel +export const exportCountries = async (params) => { + return await request.download({ url: `/member/countries/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/cryptoWithdrawalDetail/index.ts b/grailed-ui-admin-vue3/src/api/member/cryptoWithdrawalDetail/index.ts new file mode 100644 index 0000000..55c40bd --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/cryptoWithdrawalDetail/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface CryptoWithdrawalDetailVO { + id: number + withdrawalId: number + cryptoType : string + network: string + cryptoAddress: string + cryptoTag: string + transactionHash: string + networkFee: string +} + +// 查询数字货币提现详情列表 +export const getCryptoWithdrawalDetailPage = async (params) => { + return await request.get({ url: `/member/crypto-withdrawal-detail/page`, params }) +} + +// 查询数字货币提现详情详情 +export const getCryptoWithdrawalDetail = async (id: number) => { + return await request.get({ url: `/member/crypto-withdrawal-detail/get?id=` + id }) +} + +// 新增数字货币提现详情 +export const createCryptoWithdrawalDetail = async (data: CryptoWithdrawalDetailVO) => { + return await request.post({ url: `/member/crypto-withdrawal-detail/create`, data }) +} + +// 修改数字货币提现详情 +export const updateCryptoWithdrawalDetail = async (data: CryptoWithdrawalDetailVO) => { + return await request.put({ url: `/member/crypto-withdrawal-detail/update`, data }) +} + +// 删除数字货币提现详情 +export const deleteCryptoWithdrawalDetail = async (id: number) => { + return await request.delete({ url: `/member/crypto-withdrawal-detail/delete?id=` + id }) +} + +// 导出数字货币提现详情 Excel +export const exportCryptoWithdrawalDetail = async (params) => { + return await request.download({ url: `/member/crypto-withdrawal-detail/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/cumulativeSignInConfig/index.ts b/grailed-ui-admin-vue3/src/api/member/cumulativeSignInConfig/index.ts new file mode 100644 index 0000000..841dbc2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/cumulativeSignInConfig/index.ts @@ -0,0 +1,38 @@ +import request from '@/config/axios' + +export interface CumulativeSignInConfigVO { + id: number + totalDays: number + rewardAmount : number + comment: string +} + +// 查询累计签到配置列表 +export const getCumulativeSignInConfigPage = async (params) => { + return await request.get({ url: `/member/cumulative-sign-in-config/page`, params }) +} + +// 查询累计签到配置详情 +export const getCumulativeSignInConfig = async (id: number) => { + return await request.get({ url: `/member/cumulative-sign-in-config/get?id=` + id }) +} + +// 新增累计签到配置 +export const createCumulativeSignInConfig = async (data: CumulativeSignInConfigVO) => { + return await request.post({ url: `/member/cumulative-sign-in-config/create`, data }) +} + +// 修改累计签到配置 +export const updateCumulativeSignInConfig = async (data: CumulativeSignInConfigVO) => { + return await request.put({ url: `/member/cumulative-sign-in-config/update`, data }) +} + +// 删除累计签到配置 +export const deleteCumulativeSignInConfig = async (id: number) => { + return await request.delete({ url: `/member/cumulative-sign-in-config/delete?id=` + id }) +} + +// 导出累计签到配置 Excel +export const exportCumulativeSignInConfig = async (params) => { + return await request.download({ url: `/member/cumulative-sign-in-config/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/customTask/index.ts b/grailed-ui-admin-vue3/src/api/member/customTask/index.ts new file mode 100644 index 0000000..28a99b6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/customTask/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +export interface CustomTaskVO { + id: number + userId: number + taskLimit: number + updateCount: number + effectDate: Date + description: string +} + +// 查询任务单数列表 +export const getCustomTaskPage = async (params) => { + return await request.get({ url: `/member/custom-task/page`, params }) +} + +// 查询任务单数详情 +export const getCustomTask = async (id: number) => { + return await request.get({ url: `/member/custom-task/get?id=` + id }) +} + +// 新增任务单数 +export const createCustomTask = async (data: CustomTaskVO) => { + return await request.post({ url: `/member/custom-task/create`, data }) +} + +// 修改任务单数 +export const updateCustomTask = async (data: CustomTaskVO) => { + return await request.put({ url: `/member/custom-task/update`, data }) +} + +// 删除任务单数 +export const deleteCustomTask = async (id: number) => { + return await request.delete({ url: `/member/custom-task/delete?id=` + id }) +} + +// 导出任务单数 Excel +export const exportCustomTask = async (params) => { + return await request.download({ url: `/member/custom-task/export-excel`, params }) +} + +export const getCustomTaskByUserId = async (params) => { + return await request.get({ url: `/member/custom-task/user`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/dailySignInConfig/index.ts b/grailed-ui-admin-vue3/src/api/member/dailySignInConfig/index.ts new file mode 100644 index 0000000..5e35523 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/dailySignInConfig/index.ts @@ -0,0 +1,38 @@ +import request from '@/config/axios' + +export interface DailySignInConfigVO { + id: number + dayOfMonth: number + rewardAmount : number + comment: string +} + +// 查询每日签到配置列表 +export const getDailySignInConfigPage = async (params) => { + return await request.get({ url: `/member/daily-sign-in-config/page`, params }) +} + +// 查询每日签到配置详情 +export const getDailySignInConfig = async (id: number) => { + return await request.get({ url: `/member/daily-sign-in-config/get?id=` + id }) +} + +// 新增每日签到配置 +export const createDailySignInConfig = async (data: DailySignInConfigVO) => { + return await request.post({ url: `/member/daily-sign-in-config/create`, data }) +} + +// 修改每日签到配置 +export const updateDailySignInConfig = async (data: DailySignInConfigVO) => { + return await request.put({ url: `/member/daily-sign-in-config/update`, data }) +} + +// 删除每日签到配置 +export const deleteDailySignInConfig = async (id: number) => { + return await request.delete({ url: `/member/daily-sign-in-config/delete?id=` + id }) +} + +// 导出每日签到配置 Excel +export const exportDailySignInConfig = async (params) => { + return await request.download({ url: `/member/daily-sign-in-config/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/h5Pages/index.ts b/grailed-ui-admin-vue3/src/api/member/h5Pages/index.ts new file mode 100644 index 0000000..a487854 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/h5Pages/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface H5PagesVO { + id: number + country: string + language: string + name: string + logo: string + favicon: string + title: string + description: string + keywords: string + themeColor: string + font: string + cssUrl: string + jsUrl: string +} + +// 查询H5配置列表 +export const getH5PagesPage = async (params) => { + return await request.get({ url: `/member/H5-pages/page`, params }) +} + +// 查询H5配置详情 +export const getH5Pages = async (id: number) => { + return await request.get({ url: `/member/H5-pages/get` }) +} + +// 新增H5配置 +export const createH5Pages = async (data: H5PagesVO) => { + return await request.post({ url: `/member/H5-pages/create`, data }) +} + +// 修改H5配置 +export const updateH5Pages = async (data: H5PagesVO) => { + return await request.put({ url: `/member/H5-pages/update`, data }) +} + +// 删除H5配置 +export const deleteH5Pages = async (id: number) => { + return await request.delete({ url: `/member/H5-pages/delete?id=` + id }) +} + +// 导出H5配置 Excel +export const exportH5Pages = async (params) => { + return await request.download({ url: `/member/H5-pages/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/levelConfig/index.ts b/grailed-ui-admin-vue3/src/api/member/levelConfig/index.ts new file mode 100644 index 0000000..72b520f --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/levelConfig/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +export interface LevelConfigVO { + id: number + level: number + displayName: string + taskLimit: number + commissionRate: number + minimumWithdrawalAmount: number + price: number + teamMembers: number + activeTeamMembers: number + description: string +} + +// 查询会员级别列表 +export const getLevelConfigPage = async (params) => { + return await request.get({ url: `/member/level-config/page`, params }) +} + +// 查询会员级别详情 +export const getLevelConfig = async (id: number) => { + return await request.get({ url: `/member/level-config/get?id=` + id }) +} + +// 新增会员级别 +export const createLevelConfig = async (data: LevelConfigVO) => { + return await request.post({ url: `/member/level-config/create`, data }) +} + +// 修改会员级别 +export const updateLevelConfig = async (data: LevelConfigVO) => { + return await request.put({ url: `/member/level-config/update`, data }) +} + +// 删除会员级别 +export const deleteLevelConfig = async (id: number) => { + return await request.delete({ url: `/member/level-config/delete?id=` + id }) +} + +// 导出会员级别 Excel +export const exportLevelConfig = async (params) => { + return await request.download({ url: `/member/level-config/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/messageSession/index.ts b/grailed-ui-admin-vue3/src/api/member/messageSession/index.ts new file mode 100644 index 0000000..07bb3aa --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/messageSession/index.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +export interface MessageSessionVO { + id: number + userId: number + sessionId: string + connectedAt: Date + lastActivityAt: Date +} + +// 查询用户记录列表 +export const getMessageSessionPage = async (params) => { + return await request.get({ url: `/member/message-session/page`, params }) +} + +// 查询用户记录详情 +export const getMessageSession = async (id: number) => { + return await request.get({ url: `/member/message-session/get?id=` + id }) +} + +// 新增用户记录 +export const createMessageSession = async (data: MessageSessionVO) => { + return await request.post({ url: `/member/message-session/create`, data }) +} + +// 修改用户记录 +export const updateMessageSession = async (data: MessageSessionVO) => { + return await request.put({ url: `/member/message-session/update`, data }) +} + +// 删除用户记录 +export const deleteMessageSession = async (id: number) => { + return await request.delete({ url: `/member/message-session/delete?id=` + id }) +} + +// 导出用户记录 Excel +export const exportMessageSession = async (params) => { + return await request.download({ url: `/member/message-session/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/payOrder/index.ts b/grailed-ui-admin-vue3/src/api/member/payOrder/index.ts new file mode 100644 index 0000000..cc02d46 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/payOrder/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface PayOrderVO { + id: number + merchantId: number + channelId: number + channelCode: string + merchantOrderId: string + subject: string + body: string + notifyUrl: string + notifyStatus: number + amount: number + channelFeeRate: object + channelFeeAmount: number + status: number + userIp: string + expireTime: Date + successTime: Date + notifyTime: Date + successExtensionId: number + refundStatus: number + refundTimes: number + refundAmount: number + channelUserId: string + channelOrderNo: string +} + +// 查询支付订单列表 +export const getPayOrderPage = async (params) => { + return await request.get({ url: `/member/pay-order/page`, params }) +} + +// 查询支付订单详情 +export const getPayOrder = async (id: number) => { + return await request.get({ url: `/member/pay-order/get?id=` + id }) +} + +// 新增支付订单 + +export const createPayOrder = async (data: PayOrderVO) => { + return await request.post({ url: `/member/pay-order/create`, data }) +} + +// 修改支付订单 + +export const updatePayOrder = async (data: PayOrderVO) => { + return await request.put({ url: `/member/pay-order/update`, data }) +} + +// 删除支付订单 + +export const deletePayOrder = async (id: number) => { + return await request.delete({ url: `/member/pay-order/delete?id=` + id }) +} + +// 导出支付订单Excel +export const exportPayOrder = async (params) => { + return await request.download({ url: `/member/pay-order/export-excel`, params }) +} + +// 审批支付订单 +export const approvePayOrder = async (data: any) => { + return await request.post({ url: `/member/pay-order/approve`, data }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/payOrderExtension/index.ts b/grailed-ui-admin-vue3/src/api/member/payOrderExtension/index.ts new file mode 100644 index 0000000..1a806da --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/payOrderExtension/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface PayOrderExtensionVO { + id: number + no: string + orderId: number + channelId: number + accountCode: string + userIp: string + status: number + channelExtras: string + channelNotifyData: string + accountName: string +} + +// 查询支付订单列表 +export const getPayOrderExtensionPage = async (params) => { + return await request.get({ url: `/member/pay-order-extension/page`, params }) +} + +// 查询支付订单详情 +export const getPayOrderExtension = async (id: number) => { + return await request.get({ url: `/member/pay-order-extension/get?id=` + id }) +} + +// 新增支付订单 + +export const createPayOrderExtension = async (data: PayOrderExtensionVO) => { + return await request.post({ url: `/member/pay-order-extension/create`, data }) +} + +// 修改支付订单 + +export const updatePayOrderExtension = async (data: PayOrderExtensionVO) => { + return await request.put({ url: `/member/pay-order-extension/update`, data }) +} + +// 删除支付订单 + +export const deletePayOrderExtension = async (id: number) => { + return await request.delete({ url: `/member/pay-order-extension/delete?id=` + id }) +} + +// 导出支付订单Excel +export const exportPayOrderExtension = async (params) => { + return await request.download({ url: `/member/pay-order-extension/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/product/index.ts b/grailed-ui-admin-vue3/src/api/member/product/index.ts new file mode 100644 index 0000000..03c735f --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/product/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +export interface ProductVO { + id: number + name: string + keyword: string + introduction: string + description: string + categoryId: number + brandId: number + picUrl: string + sliderPicUrls: object + videoUrl: string + unit: number + sort: number + status: number + price: number + stock: number +} + +// 查询商品信息列表 +export const getProductPage = async (params) => { + return await request.get({ url: `/member/product/page`, params }) +} + +// 查询商品信息详情 +export const getProduct = async (id: number) => { + return await request.get({ url: `/member/product/get?id=` + id }) +} + +// 新增商品信息 +export const createProduct = async (data: ProductVO) => { + return await request.post({ url: `/member/product/create`, data }) +} + +// 修改商品信息 +export const updateProduct = async (data: ProductVO) => { + return await request.put({ url: `/member/product/update`, data }) +} + +// 删除商品信息 +export const deleteProduct = async (id: number) => { + return await request.delete({ url: `/member/product/delete?id=` + id }) +} + +// 导出商品信息 Excel +export const exportProduct = async (params) => { + return await request.download({ url: `/member/product/export-excel`, params }) +} + +// 根据输入价格查询一个商品 +export const getProductByPrice = async (data: any) => { + return await request.post({ url: `/member/product/get-by-price`, data}) +} \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/api/member/signInRecord/index.ts b/grailed-ui-admin-vue3/src/api/member/signInRecord/index.ts new file mode 100644 index 0000000..cb3103f --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/signInRecord/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface SignInRecordVO { + id: number + userId: number + signInDate: string + signInMonth: string + rewardIssued: number + reward: number +} + +// 查询用户签到记录列表 +export const getSignInRecordPage = async (params) => { + return await request.get({ url: `/member/sign-in-record/page`, params }) +} + +// 查询用户签到记录详情 +export const getSignInRecord = async (id: number) => { + return await request.get({ url: `/member/sign-in-record/get?id=` + id }) +} + +// 新增用户签到记录 +export const createSignInRecord = async (data: SignInRecordVO) => { + return await request.post({ url: `/member/sign-in-record/create`, data }) +} + +// 修改用户签到记录 +export const updateSignInRecord = async (data: SignInRecordVO) => { + return await request.put({ url: `/member/sign-in-record/update`, data }) +} + +// 删除用户签到记录 +export const deleteSignInRecord = async (id: number) => { + return await request.delete({ url: `/member/sign-in-record/delete?id=` + id }) +} + +// 导出用户签到记录 Excel +export const exportSignInRecord = async (params) => { + return await request.download({ url: `/member/sign-in-record/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/tagRelations/index.ts b/grailed-ui-admin-vue3/src/api/member/tagRelations/index.ts new file mode 100644 index 0000000..aa7e58d --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/tagRelations/index.ts @@ -0,0 +1,37 @@ +import request from '@/config/axios' + +export interface TagRelationsVO { + id: number + memberId: number + tagId: number +} + +// 查询会员标签列表 +export const getTagRelationsPage = async (params) => { + return await request.get({ url: `/member/tag-relations/page`, params }) +} + +// 查询会员标签详情 +export const getTagRelations = async (id: number) => { + return await request.get({ url: `/member/tag-relations/get?id=` + id }) +} + +// 新增会员标签 +export const createTagRelations = async (data: TagRelationsVO) => { + return await request.post({ url: `/member/tag-relations/create`, data }) +} + +// 修改会员标签 +export const updateTagRelations = async (data: TagRelationsVO) => { + return await request.put({ url: `/member/tag-relations/update`, data }) +} + +// 删除会员标签 +export const deleteTagRelations = async (id: number) => { + return await request.delete({ url: `/member/tag-relations/delete?id=` + id }) +} + +// 导出会员标签 Excel +export const exportTagRelations = async (params) => { + return await request.download({ url: `/member/tag-relations/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/tags/index.ts b/grailed-ui-admin-vue3/src/api/member/tags/index.ts new file mode 100644 index 0000000..486d162 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/tags/index.ts @@ -0,0 +1,38 @@ +import request from '@/config/axios' + +export interface TagsVO { + id: number + tagName: string + textColor: string + bgColor: string +} + +// 查询标签管理列表 +export const getTagsPage = async (params) => { + return await request.get({ url: `/member/tags/page`, params }) +} + +// 查询标签管理详情 +export const getTags = async (id: number) => { + return await request.get({ url: `/member/tags/get?id=` + id }) +} + +// 新增标签管理 +export const createTags = async (data: TagsVO) => { + return await request.post({ url: `/member/tags/create`, data }) +} + +// 修改标签管理 +export const updateTags = async (data: TagsVO) => { + return await request.put({ url: `/member/tags/update`, data }) +} + +// 删除标签管理 +export const deleteTags = async (id: number) => { + return await request.delete({ url: `/member/tags/delete?id=` + id }) +} + +// 导出标签管理 Excel +export const exportTags = async (params) => { + return await request.download({ url: `/member/tags/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/taskComment/index.ts b/grailed-ui-admin-vue3/src/api/member/taskComment/index.ts new file mode 100644 index 0000000..0cbcacf --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/taskComment/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface TaskCommentVO { + id: number + userId: number + userNickname: string + userAvatar: string + anonymous: boolean + taskRecordId: number + productId: number + productName: string + visible: boolean + scores: number + content: string + picUrls: object + replyStatus: boolean + replyUserId: number + replyContent: string + replyTime: Date +} + +// 查询任务评论列表 +export const getTaskCommentPage = async (params) => { + return await request.get({ url: `/member/task-comment/page`, params }) +} + +// 查询任务评论详情 +export const getTaskComment = async (id: number) => { + return await request.get({ url: `/member/task-comment/get?id=` + id }) +} + +// 新增任务评论 +export const createTaskComment = async (data: TaskCommentVO) => { + return await request.post({ url: `/member/task-comment/create`, data }) +} + +// 修改任务评论 +export const updateTaskComment = async (data: TaskCommentVO) => { + return await request.put({ url: `/member/task-comment/update`, data }) +} + +// 删除任务评论 +export const deleteTaskComment = async (id: number) => { + return await request.delete({ url: `/member/task-comment/delete?id=` + id }) +} + +// 导出任务评论 Excel +export const exportTaskComment = async (params) => { + return await request.download({ url: `/member/task-comment/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/taskRecord/index.ts b/grailed-ui-admin-vue3/src/api/member/taskRecord/index.ts new file mode 100644 index 0000000..565a528 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/taskRecord/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface TaskRecordVO { + id: number + orderNo: string + userId: number + quantity: number + productId: number + unitPrice: number + totalPrice: number + combination: number + taskSequence: number + status: number + orderTime: Date + submitTime: Date + starRating: number + description: string +} + +// 查询任务记录列表 +export const getTaskRecordPage = async (params) => { + return await request.get({ url: `/member/task-record/page`, params }) +} + +// 查询任务记录详情 +export const getTaskRecord = async (id: number) => { + return await request.get({ url: `/member/task-record/get?id=` + id }) +} + +// 新增任务记录 +export const createTaskRecord = async (data: TaskRecordVO) => { + return await request.post({ url: `/member/task-record/create`, data }) +} + +// 修改任务记录 +export const updateTaskRecord = async (data: TaskRecordVO) => { + return await request.put({ url: `/member/task-record/update`, data }) +} + +// 删除任务记录 +export const deleteTaskRecord = async (id: number) => { + return await request.delete({ url: `/member/task-record/delete?id=` + id }) +} + +// 导出任务记录 Excel +export const exportTaskRecord = async (params) => { + return await request.download({ url: `/member/task-record/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/user/index.ts b/grailed-ui-admin-vue3/src/api/member/user/index.ts new file mode 100644 index 0000000..cdcdda3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/user/index.ts @@ -0,0 +1,94 @@ +import request from '@/config/axios' + +export interface UserVO { + id: number + parentId: number + username: string + password: string + nickname: string + remark: string + email: string + mobile: string + countryCode: string + invitationCode: string + memberLevel: number + creditScore: number + userType: number + sex: number + avatar: string + status: number + loginIp: string + loginDate: Date +} + +export interface UserUpdateVO { + id: number + nickname: string + remark: string + email: string + countryCode: string + sex: number + avatar: string + status: number + userType: number +} + +// 查询会员信息列表 +export const getUserPage = async (params) => { + return await request.get({ url: `/admin/member/user/page`, params }) +} + +// 查询会员信息详情 +export const getUser = async (id: number) => { + return await request.get({ url: `/admin/member/user/get?id=` + id }) +} + +// 新增会员信息 +export const createUser = async (data: UserVO) => { + return await request.post({ url: `/admin/member/user/create`, data }) +} + +// 修改会员信息 +export const updateUser = async (data: UserUpdateVO) => { + return await request.put({ url: `/admin/member/user/update`, data }) +} + +// 删除会员信息 +export const deleteUser = async (id: number) => { + return await request.delete({ url: `/admin/member/user/delete?id=` + id }) +} + +// 导出会员信息 Excel +export const exportUser = async (params) => { + return await request.download({ url: `/admin/member/user/export-excel`, params }) +} + +// 根据用户名查询会员信息 +export const getUserByUsername = async (params) => { + return await request.get({ url: `/admin/member/user/get/` + params }) +} + +// 查询用户任务完成情况 +export const getUserTaskInfo = async (params) => { + return await request.get({ url: `/admin/member/user/user-task-info`, params }) +} + +// 修改密码 +export const updatePassword = async (data) => { + return await request.put({ url: `/admin/member/user/update-password`, data }) +} + +// 修改用户等级 +export const updateUserLevel = async (data) => { + return await request.put({ url: `/admin/member/user/update-level`, data }) +} + +// 修改信誉分 +export const updateCreditScore = async (data) => { + return await request.put({ url: `/admin/member/user/update-credit-score`, data }) +} + +// 计算余额 +export const calcUserBalance = async (params: any) => { + return await request.get({ url: '/admin/member/user/calc-balance', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/userBank/index.ts b/grailed-ui-admin-vue3/src/api/member/userBank/index.ts new file mode 100644 index 0000000..9c27a54 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/userBank/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +export interface UserBankVO { + id: number + userId: number + bankName: string + bankCountry: string + accountName: string + accountNumber: string + iban: string + swiftBicCode: string + bankAddress: string + branchName: string + branchAddress: string +} + +// 查询会员银行卡列表 +export const getUserBankPage = async (params) => { + return await request.get({ url: `/member/user-bank/page`, params }) +} + +// 查询会员银行卡详情 +export const getUserBank = async (id: number) => { + return await request.get({ url: `/member/user-bank/get?id=` + id }) +} + +// 新增会员银行卡 +export const createUserBank = async (data: UserBankVO) => { + return await request.post({ url: `/member/user-bank/create`, data }) +} + +// 修改会员银行卡 +export const updateUserBank = async (data: UserBankVO) => { + return await request.put({ url: `/member/user-bank/update`, data }) +} + +// 删除会员银行卡 +export const deleteUserBank = async (id: number) => { + return await request.delete({ url: `/member/user-bank/delete?id=` + id }) +} + +// 导出会员银行卡 Excel +export const exportUserBank = async (params) => { + return await request.download({ url: `/member/user-bank/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/userCrypto/index.ts b/grailed-ui-admin-vue3/src/api/member/userCrypto/index.ts new file mode 100644 index 0000000..4d66c28 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/userCrypto/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +export interface UserCryptoVO { + id: number + userId: number + currencyType: string + address: string + label: string + primary: number + qrCode: string + cryptoTag: string + verified: number + network: string +} + +// 查询会员数字货币地址列表 +export const getUserCryptoPage = async (params) => { + return await request.get({ url: `/member/user-crypto/page`, params }) +} + +// 查询会员数字货币地址详情 +export const getUserCrypto = async (id: number) => { + return await request.get({ url: `/member/user-crypto/get?id=` + id }) +} + +// 新增会员数字货币地址 +export const createUserCrypto = async (data: UserCryptoVO) => { + return await request.post({ url: `/member/user-crypto/create`, data }) +} + +// 修改会员数字货币地址 +export const updateUserCrypto = async (data: UserCryptoVO) => { + return await request.put({ url: `/member/user-crypto/update`, data }) +} + +// 删除会员数字货币地址 +export const deleteUserCrypto = async (id: number) => { + return await request.delete({ url: `/member/user-crypto/delete?id=` + id }) +} + +// 导出会员数字货币地址 Excel +export const exportUserCrypto = async (params) => { + return await request.download({ url: `/member/user-crypto/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/userExtension/index.ts b/grailed-ui-admin-vue3/src/api/member/userExtension/index.ts new file mode 100644 index 0000000..6ef475a --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/userExtension/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +export interface UserExtensionVO { + id: number + userId: number + firstName: string + lastName: string + email: string + country: string + streetAddress: string + state: string + postalCode: string + language: string + userZone: string +} + +// 查询用户信息扩展列表 +export const getUserExtensionPage = async (params) => { + return await request.get({ url: `/member/user-extension/page`, params }) +} + +// 查询用户信息扩展详情 +export const getUserExtension = async (id: number) => { + return await request.get({ url: `/member/user-extension/get?id=` + id }) +} + +// 新增用户信息扩展 +export const createUserExtension = async (data: UserExtensionVO) => { + return await request.post({ url: `/member/user-extension/create`, data }) +} + +// 修改用户信息扩展 +export const updateUserExtension = async (data: UserExtensionVO) => { + return await request.put({ url: `/member/user-extension/update`, data }) +} + +// 删除用户信息扩展 +export const deleteUserExtension = async (id: number) => { + return await request.delete({ url: `/member/user-extension/delete?id=` + id }) +} + +// 导出用户信息扩展 Excel +export const exportUserExtension = async (params) => { + return await request.download({ url: `/member/user-extension/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/member/withdrawal/index.ts b/grailed-ui-admin-vue3/src/api/member/withdrawal/index.ts new file mode 100644 index 0000000..4320965 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/member/withdrawal/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface WithdrawalVO { + id: number + userId: number + withdrawalType: number + amount: number + currency: string + status: string + requestDate: Date + processedDate: Date + remark: string + fee: number + netAmount: number +} + +// 查询提现记录列表 +export const getWithdrawalPage = async (params) => { + return await request.get({ url: `/member/withdrawal/page`, params }) +} + +// 查询提现记录详情 +export const getWithdrawal = async (id: number) => { + return await request.get({ url: `/member/withdrawal/get?id=` + id }) +} + +// 新增提现记录 +export const createWithdrawal = async (data: WithdrawalVO) => { + return await request.post({ url: `/member/withdrawal/create`, data }) +} + +// 修改提现记录 +export const updateWithdrawal = async (data: WithdrawalVO) => { + return await request.put({ url: `/member/withdrawal/update`, data }) +} + +// 修改提现记录 +export const approveWithdrawal = async (data: WithdrawalVO) => { + return await request.put({ url: `/member/withdrawal/approve`, data }) +} + +// 删除提现记录 +export const deleteWithdrawal = async (id: number) => { + return await request.delete({ url: `/member/withdrawal/delete?id=` + id }) +} + +// 导出提现记录 Excel +export const exportWithdrawal = async (params) => { + return await request.download({ url: `/member/withdrawal/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/message/blacklist/index.ts b/grailed-ui-admin-vue3/src/api/message/blacklist/index.ts new file mode 100644 index 0000000..f4810bc --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/message/blacklist/index.ts @@ -0,0 +1,37 @@ +import request from '@/config/axios' + +export interface BlacklistVO { + id: number + memberId: number + remark: string +} + +// 查询黑名单列表 +export const getBlacklistPage = async (params) => { + return await request.get({ url: `/message/blacklist/page`, params }) +} + +// 查询黑名单详情 +export const getBlacklist = async (id: number) => { + return await request.get({ url: `/message/blacklist/get?id=` + id }) +} + +// 新增黑名单 +export const createBlacklist = async (data: BlacklistVO) => { + return await request.post({ url: `/message/blacklist/create`, data }) +} + +// 修改黑名单 +export const updateBlacklist = async (data: BlacklistVO) => { + return await request.put({ url: `/message/blacklist/update`, data }) +} + +// 删除黑名单 +export const deleteBlacklist = async (id: number) => { + return await request.delete({ url: `/message/blacklist/delete?id=` + id }) +} + +// 导出黑名单 Excel +export const exportBlacklist = async (params) => { + return await request.download({ url: `/message/blacklist/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/message/content/index.ts b/grailed-ui-admin-vue3/src/api/message/content/index.ts new file mode 100644 index 0000000..f194160 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/message/content/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +export interface ContentVO { + id: number + senderId: number + receiverId: number + content: string + type: number + translatedContent: string + language: string + translationLanguage: string + isRead: boolean + isRetracted: boolean +} + +// 查询消息记录列表 +export const getContentPage = async (params) => { + return await request.get({ url: `/message/content/page`, params }) +} + +// 查询消息记录详情 +export const getContent = async (id: number) => { + return await request.get({ url: `/message/content/get?id=` + id }) +} + +// 新增消息记录 +export const createContent = async (data: ContentVO) => { + return await request.post({ url: `/message/content/create`, data }) +} + +// 修改消息记录 +export const updateContent = async (data: ContentVO) => { + return await request.put({ url: `/message/content/update`, data }) +} + +// 删除消息记录 +export const deleteContent = async (id: number) => { + return await request.delete({ url: `/message/content/delete?id=` + id }) +} + +// 导出消息记录 Excel +export const exportContent = async (params) => { + return await request.download({ url: `/message/content/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/message/memberRemark/index.ts b/grailed-ui-admin-vue3/src/api/message/memberRemark/index.ts new file mode 100644 index 0000000..47a807a --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/message/memberRemark/index.ts @@ -0,0 +1,38 @@ +import request from '@/config/axios' + +export interface MemberRemarkVO { + id: number + memberId: number + nickName: string + remark: string +} + +// 查询会员标记列表 +export const getMemberRemarkPage = async (params) => { + return await request.get({ url: `/message/member-remark/page`, params }) +} + +// 查询会员标记详情 +export const getMemberRemark = async (id: number) => { + return await request.get({ url: `/message/member-remark/get?id=` + id }) +} + +// 新增会员标记 +export const createMemberRemark = async (data: MemberRemarkVO) => { + return await request.post({ url: `/message/member-remark/create`, data }) +} + +// 修改会员标记 +export const updateMemberRemark = async (data: MemberRemarkVO) => { + return await request.put({ url: `/message/member-remark/update`, data }) +} + +// 删除会员标记 +export const deleteMemberRemark = async (id: number) => { + return await request.delete({ url: `/message/member-remark/delete?id=` + id }) +} + +// 导出会员标记 Excel +export const exportMemberRemark = async (params) => { + return await request.download({ url: `/message/member-remark/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/message/quickGroup/index.ts b/grailed-ui-admin-vue3/src/api/message/quickGroup/index.ts new file mode 100644 index 0000000..974a886 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/message/quickGroup/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +export interface QuickGroupVO { + id: number + groupName: string +} + +// 查询回复分组列表 +export const getQuickGroupPage = async (params) => { + return await request.get({ url: `/message/quick-group/page`, params }) +} + +// 查询回复分组详情 +export const getQuickGroup = async (id: number) => { + return await request.get({ url: `/message/quick-group/get?id=` + id }) +} + +// 新增回复分组 +export const createQuickGroup = async (data: QuickGroupVO) => { + return await request.post({ url: `/message/quick-group/create`, data }) +} + +// 修改回复分组 +export const updateQuickGroup = async (data: QuickGroupVO) => { + return await request.put({ url: `/message/quick-group/update`, data }) +} + +// 删除回复分组 +export const deleteQuickGroup = async (id: number) => { + return await request.delete({ url: `/message/quick-group/delete?id=` + id }) +} + +// 导出回复分组 Excel +export const exportQuickGroup = async (params) => { + return await request.download({ url: `/message/quick-group/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/message/quickReplies/index.ts b/grailed-ui-admin-vue3/src/api/message/quickReplies/index.ts new file mode 100644 index 0000000..089b5ed --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/message/quickReplies/index.ts @@ -0,0 +1,38 @@ +import request from '@/config/axios' + +export interface QuickRepliesVO { + id: number + groupId: number + content: string + needTranslation: boolean +} + +// 查询快捷回复列表 +export const getQuickRepliesPage = async (params) => { + return await request.get({ url: `/message/quick-replies/page`, params }) +} + +// 查询快捷回复详情 +export const getQuickReplies = async (id: number) => { + return await request.get({ url: `/message/quick-replies/get?id=` + id }) +} + +// 新增快捷回复 +export const createQuickReplies = async (data: QuickRepliesVO) => { + return await request.post({ url: `/message/quick-replies/create`, data }) +} + +// 修改快捷回复 +export const updateQuickReplies = async (data: QuickRepliesVO) => { + return await request.put({ url: `/message/quick-replies/update`, data }) +} + +// 删除快捷回复 +export const deleteQuickReplies = async (id: number) => { + return await request.delete({ url: `/message/quick-replies/delete?id=` + id }) +} + +// 导出快捷回复 Excel +export const exportQuickReplies = async (params) => { + return await request.download({ url: `/message/quick-replies/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/account/index.ts b/grailed-ui-admin-vue3/src/api/mp/account/index.ts new file mode 100644 index 0000000..e973cda --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/account/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface AccountVO { + id: number + name: string +} + +// 创建公众号账号 +export const createAccount = async (data) => { + return await request.post({ url: '/mp/account/create', data }) +} + +// 更新公众号账号 +export const updateAccount = async (data) => { + return request.put({ url: '/mp/account/update', data: data }) +} + +// 删除公众号账号 +export const deleteAccount = async (id) => { + return request.delete({ url: '/mp/account/delete?id=' + id, method: 'delete' }) +} + +// 获得公众号账号 +export const getAccount = async (id) => { + return request.get({ url: '/mp/account/get?id=' + id }) +} + +// 获得公众号账号分页 +export const getAccountPage = async (query) => { + return request.get({ url: '/mp/account/page', params: query }) +} + +// 获取公众号账号精简信息列表 +export const getSimpleAccountList = async () => { + return request.get({ url: '/mp/account/list-all-simple' }) +} + +// 生成公众号二维码 +export const generateAccountQrCode = async (id) => { + return request.put({ url: '/mp/account/generate-qr-code?id=' + id }) +} + +// 清空公众号 API 配额 +export const clearAccountQuota = async (id) => { + return request.put({ url: '/mp/account/clear-quota?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/autoReply/index.ts b/grailed-ui-admin-vue3/src/api/mp/autoReply/index.ts new file mode 100644 index 0000000..5045e6d --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/autoReply/index.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +// 创建公众号的自动回复 +export const createAutoReply = (data) => { + return request.post({ + url: '/mp/auto-reply/create', + data: data + }) +} + +// 更新公众号的自动回复 +export const updateAutoReply = (data) => { + return request.put({ + url: '/mp/auto-reply/update', + data: data + }) +} + +// 删除公众号的自动回复 +export const deleteAutoReply = (id) => { + return request.delete({ + url: '/mp/auto-reply/delete?id=' + id + }) +} + +// 获得公众号的自动回复 +export const getAutoReply = (id) => { + return request.get({ + url: '/mp/auto-reply/get?id=' + id + }) +} + +// 获得公众号的自动回复分页 +export const getAutoReplyPage = (query) => { + return request.get({ + url: '/mp/auto-reply/page', + params: query + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/draft/index.ts b/grailed-ui-admin-vue3/src/api/mp/draft/index.ts new file mode 100644 index 0000000..ce6a443 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/draft/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +// 获得公众号草稿分页 +export const getDraftPage = (query) => { + return request.get({ + url: '/mp/draft/page', + params: query + }) +} + +// 创建公众号草稿 +export const createDraft = (accountId, articles) => { + return request.post({ + url: '/mp/draft/create?accountId=' + accountId, + data: { + articles + } + }) +} + +// 更新公众号草稿 +export const updateDraft = (accountId, mediaId, articles) => { + return request.put({ + url: '/mp/draft/update?accountId=' + accountId + '&mediaId=' + mediaId, + method: 'put', + data: articles + }) +} + +// 删除公众号草稿 +export const deleteDraft = (accountId, mediaId) => { + return request.delete({ + url: '/mp/draft/delete?accountId=' + accountId + '&mediaId=' + mediaId + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/freePublish/index.ts b/grailed-ui-admin-vue3/src/api/mp/freePublish/index.ts new file mode 100644 index 0000000..beef026 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/freePublish/index.ts @@ -0,0 +1,23 @@ +import request from '@/config/axios' + +// 获得公众号素材分页 +export const getFreePublishPage = (query) => { + return request.get({ + url: '/mp/free-publish/page', + params: query + }) +} + +// 删除公众号素材 +export const deleteFreePublish = (accountId, articleId) => { + return request.delete({ + url: '/mp/free-publish/delete?accountId=' + accountId + '&articleId=' + articleId + }) +} + +// 发布公众号素材 +export const submitFreePublish = (accountId, mediaId) => { + return request.post({ + url: '/mp/free-publish/submit?accountId=' + accountId + '&mediaId=' + mediaId + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/material/index.ts b/grailed-ui-admin-vue3/src/api/mp/material/index.ts new file mode 100644 index 0000000..fcc37ab --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/material/index.ts @@ -0,0 +1,16 @@ +import request from '@/config/axios' + +// 获得公众号素材分页 +export const getMaterialPage = (query) => { + return request.get({ + url: '/mp/material/page', + params: query + }) +} + +// 删除公众号永久素材 +export const deletePermanentMaterial = (id) => { + return request.delete({ + url: '/mp/material/delete-permanent?id=' + id + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/menu/index.ts b/grailed-ui-admin-vue3/src/api/mp/menu/index.ts new file mode 100644 index 0000000..cc78647 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/menu/index.ts @@ -0,0 +1,26 @@ +import request from '@/config/axios' + +// 获得公众号菜单列表 +export const getMenuList = (accountId) => { + return request.get({ + url: '/mp/menu/list?accountId=' + accountId + }) +} + +// 保存公众号菜单 +export const saveMenu = (accountId, menus) => { + return request.post({ + url: '/mp/menu/save', + data: { + accountId, + menus + } + }) +} + +// 删除公众号菜单 +export const deleteMenu = (accountId) => { + return request.delete({ + url: '/mp/menu/delete?accountId=' + accountId + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/message/index.ts b/grailed-ui-admin-vue3/src/api/mp/message/index.ts new file mode 100644 index 0000000..ad9b95d --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/message/index.ts @@ -0,0 +1,17 @@ +import request from '@/config/axios' + +// 获得公众号消息分页 +export const getMessagePage = (query: PageParam) => { + return request.get({ + url: '/mp/message/page', + params: query + }) +} + +// 给粉丝发送消息 +export const sendMessage = (data) => { + return request.post({ + url: '/mp/message/send', + data: data + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/statistics/index.ts b/grailed-ui-admin-vue3/src/api/mp/statistics/index.ts new file mode 100644 index 0000000..72cae60 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/statistics/index.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +// 获取消息发送概况数据 +export const getUpstreamMessage = (query) => { + return request.get({ + url: '/mp/statistics/upstream-message', + params: query + }) +} + +// 用户增减数据 +export const getUserSummary = (query) => { + return request.get({ + url: '/mp/statistics/user-summary', + params: query + }) +} + +// 获得用户累计数据 +export const getUserCumulate = (query) => { + return request.get({ + url: '/mp/statistics/user-cumulate', + params: query + }) +} + +// 获得接口分析数据 +export const getInterfaceSummary = (query) => { + return request.get({ + url: '/mp/statistics/interface-summary', + params: query + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/tag/index.ts b/grailed-ui-admin-vue3/src/api/mp/tag/index.ts new file mode 100644 index 0000000..50183a5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/tag/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface TagVO { + id?: number + name: string + accountId: number + createTime: Date +} + +// 创建公众号标签 +export const createTag = (data: TagVO) => { + return request.post({ + url: '/mp/tag/create', + data: data + }) +} + +// 更新公众号标签 +export const updateTag = (data: TagVO) => { + return request.put({ + url: '/mp/tag/update', + data: data + }) +} + +// 删除公众号标签 +export const deleteTag = (id: number) => { + return request.delete({ + url: '/mp/tag/delete?id=' + id + }) +} + +// 获得公众号标签 +export const getTag = (id: number) => { + return request.get({ + url: '/mp/tag/get?id=' + id + }) +} + +// 获得公众号标签分页 +export const getTagPage = (query: PageParam) => { + return request.get({ + url: '/mp/tag/page', + params: query + }) +} + +// 获取公众号标签精简信息列表 +export const getSimpleTagList = () => { + return request.get({ + url: '/mp/tag/list-all-simple' + }) +} + +// 同步公众号标签 +export const syncTag = (accountId: number) => { + return request.post({ + url: '/mp/tag/sync?accountId=' + accountId + }) +} diff --git a/grailed-ui-admin-vue3/src/api/mp/user/index.ts b/grailed-ui-admin-vue3/src/api/mp/user/index.ts new file mode 100644 index 0000000..d954e9e --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/mp/user/index.ts @@ -0,0 +1,31 @@ +import request from '@/config/axios' + +// 更新公众号粉丝 +export const updateUser = (data) => { + return request.put({ + url: '/mp/user/update', + data: data + }) +} + +// 获得公众号粉丝 +export const getUser = (id) => { + return request.get({ + url: '/mp/user/get?id=' + id + }) +} + +// 获得公众号粉丝分页 +export const getUserPage = (query) => { + return request.get({ + url: '/mp/user/page', + params: query + }) +} + +// 同步公众号粉丝 +export const syncUser = (accountId) => { + return request.post({ + url: '/mp/tag/sync?accountId=' + accountId + }) +} diff --git a/grailed-ui-admin-vue3/src/api/pay/app/index.ts b/grailed-ui-admin-vue3/src/api/pay/app/index.ts new file mode 100644 index 0000000..c19eb99 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/pay/app/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +export interface AppVO { + id: number + name: string + status: number + remark: string + payNotifyUrl: string + refundNotifyUrl: string + merchantId: number + merchantName: string + createTime: Date +} + +export interface AppPageReqVO extends PageParam { + name?: string + status?: number + remark?: string + payNotifyUrl?: string + refundNotifyUrl?: string + merchantName?: string + createTime?: Date[] +} + +export interface AppExportReqVO { + name?: string + status?: number + remark?: string + payNotifyUrl?: string + refundNotifyUrl?: string + merchantName?: string + createTime?: Date[] +} + +export interface AppUpdateStatusReqVO { + id: number + status: number +} + +// 查询列表支付应用 +export const getAppPage = (params: AppPageReqVO) => { + return request.get({ url: '/pay/app/page', params }) +} + +// 查询详情支付应用 +export const getApp = (id: number) => { + return request.get({ url: '/pay/app/get?id=' + id }) +} + +// 新增支付应用 +export const createApp = (data: AppVO) => { + return request.post({ url: '/pay/app/create', data }) +} + +// 修改支付应用 +export const updateApp = (data: AppVO) => { + return request.put({ url: '/pay/app/update', data }) +} + +// 支付应用信息状态修改 +export const changeAppStatus = (data: AppUpdateStatusReqVO) => { + return request.put({ url: '/pay/app/update-status', data: data }) +} + +// 删除支付应用 +export const deleteApp = (id: number) => { + return request.delete({ url: '/pay/app/delete?id=' + id }) +} + +// 导出支付应用 +export const exportApp = (params: AppExportReqVO) => { + return request.download({ url: '/pay/app/export-excel', params }) +} + +// 根据商ID称搜索应用列表 +export const getAppListByMerchantId = (merchantId: number) => { + return request.get({ url: '/pay/app/list-merchant-id', params: { merchantId: merchantId } }) +} diff --git a/grailed-ui-admin-vue3/src/api/pay/channel/index.ts b/grailed-ui-admin-vue3/src/api/pay/channel/index.ts new file mode 100644 index 0000000..0f4ff42 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/pay/channel/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface ChannelVO { + id: number + code: string + config: string + status: number + remark: string + feeRate: number + appId: number + createTime: Date +} + +// 查询列表支付渠道 +export const getChannelPage = (params: PageParam) => { + return request.get({ url: '/pay/channel/page', params }) +} + +// 查询详情支付渠道 +export const getChannel = (appId: string, code: string) => { + const params = { + appId: appId, + code: code + } + return request.get({ url: '/pay/channel/get', params: params }) +} + +// 新增支付渠道 +export const createChannel = (data: ChannelVO) => { + return request.post({ url: '/pay/channel/create', data }) +} + +// 修改支付渠道 +export const updateChannel = (data: ChannelVO) => { + return request.put({ url: '/pay/channel/update', data }) +} + +// 删除支付渠道 +export const deleteChannel = (id: number) => { + return request.delete({ url: '/pay/channel/delete?id=' + id }) +} + +// 导出支付渠道 +export const exportChannel = (params) => { + return request.download({ url: '/pay/channel/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/pay/merchant/index.ts b/grailed-ui-admin-vue3/src/api/pay/merchant/index.ts new file mode 100644 index 0000000..bb630c3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/pay/merchant/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +export interface MerchantVO { + id: number + no: string + name: string + shortName: string + status: number + remark: string + createTime: Date +} + +export interface MerchantPageReqVO extends PageParam { + no?: string + name?: string + shortName?: string + status?: number + remark?: string + createTime?: Date[] +} + +export interface MerchantExportReqVO { + no?: string + name?: string + shortName?: string + status?: number + remark?: string + createTime?: Date[] +} + +// 查询列表支付商户 +export const getMerchantPage = (params: MerchantPageReqVO) => { + return request.get({ url: '/pay/merchant/page', params }) +} + +// 查询详情支付商户 +export const getMerchant = (id: number) => { + return request.get({ url: '/pay/merchant/get?id=' + id }) +} + +// 根据商户名称搜索商户列表 +export const getMerchantListByName = (name?: string) => { + return request.get({ + url: '/pay/merchant/list-by-name', + params: { + name: name + } + }) +} + +// 新增支付商户 +export const createMerchant = (data: MerchantVO) => { + return request.post({ url: '/pay/merchant/create', data }) +} + +// 修改支付商户 +export const updateMerchant = (data: MerchantVO) => { + return request.put({ url: '/pay/merchant/update', data }) +} + +// 删除支付商户 +export const deleteMerchant = (id: number) => { + return request.delete({ url: '/pay/merchant/delete?id=' + id }) +} + +// 导出支付商户 +export const exportMerchant = (params: MerchantExportReqVO) => { + return request.download({ url: '/pay/merchant/export-excel', params }) +} + +// 支付商户状态修改 +export const updateMerchantStatus = (id: number, status: number) => { + const data = { + id, + status + } + return request.put({ url: '/pay/merchant/update-status', data: data }) +} diff --git a/grailed-ui-admin-vue3/src/api/pay/order/index.ts b/grailed-ui-admin-vue3/src/api/pay/order/index.ts new file mode 100644 index 0000000..6621381 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/pay/order/index.ts @@ -0,0 +1,114 @@ +import request from '@/config/axios' + +export interface OrderVO { + id: number + merchantId: number + appId: number + channelId: number + channelCode: string + merchantOrderId: string + subject: string + body: string + notifyUrl: string + notifyStatus: number + amount: number + channelFeeRate: number + channelFeeAmount: number + status: number + userIp: string + expireTime: Date + successTime: Date + notifyTime: Date + successExtensionId: number + refundStatus: number + refundTimes: number + refundAmount: number + channelUserId: string + channelOrderNo: string + createTime: Date +} + +export interface OrderPageReqVO extends PageParam { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + merchantOrderId?: string + subject?: string + body?: string + notifyUrl?: string + notifyStatus?: number + amount?: number + channelFeeRate?: number + channelFeeAmount?: number + status?: number + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + successExtensionId?: number + refundStatus?: number + refundTimes?: number + channelUserId?: string + channelOrderNo?: string + createTime?: Date[] +} + +export interface OrderExportReqVO { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + merchantOrderId?: string + subject?: string + body?: string + notifyUrl?: string + notifyStatus?: number + amount?: number + channelFeeRate?: number + channelFeeAmount?: number + status?: number + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + successExtensionId?: number + refundStatus?: number + refundTimes?: number + channelUserId?: string + channelOrderNo?: string + createTime?: Date[] +} + +// 查询列表支付订单 +export const getOrderPage = async (params: OrderPageReqVO) => { + return await request.get({ url: '/pay/order/page', params }) +} + +// 查询详情支付订单 +export const getOrder = async (id: number) => { + return await request.get({ url: '/pay/order/get?id=' + id }) +} + +// 获得支付订单的明细 +export const getOrderDetail = async (id: number) => { + return await request.get({ url: '/pay/order/get-detail?id=' + id }) +} + +// 新增支付订单 +export const createOrder = async (data: OrderVO) => { + return await request.post({ url: '/pay/order/create', data }) +} + +// 修改支付订单 +export const updateOrder = async (data: OrderVO) => { + return await request.put({ url: '/pay/order/update', data }) +} + +// 删除支付订单 +export const deleteOrder = async (id: number) => { + return await request.delete({ url: '/pay/order/delete?id=' + id }) +} + +// 导出支付订单 +export const exportOrder = async (params: OrderExportReqVO) => { + return await request.download({ url: '/pay/order/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/pay/refund/index.ts b/grailed-ui-admin-vue3/src/api/pay/refund/index.ts new file mode 100644 index 0000000..4b587f2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/pay/refund/index.ts @@ -0,0 +1,116 @@ +import request from '@/config/axios' + +export interface RefundVO { + id: number + merchantId: number + appId: number + channelId: number + channelCode: string + orderId: string + tradeNo: string + merchantOrderId: string + merchantRefundNo: string + notifyUrl: string + notifyStatus: number + status: number + type: number + payAmount: number + refundAmount: number + reason: string + userIp: string + channelOrderNo: string + channelRefundNo: string + channelErrorCode: string + channelErrorMsg: string + channelExtras: string + expireTime: Date + successTime: Date + notifyTime: Date + createTime: Date +} + +export interface RefundPageReqVO extends PageParam { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + orderId?: string + tradeNo?: string + merchantOrderId?: string + merchantRefundNo?: string + notifyUrl?: string + notifyStatus?: number + status?: number + type?: number + payAmount?: number + refundAmount?: number + reason?: string + userIp?: string + channelOrderNo?: string + channelRefundNo?: string + channelErrorCode?: string + channelErrorMsg?: string + channelExtras?: string + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + createTime?: Date[] +} + +export interface PayRefundExportReqVO { + merchantId?: number + appId?: number + channelId?: number + channelCode?: string + orderId?: string + tradeNo?: string + merchantOrderId?: string + merchantRefundNo?: string + notifyUrl?: string + notifyStatus?: number + status?: number + type?: number + payAmount?: number + refundAmount?: number + reason?: string + userIp?: string + channelOrderNo?: string + channelRefundNo?: string + channelErrorCode?: string + channelErrorMsg?: string + channelExtras?: string + expireTime?: Date[] + successTime?: Date[] + notifyTime?: Date[] + createTime?: Date[] +} + +// 查询列表退款订单 +export const getRefundPage = (params: RefundPageReqVO) => { + return request.get({ url: '/pay/refund/page', params }) +} + +// 查询详情退款订单 +export const getRefund = (id: number) => { + return request.get({ url: '/pay/refund/get?id=' + id }) +} + +// 新增退款订单 +export const createRefund = (data: RefundVO) => { + return request.post({ url: '/pay/refund/create', data }) +} + +// 修改退款订单 +export const updateRefund = (data: RefundVO) => { + return request.put({ url: '/pay/refund/update', data }) +} + +// 删除退款订单 +export const deleteRefund = (id: number) => { + return request.delete({ url: '/pay/refund/delete?id=' + id }) +} + +// 导出退款订单 +export const exportRefund = (params: PayRefundExportReqVO) => { + return request.download({ url: '/pay/refund/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/point/config/index.ts b/grailed-ui-admin-vue3/src/api/point/config/index.ts new file mode 100644 index 0000000..00adc3f --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/point/config/index.ts @@ -0,0 +1,19 @@ +import request from '@/config/axios' + +export interface ConfigVO { + id: number + tradeDeductEnable: number + tradeDeductUnitPrice: number + tradeDeductMaxPrice: number + tradeGivePoint: number +} + +// 查询积分设置详情 +export const getConfig = async () => { + return await request.get({ url: `/point/config/get` }) +} + +// 新增修改积分设置 +export const saveConfig = async (data: ConfigVO) => { + return await request.put({ url: `/point/config/save`, data }) +} diff --git a/grailed-ui-admin-vue3/src/api/point/record/index.ts b/grailed-ui-admin-vue3/src/api/point/record/index.ts new file mode 100644 index 0000000..15eaff3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/point/record/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface RecordVO { + id: number + bizId: string + bizType: string + type: string + title: string + description: string + point: number + totalPoint: number + status: number + userId: number + freezingTime: Date + thawingTime: Date + createDate: Date +} + +// 查询用户积分记录列表 +export const getRecordPage = async (params) => { + return await request.get({ url: `/point/record/page`, params }) +} + +// 查询用户积分记录详情 +export const getRecord = async (id: number) => { + return await request.get({ url: `/point/record/get?id=` + id }) +} + +// 新增用户积分记录 +export const createRecord = async (data: RecordVO) => { + return await request.post({ url: `/point/record/create`, data }) +} + +// 修改用户积分记录 +export const updateRecord = async (data: RecordVO) => { + return await request.put({ url: `/point/record/update`, data }) +} + +// 删除用户积分记录 +export const deleteRecord = async (id: number) => { + return await request.delete({ url: `/point/record/delete?id=` + id }) +} + +// 导出用户积分记录 Excel +export const exportRecord = async (params) => { + return await request.download({ url: `/point/record/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/point/signInConfig/index.ts b/grailed-ui-admin-vue3/src/api/point/signInConfig/index.ts new file mode 100644 index 0000000..3786c06 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/point/signInConfig/index.ts @@ -0,0 +1,37 @@ +import request from '@/config/axios' + +export interface SignInConfigVO { + id: number + day: number + point: number +} + +// 查询积分签到规则列表 +export const getSignInConfigPage = async (params) => { + return await request.get({ url: `/point/sign-in-config/page`, params }) +} + +// 查询积分签到规则详情 +export const getSignInConfig = async (id: number) => { + return await request.get({ url: `/point/sign-in-config/get?id=` + id }) +} + +// 新增积分签到规则 +export const createSignInConfig = async (data: SignInConfigVO) => { + return await request.post({ url: `/point/sign-in-config/create`, data }) +} + +// 修改积分签到规则 +export const updateSignInConfig = async (data: SignInConfigVO) => { + return await request.put({ url: `/point/sign-in-config/update`, data }) +} + +// 删除积分签到规则 +export const deleteSignInConfig = async (id: number) => { + return await request.delete({ url: `/point/sign-in-config/delete?id=` + id }) +} + +// 导出积分签到规则 Excel +export const exportSignInConfig = async (params) => { + return await request.download({ url: `/point/sign-in-config/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/point/signInRecord/index.ts b/grailed-ui-admin-vue3/src/api/point/signInRecord/index.ts new file mode 100644 index 0000000..0f9b9f6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/point/signInRecord/index.ts @@ -0,0 +1,38 @@ +import request from '@/config/axios' + +export interface SignInRecordVO { + id: number + userId: number + day: number + point: number +} + +// 查询用户签到积分列表 +export const getSignInRecordPage = async (params) => { + return await request.get({ url: `/point/sign-in-record/page`, params }) +} + +// 查询用户签到积分详情 +export const getSignInRecord = async (id: number) => { + return await request.get({ url: `/point/sign-in-record/get?id=` + id }) +} + +// 新增用户签到积分 +export const createSignInRecord = async (data: SignInRecordVO) => { + return await request.post({ url: `/point/sign-in-record/create`, data }) +} + +// 修改用户签到积分 +export const updateSignInRecord = async (data: SignInRecordVO) => { + return await request.put({ url: `/point/sign-in-record/update`, data }) +} + +// 删除用户签到积分 +export const deleteSignInRecord = async (id: number) => { + return await request.delete({ url: `/point/sign-in-record/delete?id=` + id }) +} + +// 导出用户签到积分 Excel +export const exportSignInRecord = async (params) => { + return await request.download({ url: `/point/sign-in-record/export-excel`, params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/area/index.ts b/grailed-ui-admin-vue3/src/api/system/area/index.ts new file mode 100644 index 0000000..b7da941 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/area/index.ts @@ -0,0 +1,19 @@ +import request from '@/config/axios' + +// 获得地区树 +export const getAreaTree = async () => { + return await request.get({ url: '/system/area/tree' }) +} + +export const getChildrenArea = async (id: number) => { + return await request.get({ url: '/system/area/get-children?id=' + id }) +} + +export const getAreaListByIds = async (ids) => { + return await request.get({ url: '/system/area/get-by-ids?ids=' + ids }) +} + +// 获得 IP 对应的地区名 +export const getAreaByIp = async (ip: string) => { + return await request.get({ url: '/system/area/get-by-ip?ip=' + ip }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/dept/index.ts b/grailed-ui-admin-vue3/src/api/system/dept/index.ts new file mode 100644 index 0000000..d995f13 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/dept/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +export interface DeptVO { + id?: number + name: string + parentId: number + status: number + sort: number + leaderUserId: number + phone: string + email: string + createTime: Date +} + +// 查询部门(精简)列表 +export const getSimpleDeptList = async (): Promise => { + return await request.get({ url: '/system/dept/list-all-simple' }) +} + +// 查询部门列表 +export const getDeptPage = async (params: PageParam) => { + return await request.get({ url: '/system/dept/list', params }) +} + +// 查询部门详情 +export const getDept = async (id: number) => { + return await request.get({ url: '/system/dept/get?id=' + id }) +} + +// 新增部门 +export const createDept = async (data: DeptVO) => { + return await request.post({ url: '/system/dept/create', data: data }) +} + +// 修改部门 +export const updateDept = async (params: DeptVO) => { + return await request.put({ url: '/system/dept/update', data: params }) +} + +// 删除部门 +export const deleteDept = async (id: number) => { + return await request.delete({ url: '/system/dept/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/dict/dict.data.ts b/grailed-ui-admin-vue3/src/api/system/dict/dict.data.ts new file mode 100644 index 0000000..87e7dce --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/dict/dict.data.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export type DictDataVO = { + id: number | undefined + sort: number | undefined + label: string + value: string + dictType: string + status: number + colorType: string + cssClass: string + remark: string + createTime: Date +} + +// 查询字典数据(精简)列表 +export const listSimpleDictData = () => { + return request.get({ url: '/system/dict-data/list-all-simple' }) +} + +// 查询字典数据列表 +export const getDictDataPage = (params: PageParam) => { + return request.get({ url: '/system/dict-data/page', params }) +} + +// 查询字典数据详情 +export const getDictData = (id: number) => { + return request.get({ url: '/system/dict-data/get?id=' + id }) +} + +// 新增字典数据 +export const createDictData = (data: DictDataVO) => { + return request.post({ url: '/system/dict-data/create', data }) +} + +// 修改字典数据 +export const updateDictData = (data: DictDataVO) => { + return request.put({ url: '/system/dict-data/update', data }) +} + +// 删除字典数据 +export const deleteDictData = (id: number) => { + return request.delete({ url: '/system/dict-data/delete?id=' + id }) +} + +// 导出字典类型数据 +export const exportDictData = (params) => { + return request.get({ url: '/system/dict-data/export', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/dict/dict.type.ts b/grailed-ui-admin-vue3/src/api/system/dict/dict.type.ts new file mode 100644 index 0000000..ed2969f --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/dict/dict.type.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +export type DictTypeVO = { + id: number | undefined + name: string + type: string + status: number + remark: string + createTime: Date +} + +// 查询字典(精简)列表 +export const getSimpleDictTypeList = () => { + return request.get({ url: '/system/dict-type/list-all-simple' }) +} + +// 查询字典列表 +export const getDictTypePage = (params: PageParam) => { + return request.get({ url: '/system/dict-type/page', params }) +} + +// 查询字典详情 +export const getDictType = (id: number) => { + return request.get({ url: '/system/dict-type/get?id=' + id }) +} + +// 新增字典 +export const createDictType = (data: DictTypeVO) => { + return request.post({ url: '/system/dict-type/create', data }) +} + +// 修改字典 +export const updateDictType = (data: DictTypeVO) => { + return request.put({ url: '/system/dict-type/update', data }) +} + +// 删除字典 +export const deleteDictType = (id: number) => { + return request.delete({ url: '/system/dict-type/delete?id=' + id }) +} +// 导出字典类型 +export const exportDictType = (params) => { + return request.get({ url: '/system/dict-type/export', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/errorCode/index.ts b/grailed-ui-admin-vue3/src/api/system/errorCode/index.ts new file mode 100644 index 0000000..8a86a63 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/errorCode/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface ErrorCodeVO { + id: number | undefined + type: number + applicationName: string + code: number | undefined + message: string + memo: string + createTime: Date +} + +// 查询错误码列表 +export const getErrorCodePage = (params: PageParam) => { + return request.get({ url: '/system/error-code/page', params }) +} + +// 查询错误码详情 +export const getErrorCode = (id: number) => { + return request.get({ url: '/system/error-code/get?id=' + id }) +} + +// 新增错误码 +export const createErrorCode = (data: ErrorCodeVO) => { + return request.post({ url: '/system/error-code/create', data }) +} + +// 修改错误码 +export const updateErrorCode = (data: ErrorCodeVO) => { + return request.put({ url: '/system/error-code/update', data }) +} + +// 删除错误码 +export const deleteErrorCode = (id: number) => { + return request.delete({ url: '/system/error-code/delete?id=' + id }) +} +// 导出错误码 +export const excelErrorCode = (params) => { + return request.download({ url: '/system/error-code/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/loginLog/index.ts b/grailed-ui-admin-vue3/src/api/system/loginLog/index.ts new file mode 100644 index 0000000..f275c3e --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/loginLog/index.ts @@ -0,0 +1,24 @@ +import request from '@/config/axios' + +export interface LoginLogVO { + id: number + logType: number + traceId: number + userId: number + userType: number + username: string + status: number + userIp: string + userAgent: string + createTime: Date +} + +// 查询登录日志列表 +export const getLoginLogPage = (params: PageParam) => { + return request.get({ url: '/system/login-log/page', params }) +} + +// 导出登录日志 +export const exportLoginLog = (params) => { + return request.download({ url: '/system/login-log/export', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/mail/account/index.ts b/grailed-ui-admin-vue3/src/api/system/mail/account/index.ts new file mode 100644 index 0000000..9e10c92 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/mail/account/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +export interface MailAccountVO { + id: number + mail: string + username: string + password: string + host: string + port: number + sslEnable: boolean +} + +// 查询邮箱账号列表 +export const getMailAccountPage = async (params: PageParam) => { + return await request.get({ url: '/system/mail-account/page', params }) +} + +// 查询邮箱账号详情 +export const getMailAccount = async (id: number) => { + return await request.get({ url: '/system/mail-account/get?id=' + id }) +} + +// 新增邮箱账号 +export const createMailAccount = async (data: MailAccountVO) => { + return await request.post({ url: '/system/mail-account/create', data }) +} + +// 修改邮箱账号 +export const updateMailAccount = async (data: MailAccountVO) => { + return await request.put({ url: '/system/mail-account/update', data }) +} + +// 删除邮箱账号 +export const deleteMailAccount = async (id: number) => { + return await request.delete({ url: '/system/mail-account/delete?id=' + id }) +} + +// 获得邮箱账号精简列表 +export const getSimpleMailAccountList = async () => { + return request.get({ url: '/system/mail-account/list-all-simple' }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/mail/log/index.ts b/grailed-ui-admin-vue3/src/api/system/mail/log/index.ts new file mode 100644 index 0000000..13172a7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/mail/log/index.ts @@ -0,0 +1,30 @@ +import request from '@/config/axios' + +export interface MailLogVO { + id: number + userId: number + userType: number + toMail: string + accountId: number + fromMail: string + templateId: number + templateCode: string + templateNickname: string + templateTitle: string + templateContent: string + templateParams: string + sendStatus: number + sendTime: Date + sendMessageId: string + sendException: string +} + +// 查询邮件日志列表 +export const getMailLogPage = async (params: PageParam) => { + return await request.get({ url: '/system/mail-log/page', params }) +} + +// 查询邮件日志详情 +export const getMailLog = async (id: number) => { + return await request.get({ url: '/system/mail-log/get?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/mail/template/index.ts b/grailed-ui-admin-vue3/src/api/system/mail/template/index.ts new file mode 100644 index 0000000..fb7ce5e --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/mail/template/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface MailTemplateVO { + id: number + name: string + code: string + accountId: number + nickname: string + title: string + content: string + params: string + status: number + remark: string +} + +export interface MailSendReqVO { + mail: string + templateCode: string + templateParams: Map +} + +// 查询邮件模版列表 +export const getMailTemplatePage = async (params: PageParam) => { + return await request.get({ url: '/system/mail-template/page', params }) +} + +// 查询邮件模版详情 +export const getMailTemplate = async (id: number) => { + return await request.get({ url: '/system/mail-template/get?id=' + id }) +} + +// 新增邮件模版 +export const createMailTemplate = async (data: MailTemplateVO) => { + return await request.post({ url: '/system/mail-template/create', data }) +} + +// 修改邮件模版 +export const updateMailTemplate = async (data: MailTemplateVO) => { + return await request.put({ url: '/system/mail-template/update', data }) +} + +// 删除邮件模版 +export const deleteMailTemplate = async (id: number) => { + return await request.delete({ url: '/system/mail-template/delete?id=' + id }) +} + +// 发送邮件 +export const sendMail = (data: MailSendReqVO) => { + return request.post({ url: '/system/mail-template/send-mail', data }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/menu/index.ts b/grailed-ui-admin-vue3/src/api/system/menu/index.ts new file mode 100644 index 0000000..4bb9a87 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/menu/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface MenuVO { + id: number + name: string + permission: string + type: number + sort: number + parentId: number + path: string + icon: string + component: string + componentName?: string + status: number + visible: boolean + keepAlive: boolean + alwaysShow?: boolean + createTime: Date +} + +// 查询菜单(精简)列表 +export const getSimpleMenusList = () => { + return request.get({ url: '/system/menu/list-all-simple' }) +} + +// 查询菜单列表 +export const getMenuList = (params) => { + return request.get({ url: '/system/menu/list', params }) +} + +// 获取菜单详情 +export const getMenu = (id: number) => { + return request.get({ url: '/system/menu/get?id=' + id }) +} + +// 新增菜单 +export const createMenu = (data: MenuVO) => { + return request.post({ url: '/system/menu/create', data }) +} + +// 修改菜单 +export const updateMenu = (data: MenuVO) => { + return request.put({ url: '/system/menu/update', data }) +} + +// 删除菜单 +export const deleteMenu = (id: number) => { + return request.delete({ url: '/system/menu/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/notice/index.ts b/grailed-ui-admin-vue3/src/api/system/notice/index.ts new file mode 100644 index 0000000..62bf525 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/notice/index.ts @@ -0,0 +1,37 @@ +import request from '@/config/axios' + +export interface NoticeVO { + id: number | undefined + title: string + type: number + content: string + status: number + remark: string + creator: string + createTime: Date +} + +// 查询公告列表 +export const getNoticePage = (params: PageParam) => { + return request.get({ url: '/system/notice/page', params }) +} + +// 查询公告详情 +export const getNotice = (id: number) => { + return request.get({ url: '/system/notice/get?id=' + id }) +} + +// 新增公告 +export const createNotice = (data: NoticeVO) => { + return request.post({ url: '/system/notice/create', data }) +} + +// 修改公告 +export const updateNotice = (data: NoticeVO) => { + return request.put({ url: '/system/notice/update', data }) +} + +// 删除公告 +export const deleteNotice = (id: number) => { + return request.delete({ url: '/system/notice/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/notify/message/index.ts b/grailed-ui-admin-vue3/src/api/system/notify/message/index.ts new file mode 100644 index 0000000..29036b9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/notify/message/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' +import qs from 'qs' + +export interface NotifyMessageVO { + id: number + userId: number + userType: number + templateId: number + templateCode: string + templateNickname: string + templateContent: string + templateType: number + templateParams: string + readStatus: boolean + readTime: Date +} + +// 查询站内信消息列表 +export const getNotifyMessagePage = async (params: PageParam) => { + return await request.get({ url: '/system/notify-message/page', params }) +} + +// 获得我的站内信分页 +export const getMyNotifyMessagePage = async (params: PageParam) => { + return await request.get({ url: '/system/notify-message/my-page', params }) +} + +// 批量标记已读 +export const updateNotifyMessageRead = async (ids) => { + return await request.put({ + url: '/system/notify-message/update-read?' + qs.stringify({ ids: ids }, { indices: false }) + }) +} + +// 标记所有站内信为已读 +export const updateAllNotifyMessageRead = async () => { + return await request.put({ url: '/system/notify-message/update-all-read' }) +} + +// 获取当前用户的最新站内信列表 +export const getUnreadNotifyMessageList = async () => { + return await request.get({ url: '/system/notify-message/get-unread-list' }) +} + +// 获得当前用户的未读站内信数量 +export const getUnreadNotifyMessageCount = async () => { + return await request.get({ url: '/system/notify-message/get-unread-count' }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/notify/template/index.ts b/grailed-ui-admin-vue3/src/api/system/notify/template/index.ts new file mode 100644 index 0000000..cd0e122 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/notify/template/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface NotifyTemplateVO { + id?: number + name: string + nickname: string + code: string + content: string + type: number + params: string + status: number + remark: string +} + +export interface NotifySendReqVO { + userId: number | null + templateCode: string + templateParams: Map +} + +// 查询站内信模板列表 +export const getNotifyTemplatePage = async (params: PageParam) => { + return await request.get({ url: '/system/notify-template/page', params }) +} + +// 查询站内信模板详情 +export const getNotifyTemplate = async (id: number) => { + return await request.get({ url: '/system/notify-template/get?id=' + id }) +} + +// 新增站内信模板 +export const createNotifyTemplate = async (data: NotifyTemplateVO) => { + return await request.post({ url: '/system/notify-template/create', data }) +} + +// 修改站内信模板 +export const updateNotifyTemplate = async (data: NotifyTemplateVO) => { + return await request.put({ url: '/system/notify-template/update', data }) +} + +// 删除站内信模板 +export const deleteNotifyTemplate = async (id: number) => { + return await request.delete({ url: '/system/notify-template/delete?id=' + id }) +} + +// 发送站内信 +export const sendNotify = (data: NotifySendReqVO) => { + return request.post({ url: '/system/notify-template/send-notify', data }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/oauth2/client.ts b/grailed-ui-admin-vue3/src/api/system/oauth2/client.ts new file mode 100644 index 0000000..6f71aca --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/oauth2/client.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface OAuth2ClientVO { + id: number + clientId: string + secret: string + name: string + logo: string + description: string + status: number + accessTokenValiditySeconds: number + refreshTokenValiditySeconds: number + redirectUris: string[] + autoApprove: boolean + authorizedGrantTypes: string[] + scopes: string[] + authorities: string[] + resourceIds: string[] + additionalInformation: string + isAdditionalInformationJson: boolean + createTime: Date +} + +// 查询 OAuth2 客户端的列表 +export const getOAuth2ClientPage = (params: PageParam) => { + return request.get({ url: '/system/oauth2-client/page', params }) +} + +// 查询 OAuth2 客户端的详情 +export const getOAuth2Client = (id: number) => { + return request.get({ url: '/system/oauth2-client/get?id=' + id }) +} + +// 新增 OAuth2 客户端 +export const createOAuth2Client = (data: OAuth2ClientVO) => { + return request.post({ url: '/system/oauth2-client/create', data }) +} + +// 修改 OAuth2 客户端 +export const updateOAuth2Client = (data: OAuth2ClientVO) => { + return request.put({ url: '/system/oauth2-client/update', data }) +} + +// 删除 OAuth2 +export const deleteOAuth2Client = (id: number) => { + return request.delete({ url: '/system/oauth2-client/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/oauth2/token.ts b/grailed-ui-admin-vue3/src/api/system/oauth2/token.ts new file mode 100644 index 0000000..ac89ae8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/oauth2/token.ts @@ -0,0 +1,22 @@ +import request from '@/config/axios' + +export interface OAuth2TokenVO { + id: number + accessToken: string + refreshToken: string + userId: number + userType: number + clientId: string + createTime: Date + expiresTime: Date +} + +// 查询 token列表 +export const getAccessTokenPage = (params: PageParam) => { + return request.get({ url: '/system/oauth2-token/page', params }) +} + +// 删除 token +export const deleteAccessToken = (accessToken: string) => { + return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/operatelog/index.ts b/grailed-ui-admin-vue3/src/api/system/operatelog/index.ts new file mode 100644 index 0000000..848a533 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/operatelog/index.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +export type OperateLogVO = { + id: number + userNickname: string + traceId: string + userId: number + module: string + name: string + type: number + content: string + exts: Map + requestMethod: string + requestUrl: string + userIp: string + userAgent: string + javaMethod: string + javaMethodArgs: string + startTime: Date + duration: number + resultCode: number + resultMsg: string + resultData: string +} + +// 查询操作日志列表 +export const getOperateLogPage = (params: PageParam) => { + return request.get({ url: '/system/operate-log/page', params }) +} +// 导出操作日志 +export const exportOperateLog = (params) => { + return request.download({ url: '/system/operate-log/export', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/permission/index.ts b/grailed-ui-admin-vue3/src/api/system/permission/index.ts new file mode 100644 index 0000000..b3c7696 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/permission/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface PermissionAssignUserRoleReqVO { + userId: number + roleIds: number[] +} + +export interface PermissionAssignRoleMenuReqVO { + roleId: number + menuIds: number[] +} + +export interface PermissionAssignRoleDataScopeReqVO { + roleId: number + dataScope: number + dataScopeDeptIds: number[] +} + +// 查询角色拥有的菜单权限 +export const getRoleMenuList = async (roleId: number) => { + return await request.get({ url: '/system/permission/list-role-menus?roleId=' + roleId }) +} + +// 赋予角色菜单权限 +export const assignRoleMenu = async (data: PermissionAssignRoleMenuReqVO) => { + return await request.post({ url: '/system/permission/assign-role-menu', data }) +} + +// 赋予角色数据权限 +export const assignRoleDataScope = async (data: PermissionAssignRoleDataScopeReqVO) => { + return await request.post({ url: '/system/permission/assign-role-data-scope', data }) +} + +// 查询用户拥有的角色数组 +export const getUserRoleList = async (userId: number) => { + return await request.get({ url: '/system/permission/list-user-roles?userId=' + userId }) +} + +// 赋予用户角色 +export const assignUserRole = async (data: PermissionAssignUserRoleReqVO) => { + return await request.post({ url: '/system/permission/assign-user-role', data }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/role/index.ts b/grailed-ui-admin-vue3/src/api/system/role/index.ts new file mode 100644 index 0000000..93636ff --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/role/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface RoleVO { + id: number + name: string + code: string + sort: number + status: number + type: number + dataScope: number + dataScopeDeptIds: number[] + createTime: Date +} + +export interface UpdateStatusReqVO { + id: number + status: number +} + +// 查询角色列表 +export const getRolePage = async (params: PageParam) => { + return await request.get({ url: '/system/role/page', params }) +} + +// 查询角色(精简)列表 +export const getSimpleRoleList = async (): Promise => { + return await request.get({ url: '/system/role/list-all-simple' }) +} + +// 查询角色详情 +export const getRole = async (id: number) => { + return await request.get({ url: '/system/role/get?id=' + id }) +} + +// 新增角色 +export const createRole = async (data: RoleVO) => { + return await request.post({ url: '/system/role/create', data }) +} + +// 修改角色 +export const updateRole = async (data: RoleVO) => { + return await request.put({ url: '/system/role/update', data }) +} + +// 修改角色状态 +export const updateRoleStatus = async (data: UpdateStatusReqVO) => { + return await request.put({ url: '/system/role/update-status', data }) +} + +// 删除角色 +export const deleteRole = async (id: number) => { + return await request.delete({ url: '/system/role/delete?id=' + id }) +} + +// 导出角色 +export const exportRole = (params) => { + return request.download({ + url: '/system/role/export-excel', + params + }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/sensitiveWord/index.ts b/grailed-ui-admin-vue3/src/api/system/sensitiveWord/index.ts new file mode 100644 index 0000000..1116226 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/sensitiveWord/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' +import qs from 'qs' + +export interface SensitiveWordVO { + id: number + name: string + status: number + description: string + tags: string[] + createTime: Date +} + +export interface SensitiveWordTestReqVO { + text: string + tag: string[] +} + +// 查询敏感词列表 +export const getSensitiveWordPage = (params: PageParam) => { + return request.get({ url: '/system/sensitive-word/page', params }) +} + +// 查询敏感词详情 +export const getSensitiveWord = (id: number) => { + return request.get({ url: '/system/sensitive-word/get?id=' + id }) +} + +// 新增敏感词 +export const createSensitiveWord = (data: SensitiveWordVO) => { + return request.post({ url: '/system/sensitive-word/create', data }) +} + +// 修改敏感词 +export const updateSensitiveWord = (data: SensitiveWordVO) => { + return request.put({ url: '/system/sensitive-word/update', data }) +} + +// 删除敏感词 +export const deleteSensitiveWord = (id: number) => { + return request.delete({ url: '/system/sensitive-word/delete?id=' + id }) +} + +// 导出敏感词 +export const exportSensitiveWord = (params) => { + return request.download({ url: '/system/sensitive-word/export-excel', params }) +} + +// 获取所有敏感词的标签数组 +export const getSensitiveWordTagList = () => { + return request.get({ url: '/system/sensitive-word/get-tags' }) +} + +// 获得文本所包含的不合法的敏感词数组 +export const validateText = (query: SensitiveWordTestReqVO) => { + return request.get({ + url: '/system/sensitive-word/validate-text?' + qs.stringify(query, { arrayFormat: 'repeat' }) + }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/sms/smsChannel/index.ts b/grailed-ui-admin-vue3/src/api/system/sms/smsChannel/index.ts new file mode 100644 index 0000000..f335628 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/sms/smsChannel/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +export interface SmsChannelVO { + id: number + code: string + status: number + signature: string + remark: string + apiKey: string + apiSecret: string + callbackUrl: string + createTime: Date +} + +// 查询短信渠道列表 +export const getSmsChannelPage = (params: PageParam) => { + return request.get({ url: '/system/sms-channel/page', params }) +} + +// 获得短信渠道精简列表 +export function getSimpleSmsChannelList() { + return request.get({ url: '/system/sms-channel/list-all-simple' }) +} + +// 查询短信渠道详情 +export const getSmsChannel = (id: number) => { + return request.get({ url: '/system/sms-channel/get?id=' + id }) +} + +// 新增短信渠道 +export const createSmsChannel = (data: SmsChannelVO) => { + return request.post({ url: '/system/sms-channel/create', data }) +} + +// 修改短信渠道 +export const updateSmsChannel = (data: SmsChannelVO) => { + return request.put({ url: '/system/sms-channel/update', data }) +} + +// 删除短信渠道 +export const deleteSmsChannel = (id: number) => { + return request.delete({ url: '/system/sms-channel/delete?id=' + id }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/sms/smsLog/index.ts b/grailed-ui-admin-vue3/src/api/system/sms/smsLog/index.ts new file mode 100644 index 0000000..3d54fac --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/sms/smsLog/index.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +export interface SmsLogVO { + id: number | null + channelId: number | null + channelCode: string + templateId: number | null + templateCode: string + templateType: number | null + templateContent: string + templateParams: Map | null + apiTemplateId: string + mobile: string + userId: number | null + userType: number | null + sendStatus: number | null + sendTime: Date | null + sendCode: number | null + sendMsg: string + apiSendCode: string + apiSendMsg: string + apiRequestId: string + apiSerialNo: string + receiveStatus: number | null + receiveTime: Date | null + apiReceiveCode: string + apiReceiveMsg: string + createTime: Date | null +} + +// 查询短信日志列表 +export const getSmsLogPage = (params: PageParam) => { + return request.get({ url: '/system/sms-log/page', params }) +} + +// 导出短信日志 +export const exportSmsLog = (params) => { + return request.download({ url: '/system/sms-log/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/sms/smsTemplate/index.ts b/grailed-ui-admin-vue3/src/api/system/sms/smsTemplate/index.ts new file mode 100644 index 0000000..35cb489 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/sms/smsTemplate/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface SmsTemplateVO { + id: number | null + type: number | null + status: number + code: string + name: string + content: string + remark: string + apiTemplateId: string + channelId: number | null + channelCode?: string + params?: string[] + createTime?: Date +} + +export interface SendSmsReqVO { + mobile: string + templateCode: string + templateParams: Map +} + +// 查询短信模板列表 +export const getSmsTemplatePage = (params: PageParam) => { + return request.get({ url: '/system/sms-template/page', params }) +} + +// 查询短信模板详情 +export const getSmsTemplate = (id: number) => { + return request.get({ url: '/system/sms-template/get?id=' + id }) +} + +// 新增短信模板 +export const createSmsTemplate = (data: SmsTemplateVO) => { + return request.post({ url: '/system/sms-template/create', data }) +} + +// 修改短信模板 +export const updateSmsTemplate = (data: SmsTemplateVO) => { + return request.put({ url: '/system/sms-template/update', data }) +} + +// 删除短信模板 +export const deleteSmsTemplate = (id: number) => { + return request.delete({ url: '/system/sms-template/delete?id=' + id }) +} + +// 导出短信模板 +export const exportSmsTemplate = (params) => { + return request.download({ + url: '/system/sms-template/export-excel', + params + }) +} + +// 发送短信 +export const sendSms = (data: SendSmsReqVO) => { + return request.post({ url: '/system/sms-template/send-sms', data }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/tenant/index.ts b/grailed-ui-admin-vue3/src/api/system/tenant/index.ts new file mode 100644 index 0000000..176c375 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/tenant/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface TenantVO { + id: number + name: string + contactName: string + contactMobile: string + status: number + domain: string + packageId: number + username: string + password: string + expireTime: Date + accountCount: number + createTime: Date +} + +export interface TenantPageReqVO extends PageParam { + name?: string + contactName?: string + contactMobile?: string + status?: number + createTime?: Date[] +} + +export interface TenantExportReqVO { + name?: string + contactName?: string + contactMobile?: string + status?: number + createTime?: Date[] +} + +// 查询租户列表 +export const getTenantPage = (params: TenantPageReqVO) => { + return request.get({ url: '/system/tenant/page', params }) +} + +// 查询租户详情 +export const getTenant = (id: number) => { + return request.get({ url: '/system/tenant/get?id=' + id }) +} + +// 新增租户 +export const createTenant = (data: TenantVO) => { + return request.post({ url: '/system/tenant/create', data }) +} + +// 修改租户 +export const updateTenant = (data: TenantVO) => { + return request.put({ url: '/system/tenant/update', data }) +} + +// 删除租户 +export const deleteTenant = (id: number) => { + return request.delete({ url: '/system/tenant/delete?id=' + id }) +} + +// 导出租户 +export const exportTenant = (params: TenantExportReqVO) => { + return request.download({ url: '/system/tenant/export-excel', params }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/tenantPackage/index.ts b/grailed-ui-admin-vue3/src/api/system/tenantPackage/index.ts new file mode 100644 index 0000000..01d139e --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/tenantPackage/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface TenantPackageVO { + id: number + name: string + status: number + remark: string + creator: string + updater: string + updateTime: string + menuIds: number[] + createTime: Date +} + +// 查询租户套餐列表 +export const getTenantPackagePage = (params: PageParam) => { + return request.get({ url: '/system/tenant-package/page', params }) +} + +// 获得租户 +export const getTenantPackage = (id: number) => { + return request.get({ url: '/system/tenant-package/get?id=' + id }) +} + +// 新增租户套餐 +export const createTenantPackage = (data: TenantPackageVO) => { + return request.post({ url: '/system/tenant-package/create', data }) +} + +// 修改租户套餐 +export const updateTenantPackage = (data: TenantPackageVO) => { + return request.put({ url: '/system/tenant-package/update', data }) +} + +// 删除租户套餐 +export const deleteTenantPackage = (id: number) => { + return request.delete({ url: '/system/tenant-package/delete?id=' + id }) +} +// 获取租户套餐精简信息列表 +export const getTenantPackageList = () => { + return request.get({ url: '/system/tenant-package/get-simple-list' }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/translatorDeepl/translatorDeepl.js b/grailed-ui-admin-vue3/src/api/system/translatorDeepl/translatorDeepl.js new file mode 100644 index 0000000..6b263be --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/translatorDeepl/translatorDeepl.js @@ -0,0 +1,73 @@ +import request from '@/config/axios' + + +// 创建语言转换 +export const createTranslatorDeepl = (params) => { + return request.get({ url: '/system/translator-deepl/create', params }) +} + + +// // 创建语言转换 +// export function createTranslatorDeepl(data) { +// return request({ +// url: '/system/translator-deepl/create', +// method: 'post', +// data: data +// }) +// } + +// 更新语言转换 +export function updateTranslatorDeepl(data) { + return request.put({ + url: '/system/translator-deepl/update', + method: 'put', + data: data + }) +} + +// 删除语言转换 +export function deleteTranslatorDeepl(id) { + return request.delete({ + url: '/system/translator-deepl/delete?id=' + id, + method: 'delete' + }) +} + +// 获得语言转换 +export function getTranslatorDeepl(id) { + return request.get({ + url: '/system/translator-deepl/get?id=' + id, + method: 'get' + }) +} + + +// // 创建语言转换 +// export const getTranslatorDeeplPage = (params) => { +// return request.get({ url: '/system/translator-deepl/page', params }) +// } + +// 获得语言转换分页 +export function getTranslatorDeeplPage(query) { + return request.get({ + url: '/system/translator-deepl/page', + method: 'get', + params: query + }) +} + +// 导出语言转换 Excel +export function exportTranslatorDeeplExcel(query) { + return request.get({ + url: '/system/translator-deepl/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} + + + + + + diff --git a/grailed-ui-admin-vue3/src/api/system/user/index.ts b/grailed-ui-admin-vue3/src/api/system/user/index.ts new file mode 100644 index 0000000..6224f0e --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/user/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface UserVO { + id: number + username: string + nickname: string + deptId: number + postIds: string[] + email: string + mobile: string + sex: number + avatar: string + loginIp: string + status: number + remark: string + loginDate: Date + createTime: Date +} + +// 查询用户管理列表 +export const getUserPage = (params: PageParam) => { + return request.get({ url: '/system/user/page', params }) +} + +// 查询用户详情 +export const getUser = (id: number) => { + return request.get({ url: '/system/user/get?id=' + id }) +} + +// 新增用户 +export const createUser = (data: UserVO) => { + return request.post({ url: '/system/user/create', data }) +} + +// 修改用户 +export const updateUser = (data: UserVO) => { + return request.put({ url: '/system/user/update', data }) +} + +// 删除用户 +export const deleteUser = (id: number) => { + return request.delete({ url: '/system/user/delete?id=' + id }) +} + +// 导出用户 +export const exportUser = (params) => { + return request.download({ url: '/system/user/export', params }) +} + +// 下载用户导入模板 +export const importUserTemplate = () => { + return request.download({ url: '/system/user/get-import-template' }) +} + +// 用户密码重置 +export const resetUserPwd = (id: number, password: string) => { + const data = { + id, + password + } + return request.put({ url: '/system/user/update-password', data: data }) +} + +// 用户状态修改 +export const updateUserStatus = (id: number, status: number) => { + const data = { + id, + status + } + return request.put({ url: '/system/user/update-status', data: data }) +} + +// 获取用户精简信息列表 +export const getSimpleUserList = (): Promise => { + return request.get({ url: '/system/user/list-all-simple' }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/user/profile.ts b/grailed-ui-admin-vue3/src/api/system/user/profile.ts new file mode 100644 index 0000000..b2623c8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/user/profile.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +export interface ProfileDept { + id: number + name: string +} +export interface ProfileRole { + id: number + name: string +} +export interface ProfilePost { + id: number + name: string +} +export interface SocialUser { + id: number + type: number + openid: string + token: string + rawTokenInfo: string + nickname: string + avatar: string + rawUserInfo: string + code: string + state: string +} +export interface ProfileVO { + id: number + username: string + nickname: string + dept: ProfileDept + roles: ProfileRole[] + posts: ProfilePost[] + socialUsers: SocialUser[] + email: string + mobile: string + sex: number + avatar: string + status: number + remark: string + loginIp: string + loginDate: Date + createTime: Date +} + +export interface UserProfileUpdateReqVO { + nickname: string + email: string + mobile: string + sex: number +} + +// 查询用户个人信息 +export const getUserProfile = () => { + return request.get({ url: '/system/user/profile/get' }) +} + +// 修改用户个人信息 +export const updateUserProfile = (data: UserProfileUpdateReqVO) => { + return request.put({ url: '/system/user/profile/update', data }) +} + +// 用户密码重置 +export const updateUserPassword = (oldPassword: string, newPassword: string) => { + return request.put({ + url: '/system/user/profile/update-password', + data: { + oldPassword: oldPassword, + newPassword: newPassword + } + }) +} + +// 用户头像上传 +export const uploadAvatar = (data) => { + return request.upload({ url: '/system/user/profile/update-avatar', data: data }) +} diff --git a/grailed-ui-admin-vue3/src/api/system/user/socialUser.ts b/grailed-ui-admin-vue3/src/api/system/user/socialUser.ts new file mode 100644 index 0000000..79f4d40 --- /dev/null +++ b/grailed-ui-admin-vue3/src/api/system/user/socialUser.ts @@ -0,0 +1,31 @@ +import request from '@/config/axios' + +// 社交绑定,使用 code 授权码 +export const socialBind = (type, code, state) => { + return request.post({ + url: '/system/social-user/bind', + data: { + type, + code, + state + } + }) +} + +// 取消社交绑定 +export const socialUnbind = (type, openid) => { + return request.delete({ + url: '/system/social-user/unbind', + data: { + type, + openid + } + }) +} + +// 社交授权的跳转 +export const socialAuthRedirect = (type, redirectUri) => { + return request.get({ + url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri + }) +} diff --git a/grailed-ui-admin-vue3/src/assets/audio/Notify.mp3 b/grailed-ui-admin-vue3/src/assets/audio/Notify.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..32de1949691ec01390b88fd2d309919c7709a746 GIT binary patch literal 24480 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 literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/audio/newMsgNotify.mp3 b/grailed-ui-admin-vue3/src/assets/audio/newMsgNotify.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e2a117313717fb4e712f3489bef3e4114a8e3d5c GIT binary patch literal 13252 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 Rzec?rjsSq*|M7D8e*shn$tnN< literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/audio/recharte_notify.mp3 b/grailed-ui-admin-vue3/src/assets/audio/recharte_notify.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1c221f6b6504871b2d51d637c800313a424c91f7 GIT binary patch literal 42048 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 + ` +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts new file mode 100644 index 0000000..5f46abd --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts @@ -0,0 +1,62 @@ +// 初始化表单数据 +export function initListenerForm(listener) { + let self = { + ...listener + } + if (listener.script) { + self = { + ...listener, + ...listener.script, + scriptType: listener.script.resource ? 'externalScript' : 'inlineScript' + } + } + if (listener.event === 'timeout' && listener.eventDefinitions) { + if (listener.eventDefinitions.length) { + let k = '' + for (const key in listener.eventDefinitions[0]) { + console.log(listener.eventDefinitions, key) + if (key.indexOf('time') !== -1) { + k = key + self.eventDefinitionType = key.replace('time', '').toLowerCase() + } + } + console.log(k) + self.eventTimeDefinitions = listener.eventDefinitions[0][k].body + } + } + return self +} + +export function initListenerType(listener) { + let listenerType + if (listener.class) listenerType = 'classListener' + if (listener.expression) listenerType = 'expressionListener' + if (listener.delegateExpression) listenerType = 'delegateExpressionListener' + if (listener.script) listenerType = 'scriptListener' + return { + ...JSON.parse(JSON.stringify(listener)), + ...(listener.script ?? {}), + listenerType: listenerType + } +} + +export const listenerType = { + classListener: 'Java 类', + expressionListener: '表达式', + delegateExpressionListener: '代理表达式', + scriptListener: '脚本' +} + +export const eventType = { + create: '创建', + assignment: '指派', + complete: '完成', + delete: '删除', + update: '更新', + timeout: '超时' +} + +export const fieldType = { + string: '字符串', + expression: '表达式' +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue new file mode 100644 index 0000000..6f3e7e7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue @@ -0,0 +1,259 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue new file mode 100644 index 0000000..05532c6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue @@ -0,0 +1,55 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue new file mode 100644 index 0000000..7e9e858 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue @@ -0,0 +1,169 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue new file mode 100644 index 0000000..f38f31c --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue @@ -0,0 +1,113 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue new file mode 100644 index 0000000..33a12a7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue @@ -0,0 +1,86 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue new file mode 100644 index 0000000..83ed24e --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue @@ -0,0 +1,125 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue new file mode 100644 index 0000000..683fef3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue @@ -0,0 +1,99 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue new file mode 100644 index 0000000..7b793db --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue @@ -0,0 +1,98 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/element-variables.scss b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/element-variables.scss new file mode 100644 index 0000000..49bd326 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/element-variables.scss @@ -0,0 +1,70 @@ +/* 改变主题色变量 */ +$--color-primary: #1890ff; +$--color-danger: #ff4d4f; + +/* 改变 icon 字体路径变量,必需 */ +$--font-path: '~element-ui/lib/theme-chalk/fonts'; + +@import '~element-ui/packages/theme-chalk/src/index'; + +.el-table td, +.el-table th { + color: #333; +} +.el-drawer__header { + padding: 16px 16px 8px 16px; + margin: 0; + line-height: 24px; + font-size: 18px; + color: #303133; + box-sizing: border-box; + border-bottom: 1px solid #e8e8e8; +} +div[class^='el-drawer']:focus, +span:focus { + outline: none; +} +.el-drawer__body { + box-sizing: border-box; + padding: 16px; + width: 100%; + overflow-y: auto; +} + +.el-dialog { + margin-top: 50vh !important; + transform: translateY(-50%); + overflow: hidden; +} +.el-dialog__wrapper { + overflow: hidden; + max-height: 100vh; +} +.el-dialog__header { + padding: 16px 16px 8px 16px; + box-sizing: border-box; + border-bottom: 1px solid #e8e8e8; +} +.el-dialog__body { + padding: 16px; + max-height: 80vh; + box-sizing: border-box; + overflow-y: auto; +} +.el-dialog__footer { + padding: 16px; + box-sizing: border-box; + border-top: 1px solid #e8e8e8; +} +.el-dialog__close { + font-weight: 600; +} +.el-select { + width: 100%; +} +.el-divider:not(.el-divider--horizontal) { + margin: 0 8px; +} +.el-divider.el-divider--horizontal { + margin: 16px 0; +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/index.scss b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/index.scss new file mode 100644 index 0000000..2e60fad --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/index.scss @@ -0,0 +1,2 @@ +@import './process-designer.scss'; +@import './process-panel.scss'; diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-designer.scss b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-designer.scss new file mode 100644 index 0000000..6af945d --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-designer.scss @@ -0,0 +1,161 @@ +@import 'bpmn-js-token-simulation/assets/css/bpmn-js-token-simulation.css'; +@import 'bpmn-js-token-simulation/assets/css/font-awesome.min.css'; +@import 'bpmn-js-token-simulation/assets/css/normalize.css'; + +// 边框被 token-simulation 样式覆盖了 +.djs-palette { + background: var(--palette-background-color); + border: solid 1px var(--palette-border-color) !important; + border-radius: 2px; +} + +.my-process-designer { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + box-sizing: border-box; + .my-process-designer__header { + width: 100%; + min-height: 36px; + .el-button { + text-align: center; + } + .el-button-group { + margin: 4px; + } + .el-tooltip__popper { + .el-button { + width: 100%; + text-align: left; + padding-left: 8px; + padding-right: 8px; + } + .el-button:hover { + background: rgba(64, 158, 255, 0.8); + color: #ffffff; + } + } + .align { + position: relative; + i { + &:after { + content: '|'; + position: absolute; + // transform: rotate(90deg) translate(200%, 60%); + transform: rotate(180deg) translate(271%, -10%); + } + } + } + .align.align-left i { + transform: rotate(90deg); + } + .align.align-right i { + transform: rotate(-90deg); + } + .align.align-top i { + transform: rotate(180deg); + } + .align.align-bottom i { + transform: rotate(0deg); + } + .align.align-center i { + transform: rotate(0deg); + &:after { + // transform: rotate(90deg) translate(0, 60%); + transform: rotate(0deg) translate(-0%, -5%); + } + } + .align.align-middle i { + transform: rotate(-90deg); + &:after { + // transform: rotate(90deg) translate(0, 60%); + transform: rotate(0deg) translate(0, -10%); + } + } + } + .my-process-designer__container { + display: inline-flex; + width: 100%; + flex: 1; + .my-process-designer__canvas { + flex: 1; + height: 100%; + position: relative; + background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHBhdHRlcm4gaWQ9ImEiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHBhdGggZD0iTTAgMTBoNDBNMTAgMHY0ME0wIDIwaDQwTTIwIDB2NDBNMCAzMGg0ME0zMCAwdjQwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlMGUwZTAiIG9wYWNpdHk9Ii4yIi8+PHBhdGggZD0iTTQwIDBIMHY0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTBlMGUwIi8+PC9wYXR0ZXJuPjwvZGVmcz48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2EpIi8+PC9zdmc+') + repeat !important; + div.toggle-mode { + display: none; + } + } + .my-process-designer__property-panel { + height: 100%; + overflow: scroll; + overflow-y: auto; + z-index: 10; + * { + box-sizing: border-box; + } + } + svg { + width: 100%; + height: 100%; + min-height: 100%; + overflow: hidden; + } + } +} + +//侧边栏配置 +// .djs-palette .two-column .open { +.open { + // .djs-palette.open { + .djs-palette-entries { + div[class^='bpmn-icon-']:before, + div[class*='bpmn-icon-']:before { + line-height: unset; + } + div.entry { + position: relative; + } + div.entry:hover { + &::after { + width: max-content; + content: attr(title); + vertical-align: text-bottom; + position: absolute; + right: -10px; + top: 0; + bottom: 0; + overflow: hidden; + transform: translateX(100%); + font-size: 0.5em; + display: inline-block; + text-decoration: inherit; + font-variant: normal; + text-transform: none; + background: #fafafa; + box-shadow: 0 0 6px #eeeeee; + border: 1px solid #cccccc; + box-sizing: border-box; + padding: 0 16px; + border-radius: 4px; + z-index: 100; + } + } + } +} +pre { + margin: 0; + height: 100%; + overflow: hidden; + max-height: calc(80vh - 32px); + overflow-y: auto; +} +.hljs { + word-break: break-word; + white-space: pre-wrap; +} +.hljs * { + font-family: Consolas, Monaco, monospace; +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-panel.scss b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-panel.scss new file mode 100644 index 0000000..f840cdd --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/theme/process-panel.scss @@ -0,0 +1,107 @@ +.process-panel__container { + box-sizing: border-box; + padding: 0 8px; + border-left: 1px solid #eeeeee; + box-shadow: 0 0 8px #cccccc; + max-height: 100%; + overflow-y: scroll; +} +.panel-tab__title { + font-weight: 600; + padding: 0 8px; + font-size: 1.1em; + line-height: 1.2em; + i { + margin-right: 8px; + font-size: 1.2em; + } +} +.panel-tab__content { + width: 100%; + box-sizing: border-box; + border-top: 1px solid #eeeeee; + padding: 8px 16px; + .panel-tab__content--title { + display: flex; + justify-content: space-between; + padding-bottom: 8px; + span { + flex: 1; + text-align: left; + } + } +} +.element-property { + width: 100%; + display: flex; + align-items: flex-start; + margin: 8px 0; + .element-property__label { + display: block; + width: 90px; + text-align: right; + overflow: hidden; + padding-right: 12px; + line-height: 32px; + font-size: 14px; + box-sizing: border-box; + } + .element-property__value { + flex: 1; + line-height: 32px; + } + .el-form-item { + width: 100%; + margin-bottom: 0; + padding-bottom: 18px; + } +} +.list-property { + flex-direction: column; + .element-listener-item { + width: 100%; + display: inline-grid; + grid-template-columns: 16px auto 32px 32px; + grid-column-gap: 8px; + } + .element-listener-item + .element-listener-item { + margin-top: 8px; + } +} +.listener-filed__title { + display: inline-flex; + width: 100%; + justify-content: space-between; + align-items: center; + margin-top: 0; + span { + width: 200px; + text-align: left; + font-size: 14px; + } + i { + margin-right: 8px; + } +} +.element-drawer__button { + margin-top: 8px; + width: 100%; + display: inline-flex; + justify-content: space-around; +} +.element-drawer__button > .el-button { + width: 100%; +} + +.el-collapse-item__content { + padding-bottom: 0; +} +.el-input.is-disabled .el-input__inner { + color: #999999; +} +.el-form-item.el-form-item--mini { + margin-bottom: 0; + & + .el-form-item { + margin-top: 16px; + } +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/utils.ts b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/utils.ts new file mode 100644 index 0000000..bb6c5d5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/utils.ts @@ -0,0 +1,77 @@ +import { toRaw } from 'vue' +const bpmnInstances = () => (window as any)?.bpmnInstances +// 创建监听器实例 +export function createListenerObject(options, isTask, prefix) { + const listenerObj = Object.create(null) + listenerObj.event = options.event + isTask && (listenerObj.id = options.id) // 任务监听器特有的 id 字段 + switch (options.listenerType) { + case 'scriptListener': + listenerObj.script = createScriptObject(options, prefix) + break + case 'expressionListener': + listenerObj.expression = options.expression + break + case 'delegateExpressionListener': + listenerObj.delegateExpression = options.delegateExpression + break + default: + listenerObj.class = options.class + } + // 注入字段 + if (options.fields) { + listenerObj.fields = options.fields.map((field) => { + return createFieldObject(field, prefix) + }) + } + // 任务监听器的 定时器 设置 + if (isTask && options.event === 'timeout' && !!options.eventDefinitionType) { + const timeDefinition = bpmnInstances().moddle.create('bpmn:FormalExpression', { + body: options.eventTimeDefinitions + }) + const TimerEventDefinition = bpmnInstances().moddle.create('bpmn:TimerEventDefinition', { + id: `TimerEventDefinition_${uuid(8)}`, + [`time${options.eventDefinitionType.replace(/^\S/, (s) => s.toUpperCase())}`]: timeDefinition + }) + listenerObj.eventDefinitions = [TimerEventDefinition] + } + return bpmnInstances().moddle.create( + `${prefix}:${isTask ? 'TaskListener' : 'ExecutionListener'}`, + listenerObj + ) +} + +// 创建 监听器的注入字段 实例 +export function createFieldObject(option, prefix) { + const { name, fieldType, string, expression } = option + const fieldConfig = fieldType === 'string' ? { name, string } : { name, expression } + return bpmnInstances().moddle.create(`${prefix}:Field`, fieldConfig) +} + +// 创建脚本实例 +export function createScriptObject(options, prefix) { + const { scriptType, scriptFormat, value, resource } = options + const scriptConfig = + scriptType === 'inlineScript' ? { scriptFormat, value } : { scriptFormat, resource } + return bpmnInstances().moddle.create(`${prefix}:Script`, scriptConfig) +} + +// 更新元素扩展属性 +export function updateElementExtensions(element, extensionList) { + const extensions = bpmnInstances().moddle.create('bpmn:ExtensionElements', { + values: extensionList + }) + bpmnInstances().modeling.updateProperties(toRaw(element), { + extensionElements: extensions + }) +} + +// 创建一个id +export function uuid(length = 8, chars?) { + let result = '' + const charsString = chars || '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + for (let i = length; i > 0; --i) { + result += charsString[Math.floor(Math.random() * charsString.length)] + } + return result +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/highlight/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/highlight/index.js new file mode 100644 index 0000000..5df38c9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/highlight/index.js @@ -0,0 +1,5 @@ +const hljs = require('highlight.js/lib/core') +hljs.registerLanguage('xml', require('highlight.js/lib/languages/xml')) +hljs.registerLanguage('json', require('highlight.js/lib/languages/json')) + +module.exports = hljs diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js new file mode 100644 index 0000000..e876031 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js @@ -0,0 +1,14 @@ +import BpmnRenderer from 'bpmn-js/lib/draw/BpmnRenderer' + +export default function CustomRenderer(config, eventBus, styles, pathMap, canvas, textRenderer) { + BpmnRenderer.call(this, config, eventBus, styles, pathMap, canvas, textRenderer, 2000) + + this.handlers['label'] = function () { + return null + } +} + +const F = function () {} // 核心,利用空对象作为中介; +F.prototype = BpmnRenderer.prototype // 核心,将父类的原型赋值给空对象F; +CustomRenderer.prototype = new F() // 核心,将 F的实例赋值给子类; +CustomRenderer.prototype.constructor = CustomRenderer // 修复子类CustomRenderer的构造器指向,防止原型链的混乱; diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js new file mode 100644 index 0000000..79d8bd0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js @@ -0,0 +1,6 @@ +import CustomRenderer from './CustomRenderer' + +export default { + __init__: ['customRenderer'], + customRenderer: ['type', CustomRenderer] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js new file mode 100644 index 0000000..9fa1d14 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js @@ -0,0 +1,16 @@ +import BpmnRules from 'bpmn-js/lib/features/rules/BpmnRules' +import inherits from 'inherits' + +export default function CustomRules(eventBus) { + BpmnRules.call(this, eventBus) +} + +inherits(CustomRules, BpmnRules) + +CustomRules.prototype.canDrop = function () { + return false +} + +CustomRules.prototype.canMove = function () { + return false +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/index.js new file mode 100644 index 0000000..12cf05a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/modules/rules/index.js @@ -0,0 +1,6 @@ +import CustomRules from './CustomRules' + +export default { + __init__: ['customRules'], + customRules: ['type', CustomRules] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/translations.ts b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/translations.ts new file mode 100644 index 0000000..5f9b9a5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/translations.ts @@ -0,0 +1,25 @@ +/** + * This is a sample file that should be replaced with the actual translation. + * + * Checkout https://github.com/bpmn-io/bpmn-js-i18n for a list of available + * translations and labels to translate. + */ +export default { + 'Exclusive Gateway': 'Exklusives Gateway', + 'Parallel Gateway': 'Paralleles Gateway', + 'Inclusive Gateway': 'Inklusives Gateway', + 'Complex Gateway': 'Komplexes Gateway', + 'Event based Gateway': 'Ereignis-basiertes Gateway', + 'Message Start Event': '消息启动事件', + 'Timer Start Event': '定时启动事件', + 'Conditional Start Event': '条件启动事件', + 'Signal Start Event': '信号启动事件', + 'Error Start Event': '错误启动事件', + 'Escalation Start Event': '升级启动事件', + 'Compensation Start Event': '补偿启动事件', + 'Message Start Event (non-interrupting)': '消息启动事件 (非中断)', + 'Timer Start Event (non-interrupting)': '定时启动事件 (非中断)', + 'Conditional Start Event (non-interrupting)': '条件启动事件 (非中断)', + 'Signal Start Event (non-interrupting)': '信号启动事件 (非中断)', + 'Escalation Start Event (non-interrupting)': '升级启动事件 (非中断)' +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js new file mode 100644 index 0000000..bb71d44 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js @@ -0,0 +1,39 @@ +//outside.js + +const ctx = '@@clickoutsideContext' + +export default { + bind(el, binding, vnode) { + const ele = el + const documentHandler = (e) => { + if (!vnode.context || ele.contains(e.target)) { + return false + } + // 调用指令回调 + if (binding.expression) { + vnode.context[el[ctx].methodName](e) + } else { + el[ctx].bindingFn(e) + } + } + // 将方法添加到ele + ele[ctx] = { + documentHandler, + methodName: binding.expression, + bindingFn: binding.value + } + + setTimeout(() => { + document.addEventListener('touchstart', documentHandler) // 为document绑定事件 + }) + }, + update(el, binding) { + const ele = el + ele[ctx].methodName = binding.expression + ele[ctx].bindingFn = binding.value + }, + unbind(el) { + document.removeEventListener('touchstart', el[ctx].documentHandler) // 解绑 + delete el[ctx] + } +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/index.js new file mode 100644 index 0000000..7d970ec --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/index.js @@ -0,0 +1,10 @@ +export function debounce(fn, delay = 500) { + let timer + return function (...args) { + if (timer) { + clearTimeout(timer) + timer = null + } + timer = setTimeout(fn.bind(this, ...args), delay) + } +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/xml2json.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/xml2json.js new file mode 100644 index 0000000..fe1a52f --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/src/utils/xml2json.js @@ -0,0 +1,50 @@ +function xmlStr2XmlObj(xmlStr) { + let xmlObj = {} + if (document.all) { + const xmlDom = new window.ActiveXObject('Microsoft.XMLDOM') + xmlDom.loadXML(xmlStr) + xmlObj = xmlDom + } else { + xmlObj = new DOMParser().parseFromString(xmlStr, 'text/xml') + } + return xmlObj +} + +function xml2json(xml) { + try { + let obj = {} + if (xml.children.length > 0) { + for (let i = 0; i < xml.children.length; i++) { + const item = xml.children.item(i) + const nodeName = item.nodeName + if (typeof obj[nodeName] == 'undefined') { + obj[nodeName] = xml2json(item) + } else { + if (typeof obj[nodeName].push == 'undefined') { + const old = obj[nodeName] + obj[nodeName] = [] + obj[nodeName].push(old) + } + obj[nodeName].push(xml2json(item)) + } + } + } else { + obj = xml.textContent + } + return obj + } catch (e) { + console.log(e.message) + } +} + +function xmlObj2json(xml) { + const xmlObj = xmlStr2XmlObj(xml) + console.log(xmlObj) + let jsonObj = {} + if (xmlObj.childNodes.length > 0) { + jsonObj = xml2json(xmlObj) + } + return jsonObj +} + +export default xmlObj2json diff --git a/grailed-ui-admin-vue3/src/components/index.ts b/grailed-ui-admin-vue3/src/components/index.ts new file mode 100644 index 0000000..4d030c3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/index.ts @@ -0,0 +1,6 @@ +import type { App } from 'vue' +import { Icon } from './Icon' + +export const setupGlobCom = (app: App): void => { + app.component('Icon', Icon) +} diff --git a/grailed-ui-admin-vue3/src/config/axios/config.ts b/grailed-ui-admin-vue3/src/config/axios/config.ts new file mode 100644 index 0000000..8116508 --- /dev/null +++ b/grailed-ui-admin-vue3/src/config/axios/config.ts @@ -0,0 +1,28 @@ +const config: { + base_url: string + result_code: number | string + default_headers: AxiosHeaders + request_timeout: number +} = { + /** + * api请求基础路径 + */ + base_url: import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL, + /** + * 接口成功返回状态码 + */ + result_code: 200, + + /** + * 接口请求超时时间 + */ + request_timeout: 30000, + + /** + * 默认接口请求类型 + * 可选值:application/x-www-form-urlencoded multipart/form-data + */ + default_headers: 'application/json' +} + +export { config } diff --git a/grailed-ui-admin-vue3/src/config/axios/errorCode.ts b/grailed-ui-admin-vue3/src/config/axios/errorCode.ts new file mode 100644 index 0000000..94d719f --- /dev/null +++ b/grailed-ui-admin-vue3/src/config/axios/errorCode.ts @@ -0,0 +1,6 @@ +export default { + '401': '认证失败,无法访问系统资源', + '403': '当前操作没有权限', + '404': '访问资源不存在', + default: '系统未知错误,请反馈给管理员' +} diff --git a/grailed-ui-admin-vue3/src/config/axios/index.ts b/grailed-ui-admin-vue3/src/config/axios/index.ts new file mode 100644 index 0000000..24d58c2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/config/axios/index.ts @@ -0,0 +1,54 @@ +import { service } from './service' + +import { config } from './config' + +const { default_headers } = config + +const request = (option: any) => { + const { url, method, params, data, headersType, responseType } = option + return service({ + url: url, + method, + params, + data, + responseType: responseType, + headers: { + 'Content-Type': headersType || default_headers + } + }) +} +export default { + get: async (option: any) => { + const res = await request({ method: 'GET', ...option }) + return res.data as unknown as T + }, + post: async (option: any) => { + const res = await request({ method: 'POST', ...option }) + return res.data as unknown as T + }, + postOriginal: async (option: any) => { + const res = await request({ method: 'POST', ...option }) + return res + }, + delete: async (option: any) => { + const res = await request({ method: 'DELETE', ...option }) + return res.data as unknown as T + }, + put: async (option: any) => { + const res = await request({ method: 'PUT', ...option }) + return res.data as unknown as T + }, + download: async (option: any) => { + const res = await request({ + method: 'GET', + responseType: 'blob', + ...option + }) + return res as unknown as Promise + }, + upload: async (option: any) => { + option.headersType = 'multipart/form-data' + const res = await request({ method: 'POST', ...option }) + return res as unknown as Promise + } +} diff --git a/grailed-ui-admin-vue3/src/config/axios/service.ts b/grailed-ui-admin-vue3/src/config/axios/service.ts new file mode 100644 index 0000000..69a68d6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/config/axios/service.ts @@ -0,0 +1,225 @@ +import axios, { + AxiosError, + AxiosInstance, + AxiosRequestHeaders, + AxiosResponse, + InternalAxiosRequestConfig +} from 'axios' + +import { ElMessage, ElMessageBox, ElNotification } from 'element-plus' +import qs from 'qs' +import { config } from '@/config/axios/config' +import { getAccessToken, getRefreshToken, getTenantId, removeToken, setToken } from '@/utils/auth' +import errorCode from './errorCode' + +import { resetRouter } from '@/router' +import { useCache } from '@/hooks/web/useCache' + +const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE +const { result_code, base_url, request_timeout } = config + +// 需要忽略的提示。忽略后,自动 Promise.reject('error') +const ignoreMsgs = [ + '无效的刷新令牌', // 刷新令牌被删除时,不用提示 + '刷新令牌已过期' // 使用刷新令牌,刷新获取新的访问令牌时,结果因为过期失败,此时需要忽略。否则,会导致继续 401,无法跳转到登出界面 +] +// 是否显示重新登录 +export const isRelogin = { show: false } +// Axios 无感知刷新令牌,参考 https://www.dashingdog.cn/article/11 与 https://segmentfault.com/a/1190000020210980 实现 +// 请求队列 +let requestList: any[] = [] +// 是否正在刷新中 +let isRefreshToken = false +// 请求白名单,无须token的接口 +const whiteList: string[] = ['/login', '/refresh-token'] + +// 创建axios实例 +const service: AxiosInstance = axios.create({ + baseURL: base_url, // api 的 base_url + timeout: request_timeout, // 请求超时时间 + withCredentials: false // 禁用 Cookie 等信息 +}) + +// request拦截器 +service.interceptors.request.use( + (config: InternalAxiosRequestConfig) => { + // 是否需要设置 token + let isToken = (config!.headers || {}).isToken === false + whiteList.some((v) => { + if (config.url) { + config.url.indexOf(v) > -1 + return (isToken = false) + } + }) + if (getAccessToken() && !isToken) { + ;(config as Recordable).headers.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token + } + // 设置租户 + if (tenantEnable && tenantEnable === 'true') { + const tenantId = getTenantId() + if (tenantId) (config as Recordable).headers['tenant-id'] = tenantId + } + const params = config.params || {} + const data = config.data || false + if ( + config.method?.toUpperCase() === 'POST' && + (config.headers as AxiosRequestHeaders)['Content-Type'] === + 'application/x-www-form-urlencoded' + ) { + config.data = qs.stringify(data) + } + // get参数编码 + if (config.method?.toUpperCase() === 'GET' && params) { + let url = config.url + '?' + for (const propName of Object.keys(params)) { + const value = params[propName] + if (value !== void 0 && value !== null && typeof value !== 'undefined') { + if (typeof value === 'object') { + for (const val of Object.keys(value)) { + const params = propName + '[' + val + ']' + const subPart = encodeURIComponent(params) + '=' + url += subPart + encodeURIComponent(value[val]) + '&' + } + } else { + url += `${propName}=${encodeURIComponent(value)}&` + } + } + } + // 给 get 请求加上时间戳参数,避免从缓存中拿数据 + // const now = new Date().getTime() + // params = params.substring(0, url.length - 1) + `?_t=${now}` + url = url.slice(0, -1) + config.params = {} + config.url = url + } + return config + }, + (error: AxiosError) => { + // Do something with request error + console.log(error) // for debug + Promise.reject(error) + } +) + +// response 拦截器 +service.interceptors.response.use( + async (response: AxiosResponse) => { + const { data } = response + const config = response.config + if (!data) { + // 返回“[HTTP]请求没有返回值”; + throw new Error() + } + const { t } = useI18n() + // 未设置状态码则默认成功状态 + const code = data.code || result_code + // 二进制数据则直接返回 + if ( + response.request.responseType === 'blob' || + response.request.responseType === 'arraybuffer' + ) { + return response.data + } + // 获取错误信息 + const msg = data.msg || errorCode[code] || errorCode['default'] + if (ignoreMsgs.indexOf(msg) !== -1) { + // 如果是忽略的错误码,直接返回 msg 异常 + return Promise.reject(msg) + } else if (code === 401) { + // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了 + if (!isRefreshToken) { + isRefreshToken = true + // 1. 如果获取不到刷新令牌,则只能执行登出操作 + if (!getRefreshToken()) { + return handleAuthorized() + } + // 2. 进行刷新访问令牌 + try { + const refreshTokenRes = await refreshToken() + // 2.1 刷新成功,则回放队列的请求 + 当前请求 + setToken((await refreshTokenRes).data.data) + config.headers!.Authorization = 'Bearer ' + getAccessToken() + requestList.forEach((cb: any) => { + cb() + }) + requestList = [] + return service(config) + } catch (e) { + // 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。 + // 2.2 刷新失败,只回放队列的请求 + requestList.forEach((cb: any) => { + cb() + }) + // 提示是否要登出。即不回放当前请求!不然会形成递归 + return handleAuthorized() + } finally { + requestList = [] + isRefreshToken = false + } + } else { + // 添加到队列,等待刷新获取到新的令牌 + return new Promise((resolve) => { + requestList.push(() => { + config.headers!.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + resolve(service(config)) + }) + }) + } + } else if (code === 500) { + ElMessage.error(t('sys.api.errMsg500')) + return Promise.reject(new Error(msg)) + } else if (code !== 200) { + if (msg === '无效的刷新令牌') { + // hard coding:忽略这个提示,直接登出 + console.log(msg) + } else { + ElNotification.error({ title: msg }) + } + return Promise.reject('error') + } else { + return data + } + }, + (error: AxiosError) => { + console.log('err' + error) // for debug + let { message } = error + const { t } = useI18n() + if (message === 'Network Error') { + message = t('sys.api.errorMessage') + } else if (message.includes('timeout')) { + message = t('sys.api.apiTimeoutMessage') + } else if (message.includes('Request failed with status code')) { + message = t('sys.api.apiRequestFailed') + message.substr(message.length - 3) + } + ElMessage.error(message) + return Promise.reject(error) + } +) + +const refreshToken = async () => { + axios.defaults.headers.common['tenant-id'] = getTenantId() + return await axios.post(base_url + '/system/auth/refresh-token?refreshToken=' + getRefreshToken()) +} +const handleAuthorized = () => { + const { t } = useI18n() + if (!isRelogin.show) { + isRelogin.show = true + ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), { + showCancelButton: false, + closeOnClickModal: false, + showClose: false, + confirmButtonText: t('login.relogin'), + type: 'warning' + }).then(() => { + const { wsCache } = useCache() + resetRouter() // 重置静态路由表 + wsCache.clear() + removeToken() + isRelogin.show = false + // 干掉token后再走一次路由让它过router.beforeEach的校验 + window.location.href = window.location.href + }) + } + return Promise.reject(t('sys.api.timeoutMessage')) +} +export { service } diff --git a/grailed-ui-admin-vue3/src/directives/index.ts b/grailed-ui-admin-vue3/src/directives/index.ts new file mode 100644 index 0000000..89cc8ba --- /dev/null +++ b/grailed-ui-admin-vue3/src/directives/index.ts @@ -0,0 +1,13 @@ +import type { App } from 'vue' +import { hasRole } from './permission/hasRole' +import { hasPermi } from './permission/hasPermi' + +/** + * 导出指令:v-xxx + * @methods hasRole 用户权限,用法: v-hasRole + * @methods hasPermi 按钮权限,用法: v-hasPermi + */ +export const setupAuth = (app: App) => { + hasRole(app) + hasPermi(app) +} diff --git a/grailed-ui-admin-vue3/src/directives/permission/hasPermi.ts b/grailed-ui-admin-vue3/src/directives/permission/hasPermi.ts new file mode 100644 index 0000000..d86d2f5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/directives/permission/hasPermi.ts @@ -0,0 +1,27 @@ +import type { App } from 'vue' +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' + +const { t } = useI18n() // 国际化 + +export function hasPermi(app: App) { + app.directive('hasPermi', (el, binding) => { + const { wsCache } = useCache() + const { value } = binding + const all_permission = '*:*:*' + const permissions = wsCache.get(CACHE_KEY.USER).permissions + + if (value && value instanceof Array && value.length > 0) { + const permissionFlag = value + + const hasPermissions = permissions.some((permission: string) => { + return all_permission === permission || permissionFlag.includes(permission) + }) + + if (!hasPermissions) { + el.parentNode && el.parentNode.removeChild(el) + } + } else { + throw new Error(t('permission.hasPermission')) + } + }) +} diff --git a/grailed-ui-admin-vue3/src/directives/permission/hasRole.ts b/grailed-ui-admin-vue3/src/directives/permission/hasRole.ts new file mode 100644 index 0000000..31a352a --- /dev/null +++ b/grailed-ui-admin-vue3/src/directives/permission/hasRole.ts @@ -0,0 +1,27 @@ +import type { App } from 'vue' +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' + +const { t } = useI18n() // 国际化 + +export function hasRole(app: App) { + app.directive('hasRole', (el, binding) => { + const { wsCache } = useCache() + const { value } = binding + const super_admin = 'admin' + const roles = wsCache.get(CACHE_KEY.USER).roles + + if (value && value instanceof Array && value.length > 0) { + const roleFlag = value + + const hasRole = roles.some((role: string) => { + return super_admin === role || roleFlag.includes(role) + }) + + if (!hasRole) { + el.parentNode && el.parentNode.removeChild(el) + } + } else { + throw new Error(t('permission.hasRole')) + } + }) +} diff --git a/grailed-ui-admin-vue3/src/hooks/event/useScrollTo.ts b/grailed-ui-admin-vue3/src/hooks/event/useScrollTo.ts new file mode 100644 index 0000000..92aec87 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/event/useScrollTo.ts @@ -0,0 +1,60 @@ +export interface ScrollToParams { + el: HTMLElement + to: number + position: string + duration?: number + callback?: () => void +} + +const easeInOutQuad = (t: number, b: number, c: number, d: number) => { + t /= d / 2 + if (t < 1) { + return (c / 2) * t * t + b + } + t-- + return (-c / 2) * (t * (t - 2) - 1) + b +} +const move = (el: HTMLElement, position: string, amount: number) => { + el[position] = amount +} + +export function useScrollTo({ + el, + position = 'scrollLeft', + to, + duration = 500, + callback +}: ScrollToParams) { + const isActiveRef = ref(false) + const start = el[position] + const change = to - start + const increment = 20 + let currentTime = 0 + + function animateScroll() { + if (!unref(isActiveRef)) { + return + } + currentTime += increment + const val = easeInOutQuad(currentTime, start, change, duration) + move(el, position, val) + if (currentTime < duration && unref(isActiveRef)) { + requestAnimationFrame(animateScroll) + } else { + if (callback) { + callback() + } + } + } + + function run() { + isActiveRef.value = true + animateScroll() + } + + function stop() { + isActiveRef.value = false + } + + return { start: run, stop } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useCache.ts b/grailed-ui-admin-vue3/src/hooks/web/useCache.ts new file mode 100644 index 0000000..6d2a931 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useCache.ts @@ -0,0 +1,27 @@ +/** + * 配置浏览器本地存储的方式,可直接存储对象数组。 + */ + +import WebStorageCache from 'web-storage-cache' + +type CacheType = 'localStorage' | 'sessionStorage' + +export const CACHE_KEY = { + IS_DARK: 'isDark', + USER: 'user', + LANG: 'lang', + THEME: 'theme', + LAYOUT: 'layout', + ROLE_ROUTERS: 'roleRouters', + DICT_CACHE: 'dictCache' +} + +export const useCache = (type: CacheType = 'localStorage') => { + const wsCache: WebStorageCache = new WebStorageCache({ + storage: type + }) + + return { + wsCache + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts b/grailed-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts new file mode 100644 index 0000000..afb3db3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useConfigGlobal.ts @@ -0,0 +1,9 @@ +import { ConfigGlobalTypes } from '@/types/configGlobal' + +export const useConfigGlobal = () => { + const configGlobal = inject('configGlobal', {}) as ConfigGlobalTypes + + return { + configGlobal + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts b/grailed-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts new file mode 100644 index 0000000..984e57c --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useCrudSchemas.ts @@ -0,0 +1,308 @@ +import { reactive } from 'vue' +import { AxiosPromise } from 'axios' +import { findIndex } from '@/utils' +import { eachTree, filter, treeMap } from '@/utils/tree' +import { getBoolDictOptions, getDictOptions, getIntDictOptions } from '@/utils/dict' + +import { FormSchema } from '@/types/form' +import { TableColumn } from '@/types/table' +import { DescriptionsSchema } from '@/types/descriptions' +import { ComponentOptions, ComponentProps } from '@/types/components' +import { DictTag } from '@/components/DictTag' + +export type CrudSchema = Omit & { + isSearch?: boolean // 是否在查询显示 + search?: CrudSearchParams // 查询的详细配置 + isTable?: boolean // 是否在列表显示 + table?: CrudTableParams // 列表的详细配置 + isForm?: boolean // 是否在表单显示 + form?: CrudFormParams // 表单的详细配置 + isDetail?: boolean // 是否在详情显示 + detail?: CrudDescriptionsParams // 详情的详细配置 + children?: CrudSchema[] + dictType?: string // 字典类型 + dictClass?: 'string' | 'number' | 'boolean' // 字典数据类型 string | number | boolean +} + +type CrudSearchParams = { + // 是否显示在查询项 + show?: boolean + // 接口 + api?: () => Promise + // 搜索字段 + field?: string +} & Omit + +type CrudTableParams = { + // 是否显示表头 + show?: boolean + // 列宽配置 + width?: number | string + // 列是否固定在左侧或者右侧 + fixed?: 'left' | 'right' +} & Omit +type CrudFormParams = { + // 是否显示表单项 + show?: boolean + // 接口 + api?: () => Promise +} & Omit + +type CrudDescriptionsParams = { + // 是否显示表单项 + show?: boolean +} & Omit + +interface AllSchemas { + searchSchema: FormSchema[] + tableColumns: TableColumn[] + formSchema: FormSchema[] + detailSchema: DescriptionsSchema[] +} + +const { t } = useI18n() + +// 过滤所有结构 +export const useCrudSchemas = ( + crudSchema: CrudSchema[] +): { + allSchemas: AllSchemas +} => { + // 所有结构数据 + const allSchemas = reactive({ + searchSchema: [], + tableColumns: [], + formSchema: [], + detailSchema: [] + }) + + const searchSchema = filterSearchSchema(crudSchema, allSchemas) + allSchemas.searchSchema = searchSchema || [] + + const tableColumns = filterTableSchema(crudSchema) + allSchemas.tableColumns = tableColumns || [] + + const formSchema = filterFormSchema(crudSchema, allSchemas) + allSchemas.formSchema = formSchema + + const detailSchema = filterDescriptionsSchema(crudSchema) + allSchemas.detailSchema = detailSchema + + return { + allSchemas + } +} + +// 过滤 Search 结构 +const filterSearchSchema = (crudSchema: CrudSchema[], allSchemas: AllSchemas): FormSchema[] => { + const searchSchema: FormSchema[] = [] + + // 获取字典列表队列 + const searchRequestTask: Array<() => Promise> = [] + eachTree(crudSchema, (schemaItem: CrudSchema) => { + // 判断是否显示 + if (schemaItem?.isSearch || schemaItem.search?.show) { + let component = schemaItem?.search?.component || 'Input' + const options: ComponentOptions[] = [] + let comonentProps: ComponentProps = {} + if (schemaItem.dictType) { + const allOptions: ComponentOptions = { label: '全部', value: '' } + options.push(allOptions) + getDictOptions(schemaItem.dictType).forEach((dict) => { + options.push(dict) + }) + comonentProps = { + options: options + } + if (!schemaItem.search?.component) component = 'Select' + } + const searchSchemaItem = { + // 默认为 input + component: component, + componentProps: comonentProps, + ...schemaItem.search, + field: schemaItem.field, + label: schemaItem.search?.label || schemaItem.label + } + if (searchSchemaItem.api) { + searchRequestTask.push(async () => { + const res = await (searchSchemaItem.api as () => AxiosPromise)() + if (res) { + const index = findIndex(allSchemas.searchSchema, (v: FormSchema) => { + return v.field === searchSchemaItem.field + }) + if (index !== -1) { + allSchemas.searchSchema[index]!.componentProps!.options = filterOptions( + res, + searchSchemaItem.componentProps.optionsAlias?.labelField + ) + } + } + }) + } + // 删除不必要的字段 + delete searchSchemaItem.show + + searchSchema.push(searchSchemaItem) + } + }) + for (const task of searchRequestTask) { + task() + } + return searchSchema +} + +// 过滤 table 结构 +const filterTableSchema = (crudSchema: CrudSchema[]): TableColumn[] => { + const tableColumns = treeMap(crudSchema, { + conversion: (schema: CrudSchema) => { + if (schema?.isTable !== false && schema?.table?.show !== false) { + // add by 芋艿:增加对 dict 字典数据的支持 + if (!schema.formatter && schema.dictType) { + schema.formatter = (_: Recordable, __: TableColumn, cellValue: any) => { + return h(DictTag, { + type: schema.dictType!, // ! 表示一定不为空 + value: cellValue + }) + } + } + return { + ...schema.table, + ...schema + } + } + } + }) + + // 第一次过滤会有 undefined 所以需要二次过滤 + return filter(tableColumns as TableColumn[], (data) => { + if (data.children === void 0) { + delete data.children + } + return !!data.field + }) +} + +// 过滤 form 结构 +const filterFormSchema = (crudSchema: CrudSchema[], allSchemas: AllSchemas): FormSchema[] => { + const formSchema: FormSchema[] = [] + + // 获取字典列表队列 + const formRequestTask: Array<() => Promise> = [] + + eachTree(crudSchema, (schemaItem: CrudSchema) => { + // 判断是否显示 + if (schemaItem?.isForm !== false && schemaItem?.form?.show !== false) { + let component = schemaItem?.form?.component || 'Input' + let defaultValue: any = '' + if (schemaItem.form?.value) { + defaultValue = schemaItem.form?.value + } else { + if (component === 'InputNumber') { + defaultValue = 0 + } + } + let comonentProps: ComponentProps = {} + if (schemaItem.dictType) { + const options: ComponentOptions[] = [] + if (schemaItem.dictClass && schemaItem.dictClass === 'number') { + getIntDictOptions(schemaItem.dictType).forEach((dict) => { + options.push(dict) + }) + } else if (schemaItem.dictClass && schemaItem.dictClass === 'boolean') { + getBoolDictOptions(schemaItem.dictType).forEach((dict) => { + options.push(dict) + }) + } else { + getDictOptions(schemaItem.dictType).forEach((dict) => { + options.push(dict) + }) + } + comonentProps = { + options: options + } + if (!(schemaItem.form && schemaItem.form.component)) component = 'Select' + } + const formSchemaItem = { + // 默认为 input + component: component, + componentProps: comonentProps, + value: defaultValue, + ...schemaItem.form, + field: schemaItem.field, + label: schemaItem.form?.label || schemaItem.label + } + + if (formSchemaItem.api) { + formRequestTask.push(async () => { + const res = await (formSchemaItem.api as () => AxiosPromise)() + if (res) { + const index = findIndex(allSchemas.formSchema, (v: FormSchema) => { + return v.field === formSchemaItem.field + }) + if (index !== -1) { + allSchemas.formSchema[index]!.componentProps!.options = filterOptions( + res, + formSchemaItem.componentProps.optionsAlias?.labelField + ) + } + } + }) + } + + // 删除不必要的字段 + delete formSchemaItem.show + + formSchema.push(formSchemaItem) + } + }) + + for (const task of formRequestTask) { + task() + } + return formSchema +} + +// 过滤 descriptions 结构 +const filterDescriptionsSchema = (crudSchema: CrudSchema[]): DescriptionsSchema[] => { + const descriptionsSchema: FormSchema[] = [] + + eachTree(crudSchema, (schemaItem: CrudSchema) => { + // 判断是否显示 + if (schemaItem?.isDetail !== false && schemaItem.detail?.show !== false) { + const descriptionsSchemaItem = { + ...schemaItem.detail, + field: schemaItem.field, + label: schemaItem.detail?.label || schemaItem.label + } + if (schemaItem.dictType) { + descriptionsSchemaItem.dictType = schemaItem.dictType + } + if (schemaItem.detail?.dateFormat || schemaItem.formatter == 'formatDate') { + // 优先使用 detail 下的配置,如果没有默认为 YYYY-MM-DD HH:mm:ss + descriptionsSchemaItem.dateFormat = schemaItem?.detail?.dateFormat + ? schemaItem?.detail?.dateFormat + : 'YYYY-MM-DD HH:mm:ss' + } + + // 删除不必要的字段 + delete descriptionsSchemaItem.show + + descriptionsSchema.push(descriptionsSchemaItem) + } + }) + + return descriptionsSchema +} + +// 给options添加国际化 +const filterOptions = (options: Recordable, labelField?: string) => { + return options?.map((v: Recordable) => { + if (labelField) { + v['labelField'] = t(v.labelField) + } else { + v['label'] = t(v.label) + } + return v + }) +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useDesign.ts b/grailed-ui-admin-vue3/src/hooks/web/useDesign.ts new file mode 100644 index 0000000..8ee3b38 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useDesign.ts @@ -0,0 +1,18 @@ +import variables from '@/styles/global.module.scss' + +export const useDesign = () => { + const scssVariables = variables + + /** + * @param scope 类名 + * @returns 返回空间名-类名 + */ + const getPrefixCls = (scope: string) => { + return `${scssVariables.namespace}-${scope}` + } + + return { + variables: scssVariables, + getPrefixCls + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useEmitt.ts b/grailed-ui-admin-vue3/src/hooks/web/useEmitt.ts new file mode 100644 index 0000000..d4efea7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useEmitt.ts @@ -0,0 +1,22 @@ +import mitt from 'mitt' + +interface Option { + name: string // 事件名称 + callback: Fn // 回调 +} + +const emitter = mitt() + +export const useEmitt = (option?: Option) => { + if (option) { + emitter.on(option.name, option.callback) + + onBeforeUnmount(() => { + emitter.off(option.name) + }) + } + + return { + emitter + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useForm.ts b/grailed-ui-admin-vue3/src/hooks/web/useForm.ts new file mode 100644 index 0000000..53a8a94 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useForm.ts @@ -0,0 +1,94 @@ +import type { Form, FormExpose } from '@/components/Form' +import type { ElForm } from 'element-plus' +import type { FormProps } from '@/components/Form/src/types' +import { FormSchema, FormSetPropsType } from '@/types/form' + +export const useForm = (props?: FormProps) => { + // From实例 + const formRef = ref() + + // ElForm实例 + const elFormRef = ref>() + + /** + * @param ref Form实例 + * @param elRef ElForm实例 + */ + const register = (ref: typeof Form & FormExpose, elRef: ComponentRef) => { + formRef.value = ref + elFormRef.value = elRef + } + + const getForm = async () => { + await nextTick() + const form = unref(formRef) + if (!form) { + console.error('The form is not registered. Please use the register method to register') + } + return form + } + + // 一些内置的方法 + const methods: { + setProps: (props: Recordable) => void + setValues: (data: Recordable) => void + getFormData: () => Promise + setSchema: (schemaProps: FormSetPropsType[]) => void + addSchema: (formSchema: FormSchema, index?: number) => void + delSchema: (field: string) => void + } = { + setProps: async (props: FormProps = {}) => { + const form = await getForm() + form?.setProps(props) + if (props.model) { + form?.setValues(props.model) + } + }, + + setValues: async (data: Recordable) => { + const form = await getForm() + form?.setValues(data) + }, + + /** + * @param schemaProps 需要设置的schemaProps + */ + setSchema: async (schemaProps: FormSetPropsType[]) => { + const form = await getForm() + form?.setSchema(schemaProps) + }, + + /** + * @param formSchema 需要新增数据 + * @param index 在哪里新增 + */ + addSchema: async (formSchema: FormSchema, index?: number) => { + const form = await getForm() + form?.addSchema(formSchema, index) + }, + + /** + * @param field 删除哪个数据 + */ + delSchema: async (field: string) => { + const form = await getForm() + form?.delSchema(field) + }, + + /** + * @returns form data + */ + getFormData: async (): Promise => { + const form = await getForm() + return form?.formModel as T + } + } + + props && methods.setProps(props) + + return { + register, + elFormRef, + methods + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useI18n.ts b/grailed-ui-admin-vue3/src/hooks/web/useI18n.ts new file mode 100644 index 0000000..d1ab70f --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useI18n.ts @@ -0,0 +1,53 @@ +import { i18n } from '@/plugins/vueI18n' + +type I18nGlobalTranslation = { + (key: string): string + (key: string, locale: string): string + (key: string, locale: string, list: unknown[]): string + (key: string, locale: string, named: Record): string + (key: string, list: unknown[]): string + (key: string, named: Record): string +} + +type I18nTranslationRestParameters = [string, any] + +const getKey = (namespace: string | undefined, key: string) => { + if (!namespace) { + return key + } + if (key.startsWith(namespace)) { + return key + } + return `${namespace}.${key}` +} + +export const useI18n = ( + namespace?: string +): { + t: I18nGlobalTranslation +} => { + const normalFn = { + t: (key: string) => { + return getKey(namespace, key) + } + } + + if (!i18n) { + return normalFn + } + + const { t, ...methods } = i18n.global + + const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => { + if (!key) return '' + if (!key.includes('.') && !namespace) return key + //@ts-ignore + return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters)) + } + return { + ...methods, + t: tFn + } +} + +export const t = (key: string) => key diff --git a/grailed-ui-admin-vue3/src/hooks/web/useIcon.ts b/grailed-ui-admin-vue3/src/hooks/web/useIcon.ts new file mode 100644 index 0000000..3500204 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useIcon.ts @@ -0,0 +1,8 @@ +import { h } from 'vue' +import type { VNode } from 'vue' +import { Icon } from '@/components/Icon' +import { IconTypes } from '@/types/icon' + +export const useIcon = (props: IconTypes): VNode => { + return h(Icon, props) +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useIntro.ts b/grailed-ui-admin-vue3/src/hooks/web/useIntro.ts new file mode 100644 index 0000000..7fe0084 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useIntro.ts @@ -0,0 +1,47 @@ +import introJs from 'intro.js' +import { IntroJs, Step, Options } from 'intro.js' +import 'intro.js/introjs.css' + +import { useDesign } from '@/hooks/web/useDesign' + +export const useIntro = (setps?: Step[], options?: Options) => { + const { t } = useI18n() + + const { variables } = useDesign() + + const defaultSetps: Step[] = setps || [ + { + element: `#${variables.namespace}-menu`, + title: t('common.menu'), + intro: t('common.menuDes'), + position: 'right' + }, + { + element: `#${variables.namespace}-tool-header`, + title: t('common.tool'), + intro: t('common.toolDes'), + position: 'left' + }, + { + element: `#${variables.namespace}-tags-view`, + title: t('common.tagsView'), + intro: t('common.tagsViewDes'), + position: 'bottom' + } + ] + + const defaultOptions: Options = options || { + prevLabel: t('common.prevLabel'), + nextLabel: t('common.nextLabel'), + skipLabel: t('common.skipLabel'), + doneLabel: t('common.doneLabel') + } + + const introRef: IntroJs = introJs() + + introRef.addSteps(defaultSetps).setOptions(defaultOptions) + + return { + introRef + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useLocale.ts b/grailed-ui-admin-vue3/src/hooks/web/useLocale.ts new file mode 100644 index 0000000..c65070e --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useLocale.ts @@ -0,0 +1,35 @@ +import { i18n } from '@/plugins/vueI18n' +import { useLocaleStoreWithOut } from '@/store/modules/locale' +import { setHtmlPageLang } from '@/plugins/vueI18n/helper' + +const setI18nLanguage = (locale: LocaleType) => { + const localeStore = useLocaleStoreWithOut() + + if (i18n.mode === 'legacy') { + i18n.global.locale = locale + } else { + ;(i18n.global.locale as any).value = locale + } + localeStore.setCurrentLocale({ + lang: locale + }) + setHtmlPageLang(locale) +} + +export const useLocale = () => { + // Switching the language will change the locale of useI18n + // And submit to configuration modification + const changeLocale = async (locale: LocaleType) => { + const globalI18n = i18n.global + + const langModule = await import(`../../locales/${locale}.ts`) + + globalI18n.setLocaleMessage(locale, langModule.default) + + setI18nLanguage(locale) + } + + return { + changeLocale + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useMessage.ts b/grailed-ui-admin-vue3/src/hooks/web/useMessage.ts new file mode 100644 index 0000000..ac2b552 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useMessage.ts @@ -0,0 +1,95 @@ +import { ElMessage, ElMessageBox, ElNotification } from 'element-plus' +import { useI18n } from './useI18n' +export const useMessage = () => { + const { t } = useI18n() + return { + // 消息提示 + info(content: string) { + ElMessage.info(content) + }, + // 错误消息 + error(content: string) { + ElMessage.error(content) + }, + // 成功消息 + success(content: string) { + ElMessage.success(content) + }, + // 警告消息 + warning(content: string) { + ElMessage.warning(content) + }, + // 弹出提示 + alert(content: string) { + ElMessageBox.alert(content, t('common.confirmTitle')) + }, + // 错误提示 + alertError(content: string) { + ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'error' }) + }, + // 成功提示 + alertSuccess(content: string) { + ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'success' }) + }, + // 警告提示 + alertWarning(content: string) { + ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'warning' }) + }, + // 通知提示 + notify(content: string) { + ElNotification.info(content) + }, + // 错误通知 + notifyError(content: string) { + ElNotification.error(content) + }, + // 成功通知 + notifySuccess(content: string) { + ElNotification.success(content) + }, + // 警告通知 + notifyWarning(content: string) { + ElNotification.warning(content) + }, + // 确认窗体 + confirm(content: string, tip?: string) { + return ElMessageBox.confirm(content, tip ? tip : t('common.confirmTitle'), { + confirmButtonText: t('common.ok'), + cancelButtonText: t('common.cancel'), + type: 'warning' + }) + }, + // 删除窗体 + delConfirm(content?: string, tip?: string) { + return ElMessageBox.confirm( + content ? content : t('common.delMessage'), + tip ? tip : t('common.confirmTitle'), + { + confirmButtonText: t('common.ok'), + cancelButtonText: t('common.cancel'), + type: 'warning' + } + ) + }, + // 导出窗体 + exportConfirm(content?: string, tip?: string) { + return ElMessageBox.confirm( + content ? content : t('common.exportMessage'), + tip ? tip : t('common.confirmTitle'), + { + confirmButtonText: t('common.ok'), + cancelButtonText: t('common.cancel'), + type: 'warning' + } + ) + }, + // 提交内容 + prompt(content: string, tip: string) { + return ElMessageBox.prompt(content, tip, { + confirmButtonText: t('common.ok'), + cancelButtonText: t('common.cancel'), + type: 'warning' + }) + } + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useNProgress.ts b/grailed-ui-admin-vue3/src/hooks/web/useNProgress.ts new file mode 100644 index 0000000..6d8c0b9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useNProgress.ts @@ -0,0 +1,33 @@ +import { useCssVar } from '@vueuse/core' +import type { NProgressOptions } from 'nprogress' +import NProgress from 'nprogress' +import 'nprogress/nprogress.css' + +const primaryColor = useCssVar('--el-color-primary', document.documentElement) + +export const useNProgress = () => { + NProgress.configure({ showSpinner: false } as NProgressOptions) + + const initColor = async () => { + await nextTick() + const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef + if (bar) { + bar.style.background = unref(primaryColor.value) + } + } + + initColor() + + const start = () => { + NProgress.start() + } + + const done = () => { + NProgress.done() + } + + return { + start, + done + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/usePageLoading.ts b/grailed-ui-admin-vue3/src/hooks/web/usePageLoading.ts new file mode 100644 index 0000000..bb89457 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/usePageLoading.ts @@ -0,0 +1,18 @@ +import { useAppStoreWithOut } from '@/store/modules/app' + +const appStore = useAppStoreWithOut() + +export const usePageLoading = () => { + const loadStart = () => { + appStore.setPageLoading(true) + } + + const loadDone = () => { + appStore.setPageLoading(false) + } + + return { + loadStart, + loadDone + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useTable.ts b/grailed-ui-admin-vue3/src/hooks/web/useTable.ts new file mode 100644 index 0000000..361dd67 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useTable.ts @@ -0,0 +1,223 @@ +import download from '@/utils/download' +import { Table, TableExpose } from '@/components/Table' +import { ElMessage, ElMessageBox, ElTable } from 'element-plus' +import { computed, nextTick, reactive, ref, unref, watch } from 'vue' +import type { TableProps } from '@/components/Table/src/types' + +import { TableSetPropsType } from '@/types/table' + +const { t } = useI18n() +interface ResponseType { + list: T[] + total?: number +} + +interface UseTableConfig { + getListApi: (option: any) => Promise + delListApi?: (option: any) => Promise + exportListApi?: (option: any) => Promise + // 返回数据格式配置 + response?: ResponseType + // 默认传递的参数 + defaultParams?: Recordable + props?: TableProps +} + +interface TableObject { + pageSize: number + currentPage: number + total: number + tableList: T[] + params: any + loading: boolean + exportLoading: boolean + currentRow: Nullable +} + +export const useTable = (config?: UseTableConfig) => { + const tableObject = reactive>({ + // 页数 + pageSize: 10, + // 当前页 + currentPage: 1, + // 总条数 + total: 10, + // 表格数据 + tableList: [], + // AxiosConfig 配置 + params: { + ...(config?.defaultParams || {}) + }, + // 加载中 + loading: true, + // 导出加载中 + exportLoading: false, + // 当前行的数据 + currentRow: null + }) + + const paramsObj = computed(() => { + return { + ...tableObject.params, + pageSize: tableObject.pageSize, + pageNo: tableObject.currentPage + } + }) + + watch( + () => tableObject.currentPage, + () => { + methods.getList() + } + ) + + watch( + () => tableObject.pageSize, + () => { + // 当前页不为1时,修改页数后会导致多次调用getList方法 + if (tableObject.currentPage === 1) { + methods.getList() + } else { + tableObject.currentPage = 1 + methods.getList() + } + } + ) + + // Table实例 + const tableRef = ref() + + // ElTable实例 + const elTableRef = ref>() + + const register = (ref: typeof Table & TableExpose, elRef: ComponentRef) => { + tableRef.value = ref + elTableRef.value = elRef + } + + const getTable = async () => { + await nextTick() + const table = unref(tableRef) + if (!table) { + console.error('The table is not registered. Please use the register method to register') + } + return table + } + + const delData = async (ids: string | number | string[] | number[]) => { + let idsLength = 1 + if (ids instanceof Array) { + idsLength = ids.length + await Promise.all( + ids.map(async (id: string | number) => { + await (config?.delListApi && config?.delListApi(id)) + }) + ) + } else { + await (config?.delListApi && config?.delListApi(ids)) + } + ElMessage.success(t('common.delSuccess')) + + // 计算出临界点 + tableObject.currentPage = + tableObject.total % tableObject.pageSize === idsLength || tableObject.pageSize === 1 + ? tableObject.currentPage > 1 + ? tableObject.currentPage - 1 + : tableObject.currentPage + : tableObject.currentPage + await methods.getList() + } + + const methods = { + getList: async () => { + tableObject.loading = true + const res = await config?.getListApi(unref(paramsObj)).finally(() => { + tableObject.loading = false + }) + if (res) { + tableObject.tableList = (res as unknown as ResponseType).list + tableObject.total = (res as unknown as ResponseType).total ?? 0 + } + }, + setProps: async (props: TableProps = {}) => { + const table = await getTable() + table?.setProps(props) + }, + setColumn: async (columnProps: TableSetPropsType[]) => { + const table = await getTable() + table?.setColumn(columnProps) + }, + getSelections: async () => { + const table = await getTable() + return (table?.selections || []) as T[] + }, + // 与Search组件结合 + setSearchParams: (data: Recordable) => { + tableObject.params = Object.assign(tableObject.params, { + pageSize: tableObject.pageSize, + pageNo: 1, + ...data + }) + // 页码不等于1时更新页码重新获取数据,页码等于1时重新获取数据 + if (tableObject.currentPage !== 1) { + tableObject.currentPage = 1 + } else { + methods.getList() + } + }, + // 删除数据 + delList: async ( + ids: string | number | string[] | number[], + multiple: boolean, + message = true + ) => { + const tableRef = await getTable() + if (multiple) { + if (!tableRef?.selections.length) { + ElMessage.warning(t('common.delNoData')) + return + } + } + if (message) { + ElMessageBox.confirm(t('common.delMessage'), t('common.confirmTitle'), { + confirmButtonText: t('common.ok'), + cancelButtonText: t('common.cancel'), + type: 'warning' + }).then(async () => { + await delData(ids) + }) + } else { + await delData(ids) + } + }, + // 导出列表 + exportList: async (fileName: string) => { + tableObject.exportLoading = true + ElMessageBox.confirm(t('common.exportMessage'), t('common.confirmTitle'), { + confirmButtonText: t('common.ok'), + cancelButtonText: t('common.cancel'), + type: 'warning' + }) + .then(async () => { + const res = await config?.exportListApi?.(unref(paramsObj) as unknown as T) + if (res) { + download.excel(res as unknown as Blob, fileName) + } + }) + .finally(() => { + tableObject.exportLoading = false + }) + } + } + + config?.props && methods.setProps(config.props) + + return { + register, + elTableRef, + tableObject, + methods, + // add by 芋艿:返回 tableMethods 属性,和 tableObject 更统一 + tableMethods: methods + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useTimeAgo.ts b/grailed-ui-admin-vue3/src/hooks/web/useTimeAgo.ts new file mode 100644 index 0000000..a6da281 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useTimeAgo.ts @@ -0,0 +1,49 @@ +import { useTimeAgo as useTimeAgoCore, UseTimeAgoMessages } from '@vueuse/core' +import { useLocaleStoreWithOut } from '@/store/modules/locale' + +const TIME_AGO_MESSAGE_MAP: { + 'zh-CN': UseTimeAgoMessages + en: UseTimeAgoMessages +} = { + // @ts-ignore + 'zh-CN': { + justNow: '刚刚', + past: (n) => (n.match(/\d/) ? `${n}前` : n), + future: (n) => (n.match(/\d/) ? `${n}后` : n), + month: (n, past) => (n === 1 ? (past ? '上个月' : '下个月') : `${n} 个月`), + year: (n, past) => (n === 1 ? (past ? '去年' : '明年') : `${n} 年`), + day: (n, past) => (n === 1 ? (past ? '昨天' : '明天') : `${n} 天`), + week: (n, past) => (n === 1 ? (past ? '上周' : '下周') : `${n} 周`), + hour: (n) => `${n} 小时`, + minute: (n) => `${n} 分钟`, + second: (n) => `${n} 秒` + }, + // @ts-ignore + en: { + justNow: 'just now', + past: (n) => (n.match(/\d/) ? `${n} ago` : n), + future: (n) => (n.match(/\d/) ? `in ${n}` : n), + month: (n, past) => + n === 1 ? (past ? 'last month' : 'next month') : `${n} month${n > 1 ? 's' : ''}`, + year: (n, past) => + n === 1 ? (past ? 'last year' : 'next year') : `${n} year${n > 1 ? 's' : ''}`, + day: (n, past) => (n === 1 ? (past ? 'yesterday' : 'tomorrow') : `${n} day${n > 1 ? 's' : ''}`), + week: (n, past) => + n === 1 ? (past ? 'last week' : 'next week') : `${n} week${n > 1 ? 's' : ''}`, + hour: (n) => `${n} hour${n > 1 ? 's' : ''}`, + minute: (n) => `${n} minute${n > 1 ? 's' : ''}`, + second: (n) => `${n} second${n > 1 ? 's' : ''}` + } +} + +export const useTimeAgo = (time: Date | number | string) => { + const localeStore = useLocaleStoreWithOut() + + const currentLocale = computed(() => localeStore.getCurrentLocale) + + const timeAgo = useTimeAgoCore(time, { + messages: TIME_AGO_MESSAGE_MAP[unref(currentLocale).lang] + }) + + return timeAgo +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useTitle.ts b/grailed-ui-admin-vue3/src/hooks/web/useTitle.ts new file mode 100644 index 0000000..965a9fd --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useTitle.ts @@ -0,0 +1,24 @@ +import { watch, ref } from 'vue' +import { isString } from '@/utils/is' +import { useAppStoreWithOut } from '@/store/modules/app' + +const appStore = useAppStoreWithOut() + +export const useTitle = (newTitle?: string) => { + const { t } = useI18n() + const title = ref( + newTitle ? `红狐管理系统 - ${t(newTitle as string)}` : `红狐管理系统` + ) + + watch( + title, + (n, o) => { + if (isString(n) && n !== o && document) { + document.title = n + } + }, + { immediate: true } + ) + + return title +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useValidator.ts b/grailed-ui-admin-vue3/src/hooks/web/useValidator.ts new file mode 100644 index 0000000..0c16fa3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useValidator.ts @@ -0,0 +1,62 @@ +const { t } = useI18n() + +type Callback = (error?: string | Error | undefined) => void + +interface LengthRange { + min: number + max: number + message: string +} + +export const useValidator = () => { + const required = (message?: string) => { + return { + required: true, + message: message || t('common.required') + } + } + + const lengthRange = (val: any, callback: Callback, options: LengthRange) => { + const { min, max, message } = options + if (val.length < min || val.length > max) { + callback(new Error(message)) + } else { + callback() + } + } + + const notSpace = (val: any, callback: Callback, message: string) => { + // 用户名不能有空格 + if (val.indexOf(' ') !== -1) { + callback(new Error(message)) + } else { + callback() + } + } + + const notSpecialCharacters = (val: any, callback: Callback, message: string) => { + // 密码不能是特殊字符 + if (/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/gi.test(val)) { + callback(new Error(message)) + } else { + callback() + } + } + + // 两个字符串是否想等 + const isEqual = (val1: string, val2: string, callback: Callback, message: string) => { + if (val1 === val2) { + callback() + } else { + callback(new Error(message)) + } + } + + return { + required, + lengthRange, + notSpace, + notSpecialCharacters, + isEqual + } +} diff --git a/grailed-ui-admin-vue3/src/hooks/web/useWatermark.ts b/grailed-ui-admin-vue3/src/hooks/web/useWatermark.ts new file mode 100644 index 0000000..4a31359 --- /dev/null +++ b/grailed-ui-admin-vue3/src/hooks/web/useWatermark.ts @@ -0,0 +1,55 @@ +const domSymbol = Symbol('watermark-dom') + +export function useWatermark(appendEl: HTMLElement | null = document.body) { + let func: Fn = () => {} + const id = domSymbol.toString() + const clear = () => { + const domId = document.getElementById(id) + if (domId) { + const el = appendEl + el && el.removeChild(domId) + } + window.removeEventListener('resize', func) + } + const createWatermark = (str: string) => { + clear() + + const can = document.createElement('canvas') + can.width = 300 + can.height = 240 + + const cans = can.getContext('2d') + if (cans) { + cans.rotate((-20 * Math.PI) / 120) + cans.font = '15px Vedana' + cans.fillStyle = 'rgba(0, 0, 0, 0.15)' + cans.textAlign = 'left' + cans.textBaseline = 'middle' + cans.fillText(str, can.width / 20, can.height) + } + + const div = document.createElement('div') + div.id = id + div.style.pointerEvents = 'none' + div.style.top = '0px' + div.style.left = '0px' + div.style.position = 'absolute' + div.style.zIndex = '100000000' + div.style.width = document.documentElement.clientWidth + 'px' + div.style.height = document.documentElement.clientHeight + 'px' + div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat' + const el = appendEl + el && el.appendChild(div) + return id + } + + function setWatermark(str: string) { + createWatermark(str) + func = () => { + createWatermark(str) + } + window.addEventListener('resize', func) + } + + return { setWatermark, clear } +} diff --git a/grailed-ui-admin-vue3/src/layout/Layout.vue b/grailed-ui-admin-vue3/src/layout/Layout.vue new file mode 100644 index 0000000..5c43e52 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/Layout.vue @@ -0,0 +1,78 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/AppView.vue b/grailed-ui-admin-vue3/src/layout/components/AppView.vue new file mode 100644 index 0000000..ffdf11f --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/AppView.vue @@ -0,0 +1,61 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/index.ts b/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/index.ts new file mode 100644 index 0000000..93ffe70 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/index.ts @@ -0,0 +1,3 @@ +import Breadcrumb from './src/Breadcrumb.vue' + +export { Breadcrumb } diff --git a/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue b/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue new file mode 100644 index 0000000..de03665 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/Breadcrumb.vue @@ -0,0 +1,128 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts b/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts new file mode 100644 index 0000000..be3d96b --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Breadcrumb/src/helper.ts @@ -0,0 +1,34 @@ +import { pathResolve } from '@/utils/routerHelper' +import type { RouteMeta } from 'vue-router' + +export const filterBreadcrumb = ( + routes: AppRouteRecordRaw[], + parentPath = '' +): AppRouteRecordRaw[] => { + const res: AppRouteRecordRaw[] = [] + + for (const route of routes) { + const meta = route?.meta as RouteMeta + if (meta.hidden && !meta.canTo) { + continue + } + + const data: AppRouteRecordRaw = + !meta.alwaysShow && route.children?.length === 1 + ? { + ...route.children[0], + path: pathResolve(route.path, route.children[0].path) + } + : { ...route } + + data.path = pathResolve(parentPath, data.path) + + if (data.children) { + data.children = filterBreadcrumb(data.children, data.path) + } + if (data) { + res.push(data) + } + } + return res +} diff --git a/grailed-ui-admin-vue3/src/layout/components/Collapse/index.ts b/grailed-ui-admin-vue3/src/layout/components/Collapse/index.ts new file mode 100644 index 0000000..73f65a3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Collapse/index.ts @@ -0,0 +1,3 @@ +import Collapse from './src/Collapse.vue' + +export { Collapse } diff --git a/grailed-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue b/grailed-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue new file mode 100644 index 0000000..ecb6890 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Collapse/src/Collapse.vue @@ -0,0 +1,36 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/ContextMenu/index.ts b/grailed-ui-admin-vue3/src/layout/components/ContextMenu/index.ts new file mode 100644 index 0000000..2a7c1f0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/ContextMenu/index.ts @@ -0,0 +1,10 @@ +import ContextMenu from './src/ContextMenu.vue' +import { ElDropdown } from 'element-plus' +import type { RouteLocationNormalizedLoaded } from 'vue-router' + +export interface ContextMenuExpose { + elDropdownMenuRef: ComponentRef + tagItem: RouteLocationNormalizedLoaded +} + +export { ContextMenu } diff --git a/grailed-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue b/grailed-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue new file mode 100644 index 0000000..90eea4c --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/ContextMenu/src/ContextMenu.vue @@ -0,0 +1,76 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Footer/index.ts b/grailed-ui-admin-vue3/src/layout/components/Footer/index.ts new file mode 100644 index 0000000..bd052e0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Footer/index.ts @@ -0,0 +1,3 @@ +import Footer from './src/Footer.vue' + +export { Footer } diff --git a/grailed-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue b/grailed-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue new file mode 100644 index 0000000..2e1b03a --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Footer/src/Footer.vue @@ -0,0 +1,27 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts b/grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts new file mode 100644 index 0000000..d02e640 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/index.ts @@ -0,0 +1,3 @@ +import LocaleDropdown from './src/LocaleDropdown.vue' + +export { LocaleDropdown } diff --git a/grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue b/grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue new file mode 100644 index 0000000..95132db --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue @@ -0,0 +1,52 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Logo/index.ts b/grailed-ui-admin-vue3/src/layout/components/Logo/index.ts new file mode 100644 index 0000000..1c4224c --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Logo/index.ts @@ -0,0 +1,3 @@ +import Logo from './src/Logo.vue' + +export { Logo } diff --git a/grailed-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue b/grailed-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue new file mode 100644 index 0000000..b0a5517 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Logo/src/Logo.vue @@ -0,0 +1,90 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Menu/index.ts b/grailed-ui-admin-vue3/src/layout/components/Menu/index.ts new file mode 100644 index 0000000..a6ec696 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Menu/index.ts @@ -0,0 +1,3 @@ +import Menu from './src/Menu.vue' + +export { Menu } diff --git a/grailed-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue b/grailed-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue new file mode 100644 index 0000000..51d0c61 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Menu/src/Menu.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx b/grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx new file mode 100644 index 0000000..17a520a --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuItem.tsx @@ -0,0 +1,59 @@ +import { ElSubMenu, ElMenuItem } from 'element-plus' +import type { RouteMeta } from 'vue-router' +import { hasOneShowingChild } from '../helper' +import { isUrl } from '@/utils/is' +import { useRenderMenuTitle } from './useRenderMenuTitle' +import { useDesign } from '@/hooks/web/useDesign' +import { pathResolve } from '@/utils/routerHelper' + +export const useRenderMenuItem = ( + // allRouters: AppRouteRecordRaw[] = [], + menuMode: 'vertical' | 'horizontal' +) => { + const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => { + return routers.map((v) => { + const meta = (v.meta ?? {}) as RouteMeta + if (!meta.hidden) { + const { oneShowingChild, onlyOneChild } = hasOneShowingChild(v.children, v) + const fullPath = isUrl(v.path) ? v.path : pathResolve(parentPath, v.path) // getAllParentPath(allRouters, v.path).join('/') + + const { renderMenuTitle } = useRenderMenuTitle() + + if ( + oneShowingChild && + (!onlyOneChild?.children || onlyOneChild?.noShowingChildren) && + !meta?.alwaysShow + ) { + return ( + + {{ + default: () => renderMenuTitle(onlyOneChild ? onlyOneChild?.meta : meta) + }} + + ) + } else { + const { getPrefixCls } = useDesign() + + const preFixCls = getPrefixCls('menu-popper') + return ( + + {{ + title: () => renderMenuTitle(meta), + default: () => renderMenuItem(v.children!, fullPath) + }} + + ) + } + } + }) + } + + return { + renderMenuItem + } +} diff --git a/grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx b/grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx new file mode 100644 index 0000000..fc30b90 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx @@ -0,0 +1,22 @@ +import type { RouteMeta } from 'vue-router' +import { Icon } from '@/components/Icon' + +export const useRenderMenuTitle = () => { + const renderMenuTitle = (meta: RouteMeta) => { + const { t } = useI18n() + const { title = 'Please set title', icon } = meta + + return icon ? ( + <> + + {t(title as string)} + + ) : ( + {t(title as string)} + ) + } + + return { + renderMenuTitle + } +} diff --git a/grailed-ui-admin-vue3/src/layout/components/Menu/src/helper.ts b/grailed-ui-admin-vue3/src/layout/components/Menu/src/helper.ts new file mode 100644 index 0000000..c26f5f4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Menu/src/helper.ts @@ -0,0 +1,54 @@ +import type { RouteMeta } from 'vue-router' +import { findPath } from '@/utils/tree' + +type OnlyOneChildType = AppRouteRecordRaw & { noShowingChildren?: boolean } + +interface HasOneShowingChild { + oneShowingChild?: boolean + onlyOneChild?: OnlyOneChildType +} + +export const getAllParentPath = (treeData: T[], path: string) => { + const menuList = findPath(treeData, (n) => n.path === path) as AppRouteRecordRaw[] + return (menuList || []).map((item) => item.path) +} + +export const hasOneShowingChild = ( + children: AppRouteRecordRaw[] = [], + parent: AppRouteRecordRaw +): HasOneShowingChild => { + const onlyOneChild = ref() + + const showingChildren = children.filter((v) => { + const meta = (v.meta ?? {}) as RouteMeta + if (meta.hidden) { + return false + } else { + // Temp set(will be used if only has one showing child) + onlyOneChild.value = v + return true + } + }) + + // When there is only one child router, the child router is displayed by default + if (showingChildren.length === 1) { + return { + oneShowingChild: true, + onlyOneChild: unref(onlyOneChild) + } + } + + // Show parent if there are no child router to display + if (!showingChildren.length) { + onlyOneChild.value = { ...parent, path: '', noShowingChildren: true } + return { + oneShowingChild: true, + onlyOneChild: unref(onlyOneChild) + } + } + + return { + oneShowingChild: false, + onlyOneChild: unref(onlyOneChild) + } +} diff --git a/grailed-ui-admin-vue3/src/layout/components/Message/index.ts b/grailed-ui-admin-vue3/src/layout/components/Message/index.ts new file mode 100644 index 0000000..dfe0207 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Message/index.ts @@ -0,0 +1,3 @@ +import Message from './src/Message.vue' + +export { Message } diff --git a/grailed-ui-admin-vue3/src/layout/components/Message/src/Message.vue b/grailed-ui-admin-vue3/src/layout/components/Message/src/Message.vue new file mode 100644 index 0000000..28f796b --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Message/src/Message.vue @@ -0,0 +1,125 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/NotifyAudio/index.ts b/grailed-ui-admin-vue3/src/layout/components/NotifyAudio/index.ts new file mode 100644 index 0000000..9f06d00 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/NotifyAudio/index.ts @@ -0,0 +1,3 @@ +import NotifyAudio from "./src/NotifyAudio.vue"; + +export { NotifyAudio } diff --git a/grailed-ui-admin-vue3/src/layout/components/NotifyAudio/src/NotifyAudio.vue b/grailed-ui-admin-vue3/src/layout/components/NotifyAudio/src/NotifyAudio.vue new file mode 100644 index 0000000..6d8d2dc --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/NotifyAudio/src/NotifyAudio.vue @@ -0,0 +1,117 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Screenfull/index.ts b/grailed-ui-admin-vue3/src/layout/components/Screenfull/index.ts new file mode 100644 index 0000000..faec2d8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Screenfull/index.ts @@ -0,0 +1,3 @@ +import Screenfull from './src/Screenfull.vue' + +export { Screenfull } diff --git a/grailed-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue b/grailed-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue new file mode 100644 index 0000000..4c045f2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Screenfull/src/Screenfull.vue @@ -0,0 +1,32 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Setting/index.ts b/grailed-ui-admin-vue3/src/layout/components/Setting/index.ts new file mode 100644 index 0000000..b64c9ad --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Setting/index.ts @@ -0,0 +1,3 @@ +import Setting from './src/Setting.vue' + +export { Setting } diff --git a/grailed-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue b/grailed-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue new file mode 100644 index 0000000..00d0a8f --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Setting/src/Setting.vue @@ -0,0 +1,299 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue b/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue new file mode 100644 index 0000000..662ac2e --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/ColorRadioPicker.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue b/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue new file mode 100644 index 0000000..edfd661 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/InterfaceDisplay.vue @@ -0,0 +1,224 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue b/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue new file mode 100644 index 0000000..fed4ced --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/Setting/src/components/LayoutRadioPicker.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts b/grailed-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts new file mode 100644 index 0000000..516488d --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/SizeDropdown/index.ts @@ -0,0 +1,3 @@ +import SizeDropdown from './src/SizeDropdown.vue' + +export { SizeDropdown } diff --git a/grailed-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue b/grailed-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue new file mode 100644 index 0000000..3e15224 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/SizeDropdown/src/SizeDropdown.vue @@ -0,0 +1,40 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/TabMenu/index.ts b/grailed-ui-admin-vue3/src/layout/components/TabMenu/index.ts new file mode 100644 index 0000000..b5fd71c --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/TabMenu/index.ts @@ -0,0 +1,3 @@ +import TabMenu from './src/TabMenu.vue' + +export { TabMenu } diff --git a/grailed-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue b/grailed-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue new file mode 100644 index 0000000..061c5a3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/TabMenu/src/TabMenu.vue @@ -0,0 +1,240 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts b/grailed-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts new file mode 100644 index 0000000..cce3932 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/TabMenu/src/helper.ts @@ -0,0 +1,51 @@ +import { getAllParentPath } from '@/layout/components/Menu/src/helper' +import type { RouteMeta } from 'vue-router' +import { isUrl } from '@/utils/is' +import { cloneDeep } from 'lodash-es' + +export type TabMapTypes = { + [key: string]: string[] +} + +export const tabPathMap = reactive({}) + +export const initTabMap = (routes: AppRouteRecordRaw[]) => { + for (const v of routes) { + const meta = (v.meta ?? {}) as RouteMeta + if (!meta?.hidden) { + tabPathMap[v.path] = [] + } + } +} + +export const filterMenusPath = ( + routes: AppRouteRecordRaw[], + allRoutes: AppRouteRecordRaw[] +): AppRouteRecordRaw[] => { + const res: AppRouteRecordRaw[] = [] + for (const v of routes) { + let data: Nullable = null + const meta = (v.meta ?? {}) as RouteMeta + if (!meta.hidden || meta.canTo) { + const allParentPath = getAllParentPath(allRoutes, v.path) + + const fullPath = isUrl(v.path) ? v.path : allParentPath.join('/') + + data = cloneDeep(v) + data.path = fullPath + if (v.children && data) { + data.children = filterMenusPath(v.children, allRoutes) + } + + if (data) { + res.push(data) + } + + if (allParentPath.length && Reflect.has(tabPathMap, allParentPath[0])) { + tabPathMap[allParentPath[0]].push(fullPath) + } + } + } + + return res +} diff --git a/grailed-ui-admin-vue3/src/layout/components/TagsView/index.ts b/grailed-ui-admin-vue3/src/layout/components/TagsView/index.ts new file mode 100644 index 0000000..30e604a --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/TagsView/index.ts @@ -0,0 +1,3 @@ +import TagsView from './src/TagsView.vue' + +export { TagsView } diff --git a/grailed-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue b/grailed-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue new file mode 100644 index 0000000..4770989 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/TagsView/src/TagsView.vue @@ -0,0 +1,585 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts b/grailed-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts new file mode 100644 index 0000000..8c3922f --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/TagsView/src/helper.ts @@ -0,0 +1,25 @@ +import type { RouteMeta, RouteLocationNormalizedLoaded } from 'vue-router' +import { pathResolve } from '@/utils/routerHelper' + +export const filterAffixTags = (routes: AppRouteRecordRaw[], parentPath = '') => { + let tags: RouteLocationNormalizedLoaded[] = [] + routes.forEach((route) => { + const meta = route.meta as RouteMeta + const tagPath = pathResolve(parentPath, route.path) + if (meta?.affix) { + tags.push({ + ...route, + path: tagPath, + fullPath: tagPath + } as RouteLocationNormalizedLoaded) + } + if (route.children) { + const tempTags: RouteLocationNormalizedLoaded[] = filterAffixTags(route.children, tagPath) + if (tempTags.length >= 1) { + tags = [...tags, ...tempTags] + } + } + }) + + return tags +} diff --git a/grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts b/grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts new file mode 100644 index 0000000..823a276 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/index.ts @@ -0,0 +1,3 @@ +import ThemeSwitch from './src/ThemeSwitch.vue' + +export { ThemeSwitch } diff --git a/grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue b/grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue new file mode 100644 index 0000000..8ea26ed --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue @@ -0,0 +1,49 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/ToolHeader.vue b/grailed-ui-admin-vue3/src/layout/components/ToolHeader.vue new file mode 100644 index 0000000..fe84006 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/ToolHeader.vue @@ -0,0 +1,93 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/UserInfo/index.ts b/grailed-ui-admin-vue3/src/layout/components/UserInfo/index.ts new file mode 100644 index 0000000..c3a34ab --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/UserInfo/index.ts @@ -0,0 +1,3 @@ +import UserInfo from './src/UserInfo.vue' + +export { UserInfo } diff --git a/grailed-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue b/grailed-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue new file mode 100644 index 0000000..c5fc9a4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/UserInfo/src/UserInfo.vue @@ -0,0 +1,78 @@ + + + diff --git a/grailed-ui-admin-vue3/src/layout/components/useRenderLayout.tsx b/grailed-ui-admin-vue3/src/layout/components/useRenderLayout.tsx new file mode 100644 index 0000000..46a1e60 --- /dev/null +++ b/grailed-ui-admin-vue3/src/layout/components/useRenderLayout.tsx @@ -0,0 +1,306 @@ +import { computed } from 'vue' +import { useAppStore } from '@/store/modules/app' +import { Menu } from '@/layout/components/Menu' +import { TabMenu } from '@/layout/components/TabMenu' +import { TagsView } from '@/layout/components/TagsView' +import { Logo } from '@/layout/components/Logo' +import AppView from './AppView.vue' +import ToolHeader from './ToolHeader.vue' +import { ElScrollbar } from 'element-plus' +import { useDesign } from '@/hooks/web/useDesign' + +const { getPrefixCls } = useDesign() + +const prefixCls = getPrefixCls('layout') + +const appStore = useAppStore() + +const pageLoading = computed(() => appStore.getPageLoading) + +// 标签页 +const tagsView = computed(() => appStore.getTagsView) + +// 菜单折叠 +const collapse = computed(() => appStore.getCollapse) + +// logo +const logo = computed(() => appStore.logo) + +// 固定头部 +const fixedHeader = computed(() => appStore.getFixedHeader) + +// 是否是移动端 +const mobile = computed(() => appStore.getMobile) + +// 固定菜单 +const fixedMenu = computed(() => appStore.getFixedMenu) + +export const useRenderLayout = () => { + const renderClassic = () => { + return ( + <> +
+ {logo.value ? ( + + ) : undefined} + +
+
+ +
+ + + {tagsView.value ? ( + + ) : undefined} +
+ + +
+
+ + ) + } + + const renderTopLeft = () => { + return ( + <> +
+ {logo.value ? : undefined} + + +
+
+ +
+ + {tagsView.value ? ( + + ) : undefined} + + + +
+
+ + ) + } + + const renderTop = () => { + return ( + <> +
+ {logo.value ? : undefined} + + +
+
+ + {tagsView.value ? ( + + ) : undefined} + + + +
+ + ) + } + + const renderCutMenu = () => { + return ( + <> +
+ {logo.value ? : undefined} + + +
+
+ +
+ + {tagsView.value ? ( + + ) : undefined} + + + +
+
+ + ) + } + + return { + renderClassic, + renderTopLeft, + renderTop, + renderCutMenu + } +} diff --git a/grailed-ui-admin-vue3/src/locales/en.ts b/grailed-ui-admin-vue3/src/locales/en.ts new file mode 100644 index 0000000..0eebbde --- /dev/null +++ b/grailed-ui-admin-vue3/src/locales/en.ts @@ -0,0 +1,447 @@ +export default { + common: { + inputText: 'Please input', + selectText: 'Please select', + startTimeText: 'Start time', + endTimeText: 'End time', + login: 'Login', + required: 'This is required', + loginOut: 'Login out', + document: 'Document', + profile: 'User Center', + reminder: 'Reminder', + loginOutMessage: 'Exit the system?', + back: 'Back', + ok: 'OK', + save: 'Save', + cancel: 'Cancel', + close: 'Close', + reload: 'Reload current', + success: 'Success', + closeTab: 'Close current', + closeTheLeftTab: 'Close left', + closeTheRightTab: 'Close right', + closeOther: 'Close other', + closeAll: 'Close all', + prevLabel: 'Prev', + nextLabel: 'Next', + skipLabel: 'Jump', + doneLabel: 'End', + menu: 'Menu', + menuDes: 'Menu bar rendered in routed structure', + collapse: 'Collapse', + collapseDes: 'Expand and zoom the menu bar', + tagsView: 'Tags view', + tagsViewDes: 'Used to record routing history', + tool: 'Tool', + toolDes: 'Used to set up custom systems', + query: 'Query', + reset: 'Reset', + shrink: 'Put away', + expand: 'Expand', + confirmTitle: 'System Hint', + exportMessage: 'Whether to confirm export data item?', + importMessage: 'Whether to confirm import data item?', + createSuccess: 'Create Success', + updateSuccess: 'Update Success', + delMessage: 'Delete the selected data?', + delDataMessage: 'Delete the data?', + delNoData: 'Please select the data to delete', + delSuccess: 'Deleted successfully', + index: 'Index', + status: 'Status', + createTime: 'Create Time', + updateTime: 'Update Time', + copy: 'Copy', + copySuccess: 'Copy Success', + copyError: 'Copy Error' + }, + error: { + noPermission: `Sorry, you don't have permission to access this page.`, + pageError: 'Sorry, the page you visited does not exist.', + networkError: 'Sorry, the server reported an error.', + returnToHome: 'Return to home' + }, + permission: { + hasPermission: `Please set the operation permission label value`, + hasRole: `Please set the role permission tag value` + }, + setting: { + projectSetting: 'Project setting', + theme: 'Theme', + layout: 'Layout', + systemTheme: 'System theme', + menuTheme: 'Menu theme', + interfaceDisplay: 'Interface display', + breadcrumb: 'Breadcrumb', + breadcrumbIcon: 'Breadcrumb icon', + collapseMenu: 'Collapse menu', + hamburgerIcon: 'Hamburger icon', + screenfullIcon: 'Screenfull icon', + sizeIcon: 'Size icon', + localeIcon: 'Locale icon', + messageIcon: 'Message icon', + tagsView: 'Tags view', + logo: 'Logo', + greyMode: 'Grey mode', + fixedHeader: 'Fixed header', + headerTheme: 'Header theme', + cutMenu: 'Cut Menu', + copy: 'Copy', + clearAndReset: 'Clear cache and reset', + copySuccess: 'Copy success', + copyFailed: 'Copy failed', + footer: 'Footer', + uniqueOpened: 'Unique opened', + tagsViewIcon: 'Tags view icon', + reExperienced: 'Please exit the login experience again', + fixedMenu: 'Fixed menu' + }, + size: { + default: 'Default', + large: 'Large', + small: 'Small' + }, + login: { + welcome: 'Welcome to the system', + message: '', + tenantname: 'TenantName', + username: 'Username', + password: 'Password', + code: 'verification code', + login: 'Sign in', + relogin: 'Sign in again', + otherLogin: 'Sign in with', + register: 'Register', + checkPassword: 'Confirm password', + remember: 'Remember me', + hasUser: 'Existing account? Go to login', + forgetPassword: 'Forget password?', + tenantNamePlaceholder: 'Please Enter Tenant Name', + usernamePlaceholder: 'Please Enter Username', + passwordPlaceholder: 'Please Enter Password', + codePlaceholder: 'Please Enter Verification Code', + mobileTitle: 'Mobile sign in', + mobileNumber: 'Mobile Number', + mobileNumberPlaceholder: 'Plaease Enter Mobile Number', + backLogin: 'back', + getSmsCode: 'Get SMS Code', + btnMobile: 'Mobile sign in', + btnQRCode: 'QR code sign in', + qrcode: 'Scan the QR code to log in', + btnRegister: 'Sign up', + SmsSendMsg: 'code has been sent' + }, + captcha: { + verification: 'Please complete security verification', + slide: 'Swipe right to complete verification', + point: 'Please click', + success: 'Verification succeeded', + fail: 'verification failed' + }, + router: { + login: 'Login', + home: 'Home', + analysis: 'Analysis', + workplace: 'Workplace' + }, + analysis: { + newUser: 'New user', + unreadInformation: 'Unread information', + transactionAmount: 'Transaction amount', + totalShopping: 'Total Shopping', + monthlySales: 'Monthly sales', + userAccessSource: 'User access source', + january: 'January', + february: 'February', + march: 'March', + april: 'April', + may: 'May', + june: 'June', + july: 'July', + august: 'August', + september: 'September', + october: 'October', + november: 'November', + december: 'December', + estimate: 'Estimate', + actual: 'Actual', + directAccess: 'Airect access', + mailMarketing: 'Mail marketing', + allianceAdvertising: 'Alliance advertising', + videoAdvertising: 'Video advertising', + searchEngines: 'Search engines', + weeklyUserActivity: 'Weekly user activity', + activeQuantity: 'Active quantity', + monday: 'Monday', + tuesday: 'Tuesday', + wednesday: 'Wednesday', + thursday: 'Thursday', + friday: 'Friday', + saturday: 'Saturday', + sunday: 'Sunday' + }, + workplace: { + welcome: 'Hello', + happyDay: 'Wish you happy every day!', + toady: `It's sunny today`, + notice: 'Announcement', + project: 'Project', + access: 'Project access', + toDo: 'To do', + introduction: 'A serious introduction', + shortcutOperation: 'Quick entry', + operation: 'Operation', + index: 'Index', + personal: 'Personal', + team: 'Team', + quote: 'Quote', + contribution: 'Contribution', + hot: 'Hot', + yield: 'Yield', + dynamic: 'Dynamic', + push: 'push', + follow: 'Follow' + }, + form: { + input: 'Input', + inputNumber: 'InputNumber', + default: 'Default', + icon: 'Icon', + mixed: 'Mixed', + textarea: 'Textarea', + slot: 'Slot', + position: 'Position', + autocomplete: 'Autocomplete', + select: 'Select', + selectGroup: 'Select Group', + selectV2: 'SelectV2', + cascader: 'Cascader', + switch: 'Switch', + rate: 'Rate', + colorPicker: 'Color Picker', + transfer: 'Transfer', + render: 'Render', + radio: 'Radio', + button: 'Button', + checkbox: 'Checkbox', + slider: 'Slider', + datePicker: 'Date Picker', + shortcuts: 'Shortcuts', + today: 'Today', + yesterday: 'Yesterday', + aWeekAgo: 'A week ago', + week: 'Week', + year: 'Year', + month: 'Month', + dates: 'Dates', + daterange: 'Date Range', + monthrange: 'Month Range', + dateTimePicker: 'DateTimePicker', + dateTimerange: 'Datetime Range', + timePicker: 'Time Picker', + timeSelect: 'Time Select', + inputPassword: 'input Password', + passwordStrength: 'Password Strength', + operate: 'operate', + change: 'Change', + restore: 'Restore', + disabled: 'Disabled', + disablement: 'Disablement', + delete: 'Delete', + add: 'Add', + setValue: 'Set value', + resetValue: 'Reset value', + set: 'Set', + subitem: 'Subitem', + formValidation: 'Form validation', + verifyReset: 'Verify reset', + remark: 'Remark' + }, + watermark: { + watermark: 'Watermark' + }, + table: { + table: 'Table', + index: 'Index', + title: 'Title', + author: 'Author', + createTime: 'Create time', + action: 'Action', + pagination: 'pagination', + reserveIndex: 'Reserve index', + restoreIndex: 'Restore index', + showSelections: 'Show selections', + hiddenSelections: 'Restore selections', + showExpandedRows: 'Show expanded rows', + hiddenExpandedRows: 'Hidden expanded rows', + header: 'Header' + }, + action: { + create: 'Create', + add: 'Add', + del: 'Delete', + delete: 'Delete', + edit: 'Edit', + update: 'Update', + preview: 'Preview', + more: 'More', + sync: 'Sync', + save: 'Save', + detail: 'Detail', + export: 'Export', + import: 'Import', + generate: 'Generate', + logout: 'Login Out', + test: 'Test', + typeCreate: 'Dict Type Create', + typeUpdate: 'Dict Type Eidt', + dataCreate: 'Dict Data Create', + dataUpdate: 'Dict Data Eidt', + fileUpload: 'File Upload' + }, + dialog: { + dialog: 'Dialog', + open: 'Open', + close: 'Close' + }, + sys: { + api: { + operationFailed: 'Operation failed', + errorTip: 'Error Tip', + errorMessage: 'The operation failed, the system is abnormal!', + timeoutMessage: 'Login timed out, please log in again!', + apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!', + apiRequestFailed: 'The interface request failed, please try again later!', + networkException: 'network anomaly', + networkExceptionMsg: + 'Please check if your network connection is normal! The network is abnormal', + + errMsg401: 'The user does not have permission (token, user name, password error)!', + errMsg403: 'The user is authorized, but access is forbidden!', + errMsg404: 'Network request error, the resource was not found!', + errMsg405: 'Network request error, request method not allowed!', + errMsg408: 'Network request timed out!', + errMsg500: 'Server error, please contact the administrator!', + errMsg501: 'The network is not implemented!', + errMsg502: 'Network Error!', + errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!', + errMsg504: 'Network timeout!', + errMsg505: 'The http version does not support the request!', + errMsg901: 'Demo mode, no write operations are possible!' + }, + app: { + logoutTip: 'Reminder', + logoutMessage: 'Confirm to exit the system?', + menuLoading: 'Menu loading...' + }, + exception: { + backLogin: 'Back Login', + backHome: 'Back Home', + subTitle403: "Sorry, you don't have access to this page.", + subTitle404: 'Sorry, the page you visited does not exist.', + subTitle500: 'Sorry, the server is reporting an error.', + noDataTitle: 'No data on the current page.', + networkErrorTitle: 'Network Error', + networkErrorSubTitle: + 'Sorry, Your network connection has been disconnected, please check your network!' + }, + lock: { + unlock: 'Click to unlock', + alert: 'Lock screen password error', + backToLogin: 'Back to login', + entry: 'Enter the system', + placeholder: 'Please enter the lock screen password or user password' + }, + login: { + backSignIn: 'Back sign in', + mobileSignInFormTitle: 'Mobile sign in', + qrSignInFormTitle: 'Qr code sign in', + signInFormTitle: 'Sign in', + signUpFormTitle: 'Sign up', + forgetFormTitle: 'Reset password', + + signInTitle: 'Backstage management system', + signInDesc: 'Enter your personal details and get started!', + policy: 'I agree to the xxx Privacy Policy', + scanSign: `scanning the code to complete the login`, + + loginButton: 'Sign in', + registerButton: 'Sign up', + rememberMe: 'Remember me', + forgetPassword: 'Forget Password?', + otherSignIn: 'Sign in with', + + // notify + loginSuccessTitle: 'Login successful', + loginSuccessDesc: 'Welcome back', + + // placeholder + accountPlaceholder: 'Please input username', + passwordPlaceholder: 'Please input password', + smsPlaceholder: 'Please input sms code', + mobilePlaceholder: 'Please input mobile', + policyPlaceholder: 'Register after checking', + diffPwd: 'The two passwords are inconsistent', + + userName: 'Username', + password: 'Password', + confirmPassword: 'Confirm Password', + email: 'Email', + smsCode: 'SMS code', + mobile: 'Mobile' + } + }, + profile: { + user: { + title: 'Personal Information', + username: 'User Name', + nickname: 'Nick Name', + mobile: 'Phone Number', + email: 'User Mail', + dept: 'Department', + posts: 'Position', + roles: 'Own Role', + sex: 'Sex', + man: 'Man', + woman: 'Woman', + createTime: 'Created Date' + }, + info: { + title: 'Basic Information', + basicInfo: 'Basic Information', + resetPwd: 'Reset Password', + userSocial: 'Social Information' + }, + rules: { + nickname: 'Please Enter User Nickname', + mail: 'Please Input The Email Address', + truemail: 'Please Input The Correct Email Address', + phone: 'Please Enter The Phone Number', + truephone: 'Please Enter The Correct Phone Number' + }, + password: { + oldPassword: 'Old PassWord', + newPassword: 'New Password', + confirmPassword: 'Confirm Password', + oldPwdMsg: 'Please Enter Old Password', + newPwdMsg: 'Please Enter New Password', + cfPwdMsg: 'Please Enter Confirm Password', + diffPwd: 'The Passwords Entered Twice No Match' + } + }, + cropper: { + selectImage: 'Select Image', + uploadSuccess: 'Uploaded success!', + modalTitle: 'Avatar upload', + okText: 'Confirm and upload', + btn_reset: 'Reset', + btn_rotate_left: 'Counterclockwise rotation', + btn_rotate_right: 'Clockwise rotation', + btn_scale_x: 'Flip horizontal', + btn_scale_y: 'Flip vertical', + btn_zoom_in: 'Zoom in', + btn_zoom_out: 'Zoom out', + preview: 'Preivew' + } +} diff --git a/grailed-ui-admin-vue3/src/locales/zh-CN.ts b/grailed-ui-admin-vue3/src/locales/zh-CN.ts new file mode 100644 index 0000000..ac6cc37 --- /dev/null +++ b/grailed-ui-admin-vue3/src/locales/zh-CN.ts @@ -0,0 +1,455 @@ +export default { + common: { + inputText: '请输入', + selectText: '请选择', + startTimeText: '开始时间', + endTimeText: '结束时间', + login: '登录', + required: '该项为必填项', + loginOut: '退出系统', + document: '项目文档', + profile: '个人中心', + reminder: '温馨提示', + loginOutMessage: '是否退出本系统?', + back: '返回', + ok: '确定', + save: '保存', + cancel: '取消', + close: '关闭', + reload: '重新加载', + success: '成功', + closeTab: '关闭标签页', + closeTheLeftTab: '关闭左侧标签页', + closeTheRightTab: '关闭右侧标签页', + closeOther: '关闭其他标签页', + closeAll: '关闭全部标签页', + prevLabel: '上一步', + nextLabel: '下一步', + skipLabel: '跳过', + doneLabel: '结束', + menu: '菜单', + menuDes: '以路由的结构渲染的菜单栏', + collapse: '展开缩收', + collapseDes: '展开和缩放菜单栏', + tagsView: '标签页', + tagsViewDes: '用于记录路由历史记录', + tool: '工具', + toolDes: '用于设置定制系统', + query: '查询', + reset: '重置', + shrink: '收起', + expand: '展开', + confirmTitle: '系统提示', + exportMessage: '是否确认导出数据项?', + importMessage: '是否确认导入数据项?', + createSuccess: '新增成功', + updateSuccess: '修改成功', + delMessage: '是否删除所选中数据?', + delDataMessage: '是否删除数据?', + delNoData: '请选择需要删除的数据', + delSuccess: '删除成功', + index: '序号', + status: '状态', + createTime: '创建时间', + updateTime: '更新时间', + copy: '复制', + copySuccess: '复制成功', + copyError: '复制失败' + }, + error: { + noPermission: `抱歉,您无权访问此页面。`, + pageError: '抱歉,您访问的页面不存在。', + networkError: '抱歉,服务器报告错误。', + returnToHome: '返回首页' + }, + permission: { + hasPermission: `请设置操作权限标签值`, + hasRole: `请设置角色权限标签值` + }, + setting: { + projectSetting: '项目配置', + theme: '主题', + layout: '布局', + systemTheme: '系统主题', + menuTheme: '菜单主题', + interfaceDisplay: '界面显示', + breadcrumb: '面包屑', + breadcrumbIcon: '面包屑图标', + collapseMenu: '折叠菜单', + hamburgerIcon: '折叠图标', + screenfullIcon: '全屏图标', + sizeIcon: '尺寸图标', + localeIcon: '多语言图标', + messageIcon: '消息图标', + tagsView: '标签页', + logo: '标志', + greyMode: '灰色模式', + fixedHeader: '固定头部', + headerTheme: '头部主题', + cutMenu: '切割菜单', + copy: '拷贝', + clearAndReset: '清除缓存并且重置', + copySuccess: '拷贝成功', + copyFailed: '拷贝失败', + footer: '页脚', + uniqueOpened: '菜单手风琴', + tagsViewIcon: '标签页图标', + reExperienced: '请重新退出登录体验', + fixedMenu: '固定菜单' + }, + size: { + default: '默认', + large: '大', + small: '小' + }, + login: { + welcome: '欢迎使用本系统', + message: '', + tenantname: '租户名称', + username: '用户名', + password: '密码', + code: '验证码', + login: '登录', + relogin: '重新登录', + otherLogin: '其他登录方式', + register: '注册', + checkPassword: '确认密码', + remember: '记住我', + hasUser: '已有账号?去登录', + forgetPassword: '忘记密码?', + tenantNamePlaceholder: '请输入租户名称', + usernamePlaceholder: '请输入用户名', + passwordPlaceholder: '请输入密码', + codePlaceholder: '请输入验证码', + mobileTitle: '手机登录', + mobileNumber: '手机号码', + mobileNumberPlaceholder: '请输入手机号码', + backLogin: '返回', + getSmsCode: '获取验证码', + btnMobile: '手机登录', + btnQRCode: '二维码登录', + qrcode: '扫描二维码登录', + btnRegister: '注册', + SmsSendMsg: '验证码已发送' + }, + captcha: { + verification: '请完成安全验证', + slide: '向右滑动完成验证', + point: '请依次点击', + success: '验证成功', + fail: '验证失败' + }, + router: { + login: '登录', + home: '首页', + analysis: '分析页', + workplace: '工作台' + }, + analysis: { + newUser: '新增用户', + unreadInformation: '未读消息', + transactionAmount: '成交金额', + totalShopping: '购物总量', + monthlySales: '每月销售额', + userAccessSource: '用户访问来源', + january: '一月', + february: '二月', + march: '三月', + april: '四月', + may: '五月', + june: '六月', + july: '七月', + august: '八月', + september: '九月', + october: '十月', + november: '十一月', + december: '十二月', + estimate: '预计', + actual: '实际', + directAccess: '直接访问', + mailMarketing: '邮件营销', + allianceAdvertising: '联盟广告', + videoAdvertising: '视频广告', + searchEngines: '搜索引擎', + weeklyUserActivity: '每周用户活跃量', + activeQuantity: '活跃量', + monday: '周一', + tuesday: '周二', + wednesday: '周三', + thursday: '周四', + friday: '周五', + saturday: '周六', + sunday: '周日' + }, + workplace: { + welcome: '你好', + happyDay: '祝你开心每一天!', + toady: '今日晴', + notice: '通知公告', + project: '项目数', + access: '项目访问', + toDo: '待办', + introduction: '一个正经的简介', + shortcutOperation: '快捷入口', + operation: '操作', + index: '指数', + personal: '个人', + team: '团队', + quote: '引用', + contribution: '贡献', + hot: '热度', + yield: '产量', + dynamic: '动态', + push: '推送', + follow: '关注' + }, + form: { + input: '输入框', + inputNumber: '数字输入框', + default: '默认', + icon: '图标', + mixed: '复合型', + textarea: '多行文本', + slot: '插槽', + position: '位置', + autocomplete: '自动补全', + select: '选择器', + selectGroup: '选项分组', + selectV2: '虚拟列表选择器', + cascader: '级联选择器', + switch: '开关', + rate: '评分', + colorPicker: '颜色选择器', + transfer: '穿梭框', + render: '渲染器', + radio: '单选框', + button: '按钮', + checkbox: '多选框', + slider: '滑块', + datePicker: '日期选择器', + shortcuts: '快捷选项', + today: '今天', + yesterday: '昨天', + aWeekAgo: '一周前', + week: '周', + year: '年', + month: '月', + dates: '日期', + daterange: '日期范围', + monthrange: '月份范围', + dateTimePicker: '日期时间选择器', + dateTimerange: '日期时间范围', + timePicker: '时间选择器', + timeSelect: '时间选择', + inputPassword: '密码输入框', + passwordStrength: '密码强度', + operate: '操作', + change: '更改', + restore: '还原', + disabled: '禁用', + disablement: '解除禁用', + delete: '删除', + add: '添加', + setValue: '设置值', + resetValue: '重置值', + set: '设置', + subitem: '子项', + formValidation: '表单验证', + verifyReset: '验证重置', + remark: '备注' + }, + watermark: { + watermark: '水印' + }, + table: { + table: '表格', + index: '序号', + title: '标题', + author: '作者', + createTime: '创建时间', + action: '操作', + pagination: '分页', + reserveIndex: '叠加序号', + restoreIndex: '还原序号', + showSelections: '显示多选', + hiddenSelections: '隐藏多选', + showExpandedRows: '显示展开行', + hiddenExpandedRows: '隐藏展开行', + header: '头部' + }, + action: { + create: '新增', + add: '新增', + del: '删除', + delete: '删除', + edit: '编辑', + record: '编辑', + update: '编辑', + preview: '预览', + more: '更多', + sync: '同步', + save: '保存', + detail: '详情', + export: '导出', + import: '导入', + generate: '生成', + logout: '强制退出', + test: '测试', + typeCreate: '字典类型新增', + typeUpdate: '字典类型编辑', + dataCreate: '字典数据新增', + dataUpdate: '字典数据编辑' + }, + dialog: { + dialog: '弹窗', + open: '打开', + close: '关闭' + }, + sys: { + api: { + operationFailed: '操作失败', + errorTip: '错误提示', + errorMessage: '操作失败,系统异常!', + timeoutMessage: '登录超时,请重新登录!', + apiTimeoutMessage: '接口请求超时,请刷新页面重试!', + apiRequestFailed: '请求出错,请稍候重试', + networkException: '网络异常', + networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!', + errMsg401: '用户没有权限(令牌、用户名、密码错误)!', + errMsg403: '用户得到授权,但是访问是被禁止的。!', + errMsg404: '网络请求错误,未找到该资源!', + errMsg405: '网络请求错误,请求方法未允许!', + errMsg408: '网络请求超时!', + errMsg500: '服务器错误,请联系管理员!', + errMsg501: '网络未实现!', + errMsg502: '网络错误!', + errMsg503: '服务不可用,服务器暂时过载或维护!', + errMsg504: '网络超时!', + errMsg505: 'http版本不支持该请求!', + errMsg901: '演示模式,无法进行写操作!' + }, + app: { + logoutTip: '温馨提醒', + logoutMessage: '是否确认退出系统?', + menuLoading: '菜单加载中...' + }, + exception: { + backLogin: '返回登录', + backHome: '返回首页', + subTitle403: '抱歉,您无权访问此页面。', + subTitle404: '抱歉,您访问的页面不存在。', + subTitle500: '抱歉,服务器报告错误。', + noDataTitle: '当前页无数据', + networkErrorTitle: '网络错误', + networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!' + }, + lock: { + unlock: '点击解锁', + alert: '锁屏密码错误', + backToLogin: '返回登录', + entry: '进入系统', + placeholder: '请输入锁屏密码或者用户密码' + }, + login: { + backSignIn: '返回', + signInFormTitle: '登录', + ssoFormTitle: '三方授权', + mobileSignInFormTitle: '手机登录', + qrSignInFormTitle: '二维码登录', + signUpFormTitle: '注册', + forgetFormTitle: '重置密码', + signInTitle: '开箱即用的中后台管理系统', + signInDesc: '输入您的个人详细信息开始使用!', + policy: '我同意xxx隐私政策', + scanSign: `扫码后点击"确认",即可完成登录`, + loginButton: '登录', + registerButton: '注册', + rememberMe: '记住我', + forgetPassword: '忘记密码?', + otherSignIn: '其他登录方式', + // notify + loginSuccessTitle: '登录成功', + loginSuccessDesc: '欢迎回来', + // placeholder + accountPlaceholder: '请输入账号', + passwordPlaceholder: '请输入密码', + smsPlaceholder: '请输入验证码', + mobilePlaceholder: '请输入手机号码', + policyPlaceholder: '勾选后才能注册', + diffPwd: '两次输入密码不一致', + userName: '账号', + password: '密码', + confirmPassword: '确认密码', + email: '邮箱', + smsCode: '短信验证码', + mobile: '手机号码' + } + }, + profile: { + user: { + title: '个人信息', + username: '用户名称', + nickname: '用户昵称', + mobile: '手机号码', + email: '用户邮箱', + dept: '所属部门', + posts: '所属岗位', + roles: '所属角色', + sex: '性别', + man: '男', + woman: '女', + createTime: '创建日期' + }, + info: { + title: '基本信息', + basicInfo: '基本资料', + resetPwd: '修改密码', + userSocial: '社交信息' + }, + rules: { + nickname: '请输入用户昵称', + mail: '请输入邮箱地址', + truemail: '请输入正确的邮箱地址', + phone: '请输入正确的手机号码', + truephone: '请输入正确的手机号码' + }, + password: { + oldPassword: '旧密码', + newPassword: '新密码', + confirmPassword: '确认密码', + oldPwdMsg: '请输入旧密码', + newPwdMsg: '请输入新密码', + cfPwdMsg: '请输入确认密码', + pwdRules: '长度在 6 到 20 个字符', + diffPwd: '两次输入密码不一致' + } + }, + cropper: { + selectImage: '选择图片', + uploadSuccess: '上传成功', + modalTitle: '头像上传', + okText: '确认并上传', + btn_reset: '重置', + btn_rotate_left: '逆时针旋转', + btn_rotate_right: '顺时针旋转', + btn_scale_x: '水平翻转', + btn_scale_y: '垂直翻转', + btn_zoom_in: '放大', + btn_zoom_out: '缩小', + preview: '预览' + }, + member: { + taskRecord : { + table : '任务记录', + }, + balanceRecord : { + table: '余额记录' + }, + combinationConfig : { + table: '连单设置' + }, + customTask: { + table: '修改当日单数' + } + } +} diff --git a/grailed-ui-admin-vue3/src/main.ts b/grailed-ui-admin-vue3/src/main.ts new file mode 100644 index 0000000..d45d5cb --- /dev/null +++ b/grailed-ui-admin-vue3/src/main.ts @@ -0,0 +1,71 @@ +// 引入unocss css +import '@/plugins/unocss' + +// 导入全局的svg图标 +import '@/plugins/svgIcon' + +// 初始化多语言 +import { setupI18n } from '@/plugins/vueI18n' + +// 引入状态管理 +import { setupStore } from '@/store' + +// 全局组件 +import { setupGlobCom } from '@/components' + +// 引入 element-plus +import { setupElementPlus } from '@/plugins/elementPlus' + +// 引入 form-create +import { setupFormCreate } from '@/plugins/formCreate' + +// 引入全局样式 +import '@/styles/index.scss' + +// 引入动画 +import '@/plugins/animate.css' + +// 路由 +import router, { setupRouter } from '@/router' + +// 权限 +import { setupAuth } from '@/directives' + +import { createApp } from 'vue' + +import App from './App.vue' + +import './permission' + +import Logger from '@/utils/Logger' + +import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患 + +// 创建实例 +const setupAll = async () => { + const app = createApp(App) + + await setupI18n(app) + + setupStore(app) + + setupGlobCom(app) + + setupElementPlus(app) + + setupFormCreate(app) + + setupRouter(app) + + setupAuth(app) + + await router.isReady() + + app.use(VueDOMPurifyHTML) + + app.mount('#app') +} + +setupAll() + +Logger.prettyPrimary(`欢迎使用`, import.meta.env.VITE_APP_TITLE) diff --git a/grailed-ui-admin-vue3/src/permission.ts b/grailed-ui-admin-vue3/src/permission.ts new file mode 100644 index 0000000..0698dc8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/permission.ts @@ -0,0 +1,70 @@ +import router from './router' +import type { RouteRecordRaw } from 'vue-router' +import { isRelogin } from '@/config/axios/service' +import { getAccessToken } from '@/utils/auth' +import { useTitle } from '@/hooks/web/useTitle' +import { useNProgress } from '@/hooks/web/useNProgress' +import { usePageLoading } from '@/hooks/web/usePageLoading' +import { useDictStoreWithOut } from '@/store/modules/dict' +import { useUserStoreWithOut } from '@/store/modules/user' +import { usePermissionStoreWithOut } from '@/store/modules/permission' + +const { start, done } = useNProgress() + +const { loadStart, loadDone } = usePageLoading() +// 路由不重定向白名单 +const whiteList = [ + '/login', + '/social-login', + '/auth-redirect', + '/bind', + '/register', + '/oauthLogin/gitee' +] + +// 路由加载前 +router.beforeEach(async (to, from, next) => { + start() + loadStart() + if (getAccessToken()) { + if (to.path === '/login') { + next({ path: '/' }) + } else { + // 获取所有字典 + const dictStore = useDictStoreWithOut() + const userStore = useUserStoreWithOut() + const permissionStore = usePermissionStoreWithOut() + if (!dictStore.getIsSetDict) { + await dictStore.setDictMap() + } + if (!userStore.getIsSetUser) { + isRelogin.show = true + await userStore.setUserInfoAction() + isRelogin.show = false + // 后端过滤菜单 + await permissionStore.generateRoutes() + permissionStore.getAddRouters.forEach((route) => { + router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表 + }) + const redirectPath = from.query.redirect || to.path + const redirect = decodeURIComponent(redirectPath as string) + const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect } + next(nextData) + } else { + next() + } + } + } else { + if (whiteList.indexOf(to.path) !== -1) { + next() + } else { + next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 + } + } +}) + +router.afterEach((to) => { + useTitle(to?.meta?.title as string) + done() // 结束Progress + loadDone() +}) diff --git a/grailed-ui-admin-vue3/src/plugins/animate.css/index.ts b/grailed-ui-admin-vue3/src/plugins/animate.css/index.ts new file mode 100644 index 0000000..3e93451 --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/animate.css/index.ts @@ -0,0 +1 @@ +import 'animate.css' diff --git a/grailed-ui-admin-vue3/src/plugins/echarts/index.ts b/grailed-ui-admin-vue3/src/plugins/echarts/index.ts new file mode 100644 index 0000000..bfccbb4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/echarts/index.ts @@ -0,0 +1,45 @@ +import * as echarts from 'echarts/core' + +import { + BarChart, + LineChart, + PieChart, + MapChart, + PictorialBarChart, + RadarChart, + GaugeChart +} from 'echarts/charts' + +import { + TitleComponent, + TooltipComponent, + GridComponent, + PolarComponent, + AriaComponent, + ParallelComponent, + LegendComponent, + ToolboxComponent +} from 'echarts/components' + +import { CanvasRenderer } from 'echarts/renderers' + +echarts.use([ + LegendComponent, + TitleComponent, + TooltipComponent, + ToolboxComponent, + GridComponent, + PolarComponent, + AriaComponent, + ParallelComponent, + BarChart, + LineChart, + PieChart, + MapChart, + CanvasRenderer, + PictorialBarChart, + RadarChart, + GaugeChart +]) + +export default echarts diff --git a/grailed-ui-admin-vue3/src/plugins/elementPlus/index.ts b/grailed-ui-admin-vue3/src/plugins/elementPlus/index.ts new file mode 100644 index 0000000..0ae2a8b --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/elementPlus/index.ts @@ -0,0 +1,17 @@ +import type { App } from 'vue' +// 需要全局引入一些组件,如ElScrollbar,不然一些下拉项样式有问题 +import { ElLoading, ElScrollbar, ElButton } from 'element-plus' + +const plugins = [ElLoading] + +const components = [ElScrollbar, ElButton] + +export const setupElementPlus = (app: App) => { + plugins.forEach((plugin) => { + app.use(plugin) + }) + + components.forEach((component) => { + app.component(component.name, component) + }) +} diff --git a/grailed-ui-admin-vue3/src/plugins/formCreate/index.ts b/grailed-ui-admin-vue3/src/plugins/formCreate/index.ts new file mode 100644 index 0000000..a6cb821 --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/formCreate/index.ts @@ -0,0 +1,43 @@ +import type { App } from 'vue' +// 👇使用 form-create 需额外全局引入 element plus 组件 +import { + ElAside, + ElPopconfirm, + ElHeader, + ElMain, + ElContainer, + ElDivider, + ElTransfer, + ElAlert, + ElTabs, + ElTable, + ElTableColumn, + ElTabPane +} from 'element-plus' + +import formCreate from '@form-create/element-ui' +import install from '@form-create/element-ui/auto-import' + +const components = [ + ElAside, + ElPopconfirm, + ElHeader, + ElMain, + ElContainer, + ElDivider, + ElTransfer, + ElAlert, + ElTabs, + ElTable, + ElTableColumn, + ElTabPane +] + +// 参考 http://www.form-create.com/v3/element-ui/auto-import.html 文档 +export const setupFormCreate = (app: App) => { + components.forEach((component) => { + app.component(component.name, component) + }) + formCreate.use(install) + app.use(formCreate) +} diff --git a/grailed-ui-admin-vue3/src/plugins/svgIcon/index.ts b/grailed-ui-admin-vue3/src/plugins/svgIcon/index.ts new file mode 100644 index 0000000..b5b7f70 --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/svgIcon/index.ts @@ -0,0 +1,3 @@ +import 'virtual:svg-icons-register' + +import '@purge-icons/generated' diff --git a/grailed-ui-admin-vue3/src/plugins/unocss/index.ts b/grailed-ui-admin-vue3/src/plugins/unocss/index.ts new file mode 100644 index 0000000..d366b5a --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/unocss/index.ts @@ -0,0 +1 @@ +import 'virtual:uno.css' diff --git a/grailed-ui-admin-vue3/src/plugins/vueI18n/helper.ts b/grailed-ui-admin-vue3/src/plugins/vueI18n/helper.ts new file mode 100644 index 0000000..da6bc8c --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/vueI18n/helper.ts @@ -0,0 +1,3 @@ +export const setHtmlPageLang = (locale: LocaleType) => { + document.querySelector('html')?.setAttribute('lang', locale) +} diff --git a/grailed-ui-admin-vue3/src/plugins/vueI18n/index.ts b/grailed-ui-admin-vue3/src/plugins/vueI18n/index.ts new file mode 100644 index 0000000..f845b13 --- /dev/null +++ b/grailed-ui-admin-vue3/src/plugins/vueI18n/index.ts @@ -0,0 +1,42 @@ +import type { App } from 'vue' +import { createI18n } from 'vue-i18n' +import { useLocaleStoreWithOut } from '@/store/modules/locale' +import type { I18n, I18nOptions } from 'vue-i18n' +import { setHtmlPageLang } from './helper' + +export let i18n: ReturnType + +const createI18nOptions = async (): Promise => { + const localeStore = useLocaleStoreWithOut() + const locale = localeStore.getCurrentLocale + const localeMap = localeStore.getLocaleMap + const defaultLocal = await import(`../../locales/${locale.lang}.ts`) + const message = defaultLocal.default ?? {} + + setHtmlPageLang(locale.lang) + + localeStore.setCurrentLocale({ + lang: locale.lang + // elLocale: elLocal + }) + + return { + legacy: false, + locale: locale.lang, + fallbackLocale: locale.lang, + messages: { + [locale.lang]: message + }, + availableLocales: localeMap.map((v) => v.lang), + sync: true, + silentTranslationWarn: true, + missingWarn: false, + silentFallbackWarn: true + } +} + +export const setupI18n = async (app: App) => { + const options = await createI18nOptions() + i18n = createI18n(options) as I18n + app.use(i18n) +} diff --git a/grailed-ui-admin-vue3/src/router/index.ts b/grailed-ui-admin-vue3/src/router/index.ts new file mode 100644 index 0000000..8f66ca3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/router/index.ts @@ -0,0 +1,28 @@ +import type { App } from 'vue' +import type { RouteRecordRaw } from 'vue-router' +import { createRouter, createWebHistory } from 'vue-router' +import remainingRouter from './modules/remaining' + +// 创建路由实例 +const router = createRouter({ + history: createWebHistory(), // createWebHashHistory URL带#,createWebHistory URL不带# + strict: true, + routes: remainingRouter as RouteRecordRaw[], + scrollBehavior: () => ({ left: 0, top: 0 }) +}) + +export const resetRouter = (): void => { + const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root'] + router.getRoutes().forEach((route) => { + const { name } = route + if (name && !resetWhiteNameList.includes(name as string)) { + router.hasRoute(name) && router.removeRoute(name) + } + }) +} + +export const setupRouter = (app: App) => { + app.use(router) +} + +export default router diff --git a/grailed-ui-admin-vue3/src/router/modules/remaining.ts b/grailed-ui-admin-vue3/src/router/modules/remaining.ts new file mode 100644 index 0000000..c05fde2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/router/modules/remaining.ts @@ -0,0 +1,311 @@ +import { Layout } from '@/utils/routerHelper' + +const { t } = useI18n() +/** + * redirect: noredirect 当设置 noredirect 的时候该路由在面包屑导航中不可被点击 + * name:'router-name' 设定路由的名字,一定要填写不然使用时会出现各种问题 + * meta : { + hidden: true 当设置 true 的时候该路由不会再侧边栏出现 如404,login等页面(默认 false) + + alwaysShow: true 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式, + 只有一个时,会将那个子路由当做根路由显示在侧边栏, + 若你想不管路由下面的 children 声明的个数都显示你的根路由, + 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则, + 一直显示根路由(默认 false) + + title: 'title' 设置该路由在侧边栏和面包屑中展示的名字 + + icon: 'svg-name' 设置该路由的图标 + + noCache: true 如果设置为true,则不会被 缓存(默认 false) + + breadcrumb: false 如果设置为false,则不会在breadcrumb面包屑中显示(默认 true) + + affix: true 如果设置为true,则会一直固定在tag项中(默认 false) + + noTagsView: true 如果设置为true,则不会出现在tag中(默认 false) + + activeMenu: '/dashboard' 显示高亮的路由路径 + + followAuth: '/dashboard' 跟随哪个路由进行权限过滤 + + canTo: true 设置为true即使hidden为true,也依然可以进行路由跳转(默认 false) + } + **/ +const remainingRouter: AppRouteRecordRaw[] = [ + { + path: '/redirect', + component: Layout, + name: 'Redirect', + children: [ + { + path: '/redirect/:path(.*)', + name: 'Redirect', + component: () => import('@/views/Redirect/Redirect.vue'), + meta: {} + } + ], + meta: { + hidden: true, + noTagsView: true + } + }, + { + path: '/', + component: Layout, + redirect: '/index', + name: 'Home', + meta: {}, + children: [ + { + path: 'index', + component: () => import('@/views/Home/Index.vue'), + name: 'Index', + meta: { + title: t('router.home'), + icon: 'ep:home-filled', + noCache: false, + affix: true + } + } + ] + }, + { + path: '/user', + component: Layout, + name: 'UserInfo', + meta: { + hidden: true + }, + children: [ + { + path: 'profile', + component: () => import('@/views/Profile/Index.vue'), + name: 'Profile', + meta: { + canTo: true, + hidden: true, + noTagsView: false, + icon: 'ep:user', + title: t('common.profile') + } + }, + { + path: 'notify-message', + component: () => import('@/views/system/notify/my/index.vue'), + name: 'MyNotifyMessage', + meta: { + canTo: true, + hidden: true, + noTagsView: false, + icon: 'ep:message', + title: '我的站内信' + } + } + ] + }, + + { + path: '/dict', + component: Layout, + name: 'dict', + meta: { + hidden: true + }, + children: [ + { + path: 'type/data/:dictType', + component: () => import('@/views/system/dict/data/index.vue'), + name: 'SystemDictData', + meta: { + title: '字典数据', + noCache: true, + hidden: true, + canTo: true, + icon: '', + activeMenu: '/system/dict' + } + } + ] + }, + + { + path: '/codegen', + component: Layout, + name: 'CodegenEdit', + meta: { + hidden: true + }, + children: [ + { + path: 'edit', + component: () => import('@/views/infra/codegen/EditTable.vue'), + name: 'InfraCodegenEditTable', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: 'ep:edit', + title: '修改生成配置', + activeMenu: 'infra/codegen/index' + } + } + ] + }, + { + path: '/job', + component: Layout, + name: 'JobL', + meta: { + hidden: true + }, + children: [ + { + path: 'job-log', + component: () => import('@/views/infra/job/logger/index.vue'), + name: 'InfraJobLog', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: 'ep:edit', + title: '调度日志', + activeMenu: 'infra/job/index' + } + } + ] + }, + { + path: '/login', + component: () => import('@/views/Login/Login.vue'), + name: 'Login', + meta: { + hidden: true, + title: t('router.login'), + noTagsView: true + } + }, + { + path: '/sso', + component: () => import('@/views/Login/Login.vue'), + name: 'SSOLogin', + meta: { + hidden: true, + title: t('router.login'), + noTagsView: true + } + }, + { + path: '/trade/order', + component: Layout, + name: 'order', + meta: { + hidden: true + }, + children: [ + { + path: 'detail', + name: 'TradeOrderDetail', + component: () => import('@/views/mall/trade/order/tradeOrderDetail.vue'), + meta: { title: '订单详情', hidden: true } + } + ] + }, + { + path: '/403', + component: () => import('@/views/Error/403.vue'), + name: 'NoAccess', + meta: { + hidden: true, + title: '403', + noTagsView: true + } + }, + { + path: '/404', + component: () => import('@/views/Error/404.vue'), + name: 'NoFound', + meta: { + hidden: true, + title: '404', + noTagsView: true + } + }, + { + path: '/500', + component: () => import('@/views/Error/500.vue'), + name: 'Error', + meta: { + hidden: true, + title: '500', + noTagsView: true + } + }, + { + path: '/property', + component: Layout, + name: 'property', + meta: { + hidden: true + }, + children: [ + { + path: 'value/:propertyId(\\d+)', + component: () => import('@/views/mall/product/property/value/index.vue'), + name: 'ProductPropertyValue', + meta: { title: '商品属性值', icon: '', activeMenu: '/product/property' } + } + ] + }, + { + path: '/product', + component: Layout, + name: 'Product', + meta: { + hidden: true + }, + children: [ + { + path: 'spu/add', + component: () => import('@/views/mall/product/spu/addForm.vue'), + name: 'ProductSpuAdd', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: 'ep:edit', + title: '添加商品', + activeMenu: '/product/product-spu' + } + }, + { + path: 'spu/edit/:spuId(\\d+)', + component: () => import('@/views/mall/product/spu/addForm.vue'), + name: 'ProductSpuEdit', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: 'ep:edit', + title: '编辑商品', + activeMenu: '/product/product-spu' + } + }, + { + path: 'spu/detail/:spuId(\\d+)', + component: () => import('@/views/mall/product/spu/addForm.vue'), + name: 'ProductSpuDetail', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: 'ep:view', + title: '商品详情', + activeMenu: '/product/product-spu' + } + } + ] + } +] + +export default remainingRouter diff --git a/grailed-ui-admin-vue3/src/store/index.ts b/grailed-ui-admin-vue3/src/store/index.ts new file mode 100644 index 0000000..65964ea --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/index.ts @@ -0,0 +1,10 @@ +import type { App } from 'vue' +import { createPinia } from 'pinia' + +const store = createPinia() + +export const setupStore = (app: App) => { + app.use(store) +} + +export { store } diff --git a/grailed-ui-admin-vue3/src/store/modules/app.ts b/grailed-ui-admin-vue3/src/store/modules/app.ts new file mode 100644 index 0000000..2489f87 --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/modules/app.ts @@ -0,0 +1,274 @@ +import { defineStore } from 'pinia' +import { store } from '../index' +import { setCssVar, humpToUnderline } from '@/utils' +import { ElMessage } from 'element-plus' +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' +import { ElementPlusSize } from '@/types/elementPlus' +import { LayoutType } from '@/types/layout' +import { ThemeTypes } from '@/types/theme' + +const { wsCache } = useCache() + +interface AppState { + breadcrumb: boolean + breadcrumbIcon: boolean + collapse: boolean + uniqueOpened: boolean + hamburger: boolean + screenfull: boolean + size: boolean + locale: boolean + message: boolean + tagsView: boolean + tagsViewIcon: boolean + logo: boolean + fixedHeader: boolean + greyMode: boolean + pageLoading: boolean + layout: LayoutType + title: string + userInfo: string + isDark: boolean + currentSize: ElementPlusSize + sizeMap: ElementPlusSize[] + mobile: boolean + footer: boolean + theme: ThemeTypes + fixedMenu: boolean +} + +export const useAppStore = defineStore('app', { + state: (): AppState => { + return { + userInfo: 'userInfo', // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突 + sizeMap: ['default', 'large', 'small'], + mobile: false, // 是否是移动端 + title: import.meta.env.VITE_APP_TITLE, // 标题 + pageLoading: false, // 路由跳转loading + + breadcrumb: true, // 面包屑 + breadcrumbIcon: true, // 面包屑图标 + collapse: false, // 折叠菜单 + uniqueOpened: true, // 是否只保持一个子菜单的展开 + hamburger: true, // 折叠图标 + screenfull: true, // 全屏图标 + size: true, // 尺寸图标 + locale: true, // 多语言图标 + message: true, // 消息图标 + tagsView: true, // 标签页 + tagsViewIcon: true, // 是否显示标签图标 + logo: true, // logo + fixedHeader: true, // 固定toolheader + footer: true, // 显示页脚 + greyMode: false, // 是否开始灰色模式,用于特殊悼念日 + fixedMenu: wsCache.get('fixedMenu') || false, // 是否固定菜单 + + layout: wsCache.get(CACHE_KEY.LAYOUT) || 'classic', // layout布局 + isDark: wsCache.get(CACHE_KEY.IS_DARK) || false, // 是否是暗黑模式 + currentSize: wsCache.get('default') || 'default', // 组件尺寸 + theme: wsCache.get(CACHE_KEY.THEME) || { + // 主题色 + elColorPrimary: '#409eff', + // 左侧菜单边框颜色 + leftMenuBorderColor: 'inherit', + // 左侧菜单背景颜色 + leftMenuBgColor: '#001529', + // 左侧菜单浅色背景颜色 + leftMenuBgLightColor: '#0f2438', + // 左侧菜单选中背景颜色 + leftMenuBgActiveColor: 'var(--el-color-primary)', + // 左侧菜单收起选中背景颜色 + leftMenuCollapseBgActiveColor: 'var(--el-color-primary)', + // 左侧菜单字体颜色 + leftMenuTextColor: '#bfcbd9', + // 左侧菜单选中字体颜色 + leftMenuTextActiveColor: '#fff', + // logo字体颜色 + logoTitleTextColor: '#fff', + // logo边框颜色 + logoBorderColor: 'inherit', + // 头部背景颜色 + topHeaderBgColor: '#fff', + // 头部字体颜色 + topHeaderTextColor: 'inherit', + // 头部悬停颜色 + topHeaderHoverColor: '#f6f6f6', + // 头部边框颜色 + topToolBorderColor: '#eee' + } + } + }, + getters: { + getBreadcrumb(): boolean { + return this.breadcrumb + }, + getBreadcrumbIcon(): boolean { + return this.breadcrumbIcon + }, + getCollapse(): boolean { + return this.collapse + }, + getUniqueOpened(): boolean { + return this.uniqueOpened + }, + getHamburger(): boolean { + return this.hamburger + }, + getScreenfull(): boolean { + return this.screenfull + }, + getSize(): boolean { + return this.size + }, + getLocale(): boolean { + return this.locale + }, + getMessage(): boolean { + return this.message + }, + getTagsView(): boolean { + return this.tagsView + }, + getTagsViewIcon(): boolean { + return this.tagsViewIcon + }, + getLogo(): boolean { + return this.logo + }, + getFixedHeader(): boolean { + return this.fixedHeader + }, + getGreyMode(): boolean { + return this.greyMode + }, + getFixedMenu(): boolean { + return this.fixedMenu + }, + getPageLoading(): boolean { + return this.pageLoading + }, + getLayout(): LayoutType { + return this.layout + }, + getTitle(): string { + return this.title + }, + getUserInfo(): string { + return this.userInfo + }, + getIsDark(): boolean { + return this.isDark + }, + getCurrentSize(): ElementPlusSize { + return this.currentSize + }, + getSizeMap(): ElementPlusSize[] { + return this.sizeMap + }, + getMobile(): boolean { + return this.mobile + }, + getTheme(): ThemeTypes { + return this.theme + }, + getFooter(): boolean { + return this.footer + } + }, + actions: { + setBreadcrumb(breadcrumb: boolean) { + this.breadcrumb = breadcrumb + }, + setBreadcrumbIcon(breadcrumbIcon: boolean) { + this.breadcrumbIcon = breadcrumbIcon + }, + setCollapse(collapse: boolean) { + this.collapse = collapse + }, + setUniqueOpened(uniqueOpened: boolean) { + this.uniqueOpened = uniqueOpened + }, + setHamburger(hamburger: boolean) { + this.hamburger = hamburger + }, + setScreenfull(screenfull: boolean) { + this.screenfull = screenfull + }, + setSize(size: boolean) { + this.size = size + }, + setLocale(locale: boolean) { + this.locale = locale + }, + setMessage(message: boolean) { + this.message = message + }, + setTagsView(tagsView: boolean) { + this.tagsView = tagsView + }, + setTagsViewIcon(tagsViewIcon: boolean) { + this.tagsViewIcon = tagsViewIcon + }, + setLogo(logo: boolean) { + this.logo = logo + }, + setFixedHeader(fixedHeader: boolean) { + this.fixedHeader = fixedHeader + }, + setGreyMode(greyMode: boolean) { + this.greyMode = greyMode + }, + setFixedMenu(fixedMenu: boolean) { + wsCache.set('fixedMenu', fixedMenu) + this.fixedMenu = fixedMenu + }, + setPageLoading(pageLoading: boolean) { + this.pageLoading = pageLoading + }, + setLayout(layout: LayoutType) { + if (this.mobile && layout !== 'classic') { + ElMessage.warning('移动端模式下不支持切换其他布局') + return + } + this.layout = layout + wsCache.set(CACHE_KEY.LAYOUT, this.layout) + }, + setTitle(title: string) { + this.title = title + }, + setIsDark(isDark: boolean) { + this.isDark = isDark + if (this.isDark) { + document.documentElement.classList.add('dark') + document.documentElement.classList.remove('light') + } else { + document.documentElement.classList.add('light') + document.documentElement.classList.remove('dark') + } + wsCache.set(CACHE_KEY.IS_DARK, this.isDark) + }, + setCurrentSize(currentSize: ElementPlusSize) { + this.currentSize = currentSize + wsCache.set('currentSize', this.currentSize) + }, + setMobile(mobile: boolean) { + this.mobile = mobile + }, + setTheme(theme: ThemeTypes) { + this.theme = Object.assign(this.theme, theme) + wsCache.set(CACHE_KEY.THEME, this.theme) + }, + setCssVarTheme() { + for (const key in this.theme) { + setCssVar(`--${humpToUnderline(key)}`, this.theme[key]) + } + }, + setFooter(footer: boolean) { + this.footer = footer + } + } +}) + +export const useAppStoreWithOut = () => { + return useAppStore(store) +} diff --git a/grailed-ui-admin-vue3/src/store/modules/audio.ts b/grailed-ui-admin-vue3/src/store/modules/audio.ts new file mode 100644 index 0000000..28031b3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/modules/audio.ts @@ -0,0 +1,15 @@ +import { ref } from 'vue' +import { defineStore } from 'pinia' + +export const useAlterToneStore = defineStore('alterTone', () => { + const alterTone = ref(false) + + const getAlterTone = () => { + return alterTone.value + } + const setAlterTone = (value: boolean) => { + alterTone.value = value + } + + return { getAlterTone, setAlterTone } +}) diff --git a/grailed-ui-admin-vue3/src/store/modules/dict.ts b/grailed-ui-admin-vue3/src/store/modules/dict.ts new file mode 100644 index 0000000..822547b --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/modules/dict.ts @@ -0,0 +1,104 @@ +import { defineStore } from 'pinia' +import { store } from '../index' +// @ts-ignore +import { DictDataVO } from '@/api/system/dict/types' +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' +const { wsCache } = useCache('sessionStorage') +import { listSimpleDictData } from '@/api/system/dict/dict.data' + +export interface DictValueType { + value: any + label: string + clorType?: string + cssClass?: string +} +export interface DictTypeType { + dictType: string + dictValue: DictValueType[] +} +export interface DictState { + dictMap: Map + isSetDict: boolean +} + +export const useDictStore = defineStore('dict', { + state: (): DictState => ({ + dictMap: new Map(), + isSetDict: false + }), + getters: { + getDictMap(): Recordable { + const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) + if (dictMap) { + this.dictMap = dictMap + } + return this.dictMap + }, + getIsSetDict(): boolean { + return this.isSetDict + } + }, + actions: { + async setDictMap() { + const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) + if (dictMap) { + this.dictMap = dictMap + this.isSetDict = true + } else { + const res = await listSimpleDictData() + // 设置数据 + const dictDataMap = new Map() + res.forEach((dictData: DictDataVO) => { + // 获得 dictType 层级 + const enumValueObj = dictDataMap[dictData.dictType] + if (!enumValueObj) { + dictDataMap[dictData.dictType] = [] + } + // 处理 dictValue 层级 + dictDataMap[dictData.dictType].push({ + value: dictData.value, + label: dictData.label, + colorType: dictData.colorType, + cssClass: dictData.cssClass + }) + }) + this.dictMap = dictDataMap + this.isSetDict = true + wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期 + } + }, + getDictByType(type: string) { + if (!this.isSetDict) { + this.setDictMap() + } + return this.dictMap[type] + }, + async resetDict() { + wsCache.delete(CACHE_KEY.DICT_CACHE) + const res = await listSimpleDictData() + // 设置数据 + const dictDataMap = new Map() + res.forEach((dictData: DictDataVO) => { + // 获得 dictType 层级 + const enumValueObj = dictDataMap[dictData.dictType] + if (!enumValueObj) { + dictDataMap[dictData.dictType] = [] + } + // 处理 dictValue 层级 + dictDataMap[dictData.dictType].push({ + value: dictData.value, + label: dictData.label, + colorType: dictData.colorType, + cssClass: dictData.cssClass + }) + }) + this.dictMap = dictDataMap + this.isSetDict = true + wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期 + } + } +}) + +export const useDictStoreWithOut = () => { + return useDictStore(store) +} diff --git a/grailed-ui-admin-vue3/src/store/modules/locale.ts b/grailed-ui-admin-vue3/src/store/modules/locale.ts new file mode 100644 index 0000000..82d91cf --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/modules/locale.ts @@ -0,0 +1,60 @@ +import { defineStore } from 'pinia' +import { store } from '../index' +import zhCn from 'element-plus/es/locale/lang/zh-cn' +import en from 'element-plus/es/locale/lang/en' +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' +import { LocaleDropdownType } from '@/types/localeDropdown' + +const { wsCache } = useCache() + +const elLocaleMap = { + 'zh-CN': zhCn, + en: en +} + +interface LocaleState { + currentLocale: LocaleDropdownType + localeMap: LocaleDropdownType[] +} + +export const useLocaleStore = defineStore('locales', { + state: (): LocaleState => { + return { + currentLocale: { + lang: wsCache.get(CACHE_KEY.LANG) || 'zh-CN', + elLocale: elLocaleMap[wsCache.get(CACHE_KEY.LANG) || 'zh-CN'] + }, + // 多语言 + localeMap: [ + { + lang: 'zh-CN', + name: '简体中文' + }, + { + lang: 'en', + name: 'English' + } + ] + } + }, + getters: { + getCurrentLocale(): LocaleDropdownType { + return this.currentLocale + }, + getLocaleMap(): LocaleDropdownType[] { + return this.localeMap + } + }, + actions: { + setCurrentLocale(localeMap: LocaleDropdownType) { + // this.locale = Object.assign(this.locale, localeMap) + this.currentLocale.lang = localeMap?.lang + this.currentLocale.elLocale = elLocaleMap[localeMap?.lang] + wsCache.set(CACHE_KEY.LANG, localeMap?.lang) + } + } +}) + +export const useLocaleStoreWithOut = () => { + return useLocaleStore(store) +} diff --git a/grailed-ui-admin-vue3/src/store/modules/permission.ts b/grailed-ui-admin-vue3/src/store/modules/permission.ts new file mode 100644 index 0000000..c729cea --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/modules/permission.ts @@ -0,0 +1,67 @@ +import { defineStore } from 'pinia' +import { store } from '../index' +import { cloneDeep } from 'lodash-es' +import remainingRouter from '@/router/modules/remaining' +import { flatMultiLevelRoutes, generateRoute } from '@/utils/routerHelper' +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' + +const { wsCache } = useCache() + +export interface PermissionState { + routers: AppRouteRecordRaw[] + addRouters: AppRouteRecordRaw[] + menuTabRouters: AppRouteRecordRaw[] +} + +export const usePermissionStore = defineStore('permission', { + state: (): PermissionState => ({ + routers: [], + addRouters: [], + menuTabRouters: [] + }), + getters: { + getRouters(): AppRouteRecordRaw[] { + return this.routers + }, + getAddRouters(): AppRouteRecordRaw[] { + return flatMultiLevelRoutes(cloneDeep(this.addRouters)) + }, + getMenuTabRouters(): AppRouteRecordRaw[] { + return this.menuTabRouters + } + }, + actions: { + async generateRoutes(): Promise { + return new Promise(async (resolve) => { + // 获得菜单列表,它在登录的时候,setUserInfoAction 方法中已经进行获取 + let res: AppCustomRouteRecordRaw[] = [] + if (wsCache.get(CACHE_KEY.ROLE_ROUTERS)) { + res = wsCache.get(CACHE_KEY.ROLE_ROUTERS) as AppCustomRouteRecordRaw[] + } + const routerMap: AppRouteRecordRaw[] = generateRoute(res) + // 动态路由,404一定要放到最后面 + this.addRouters = routerMap.concat([ + { + path: '/:path(.*)*', + redirect: '/404', + name: '404Page', + meta: { + hidden: true, + breadcrumb: false + } + } + ]) + // 渲染菜单的所有路由 + this.routers = cloneDeep(remainingRouter).concat(routerMap) + resolve() + }) + }, + setMenuTabRouters(routers: AppRouteRecordRaw[]): void { + this.menuTabRouters = routers + } + } +}) + +export const usePermissionStoreWithOut = () => { + return usePermissionStore(store) +} diff --git a/grailed-ui-admin-vue3/src/store/modules/tagsView.ts b/grailed-ui-admin-vue3/src/store/modules/tagsView.ts new file mode 100644 index 0000000..a60d0e4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/modules/tagsView.ts @@ -0,0 +1,140 @@ +import router from '@/router' +import type { RouteLocationNormalizedLoaded } from 'vue-router' +import { getRawRoute } from '@/utils/routerHelper' +import { defineStore } from 'pinia' +import { store } from '../index' +import { findIndex } from '@/utils' + +export interface TagsViewState { + visitedViews: RouteLocationNormalizedLoaded[] + cachedViews: Set +} + +export const useTagsViewStore = defineStore('tagsView', { + state: (): TagsViewState => ({ + visitedViews: [], + cachedViews: new Set() + }), + getters: { + getVisitedViews(): RouteLocationNormalizedLoaded[] { + return this.visitedViews + }, + getCachedViews(): string[] { + return Array.from(this.cachedViews) + } + }, + actions: { + // 新增缓存和tag + addView(view: RouteLocationNormalizedLoaded): void { + this.addVisitedView(view) + this.addCachedView() + }, + // 新增tag + addVisitedView(view: RouteLocationNormalizedLoaded) { + if (this.visitedViews.some((v) => v.path === view.path)) return + if (view.meta?.noTagsView) return + this.visitedViews.push( + Object.assign({}, view, { + title: view.meta?.title || 'no-name' + }) + ) + }, + // 新增缓存 + addCachedView() { + const cacheMap: Set = new Set() + for (const v of this.visitedViews) { + const item = getRawRoute(v) + const needCache = !item.meta?.noCache + if (!needCache) { + continue + } + const name = item.name as string + cacheMap.add(name) + } + if (Array.from(this.cachedViews).sort().toString() === Array.from(cacheMap).sort().toString()) + return + this.cachedViews = cacheMap + }, + // 删除某个 + delView(view: RouteLocationNormalizedLoaded) { + this.delVisitedView(view) + this.delCachedView() + }, + // 删除tag + delVisitedView(view: RouteLocationNormalizedLoaded) { + for (const [i, v] of this.visitedViews.entries()) { + if (v.path === view.path) { + this.visitedViews.splice(i, 1) + break + } + } + }, + // 删除缓存 + delCachedView() { + const route = router.currentRoute.value + const index = findIndex(this.getCachedViews, (v) => v === route.name) + if (index > -1) { + this.cachedViews.delete(this.getCachedViews[index]) + } + }, + // 删除所有缓存和tag + delAllViews() { + this.delAllVisitedViews() + this.delCachedView() + }, + // 删除所有tag + delAllVisitedViews() { + // const affixTags = this.visitedViews.filter((tag) => tag.meta.affix) + this.visitedViews = [] + }, + // 删除其他 + delOthersViews(view: RouteLocationNormalizedLoaded) { + this.delOthersVisitedViews(view) + this.addCachedView() + }, + // 删除其他tag + delOthersVisitedViews(view: RouteLocationNormalizedLoaded) { + this.visitedViews = this.visitedViews.filter((v) => { + return v?.meta?.affix || v.path === view.path + }) + }, + // 删除左侧 + delLeftViews(view: RouteLocationNormalizedLoaded) { + const index = findIndex( + this.visitedViews, + (v) => v.path === view.path + ) + if (index > -1) { + this.visitedViews = this.visitedViews.filter((v, i) => { + return v?.meta?.affix || v.path === view.path || i > index + }) + this.addCachedView() + } + }, + // 删除右侧 + delRightViews(view: RouteLocationNormalizedLoaded) { + const index = findIndex( + this.visitedViews, + (v) => v.path === view.path + ) + if (index > -1) { + this.visitedViews = this.visitedViews.filter((v, i) => { + return v?.meta?.affix || v.path === view.path || i < index + }) + this.addCachedView() + } + }, + updateVisitedView(view: RouteLocationNormalizedLoaded) { + for (let v of this.visitedViews) { + if (v.path === view.path) { + v = Object.assign(v, view) + break + } + } + } + } +}) + +export const useTagsViewStoreWithOut = () => { + return useTagsViewStore(store) +} diff --git a/grailed-ui-admin-vue3/src/store/modules/user.ts b/grailed-ui-admin-vue3/src/store/modules/user.ts new file mode 100644 index 0000000..1f801fe --- /dev/null +++ b/grailed-ui-admin-vue3/src/store/modules/user.ts @@ -0,0 +1,84 @@ +import { store } from '../index' +import { defineStore } from 'pinia' +import { getAccessToken, removeToken } from '@/utils/auth' +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' +import { getInfo, loginOut } from '@/api/login' + +const { wsCache } = useCache() + +interface UserVO { + id: number + avatar: string + nickname: string +} +interface UserInfoVO { + permissions: string[] + roles: string[] + isSetUser: boolean + user: UserVO +} + +export const useUserStore = defineStore('admin-user', { + state: (): UserInfoVO => ({ + permissions: [], + roles: [], + isSetUser: false, + user: { + id: 0, + avatar: '', + nickname: '' + } + }), + getters: { + getPermissions(): string[] { + return this.permissions + }, + getRoles(): string[] { + return this.roles + }, + getIsSetUser(): boolean { + return this.isSetUser + }, + getUser(): UserVO { + return this.user + } + }, + actions: { + async setUserInfoAction() { + if (!getAccessToken()) { + this.resetState() + return null + } + let userInfo = wsCache.get(CACHE_KEY.USER) + if (!userInfo) { + userInfo = await getInfo() + } + this.permissions = userInfo.permissions + this.roles = userInfo.roles + this.user = userInfo.user + this.isSetUser = true + wsCache.set(CACHE_KEY.USER, userInfo) + wsCache.set(CACHE_KEY.ROLE_ROUTERS, userInfo.menus) + }, + async loginOut() { + await loginOut() + removeToken() + wsCache.clear() + this.resetState() + }, + resetState() { + this.permissions = [] + this.roles = [] + this.isSetUser = false + this.user = { + id: 0, + avatar: '', + nickname: '' + } + } + } +}) + +export const useUserStoreWithOut = () => { + return useUserStore(store) +} diff --git a/grailed-ui-admin-vue3/src/styles/global.module.scss b/grailed-ui-admin-vue3/src/styles/global.module.scss new file mode 100644 index 0000000..8448a92 --- /dev/null +++ b/grailed-ui-admin-vue3/src/styles/global.module.scss @@ -0,0 +1,6 @@ +@import './variables.scss'; +// 导出变量 +:export { + namespace: $namespace; + elNamespace: $elNamespace; +} diff --git a/grailed-ui-admin-vue3/src/styles/index.scss b/grailed-ui-admin-vue3/src/styles/index.scss new file mode 100644 index 0000000..0952bd0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/styles/index.scss @@ -0,0 +1,35 @@ +@import './var.css'; +@import 'element-plus/theme-chalk/dark/css-vars.css'; + +.reset-margin [class*='el-icon'] + span { + margin-left: 2px !important; +} + +// 解决抽屉弹出时,body宽度变化的问题 +.el-popup-parent--hidden { + width: 100% !important; +} + +// 解决表格内容超过表格总宽度后,横向滚动条前端顶不到表格边缘的问题 +.el-scrollbar__bar { + display: flex; + justify-content: flex-start; +} + +/* nprogress 适配 element-plus 的主题色 */ +#nprogress { + & .bar { + background-color: var(--el-color-primary) !important; + } + + & .peg { + box-shadow: + 0 0 10px var(--el-color-primary), + 0 0 5px var(--el-color-primary) !important; + } + + & .spinner-icon { + border-top-color: var(--el-color-primary); + border-left-color: var(--el-color-primary); + } +} diff --git a/grailed-ui-admin-vue3/src/styles/theme.scss b/grailed-ui-admin-vue3/src/styles/theme.scss new file mode 100644 index 0000000..39b03b3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/styles/theme.scss @@ -0,0 +1,6 @@ +// .text-color { +// color: var(--el-text-color-regular); +// } +// .dark .dark\:text-color { +// color: rgba(255, 255, 255, var(--dark-text-color)); +// } diff --git a/grailed-ui-admin-vue3/src/styles/var.css b/grailed-ui-admin-vue3/src/styles/var.css new file mode 100644 index 0000000..a44f804 --- /dev/null +++ b/grailed-ui-admin-vue3/src/styles/var.css @@ -0,0 +1,66 @@ +:root { + --login-bg-color: #293146; + + --left-menu-max-width: 200px; + + --left-menu-min-width: 64px; + + --left-menu-bg-color: #001529; + + --left-menu-bg-light-color: #0f2438; + + --left-menu-bg-active-color: var(--el-color-primary); + + --left-menu-text-color: #bfcbd9; + + --left-menu-text-active-color: #fff; + + --left-menu-collapse-bg-active-color: var(--el-color-primary); + /* left menu end */ + + /* logo start */ + --logo-height: 50px; + + --logo-title-text-color: #fff; + /* logo end */ + + /* header start */ + --top-header-bg-color: '#fff'; + + --top-header-text-color: 'inherit'; + + --top-header-hover-color: #f6f6f6; + + --top-tool-height: var(--logo-height); + + --top-tool-p-x: 0; + + --tags-view-height: 35px; + /* header start */ + + /* tab menu start */ + --tab-menu-max-width: 80px; + + --tab-menu-min-width: 30px; + + --tab-menu-collapse-height: 36px; + /* tab menu end */ + + --app-content-padding: 20px; + + --app-contnet-bg-color: #f5f7f9; + + --app-footer-height: 50px; + + --transition-time-02: 0.2s; +} + +.dark { + --app-content-bg-color: var(--el-bg-color); +} + +html, +body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/grailed-ui-admin-vue3/src/styles/variables.scss b/grailed-ui-admin-vue3/src/styles/variables.scss new file mode 100644 index 0000000..00b66f1 --- /dev/null +++ b/grailed-ui-admin-vue3/src/styles/variables.scss @@ -0,0 +1,4 @@ +// 命名空间 +$namespace: v; +// el命名空间 +$elNamespace: el; diff --git a/grailed-ui-admin-vue3/src/types/components.d.ts b/grailed-ui-admin-vue3/src/types/components.d.ts new file mode 100644 index 0000000..8de1f33 --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/components.d.ts @@ -0,0 +1,56 @@ +export type ComponentName = + | 'Radio' + | 'RadioButton' + | 'Checkbox' + | 'CheckboxButton' + | 'Input' + | 'Autocomplete' + | 'InputNumber' + | 'Select' + | 'Cascader' + | 'Switch' + | 'Slider' + | 'TimePicker' + | 'DatePicker' + | 'Rate' + | 'ColorPicker' + | 'Transfer' + | 'Divider' + | 'TimeSelect' + | 'SelectV2' + | 'TreeSelect' + | 'InputPassword' + | 'Editor' + | 'UploadImg' + | 'UploadImgs' + | 'UploadFile' + +export type ColProps = { + span?: number + xs?: number + sm?: number + md?: number + lg?: number + xl?: number + tag?: string +} + +export type ComponentOptions = { + label?: string + value?: FormValueType + disabled?: boolean + key?: string | number + children?: ComponentOptions[] + options?: ComponentOptions[] +} & Recordable + +export type ComponentOptionsAlias = { + labelField?: string + valueField?: string +} + +export type ComponentProps = { + optionsAlias?: ComponentOptionsAlias + options?: ComponentOptions[] + optionsSlot?: boolean +} & Recordable diff --git a/grailed-ui-admin-vue3/src/types/configGlobal.d.ts b/grailed-ui-admin-vue3/src/types/configGlobal.d.ts new file mode 100644 index 0000000..f6d7b3c --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/configGlobal.d.ts @@ -0,0 +1,4 @@ +import { ElementPlusSize } from './elementPlus' +export interface ConfigGlobalTypes { + size?: ElementPlusSize +} diff --git a/grailed-ui-admin-vue3/src/types/contextMenu.d.ts b/grailed-ui-admin-vue3/src/types/contextMenu.d.ts new file mode 100644 index 0000000..0738d0e --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/contextMenu.d.ts @@ -0,0 +1,7 @@ +export type contextMenuSchema = { + disabled?: boolean + divided?: boolean + icon?: string + label: string + command?: (item: contextMenuSchema) => void +} diff --git a/grailed-ui-admin-vue3/src/types/descriptions.d.ts b/grailed-ui-admin-vue3/src/types/descriptions.d.ts new file mode 100644 index 0000000..35c0b81 --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/descriptions.d.ts @@ -0,0 +1,13 @@ +export interface DescriptionsSchema { + span?: number // 占多少分 + field: string // 字段名 + label?: string // label名 + width?: string | number + minWidth?: string | number + align?: 'left' | 'center' | 'right' + labelAlign?: 'left' | 'center' | 'right' + className?: string + labelClassName?: string + dateFormat?: string // add by 星语:支持时间的格式化 + dictType?: string // add by 星语:支持 dict 字典数据 +} diff --git a/grailed-ui-admin-vue3/src/types/elementPlus.d.ts b/grailed-ui-admin-vue3/src/types/elementPlus.d.ts new file mode 100644 index 0000000..2c6b76e --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/elementPlus.d.ts @@ -0,0 +1,3 @@ +export type ElementPlusSize = 'default' | 'small' | 'large' + +export type ElementPlusInfoType = 'success' | 'info' | 'warning' | 'danger' diff --git a/grailed-ui-admin-vue3/src/types/form.d.ts b/grailed-ui-admin-vue3/src/types/form.d.ts new file mode 100644 index 0000000..980c8cc --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/form.d.ts @@ -0,0 +1,44 @@ +import type { CSSProperties } from 'vue' +import { ColProps, ComponentProps, ComponentName } from '@/types/components' +import type { AxiosPromise } from 'axios' + +export type FormSetPropsType = { + field: string + path: string + value: any +} + +export type FormValueType = string | number | string[] | number[] | boolean | undefined | null + +export type FormItemProps = { + labelWidth?: string | number + required?: boolean + rules?: Recordable + error?: string + showMessage?: boolean + inlineMessage?: boolean + style?: CSSProperties +} + +export type FormSchema = { + // 唯一值 + field: string + // 标题 + label?: string + // 提示 + labelMessage?: string + // col组件属性 + colProps?: ColProps + // 表单组件属性,slots对应的是表单组件的插槽,规则:${field}-xxx,具体可以查看element-plus文档 + componentProps?: { slots?: Recordable } & ComponentProps + // formItem组件属性 + formItemProps?: FormItemProps + // 渲染的组件 + component?: ComponentName + // 初始值 + value?: FormValueType + // 是否隐藏 + hidden?: boolean + // 远程加载下拉项 + api?: () => AxiosPromise +} diff --git a/grailed-ui-admin-vue3/src/types/icon.d.ts b/grailed-ui-admin-vue3/src/types/icon.d.ts new file mode 100644 index 0000000..d1ffcdb --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/icon.d.ts @@ -0,0 +1,5 @@ +export interface IconTypes { + size?: number + color?: string + icon: string +} diff --git a/grailed-ui-admin-vue3/src/types/infoTip.d.ts b/grailed-ui-admin-vue3/src/types/infoTip.d.ts new file mode 100644 index 0000000..6eff083 --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/infoTip.d.ts @@ -0,0 +1,4 @@ +export interface TipSchema { + label: string + keys?: string[] +} diff --git a/grailed-ui-admin-vue3/src/types/layout.d.ts b/grailed-ui-admin-vue3/src/types/layout.d.ts new file mode 100644 index 0000000..cad3e2a --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/layout.d.ts @@ -0,0 +1 @@ +export type LayoutType = 'classic' | 'topLeft' | 'top' | 'cutMenu' diff --git a/grailed-ui-admin-vue3/src/types/localeDropdown.d.ts b/grailed-ui-admin-vue3/src/types/localeDropdown.d.ts new file mode 100644 index 0000000..c749dce --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/localeDropdown.d.ts @@ -0,0 +1,10 @@ +export interface Language { + el: Recordable + name: string +} + +export interface LocaleDropdownType { + lang: LocaleType + name?: string + elLocale?: Language +} diff --git a/grailed-ui-admin-vue3/src/types/qrcode.d.ts b/grailed-ui-admin-vue3/src/types/qrcode.d.ts new file mode 100644 index 0000000..86cdf0b --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/qrcode.d.ts @@ -0,0 +1,9 @@ +export interface QrcodeLogo { + src?: string + logoSize?: number + bgColor?: string + borderSize?: number + crossOrigin?: string + borderRadius?: number + logoRadius?: number +} diff --git a/grailed-ui-admin-vue3/src/types/table.d.ts b/grailed-ui-admin-vue3/src/types/table.d.ts new file mode 100644 index 0000000..9cb4205 --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/table.d.ts @@ -0,0 +1,44 @@ +export type TableColumn = { + field: string + label?: string + width?: number | string + fixed?: 'left' | 'right' + children?: TableColumn[] +} & Recordable + +export type VxeTableColumn = { + field: string + title?: string + children?: TableColumn[] +} & Recordable + +export type TableSlotDefault = { + row: Recordable + column: TableColumn + $index: number +} & Recordable + +export interface Pagination { + small?: boolean + background?: boolean + pageSize?: number + defaultPageSize?: number + total?: number + pageCount?: number + pagerCount?: number + currentPage?: number + defaultCurrentPage?: number + layout?: string + pageSizes?: number[] + popperClass?: string + prevText?: string + nextText?: string + disabled?: boolean + hideOnSinglePage?: boolean +} + +export interface TableSetPropsType { + field: string + path: string + value: any +} diff --git a/grailed-ui-admin-vue3/src/types/theme.d.ts b/grailed-ui-admin-vue3/src/types/theme.d.ts new file mode 100644 index 0000000..ad649b0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/types/theme.d.ts @@ -0,0 +1,16 @@ +export type ThemeTypes = { + elColorPrimary?: string + leftMenuBorderColor?: string + leftMenuBgColor?: string + leftMenuBgLightColor?: string + leftMenuBgActiveColor?: string + leftMenuCollapseBgActiveColor?: string + leftMenuTextColor?: string + leftMenuTextActiveColor?: string + logoTitleTextColor?: string + logoBorderColor?: string + topHeaderBgColor?: string + topHeaderTextColor?: string + topHeaderHoverColor?: string + topToolBorderColor?: string +} diff --git a/grailed-ui-admin-vue3/src/utils/Logger.ts b/grailed-ui-admin-vue3/src/utils/Logger.ts new file mode 100644 index 0000000..ca58df2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/Logger.ts @@ -0,0 +1,100 @@ +const isArray = function (obj: any): boolean { + return Object.prototype.toString.call(obj) === '[object Array]' +} + +const Logger = () => {} + +Logger.typeColor = function (type: string) { + let color = '' + switch (type) { + case 'primary': + color = '#2d8cf0' + break + case 'success': + color = '#19be6b' + break + case 'info': + color = '#909399' + break + case 'warn': + color = '#ff9900' + break + case 'error': + color = '#f03f14' + break + default: + color = '#35495E' + break + } + return color +} + +Logger.print = function (type = 'default', text: any, back = false) { + if (typeof text === 'object') { + // 如果是對象則調用打印對象方式 + isArray(text) ? console.table(text) : console.dir(text) + return + } + if (back) { + // 如果是打印帶背景圖的 + console.log( + `%c ${text} `, + `background:${Logger.typeColor(type)}; padding: 2px; border-radius: 4px; color: #fff;` + ) + } else { + console.log( + `%c ${text} `, + `border: 1px solid ${Logger.typeColor(type)}; + padding: 2px; border-radius: 4px; + color: ${Logger.typeColor(type)};` + ) + } +} + +Logger.printBack = function (type = 'primary', text) { + this.print(type, text, true) +} + +Logger.pretty = function (type = 'primary', title, text) { + if (typeof text === 'object') { + console.group('Console Group', title) + console.log( + `%c ${title}`, + `background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)}; + padding: 1px; border-radius: 4px; color: #fff;` + ) + isArray(text) ? console.table(text) : console.dir(text) + console.groupEnd() + return + } + console.log( + `%c ${title} %c ${text} %c`, + `background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)}; + padding: 1px; border-radius: 4px 0 0 4px; color: #fff;`, + `border:1px solid ${Logger.typeColor(type)}; + padding: 1px; border-radius: 0 4px 4px 0; color: ${Logger.typeColor(type)};`, + 'background:transparent' + ) +} + +Logger.prettyPrimary = function (title, ...text) { + text.forEach((t) => this.pretty('primary', title, t)) +} + +Logger.prettySuccess = function (title, ...text) { + text.forEach((t) => this.pretty('success', title, t)) +} + +Logger.prettyWarn = function (title, ...text) { + text.forEach((t) => this.pretty('warn', title, t)) +} + +Logger.prettyError = function (title, ...text) { + text.forEach((t) => this.pretty('error', title, t)) +} + +Logger.prettyInfo = function (title, ...text) { + text.forEach((t) => this.pretty('info', title, t)) +} + +export default Logger diff --git a/grailed-ui-admin-vue3/src/utils/auth.ts b/grailed-ui-admin-vue3/src/utils/auth.ts new file mode 100644 index 0000000..7da49b0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/auth.ts @@ -0,0 +1,92 @@ +import { useCache } from '@/hooks/web/useCache' +import { TokenType } from '@/api/login/types' +import { decrypt, encrypt } from '@/utils/jsencrypt' + +const { wsCache } = useCache() + +const AccessTokenKey = 'ACCESS_TOKEN' +const RefreshTokenKey = 'REFRESH_TOKEN' + +// 获取token +export const getAccessToken = () => { + // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错 + return wsCache.get(AccessTokenKey) ? wsCache.get(AccessTokenKey) : wsCache.get('ACCESS_TOKEN') +} + +// 刷新token +export const getRefreshToken = () => { + return wsCache.get(RefreshTokenKey) +} + +// 设置token +export const setToken = (token: TokenType) => { + wsCache.set(RefreshTokenKey, token.refreshToken) + wsCache.set(AccessTokenKey, token.accessToken) +} + +// 删除token +export const removeToken = () => { + wsCache.delete(AccessTokenKey) + wsCache.delete(RefreshTokenKey) +} + +/** 格式化token(jwt格式) */ +export const formatToken = (token: string): string => { + return 'Bearer ' + token +} +// ========== 账号相关 ========== + +const LoginFormKey = 'LOGINFORM' + +export type LoginFormType = { + tenantName: string + username: string + password: string + rememberMe: boolean +} + +export const getLoginForm = () => { + const loginForm: LoginFormType = wsCache.get(LoginFormKey) + if (loginForm) { + loginForm.password = decrypt(loginForm.password) as string + } + return loginForm +} + +export const setLoginForm = (loginForm: LoginFormType) => { + loginForm.password = encrypt(loginForm.password) as string + wsCache.set(LoginFormKey, loginForm, { exp: 30 * 24 * 60 * 60 }) +} + +export const removeLoginForm = () => { + wsCache.delete(LoginFormKey) +} + +// ========== 租户相关 ========== + +const TenantIdKey = 'TENANT_ID' +const TenantNameKey = 'TENANT_NAME' + +export const getTenantName = () => { + return wsCache.get(TenantNameKey) +} + +export const setTenantName = (username: string) => { + wsCache.set(TenantNameKey, username, { exp: 30 * 24 * 60 * 60 }) +} + +export const removeTenantName = () => { + wsCache.delete(TenantNameKey) +} + +export const getTenantId = () => { + return wsCache.get(TenantIdKey) +} + +export const setTenantId = (username: string) => { + wsCache.set(TenantIdKey, username) +} + +export const removeTenantId = () => { + wsCache.delete(TenantIdKey) +} diff --git a/grailed-ui-admin-vue3/src/utils/color.ts b/grailed-ui-admin-vue3/src/utils/color.ts new file mode 100644 index 0000000..6888583 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/color.ts @@ -0,0 +1,153 @@ +/** + * 判断是否 十六进制颜色值. + * 输入形式可为 #fff000 #f00 + * + * @param String color 十六进制颜色值 + * @return Boolean + */ +export const isHexColor = (color: string) => { + const reg = /^#([0-9a-fA-F]{3}|[0-9a-fA-f]{6})$/ + return reg.test(color) +} + +/** + * RGB 颜色值转换为 十六进制颜色值. + * r, g, 和 b 需要在 [0, 255] 范围内 + * + * @return String 类似#ff00ff + * @param r + * @param g + * @param b + */ +export const rgbToHex = (r: number, g: number, b: number) => { + // tslint:disable-next-line:no-bitwise + const hex = ((r << 16) | (g << 8) | b).toString(16) + return '#' + new Array(Math.abs(hex.length - 7)).join('0') + hex +} + +/** + * Transform a HEX color to its RGB representation + * @param {string} hex The color to transform + * @returns The RGB representation of the passed color + */ +export const hexToRGB = (hex: string, opacity?: number) => { + let sHex = hex.toLowerCase() + if (isHexColor(hex)) { + if (sHex.length === 4) { + let sColorNew = '#' + for (let i = 1; i < 4; i += 1) { + sColorNew += sHex.slice(i, i + 1).concat(sHex.slice(i, i + 1)) + } + sHex = sColorNew + } + const sColorChange: number[] = [] + for (let i = 1; i < 7; i += 2) { + sColorChange.push(parseInt('0x' + sHex.slice(i, i + 2))) + } + return opacity + ? 'RGBA(' + sColorChange.join(',') + ',' + opacity + ')' + : 'RGB(' + sColorChange.join(',') + ')' + } + return sHex +} + +export const colorIsDark = (color: string) => { + if (!isHexColor(color)) return + const [r, g, b] = hexToRGB(color) + .replace(/(?:\(|\)|rgb|RGB)*/g, '') + .split(',') + .map((item) => Number(item)) + return r * 0.299 + g * 0.578 + b * 0.114 < 192 +} + +/** + * Darkens a HEX color given the passed percentage + * @param {string} color The color to process + * @param {number} amount The amount to change the color by + * @returns {string} The HEX representation of the processed color + */ +export const darken = (color: string, amount: number) => { + color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color + amount = Math.trunc((255 * amount) / 100) + return `#${subtractLight(color.substring(0, 2), amount)}${subtractLight( + color.substring(2, 4), + amount + )}${subtractLight(color.substring(4, 6), amount)}` +} + +/** + * Lightens a 6 char HEX color according to the passed percentage + * @param {string} color The color to change + * @param {number} amount The amount to change the color by + * @returns {string} The processed color represented as HEX + */ +export const lighten = (color: string, amount: number) => { + color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color + amount = Math.trunc((255 * amount) / 100) + return `#${addLight(color.substring(0, 2), amount)}${addLight( + color.substring(2, 4), + amount + )}${addLight(color.substring(4, 6), amount)}` +} + +/* Suma el porcentaje indicado a un color (RR, GG o BB) hexadecimal para aclararlo */ +/** + * Sums the passed percentage to the R, G or B of a HEX color + * @param {string} color The color to change + * @param {number} amount The amount to change the color by + * @returns {string} The processed part of the color + */ +const addLight = (color: string, amount: number) => { + const cc = parseInt(color, 16) + amount + const c = cc > 255 ? 255 : cc + return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}` +} + +/** + * Calculates luminance of an rgb color + * @param {number} r red + * @param {number} g green + * @param {number} b blue + */ +const luminanace = (r: number, g: number, b: number) => { + const a = [r, g, b].map((v) => { + v /= 255 + return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4) + }) + return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722 +} + +/** + * Calculates contrast between two rgb colors + * @param {string} rgb1 rgb color 1 + * @param {string} rgb2 rgb color 2 + */ +const contrast = (rgb1: string[], rgb2: number[]) => { + return ( + (luminanace(~~rgb1[0], ~~rgb1[1], ~~rgb1[2]) + 0.05) / + (luminanace(rgb2[0], rgb2[1], rgb2[2]) + 0.05) + ) +} + +/** + * Determines what the best text color is (black or white) based con the contrast with the background + * @param hexColor - Last selected color by the user + */ +export const calculateBestTextColor = (hexColor: string) => { + const rgbColor = hexToRGB(hexColor.substring(1)) + const contrastWithBlack = contrast(rgbColor.split(','), [0, 0, 0]) + + return contrastWithBlack >= 12 ? '#000000' : '#FFFFFF' +} + +/** + * Subtracts the indicated percentage to the R, G or B of a HEX color + * @param {string} color The color to change + * @param {number} amount The amount to change the color by + * @returns {string} The processed part of the color + */ +const subtractLight = (color: string, amount: number) => { + const cc = parseInt(color, 16) - amount + const c = cc < 0 ? 0 : cc + return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}` +} diff --git a/grailed-ui-admin-vue3/src/utils/constants.ts b/grailed-ui-admin-vue3/src/utils/constants.ts new file mode 100644 index 0000000..edde87d --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/constants.ts @@ -0,0 +1,292 @@ +/** + * Created by 芋道源码 + * + * 枚举类 + */ + +// 全局通用状态枚举 +export const CommonStatusEnum = { + ENABLE: 0, // 开启 + DISABLE: 1 // 禁用 +} + +/** + * 菜单的类型枚举 + */ +export const SystemMenuTypeEnum = { + DIR: 1, // 目录 + MENU: 2, // 菜单 + BUTTON: 3 // 按钮 +} + +/** + * 角色的类型枚举 + */ +export const SystemRoleTypeEnum = { + SYSTEM: 1, // 内置角色 + CUSTOM: 2 // 自定义角色 +} + +/** + * 数据权限的范围枚举 + */ +export const SystemDataScopeEnum = { + ALL: 1, // 全部数据权限 + DEPT_CUSTOM: 2, // 指定部门数据权限 + DEPT_ONLY: 3, // 部门数据权限 + DEPT_AND_CHILD: 4, // 部门及以下数据权限 + DEPT_SELF: 5 // 仅本人数据权限 +} + +/** + * 代码生成模板类型 + */ +export const InfraCodegenTemplateTypeEnum = { + CRUD: 1, // 基础 CRUD + TREE: 2, // 树形 CRUD + SUB: 3 // 主子表 CRUD +} + +/** + * 任务状态的枚举 + */ +export const InfraJobStatusEnum = { + INIT: 0, // 初始化中 + NORMAL: 1, // 运行中 + STOP: 2 // 暂停运行 +} + +/** + * API 异常数据的处理状态 + */ +export const InfraApiErrorLogProcessStatusEnum = { + INIT: 0, // 未处理 + DONE: 1, // 已处理 + IGNORE: 2 // 已忽略 +} + +/** + * 用户的社交平台的类型枚举 + */ +export const SystemUserSocialTypeEnum = { + DINGTALK: { + title: '钉钉', + type: 20, + source: 'dingtalk', + img: 'https://s1.ax1x.com/2022/05/22/OzMDRs.png' + }, + WECHAT_ENTERPRISE: { + title: '企业微信', + type: 30, + source: 'wechat_enterprise', + img: 'https://s1.ax1x.com/2022/05/22/OzMrzn.png' + } +} + +/** + * 支付渠道枚举 + */ +export const PayChannelEnum = { + WX_PUB: { + code: 'wx_pub', + name: '微信 JSAPI 支付' + }, + WX_LITE: { + code: 'wx_lite', + name: '微信小程序支付' + }, + WX_APP: { + code: 'wx_app', + name: '微信 APP 支付' + }, + ALIPAY_PC: { + code: 'alipay_pc', + name: '支付宝 PC 网站支付' + }, + ALIPAY_WAP: { + code: 'alipay_wap', + name: '支付宝 WAP 网站支付' + }, + ALIPAY_APP: { + code: 'alipay_app', + name: '支付宝 APP 支付' + }, + ALIPAY_QR: { + code: 'alipay_qr', + name: '支付宝扫码支付' + }, + ALIPAY_BAR: { + code: 'alipay_bar', + name: '支付宝条码支付' + }, + MOCK: { + code: 'mock', + name: '模拟支付' + } +} + +/** + * 支付订单状态枚举 + */ +export const PayOrderStatusEnum = { + WAITING: { + status: 0, + name: '未支付' + }, + SUCCESS: { + status: 10, + name: '已支付' + }, + CLOSED: { + status: 20, + name: '未支付' + } +} + +/** + * 支付订单回调状态枚举 + */ +export const PayOrderNotifyStatusEnum = { + NO: { + status: 0, + name: '未通知' + }, + SUCCESS: { + status: 10, + name: '通知成功' + }, + FAILURE: { + status: 20, + name: '通知失败' + } +} + +/** + * 支付订单退款状态枚举 + */ +export const PayOrderRefundStatusEnum = { + NO: { + status: 0, + name: '未退款' + }, + SOME: { + status: 10, + name: '部分退款' + }, + ALL: { + status: 20, + name: '全部退款' + } +} + +/** + * 支付退款订单状态枚举 + */ +export const PayRefundStatusEnum = { + CREATE: { + status: 0, + name: '退款订单生成' + }, + SUCCESS: { + status: 1, + name: '退款成功' + }, + FAILURE: { + status: 2, + name: '退款失败' + }, + PROCESSING_NOTIFY: { + status: 3, + name: '退款中,渠道通知结果' + }, + PROCESSING_QUERY: { + status: 4, + name: '退款中,系统查询结果' + }, + UNKNOWN_RETRY: { + status: 5, + name: '状态未知,请重试' + }, + UNKNOWN_QUERY: { + status: 6, + name: '状态未知,系统查询结果' + }, + CLOSE: { + status: 99, + name: '退款关闭' + } +} + +/** + * 商品 SPU 状态 + */ +export const ProductSpuStatusEnum = { + RECYCLE: { + status: -1, + name: '回收站' + }, + DISABLE: { + status: 0, + name: '下架' + }, + ENABLE: { + status: 1, + name: '上架' + } +} + +/** + * 优惠劵模板的有限期类型的枚举 + */ +export const CouponTemplateValidityTypeEnum = { + DATE: { + type: 1, + name: '固定日期可用' + }, + TERM: { + type: 2, + name: '领取之后可用' + } +} + +/** + * 营销的商品范围枚举 + */ +export const PromotionProductScopeEnum = { + ALL: { + scope: 1, + name: '全部商品参与' + }, + SPU: { + scope: 2, + name: '指定商品参与' + } +} + +/** + * 营销的条件类型枚举 + */ +export const PromotionConditionTypeEnum = { + PRICE: { + type: 10, + name: '满 N 元' + }, + COUNT: { + type: 20, + name: '满 N 件' + } +} + +/** + * 优惠类型枚举 + */ +export const PromotionDiscountTypeEnum = { + PRICE: { + type: 1, + name: '满减' + }, + PERCENT: { + type: 2, + name: '折扣' + } +} diff --git a/grailed-ui-admin-vue3/src/utils/dict.ts b/grailed-ui-admin-vue3/src/utils/dict.ts new file mode 100644 index 0000000..705efe2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/dict.ts @@ -0,0 +1,198 @@ +/** + * 数据字典工具类 + */ +import { useDictStoreWithOut } from '@/store/modules/dict' +import { ElementPlusInfoType } from '@/types/elementPlus' + +const dictStore = useDictStoreWithOut() + +/** + * 获取 dictType 对应的数据字典数组 + * + * @param dictType 数据类型 + * @returns {*|Array} 数据字典数组 + */ +export interface DictDataType { + dictType: string + label: string + value: string | number | boolean + colorType: ElementPlusInfoType | '' + cssClass: string +} + +export const getDictOptions = (dictType: string) => { + return dictStore.getDictByType(dictType) || [] +} + +export const getIntDictOptions = (dictType: string) => { + const dictOption: DictDataType[] = [] + const dictOptions: DictDataType[] = getDictOptions(dictType) + dictOptions.forEach((dict: DictDataType) => { + dictOption.push({ + ...dict, + value: parseInt(dict.value + '') + }) + }) + return dictOption +} + +export const getStrDictOptions = (dictType: string) => { + const dictOption: DictDataType[] = [] + const dictOptions: DictDataType[] = getDictOptions(dictType) + dictOptions.forEach((dict: DictDataType) => { + dictOption.push({ + ...dict, + value: dict.value + '' + }) + }) + return dictOption +} + +export const getBoolDictOptions = (dictType: string) => { + const dictOption: DictDataType[] = [] + const dictOptions: DictDataType[] = getDictOptions(dictType) + dictOptions.forEach((dict: DictDataType) => { + dictOption.push({ + ...dict, + value: dict.value + '' === 'true' + }) + }) + return dictOption +} + +export const getDictObj = (dictType: string, value: any) => { + const dictOptions: DictDataType[] = getDictOptions(dictType) + dictOptions.forEach((dict: DictDataType) => { + if (dict.value === value.toString()) { + return dict + } + }) +} + +/** + * 获得字典数据的文本展示 + * + * @param dictType 字典类型 + * @param value 字典数据的值 + */ +export const getDictLabel = (dictType: string, value: any) => { + const dictOptions: DictDataType[] = getDictOptions(dictType) + const dictLabel = ref('') + dictOptions.forEach((dict: DictDataType) => { + if (dict.value === value) { + dictLabel.value = dict.label + } + }) + return dictLabel.value +} + +export enum DICT_TYPE { + USER_TYPE = 'user_type', + INFRA_YES_NO = 'infra_yes_no', + COMMON_STATUS = 'common_status', + SYSTEM_TENANT_PACKAGE_ID = 'system_tenant_package_id', + + // ========== SYSTEM 模块 ========== + SYSTEM_USER_SEX = 'system_user_sex', + SYSTEM_MENU_TYPE = 'system_menu_type', + SYSTEM_ROLE_TYPE = 'system_role_type', + SYSTEM_DATA_SCOPE = 'system_data_scope', + SYSTEM_NOTICE_TYPE = 'system_notice_type', + SYSTEM_OPERATE_TYPE = 'system_operate_type', + SYSTEM_LOGIN_TYPE = 'system_login_type', + SYSTEM_LOGIN_RESULT = 'system_login_result', + SYSTEM_SMS_CHANNEL_CODE = 'system_sms_channel_code', + SYSTEM_SMS_TEMPLATE_TYPE = 'system_sms_template_type', + SYSTEM_SMS_SEND_STATUS = 'system_sms_send_status', + SYSTEM_SMS_RECEIVE_STATUS = 'system_sms_receive_status', + SYSTEM_ERROR_CODE_TYPE = 'system_error_code_type', + SYSTEM_OAUTH2_GRANT_TYPE = 'system_oauth2_grant_type', + SYSTEM_MAIL_SEND_STATUS = 'system_mail_send_status', + SYSTEM_NOTIFY_TEMPLATE_TYPE = 'system_notify_template_type', + + // ========== INFRA 模块 ========== + INFRA_BOOLEAN_STRING = 'infra_boolean_string', + INFRA_JOB_STATUS = 'infra_job_status', + INFRA_JOB_LOG_STATUS = 'infra_job_log_status', + INFRA_API_ERROR_LOG_PROCESS_STATUS = 'infra_api_error_log_process_status', + INFRA_CONFIG_TYPE = 'infra_config_type', + INFRA_CODEGEN_TEMPLATE_TYPE = 'infra_codegen_template_type', + INFRA_CODEGEN_FRONT_TYPE = 'infra_codegen_front_type', + INFRA_CODEGEN_SCENE = 'infra_codegen_scene', + INFRA_FILE_STORAGE = 'infra_file_storage', + + // ========== BPM 模块 ========== + BPM_MODEL_CATEGORY = 'bpm_model_category', + BPM_MODEL_FORM_TYPE = 'bpm_model_form_type', + BPM_TASK_ASSIGN_RULE_TYPE = 'bpm_task_assign_rule_type', + BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status', + BPM_PROCESS_INSTANCE_RESULT = 'bpm_process_instance_result', + BPM_TASK_ASSIGN_SCRIPT = 'bpm_task_assign_script', + BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type', + + // ========== PAY 模块 ========== + PAY_CHANNEL_WECHAT_VERSION = 'pay_channel_wechat_version', // 微信渠道版本 + PAY_CHANNEL_ALIPAY_SIGN_TYPE = 'pay_channel_alipay_sign_type', // 支付渠道支付宝算法类型 + PAY_CHANNEL_ALIPAY_MODE = 'pay_channel_alipay_mode', // 支付宝公钥类型 + PAY_CHANNEL_ALIPAY_SERVER_TYPE = 'pay_channel_alipay_server_type', // 支付宝网关地址 + PAY_CHANNEL_CODE_TYPE = 'pay_channel_code_type', // 支付渠道编码类型 + PAY_ORDER_NOTIFY_STATUS = 'pay_order_notify_status', // 商户支付订单回调状态 + PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态 + PAY_ORDER_REFUND_STATUS = 'pay_order_refund_status', // 商户支付订单退款状态 + PAY_REFUND_ORDER_STATUS = 'pay_refund_order_status', // 退款订单状态 + PAY_REFUND_ORDER_TYPE = 'pay_refund_order_type', // 退款订单类别 + + // ========== MP 模块 ========== + MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match', // 自动回复请求匹配类型 + MP_MESSAGE_TYPE = 'mp_message_type', // 消息类型 + + // ========== MALL - 会员模块 ========== + MEMBER_POINT_BIZ_TYPE = 'member_point_biz_type', // 积分的业务类型 + MEMBER_POINT_STATUS = 'member_point_status', // 积分的状态 + MEMBER_CURRENCY_TYPE = 'member_currency_type', // 积分的状态 + + // ========== MALL - 商品模块 ========== + PRODUCT_UNIT = 'product_unit', // 商品单位 + PRODUCT_SPU_STATUS = 'product_spu_status', //商品状态 + + // ========== MALL - 交易模块 ========== + EXPRESS_CHARGE_MODE = 'trade_delivery_express_charge_mode', //快递的计费方式 + TRADE_AFTER_SALE_STATUS = 'trade_after_sale_status', // 售后 - 状态 + TRADE_AFTER_SALE_WAY = 'trade_after_sale_way', // 售后 - 方式 + TRADE_AFTER_SALE_TYPE = 'trade_after_sale_type', // 售后 - 类型 + TRADE_ORDER_TYPE = 'trade_order_type', // 订单 - 类型 + TRADE_ORDER_STATUS = 'trade_order_status', // 订单 - 状态 + TRADE_ORDER_ITEM_AFTER_SALE_STATUS = 'trade_order_item_after_sale_status', // 订单项 - 售后状态 + TERMINAL = 'terminal', // 终端 + + // ========== MALL - 营销模块 ========== + PROMOTION_DISCOUNT_TYPE = 'promotion_discount_type', // 优惠类型 + PROMOTION_PRODUCT_SCOPE = 'promotion_product_scope', // 营销的商品范围 + PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE = 'promotion_coupon_template_validity_type', // 优惠劵模板的有限期类型 + PROMOTION_COUPON_STATUS = 'promotion_coupon_status', // 优惠劵的状态 + PROMOTION_COUPON_TAKE_TYPE = 'promotion_coupon_take_type', // 优惠劵的领取方式 + PROMOTION_ACTIVITY_STATUS = 'promotion_activity_status', // 优惠活动的状态 + PROMOTION_CONDITION_TYPE = 'promotion_condition_type', // 营销的条件类型枚举 + + // ========== MEMBER - 会员 ========== + MEMBER_TASK_STATUS = 'member_task_status', // 会员状态 + BALANCE_RECORD_TYPE = 'balance_record_type', // 余额类型 + TASK_EXECUTE_STATUS = 'task_execute_status', // 会员任务执行状态 + COMBO_RECORD_STATUS = 'combo_record_status', // 连单记录领取状态 + BALANCE_RECORD_AMOUNT_TYPE = 'balance_record_amount_type', // 金额记录变更类型 + + // ========== WITHDRAWAL - 提现 ========== + MEMBER_WITHDRAWAL_STATUS = 'member_withdrawal_status', + MEMBER_WITHDRAWAL_TYPE = 'member_withdrawal_type', + MEMBER_USER_CRYPTO_CURRENCY_TYPE = 'member_user_crypto_currency_type', + + // ========== CHANNEL - 渠道 ========== + CHANNEL_TYPE = 'channel_type', + CHANNEL_SCENARIO = 'channel_scenario', + + // ========== MESSAGE - 消息 ========== + MESSAGE_TYPE = 'message_type', + + // ========== MESSAGE - 内容 ========== + CONTENT_TYPE = 'content_type', +} diff --git a/grailed-ui-admin-vue3/src/utils/domUtils.ts b/grailed-ui-admin-vue3/src/utils/domUtils.ts new file mode 100644 index 0000000..dbc1989 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/domUtils.ts @@ -0,0 +1,289 @@ +import { isServer } from './is' +const ieVersion = isServer ? 0 : Number((document as any).documentMode) +const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g +const MOZ_HACK_REGEXP = /^moz([A-Z])/ + +export interface ViewportOffsetResult { + left: number + top: number + right: number + bottom: number + rightIncludeBody: number + bottomIncludeBody: number +} + +/* istanbul ignore next */ +const trim = function (string: string) { + return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '') +} + +/* istanbul ignore next */ +const camelCase = function (name: string) { + return name + .replace(SPECIAL_CHARS_REGEXP, function (_, __, letter, offset) { + return offset ? letter.toUpperCase() : letter + }) + .replace(MOZ_HACK_REGEXP, 'Moz$1') +} + +/* istanbul ignore next */ +export function hasClass(el: Element, cls: string) { + if (!el || !cls) return false + if (cls.indexOf(' ') !== -1) { + throw new Error('className should not contain space.') + } + if (el.classList) { + return el.classList.contains(cls) + } else { + return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1 + } +} + +/* istanbul ignore next */ +export function addClass(el: Element, cls: string) { + if (!el) return + let curClass = el.className + const classes = (cls || '').split(' ') + + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i] + if (!clsName) continue + + if (el.classList) { + el.classList.add(clsName) + } else if (!hasClass(el, clsName)) { + curClass += ' ' + clsName + } + } + if (!el.classList) { + el.className = curClass + } +} + +/* istanbul ignore next */ +export function removeClass(el: Element, cls: string) { + if (!el || !cls) return + const classes = cls.split(' ') + let curClass = ' ' + el.className + ' ' + + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i] + if (!clsName) continue + + if (el.classList) { + el.classList.remove(clsName) + } else if (hasClass(el, clsName)) { + curClass = curClass.replace(' ' + clsName + ' ', ' ') + } + } + if (!el.classList) { + el.className = trim(curClass) + } +} + +export function getBoundingClientRect(element: Element): DOMRect | number { + if (!element || !element.getBoundingClientRect) { + return 0 + } + return element.getBoundingClientRect() +} + +/** + * 获取当前元素的left、top偏移 + * left:元素最左侧距离文档左侧的距离 + * top:元素最顶端距离文档顶端的距离 + * right:元素最右侧距离文档右侧的距离 + * bottom:元素最底端距离文档底端的距离 + * rightIncludeBody:元素最左侧距离文档右侧的距离 + * bottomIncludeBody:元素最底端距离文档最底部的距离 + * + * @description: + */ +export function getViewportOffset(element: Element): ViewportOffsetResult { + const doc = document.documentElement + + const docScrollLeft = doc.scrollLeft + const docScrollTop = doc.scrollTop + const docClientLeft = doc.clientLeft + const docClientTop = doc.clientTop + + const pageXOffset = window.pageXOffset + const pageYOffset = window.pageYOffset + + const box = getBoundingClientRect(element) + + const { left: retLeft, top: rectTop, width: rectWidth, height: rectHeight } = box as DOMRect + + const scrollLeft = (pageXOffset || docScrollLeft) - (docClientLeft || 0) + const scrollTop = (pageYOffset || docScrollTop) - (docClientTop || 0) + const offsetLeft = retLeft + pageXOffset + const offsetTop = rectTop + pageYOffset + + const left = offsetLeft - scrollLeft + const top = offsetTop - scrollTop + + const clientWidth = window.document.documentElement.clientWidth + const clientHeight = window.document.documentElement.clientHeight + return { + left: left, + top: top, + right: clientWidth - rectWidth - left, + bottom: clientHeight - rectHeight - top, + rightIncludeBody: clientWidth - left, + bottomIncludeBody: clientHeight - top + } +} + +/* istanbul ignore next */ +export const on = function ( + element: HTMLElement | Document | Window, + event: string, + handler: EventListenerOrEventListenerObject +): void { + if (element && event && handler) { + element.addEventListener(event, handler, false) + } +} + +/* istanbul ignore next */ +export const off = function ( + element: HTMLElement | Document | Window, + event: string, + handler: any +): void { + if (element && event && handler) { + element.removeEventListener(event, handler, false) + } +} + +/* istanbul ignore next */ +export const once = function (el: HTMLElement, event: string, fn: EventListener): void { + const listener = function (this: any, ...args: unknown[]) { + if (fn) { + // @ts-ignore + fn.apply(this, args) + } + off(el, event, listener) + } + on(el, event, listener) +} + +/* istanbul ignore next */ +export const getStyle = + ieVersion < 9 + ? function (element: Element | any, styleName: string) { + if (isServer) return + if (!element || !styleName) return null + styleName = camelCase(styleName) + if (styleName === 'float') { + styleName = 'styleFloat' + } + try { + switch (styleName) { + case 'opacity': + try { + return element.filters.item('alpha').opacity / 100 + } catch (e) { + return 1.0 + } + default: + return element.style[styleName] || element.currentStyle + ? element.currentStyle[styleName] + : null + } + } catch (e) { + return element.style[styleName] + } + } + : function (element: Element | any, styleName: string) { + if (isServer) return + if (!element || !styleName) return null + styleName = camelCase(styleName) + if (styleName === 'float') { + styleName = 'cssFloat' + } + try { + const computed = (document as any).defaultView.getComputedStyle(element, '') + return element.style[styleName] || computed ? computed[styleName] : null + } catch (e) { + return element.style[styleName] + } + } + +/* istanbul ignore next */ +export function setStyle(element: Element | any, styleName: any, value: any) { + if (!element || !styleName) return + + if (typeof styleName === 'object') { + for (const prop in styleName) { + if (Object.prototype.hasOwnProperty.call(styleName, prop)) { + setStyle(element, prop, styleName[prop]) + } + } + } else { + styleName = camelCase(styleName) + if (styleName === 'opacity' && ieVersion < 9) { + element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')' + } else { + element.style[styleName] = value + } + } +} + +/* istanbul ignore next */ +export const isScroll = (el: Element, vertical: any) => { + if (isServer) return + + const determinedDirection = vertical !== null || vertical !== undefined + const overflow = determinedDirection + ? vertical + ? getStyle(el, 'overflow-y') + : getStyle(el, 'overflow-x') + : getStyle(el, 'overflow') + + return overflow.match(/(scroll|auto)/) +} + +/* istanbul ignore next */ +export const getScrollContainer = (el: Element, vertical?: any) => { + if (isServer) return + + let parent: any = el + while (parent) { + if ([window, document, document.documentElement].includes(parent)) { + return window + } + if (isScroll(parent, vertical)) { + return parent + } + parent = parent.parentNode + } + + return parent +} + +/* istanbul ignore next */ +export const isInContainer = (el: Element, container: any) => { + if (isServer || !el || !container) return false + + const elRect = el.getBoundingClientRect() + let containerRect + + if ([window, document, document.documentElement, null, undefined].includes(container)) { + containerRect = { + top: 0, + right: window.innerWidth, + bottom: window.innerHeight, + left: 0 + } + } else { + containerRect = container.getBoundingClientRect() + } + + return ( + elRect.top < containerRect.bottom && + elRect.bottom > containerRect.top && + elRect.right > containerRect.left && + elRect.left < containerRect.right + ) +} diff --git a/grailed-ui-admin-vue3/src/utils/download.ts b/grailed-ui-admin-vue3/src/utils/download.ts new file mode 100644 index 0000000..ab20014 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/download.ts @@ -0,0 +1,38 @@ +const download0 = (data: Blob, fileName: string, mineType: string) => { + // 创建 blob + const blob = new Blob([data], { type: mineType }) + // 创建 href 超链接,点击进行下载 + window.URL = window.URL || window.webkitURL + const href = URL.createObjectURL(blob) + const downA = document.createElement('a') + downA.href = href + downA.download = fileName + downA.click() + // 销毁超连接 + window.URL.revokeObjectURL(href) +} + +const download = { + // 下载 Excel 方法 + excel: (data: Blob, fileName: string) => { + download0(data, fileName, 'application/vnd.ms-excel') + }, + // 下载 Word 方法 + word: (data: Blob, fileName: string) => { + download0(data, fileName, 'application/msword') + }, + // 下载 Zip 方法 + zip: (data: Blob, fileName: string) => { + download0(data, fileName, 'application/zip') + }, + // 下载 Html 方法 + html: (data: Blob, fileName: string) => { + download0(data, fileName, 'text/html') + }, + // 下载 Markdown 方法 + markdown: (data: Blob, fileName: string) => { + download0(data, fileName, 'text/markdown') + } +} + +export default download diff --git a/grailed-ui-admin-vue3/src/utils/filt.ts b/grailed-ui-admin-vue3/src/utils/filt.ts new file mode 100644 index 0000000..b1a7b2c --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/filt.ts @@ -0,0 +1,157 @@ +export const openWindow = ( + url: string, + opt?: { + target?: '_self' | '_blank' | string + noopener?: boolean + noreferrer?: boolean + } +) => { + const { target = '__blank', noopener = true, noreferrer = true } = opt || {} + const feature: string[] = [] + + noopener && feature.push('noopener=yes') + noreferrer && feature.push('noreferrer=yes') + + window.open(url, target, feature.join(',')) +} + +/** + * @description: base64 to blob + */ +export const dataURLtoBlob = (base64Buf: string): Blob => { + const arr = base64Buf.split(',') + const typeItem = arr[0] + const mime = typeItem.match(/:(.*?);/)![1] + const bstr = window.atob(arr[1]) + let n = bstr.length + const u8arr = new Uint8Array(n) + while (n--) { + u8arr[n] = bstr.charCodeAt(n) + } + return new Blob([u8arr], { type: mime }) +} + +/** + * img url to base64 + * @param url + */ +export const urlToBase64 = (url: string, mineType?: string): Promise => { + return new Promise((resolve, reject) => { + let canvas = document.createElement('CANVAS') as Nullable + const ctx = canvas!.getContext('2d') + + const img = new Image() + img.crossOrigin = '' + img.onload = function () { + if (!canvas || !ctx) { + return reject() + } + canvas.height = img.height + canvas.width = img.width + ctx.drawImage(img, 0, 0) + const dataURL = canvas.toDataURL(mineType || 'image/png') + canvas = null + resolve(dataURL) + } + img.src = url + }) +} + +/** + * Download online pictures + * @param url + * @param filename + * @param mime + * @param bom + */ +export const downloadByOnlineUrl = ( + url: string, + filename: string, + mime?: string, + bom?: BlobPart +) => { + urlToBase64(url).then((base64) => { + downloadByBase64(base64, filename, mime, bom) + }) +} + +/** + * Download pictures based on base64 + * @param buf + * @param filename + * @param mime + * @param bom + */ +export const downloadByBase64 = (buf: string, filename: string, mime?: string, bom?: BlobPart) => { + const base64Buf = dataURLtoBlob(buf) + downloadByData(base64Buf, filename, mime, bom) +} + +/** + * Download according to the background interface file stream + * @param {*} data + * @param {*} filename + * @param {*} mime + * @param {*} bom + */ +export const downloadByData = (data: BlobPart, filename: string, mime?: string, bom?: BlobPart) => { + const blobData = typeof bom !== 'undefined' ? [bom, data] : [data] + const blob = new Blob(blobData, { type: mime || 'application/octet-stream' }) + + const blobURL = window.URL.createObjectURL(blob) + const tempLink = document.createElement('a') + tempLink.style.display = 'none' + tempLink.href = blobURL + tempLink.setAttribute('download', filename) + if (typeof tempLink.download === 'undefined') { + tempLink.setAttribute('target', '_blank') + } + document.body.appendChild(tempLink) + tempLink.click() + document.body.removeChild(tempLink) + window.URL.revokeObjectURL(blobURL) +} + +/** + * Download file according to file address + * @param {*} sUrl + */ +export const downloadByUrl = ({ + url, + target = '_blank', + fileName +}: { + url: string + target?: '_self' | '_blank' + fileName?: string +}): boolean => { + const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1 + const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1 + + if (/(iP)/g.test(window.navigator.userAgent)) { + console.error('Your browser does not support download!') + return false + } + if (isChrome || isSafari) { + const link = document.createElement('a') + link.href = url + link.target = target + + if (link.download !== undefined) { + link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length) + } + + if (document.createEvent) { + const e = document.createEvent('MouseEvents') + e.initEvent('click', true, true) + link.dispatchEvent(e) + return true + } + } + if (url.indexOf('?') === -1) { + url += '?download' + } + + openWindow(url, { target }) + return true +} diff --git a/grailed-ui-admin-vue3/src/utils/formCreate.ts b/grailed-ui-admin-vue3/src/utils/formCreate.ts new file mode 100644 index 0000000..6d7dbc7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/formCreate.ts @@ -0,0 +1,54 @@ +/** + * 针对 https://github.com/xaboy/form-create-designer 封装的工具类 + */ + +// 编码表单 Conf +export const encodeConf = (designerRef: object) => { + // @ts-ignore + return JSON.stringify(designerRef.value.getOption()) +} + +// 编码表单 Fields +export const encodeFields = (designerRef: object) => { + // @ts-ignore + const rule = designerRef.value.getRule() + const fields: string[] = [] + rule.forEach((item) => { + fields.push(JSON.stringify(item)) + }) + return fields +} + +// 解码表单 Fields +export const decodeFields = (fields: string[]) => { + const rule: object[] = [] + fields.forEach((item) => { + rule.push(JSON.parse(item)) + }) + return rule +} + +// 设置表单的 Conf 和 Fields +export const setConfAndFields = (designerRef: object, conf: string, fields: string) => { + // @ts-ignore + designerRef.value.setOption(JSON.parse(conf)) + // @ts-ignore + designerRef.value.setRule(decodeFields(fields)) +} + +// 设置表单的 Conf 和 Fields +export const setConfAndFields2 = ( + detailPreview: object, + conf: string, + fields: string, + value?: object +) => { + // @ts-ignore + detailPreview.value.option = JSON.parse(conf) + // @ts-ignore + detailPreview.value.rule = decodeFields(fields) + if (value) { + // @ts-ignore + detailPreview.value.value = value + } +} diff --git a/grailed-ui-admin-vue3/src/utils/formRules.ts b/grailed-ui-admin-vue3/src/utils/formRules.ts new file mode 100644 index 0000000..2989867 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/formRules.ts @@ -0,0 +1,7 @@ +const { t } = useI18n() + +// 必填项 +export const required = { + required: true, + message: t('common.required') +} diff --git a/grailed-ui-admin-vue3/src/utils/formatTime.ts b/grailed-ui-admin-vue3/src/utils/formatTime.ts new file mode 100644 index 0000000..5e5c854 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/formatTime.ts @@ -0,0 +1,223 @@ +import dayjs from 'dayjs' + +/** + * 时间日期转换 + * @param date 当前时间,new Date() 格式 + * @param format 需要转换的时间格式字符串 + * @description format 字符串随意,如 `YYYY-mm、YYYY-mm-dd` + * @description format 季度:"YYYY-mm-dd HH:MM:SS QQQQ" + * @description format 星期:"YYYY-mm-dd HH:MM:SS WWW" + * @description format 几周:"YYYY-mm-dd HH:MM:SS ZZZ" + * @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ" + * @returns 返回拼接后的时间字符串 + */ +export function formatDate(date: Date, format?: string): string { + // 日期不存在,则返回空 + if (!date) { + return '' + } + // 日期存在,则进行格式化 + if (format === undefined) { + format = 'YYYY-MM-DD HH:mm:ss' + } + return dayjs(date).format(format) +} + +/** + * 获取当前的日期+时间 + */ +export function getNowDateTime() { + return dayjs() +} + +/** + * 获取当前日期是第几周 + * @param dateTime 当前传入的日期值 + * @returns 返回第几周数字值 + */ +export function getWeek(dateTime: Date): number { + const temptTime = new Date(dateTime.getTime()) + // 周几 + const weekday = temptTime.getDay() || 7 + // 周1+5天=周六 + temptTime.setDate(temptTime.getDate() - weekday + 1 + 5) + let firstDay = new Date(temptTime.getFullYear(), 0, 1) + const dayOfWeek = firstDay.getDay() + let spendDay = 1 + if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1 + firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay) + const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000) + return Math.ceil(d / 7) +} + +/** + * 将时间转换为 `几秒前`、`几分钟前`、`几小时前`、`几天前` + * @param param 当前时间,new Date() 格式或者字符串时间格式 + * @param format 需要转换的时间格式字符串 + * @description param 10秒: 10 * 1000 + * @description param 1分: 60 * 1000 + * @description param 1小时: 60 * 60 * 1000 + * @description param 24小时:60 * 60 * 24 * 1000 + * @description param 3天: 60 * 60* 24 * 1000 * 3 + * @returns 返回拼接后的时间字符串 + */ +export function formatPast(param: string | Date, format = 'YYYY-mm-dd HH:MM:SS'): string { + // 传入格式处理、存储转换值 + let t: any, s: number + // 获取js 时间戳 + let time: number = new Date().getTime() + // 是否是对象 + typeof param === 'string' || 'object' ? (t = new Date(param).getTime()) : (t = param) + // 当前时间戳 - 传入时间戳 + time = Number.parseInt(`${time - t}`) + if (time < 10000) { + // 10秒内 + return '刚刚' + } else if (time < 60000 && time >= 10000) { + // 超过10秒少于1分钟内 + s = Math.floor(time / 1000) + return `${s}秒前` + } else if (time < 3600000 && time >= 60000) { + // 超过1分钟少于1小时 + s = Math.floor(time / 60000) + return `${s}分钟前` + } else if (time < 86400000 && time >= 3600000) { + // 超过1小时少于24小时 + s = Math.floor(time / 3600000) + return `${s}小时前` + } else if (time < 259200000 && time >= 86400000) { + // 超过1天少于3天内 + s = Math.floor(time / 86400000) + return `${s}天前` + } else { + // 超过3天 + const date = typeof param === 'string' || 'object' ? new Date(param) : param + return formatDate(date, format) + } +} + +/** + * 时间问候语 + * @param param 当前时间,new Date() 格式 + * @description param 调用 `formatAxis(new Date())` 输出 `上午好` + * @returns 返回拼接后的时间字符串 + */ +export function formatAxis(param: Date): string { + const hour: number = new Date(param).getHours() + if (hour < 6) return '凌晨好' + else if (hour < 9) return '早上好' + else if (hour < 12) return '上午好' + else if (hour < 14) return '中午好' + else if (hour < 17) return '下午好' + else if (hour < 19) return '傍晚好' + else if (hour < 22) return '晚上好' + else return '夜里好' +} + +/** + * 将毫秒,转换成时间字符串。例如说,xx 分钟 + * + * @param ms 毫秒 + * @returns {string} 字符串 + */ +export function formatPast2(ms) { + const day = Math.floor(ms / (24 * 60 * 60 * 1000)) + const hour = Math.floor(ms / (60 * 60 * 1000) - day * 24) + const minute = Math.floor(ms / (60 * 1000) - day * 24 * 60 - hour * 60) + const second = Math.floor(ms / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60) + if (day > 0) { + return day + '天' + hour + '小时' + minute + '分钟' + } + if (hour > 0) { + return hour + '小时' + minute + '分钟' + } + if (minute > 0) { + return minute + '分钟' + } + if (second > 0) { + return second + '秒' + } else { + return 0 + '秒' + } +} + +/** + * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD HH:mm:ss 格式 + * + * @param row 行数据 + * @param column 字段 + * @param cellValue 字段值 + */ +// @ts-ignore +export const dateFormatter = (row, column, cellValue) => { + if (!cellValue) { + return + } + return formatDate(cellValue) +} + +/** + * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD 格式 + * + * @param row 行数据 + * @param column 字段 + * @param cellValue 字段值 + */ +// @ts-ignore +export const dateFormatter2 = (row, column, cellValue) => { + if (!cellValue) { + return + } + return formatDate(cellValue, 'YYYY-MM-DD') +} + +/** + * 设置起始日期,时间为00:00:00 + * @param param 传入日期 + * @returns 带时间00:00:00的日期 + */ +export function beginOfDay(param: Date) { + return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 0, 0, 0) +} + +/** + * 设置结束日期,时间为23:59:59 + * @param param 传入日期 + * @returns 带时间23:59:59的日期 + */ +export function endOfDay(param: Date) { + return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 23, 59, 59) +} + +/** + * 计算两个日期间隔天数 + * @param param1 日期1 + * @param param2 日期2 + */ +export function betweenDay(param1: Date, param2: Date) { + param1 = convertDate(param1) + param2 = convertDate(param2) + // 计算差值 + return Math.floor((param2.getTime() - param1.getTime()) / (24 * 3600 * 1000)) +} + +/** + * 日期计算 + * @param param1 日期 + * @param param2 添加的时间 + */ +export function addTime(param1: Date, param2: number) { + param1 = convertDate(param1) + return new Date(param1.getTime() + param2) +} + +/** + * 日期转换 + * @param param 日期 + */ +export function convertDate(param: Date | string) { + if (typeof param === 'string') { + return new Date(param) + } + return param +} diff --git a/grailed-ui-admin-vue3/src/utils/index.ts b/grailed-ui-admin-vue3/src/utils/index.ts new file mode 100644 index 0000000..3d596a3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/index.ts @@ -0,0 +1,211 @@ +/** + * + * @param component 需要注册的组件 + * @param alias 组件别名 + * @returns any + */ +export const withInstall = (component: T, alias?: string) => { + const comp = component as any + comp.install = (app: any) => { + app.component(comp.name || comp.displayName, component) + if (alias) { + app.config.globalProperties[alias] = component + } + } + return component as T & Plugin +} + +/** + * @param str 需要转下划线的驼峰字符串 + * @returns 字符串下划线 + */ +export const humpToUnderline = (str: string): string => { + return str.replace(/([A-Z])/g, '-$1').toLowerCase() +} + +/** + * @param str 需要转驼峰的下划线字符串 + * @returns 字符串驼峰 + */ +export const underlineToHump = (str: string): string => { + if (!str) return '' + return str.replace(/\-(\w)/g, (_, letter: string) => { + return letter.toUpperCase() + }) +} + +export const setCssVar = (prop: string, val: any, dom = document.documentElement) => { + dom.style.setProperty(prop, val) +} + +/** + * 查找数组对象的某个下标 + * @param {Array} ary 查找的数组 + * @param {Functon} fn 判断的方法 + */ +// eslint-disable-next-line +export const findIndex = (ary: Array, fn: Fn): number => { + if (ary.findIndex) { + return ary.findIndex(fn) + } + let index = -1 + ary.some((item: T, i: number, ary: Array) => { + const ret: T = fn(item, i, ary) + if (ret) { + index = i + return ret + } + }) + return index +} + +export const trim = (str: string) => { + return str.replace(/(^\s*)|(\s*$)/g, '') +} + +/** + * @param {Date | number | string} time 需要转换的时间 + * @param {String} fmt 需要转换的格式 如 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss + */ +export const formatTime = (time: Date | number | string, fmt: string) => { + if (!time) return '' + else { + const date = new Date(time) + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'H+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds(), + 'q+': Math.floor((date.getMonth() + 3) / 3), + S: date.getMilliseconds() + } + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + for (const k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace( + RegExp.$1, + RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length) + ) + } + } + return fmt + } +} + +/** + * 生成随机字符串 + */ +export const toAnyString = () => { + const str: string = 'xxxxx-xxxxx-4xxxx-yxxxx-xxxxx'.replace(/[xy]/g, (c: string) => { + const r: number = (Math.random() * 16) | 0 + const v: number = c === 'x' ? r : (r & 0x3) | 0x8 + return v.toString() + }) + return str +} + +export const generateUUID = () => { + if (typeof crypto === 'object') { + if (typeof crypto.randomUUID === 'function') { + return crypto.randomUUID() + } + if (typeof crypto.getRandomValues === 'function' && typeof Uint8Array === 'function') { + const callback = (c: any) => { + const num = Number(c) + return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString( + 16 + ) + } + return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, callback) + } + } + let timestamp = new Date().getTime() + let performanceNow = + (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0 + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { + let random = Math.random() * 16 + if (timestamp > 0) { + random = (timestamp + random) % 16 | 0 + timestamp = Math.floor(timestamp / 16) + } else { + random = (performanceNow + random) % 16 | 0 + performanceNow = Math.floor(performanceNow / 16) + } + return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16) + }) +} + +/** + * element plus 的文件大小 Formatter 实现 + * + * @param row 行数据 + * @param column 字段 + * @param cellValue 字段值 + */ +// @ts-ignore +export const fileSizeFormatter = (row, column, cellValue) => { + const fileSize = cellValue + const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + const srcSize = parseFloat(fileSize) + const index = Math.floor(Math.log(srcSize) / Math.log(1024)) + const size = srcSize / Math.pow(1024, index) + const sizeStr = size.toFixed(2) //保留的小数位数 + return sizeStr + ' ' + unitArr[index] +} + +/** + * 将值复制到目标对象,且以目标对象属性为准,例:target: {a:1} source:{a:2,b:3} 结果为:{a:2} + * @param target 目标对象 + * @param source 源对象 + */ +export const copyValueToTarget = (target, source) => { + const newObj = Object.assign({}, target, source) + // 删除多余属性 + Object.keys(newObj).forEach((key) => { + // 如果不是target中的属性则删除 + if (Object.keys(target).indexOf(key) === -1) { + delete newObj[key] + } + }) + // 更新目标对象值 + Object.assign(target, newObj) +} + +// TODO @puhui999:返回要带上 .00 哈.例如说 1.00 +/** + * 将一个整数转换为分数保留两位小数 + * @param num + */ +export const formatToFraction = (num: number | string | undefined): number => { + if (typeof num === 'undefined') return 0 + const parsedNumber = typeof num === 'string' ? parseFloat(num) : num + return parseFloat((parsedNumber / 100).toFixed(2)) +} + +/** + * 将一个分数转换为整数 + * @param num + */ +export const convertToInteger = (num: number | string | undefined): number => { + if (typeof num === 'undefined') return 0 + const parsedNumber = typeof num === 'string' ? parseFloat(num) : num + // TODO 分转元后还有小数则四舍五入 + return Math.round(parsedNumber * 100) +} + +/** + * 元转分 + */ +export const yuanToFen = (amount: string | number): number => { + return Math.round(Number(amount) * 100) +} + +/** + * 分转元 + */ +export const fenToYuan = (amount: string | number): number => { + return Number((Number(amount) / 100).toFixed(2)) +} diff --git a/grailed-ui-admin-vue3/src/utils/is.ts b/grailed-ui-admin-vue3/src/utils/is.ts new file mode 100644 index 0000000..3752985 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/is.ts @@ -0,0 +1,105 @@ +// copy to vben-admin + +const toString = Object.prototype.toString + +export const is = (val: unknown, type: string) => { + return toString.call(val) === `[object ${type}]` +} + +export const isDef = (val?: T): val is T => { + return typeof val !== 'undefined' +} + +export const isUnDef = (val?: T): val is T => { + return !isDef(val) +} + +export const isObject = (val: any): val is Record => { + return val !== null && is(val, 'Object') +} + +export const isEmpty = (val: T): val is T => { + if (isArray(val) || isString(val)) { + return val.length === 0 + } + + if (val instanceof Map || val instanceof Set) { + return val.size === 0 + } + + if (isObject(val)) { + return Object.keys(val).length === 0 + } + + return false +} + +export const isDate = (val: unknown): val is Date => { + return is(val, 'Date') +} + +export const isNull = (val: unknown): val is null => { + return val === null +} + +export const isNullAndUnDef = (val: unknown): val is null | undefined => { + return isUnDef(val) && isNull(val) +} + +export const isNullOrUnDef = (val: unknown): val is null | undefined => { + return isUnDef(val) || isNull(val) +} + +export const isNumber = (val: unknown): val is number => { + return is(val, 'Number') +} + +export const isPromise = (val: unknown): val is Promise => { + return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch) +} + +export const isString = (val: unknown): val is string => { + return is(val, 'String') +} + +export const isFunction = (val: unknown): val is Function => { + return typeof val === 'function' +} + +export const isBoolean = (val: unknown): val is boolean => { + return is(val, 'Boolean') +} + +export const isRegExp = (val: unknown): val is RegExp => { + return is(val, 'RegExp') +} + +export const isArray = (val: any): val is Array => { + return val && Array.isArray(val) +} + +export const isWindow = (val: any): val is Window => { + return typeof window !== 'undefined' && is(val, 'Window') +} + +export const isElement = (val: unknown): val is Element => { + return isObject(val) && !!val.tagName +} + +export const isMap = (val: unknown): val is Map => { + return is(val, 'Map') +} + +export const isServer = typeof window === 'undefined' + +export const isClient = !isServer + +export const isUrl = (path: string): boolean => { + const reg = + /(((^https?:(?:\/\/)?)(?:[-:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&%@.\w_]*)#?(?:[\w]*))?)$/ + return reg.test(path) +} + +export const isDark = (): boolean => { + return window.matchMedia('(prefers-color-scheme: dark)').matches +} diff --git a/grailed-ui-admin-vue3/src/utils/jsencrypt.ts b/grailed-ui-admin-vue3/src/utils/jsencrypt.ts new file mode 100644 index 0000000..374d5f6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/jsencrypt.ts @@ -0,0 +1,31 @@ +import { JSEncrypt } from 'jsencrypt' + +// 密钥对生成 http://web.chacuo.net/netrsakeypair + +const publicKey = + 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' + + 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' + +const privateKey = + 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' + + '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' + + 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' + + 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' + + 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' + + 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' + + 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' + + 'UP8iWi1Qw0Y=' + +// 加密 +export const encrypt = (txt: string) => { + const encryptor = new JSEncrypt() + encryptor.setPublicKey(publicKey) // 设置公钥 + return encryptor.encrypt(txt) // 对数据进行加密 +} + +// 解密 +export const decrypt = (txt: string) => { + const encryptor = new JSEncrypt() + encryptor.setPrivateKey(privateKey) // 设置私钥 + return encryptor.decrypt(txt) // 对数据进行解密 +} diff --git a/grailed-ui-admin-vue3/src/utils/permission.ts b/grailed-ui-admin-vue3/src/utils/permission.ts new file mode 100644 index 0000000..a63ee62 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/permission.ts @@ -0,0 +1,45 @@ +import { CACHE_KEY, useCache } from '@/hooks/web/useCache' + +const { t } = useI18n() // 国际化 + +/** + * 字符权限校验 + * @param {Array} value 校验值 + * @returns {Boolean} + */ +export function checkPermi(value: string[]) { + if (value && value instanceof Array && value.length > 0) { + const { wsCache } = useCache() + const permissionDatas = value + const all_permission = '*:*:*' + const permissions = wsCache.get(CACHE_KEY.USER).permissions + const hasPermission = permissions.some((permission) => { + return all_permission === permission || permissionDatas.includes(permission) + }) + return !!hasPermission + } else { + console.error(t('permission.hasPermission')) + return false + } +} + +/** + * 角色权限校验 + * @param {string[]} value 校验值 + * @returns {Boolean} + */ +export function checkRole(value: string[]) { + if (value && value instanceof Array && value.length > 0) { + const { wsCache } = useCache() + const permissionRoles = value + const super_admin = 'admin' + const roles = wsCache.get(CACHE_KEY.USER).roles + const hasRole = roles.some((role) => { + return super_admin === role || permissionRoles.includes(role) + }) + return !!hasRole + } else { + console.error(t('permission.hasRole')) + return false + } +} diff --git a/grailed-ui-admin-vue3/src/utils/propTypes.ts b/grailed-ui-admin-vue3/src/utils/propTypes.ts new file mode 100644 index 0000000..fb8f84e --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/propTypes.ts @@ -0,0 +1,28 @@ +import { createTypes, VueTypesInterface, VueTypeValidableDef } from 'vue-types' +import { CSSProperties } from 'vue' + +// 自定义扩展vue-types +type PropTypes = VueTypesInterface & { + readonly style: VueTypeValidableDef +} + +const propTypes = createTypes({ + func: undefined, + bool: undefined, + string: undefined, + number: undefined, + object: undefined, + integer: undefined +}) as PropTypes + +// 需要自定义扩展的类型 +// see: https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method +// propTypes.extend([ +// { +// name: 'style', +// getter: true, +// type: [String, Object], +// default: undefined +// } +// ]) +export { propTypes } diff --git a/grailed-ui-admin-vue3/src/utils/routerHelper.ts b/grailed-ui-admin-vue3/src/utils/routerHelper.ts new file mode 100644 index 0000000..a682565 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/routerHelper.ts @@ -0,0 +1,238 @@ +import type { RouteLocationNormalized, Router, RouteRecordNormalized } from 'vue-router' +import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' +import { isUrl } from '@/utils/is' +import { cloneDeep, omit } from 'lodash-es' + +const modules = import.meta.glob('../views/**/*.{vue,tsx}') +/** + * 注册一个异步组件 + * @param componentPath 例:/bpm/oa/leave/detail + */ +export const registerComponent = (componentPath: string) => { + for (const item in modules) { + if (item.includes(componentPath)) { + // 使用异步组件的方式来动态加载组件 + // @ts-ignore + return defineAsyncComponent(modules[item]) + } + } +} +/* Layout */ +export const Layout = () => import('@/layout/Layout.vue') + +export const getParentLayout = () => { + return () => + new Promise((resolve) => { + resolve({ + name: 'ParentLayout' + }) + }) +} + +// 按照路由中meta下的rank等级升序来排序路由 +export const ascending = (arr: any[]) => { + arr.forEach((v) => { + if (v?.meta?.rank === null) v.meta.rank = undefined + if (v?.meta?.rank === 0) { + if (v.name !== 'home' && v.path !== '/') { + console.warn('rank only the home page can be 0') + } + } + }) + return arr.sort((a: { meta: { rank: number } }, b: { meta: { rank: number } }) => { + return a?.meta?.rank - b?.meta?.rank + }) +} + +export const getRawRoute = (route: RouteLocationNormalized): RouteLocationNormalized => { + if (!route) return route + const { matched, ...opt } = route + return { + ...opt, + matched: (matched + ? matched.map((item) => ({ + meta: item.meta, + name: item.name, + path: item.path + })) + : undefined) as RouteRecordNormalized[] + } +} + +// 后端控制路由生成 +export const generateRoute = (routes: AppCustomRouteRecordRaw[]): AppRouteRecordRaw[] => { + const res: AppRouteRecordRaw[] = [] + const modulesRoutesKeys = Object.keys(modules) + for (const route of routes) { + const meta = { + title: route.name, + icon: route.icon, + hidden: !route.visible, + noCache: !route.keepAlive, + alwaysShow: + route.children && + route.children.length === 1 && + (route.alwaysShow !== undefined ? route.alwaysShow : true) + } + // 路由地址转首字母大写驼峰,作为路由名称,适配keepAlive + let data: AppRouteRecordRaw = { + path: route.path, + name: + route.componentName && route.componentName.length > 0 + ? route.componentName + : toCamelCase(route.path, true), + redirect: route.redirect, + meta: meta + } + //处理顶级非目录路由 + if (!route.children && route.parentId == 0 && route.component) { + data.component = Layout + data.meta = {} + data.name = toCamelCase(route.path, true) + 'Parent' + data.redirect = '' + meta.alwaysShow = true + const childrenData: AppRouteRecordRaw = { + path: '', + name: toCamelCase(route.path, true), + redirect: route.redirect, + meta: meta + } + const index = route?.component + ? modulesRoutesKeys.findIndex((ev) => ev.includes(route.component)) + : modulesRoutesKeys.findIndex((ev) => ev.includes(route.path)) + childrenData.component = modules[modulesRoutesKeys[index]] + data.children = [childrenData] + } else { + // 目录 + if (route.children) { + data.component = Layout + data.redirect = getRedirect(route.path, route.children) + // 外链 + } else if (isUrl(route.path)) { + data = { + path: '/external-link', + component: Layout, + meta: { + name: route.name + }, + children: [data] + } as AppRouteRecordRaw + // 菜单 + } else { + // 对后端传component组件路径和不传做兼容(如果后端传component组件路径,那么path可以随便写,如果不传,component组件路径会根path保持一致) + const index = route?.component + ? modulesRoutesKeys.findIndex((ev) => ev.includes(route.component)) + : modulesRoutesKeys.findIndex((ev) => ev.includes(route.path)) + data.component = modules[modulesRoutesKeys[index]] + } + if (route.children) { + data.children = generateRoute(route.children) + } + } + res.push(data as AppRouteRecordRaw) + } + return res +} +export const getRedirect = (parentPath: string, children: AppCustomRouteRecordRaw[]) => { + if (!children || children.length == 0) { + return parentPath + } + const path = generateRoutePath(parentPath, children[0].path) + // 递归子节点 + if (children[0].children) return getRedirect(path, children[0].children) +} +const generateRoutePath = (parentPath: string, path: string) => { + if (parentPath.endsWith('/')) { + parentPath = parentPath.slice(0, -1) // 移除默认的 / + } + if (!path.startsWith('/')) { + path = '/' + path + } + return parentPath + path +} +export const pathResolve = (parentPath: string, path: string) => { + if (isUrl(path)) return path + const childPath = path.startsWith('/') || !path ? path : `/${path}` + return `${parentPath}${childPath}`.replace(/\/\//g, '/') +} + +// 路由降级 +export const flatMultiLevelRoutes = (routes: AppRouteRecordRaw[]) => { + const modules: AppRouteRecordRaw[] = cloneDeep(routes) + for (let index = 0; index < modules.length; index++) { + const route = modules[index] + if (!isMultipleRoute(route)) { + continue + } + promoteRouteLevel(route) + } + return modules +} + +// 层级是否大于2 +const isMultipleRoute = (route: AppRouteRecordRaw) => { + if (!route || !Reflect.has(route, 'children') || !route.children?.length) { + return false + } + + const children = route.children + + let flag = false + for (let index = 0; index < children.length; index++) { + const child = children[index] + if (child.children?.length) { + flag = true + break + } + } + return flag +} + +// 生成二级路由 +const promoteRouteLevel = (route: AppRouteRecordRaw) => { + let router: Router | null = createRouter({ + routes: [route as RouteRecordRaw], + history: createWebHashHistory() + }) + + const routes = router.getRoutes() + addToChildren(routes, route.children || [], route) + router = null + + route.children = route.children?.map((item) => omit(item, 'children')) +} + +// 添加所有子菜单 +const addToChildren = ( + routes: RouteRecordNormalized[], + children: AppRouteRecordRaw[], + routeModule: AppRouteRecordRaw +) => { + for (let index = 0; index < children.length; index++) { + const child = children[index] + const route = routes.find((item) => item.name === child.name) + if (!route) { + continue + } + routeModule.children = routeModule.children || [] + if (!routeModule.children.find((item) => item.name === route.name)) { + routeModule.children?.push(route as unknown as AppRouteRecordRaw) + } + if (child.children?.length) { + addToChildren(routes, child.children, routeModule) + } + } +} +const toCamelCase = (str: string, upperCaseFirst: boolean) => { + str = (str || '') + .replace(/-(.)/g, function (group1: string) { + return group1.toUpperCase() + }) + .replaceAll('-', '') + + if (upperCaseFirst && str) { + str = str.charAt(0).toUpperCase() + str.slice(1) + } + + return str +} diff --git a/grailed-ui-admin-vue3/src/utils/tree.ts b/grailed-ui-admin-vue3/src/utils/tree.ts new file mode 100644 index 0000000..c8503f5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/tree.ts @@ -0,0 +1,399 @@ +interface TreeHelperConfig { + id: string + children: string + pid: string +} + +const DEFAULT_CONFIG: TreeHelperConfig = { + id: 'id', + children: 'children', + pid: 'pid' +} +export const defaultProps = { + children: 'children', + label: 'name', + value: 'id', + isLeaf: 'leaf' +} + +const getConfig = (config: Partial) => Object.assign({}, DEFAULT_CONFIG, config) + +// tree from list +export const listToTree = (list: any[], config: Partial = {}): T[] => { + const conf = getConfig(config) as TreeHelperConfig + const nodeMap = new Map() + const result: T[] = [] + const { id, children, pid } = conf + + for (const node of list) { + node[children] = node[children] || [] + nodeMap.set(node[id], node) + } + for (const node of list) { + const parent = nodeMap.get(node[pid]) + ;(parent ? parent.children : result).push(node) + } + return result +} + +export const treeToList = (tree: any, config: Partial = {}): T => { + config = getConfig(config) + const { children } = config + const result: any = [...tree] + for (let i = 0; i < result.length; i++) { + if (!result[i][children!]) continue + result.splice(i + 1, 0, ...result[i][children!]) + } + return result +} + +export const findNode = ( + tree: any, + func: Fn, + config: Partial = {} +): T | null => { + config = getConfig(config) + const { children } = config + const list = [...tree] + for (const node of list) { + if (func(node)) return node + node[children!] && list.push(...node[children!]) + } + return null +} + +export const findNodeAll = ( + tree: any, + func: Fn, + config: Partial = {} +): T[] => { + config = getConfig(config) + const { children } = config + const list = [...tree] + const result: T[] = [] + for (const node of list) { + func(node) && result.push(node) + node[children!] && list.push(...node[children!]) + } + return result +} + +export const findPath = ( + tree: any, + func: Fn, + config: Partial = {} +): T | T[] | null => { + config = getConfig(config) + const path: T[] = [] + const list = [...tree] + const visitedSet = new Set() + const { children } = config + while (list.length) { + const node = list[0] + if (visitedSet.has(node)) { + path.pop() + list.shift() + } else { + visitedSet.add(node) + node[children!] && list.unshift(...node[children!]) + path.push(node) + if (func(node)) { + return path + } + } + } + return null +} + +export const findPathAll = (tree: any, func: Fn, config: Partial = {}) => { + config = getConfig(config) + const path: any[] = [] + const list = [...tree] + const result: any[] = [] + const visitedSet = new Set(), + { children } = config + while (list.length) { + const node = list[0] + if (visitedSet.has(node)) { + path.pop() + list.shift() + } else { + visitedSet.add(node) + node[children!] && list.unshift(...node[children!]) + path.push(node) + func(node) && result.push([...path]) + } + } + return result +} + +export const filter = ( + tree: T[], + func: (n: T) => boolean, + config: Partial = {} +): T[] => { + config = getConfig(config) + const children = config.children as string + + function listFilter(list: T[]) { + return list + .map((node: any) => ({ ...node })) + .filter((node) => { + node[children] = node[children] && listFilter(node[children]) + return func(node) || (node[children] && node[children].length) + }) + } + + return listFilter(tree) +} + +export const forEach = ( + tree: T[], + func: (n: T) => any, + config: Partial = {} +): void => { + config = getConfig(config) + const list: any[] = [...tree] + const { children } = config + for (let i = 0; i < list.length; i++) { + // func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿 + if (func(list[i])) { + return + } + children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]) + } +} + +/** + * @description: Extract tree specified structure + */ +export const treeMap = ( + treeData: T[], + opt: { children?: string; conversion: Fn } +): T[] => { + return treeData.map((item) => treeMapEach(item, opt)) +} + +/** + * @description: Extract tree specified structure + */ +export const treeMapEach = ( + data: any, + { children = 'children', conversion }: { children?: string; conversion: Fn } +) => { + const haveChildren = Array.isArray(data[children]) && data[children].length > 0 + const conversionData = conversion(data) || {} + if (haveChildren) { + return { + ...conversionData, + [children]: data[children].map((i: number) => + treeMapEach(i, { + children, + conversion + }) + ) + } + } else { + return { + ...conversionData + } + } +} + +/** + * 递归遍历树结构 + * @param treeDatas 树 + * @param callBack 回调 + * @param parentNode 父节点 + */ +export const eachTree = (treeDatas: any[], callBack: Fn, parentNode = {}) => { + treeDatas.forEach((element) => { + const newNode = callBack(element, parentNode) || element + if (element.children) { + eachTree(element.children, callBack, newNode) + } + }) +} + +/** + * 构造树型结构数据 + * @param {*} data 数据源 + * @param {*} id id字段 默认 'id' + * @param {*} parentId 父节点字段 默认 'parentId' + * @param {*} children 孩子节点字段 默认 'children' + */ +export const handleTree = (data: any[], id?: string, parentId?: string, children?: string) => { + if (!Array.isArray(data)) { + console.warn('data must be an array') + return [] + } + const config = { + id: id || 'id', + parentId: parentId || 'parentId', + childrenList: children || 'children' + } + + const childrenListMap = {} + const nodeIds = {} + const tree: any[] = [] + + for (const d of data) { + const parentId = d[config.parentId] + if (childrenListMap[parentId] == null) { + childrenListMap[parentId] = [] + } + nodeIds[d[config.id]] = d + childrenListMap[parentId].push(d) + } + + for (const d of data) { + const parentId = d[config.parentId] + if (nodeIds[parentId] == null) { + tree.push(d) + } + } + + for (const t of tree) { + adaptToChildrenList(t) + } + + function adaptToChildrenList(o) { + if (childrenListMap[o[config.id]] !== null) { + o[config.childrenList] = childrenListMap[o[config.id]] + } + if (o[config.childrenList]) { + for (const c of o[config.childrenList]) { + adaptToChildrenList(c) + } + } + } + + return tree +} + +/** + * 构造树型结构数据 + * @param {*} data 数据源 + * @param {*} id id字段 默认 'id' + * @param {*} parentId 父节点字段 默认 'parentId' + * @param {*} children 孩子节点字段 默认 'children' + * @param {*} rootId 根Id 默认 0 + */ +// @ts-ignore +export const handleTree2 = (data, id, parentId, children, rootId) => { + id = id || 'id' + parentId = parentId || 'parentId' + // children = children || 'children' + rootId = + rootId || + Math.min( + ...data.map((item) => { + return item[parentId] + }) + ) || + 0 + // 对源数据深度克隆 + const cloneData = JSON.parse(JSON.stringify(data)) + // 循环所有项 + const treeData = cloneData.filter((father) => { + const branchArr = cloneData.filter((child) => { + // 返回每一项的子级数组 + return father[id] === child[parentId] + }) + branchArr.length > 0 ? (father.children = branchArr) : '' + // 返回第一层 + return father[parentId] === rootId + }) + return treeData !== '' ? treeData : data +} + +/** + * 校验选中的节点,是否为指定 level + * + * @param tree 要操作的树结构数据 + * @param nodeId 需要判断在什么层级的数据 + * @param level 检查的级别, 默认检查到二级 + * @return true 是;false 否 + */ +export const checkSelectedNode = (tree: any[], nodeId: any, level = 2): boolean => { + if (typeof tree === 'undefined' || !Array.isArray(tree) || tree.length === 0) { + console.warn('tree must be an array') + return false + } + + // 校验是否是一级节点 + if (tree.some((item) => item.id === nodeId)) { + return false + } + + // 递归计数 + let count = 1 + + // 深层次校验 + function performAThoroughValidation(arr: any[]): boolean { + count += 1 + for (const item of arr) { + if (item.id === nodeId) { + return true + } else if (typeof item.children !== 'undefined' && item.children.length !== 0) { + if (performAThoroughValidation(item.children)) { + return true + } + } + } + return false + } + + for (const item of tree) { + count = 1 + if (performAThoroughValidation(item.children)) { + // 找到后对比是否是期望的层级 + if (count >= level) { + return true + } + } + } + + return false +} + +/** + * 获取节点的完整结构 + * @param tree 树数据 + * @param nodeId 节点 id + */ +export const treeToString = (tree: any[], nodeId) => { + if (typeof tree === 'undefined' || !Array.isArray(tree) || tree.length === 0) { + console.warn('tree must be an array') + return '' + } + // 校验是否是一级节点 + const node = tree.find((item) => item.id === nodeId) + if (typeof node !== 'undefined') { + return node.name + } + let str = '' + + function performAThoroughValidation(arr) { + for (const item of arr) { + if (item.id === nodeId) { + str += `/${item.name}` + return true + } else if (typeof item.children !== 'undefined' && item.children.length !== 0) { + str += `/${item.name}` + if (performAThoroughValidation(item.children)) { + return true + } + } + } + return false + } + + for (const item of tree) { + str = `${item.name}` + if (performAThoroughValidation(item.children)) { + break + } + } + return str +} diff --git a/grailed-ui-admin-vue3/src/utils/tsxHelper.ts b/grailed-ui-admin-vue3/src/utils/tsxHelper.ts new file mode 100644 index 0000000..6087fa3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/utils/tsxHelper.ts @@ -0,0 +1,16 @@ +import { Slots } from 'vue' +import { isFunction } from '@/utils/is' + +export const getSlot = (slots: Slots, slot = 'default', data?: Recordable) => { + // Reflect.has 判断一个对象是否存在某个属性 + if (!slots || !Reflect.has(slots, slot)) { + return null + } + if (!isFunction(slots[slot])) { + console.error(`${slot} is not a function!`) + return null + } + const slotFn = slots[slot] + if (!slotFn) return null + return slotFn(data) +} diff --git a/grailed-ui-admin-vue3/src/views/Error/403.vue b/grailed-ui-admin-vue3/src/views/Error/403.vue new file mode 100644 index 0000000..a3ec487 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/Error/403.vue @@ -0,0 +1,8 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/Error/404.vue b/grailed-ui-admin-vue3/src/views/Error/404.vue new file mode 100644 index 0000000..f6a08de --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/Error/404.vue @@ -0,0 +1,7 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/Error/500.vue b/grailed-ui-admin-vue3/src/views/Error/500.vue new file mode 100644 index 0000000..998487d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/Error/500.vue @@ -0,0 +1,7 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/Home/Index.vue b/grailed-ui-admin-vue3/src/views/Home/Index.vue new file mode 100644 index 0000000..505623a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/Home/Index.vue @@ -0,0 +1,224 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mall/trade/delivery/pickUpStore/index.vue b/grailed-ui-admin-vue3/src/views/mall/trade/delivery/pickUpStore/index.vue new file mode 100644 index 0000000..c896344 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mall/trade/delivery/pickUpStore/index.vue @@ -0,0 +1,201 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mall/trade/order/index.vue b/grailed-ui-admin-vue3/src/views/mall/trade/order/index.vue new file mode 100644 index 0000000..d51ec11 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mall/trade/order/index.vue @@ -0,0 +1,572 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mall/trade/order/tradeOrderDetail.vue b/grailed-ui-admin-vue3/src/views/mall/trade/order/tradeOrderDetail.vue new file mode 100644 index 0000000..83b0b9c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mall/trade/order/tradeOrderDetail.vue @@ -0,0 +1,365 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/UserAssignRoleForm.vue b/grailed-ui-admin-vue3/src/views/member/UserAssignRoleForm.vue new file mode 100644 index 0000000..57d7353 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/UserAssignRoleForm.vue @@ -0,0 +1,96 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/UserForm.vue b/grailed-ui-admin-vue3/src/views/member/UserForm.vue new file mode 100644 index 0000000..9ee126b --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/UserForm.vue @@ -0,0 +1,203 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/UserImportForm.vue b/grailed-ui-admin-vue3/src/views/member/UserImportForm.vue new file mode 100644 index 0000000..ad9eae3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/UserImportForm.vue @@ -0,0 +1,133 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/balanceAccount/BalanceAccountForm.vue b/grailed-ui-admin-vue3/src/views/member/balanceAccount/BalanceAccountForm.vue new file mode 100644 index 0000000..fda2014 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/balanceAccount/BalanceAccountForm.vue @@ -0,0 +1,117 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/balanceAccount/index.vue b/grailed-ui-admin-vue3/src/views/member/balanceAccount/index.vue new file mode 100644 index 0000000..6006454 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/balanceAccount/index.vue @@ -0,0 +1,229 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/balanceRecord/BalanceRecordForm.vue b/grailed-ui-admin-vue3/src/views/member/balanceRecord/BalanceRecordForm.vue new file mode 100644 index 0000000..7307289 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/balanceRecord/BalanceRecordForm.vue @@ -0,0 +1,139 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/balanceRecord/index.vue b/grailed-ui-admin-vue3/src/views/member/balanceRecord/index.vue new file mode 100644 index 0000000..66554e7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/balanceRecord/index.vue @@ -0,0 +1,237 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/BankWithdrawalDetailForm.vue b/grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/BankWithdrawalDetailForm.vue new file mode 100644 index 0000000..9b11c6c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/BankWithdrawalDetailForm.vue @@ -0,0 +1,138 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/index.vue b/grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/index.vue new file mode 100644 index 0000000..9526e50 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/bankWithdrawalDetail/index.vue @@ -0,0 +1,226 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/brand/BrandForm.vue b/grailed-ui-admin-vue3/src/views/member/brand/BrandForm.vue new file mode 100644 index 0000000..3dfd2fc --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/brand/BrandForm.vue @@ -0,0 +1,119 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/brand/index.vue b/grailed-ui-admin-vue3/src/views/member/brand/index.vue new file mode 100644 index 0000000..377e284 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/brand/index.vue @@ -0,0 +1,188 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/category/CategoryForm.vue b/grailed-ui-admin-vue3/src/views/member/category/CategoryForm.vue new file mode 100644 index 0000000..da2566c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/category/CategoryForm.vue @@ -0,0 +1,124 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/category/index.vue b/grailed-ui-admin-vue3/src/views/member/category/index.vue new file mode 100644 index 0000000..5bc9865 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/category/index.vue @@ -0,0 +1,214 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/channel/ChannelForm.vue b/grailed-ui-admin-vue3/src/views/member/channel/ChannelForm.vue new file mode 100644 index 0000000..8d2fd35 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/channel/ChannelForm.vue @@ -0,0 +1,137 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/channel/index.vue b/grailed-ui-admin-vue3/src/views/member/channel/index.vue new file mode 100644 index 0000000..a1e5651 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/channel/index.vue @@ -0,0 +1,223 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/channelConfig/ChannelConfigForm.vue b/grailed-ui-admin-vue3/src/views/member/channelConfig/ChannelConfigForm.vue new file mode 100644 index 0000000..b80215a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/channelConfig/ChannelConfigForm.vue @@ -0,0 +1,132 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/channelConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/channelConfig/index.vue new file mode 100644 index 0000000..e26cb8e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/channelConfig/index.vue @@ -0,0 +1,262 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/checkIn/CheckInForm.vue b/grailed-ui-admin-vue3/src/views/member/checkIn/CheckInForm.vue new file mode 100644 index 0000000..58f38db --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/checkIn/CheckInForm.vue @@ -0,0 +1,105 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/checkIn/index.vue b/grailed-ui-admin-vue3/src/views/member/checkIn/index.vue new file mode 100644 index 0000000..e8d1894 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/checkIn/index.vue @@ -0,0 +1,211 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/combinationConfig/CombinationConfigForm.vue b/grailed-ui-admin-vue3/src/views/member/combinationConfig/CombinationConfigForm.vue new file mode 100644 index 0000000..946056e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/combinationConfig/CombinationConfigForm.vue @@ -0,0 +1,132 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/combinationConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/combinationConfig/index.vue new file mode 100644 index 0000000..5c51408 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/combinationConfig/index.vue @@ -0,0 +1,256 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/combinationRecord/CombinationRecordForm.vue b/grailed-ui-admin-vue3/src/views/member/combinationRecord/CombinationRecordForm.vue new file mode 100644 index 0000000..aeb1793 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/combinationRecord/CombinationRecordForm.vue @@ -0,0 +1,136 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/combinationRecord/index.vue b/grailed-ui-admin-vue3/src/views/member/combinationRecord/index.vue new file mode 100644 index 0000000..04d0a27 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/combinationRecord/index.vue @@ -0,0 +1,293 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/combinationReocrd/CombinationReocrdForm.vue b/grailed-ui-admin-vue3/src/views/member/combinationReocrd/CombinationReocrdForm.vue new file mode 100644 index 0000000..a039062 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/combinationReocrd/CombinationReocrdForm.vue @@ -0,0 +1,136 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/combinationReocrd/index.vue b/grailed-ui-admin-vue3/src/views/member/combinationReocrd/index.vue new file mode 100644 index 0000000..68b5f68 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/combinationReocrd/index.vue @@ -0,0 +1,293 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/contentCarouse/ContentCarouseForm.vue b/grailed-ui-admin-vue3/src/views/member/contentCarouse/ContentCarouseForm.vue new file mode 100644 index 0000000..84f68c3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/contentCarouse/ContentCarouseForm.vue @@ -0,0 +1,132 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/contentCarouse/index.vue b/grailed-ui-admin-vue3/src/views/member/contentCarouse/index.vue new file mode 100644 index 0000000..2d5329a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/contentCarouse/index.vue @@ -0,0 +1,215 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/ContinuousSignInConfigForm.vue b/grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/ContinuousSignInConfigForm.vue new file mode 100644 index 0000000..e8920ba --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/ContinuousSignInConfigForm.vue @@ -0,0 +1,101 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/index.vue new file mode 100644 index 0000000..41a694d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/continuousSignInConfig/index.vue @@ -0,0 +1,184 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/countries/CountriesForm.vue b/grailed-ui-admin-vue3/src/views/member/countries/CountriesForm.vue new file mode 100644 index 0000000..42a53c6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/countries/CountriesForm.vue @@ -0,0 +1,121 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/countries/index.vue b/grailed-ui-admin-vue3/src/views/member/countries/index.vue new file mode 100644 index 0000000..f371128 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/countries/index.vue @@ -0,0 +1,223 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/CryptoWithdrawalDetailForm.vue b/grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/CryptoWithdrawalDetailForm.vue new file mode 100644 index 0000000..52cde16 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/CryptoWithdrawalDetailForm.vue @@ -0,0 +1,119 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/index.vue b/grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/index.vue new file mode 100644 index 0000000..e391980 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/cryptoWithdrawalDetail/index.vue @@ -0,0 +1,182 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/CumulativeSignInConfigForm.vue b/grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/CumulativeSignInConfigForm.vue new file mode 100644 index 0000000..124ea6b --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/CumulativeSignInConfigForm.vue @@ -0,0 +1,101 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/index.vue new file mode 100644 index 0000000..d22f349 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/cumulativeSignInConfig/index.vue @@ -0,0 +1,187 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/dailySignInConfig/DailySignInConfigForm.vue b/grailed-ui-admin-vue3/src/views/member/dailySignInConfig/DailySignInConfigForm.vue new file mode 100644 index 0000000..897c0bc --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/dailySignInConfig/DailySignInConfigForm.vue @@ -0,0 +1,102 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/dailySignInConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/dailySignInConfig/index.vue new file mode 100644 index 0000000..7647e2a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/dailySignInConfig/index.vue @@ -0,0 +1,172 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/financeConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/financeConfig/index.vue new file mode 100644 index 0000000..d6ea9fc --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/financeConfig/index.vue @@ -0,0 +1,128 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/h5Pages/index.vue b/grailed-ui-admin-vue3/src/views/member/h5Pages/index.vue new file mode 100644 index 0000000..a06e278 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/h5Pages/index.vue @@ -0,0 +1,95 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/index.vue b/grailed-ui-admin-vue3/src/views/member/index.vue new file mode 100644 index 0000000..6ce6893 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/index.vue @@ -0,0 +1,352 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/levelConfig/LevelConfigForm.vue b/grailed-ui-admin-vue3/src/views/member/levelConfig/LevelConfigForm.vue new file mode 100644 index 0000000..d2375e3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/levelConfig/LevelConfigForm.vue @@ -0,0 +1,134 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/levelConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/levelConfig/index.vue new file mode 100644 index 0000000..c8a8582 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/levelConfig/index.vue @@ -0,0 +1,204 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/member/customTask/CustomTaskForm.vue b/grailed-ui-admin-vue3/src/views/member/member/customTask/CustomTaskForm.vue new file mode 100644 index 0000000..02de609 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/member/customTask/CustomTaskForm.vue @@ -0,0 +1,117 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/member/customTask/index.vue b/grailed-ui-admin-vue3/src/views/member/member/customTask/index.vue new file mode 100644 index 0000000..9da2a57 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/member/customTask/index.vue @@ -0,0 +1,236 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/messageSession/MessageSessionForm.vue b/grailed-ui-admin-vue3/src/views/member/messageSession/MessageSessionForm.vue new file mode 100644 index 0000000..d829835 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/messageSession/MessageSessionForm.vue @@ -0,0 +1,102 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/messageSession/index.vue b/grailed-ui-admin-vue3/src/views/member/messageSession/index.vue new file mode 100644 index 0000000..04720b5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/messageSession/index.vue @@ -0,0 +1,231 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderApprove.vue b/grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderApprove.vue new file mode 100644 index 0000000..d32b8a9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderApprove.vue @@ -0,0 +1,53 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderForm.vue b/grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderForm.vue new file mode 100644 index 0000000..b24ba90 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/payOrder/PayOrderForm.vue @@ -0,0 +1,223 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/payOrder/index.vue b/grailed-ui-admin-vue3/src/views/member/payOrder/index.vue new file mode 100644 index 0000000..9909073 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/payOrder/index.vue @@ -0,0 +1,317 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/payOrderExtension/PayOrderExtensionForm.vue b/grailed-ui-admin-vue3/src/views/member/payOrderExtension/PayOrderExtensionForm.vue new file mode 100644 index 0000000..024bb04 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/payOrderExtension/PayOrderExtensionForm.vue @@ -0,0 +1,145 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/payOrderExtension/index.vue b/grailed-ui-admin-vue3/src/views/member/payOrderExtension/index.vue new file mode 100644 index 0000000..d2600ce --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/payOrderExtension/index.vue @@ -0,0 +1,275 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/product/ProductForm.vue b/grailed-ui-admin-vue3/src/views/member/product/ProductForm.vue new file mode 100644 index 0000000..fdd038d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/product/ProductForm.vue @@ -0,0 +1,140 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/product/index.vue b/grailed-ui-admin-vue3/src/views/member/product/index.vue new file mode 100644 index 0000000..8b0b8fa --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/product/index.vue @@ -0,0 +1,197 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/signInRecord/SignInRecordForm.vue b/grailed-ui-admin-vue3/src/views/member/signInRecord/SignInRecordForm.vue new file mode 100644 index 0000000..bbc05e1 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/signInRecord/SignInRecordForm.vue @@ -0,0 +1,118 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/signInRecord/index.vue b/grailed-ui-admin-vue3/src/views/member/signInRecord/index.vue new file mode 100644 index 0000000..db1b320 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/signInRecord/index.vue @@ -0,0 +1,227 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/siteConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/siteConfig/index.vue new file mode 100644 index 0000000..1be1a5a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/siteConfig/index.vue @@ -0,0 +1,134 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/tagRelations/TagRelationsForm.vue b/grailed-ui-admin-vue3/src/views/member/tagRelations/TagRelationsForm.vue new file mode 100644 index 0000000..1fc1c13 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/tagRelations/TagRelationsForm.vue @@ -0,0 +1,96 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/tagRelations/index.vue b/grailed-ui-admin-vue3/src/views/member/tagRelations/index.vue new file mode 100644 index 0000000..9d51638 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/tagRelations/index.vue @@ -0,0 +1,198 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/tags/TagsForm.vue b/grailed-ui-admin-vue3/src/views/member/tags/TagsForm.vue new file mode 100644 index 0000000..5690580 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/tags/TagsForm.vue @@ -0,0 +1,101 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/tags/index.vue b/grailed-ui-admin-vue3/src/views/member/tags/index.vue new file mode 100644 index 0000000..56ec88a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/tags/index.vue @@ -0,0 +1,190 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/taskComment/TaskCommentForm.vue b/grailed-ui-admin-vue3/src/views/member/taskComment/TaskCommentForm.vue new file mode 100644 index 0000000..ea2ebd0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/taskComment/TaskCommentForm.vue @@ -0,0 +1,190 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/taskComment/index.vue b/grailed-ui-admin-vue3/src/views/member/taskComment/index.vue new file mode 100644 index 0000000..9015ed5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/taskComment/index.vue @@ -0,0 +1,363 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/taskConfig/index.vue b/grailed-ui-admin-vue3/src/views/member/taskConfig/index.vue new file mode 100644 index 0000000..2b61b8d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/taskConfig/index.vue @@ -0,0 +1,218 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/taskRecord/TaskRecordForm.vue b/grailed-ui-admin-vue3/src/views/member/taskRecord/TaskRecordForm.vue new file mode 100644 index 0000000..d91073d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/taskRecord/TaskRecordForm.vue @@ -0,0 +1,171 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/taskRecord/index.vue b/grailed-ui-admin-vue3/src/views/member/taskRecord/index.vue new file mode 100644 index 0000000..571b636 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/taskRecord/index.vue @@ -0,0 +1,205 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/user/BalanceAccountTable.vue b/grailed-ui-admin-vue3/src/views/member/user/BalanceAccountTable.vue new file mode 100644 index 0000000..a5097c3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/BalanceAccountTable.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/member/user/BalanceRecordTable.vue b/grailed-ui-admin-vue3/src/views/member/user/BalanceRecordTable.vue new file mode 100644 index 0000000..bdbb312 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/BalanceRecordTable.vue @@ -0,0 +1,29 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/user/CombinationConfigTable.vue b/grailed-ui-admin-vue3/src/views/member/user/CombinationConfigTable.vue new file mode 100644 index 0000000..ac09d7f --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/CombinationConfigTable.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/member/user/CustomTaskTable.vue b/grailed-ui-admin-vue3/src/views/member/user/CustomTaskTable.vue new file mode 100644 index 0000000..a93e1d7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/CustomTaskTable.vue @@ -0,0 +1,60 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/user/TaskRecordTable.vue b/grailed-ui-admin-vue3/src/views/member/user/TaskRecordTable.vue new file mode 100644 index 0000000..2357503 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/TaskRecordTable.vue @@ -0,0 +1,34 @@ + + + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/views/member/user/UserCreditScoreTable.vue b/grailed-ui-admin-vue3/src/views/member/user/UserCreditScoreTable.vue new file mode 100644 index 0000000..4a72d68 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/UserCreditScoreTable.vue @@ -0,0 +1,51 @@ + + + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/views/member/user/UserForm.vue b/grailed-ui-admin-vue3/src/views/member/user/UserForm.vue new file mode 100644 index 0000000..2f55a18 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/UserForm.vue @@ -0,0 +1,278 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/user/UserLevelTable.vue b/grailed-ui-admin-vue3/src/views/member/user/UserLevelTable.vue new file mode 100644 index 0000000..25e33a4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/UserLevelTable.vue @@ -0,0 +1,91 @@ + + + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/views/member/user/UserPasswordTable.vue b/grailed-ui-admin-vue3/src/views/member/user/UserPasswordTable.vue new file mode 100644 index 0000000..a7b4338 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/UserPasswordTable.vue @@ -0,0 +1,51 @@ + + + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/views/member/user/UserWithdrawalPasswordTable.vue b/grailed-ui-admin-vue3/src/views/member/user/UserWithdrawalPasswordTable.vue new file mode 100644 index 0000000..8eda1b9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/UserWithdrawalPasswordTable.vue @@ -0,0 +1,52 @@ + + + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/views/member/user/index.vue b/grailed-ui-admin-vue3/src/views/member/user/index.vue new file mode 100644 index 0000000..05e7f56 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/user/index.vue @@ -0,0 +1,565 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/member/userBank/UserBankForm.vue b/grailed-ui-admin-vue3/src/views/member/userBank/UserBankForm.vue new file mode 100644 index 0000000..9fa88b5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/userBank/UserBankForm.vue @@ -0,0 +1,138 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/userBank/index.vue b/grailed-ui-admin-vue3/src/views/member/userBank/index.vue new file mode 100644 index 0000000..f5e680e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/userBank/index.vue @@ -0,0 +1,238 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/userCrypto/UserCryptoForm.vue b/grailed-ui-admin-vue3/src/views/member/userCrypto/UserCryptoForm.vue new file mode 100644 index 0000000..7a762b2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/userCrypto/UserCryptoForm.vue @@ -0,0 +1,138 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/userCrypto/index.vue b/grailed-ui-admin-vue3/src/views/member/userCrypto/index.vue new file mode 100644 index 0000000..4a83c7c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/userCrypto/index.vue @@ -0,0 +1,191 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/userExtension/UserExtensionForm.vue b/grailed-ui-admin-vue3/src/views/member/userExtension/UserExtensionForm.vue new file mode 100644 index 0000000..6335229 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/userExtension/UserExtensionForm.vue @@ -0,0 +1,136 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/userExtension/index.vue b/grailed-ui-admin-vue3/src/views/member/userExtension/index.vue new file mode 100644 index 0000000..8bc0870 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/userExtension/index.vue @@ -0,0 +1,202 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalApproveForm.vue b/grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalApproveForm.vue new file mode 100644 index 0000000..34419ad --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalApproveForm.vue @@ -0,0 +1,128 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalForm.vue b/grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalForm.vue new file mode 100644 index 0000000..ef80e0a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/withdrawal/WithdrawalForm.vue @@ -0,0 +1,163 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/member/withdrawal/index.vue b/grailed-ui-admin-vue3/src/views/member/withdrawal/index.vue new file mode 100644 index 0000000..0dab6cf --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/member/withdrawal/index.vue @@ -0,0 +1,329 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/message/blacklist/BlacklistForm.vue b/grailed-ui-admin-vue3/src/views/message/blacklist/BlacklistForm.vue new file mode 100644 index 0000000..bebc20c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/blacklist/BlacklistForm.vue @@ -0,0 +1,96 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/message/blacklist/index.vue b/grailed-ui-admin-vue3/src/views/message/blacklist/index.vue new file mode 100644 index 0000000..7162cd1 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/blacklist/index.vue @@ -0,0 +1,184 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/message/content/ContentForm.vue b/grailed-ui-admin-vue3/src/views/message/content/ContentForm.vue new file mode 100644 index 0000000..b7286da --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/content/ContentForm.vue @@ -0,0 +1,154 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/message/content/index.vue b/grailed-ui-admin-vue3/src/views/message/content/index.vue new file mode 100644 index 0000000..da8b702 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/content/index.vue @@ -0,0 +1,266 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/message/memberRemark/MemberRemarkForm.vue b/grailed-ui-admin-vue3/src/views/message/memberRemark/MemberRemarkForm.vue new file mode 100644 index 0000000..1dd0c4d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/memberRemark/MemberRemarkForm.vue @@ -0,0 +1,101 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/message/memberRemark/index.vue b/grailed-ui-admin-vue3/src/views/message/memberRemark/index.vue new file mode 100644 index 0000000..f472677 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/memberRemark/index.vue @@ -0,0 +1,195 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/message/quickGroup/QuickGroupForm.vue b/grailed-ui-admin-vue3/src/views/message/quickGroup/QuickGroupForm.vue new file mode 100644 index 0000000..05c5892 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/quickGroup/QuickGroupForm.vue @@ -0,0 +1,91 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/message/quickGroup/index.vue b/grailed-ui-admin-vue3/src/views/message/quickGroup/index.vue new file mode 100644 index 0000000..9543327 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/quickGroup/index.vue @@ -0,0 +1,186 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/message/quickReplies/QuickRepliesForm.vue b/grailed-ui-admin-vue3/src/views/message/quickReplies/QuickRepliesForm.vue new file mode 100644 index 0000000..a19a2df --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/quickReplies/QuickRepliesForm.vue @@ -0,0 +1,143 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/message/quickReplies/index.vue b/grailed-ui-admin-vue3/src/views/message/quickReplies/index.vue new file mode 100644 index 0000000..58334bd --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/message/quickReplies/index.vue @@ -0,0 +1,239 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/account/AccountForm.vue b/grailed-ui-admin-vue3/src/views/mp/account/AccountForm.vue new file mode 100644 index 0000000..c721013 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/account/AccountForm.vue @@ -0,0 +1,160 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/account/index.vue b/grailed-ui-admin-vue3/src/views/mp/account/index.vue new file mode 100644 index 0000000..212035a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/account/index.vue @@ -0,0 +1,195 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyForm.vue b/grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyForm.vue new file mode 100644 index 0000000..1c9dee4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyForm.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyTable.vue b/grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyTable.vue new file mode 100644 index 0000000..2abe9f2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/autoReply/components/ReplyTable.vue @@ -0,0 +1,115 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/autoReply/components/types.ts b/grailed-ui-admin-vue3/src/views/mp/autoReply/components/types.ts new file mode 100644 index 0000000..68bc5c9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/autoReply/components/types.ts @@ -0,0 +1,7 @@ +// 消息类型(Follow: 关注时回复;Message: 消息回复;Keyword: 关键词回复) +// 作为 tab.name,enum 的数字不能随意修改,与 api 参数相关 +export enum MsgType { + Follow = 1, + Message = 2, + Keyword = 3 +} diff --git a/grailed-ui-admin-vue3/src/views/mp/autoReply/index.vue b/grailed-ui-admin-vue3/src/views/mp/autoReply/index.vue new file mode 100644 index 0000000..0b00647 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/autoReply/index.vue @@ -0,0 +1,241 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/index.ts new file mode 100644 index 0000000..97556b2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/index.ts @@ -0,0 +1,3 @@ +import WxAccountSelect from './main.vue' + +export default WxAccountSelect diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/main.vue new file mode 100644 index 0000000..2a6ca50 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-account-select/main.vue @@ -0,0 +1,47 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-location/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-location/index.ts new file mode 100644 index 0000000..14ba864 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-location/index.ts @@ -0,0 +1,3 @@ +import WxLocation from './main.vue' + +export default WxLocation diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-location/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-location/main.vue new file mode 100644 index 0000000..0b68d49 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-location/main.vue @@ -0,0 +1,73 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/index.ts new file mode 100644 index 0000000..eeda31d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/index.ts @@ -0,0 +1,6 @@ +import WxMaterialSelect from './main.vue' +import { NewsType, MaterialType } from './types' + +export { NewsType, MaterialType } + +export default WxMaterialSelect diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/main.vue new file mode 100644 index 0000000..aad25ea --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/main.vue @@ -0,0 +1,279 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/types.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/types.ts new file mode 100644 index 0000000..d4add1d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-material-select/types.ts @@ -0,0 +1,11 @@ +export enum NewsType { + Draft = '2', + Published = '1' +} + +export enum MaterialType { + Image = 'image', + Voice = 'voice', + Video = 'video', + News = 'news' +} diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/card.scss b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/card.scss new file mode 100644 index 0000000..7fbbe80 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/card.scss @@ -0,0 +1,116 @@ +.avue-card { + &__item { + margin-bottom: 16px; + border: 1px solid #e8e8e8; + background-color: #fff; + box-sizing: border-box; + color: rgba(0, 0, 0, 0.65); + font-size: 14px; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; + cursor: pointer; + height: 200px; + + &:hover { + border-color: rgba(0, 0, 0, 0.09); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09); + } + + &--add { + border: 1px dashed #000; + width: 100%; + color: rgba(0, 0, 0, 0.45); + background-color: #fff; + border-color: #d9d9d9; + border-radius: 2px; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + + i { + margin-right: 10px; + } + + &:hover { + color: #40a9ff; + background-color: #fff; + border-color: #40a9ff; + } + } + } + + &__body { + display: flex; + padding: 24px; + } + + &__detail { + flex: 1; + } + + &__avatar { + width: 48px; + height: 48px; + border-radius: 48px; + overflow: hidden; + margin-right: 12px; + + img { + width: 100%; + height: 100%; + } + } + + &__title { + color: rgba(0, 0, 0, 0.85); + margin-bottom: 12px; + font-size: 16px; + + &:hover { + color: #1890ff; + } + } + + &__info { + color: rgba(0, 0, 0, 0.45); + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + overflow: hidden; + height: 64px; + } + + &__menu { + display: flex; + justify-content: space-around; + height: 50px; + background: #f7f9fa; + color: rgba(0, 0, 0, 0.45); + text-align: center; + line-height: 50px; + + &:hover { + color: #1890ff; + } + } +} + +/** joolun 额外加的 */ +.avue-comment__main { + flex: unset !important; + border-radius: 5px !important; + margin: 0 8px !important; +} + +.avue-comment__header { + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} + +.avue-comment__body { + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; +} diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/comment.scss b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/comment.scss new file mode 100644 index 0000000..7812c2a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/comment.scss @@ -0,0 +1,126 @@ +/* 来自 https://github.com/nmxiaowei/avue/blob/master/styles/src/element-ui/comment.scss */ +.avue-comment { + margin-bottom: 30px; + display: flex; + align-items: flex-start; + + &--reverse { + flex-direction: row-reverse; + + .avue-comment__main { + &:before, + &:after { + left: auto; + right: -8px; + border-width: 8px 0 8px 8px; + } + + &:before { + border-left-color: #dedede; + } + + &:after { + border-left-color: #f8f8f8; + margin-right: 1px; + margin-left: auto; + } + } + } + + &__avatar { + width: 48px; + height: 48px; + border-radius: 50%; + border: 1px solid transparent; + box-sizing: border-box; + vertical-align: middle; + } + + &__header { + padding: 5px 15px; + background: #f8f8f8; + border-bottom: 1px solid #eee; + display: flex; + align-items: center; + justify-content: space-between; + } + + &__author { + font-weight: 700; + font-size: 14px; + color: #999; + } + + &__main { + flex: 1; + margin: 0 20px; + position: relative; + border: 1px solid #dedede; + border-radius: 2px; + + &:before, + &:after { + position: absolute; + top: 10px; + left: -8px; + right: 100%; + width: 0; + height: 0; + display: block; + content: ' '; + border-color: transparent; + border-style: solid solid outset; + border-width: 8px 8px 8px 0; + pointer-events: none; + } + + &:before { + border-right-color: #dedede; + z-index: 1; + } + + &:after { + border-right-color: #f8f8f8; + margin-left: 1px; + z-index: 2; + } + } + + &__body { + padding: 15px; + overflow: hidden; + background: #fff; + font-family: + Segoe UI, + Lucida Grande, + Helvetica, + Arial, + Microsoft YaHei, + FreeSans, + Arimo, + Droid Sans, + wenquanyi micro hei, + Hiragino Sans GB, + Hiragino Sans GB W3, + FontAwesome, + sans-serif; + color: #333; + font-size: 14px; + } + + blockquote { + margin: 0; + font-family: + Georgia, + Times New Roman, + Times, + Kai, + Kaiti SC, + KaiTi, + BiauKai, + FontAwesome, + serif; + padding: 1px 0 1px 15px; + border-left: 4px solid #ddd; + } +} diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/Msg.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/Msg.vue new file mode 100644 index 0000000..c35e268 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/Msg.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgEvent.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgEvent.vue new file mode 100644 index 0000000..77beda4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgEvent.vue @@ -0,0 +1,49 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgList.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgList.vue new file mode 100644 index 0000000..ce7063b --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/components/MsgList.vue @@ -0,0 +1,62 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/index.ts new file mode 100644 index 0000000..fd9eddd --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/index.ts @@ -0,0 +1,6 @@ +import WxMsg from './main.vue' +import { MsgType } from './types' + +export { MsgType } + +export default WxMsg diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/main.vue new file mode 100644 index 0000000..8b7cc3a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/main.vue @@ -0,0 +1,192 @@ + + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/types.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/types.ts new file mode 100644 index 0000000..38a0ff8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-msg/types.ts @@ -0,0 +1,17 @@ +export enum MsgType { + Event = 'event', + Text = 'text', + Voice = 'voice', + Image = 'image', + Video = 'video', + Link = 'link', + Location = 'location', + Music = 'music', + News = 'news' +} + +export interface User { + nickname: string + avatar: string + accountId: number +} diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-music/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-music/index.ts new file mode 100644 index 0000000..c421126 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-music/index.ts @@ -0,0 +1,3 @@ +import WxMusic from './main.vue' + +export default WxMusic diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-music/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-music/main.vue new file mode 100644 index 0000000..6b44f44 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-music/main.vue @@ -0,0 +1,62 @@ + + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-news/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-news/index.ts new file mode 100644 index 0000000..e68f4d5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-news/index.ts @@ -0,0 +1,3 @@ +import WxNews from './main.vue' + +export default WxNews diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-news/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-news/main.vue new file mode 100644 index 0000000..154291b --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-news/main.vue @@ -0,0 +1,119 @@ + + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabImage.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabImage.vue new file mode 100644 index 0000000..a291577 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabImage.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabMusic.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabMusic.vue new file mode 100644 index 0000000..c7caecb --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabMusic.vue @@ -0,0 +1,116 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabNews.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabNews.vue new file mode 100644 index 0000000..565b1fb --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabNews.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabText.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabText.vue new file mode 100644 index 0000000..307e48f --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabText.vue @@ -0,0 +1,22 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVideo.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVideo.vue new file mode 100644 index 0000000..7d67d2f --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVideo.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVoice.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVoice.vue new file mode 100644 index 0000000..5a7a42d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/TabVoice.vue @@ -0,0 +1,160 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/types.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/types.ts new file mode 100644 index 0000000..3e07d6e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/components/types.ts @@ -0,0 +1,54 @@ +enum ReplyType { + News = 'news', + Image = 'image', + Voice = 'voice', + Video = 'video', + Music = 'music', + Text = 'text' +} + +interface _Reply { + accountId: number + type: ReplyType + name?: string | null + content?: string | null + mediaId?: string | null + url?: string | null + title?: string | null + description?: string | null + thumbMediaId?: string | null + thumbMediaUrl?: string | null + musicUrl?: string | null + hqMusicUrl?: string | null + introduction?: string | null + articles?: any[] +} + +type Reply = _Reply //Partial<_Reply> + +enum NewsType { + Published = '1', + Draft = '2' +} + +/** 利用旧的reply[accountId, type]初始化新的Reply */ +const createEmptyReply = (old: Reply | Ref): Reply => { + return { + accountId: unref(old).accountId, + type: unref(old).type, + name: null, + content: null, + mediaId: null, + url: null, + title: null, + description: null, + thumbMediaId: null, + thumbMediaUrl: null, + musicUrl: null, + hqMusicUrl: null, + introduction: null, + articles: [] + } +} + +export { Reply, NewsType, ReplyType, createEmptyReply } diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/index.ts new file mode 100644 index 0000000..d1da217 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/index.ts @@ -0,0 +1,7 @@ +import { Reply, NewsType, ReplyType, createEmptyReply } from './components/types' + +import WxReplySelect from './main.vue' + +export type { Reply } +export { createEmptyReply, NewsType, ReplyType } +export default WxReplySelect diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/main.vue new file mode 100644 index 0000000..2c9d5f2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-reply/main.vue @@ -0,0 +1,208 @@ + + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/index.ts new file mode 100644 index 0000000..91e00ef --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/index.ts @@ -0,0 +1,3 @@ +import WxVideoPlayer from './main.vue' + +export default WxVideoPlayer diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/main.vue new file mode 100644 index 0000000..092b0e8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-video-play/main.vue @@ -0,0 +1,73 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/index.ts b/grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/index.ts new file mode 100644 index 0000000..9eb78e0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/index.ts @@ -0,0 +1,3 @@ +import WxVoicePlayer from './main.vue' + +export default WxVoicePlayer diff --git a/grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/main.vue b/grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/main.vue new file mode 100644 index 0000000..fe7f0ca --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/components/wx-voice-play/main.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/components/CoverSelect.vue b/grailed-ui-admin-vue3/src/views/mp/draft/components/CoverSelect.vue new file mode 100644 index 0000000..499f1a6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/components/CoverSelect.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/components/DraftTable.vue b/grailed-ui-admin-vue3/src/views/mp/draft/components/DraftTable.vue new file mode 100644 index 0000000..bb512d8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/components/DraftTable.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/components/NewsForm.vue b/grailed-ui-admin-vue3/src/views/mp/draft/components/NewsForm.vue new file mode 100644 index 0000000..9b1e474 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/components/NewsForm.vue @@ -0,0 +1,304 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/components/index.ts b/grailed-ui-admin-vue3/src/views/mp/draft/components/index.ts new file mode 100644 index 0000000..51e843d --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/components/index.ts @@ -0,0 +1,7 @@ +import type { Article, NewsItem, NewsItemList } from './types' +import { createEmptyNewsItem } from './types' +import DraftTable from './DraftTable.vue' +import NewsForm from './NewsForm.vue' + +export { DraftTable, NewsForm, createEmptyNewsItem } +export type { Article, NewsItem, NewsItemList } diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/components/types.ts b/grailed-ui-admin-vue3/src/views/mp/draft/components/types.ts new file mode 100644 index 0000000..a8cf00c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/components/types.ts @@ -0,0 +1,40 @@ +interface NewsItem { + title: string + thumbMediaId: string + author: string + digest: string + showCoverPic: string + content: string + contentSourceUrl: string + needOpenComment: string + onlyFansCanComment: string + thumbUrl: string +} + +interface NewsItemList { + newsItem: NewsItem[] +} + +interface Article { + mediaId: string + content: NewsItemList + updateTime: number +} + +const createEmptyNewsItem = (): NewsItem => { + return { + title: '', + thumbMediaId: '', + author: '', + digest: '', + showCoverPic: '', + content: '', + contentSourceUrl: '', + needOpenComment: '', + onlyFansCanComment: '', + thumbUrl: '' + } +} + +export type { Article, NewsItem, NewsItemList } +export { createEmptyNewsItem } diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/editor-config.ts b/grailed-ui-admin-vue3/src/views/mp/draft/editor-config.ts new file mode 100644 index 0000000..ee3b95e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/editor-config.ts @@ -0,0 +1,75 @@ +import { IEditorConfig } from '@wangeditor/editor' +import { getAccessToken, getTenantId } from '@/utils/auth' + +const message = useMessage() + +type InsertFnType = (url: string, alt: string, href: string) => void + +export const createEditorConfig = ( + server: string, + accountId: number | undefined +): Partial => { + return { + MENU_CONF: { + ['uploadImage']: { + server, + // 单个文件的最大体积限制,默认为 2M + maxFileSize: 5 * 1024 * 1024, + // 最多可上传几个文件,默认为 100 + maxNumberOfFiles: 10, + // 选择文件时的类型限制,默认为 ['image/*'] 。如不想限制,则设置为 [] + allowedFileTypes: ['image/*'], + + // 自定义上传参数,例如传递验证的 token 等。参数会被添加到 formData 中,一起上传到服务端。 + meta: { + accountId: accountId, + type: 'image' + }, + // 将 meta 拼接到 url 参数中,默认 false + metaWithUrl: true, + + // 自定义增加 http header + headers: { + Accept: '*', + Authorization: 'Bearer ' + getAccessToken(), + 'tenant-id': getTenantId() + }, + + // 跨域是否传递 cookie ,默认为 false + withCredentials: true, + + // 超时时间,默认为 10 秒 + timeout: 5 * 1000, // 5 秒 + + // form-data fieldName,后端接口参数名称,默认值wangeditor-uploaded-image + fieldName: 'file', + + // 上传之前触发 + onBeforeUpload(file: File) { + console.log(file) + return file + }, + // 上传进度的回调函数 + onProgress(progress: number) { + // progress 是 0-100 的数字 + console.log('progress', progress) + }, + onSuccess(file: File, res: any) { + console.log('onSuccess', file, res) + }, + onFailed(file: File, res: any) { + message.alertError(res.message) + console.log('onFailed', file, res) + }, + onError(file: File, err: any, res: any) { + message.alertError(err.message) + console.error('onError', file, err, res) + }, + // 自定义插入图片 + customInsert(res: any, insertFn: InsertFnType) { + insertFn(res.data.url, 'image', res.data.url) + } + } + } + } +} diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/index.vue b/grailed-ui-admin-vue3/src/views/mp/draft/index.vue new file mode 100644 index 0000000..db24596 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/index.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/draft/mock.js b/grailed-ui-admin-vue3/src/views/mp/draft/mock.js new file mode 100644 index 0000000..e8493f6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/draft/mock.js @@ -0,0 +1,151 @@ +export default { + list: [ + { + mediaId: 'r6ryvl6LrxBU0miaST4Y-q-G9pdsmZw0OYG4FzHQkKfpLfEwIH51wy2bxisx8PvW', + content: { + newsItem: [ + { + title: '我是标题(OOO)', + author: '我是作者', + digest: '我是摘要', + content: '我是内容', + contentSourceUrl: 'https://www.iocoder.cn', + thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', + showCoverPic: 0, + needOpenComment: 0, + onlyFansCanComment: 0, + url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9XaFphcmtJVFh3VEc4Q1MxQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN2QxTE56SFBCYXc2RE9NcUxIeS1CQjJuUHhTWjBlN2VOeGRpRi1fZUhwN1FNQjdrQV9yRU9EU0hibHREZmZoVW5acnZrN3ZjaWsxejR3RGpKczBzTHFIM0dFNFZWVkpBc0dWWlAzUEhlVmpnfn4%3D&chksm=1f6354802814dd969ef83c0f3babe555c614270b30bc383beaf7ffd13b0257f0fe5ced9af694#rd', + thumbUrl: + 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' + }, + { + title: '我是标题(XXX)', + author: '我是作者', + digest: '我是摘要', + content: '我是内容', + contentSourceUrl: 'https://www.iocoder.cn', + thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', + showCoverPic: 0, + needOpenComment: 0, + onlyFansCanComment: 0, + url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9yTlYwOEs1clpwcE5OUEhCQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN0NSMjFqN3N1aUZMbFNVLTZHN2ZDME9qOGp2THk2RFNlSTlKZ3Y1czFVZDdQQm5IeUg3dEppSUtpQUh5SExOOTRkT3dHNUdBdHdWSWlOendlREV3dS1jUEVQbFpiVTZmVW5iRWhZcGdkNTFRfn4%3D&chksm=1f6354802814dd96a403151cd44c7da4eecf0e475d25423e46ecd795b513bafd829a75daef9b#rd', + thumbUrl: + 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' + } + ] + }, + updateTime: 1673655730 + }, + { + mediaId: 'r6ryvl6LrxBU0miaST4Y-jGpXnO73ihN0lsNXknCRQHapp2xgHMRxHKG50LituFe', + content: { + newsItem: [ + { + title: '我是标题(修改)', + author: '我是作者', + digest: '我是摘要', + content: '我是内容', + contentSourceUrl: 'https://www.iocoder.cn', + thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', + showCoverPic: 0, + needOpenComment: 0, + onlyFansCanComment: 0, + url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl95WVFXYndIZnZJd0t5cjgvQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN1dlNURPbWswbEF4RDd5dVJTdjQ4cm9Cc0Q1TWhpMUh6SE1hVEE3ZHljaHhlZjZYSGF5N2JNSHpDTlh6ajNZbkpGTGpTcUQ4M3NMdW41ZUpXNFZZQ1VKbVlaMVp5ekxEV1czREdsY1dOYTZnfn4%3D&chksm=1f6354be2814dda8e6238037c2ebd52b1c8e80e93249a861ad80e4d40e5ca7207233475ca689#rd', + thumbUrl: + 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' + } + ] + }, + updateTime: 1673655584 + }, + { + mediaId: 'r6ryvl6LrxBU0miaST4Y-v5SrbNCPpD6M_p3TmSrYwTjKogs-0DMJgmjMyNZPeMO', + content: { + newsItem: [ + { + title: '1321', + author: '3232', + digest: '1333', + content: '

444

', + contentSourceUrl: 'http://www.iocoder.cn', + thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-tlQmcl3RdC-Jcgns6IQtf7zenGy3b86WLT7GzUcrb1T', + showCoverPic: 0, + needOpenComment: 0, + onlyFansCanComment: 0, + url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9jelJiaDAzbmdpSkJOZ2M2QWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNDNXVVc2ZDRYeTY0Zm1weXR6dE9vQWh1TzEwbEpUVnRfVzJyaGFDNXBkZ0ZXM2JFOTNaRHNhOHRUeFdEanhMeS01X01kMUNWQ1BpRER3cjYwTl9pMnpFLUJhZXFucVVfM1pDUXlTUEl1S25nfn4%3D&chksm=1f6354bc2814ddaa56a90ad5bc3d078601c8d1589ba01827a8170587bc830ff9747b5f59c3a0#rd', + thumbUrl: + 'http://mmbiz.qpic.cn/mmbiz_png/btUmCVHwbJUoicwBiacjVeQbu6QxgBVrukfSJXz509boa21SpH8OVHAqXCJiaiaAaHQJNxwwsa0gHRXVr0G5EZYamw/0?wx_fmt=png' + } + ] + }, + updateTime: 1673628969 + }, + { + mediaId: 'r6ryvl6LrxBU0miaST4Y-vdWrisK5EZbk4Y3tzh8P0PG0eEUbnQrh0BcsEb3WNP0', + content: { + newsItem: [ + { + title: 'tudou', + author: 'haha', + digest: '312', + content: '

132312

', + contentSourceUrl: 'http://www.iocoder.cn', + thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', + showCoverPic: 0, + needOpenComment: 0, + onlyFansCanComment: 0, + url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9qdkJ1ZjBoUmg2Uk9TS3RlQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNVg2aTJsaC1fMkU2eXNacUplN3VDTTZFZkhtMjhuTUZvWkxsNDBRSXExY2tiVXRHb09TaHgtREhzY3doZ0JYeC1TSTZ5eWZldXJsOWtfbV8yMi1aYkcyZ2pOY0haM0Ntb3VSWEtxUGVFRlNBfn4%3D&chksm=1f6354ba2814ddacf0184b24d310483641ef190b1faac098c285eb416c70017e2f54decfa1af#rd', + thumbUrl: + 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png' + } + ] + }, + updateTime: 1673628760 + }, + { + mediaId: 'r6ryvl6LrxBU0miaST4Y-u9kTIm1DhWZDdXyxsxUVv2Z5DAB99IPxkIRTUUD206k', + content: { + newsItem: [ + { + title: '12', + author: '333', + digest: '123', + content: '123', + contentSourceUrl: 'https://www.iocoder.cn', + thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', + showCoverPic: 0, + needOpenComment: 0, + onlyFansCanComment: 0, + url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9qVVhpSDZUaFJWTzBBWWRVQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNWRnTDJWYmF2NER0clV1bThmQ0xUR3hqQnJkZ3BJSUNmNDJmc0lCZ1dadkVnZ3Z5bkN4YWtVUjhoaWZWYzZURUR4NnpMd0Y4Z3U5aUdib0lkMzI4Rjg3SG9JX2FycTMxbUctOHplaTlQVVhnfn4%3D&chksm=1f6354b62814dda076c778af33f06580165d8aa81f7798d55cfabb1886b5c74d9b2124a3535c#rd', + thumbUrl: + 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg' + } + ] + }, + updateTime: 1673626494 + }, + { + mediaId: 'r6ryvl6LrxBU0miaST4Y-sO24upobaENDmeByfBTfaozB3aOqSMAV0lGy-UkHXE7', + content: { + newsItem: [ + { + title: '我是标题', + author: '我是作者', + digest: '我是摘要', + content: '我是内容', + contentSourceUrl: 'https://www.iocoder.cn', + thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', + showCoverPic: 0, + needOpenComment: 0, + onlyFansCanComment: 0, + url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9LT2dqRnpMNUpsR0hjYWtBQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNGNmazZTdlE5WkxvU0tfX2V5cjV2WjJiR0xjQUhyREFSZWo2eWNrUW9EYVh6ZkpWRXBLR3FmTEV6YldBMno3Q2ZvVXBSdzlaVDc3aFhndEpQWUwzWmFMUWt0YVVURE1VZ1FsQTdPMlRtc3JBfn4%3D&chksm=1f6354aa2814ddbcc2637382f963a8742993ac38ebcebe6e3411df5ac82ac7bbdb391be6494a#rd', + thumbUrl: + 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' + } + ] + }, + updateTime: 1673534279 + } + ], + total: 6 +} diff --git a/grailed-ui-admin-vue3/src/views/mp/freePublish/index.vue b/grailed-ui-admin-vue3/src/views/mp/freePublish/index.vue new file mode 100644 index 0000000..2ed8ae7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/freePublish/index.vue @@ -0,0 +1,336 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/hooks/useUpload.ts b/grailed-ui-admin-vue3/src/views/mp/hooks/useUpload.ts new file mode 100644 index 0000000..b0e7053 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/hooks/useUpload.ts @@ -0,0 +1,50 @@ +import type { UploadRawFile } from 'element-plus' + +const message = useMessage() // 消息 + +enum UploadType { + Image = 'image', + Voice = 'voice', + Video = 'video' +} + +const useBeforeUpload = (type: UploadType, maxSizeMB: number) => { + const fn = (rawFile: UploadRawFile): boolean => { + let allowTypes: string[] = [] + let name = '' + + switch (type) { + case UploadType.Image: + allowTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/jpg'] + maxSizeMB = 2 + name = '图片' + break + case UploadType.Voice: + allowTypes = ['audio/mp3', 'audio/mpeg', 'audio/wma', 'audio/wav', 'audio/amr'] + maxSizeMB = 2 + name = '语音' + break + case UploadType.Video: + allowTypes = ['video/mp4'] + maxSizeMB = 10 + name = '视频' + break + } + // 格式不正确 + if (!allowTypes.includes(rawFile.type)) { + message.error(`上传${name}格式不对!`) + return false + } + // 大小不正确 + if (rawFile.size / 1024 / 1024 > maxSizeMB) { + message.error(`上传${name}大小不能超过${maxSizeMB}M!`) + return false + } + + return true + } + + return fn +} + +export { UploadType, useBeforeUpload } diff --git a/grailed-ui-admin-vue3/src/views/mp/material/components/ImageTable.vue b/grailed-ui-admin-vue3/src/views/mp/material/components/ImageTable.vue new file mode 100644 index 0000000..52c608f --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/material/components/ImageTable.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/material/components/UploadFile.vue b/grailed-ui-admin-vue3/src/views/mp/material/components/UploadFile.vue new file mode 100644 index 0000000..1476917 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/material/components/UploadFile.vue @@ -0,0 +1,74 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/material/components/UploadVideo.vue b/grailed-ui-admin-vue3/src/views/mp/material/components/UploadVideo.vue new file mode 100644 index 0000000..28f050c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/material/components/UploadVideo.vue @@ -0,0 +1,126 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/material/components/VideoTable.vue b/grailed-ui-admin-vue3/src/views/mp/material/components/VideoTable.vue new file mode 100644 index 0000000..cbaa902 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/material/components/VideoTable.vue @@ -0,0 +1,59 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/material/components/VoiceTable.vue b/grailed-ui-admin-vue3/src/views/mp/material/components/VoiceTable.vue new file mode 100644 index 0000000..76fab7a --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/material/components/VoiceTable.vue @@ -0,0 +1,51 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/material/components/upload.ts b/grailed-ui-admin-vue3/src/views/mp/material/components/upload.ts new file mode 100644 index 0000000..7158ab1 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/material/components/upload.ts @@ -0,0 +1,31 @@ +import type { UploadProps, UploadRawFile } from 'element-plus' +import { getAccessToken } from '@/utils/auth' +import { UploadType, useBeforeUpload } from '@/views/mp/hooks/useUpload' + +const HEADERS = { Authorization: 'Bearer ' + getAccessToken() } // 请求头 +const UPLOAD_URL = import.meta.env.VITE_BASE_URL + '/admin-api/mp/material/upload-permanent' // 上传地址 + +interface UploadData { + type: UploadType + title: string + introduction: string +} + +const beforeImageUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) => + useBeforeUpload(UploadType.Image, 2)(rawFile) + +const beforeVoiceUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) => + useBeforeUpload(UploadType.Voice, 2)(rawFile) + +const beforeVideoUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) => + useBeforeUpload(UploadType.Video, 10)(rawFile) + +export { + HEADERS, + UPLOAD_URL, + UploadType, + UploadData, + beforeImageUpload, + beforeVoiceUpload, + beforeVideoUpload +} diff --git a/grailed-ui-admin-vue3/src/views/mp/material/index.vue b/grailed-ui-admin-vue3/src/views/mp/material/index.vue new file mode 100644 index 0000000..b72c9ad --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/material/index.vue @@ -0,0 +1,154 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/menu/assets/iphone_backImg.png b/grailed-ui-admin-vue3/src/views/mp/menu/assets/iphone_backImg.png new file mode 100644 index 0000000000000000000000000000000000000000..bb09591a7912730aab07287e0bb2bc4e3383abc5 GIT binary patch literal 34272 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 n1Y$yl2Y%)kp^j~lTlnWvqUJ7=Y>Ul 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 X!lw4y|2_Uwf${mHs$8XvQQ-do;aw2N literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/views/mp/menu/components/MenuEditor.vue b/grailed-ui-admin-vue3/src/views/mp/menu/components/MenuEditor.vue new file mode 100644 index 0000000..5df1785 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/menu/components/MenuEditor.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/menu/components/MenuPreviewer.vue b/grailed-ui-admin-vue3/src/views/mp/menu/components/MenuPreviewer.vue new file mode 100644 index 0000000..a0c851e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/menu/components/MenuPreviewer.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/menu/components/menuOptions.ts b/grailed-ui-admin-vue3/src/views/mp/menu/components/menuOptions.ts new file mode 100644 index 0000000..d86dd78 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/menu/components/menuOptions.ts @@ -0,0 +1,42 @@ +export default [ + { + value: 'view', + label: '跳转网页' + }, + { + value: 'miniprogram', + label: '跳转小程序' + }, + { + value: 'click', + label: '点击回复' + }, + { + value: 'article_view_limited', + label: '跳转图文消息' + }, + { + value: 'scancode_push', + label: '扫码直接返回结果' + }, + { + value: 'scancode_waitmsg', + label: '扫码回复' + }, + { + value: 'pic_sysphoto', + label: '系统拍照发图' + }, + { + value: 'pic_photo_or_album', + label: '拍照或者相册' + }, + { + value: 'pic_weixin', + label: '微信相册' + }, + { + value: 'location_select', + label: '选择地理位置' + } +] diff --git a/grailed-ui-admin-vue3/src/views/mp/menu/components/types.ts b/grailed-ui-admin-vue3/src/views/mp/menu/components/types.ts new file mode 100644 index 0000000..b9f7659 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/menu/components/types.ts @@ -0,0 +1,73 @@ +export interface Replay { + title: string + description: string + picUrl: string + url: string +} + +export type MenuType = + | '' + | 'click' + | 'view' + | 'scancode_waitmsg' + | 'scancode_push' + | 'pic_sysphoto' + | 'pic_photo_or_album' + | 'pic_weixin' + | 'location_select' + | 'article_view_limited' + +interface _RawMenu { + // db + id: number + parentId: number + accountId: number + appId: string + createTime: number + + // mp-native + name: string + menuKey: string + type: MenuType + url: string + miniProgramAppId: string + miniProgramPagePath: string + articleId: string + replyMessageType: string + replyContent: string + replyMediaId: string + replyMediaUrl: string + replyThumbMediaId: string + replyThumbMediaUrl: string + replyTitle: string + replyDescription: string + replyArticles: Replay + replyMusicUrl: string + replyHqMusicUrl: string +} + +export type RawMenu = Partial<_RawMenu> + +interface _Reply { + type: string + accountId: number + content: string + mediaId: string + url: string + thumbMediaId: string + thumbMediaUrl: string + title: string + description: string + articles: null | Replay[] + musicUrl: string + hqMusicUrl: string +} + +export type Reply = Partial<_Reply> + +interface _Menu extends RawMenu { + children: _Menu[] + reply: Reply +} + +export type Menu = Partial<_Menu> diff --git a/grailed-ui-admin-vue3/src/views/mp/menu/index.vue b/grailed-ui-admin-vue3/src/views/mp/menu/index.vue new file mode 100644 index 0000000..03be6b9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/menu/index.vue @@ -0,0 +1,401 @@ + + + + + + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/message/MessageTable.vue b/grailed-ui-admin-vue3/src/views/mp/message/MessageTable.vue new file mode 100644 index 0000000..ebc3d74 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/message/MessageTable.vue @@ -0,0 +1,145 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/message/index.vue b/grailed-ui-admin-vue3/src/views/mp/message/index.vue new file mode 100644 index 0000000..255a8ee --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/message/index.vue @@ -0,0 +1,152 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/statistics/index.vue b/grailed-ui-admin-vue3/src/views/mp/statistics/index.vue new file mode 100644 index 0000000..37ca2a0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/statistics/index.vue @@ -0,0 +1,368 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/mp/tag/TagForm.vue b/grailed-ui-admin-vue3/src/views/mp/tag/TagForm.vue new file mode 100644 index 0000000..9a85bec --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/tag/TagForm.vue @@ -0,0 +1,98 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/tag/index.vue b/grailed-ui-admin-vue3/src/views/mp/tag/index.vue new file mode 100644 index 0000000..df76ce9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/tag/index.vue @@ -0,0 +1,154 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/user/UserForm.vue b/grailed-ui-admin-vue3/src/views/mp/user/UserForm.vue new file mode 100644 index 0000000..818fdd8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/user/UserForm.vue @@ -0,0 +1,102 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/mp/user/index.vue b/grailed-ui-admin-vue3/src/views/mp/user/index.vue new file mode 100644 index 0000000..6147351 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/mp/user/index.vue @@ -0,0 +1,181 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/pay/app/components/AppForm.vue b/grailed-ui-admin-vue3/src/views/pay/app/components/AppForm.vue new file mode 100644 index 0000000..4277fb6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/app/components/AppForm.vue @@ -0,0 +1,130 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/pay/app/components/channel/AlipayChannelForm.vue b/grailed-ui-admin-vue3/src/views/pay/app/components/channel/AlipayChannelForm.vue new file mode 100644 index 0000000..46dc431 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/app/components/channel/AlipayChannelForm.vue @@ -0,0 +1,316 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/pay/app/components/channel/MockChannelForm.vue b/grailed-ui-admin-vue3/src/views/pay/app/components/channel/MockChannelForm.vue new file mode 100644 index 0000000..49cb3ab --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/app/components/channel/MockChannelForm.vue @@ -0,0 +1,122 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/pay/app/components/channel/WeixinChannelForm.vue b/grailed-ui-admin-vue3/src/views/pay/app/components/channel/WeixinChannelForm.vue new file mode 100644 index 0000000..bafa4bf --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/app/components/channel/WeixinChannelForm.vue @@ -0,0 +1,342 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/pay/app/index.vue b/grailed-ui-admin-vue3/src/views/pay/app/index.vue new file mode 100644 index 0000000..d3f993e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/app/index.vue @@ -0,0 +1,452 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/pay/merchant/MerchantForm.vue b/grailed-ui-admin-vue3/src/views/pay/merchant/MerchantForm.vue new file mode 100644 index 0000000..731b86e --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/merchant/MerchantForm.vue @@ -0,0 +1,113 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/pay/merchant/index.vue b/grailed-ui-admin-vue3/src/views/pay/merchant/index.vue new file mode 100644 index 0000000..669b43c --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/merchant/index.vue @@ -0,0 +1,245 @@ + + diff --git a/grailed-ui-admin-vue3/src/views/pay/order/OrderDetail.vue b/grailed-ui-admin-vue3/src/views/pay/order/OrderDetail.vue new file mode 100644 index 0000000..4716b25 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/order/OrderDetail.vue @@ -0,0 +1,117 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/pay/order/index.vue b/grailed-ui-admin-vue3/src/views/pay/order/index.vue new file mode 100644 index 0000000..4759af3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/order/index.vue @@ -0,0 +1,339 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/pay/refund/RefundDetail.vue b/grailed-ui-admin-vue3/src/views/pay/refund/RefundDetail.vue new file mode 100644 index 0000000..c6a4010 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/refund/RefundDetail.vue @@ -0,0 +1,117 @@ + + + diff --git a/grailed-ui-admin-vue3/src/views/pay/refund/index.vue b/grailed-ui-admin-vue3/src/views/pay/refund/index.vue new file mode 100644 index 0000000..16da170 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/pay/refund/index.vue @@ -0,0 +1,344 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/views/report/goview/index.vue b/grailed-ui-admin-vue3/src/views/report/goview/index.vue new file mode 100644 index 0000000..39fa8d8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/views/report/goview/index.vue @@ -0,0 +1,10 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.ts b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.ts new file mode 100644 index 0000000..80be43c --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.ts @@ -0,0 +1,21 @@ +import { PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { ImageConfig } from './index' +import cloneDeep from 'lodash/cloneDeep' +import logo from '@/assets/logo.png' + +export const option = { + // 图片路径 + dataset: logo, + // 适应方式 + fit: 'contain', + // 圆角 + borderRadius: 10 +} + +export default class Config extends PublicConfigClass implements CreateComponentType +{ + public key = ImageConfig.key + public chartConfig = cloneDeep(ImageConfig) + public option = cloneDeep(option) +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.vue b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.vue new file mode 100644 index 0000000..8383672 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/config.vue @@ -0,0 +1,67 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.ts new file mode 100644 index 0000000..3be876d --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d' + +export const ImageConfig: ConfigType = { + key: 'Image', + chartKey: 'VImage', + conKey: 'VCImage', + title: '图片', + category: ChatCategoryEnum.MORE, + categoryName: ChatCategoryEnumName.MORE, + package: PackagesCategoryEnum.INFORMATIONS, + chartFrame: ChartFrameEnum.COMMON, + image: 'photo.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.vue b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.vue new file mode 100644 index 0000000..fc3b98f --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Image/index.vue @@ -0,0 +1,57 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.ts b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.ts new file mode 100644 index 0000000..41db6a9 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.ts @@ -0,0 +1,24 @@ +import { PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { VideoConfig } from './index' +import cloneDeep from 'lodash/cloneDeep' +import video from '@/assets/videos/earth.mp4' + +export const option = { + // 视频路径 + dataset: video, + // 循环播放 + loop: true, + // 静音 + muted: true, + // 适应方式 + fit: 'contain', + // 圆角 + borderRadius: 10 +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = VideoConfig.key + public chartConfig = cloneDeep(VideoConfig) + public option = cloneDeep(option) +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.vue b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.vue new file mode 100644 index 0000000..14a5acc --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/config.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.ts new file mode 100644 index 0000000..769cfc5 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const VideoConfig: ConfigType = { + key: 'Video', + chartKey: 'VVideo', + conKey: 'VCVideo', + title: '视频', + category: ChatCategoryEnum.MORE, + categoryName: ChatCategoryEnumName.MORE, + package: PackagesCategoryEnum.INFORMATIONS, + chartFrame: ChartFrameEnum.COMMON, + image: 'video.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.vue b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.vue new file mode 100644 index 0000000..b184c83 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/Video/index.vue @@ -0,0 +1,65 @@ + + + + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.ts b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.ts new file mode 100644 index 0000000..f941097 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.ts @@ -0,0 +1,95 @@ +import { echartOptionProfixHandle, PublicConfigClass } from '@/packages/public' +import { WordCloudConfig } from './index' +import { CreateComponentType } from '@/packages/index.d' +import cloneDeep from 'lodash/cloneDeep' +import dataJson from './data.json' + +export const includes = [] + +export const ShapeEnumList = [ + { label: '圆形', value: 'circle' }, + { label: '心形', value: 'cardioid' }, + { label: '钻石', value: 'diamond' }, + { label: '右三角形', value: 'triangle-forward' }, + { label: '三角形', value: 'triangle' }, + { label: '五边形', value: 'pentagon' }, + { label: '星星', value: 'star' } +] + +export const option = { + dataset: [...dataJson], + tooltip: {}, + series: [ + { + type: 'wordCloud', + + // “云”绘制的形状,可以是表示为回调函数,也可以是固定关键字。 + // 可用值有:circle|cardioid|diamond|triangle-forward|triangle|pentagon|star + shape: 'circle', + + // 白色区域将被排除在绘制文本之外的剪影图像。 + // 随着云的形状生长,形状选项将继续应用。 + // maskImage: maskImage, + + // Folllowing left/top/width/height/right/bottom are used for positioning the word cloud + // Default to be put in the center and has 75% x 80% size. + left: 'center', + top: 'center', + width: '70%', + height: '80%', + right: null, + bottom: null, + + // 文本大小范围,默认 [12,60] + sizeRange: [12, 60], + + // 文本旋转范围和程度的步骤。 文本将通过旋转步骤45在[-90,90]中随机旋转 + rotationRange: [0, 0], + rotationStep: 0, + + // size of the grid in pixels for marking the availability of the canvas + // 网格大小越大,单词之间的差距就越大。 + gridSize: 8, + + // 设置为true,以允许单词在画布之外部分地绘制。允许绘制大于画布的大小 + drawOutOfBound: false, + + // If perform layout animation. + // NOTE disable it will lead to UI blocking when there is lots of words. + layoutAnimation: true, + + // Global text style + textStyle: { + fontFamily: 'sans-serif', + fontWeight: 'bold' + // 颜色可以是回调功能或颜色字符串 + // color: function () { + // // 随机颜色 + // return ( + // 'rgb(' + + // [Math.round(Math.random() * 160), Math.round(Math.random() * 160), Math.round(Math.random() * 160)].join( + // ',' + // ) + + // ')' + // ) + // } + }, + emphasis: { + focus: 'self', + + textStyle: { + shadowBlur: 10, + shadowColor: '#333' + } + }, + data: [...dataJson] + } + ] +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = WordCloudConfig.key + public chartConfig = cloneDeep(WordCloudConfig) + // 图表配置项 + public option = echartOptionProfixHandle(option, includes) +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.vue b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.vue new file mode 100644 index 0000000..7893425 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/config.vue @@ -0,0 +1,82 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/data.json b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/data.json new file mode 100644 index 0000000..f091872 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/data.json @@ -0,0 +1,90 @@ +[ + { + "name": "数据可视化", + "value": 8000, + "textStyle": { + "color": "#78fbb2" + }, + "emphasis": { + "textStyle": { + "color": "red" + } + } + }, + { + "name": "GO VIEW", + "value": 6181 + }, + { + "name": "低代码", + "value": 4386 + }, + { + "name": "Vue3", + "value": 4055 + }, + { + "name": "TypeScript4", + "value": 2467 + }, + { + "name": "Vite2", + "value": 2244 + }, + { + "name": "NaiveUI", + "value": 1898 + }, + { + "name": "ECharts5", + "value": 1484 + }, + { + "name": "Axios", + "value": 1112 + }, + { + "name": "Pinia2", + "value": 965 + }, + { + "name": "PlopJS", + "value": 847 + }, + { + "name": "sfc", + "value": 582 + }, + { + "name": "SCSS", + "value": 555 + }, + { + "name": "pnpm", + "value": 550 + }, + { + "name": "eslint", + "value": 462 + }, + { + "name": "json", + "value": 366 + }, + { + "name": "图表", + "value": 360 + }, + { + "name": "地图", + "value": 282 + }, + { + "name": "时钟", + "value": 273 + }, + { + "name": "标题", + "value": 265 + } +] diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.ts new file mode 100644 index 0000000..05949f7 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const WordCloudConfig: ConfigType = { + key: 'WordCloud', + chartKey: 'VWordCloud', + conKey: 'VCWordCloud', + title: '词云', + category: ChatCategoryEnum.MORE, + categoryName: ChatCategoryEnumName.MORE, + package: PackagesCategoryEnum.INFORMATIONS, + chartFrame: ChartFrameEnum.COMMON, + image: 'words_cloud.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.vue b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.vue new file mode 100644 index 0000000..4c9626e --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/WordCloud/index.vue @@ -0,0 +1,72 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Mores/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Mores/index.ts new file mode 100644 index 0000000..8fadc44 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Mores/index.ts @@ -0,0 +1,6 @@ +import { ImageConfig } from './Image/index' +import { IframeConfig } from './Iframe/index' +import { VideoConfig } from './Video/index' +import { WordCloudConfig } from './WordCloud/index' + +export default [WordCloudConfig, ImageConfig, VideoConfig, IframeConfig] diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.ts b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.ts new file mode 100644 index 0000000..eb04f09 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.ts @@ -0,0 +1,42 @@ +import { PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { TextBarrageConfig } from './index' +import { chartInitConfig } from '@/settings/designSetting' +import cloneDeep from 'lodash/cloneDeep' + +export enum FontWeightEnum { + NORMAL = '常规', + BOLD = '加粗', +} + +export const FontWeightObject = { + [FontWeightEnum.NORMAL]: 'normal', + [FontWeightEnum.BOLD]: 'bold', +} + +export const option = { + + dataset: '让数字化看得见', + fontSize: 32, + fontColor: '#ffffff', + fontWeight: 'normal', + // 字间距 + letterSpacing: 5, + //阴影 + showShadow: true, + boxShadow: 'none', + hShadow: 0, + vShadow: 0, + blurShadow: 8, + colorShadow: '#0075ff', + //动画 + animationTime: 0, + animationSpeed: 50, +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = TextBarrageConfig.key + public attr = { ...chartInitConfig, w: 500, h: 70, zIndex: -1 } + public chartConfig = cloneDeep(TextBarrageConfig) + public option = cloneDeep(option) +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.vue b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.vue new file mode 100644 index 0000000..e2a5ad5 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/config.vue @@ -0,0 +1,89 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.ts new file mode 100644 index 0000000..95e5016 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.ts @@ -0,0 +1,13 @@ +import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d' +import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d' + +export const TextBarrageConfig: ConfigType = { + key: 'TextBarrage', + chartKey: 'VTextBarrage', + conKey: 'VCTextBarrage', + title: '弹幕文字', + category: ChatCategoryEnum.TEXT, + categoryName: ChatCategoryEnumName.TEXT, + package: PackagesCategoryEnum.INFORMATIONS, + image: 'text_barrage.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.vue b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.vue new file mode 100644 index 0000000..54e9df2 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextBarrage/index.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.ts b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.ts new file mode 100644 index 0000000..5ee2e1a --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.ts @@ -0,0 +1,52 @@ +import { PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { TextCommonConfig } from './index' +import cloneDeep from 'lodash/cloneDeep' + +export enum WritingModeEnum { + HORIZONTAL = '水平', + VERTICAL = '垂直' +} + +export const WritingModeObject = { + [WritingModeEnum.HORIZONTAL]: 'horizontal-tb', + [WritingModeEnum.VERTICAL]: 'vertical-rl' +} + +export enum FontWeightEnum { + NORMAL = '常规', + BOLD = '加粗', +} + +export const FontWeightObject = { + [FontWeightEnum.NORMAL]: 'normal', + [FontWeightEnum.BOLD]: 'bold', +} + +export const option = { + link: '', + linkHead: 'http://', + dataset: '我是文本', + fontSize: 20, + fontColor: '#ffffff', + paddingX: 10, + paddingY: 10, + textAlign: 'center', // 水平对齐方式 + fontWeight: 'normal', + + // 边框 + borderWidth: 0, + borderColor: '#ffffff', + borderRadius: 5, + + // 字间距 + letterSpacing: 5, + writingMode: 'horizontal-tb', + backgroundColor: '#00000000' +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = TextCommonConfig.key + public chartConfig = cloneDeep(TextCommonConfig) + public option = cloneDeep(option) +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.vue b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.vue new file mode 100644 index 0000000..c2a9e44 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/config.vue @@ -0,0 +1,134 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.ts new file mode 100644 index 0000000..7adeea9 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.ts @@ -0,0 +1,13 @@ +import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d' +import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d' + +export const TextCommonConfig: ConfigType = { + key: 'TextCommon', + chartKey: 'VTextCommon', + conKey: 'VCTextCommon', + title: '文字', + category: ChatCategoryEnum.TEXT, + categoryName: ChatCategoryEnumName.TEXT, + package: PackagesCategoryEnum.INFORMATIONS, + image: 'text_static.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.vue b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.vue new file mode 100644 index 0000000..c60a2fc --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextCommon/index.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.ts b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.ts new file mode 100644 index 0000000..e509952 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.ts @@ -0,0 +1,20 @@ +import { PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { TextGradientConfig } from './index' +import cloneDeep from 'lodash/cloneDeep' + +export const option = { + dataset: '我是渐变文本', + size: 20, + gradient: { + from: '#0000FFFF', + to: '#00FF00FF', + deg: 45 + } +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = TextGradientConfig.key + public chartConfig = cloneDeep(TextGradientConfig) + public option = cloneDeep(option) +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.vue b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.vue new file mode 100644 index 0000000..44e0875 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/config.vue @@ -0,0 +1,45 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.ts new file mode 100644 index 0000000..1ab75ac --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d' + +export const TextGradientConfig: ConfigType = { + key: 'TextGradient', + chartKey: 'VTextGradient', + conKey: 'VCTextGradient', + title: '渐变文字', + category: ChatCategoryEnum.TEXT, + categoryName: ChatCategoryEnumName.TEXT, + package: PackagesCategoryEnum.INFORMATIONS, + chartFrame: ChartFrameEnum.NAIVE_UI, + image: 'text_gradient.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.vue b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.vue new file mode 100644 index 0000000..3145090 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/TextGradient/index.vue @@ -0,0 +1,54 @@ + + + + diff --git a/grailed-ui-go-view/src/packages/components/Informations/Texts/index.ts b/grailed-ui-go-view/src/packages/components/Informations/Texts/index.ts new file mode 100644 index 0000000..960dcae --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/Texts/index.ts @@ -0,0 +1,5 @@ +import { TextCommonConfig } from './TextCommon/index' +import { TextBarrageConfig } from './TextBarrage/index' +import { TextGradientConfig } from './TextGradient/index' + +export default [TextCommonConfig, TextGradientConfig, TextBarrageConfig] diff --git a/grailed-ui-go-view/src/packages/components/Informations/index.d.ts b/grailed-ui-go-view/src/packages/components/Informations/index.d.ts new file mode 100644 index 0000000..f66a7a0 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/index.d.ts @@ -0,0 +1,11 @@ +export enum ChatCategoryEnum { + TEXT = 'Texts', + TITLE = 'Titles', + MORE = 'Mores' +} + +export enum ChatCategoryEnumName { + TEXT = '文本', + TITLE = '标题', + MORE = '更多' +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/packages/components/Informations/index.ts b/grailed-ui-go-view/src/packages/components/Informations/index.ts new file mode 100644 index 0000000..78f5ae1 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Informations/index.ts @@ -0,0 +1,4 @@ +import Texts from './Texts' +import Mores from './Mores' + +export const InformationList = [...Texts, ...Mores] diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.ts b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.ts new file mode 100644 index 0000000..6749328 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.ts @@ -0,0 +1,36 @@ +import { PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { TableListConfig } from './index' +import cloneDeep from 'lodash/cloneDeep' +import dataJson from './data.json' + +export const option = { + // 数据 + dataset: dataJson, + // 表行数 + rowNum: 5, + // 轮播时间 + waitTime: 2, + // 数值单位 + unit: '', + // 自动排序 + sort: true, + color: '#1370fb', + textColor: '#CDD2F8FF', + borderColor: '#1370fb80', + carousel: 'single', + //序号字体大小 + indexFontSize: 12, + //左侧数据字体大小 + leftFontSize: 12, + //右侧数据字体大小 + rightFontSize: 12, + // 格式化 + valueFormatter(item: { value: any}) { return item.value} +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = TableListConfig.key + public chartConfig = cloneDeep(TableListConfig) + public option = cloneDeep(option) +} diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.vue b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.vue new file mode 100644 index 0000000..fb76b46 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/config.vue @@ -0,0 +1,95 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/data.json b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/data.json new file mode 100644 index 0000000..ed8bb52 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/data.json @@ -0,0 +1,14 @@ +[ + { "name": "荣成", "value": 26700 }, + { "name": "河南", "value": 20700 }, + { "name": "河北", "value": 18700 }, + { "name": "徐州", "value": 17800 }, + { "name": "漯河", "value": 16756 }, + { "name": "三门峡", "value": 12343 }, + { "name": "郑州", "value": 9822 }, + { "name": "周口", "value": 8912 }, + { "name": "濮阳", "value": 6834 }, + { "name": "信阳", "value": 5875 }, + { "name": "新乡", "value": 3832 }, + { "name": "大同", "value": 1811 } +] diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.ts b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.ts new file mode 100644 index 0000000..51d502f --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const TableListConfig: ConfigType = { + key: 'TableList', + chartKey: 'VTableList', + conKey: 'VCTableList', + title: '滚动排名列表', + category: ChatCategoryEnum.TABLE, + categoryName: ChatCategoryEnumName.TABLE, + package: PackagesCategoryEnum.TABLES, + chartFrame: ChartFrameEnum.COMMON, + image: 'tables_list.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.vue b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.vue new file mode 100644 index 0000000..24324ec --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableList/index.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.ts b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.ts new file mode 100644 index 0000000..f92f690 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.ts @@ -0,0 +1,26 @@ +import { PublicConfigClass } from '@/packages/public' +import { CreateComponentType } from '@/packages/index.d' +import { TableScrollBoardConfig } from './index' +import cloneDeep from 'lodash/cloneDeep' +import dataJson from './data.json' + +export const option = { + header: ['列1', '列2', '列3'], + dataset: dataJson, + index: true, + columnWidth: [30, 100, 100], + align: ['center', 'right', 'right', 'right'], + rowNum: 5, + waitTime: 2, + headerHeight: 35, + carousel: 'single', + headerBGC: '#00BAFF', + oddRowBGC: '#003B51', + evenRowBGC: '#0A2732' +} + +export default class Config extends PublicConfigClass implements CreateComponentType { + public key = TableScrollBoardConfig.key + public chartConfig = cloneDeep(TableScrollBoardConfig) + public option = cloneDeep(option) +} diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.vue b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.vue new file mode 100644 index 0000000..834cfb5 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/config.vue @@ -0,0 +1,100 @@ + + + diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/data.json b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/data.json new file mode 100644 index 0000000..2508e6f --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/data.json @@ -0,0 +1,12 @@ +[ + ["行1列1", "行1列2", "行1列3"], + ["行2列1", "行2列2", "行2列3"], + ["行3列1", "行3列2", "行3列3"], + ["行4列1", "行4列2", "行4列3"], + ["行5列1", "行5列2", "行5列3"], + ["行6列1", "行6列2", "行6列3"], + ["行7列1", "行7列2", "行7列3"], + ["行8列1", "行8列2", "行8列3"], + ["行9列1", "行9列2", "行9列3"], + ["行10列1", "行10列2", "行10列3"] +] diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.ts b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.ts new file mode 100644 index 0000000..5ecc6e6 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.ts @@ -0,0 +1,14 @@ +import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d' +import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d' + +export const TableScrollBoardConfig: ConfigType = { + key: 'TableScrollBoard', + chartKey: 'VTableScrollBoard', + conKey: 'VCTableScrollBoard', + title: '轮播列表', + category: ChatCategoryEnum.TABLE, + categoryName: ChatCategoryEnumName.TABLE, + package: PackagesCategoryEnum.TABLES, + chartFrame: ChartFrameEnum.COMMON, + image: 'table_scrollboard.png' +} diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.vue b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.vue new file mode 100644 index 0000000..669be3e --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/TableScrollBoard/index.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/grailed-ui-go-view/src/packages/components/Tables/Tables/index.ts b/grailed-ui-go-view/src/packages/components/Tables/Tables/index.ts new file mode 100644 index 0000000..dbad93e --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/Tables/index.ts @@ -0,0 +1,4 @@ +import { TableListConfig } from './TableList' +import { TableScrollBoardConfig } from './TableScrollBoard' + +export default [TableListConfig, TableScrollBoardConfig] diff --git a/grailed-ui-go-view/src/packages/components/Tables/index.d.ts b/grailed-ui-go-view/src/packages/components/Tables/index.d.ts new file mode 100644 index 0000000..f4e0fea --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/index.d.ts @@ -0,0 +1,7 @@ +export enum ChatCategoryEnum { + TABLE = 'Tables', +} + +export enum ChatCategoryEnumName { + TABLE = '表格', +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/packages/components/Tables/index.ts b/grailed-ui-go-view/src/packages/components/Tables/index.ts new file mode 100644 index 0000000..530e056 --- /dev/null +++ b/grailed-ui-go-view/src/packages/components/Tables/index.ts @@ -0,0 +1,3 @@ +import Tables from './Tables' + +export const TableList = [...Tables] diff --git a/grailed-ui-go-view/src/packages/index.d.ts b/grailed-ui-go-view/src/packages/index.d.ts new file mode 100644 index 0000000..e1f626b --- /dev/null +++ b/grailed-ui-go-view/src/packages/index.d.ts @@ -0,0 +1,171 @@ +import { BaseEvent, EventLife } from '@/enums/eventEnum' +import type { GlobalThemeJsonType } from '@/settings/chartThemes/index' +import type { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' + +export enum ChartFrameEnum { + // 支持 dataset 的 echarts 框架 + ECHARTS = 'echarts', + // UI 组件框架 + NAIVE_UI = 'naiveUI', + // 自定义带数据组件 + COMMON = 'common', + // 无数据变更 + STATIC = 'static' +} + +// 组件配置 +export type ConfigType = { + key: string + chartKey: string + conKey: string + title: string + category: string + categoryName: string + package: string + chartFrame?: ChartFrameEnum + image: string +} + +// 数据请求 +interface requestConfig { + request: RequestConfigType +} + +// Echarts 数据类型 +interface EchartsDataType { + dimensions: string[] + source: any[] +} + +// 组件状态 +export interface StatusType { + lock: boolean + hide: boolean +} + +// 滤镜/变换枚举 +export enum FilterEnum { + // 是否启用 + FILTERS_SHOW = 'filterShow', + + // 透明度 + OPACITY = 'opacity', + // 饱和度 + SATURATE = 'saturate', + // 对比度 + CONTRAST = 'contrast', + // 色相 + HUE_ROTATE = 'hueRotate', + // 亮度 + BRIGHTNESS = 'brightness', + + // 旋转 + ROTATE_Z = 'rotateZ', + ROTATE_X = 'rotateX', + ROTATE_Y = 'rotateY', + + // 倾斜 + SKEW_X = 'skewX', + SKEW_Y = 'skewY', + + // 混合模式 + BLEND_MODE = 'blendMode' +} + +export const BlendModeEnumList = [ + { label: '正常', value: 'normal' }, + { label: '正片叠底', value: 'multiply' }, + { label: '叠加', value: 'overlay' }, + { label: '滤色', value: 'screen' }, + { label: '变暗', value: 'darken' }, + { label: '变亮', value: 'lighten' }, + { label: '颜色减淡', value: 'color-dodge' }, + { label: '颜色加深', value: 'color-burn;' }, + { label: '强光', value: 'hard-light' }, + { label: '柔光', value: 'soft-light' }, + { label: '差值', value: 'difference' }, + { label: '排除', value: 'exclusion' }, + { label: '色相', value: 'hue' }, + { label: '饱和度', value: 'saturation' }, + { label: '颜色', value: 'color' }, + { label: '亮度', value: 'luminosity' } +] + +// 组件实例类 +export interface PublicConfigType { + id: string + isGroup: boolean + attr: { x: number; y: number; w: number; h: number; zIndex: number; offsetX: number; offsetY: number } + styles: { + [FilterEnum.FILTERS_SHOW]: boolean + [FilterEnum.OPACITY]: number + [FilterEnum.SATURATE]: number + [FilterEnum.CONTRAST]: number + [FilterEnum.HUE_ROTATE]: number + [FilterEnum.BRIGHTNESS]: number + + [FilterEnum.ROTATE_Z]: number + [FilterEnum.ROTATE_X]: number + [FilterEnum.ROTATE_Y]: number + + [FilterEnum.SKEW_X]: number + [FilterEnum.SKEW_Y]: number + [FilterEnum.BLEND_MODE]: string + // 动画 + animations: string[] + } + filter?: string + status: StatusType + events: { + baseEvent: { + [K in BaseEvent]?: string + }, + advancedEvents: { + [K in EventLife]?: string + } + } +} + +export interface CreateComponentType extends PublicConfigType, requestConfig { + key: string + chartConfig: ConfigType + option: GlobalThemeJsonType, +} + +// 组件成组实例类 +export interface CreateComponentGroupType extends CreateComponentType { + groupList: Array +} + +// 获取组件实例类中某个key对应value类型的方法 +export type PickCreateComponentType = Pick[T] + +// 包分类枚举 +export enum PackagesCategoryEnum { + CHARTS = 'Charts', + TABLES = 'Tables', + INFORMATIONS = 'Informations', + DECORATES = 'Decorates' +} + +// 包分类名称 +export enum PackagesCategoryName { + CHARTS = '图表', + TABLES = '列表', + INFORMATIONS = '信息', + DECORATES = '小组件' +} + +// 获取组件 +export enum FetchComFlagType { + VIEW, + CONFIG +} + +// 图表包类型 +export type PackagesType = { + [PackagesCategoryEnum.CHARTS]: ConfigType[] + [PackagesCategoryEnum.INFORMATIONS]: ConfigType[] + [PackagesCategoryEnum.TABLES]: ConfigType[] + [PackagesCategoryEnum.DECORATES]: ConfigType[] +} diff --git a/grailed-ui-go-view/src/packages/index.ts b/grailed-ui-go-view/src/packages/index.ts new file mode 100644 index 0000000..4f530fa --- /dev/null +++ b/grailed-ui-go-view/src/packages/index.ts @@ -0,0 +1,81 @@ +import { ChartList } from '@/packages/components/Charts/index' +import { DecorateList } from '@/packages/components/Decorates/index' +import { InformationList } from '@/packages/components/Informations/index' +import { TableList } from '@/packages/components/Tables/index' +import { PackagesCategoryEnum, PackagesType, ConfigType, FetchComFlagType } from '@/packages/index.d' + +const configModules = import.meta.globEager('./components/**/config.vue') +const indexModules = import.meta.globEager('./components/**/index.vue') +const imagesModules = import.meta.globEager('../assets/images/chart/**') + +// * 所有图表 +export let packagesList: PackagesType = { + [PackagesCategoryEnum.CHARTS]: ChartList, + [PackagesCategoryEnum.INFORMATIONS]: InformationList, + [PackagesCategoryEnum.TABLES]: TableList, + [PackagesCategoryEnum.DECORATES]: DecorateList +} + +/** + * * 获取目标组件配置信息 + * @param targetData + */ +export const createComponent = async (targetData: ConfigType) => { + const { category, key } = targetData + const chart = await import(`./components/${targetData.package}/${category}/${key}/config.ts`) + return new chart.default() +} + +/** + * * 获取组件 + * @param {string} chartName 名称 + * @param {FetchComFlagType} flag 标识 0为展示组件, 1为配置组件 + */ +const fetchComponent = (chartName: string, flag: FetchComFlagType) => { + const module = flag === FetchComFlagType.VIEW ? indexModules : configModules + for (const key in module) { + const urlSplit = key.split('/') + if (urlSplit[urlSplit.length - 2] === chartName) { + return module[key] + } + } +} + +/** + * * 获取展示组件 + * @param {ConfigType} dropData 配置项 + */ +export const fetchChartComponent = (dropData: ConfigType) => { + const { key } = dropData + return fetchComponent(key, FetchComFlagType.VIEW)?.default +} + +/** + * * 获取配置组件 + * @param {ConfigType} dropData 配置项 + */ +export const fetchConfigComponent = (dropData: ConfigType) => { + const { key } = dropData + return fetchComponent(key, FetchComFlagType.CONFIG)?.default +} + +/** + * * 获取图片内容 + * @param {ConfigType} targetData 配置项 + */ +export const fetchImages = async (targetData?: ConfigType) => { + if (!targetData) return '' + // 新数据动态处理 + const { image, package: targetDataPackage } = targetData + // 兼容旧数据 + if (image.includes('@') || image.includes('base64')) return image + + const imageName = image.substring(image.lastIndexOf('/') + 1) + for (const key in imagesModules) { + const urlSplit = key.split('/') + if (urlSplit[urlSplit.length - 1] === imageName) { + return imagesModules[key]?.default + } + } + return '' +} diff --git a/grailed-ui-go-view/src/packages/public/chart.ts b/grailed-ui-go-view/src/packages/public/chart.ts new file mode 100644 index 0000000..d36a850 --- /dev/null +++ b/grailed-ui-go-view/src/packages/public/chart.ts @@ -0,0 +1,35 @@ +import merge from 'lodash/merge' +import pick from 'lodash/pick' +import { EchartsDataType } from '../index.d' +import { globalThemeJson } from '@/settings/chartThemes/index' + +/** + * * 合并 color 和全局配置项 + * @param option 配置 + * @param themeSetting 设置 + * @param excludes 排除元素 + * @returns object + */ +export const mergeTheme = (option: T, themeSetting: U, includes: string[]) => { + return (option = merge({}, pick(themeSetting, includes), option)) +} + +/** + * * ECharts option 统一前置处理 + * @param option + * @return option + */ +export const echartOptionProfixHandle = (option: any, includes: string[]) => { + option['backgroundColor'] = 'rgba(0,0,0,0)' + return mergeTheme(option, globalThemeJson, includes) +} + +/** + * * 设置数据 + * @param option + * @return option + */ +export const setData = (option: any, data: EchartsDataType) => { + option.dataset = data + return option +} diff --git a/grailed-ui-go-view/src/packages/public/index.ts b/grailed-ui-go-view/src/packages/public/index.ts new file mode 100644 index 0000000..f6810cf --- /dev/null +++ b/grailed-ui-go-view/src/packages/public/index.ts @@ -0,0 +1,2 @@ +export * from '@/packages/public/chart' +export * from '@/packages/public/publicConfig' diff --git a/grailed-ui-go-view/src/packages/public/publicConfig.ts b/grailed-ui-go-view/src/packages/public/publicConfig.ts new file mode 100644 index 0000000..c428863 --- /dev/null +++ b/grailed-ui-go-view/src/packages/public/publicConfig.ts @@ -0,0 +1,132 @@ +import { getUUID } from '@/utils' +import { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' +import { groupTitle } from '@/settings/designSetting' +import { BaseEvent, EventLife } from '@/enums/eventEnum' +import { + RequestHttpEnum, + RequestDataTypeEnum, + RequestHttpIntervalEnum, + RequestContentTypeEnum, + RequestBodyEnum +} from '@/enums/httpEnum' +import { + ChartFrameEnum, + PublicConfigType, + CreateComponentType, + CreateComponentGroupType +} from '@/packages/index.d' +import { chartInitConfig } from '@/settings/designSetting' +import cloneDeep from 'lodash/cloneDeep' + +// 请求基础属性 +export const requestConfig: RequestConfigType = { + requestDataType: RequestDataTypeEnum.STATIC, + requestHttpType: RequestHttpEnum.GET, + requestUrl: '', + requestInterval: undefined, + requestIntervalUnit: RequestHttpIntervalEnum.SECOND, + requestContentType: RequestContentTypeEnum.DEFAULT, + requestParamsBodyType: RequestBodyEnum.NONE, + requestSQLContent: { + sql: 'select * from where' + }, + requestParams: { + Body: { + 'form-data': {}, + 'x-www-form-urlencoded': {}, + json: '', + xml: '' + }, + Header: {}, + Params: {} + } +} + +// 单实例类 +export class PublicConfigClass implements PublicConfigType { + public id = getUUID() + public isGroup = false + // 基本信息 + public attr = { ...chartInitConfig, zIndex: -1 } + // 基本样式 + public styles = { + // 使用滤镜 + filterShow: false, + // 色相 + hueRotate: 0, + // 饱和度 + saturate: 1, + // 对比度 + contrast: 1, + // 亮度 + brightness: 1, + // 透明 + opacity: 1, + + // 旋转 + rotateZ: 0, + rotateX: 0, + rotateY: 0, + + // 倾斜 + skewX: 0, + skewY: 0, + + // 混合模式 + blendMode: 'normal', + + // 动画 + animations: [] + } + // 状态 + public status = { + lock: false, + hide: false + } + // 请求 + public request = cloneDeep(requestConfig) + // 数据过滤 + public filter = undefined + // 事件 + public events = { + baseEvent: { + [BaseEvent.ON_CLICK]: undefined, + [BaseEvent.ON_DBL_CLICK]: undefined, + [BaseEvent.ON_MOUSE_ENTER]: undefined, + [BaseEvent.ON_MOUSE_LEAVE]: undefined + }, + advancedEvents: { + [EventLife.VNODE_MOUNTED]: undefined, + [EventLife.VNODE_BEFORE_MOUNT]: undefined + } + } +} + +// 多选成组类 +export class PublicGroupConfigClass extends PublicConfigClass implements CreateComponentGroupType { + // 成组 + public isGroup = true + // 名称 + public chartConfig = { + key: 'group', + chartKey: 'group', + conKey: 'group', + category: 'group', + categoryName: 'group', + package: 'group', + chartFrame: ChartFrameEnum.COMMON, + title: groupTitle, + image: '' + } + // 组成员列表 + public groupList: Array = [] + // ---- 原有 --- + // key + public key = 'group' + // 配置 + public option = {} + // 标识 + public id = getUUID() + // 基本信息 + public attr = { w: 0, h: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, zIndex: -1 } +} diff --git a/grailed-ui-go-view/src/plugins/customComponents.ts b/grailed-ui-go-view/src/plugins/customComponents.ts new file mode 100644 index 0000000..81e67df --- /dev/null +++ b/grailed-ui-go-view/src/plugins/customComponents.ts @@ -0,0 +1,17 @@ +import type { App } from 'vue' +import { GoSkeleton } from '@/components/GoSkeleton' +import { GoLoading } from '@/components/GoLoading' +import { SketchRule } from 'vue3-sketch-ruler' + +/** + * 全局注册自定义组件 + * @param app + */ +export function setupCustomComponents(app: App) { + // 骨架屏 + app.component('GoSkeleton', GoSkeleton) + // 加载 + app.component('GoLoading', GoLoading) + // 标尺 + app.component('SketchRule', SketchRule) +} diff --git a/grailed-ui-go-view/src/plugins/directives.ts b/grailed-ui-go-view/src/plugins/directives.ts new file mode 100644 index 0000000..2b752aa --- /dev/null +++ b/grailed-ui-go-view/src/plugins/directives.ts @@ -0,0 +1,17 @@ +import { App } from 'vue'; +import VueLazyLoad from 'vue3-lazyload' +import { requireErrorImg } from '@/utils' + +// import { x } from '@/directives'; + +/** + * 注册全局自定义指令 + * @param app + */ +export function setupDirectives(app: App) { + // 图片懒加载 + app.use(VueLazyLoad, { + error: requireErrorImg(), + }) + // app.directive('x', x); +} diff --git a/grailed-ui-go-view/src/plugins/icon.ts b/grailed-ui-go-view/src/plugins/icon.ts new file mode 100644 index 0000000..29d9bc3 --- /dev/null +++ b/grailed-ui-go-view/src/plugins/icon.ts @@ -0,0 +1,302 @@ +import { + Close as CloseIcon, + Remove as RemoveIcon, + Resize as ResizeIcon, + EllipsisHorizontalSharp as EllipsisHorizontalCircleSharpIcon, + CopyOutline as CopyIcon, + Trash as TrashIcon, + Pencil as PencilIcon, + HammerOutline as HammerIcon, + DesktopOutline as DesktopOutlineIcon, + Download as DownloadIcon, + DownloadOutline as DownloadOutlineIcon, + Share as ShareIcon, + Send as SendIcon, + InformationCircleOutline as InformationCircleIcon, + Grid as GridIcon, + TvOutline as TvOutlineIcon, + DocumentText as DocumentTextIcon, + Language as LanguageIcon, + Moon as MoonIcon, + Sunny as SunnyIcon, + Person as PersonIcon, + PersonOutline as PersonOutlineIcon, + LogOutOutline as LogOutOutlineIcon, + ChatboxEllipses as ChatboxEllipsesIcon, + LockOpenOutline as LockOpenOutlineIcon, + LockClosedOutline as LockClosedOutlineIcon, + HelpCircleOutline as HelpOutlineIcon, + CodeSlash as CodeSlashIcon, + Create as CreateIcon, + Rocket as RocketIcon, + Duplicate as DuplicateIcon, + DuplicateOutline as DuplicateOutlineIcon, + Fish as FishIcon, + BarChart as BarChartIcon, + Layers as LayersIcon, + Prism as PrismIcon, + Construct as ConstructIcon, + ChevronBackOutline as ChevronBackOutlineIcon, + Flash as FlashIcon, + SettingsSharp as SettingsSharpIcon, + Home as HomeIcon, + Card as CardIcon, + ChevronUp as ChevronUpIcon, + ChevronDown as ChevronDownIcon, + ClipboardOutline as ClipboardOutlineIcon, + BrowsersOutline as BrowsersOutlineIcon, + Cut as CutIcon, + Square as SquareIcon, + ColorPalette as ColorPaletteIcon, + Leaf as LeafIcon, + ColorWand as ColorWandIcon, + ArrowBack as ArrowBackIcon, + ArrowForward as ArrowForwardIcon, + Planet as PawIcon, + Search as SearchIcon, + Reload as ReloadIcon, + ChevronUpOutline as ChevronUpOutlineIcon, + ChevronDownOutline as ChevronDownOutlineIcon, + Pulse as PulseIcon, + Folder as FolderIcon, + FolderOpen as FolderOpenIcon, + Image as ImageIcon, + Images as ImagesIcon, + List as ListIcon, + EyeOutline as EyeOutlineIcon, + EyeOffOutline as EyeOffOutlineIcon, + Albums as AlbumsIcon +} from '@vicons/ionicons5' + +import { + TableSplit as TableSplitIcon, + Roadmap as RoadmapIcon, + SpellCheck as SpellCheckIcon, + GraphicalDataFlow as GraphicalDataFlowIcon, + Store as StoreIcon, + Devices as DevicesIcon, + ObjectStorage as ObjectStorageIcon, + DicomOverlay as DicomOverlayIcon, + UpToTop as UpToTopIcon, + DownToBottom as DownToBottomIcon, + StackedMove as StackedMoveIcon, + PaintBrush as PaintBrushIcon, + ComposerEdit as ZAxisIcon, + AlignHorizontalLeft as AlignHorizontalLeftIcon, + AlignVerticalCenter as AlignVerticalCenterIcon, + AlignVerticalTop as AlignVerticalTopIcon, + AlignHorizontalCenter as AlignHorizontalCenterIcon, + AlignHorizontalRight as AlignHorizontalRightIcon, + AlignVerticalBottom as AlignVerticalBottomIcon, + DocumentAdd as DocumentAddIcon, + DocumentDownload as DocumentDownloadIcon, + Scale as ScaleIcon, + FitToScreen as FitToScreenIcon, + FitToHeight as FitToHeightIcon, + FitToWidth as FitToWidthIcon, + Save as SaveIcon, + Carbon3DCursor as Carbon3DCursorIcon, + Carbon3DSoftware as Carbon3DSoftwareIcon, + Filter as FilterIcon, + FilterEdit as FilterEditIcon, + Laptop as LaptopIcon +} from '@vicons/carbon' + +const ionicons5 = { + // 帮助(问号) + HelpOutlineIcon, + // 添加 + DuplicateIcon, + // 添加 Outline + DuplicateOutlineIcon, + // 代码 + CodeSlashIcon, + // 修改代码 + CreateIcon, + // 事件(火箭) + RocketIcon, + // 退出 + LogOutOutlineIcon, + // 锁 + LockOpenOutlineIcon, + LockClosedOutlineIcon, + // 人 + PersonIcon, + // 人2 + PersonOutlineIcon, + // 更多(省略号) + ChatboxEllipsesIcon, + // 月亮 + MoonIcon, + // 太阳 + SunnyIcon, + // 关闭 + CloseIcon, + // 移除(最小化) + RemoveIcon, + // 调整(最大化) + ResizeIcon, + // 省略号 + EllipsisHorizontalCircleSharpIcon, + // 复制 + CopyIcon, + // 删除(垃圾桶) + TrashIcon, + // 编辑1(笔) + PencilIcon, + // 编辑2(锤子) + HammerIcon, + // 电脑 + DesktopOutlineIcon, + // 下载 + DownloadIcon, + DownloadOutlineIcon, + // 导出 + ShareIcon, + // 导出 + SendIcon, + // 信息 + InformationCircleIcon, + // 项目 + GridIcon, + // 电脑1 + TvOutlineIcon, + // 预览,浏览器 + BrowsersOutlineIcon, + // 文档 + DocumentTextIcon, + // 语言 + LanguageIcon, + // 新项目(鱼) + FishIcon, + // 图表 + BarChartIcon, + // 图层 + LayersIcon, + // 组件详情设置(三棱镜) + PrismIcon, + // 正方体 + ConstructIcon, + // 折叠/回退 + ChevronBackOutlineIcon, + // 后端数据(闪电) + FlashIcon, + // 设置(齿轮) + SettingsSharpIcon, + // 回退 + HomeIcon, + // 控件(卡片) + CardIcon, + // 上移 + ChevronUpIcon, + // 下移 + ChevronDownIcon, + // 剪贴板 + ClipboardOutlineIcon, + // 剪贴 + CutIcon, + // 正方形 + SquareIcon, + // 色彩选择 + ColorPaletteIcon, + ZAxisIcon, + // 气球 + LeafIcon, + // 颜色 + ColorWandIcon, + // 撤回 + ArrowBackIcon, + // 前进 + ArrowForwardIcon, + // 狗爪 + PawIcon, + // 搜索(放大镜) + SearchIcon, + // 加载 + ReloadIcon, + // 过滤器 + FilterIcon, + // 向上 + ChevronUpOutlineIcon, + // 向下 + ChevronDownOutlineIcon, + // 脉搏 + PulseIcon, + // 文件夹 + FolderIcon, + // 文件夹打开 + FolderOpenIcon, + // 图片 + ImageIcon, + // 多个图片 + ImagesIcon, + // 列表 + ListIcon, + // 眼睛 + EyeOutlineIcon, + EyeOffOutlineIcon, + // 图表列表 + AlbumsIcon +} + +const carbon = { + // 图表 + RoadmapIcon, + // 信息 + SpellCheckIcon, + // 表格 + TableSplitIcon, + // 装饰 + GraphicalDataFlowIcon, + // 项目 + DevicesIcon, + // 模板市场 + StoreIcon, + // 我的模板 + ObjectStorageIcon, + // 键盘 + DicomOverlayIcon, + // 置顶 + UpToTopIcon, + // 置底 + DownToBottomIcon, + // 移动 + StackedMoveIcon, + // 清空剪切板(刷子) + PaintBrushIcon, + // 坐标轴 + ZAxisIcon, + AlignHorizontalLeftIcon, + AlignVerticalCenterIcon, + AlignVerticalTopIcon, + AlignHorizontalCenterIcon, + AlignHorizontalRightIcon, + AlignVerticalBottomIcon, + // 添加文件 + DocumentAddIcon, + // 下载文件 + DocumentDownloadIcon, + // 预览展示方式 + ScaleIcon, + FitToScreenIcon, + FitToHeightIcon, + FitToWidthIcon, + // 保存 + SaveIcon, + // 成组 + Carbon3DCursorIcon, + // 解组 + Carbon3DSoftwareIcon, + // 过滤器 + FilterIcon, + FilterEditIcon, + // 图层 + LaptopIcon +} + +// https://www.xicons.org/#/ 还有很多 + +export const icon = { + ionicons5, + carbon +} diff --git a/grailed-ui-go-view/src/plugins/index.ts b/grailed-ui-go-view/src/plugins/index.ts new file mode 100644 index 0000000..c500f63 --- /dev/null +++ b/grailed-ui-go-view/src/plugins/index.ts @@ -0,0 +1,4 @@ +export { setupNaive } from '@/plugins/naive' +export { setupDirectives } from '@/plugins/directives' +export { setupCustomComponents } from '@/plugins/customComponents' +export { icon } from '@/plugins/icon' diff --git a/grailed-ui-go-view/src/plugins/naive.ts b/grailed-ui-go-view/src/plugins/naive.ts new file mode 100644 index 0000000..ab4dbb1 --- /dev/null +++ b/grailed-ui-go-view/src/plugins/naive.ts @@ -0,0 +1,211 @@ +import type { App } from 'vue' +import { + create, + NA, + NP, + NH1, + NH2, + NH3, + NH4, + NH5, + NCode, + NCountdown, + NText, + NTime, + NEllipsis, + NConfigProvider, + NMessageProvider, + NDialogProvider, + NGradientText, + NInput, + NImage, + NButton, + NButtonGroup, + NForm, + NFormItem, + NCheckboxGroup, + NCheckbox, + NIcon, + NLayout, + NLayoutHeader, + NLayoutContent, + NLayoutFooter, + NLayoutSider, + NMenu, + NBreadcrumb, + NBreadcrumbItem, + NDropdown, + NSpace, + NTooltip, + NAvatar, + NTabs, + NTab, + NTabPane, + NCard, + NRow, + NCol, + NDrawer, + NDrawerContent, + NDivider, + NSwitch, + NBadge, + NAlert, + NElement, + NTag, + NNotificationProvider, + NNumberAnimation, + NProgress, + NDatePicker, + NGrid, + NGridItem, + NList, + NListItem, + NThing, + NDataTable, + NPopover, + NPagination, + NSelect, + NSlider, + NRadioGroup, + NRadio, + NSteps, + NStep, + NInputGroup, + NInputGroupLabel, + NResult, + NDescriptions, + NDescriptionsItem, + NTable, + NInputNumber, + NLoadingBarProvider, + NModal, + NUpload, + NUploadFileList, + NUploadTrigger, + NUploadDragger, + NTree, + NSpin, + NTimeline, + NTimelineItem, + NTimePicker, + NBackTop, + NSkeleton, + NStatistic, + NCarousel, + NScrollbar, + NPopselect, + NCollapse, + NCollapseItem, + NColorPicker, + NWatermark, + NEmpty, + NCollapseTransition +} from 'naive-ui' + +const naive = create({ + components: [ + NA, + NP, + NH1, + NH2, + NH3, + NH4, + NH5, + NCode, + NCountdown, + NText, + NTime, + NEllipsis, + NMessageProvider, + NDialogProvider, + NConfigProvider, + NGradientText, + NInput, + NButton, + NButtonGroup, + NForm, + NFormItem, + NCheckboxGroup, + NCheckbox, + NIcon, + NImage, + NLayout, + NLayoutHeader, + NLayoutContent, + NLayoutFooter, + NLayoutSider, + NMenu, + NBreadcrumb, + NBreadcrumbItem, + NDropdown, + NSpace, + NTooltip, + NAvatar, + NTabs, + NTab, + NTabPane, + NCard, + NRow, + NCol, + NDrawer, + NDrawerContent, + NDivider, + NSwitch, + NBadge, + NAlert, + NElement, + NTag, + NNotificationProvider, + NNumberAnimation, + NProgress, + NDatePicker, + NGrid, + NGridItem, + NList, + NListItem, + NThing, + NDataTable, + NPopover, + NPagination, + NSlider, + NSelect, + NRadioGroup, + NRadio, + NSteps, + NStep, + NInputGroup, + NInputGroupLabel, + NResult, + NDescriptions, + NDescriptionsItem, + NTable, + NInputNumber, + NLoadingBarProvider, + NModal, + NUpload, + NUploadFileList, + NUploadTrigger, + NUploadDragger, + NTree, + NSpin, + NTimeline, + NTimelineItem, + NTimePicker, + NBackTop, + NSkeleton, + NStatistic, + NCarousel, + NScrollbar, + NPopselect, + NCollapse, + NCollapseItem, + NColorPicker, + NWatermark, + NEmpty, + NCollapseTransition + ] +}) + +export function setupNaive(app: App) { + app.use(naive) +} diff --git a/grailed-ui-go-view/src/router/base.ts b/grailed-ui-go-view/src/router/base.ts new file mode 100644 index 0000000..8e4202b --- /dev/null +++ b/grailed-ui-go-view/src/router/base.ts @@ -0,0 +1,80 @@ +import { RouteRecordRaw } from 'vue-router' +import type { AppRouteRecordRaw } from '@/router/types'; +import { ErrorPage404, ErrorPage403, ErrorPage500, Layout, RedirectHome, RedirectUnPublish } from '@/router/constant'; +import { PageEnum } from '@/enums/pageEnum' +import { GoReload } from '@/components/GoReload' + + +export const LoginRoute: RouteRecordRaw = { + path: PageEnum.BASE_LOGIN, + name: PageEnum.BASE_LOGIN_NAME, + component: () => import('@/views/login/index.vue'), + meta: { + title: '登录', + }, +}; + +export const HttpErrorPage: RouteRecordRaw[] = [ + { + path: '/error/404', + name: PageEnum.ERROR_PAGE_NAME_404, + component: ErrorPage404, + meta: { + title: PageEnum.ERROR_PAGE_NAME_404, + }, + }, + { + path: '/error/403', + name: PageEnum.ERROR_PAGE_NAME_403, + component: ErrorPage403, + meta: { + title: PageEnum.ERROR_PAGE_NAME_403, + }, + }, + { + path: '/error/500', + name: PageEnum.ERROR_PAGE_NAME_500, + component: ErrorPage500, + meta: { + title: PageEnum.ERROR_PAGE_NAME_500, + }, + }, +] + +export const ErrorPageRoute: AppRouteRecordRaw = { + path: '/:path(.*)*', + name: 'ErrorPage', + component: ErrorPage404, + meta: { + title: PageEnum.ERROR_PAGE_NAME_404, + hideBreadcrumb: true, + } +}; + +export const ReloadRoute: AppRouteRecordRaw = { + path: PageEnum.RELOAD, + name: PageEnum.RELOAD_NAME, + component: GoReload, + meta: { + title: PageEnum.RELOAD_NAME, + }, +} + +export const RedirectRoute: RouteRecordRaw[] = [ + { + path: PageEnum.REDIRECT, + name: PageEnum.REDIRECT_NAME, + component: RedirectHome, + meta: { + title: PageEnum.REDIRECT_NAME, + }, + }, + { + path: PageEnum.REDIRECT_UN_PUBLISH, + name: PageEnum.REDIRECT_UN_PUBLISH_NAME, + component: RedirectUnPublish, + meta: { + title: PageEnum.REDIRECT_UN_PUBLISH_NAME, + }, + }, +] diff --git a/grailed-ui-go-view/src/router/constant.ts b/grailed-ui-go-view/src/router/constant.ts new file mode 100644 index 0000000..d540b6f --- /dev/null +++ b/grailed-ui-go-view/src/router/constant.ts @@ -0,0 +1,13 @@ +export const ErrorPage404 = () => import('@/views/exception/404.vue'); + +export const ErrorPage403 = () => import('@/views/exception/403.vue'); + +export const ErrorPage500 = () => import('@/views/exception/500.vue'); + +export const RedirectHome = () => import('@/views/redirect/index.vue'); + +export const RedirectUnPublish = () => import('@/views/redirect/UnPublish.vue'); + +export const Layout = () => import('@/layout/index.vue'); + +export const ParentLayout = () => import('@/layout/parentLayout.vue'); diff --git a/grailed-ui-go-view/src/router/index.ts b/grailed-ui-go-view/src/router/index.ts new file mode 100644 index 0000000..c8977dd --- /dev/null +++ b/grailed-ui-go-view/src/router/index.ts @@ -0,0 +1,44 @@ +import type { App } from 'vue' +import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' +import { createRouterGuards } from './router-guards' +import { PageEnum } from '@/enums/pageEnum' +import { HttpErrorPage, LoginRoute, ReloadRoute, RedirectRoute } from '@/router/base' +import { Layout } from '@/router/constant' + +import modules from '@/router/modules' + +const RootRoute: Array = [ + { + path: '/', + name: 'Root', + redirect: PageEnum.BASE_HOME, + component: Layout, + meta: { + title: 'Root', + }, + children: [ + ...HttpErrorPage, + ...RedirectRoute, + modules.projectRoutes, + modules.chartRoutes, + modules.previewRoutes, + modules.editRoutes + ] + } +] + + +export const constantRouter: any[] = [LoginRoute, ...RootRoute, ReloadRoute]; + +const router = createRouter({ + history: createWebHashHistory(''), + routes: constantRouter, + strict: true, +}) + +export function setupRouter(app: App) { + app.use(router); + // 创建路由守卫 + createRouterGuards(router) +} +export default router diff --git a/grailed-ui-go-view/src/router/modules/chart.route.ts b/grailed-ui-go-view/src/router/modules/chart.route.ts new file mode 100644 index 0000000..c910767 --- /dev/null +++ b/grailed-ui-go-view/src/router/modules/chart.route.ts @@ -0,0 +1,21 @@ +import { RouteRecordRaw } from 'vue-router' +import { ChartEnum } from '@/enums/pageEnum' + +// 引入路径 +const importPath = { + 'ChartEnum.CHART_HOME_NAME': () => import('@/views/chart/index.vue') +} + +const chartRoutes: RouteRecordRaw = { + path: ChartEnum.CHART_HOME, + name: ChartEnum.CHART_HOME_NAME, + component: importPath['ChartEnum.CHART_HOME_NAME'], + meta: { + title: '工作空间', + isRoot: true, + noKeepAlive: true, + } +} + + +export default chartRoutes \ No newline at end of file diff --git a/grailed-ui-go-view/src/router/modules/edit.route.ts b/grailed-ui-go-view/src/router/modules/edit.route.ts new file mode 100644 index 0000000..50b8168 --- /dev/null +++ b/grailed-ui-go-view/src/router/modules/edit.route.ts @@ -0,0 +1,20 @@ +import { RouteRecordRaw } from 'vue-router' +import { EditEnum } from '@/enums/pageEnum' + +// 引入路径 +const importPath = { + [EditEnum.CHART_EDIT_NAME]: () => import('@/views/edit/index.vue') +} + +const chartRoutes: RouteRecordRaw = { + path: EditEnum.CHART_EDIT, + name: EditEnum.CHART_EDIT_NAME, + component: importPath[EditEnum.CHART_EDIT_NAME], + meta: { + title: '编辑', + isRoot: true + } +} + + +export default chartRoutes \ No newline at end of file diff --git a/grailed-ui-go-view/src/router/modules/index.ts b/grailed-ui-go-view/src/router/modules/index.ts new file mode 100644 index 0000000..c134d95 --- /dev/null +++ b/grailed-ui-go-view/src/router/modules/index.ts @@ -0,0 +1,11 @@ +import projectRoutes from './project.router' +import chartRoutes from './chart.route' +import previewRoutes from './preview.route' +import editRoutes from './edit.route' + +export default { + projectRoutes, + chartRoutes, + previewRoutes, + editRoutes +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/router/modules/preview.route.ts b/grailed-ui-go-view/src/router/modules/preview.route.ts new file mode 100644 index 0000000..ae3d919 --- /dev/null +++ b/grailed-ui-go-view/src/router/modules/preview.route.ts @@ -0,0 +1,20 @@ +import { RouteRecordRaw } from 'vue-router' +import { PreviewEnum } from '@/enums/pageEnum' + +// 引入路径 +const importPath = { + 'PreviewEnum.CHART_PREVIEW_NAME': () => import('@/views/preview/wrapper.vue') +} + +const chartRoutes: RouteRecordRaw = { + path: PreviewEnum.CHART_PREVIEW, + name: PreviewEnum.CHART_PREVIEW_NAME, + component: importPath['PreviewEnum.CHART_PREVIEW_NAME'], + meta: { + title: '预览', + isRoot: true + } +} + + +export default chartRoutes \ No newline at end of file diff --git a/grailed-ui-go-view/src/router/modules/project.router.ts b/grailed-ui-go-view/src/router/modules/project.router.ts new file mode 100644 index 0000000..45f51f1 --- /dev/null +++ b/grailed-ui-go-view/src/router/modules/project.router.ts @@ -0,0 +1,49 @@ +import { RouteRecordRaw } from 'vue-router' +import { PageEnum } from '@/enums/pageEnum' + +// 引入路径 +const importPath = { + 'PageEnum.BASE_HOME_NAME': () => import('@/views/project/index.vue'), + 'PageEnum.BASE_HOME_ITEMS_NAME': () => import('@/views/project/items/index.vue'), + 'PageEnum.BASE_HOME_TEMPLATE_NAME': () => import('@/views/project/mtTemplate/index.vue'), + 'PageEnum.BASE_HOME_TEMPLATE_MARKET_NAME': () => import('@/views/project/templateMarket/index.vue') +} + +const projectRoutes: RouteRecordRaw = { + path: PageEnum.BASE_HOME, + name: PageEnum.BASE_HOME_NAME, + component: importPath['PageEnum.BASE_HOME_NAME'], + redirect: PageEnum.BASE_HOME_ITEMS, + meta: { + title: '项目', + isRoot: true + }, + children: [ + { + path: PageEnum.BASE_HOME_ITEMS, + name: PageEnum.BASE_HOME_ITEMS_NAME, + component: importPath['PageEnum.BASE_HOME_ITEMS_NAME'], + meta: { + title: '我的项目' + } + }, + { + path: PageEnum.BASE_HOME_TEMPLATE, + name: PageEnum.BASE_HOME_TEMPLATE_NAME, + component: importPath['PageEnum.BASE_HOME_TEMPLATE_NAME'], + meta: { + title: '我的模板' + } + }, + { + path: PageEnum.BASE_HOME_TEMPLATE_MARKET, + name: PageEnum.BASE_HOME_TEMPLATE_MARKET_NAME, + component: importPath['PageEnum.BASE_HOME_TEMPLATE_MARKET_NAME'], + meta: { + title: '模板市场' + } + } + ] +} + +export default projectRoutes diff --git a/grailed-ui-go-view/src/router/router-guards.ts b/grailed-ui-go-view/src/router/router-guards.ts new file mode 100644 index 0000000..bdaa7fb --- /dev/null +++ b/grailed-ui-go-view/src/router/router-guards.ts @@ -0,0 +1,40 @@ +import { Router } from 'vue-router'; +import { PageEnum, PreviewEnum } from '@/enums/pageEnum' +import { loginCheck } from '@/utils' + +// 路由白名单 +const routerAllowList = [ + // 登录 + PageEnum.BASE_LOGIN_NAME, + // 预览 + PreviewEnum.CHART_PREVIEW_NAME +] + +export function createRouterGuards(router: Router) { + // 前置 + router.beforeEach(async (to, from, next) => { + const Loading = window['$loading']; + Loading && Loading.start(); + const isErrorPage = router.getRoutes().findIndex((item) => item.name === to.name); + if (isErrorPage === -1) { + next({ name: PageEnum.ERROR_PAGE_NAME_404 }) + } + + // @ts-ignore + if (!routerAllowList.includes(to.name) && !loginCheck()) { + next({ name: PageEnum.BASE_LOGIN_NAME }) + } + next() + }) + + router.afterEach((to, _, failure) => { + const Loading = window['$loading']; + document.title = (to?.meta?.title as string) || document.title; + Loading && Loading.finish(); + }) + + // 错误 + router.onError((error) => { + console.log(error, '路由错误'); + }); +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/router/types.ts b/grailed-ui-go-view/src/router/types.ts new file mode 100644 index 0000000..59c3b14 --- /dev/null +++ b/grailed-ui-go-view/src/router/types.ts @@ -0,0 +1,40 @@ +import type { RouteRecordRaw, RouteMeta } from 'vue-router' +import { defineComponent } from 'vue' + +declare type Recordable = Record + +export type Component = + | ReturnType + | (() => Promise) + | (() => Promise) + +// @ts-ignore +export interface AppRouteRecordRaw extends Omit { + name: string + meta: RouteMeta + component?: Component | string + components?: Component + children?: AppRouteRecordRaw[] + props?: Recordable + fullPath?: string +} + +export interface Meta { + // 名称 + title: string + // 是否忽略权限 + ignoreAuth?: boolean + permissions?: string[] + // 是否不缓存 + noKeepAlive?: boolean + // 是否固定在tab上 + affix?: boolean + // tab上的图标 + icon?: string + // 跳转地址 + frameSrc?: string + // 外链跳转地址 + externalLink?: string + //隐藏 + hidden?: boolean +} diff --git a/grailed-ui-go-view/src/settings/animations/index.ts b/grailed-ui-go-view/src/settings/animations/index.ts new file mode 100644 index 0000000..65106a7 --- /dev/null +++ b/grailed-ui-go-view/src/settings/animations/index.ts @@ -0,0 +1,57 @@ +export const animations = [ + { + label: '强调动画', + children: [ + { label: '弹跳', value: 'bounce' }, + { label: '闪烁', value: 'flash' }, + { label: '放大缩小', value: 'pulse' }, + { label: '放大缩小弹簧', value: 'rubberBand' }, + { label: '左右晃动', value: 'headShake' }, + { label: '左右扇形摇摆', value: 'swing' }, + { label: '放大晃动缩小', value: 'tada' }, + { label: '扇形摇摆', value: 'wobble' }, + { label: '左右上下晃动', value: 'jello' }, + ] + }, + { + label: '移入动画', + children: [ + { label: '渐显', value: 'fadeIn' }, + { label: '向右进入', value: 'fadeInLeft' }, + { label: '向左进入', value: 'fadeInRight' }, + { label: '向上进入', value: 'fadeInUp' }, + { label: '向下进入', value: 'fadeInDown' }, + { label: '向右长距进入', value: 'fadeInLeftBig' }, + { label: '向左长距进入', value: 'fadeInRightBig' }, + { label: '向上长距进入', value: 'fadeInUpBig' }, + { label: '向下长距进入', value: 'fadeInDownBig' }, + { label: '旋转进入', value: 'rotateIn' }, + { label: '左顺时针旋转', value: 'rotateInDownLeft' }, + { label: '右逆时针旋转', value: 'rotateInDownRight' }, + { label: '左逆时针旋转', value: 'rotateInUpLeft' }, + { label: '右逆时针旋转', value: 'rotateInUpRight' }, + { label: '弹入', value: 'bounceIn' }, + { label: '向右弹入', value: 'bounceInLeft' }, + { label: '向左弹入', value: 'bounceInRight' }, + { label: '向上弹入', value: 'bounceInUp' }, + { label: '向下弹入', value: 'bounceInDown' }, + { label: '光速从右进入', value: 'lightSpeedInRight' }, + { label: '光速从左进入', value: 'lightSpeedInLeft' }, + { label: '光速从右退出', value: 'lightSpeedOutRight' }, + { label: '光速从左退出', value: 'lightSpeedOutLeft' }, + { label: 'Y轴旋转', value: 'flip' }, + { label: '中心X轴旋转', value: 'flipInX' }, + { label: '中心Y轴旋转', value: 'flipInY' }, + { label: '左长半径旋转', value: 'rollIn' }, + { label: '由小变大进入', value: 'zoomIn' }, + { label: '左变大进入', value: 'zoomInLeft' }, + { label: '右变大进入', value: 'zoomInRight' }, + { label: '向上变大进入', value: 'zoomInUp' }, + { label: '向下变大进入', value: 'zoomInDown' }, + { label: '向右滑动展开', value: 'slideInLeft' }, + { label: '向左滑动展开', value: 'slideInRight' }, + { label: '向上滑动展开', value: 'slideInUp' }, + { label: '向下滑动展开', value: 'slideInDown' } + ] + } +] diff --git a/grailed-ui-go-view/src/settings/chartThemes/global.theme.json b/grailed-ui-go-view/src/settings/chartThemes/global.theme.json new file mode 100644 index 0000000..1c099af --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/global.theme.json @@ -0,0 +1,101 @@ +{ + "title": { + "show": true, + "textStyle": { + "color": "#BFBFBF", + "fontSize": 18 + }, + "subtextStyle": { + "color": "#A2A2A2", + "fontSize": 14 + } + }, + "xAxis": { + "show": true, + "name": "", + "nameGap": 15, + "nameTextStyle": { + "color": "#B9B8CE", + "fontSize": 12 + }, + "inverse": false, + "axisLabel": { + "show": true, + "fontSize": 12, + "color": "#B9B8CE", + "rotate": 0 + }, + "position": "bottom", + "axisLine": { + "show": true, + "lineStyle": { + "color": "#B9B8CE", + "width": 1 + }, + "onZero": true + }, + "axisTick": { + "show": true, + "length": 5 + }, + "splitLine": { + "show": false, + "lineStyle": { + "color": "#484753", + "width": 1, + "type": "solid" + } + } + }, + "yAxis": { + "show": true, + "name": "", + "nameGap": 15, + "nameTextStyle": { + "color": "#B9B8CE", + "fontSize": 12 + }, + "inverse": false, + "axisLabel": { + "show": true, + "fontSize": 12, + "color": "#B9B8CE", + "rotate": 0 + }, + "position": "left", + "axisLine": { + "show": true, + "lineStyle": { + "color": "#B9B8CE", + "width": 1 + }, + "onZero": true + }, + "axisTick": { + "show": true, + "length": 5 + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": "#484753", + "width": 1, + "type": "solid" + } + } + }, + "legend": { + "show": true, + "top": "5%", + "textStyle": { + "color": "#B9B8CE" + } + }, + "grid": { + "show": false, + "left": "10%", + "top": "60", + "right": "10%", + "bottom": "60" + } +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/index.ts b/grailed-ui-go-view/src/settings/chartThemes/index.ts new file mode 100644 index 0000000..d066d85 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/index.ts @@ -0,0 +1,91 @@ +import customed from './themes/customed.json' +import dark from './themes/dark.json' +import chalk from './themes/chalk.json' +import essos from './themes/essos.json' +import macarons from './themes/macarons.json' +import purplePassion from './themes/purple-passion.json' +import roma from './themes/roma.json' +import shine from './themes/shine.json' +import vintage from './themes/vintage.json' +import walden from './themes/walden.json' +import westeros from './themes/westeros.json' +import wonderland from './themes/wonderland.json' +// 默认主题详细配置 +import themeJson from './global.theme.json' + +export const chartColors = { + dark, + customed, + macarons, + walden, + purplePassion, + vintage, + chalk, + westeros, + wonderland, + essos, + shine, + roma +} + +// 默认主题 +export const defaultTheme = 'dark' + +// 主题色列表 +export type ChartColorsNameType = keyof typeof chartColorsName +export const chartColorsName = { + dark: '明亮', + customed: '暗淡', + macarons: '马卡龙', + walden: '蓝绿', + purplePassion: '深紫', + vintage: '复古', + chalk: '粉青', + westeros: '灰粉', + wonderland: '青草', + essos: '橘红', + shine: '深色', + roma: '罗马红' +} + +// 主题色列表 +export const chartColorsshow = { + dark: 'linear-gradient(to right, #4992ff 0%, #7cffb2 100%)', + customed: 'linear-gradient(to right, #5470c6 0%, #91cc75 100%)', + macarons: 'linear-gradient(to right, #2ec7c9 0%, #b6a2de 100%)', + walden: 'linear-gradient(to right, #3fb1e3 0%, #6be6c1 100%)', + purplePassion: 'linear-gradient(to right, #9b8bba 0%, #e098c7 100%)', + vintage: 'linear-gradient(to right, #d87c7c 0%, #919e8b 100%)', + chalk: 'linear-gradient(to right, #fc97af 0%, #87f7cf 100%)', + westeros: 'linear-gradient(to right, #516b91 0%, #edafda 100%)', + wonderland: 'linear-gradient(to right, #4ea397 0%, #22c3aa 100%)', + essos: 'linear-gradient(to right, #893448 0%, #d95850 100%)', + shine: 'linear-gradient(to right, #c12e34 0%, #0098d9 100%)', + roma: 'linear-gradient(to right, #e01f54 0%, #5e4ea5 100%)' +} +// 渐变主题色列表(主色1、主色2、阴影、渐变1、渐变2) +export const chartColorsSearch = { + dark: ['#4992ff', '#7cffb2', 'rgba(68, 181, 226, 0.3)', 'rgba(73, 146, 255, 0.5)', 'rgba(124, 255, 178, 0.5)'], + customed: ['#5470c6', '#91cc75', 'rgba(84, 112, 198, 0.5)', 'rgba(84, 112, 198, 0.5)', 'rgba(145, 204, 117, 0.5)'], + macarons: ['#2ec7c9', '#b6a2de', 'rgba(182, 162, 222, 0.3)', 'rgba(46, 199, 201, 0.5)', 'rgba(182, 162, 222, 0.5)'], + + walden: ['#3fb1e3', '#6be6c1', 'rgba(68, 181, 226, 0.3)', 'rgba(63, 177, 227, 0.5)', 'rgba(107, 230, 193, 0.5)'], + purplePassion: ['#9b8bba', '#e098c7', 'rgba(182, 162, 222, 0.3)', 'rgba(155, 139, 186, 0.5)', 'rgba(237, 175, 218, 0.5)'], + vintage: ['#d87c7c', '#919e8b', 'rgba(182, 162, 222, 0.3)', 'rgba(216, 124, 124, 0.5)', 'rgba(145, 158, 139, 0.5)'], + + chalk: ['#fc97af', '#87f7cf', 'rgba(135, 247, 207, 0.3)', 'rgba(252, 151, 175, 0.5)', 'rgba(135, 247, 207, 0.5)'], + westeros: ['#516b91', '#edafda', 'rgba(81, 107, 145, 0.3)', 'rgba(81, 107, 145, 0.5)', 'rgba(89, 196, 230, 0.5)'], + wonderland: ['#4ea397', '#22c3aa', 'rgba(68, 181, 226, 0.3)', 'rgba(78, 163, 151, 0.5)', 'rgba(34, 195, 170, 0.5)'], + + essos: ['#893448', '#d95850', 'rgba(137, 52, 72, 0.3)', 'rgba(137, 52, 72, 0.5)', 'rgba(217, 88, 80, 0.5)'], + shine: ['#c12e34', '#0098d9', 'rgba(137, 52, 72, 0.3)', 'rgba(193, 46, 52, 0.5)', 'rgba(230, 182, 0, 0.5)'], + roma: ['#e01f54', '#5e4ea5', 'rgba(137, 52, 72, 0.3)', 'rgba(224, 31, 84, 0.5)', 'rgba(94, 78, 165, 0.5)'], +} + +// 默认主题详细配置 +type ThemeJsonType = typeof themeJson +export interface GlobalThemeJsonType extends Partial { + dataset?: any, + [T:string]: any +} +export const globalThemeJson = {...themeJson, dataset: null,} diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/chalk.json b/grailed-ui-go-view/src/settings/chartThemes/themes/chalk.json new file mode 100644 index 0000000..09ac926 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/chalk.json @@ -0,0 +1,12 @@ +{ + "color": [ + "#fc97af", + "#87f7cf", + "#f7f494", + "#72ccff", + "#f7c5a0", + "#d4a4eb", + "#d2f5a6", + "#76f2f2" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/customed.json b/grailed-ui-go-view/src/settings/chartThemes/themes/customed.json new file mode 100644 index 0000000..d29733a --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/customed.json @@ -0,0 +1,13 @@ +{ + "color": [ + "#5470c6", + "#91cc75", + "#fac858", + "#ee6666", + "#73c0de", + "#3ba272", + "#fc8452", + "#9a60b4", + "#ea7ccc" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/dark.json b/grailed-ui-go-view/src/settings/chartThemes/themes/dark.json new file mode 100644 index 0000000..59126d9 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/dark.json @@ -0,0 +1,13 @@ +{ + "color": [ + "#4992ff", + "#7cffb2", + "#fddd60", + "#ff6e76", + "#58d9f9", + "#05c091", + "#ff8a45", + "#8d48e3", + "#dd79ff" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/essos.json b/grailed-ui-go-view/src/settings/chartThemes/themes/essos.json new file mode 100644 index 0000000..18823d4 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/essos.json @@ -0,0 +1,10 @@ +{ + "color": [ + "#893448", + "#d95850", + "#eb8146", + "#ffb248", + "#f2d643", + "#ebdba4" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/macarons.json b/grailed-ui-go-view/src/settings/chartThemes/themes/macarons.json new file mode 100644 index 0000000..a800789 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/macarons.json @@ -0,0 +1,24 @@ +{ + "color": [ + "#2ec7c9", + "#b6a2de", + "#5ab1ef", + "#ffb980", + "#d87a80", + "#8d98b3", + "#e5cf0d", + "#97b552", + "#95706d", + "#dc69aa", + "#07a2a4", + "#9a7fd1", + "#588dd5", + "#f5994e", + "#c05050", + "#59678c", + "#c9ab00", + "#7eb00a", + "#6f5553", + "#c14089" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/purple-passion.json b/grailed-ui-go-view/src/settings/chartThemes/themes/purple-passion.json new file mode 100644 index 0000000..d96e410 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/purple-passion.json @@ -0,0 +1,10 @@ +{ + "color": [ + "#9b8bba", + "#e098c7", + "#8fd3e8", + "#71669e", + "#cc70af", + "#7cb4cc" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/roma.json b/grailed-ui-go-view/src/settings/chartThemes/themes/roma.json new file mode 100644 index 0000000..2b527f5 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/roma.json @@ -0,0 +1,24 @@ +{ + "color": [ + "#e01f54", + "#5e4ea5", + "#f5e8c8", + "#b8d2c7", + "#c6b38e", + "#a4d8c2", + "#f3d999", + "#d3758f", + "#dcc392", + "#2e4783", + "#82b6e9", + "#ff6347", + "#a092f1", + "#0a915d", + "#eaf889", + "#6699FF", + "#ff6666", + "#3cb371", + "#d5b158", + "#38b6b6" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/shine.json b/grailed-ui-go-view/src/settings/chartThemes/themes/shine.json new file mode 100644 index 0000000..4c4e0f8 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/shine.json @@ -0,0 +1,12 @@ +{ + "color": [ + "#c12e34", + "#e6b600", + "#0098d9", + "#2b821d", + "#005eaa", + "#339ca8", + "#cda819", + "#32a487" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/vintage.json b/grailed-ui-go-view/src/settings/chartThemes/themes/vintage.json new file mode 100644 index 0000000..28190dd --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/vintage.json @@ -0,0 +1,14 @@ +{ + "color": [ + "#d87c7c", + "#919e8b", + "#d7ab82", + "#6e7074", + "#61a0a8", + "#efa18d", + "#787464", + "#cc7e63", + "#724e58", + "#4b565b" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/walden.json b/grailed-ui-go-view/src/settings/chartThemes/themes/walden.json new file mode 100644 index 0000000..2cf15ab --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/walden.json @@ -0,0 +1,10 @@ +{ + "color": [ + "#3fb1e3", + "#6be6c1", + "#626c91", + "#a0a7e6", + "#c4ebad", + "#96dee8" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/westeros.json b/grailed-ui-go-view/src/settings/chartThemes/themes/westeros.json new file mode 100644 index 0000000..257891d --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/westeros.json @@ -0,0 +1,10 @@ +{ + "color": [ + "#516b91", + "#59c4e6", + "#edafda", + "#93b7e3", + "#a5e7f0", + "#cbb0e3" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/chartThemes/themes/wonderland.json b/grailed-ui-go-view/src/settings/chartThemes/themes/wonderland.json new file mode 100644 index 0000000..06c3311 --- /dev/null +++ b/grailed-ui-go-view/src/settings/chartThemes/themes/wonderland.json @@ -0,0 +1,10 @@ +{ + "color": [ + "#4ea397", + "#22c3aa", + "#7bd9a5", + "#d0648a", + "#f58db2", + "#f2b3c9" + ] +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/settings/designColor.json b/grailed-ui-go-view/src/settings/designColor.json new file mode 100644 index 0000000..77ddf15 --- /dev/null +++ b/grailed-ui-go-view/src/settings/designColor.json @@ -0,0 +1,3677 @@ +[ + { + "CMYK": [4, 5, 18, 0], + "RGB": [249, 244, 220], + "hex": "#f9f4dc", + "name": "乳白", + "pinyin": "rubai" + }, + { + "CMYK": [3, 8, 30, 0], + "RGB": [249, 236, 195], + "hex": "#f7e8aa", + "name": "杏仁黄", + "pinyin": "xingrenhuang" + }, + { + "CMYK": [4, 13, 67, 0], + "RGB": [248, 223, 114], + "hex": "#f8df72", + "name": "茉莉黄", + "pinyin": "molihuang" + }, + { + "CMYK": [5, 14, 68, 1], + "RGB": [248, 223, 112], + "hex": "#f8df70", + "name": "麦秆黄", + "pinyin": "maiganhuang" + }, + { + "CMYK": [2, 16, 84, 0], + "RGB": [251, 218, 65], + "hex": "#fbda41", + "name": "油菜花黄", + "pinyin": "youcaihuahuang" + }, + { + "CMYK": [1, 18, 94, 0], + "RGB": [254, 215, 26], + "hex": "#fed71a", + "name": "佛手黄", + "pinyin": "foshouhuang" + }, + { + "CMYK": [3, 16, 50, 0], + "RGB": [247, 222, 152], + "hex": "#f7de98", + "name": "篾黄", + "pinyin": "miehuang" + }, + { + "CMYK": [3, 17, 69, 0], + "RGB": [248, 216, 106], + "hex": "#f8d86a", + "name": "葵扇黄", + "pinyin": "kuishanhuang" + }, + { + "CMYK": [0, 20, 87, 0], + "RGB": [252, 211, 55], + "hex": "#fcd337", + "name": "柠檬黄", + "pinyin": "ningmenghuang" + }, + { + "CMYK": [0, 20, 95, 0], + "RGB": [252, 210, 23], + "hex": "#fcd217", + "name": "金瓜黄", + "pinyin": "jinguahuang" + }, + { + "CMYK": [0, 21, 94, 0], + "RGB": [254, 209, 16], + "hex": "#ffd111", + "name": "藤黄", + "pinyin": "tenghuang" + }, + { + "CMYK": [2, 16, 39, 0], + "RGB": [246, 222, 173], + "hex": "#f6dead", + "name": "酪黄", + "pinyin": "laohuang" + }, + { + "CMYK": [1, 21, 70, 0], + "RGB": [249, 211, 103], + "hex": "#f9d367", + "name": "淡密黄", + "pinyin": "danmihuang" + }, + { + "CMYK": [0, 23, 88, 0], + "RGB": [251, 205, 49], + "hex": "#fbcd31", + "name": "大豆黄", + "pinyin": "dadouhuang" + }, + { + "CMYK": [0, 24, 94, 0], + "RGB": [252, 203, 22], + "hex": "#fccb16", + "name": "素馨黄", + "pinyin": "suxinhuang" + }, + { + "CMYK": [0, 24, 94, 0], + "RGB": [254, 204, 17], + "hex": "#fecc11", + "name": "向日葵黄", + "pinyin": "xiangrikuihuang" + }, + { + "CMYK": [0, 27, 88, 0], + "RGB": [251, 200, 47], + "hex": "#fbc82f", + "name": "雅梨黄", + "pinyin": "yalihuang" + }, + { + "CMYK": [0, 28, 94, 0], + "RGB": [252, 197, 21], + "hex": "#fcc515", + "name": "黄连黄", + "pinyin": "huanglianhuang" + }, + { + "CMYK": [0, 29, 95, 0], + "RGB": [252, 195, 7], + "hex": "#fcc307", + "name": "金盏黄", + "pinyin": "jinzhanhuang" + }, + { + "CMYK": [0, 32, 52, 0], + "RGB": [248, 195, 135], + "hex": "#f8c387", + "name": "蛋壳黄", + "pinyin": "dankehuang" + }, + { + "CMYK": [0, 32, 52, 0], + "RGB": [247, 193, 115], + "hex": "#f7c173", + "name": "肉色", + "pinyin": "rouse" + }, + { + "CMYK": [0, 35, 89, 0], + "RGB": [251, 185, 41], + "hex": "#fbb929", + "name": "鹅掌黄", + "pinyin": "ezhanghuang" + }, + { + "CMYK": [0, 36, 93, 0], + "RGB": [251, 182, 18], + "hex": "#fbb612", + "name": "鸡蛋黄", + "pinyin": "jidanhuang" + }, + { + "CMYK": [0, 35, 94, 0], + "RGB": [252, 183, 10], + "hex": "#fcb70a", + "name": "鼬黄", + "pinyin": "youhuang" + }, + { + "CMYK": [0, 44, 84, 0], + "RGB": [249, 166, 51], + "hex": "#f9a633", + "name": "榴萼黄", + "pinyin": "liuehuang" + }, + { + "CMYK": [0, 45, 92, 0], + "RGB": [251, 164, 20], + "hex": "#fba414", + "name": "淡橘橙", + "pinyin": "danjucheng" + }, + { + "CMYK": [0, 47, 92, 0], + "RGB": [252, 161, 6], + "hex": "#fca106", + "name": "枇杷黄", + "pinyin": "pipahuang" + }, + { + "CMYK": [0, 47, 92, 0], + "RGB": [252, 161, 4], + "hex": "#fca104", + "name": "橙皮黄", + "pinyin": "chengpihuang" + }, + { + "CMYK": [0, 56, 87, 0], + "RGB": [252, 140, 35], + "hex": "#fc8c23", + "name": "北瓜黄", + "pinyin": "beiguahuang" + }, + { + "CMYK": [0, 54, 92, 0], + "RGB": [250, 142, 22], + "hex": "#f28e16", + "name": "杏黄", + "pinyin": "xinghuang" + }, + { + "CMYK": [0, 51, 91, 0], + "RGB": [255, 153, 0], + "hex": "#ff9900", + "name": "雄黄", + "pinyin": "xionghuang" + }, + { + "CMYK": [0, 56, 91, 0], + "RGB": [251, 139, 5], + "hex": "#fb8b05", + "name": "万寿菊黄", + "pinyin": "wanshoujuhuang" + }, + { + "CMYK": [10, 13, 35, 1], + "RGB": [233, 221, 182], + "hex": "#e9ddb6", + "name": "菊蕾白", + "pinyin": "juleibai" + }, + { + "CMYK": [8, 19, 84, 1], + "RGB": [238, 208, 69], + "hex": "#eed045", + "name": "秋葵黄", + "pinyin": "qiukuihuang" + }, + { + "CMYK": [6, 20, 92, 1], + "RGB": [242, 206, 43], + "hex": "#f2ce2b", + "name": "硫华黄", + "pinyin": "liuhuahuang" + }, + { + "CMYK": [6, 22, 92, 0], + "RGB": [241, 202, 23], + "hex": "#f1ca17", + "name": "柚黄", + "pinyin": "youhuang" + }, + { + "CMYK": [15, 20, 66, 2], + "RGB": [221, 200, 113], + "hex": "#ddc871", + "name": "芒果黄", + "pinyin": "mangguohuang" + }, + { + "CMYK": [14, 22, 85, 2], + "RGB": [223, 194, 67], + "hex": "#dfc243", + "name": "蒿黄", + "pinyin": "haohuang" + }, + { + "CMYK": [12, 24, 95, 2], + "RGB": [226, 192, 39], + "hex": "#e2c027", + "name": "姜黄", + "pinyin": "jianghuang" + }, + { + "CMYK": [11, 25, 99, 1], + "RGB": [228, 191, 17], + "hex": "#e4bf11", + "name": "香蕉黄", + "pinyin": "xiangjiaohuang" + }, + { + "CMYK": [17, 27, 94, 4], + "RGB": [210, 180, 44], + "hex": "#d2b42c", + "name": "草黄", + "pinyin": "caohuang" + }, + { + "CMYK": [17, 29, 100, 4], + "RGB": [210, 177, 22], + "hex": "#d2b116", + "name": "新禾绿", + "pinyin": "xinhelv" + }, + { + "CMYK": [28, 26, 45, 7], + "RGB": [183, 174, 143], + "hex": "#b7ae8f", + "name": "月灰", + "pinyin": "yuehui" + }, + { + "CMYK": [30, 30, 70, 12], + "RGB": [173, 158, 85], + "hex": "#ad9e5f", + "name": "淡灰绿", + "pinyin": "danhuilv" + }, + { + "CMYK": [38, 38, 76, 24], + "RGB": [142, 128, 75], + "hex": "#8e804b", + "name": "草灰绿", + "pinyin": "caohuilv" + }, + { + "CMYK": [36, 42, 100, 29], + "RGB": [136, 115, 34], + "hex": "#887322", + "name": "苔绿", + "pinyin": "tailv" + }, + { + "CMYK": [36, 42, 100, 30], + "RGB": [134, 112, 24], + "hex": "#867018", + "name": "碧螺春绿", + "pinyin": "biluochunlv" + }, + { + "CMYK": [47, 47, 65, 42], + "RGB": [104, 94, 72], + "hex": "#685e48", + "name": "燕羽灰", + "pinyin": "yanyuhui" + }, + { + "CMYK": [46, 47, 69, 42], + "RGB": [105, 94, 69], + "hex": "#695e45", + "name": "蟹壳灰", + "pinyin": "xiekehui" + }, + { + "CMYK": [48, 48, 100, 45], + "RGB": [100, 88, 34], + "hex": "#645822", + "name": "潭水绿", + "pinyin": "tanshuilv" + }, + { + "CMYK": [50, 50, 10, 48], + "RGB": [94, 83, 20], + "hex": "#5e5314", + "name": "橄榄绿", + "pinyin": "ganlanlv" + }, + { + "CMYK": [2, 6, 18, 0], + "RGB": [249, 241, 219], + "hex": "#f9f1db", + "name": "蚌肉白", + "pinyin": "bangroubai" + }, + { + "CMYK": [3, 10, 31, 0], + "RGB": [248, 232, 193], + "hex": "#f8e8c1", + "name": "豆汁黄", + "pinyin": "douzhihuang" + }, + { + "CMYK": [1, 19, 66, 0], + "RGB": [249, 215, 112], + "hex": "#f9d770", + "name": "淡茧黄", + "pinyin": "danjianhuang" + }, + { + "CMYK": [0, 26, 94, 0], + "RGB": [255, 201, 12], + "hex": "#ffc90c", + "name": "乳鸭黄", + "pinyin": "ruyahuang" + }, + { + "CMYK": [5, 11, 22, 0], + "RGB": [242, 230, 206], + "hex": "#f2e6ce", + "name": "荔肉白", + "pinyin": "liroubai" + }, + { + "CMYK": [5, 19, 50, 0], + "RGB": [240, 214, 149], + "hex": "#f0d695", + "name": "象牙黄", + "pinyin": "xiangyahuang" + }, + { + "CMYK": [3, 23, 69, 0], + "RGB": [244, 206, 105], + "hex": "#f4ce69", + "name": "炒米黄", + "pinyin": "chaomihuang" + }, + { + "CMYK": [1, 28, 89, 0], + "RGB": [246, 196, 48], + "hex": "#f6c430", + "name": "鹦鹉冠黄", + "pinyin": "yingwuguanhuang" + }, + { + "CMYK": [0, 30, 95, 0], + "RGB": [249, 193, 22], + "hex": "#f9c116", + "name": "木瓜黄", + "pinyin": "muguahuang" + }, + { + "CMYK": [0, 32, 95, 0], + "RGB": [249, 189, 16], + "hex": "#f9bd10", + "name": "浅烙黄", + "pinyin": "qianlaohuang" + }, + { + "CMYK": [11, 18, 39, 1], + "RGB": [229, 211, 170], + "hex": "#e5d3aa", + "name": "莲子白", + "pinyin": "lianzibai" + }, + { + "CMYK": [5, 35, 99, 0], + "RGB": [232, 176, 4], + "hex": "#e8b004", + "name": "谷黄", + "pinyin": "guhuang" + }, + { + "CMYK": [3, 36, 99, 0], + "RGB": [235, 177, 13], + "hex": "#ebb10d", + "name": "栀子黄", + "pinyin": "zhizihuang" + }, + { + "CMYK": [11, 39, 100, 2], + "RGB": [217, 164, 14], + "hex": "#d9a40e", + "name": "芥黄", + "pinyin": "jiehuang" + }, + { + "CMYK": [28, 27, 43, 8], + "RGB": [181, 170, 144], + "hex": "#b5aa90", + "name": "银鼠灰", + "pinyin": "yinshuhui" + }, + { + "CMYK": [26, 31, 57, 10], + "RGB": [182, 164, 118], + "hex": "#b6a476", + "name": "尘灰", + "pinyin": "chenhui" + }, + { + "CMYK": [21, 43, 100, 11], + "RGB": [183, 141, 18], + "hex": "#b78d12", + "name": "枯绿", + "pinyin": "kulv" + }, + { + "CMYK": [35, 44, 80, 30], + "RGB": [135, 114, 62], + "hex": "#87723e", + "name": "鲛青", + "pinyin": "jiaoqing" + }, + { + "CMYK": [32, 50, 100, 31], + "RGB": [135, 104, 24], + "hex": "#876818", + "name": "粽叶绿", + "pinyin": "zongyelv" + }, + { + "CMYK": [31, 51, 100, 30], + "RGB": [138, 105, 19], + "hex": "#8a6913", + "name": "灰绿", + "pinyin": "huilv" + }, + { + "CMYK": [52, 56, 64, 62], + "RGB": [74, 64, 53], + "hex": "#4a4035", + "name": "鹤灰", + "pinyin": "hehui" + }, + { + "CMYK": [48, 58, 70, 62], + "RGB": [77, 64, 48], + "hex": "#4d4030", + "name": "淡松烟", + "pinyin": "dansongyan" + }, + { + "CMYK": [45, 56, 100, 56], + "RGB": [88, 71, 23], + "hex": "#584717", + "name": "暗海水绿", + "pinyin": "anhaishuilv" + }, + { + "CMYK": [45, 55, 100, 54], + "RGB": [91, 73, 19], + "hex": "#5b4913", + "name": "棕榈绿", + "pinyin": "zonglvlv" + }, + { + "CMYK": [1, 11, 24, 0], + "RGB": [249, 223, 205], + "hex": "#f9e9cd", + "name": "米色", + "pinyin": "mise" + }, + { + "CMYK": [1, 15, 38, 0], + "RGB": [248, 224, 176], + "hex": "#f8e0b0", + "name": "淡肉色", + "pinyin": "danrouse" + }, + { + "CMYK": [0, 23, 59, 0], + "RGB": [249, 210, 125], + "hex": "#f9d27d", + "name": "麦芽糖黄", + "pinyin": "maiyatanghuang" + }, + { + "CMYK": [0, 34, 93, 0], + "RGB": [254, 186, 7], + "hex": "#feba07", + "name": "琥珀黄", + "pinyin": "hupohuang" + }, + { + "CMYK": [1, 31, 79, 0], + "RGB": [243, 191, 76], + "hex": "#f3bf4c", + "name": "甘草黄", + "pinyin": "gancaohuang" + }, + { + "CMYK": [0, 33, 83, 0], + "RGB": [248, 188, 49], + "hex": "#f8bc31", + "name": "初熟杏黄", + "pinyin": "chushuxinghuang" + }, + { + "CMYK": [10, 27, 59, 1], + "RGB": [226, 193, 124], + "hex": "#e2c17c", + "name": "浅驼色", + "pinyin": "qiantuose" + }, + { + "CMYK": [7, 32, 78, 1], + "RGB": [229, 183, 81], + "hex": "#e5b751", + "name": "沙石黄", + "pinyin": "shashihuang" + }, + { + "CMYK": [3, 38, 97, 0], + "RGB": [234, 173, 26], + "hex": "#eaad1a", + "name": "虎皮黄", + "pinyin": "hupihuang" + }, + { + "CMYK": [12, 41, 98, 2], + "RGB": [214, 160, 29], + "hex": "#d6a01d", + "name": "土黄", + "pinyin": "tuhuang" + }, + { + "CMYK": [28, 28, 41, 9], + "RGB": [180, 169, 146], + "hex": "#b4a992", + "name": "百灵鸟灰", + "pinyin": "bailingniaohui" + }, + { + "CMYK": [21, 44, 97, 11], + "RGB": [183, 139, 38], + "hex": "#b78b26", + "name": "山鸡黄", + "pinyin": "shanjihuang" + }, + { + "CMYK": [35, 47, 71, 33], + "RGB": [130, 107, 72], + "hex": "#826b48", + "name": "龟背黄", + "pinyin": "guibeihuang" + }, + { + "CMYK": [34, 52, 85, 35], + "RGB": [128, 99, 50], + "hex": "#806332", + "name": "苍黄", + "pinyin": "canghuang" + }, + { + "CMYK": [32, 56, 96, 34], + "RGB": [129, 95, 37], + "hex": "#815f25", + "name": "莱阳梨黄", + "pinyin": "laiyanglihuang" + }, + { + "CMYK": [31, 57, 100, 33], + "RGB": [131, 94, 29], + "hex": "#835e1d", + "name": "蜴蜊绿", + "pinyin": "yililv" + }, + { + "CMYK": [46, 59, 68, 61], + "RGB": [79, 64, 50], + "hex": "#4f4032", + "name": "松鼠灰", + "pinyin": "songshuhui" + }, + { + "CMYK": [44, 61, 76, 62], + "RGB": [80, 62, 42], + "hex": "#503e2a", + "name": "橄榄灰", + "pinyin": "ganlanhui" + }, + { + "CMYK": [43, 63, 88, 61], + "RGB": [81, 60, 32], + "hex": "#513c20", + "name": "蟹壳绿", + "pinyin": "xiekelv" + }, + { + "CMYK": [42, 64, 94, 60], + "RGB": [83, 60, 27], + "hex": "#533c1b", + "name": "古铜绿", + "pinyin": "gutonglv" + }, + { + "CMYK": [41, 66, 94, 60], + "RGB": [85, 59, 24], + "hex": "#553b18", + "name": "焦茶绿", + "pinyin": "jiaochalv" + }, + { + "CMYK": [1, 7, 13, 0], + "RGB": [251, 242, 227], + "hex": "#fbf2e3", + "name": "粉白", + "pinyin": "fenbai" + }, + { + "CMYK": [1, 12, 22, 0], + "RGB": [249, 232, 208], + "hex": "#f9e8d0", + "name": "落英淡粉", + "pinyin": "luoyingdanfen" + }, + { + "CMYK": [0, 27, 51, 0], + "RGB": [249, 203, 139], + "hex": "#f9cb8b", + "name": "瓜瓤粉", + "pinyin": "guarangfen" + }, + { + "CMYK": [0, 36, 72, 0], + "RGB": [251, 185, 87], + "hex": "#fbb957", + "name": "蜜黄", + "pinyin": "mihuang" + }, + { + "CMYK": [0, 44, 91, 0], + "RGB": [255, 166, 15], + "hex": "#ffa60f", + "name": "金叶黄", + "pinyin": "jinyehuang" + }, + { + "CMYK": [0, 43, 82, 0], + "RGB": [244, 168, 58], + "hex": "#f4a83a", + "name": "金莺黄", + "pinyin": "jinyinghuang" + }, + { + "CMYK": [8, 31, 50, 1], + "RGB": [227, 189, 141], + "hex": "#e3bd8d", + "name": "鹿角棕", + "pinyin": "lujiaozong" + }, + { + "CMYK": [2, 44, 83, 0], + "RGB": [231, 162, 63], + "hex": "#e7a23f", + "name": "凋叶棕", + "pinyin": "diaoyezong" + }, + { + "CMYK": [10, 41, 72, 1], + "RGB": [218, 164, 90], + "hex": "#daa45a", + "name": "玳瑁黄", + "pinyin": "daimaohuang" + }, + { + "CMYK": [7, 45, 82, 1], + "RGB": [222, 158, 68], + "hex": "#de9e44", + "name": "软木黄", + "pinyin": "ruanmuhuang" + }, + { + "CMYK": [6, 51, 95, 1], + "RGB": [220, 145, 35], + "hex": "#dc9123", + "name": "风帆黄", + "pinyin": "fengfanhuang" + }, + { + "CMYK": [19, 44, 75, 7], + "RGB": [192, 147, 81], + "hex": "#c09351", + "name": "桂皮淡棕", + "pinyin": "guipidanzong" + }, + { + "CMYK": [32, 40, 53, 22], + "RGB": [151, 132, 108], + "hex": "#97846c", + "name": "猴毛灰", + "pinyin": "houmaohui" + }, + { + "CMYK": [27, 60, 97, 21], + "RGB": [152, 101, 36], + "hex": "#986524", + "name": "山鸡褐", + "pinyin": "shanjihe" + }, + { + "CMYK": [37, 65, 84, 49], + "RGB": [102, 70, 42], + "hex": "#66462a", + "name": "驼色", + "pinyin": "tuose" + }, + { + "CMYK": [38, 69, 90, 54], + "RGB": [93, 61, 33], + "hex": "#5d3d21", + "name": "茶褐", + "pinyin": "chahe" + }, + { + "CMYK": [37, 74, 96, 55], + "RGB": [92, 55, 25], + "hex": "#5c3719", + "name": "古铜褐", + "pinyin": "gutonghe" + }, + { + "CMYK": [0, 10, 14, 0], + "RGB": [251, 236, 222], + "hex": "#fbecde", + "name": "荷花白", + "pinyin": "hehuabai" + }, + { + "CMYK": [0, 40, 52, 0], + "RGB": [248, 179, 127], + "hex": "#f8b37f", + "name": "玫瑰粉", + "pinyin": "meiguifen" + }, + { + "CMYK": [0, 62, 88, 0], + "RGB": [249, 125, 28], + "hex": "#f97d1c", + "name": "橘橙", + "pinyin": "jucheng" + }, + { + "CMYK": [0, 62, 85, 0], + "RGB": [250, 126, 35], + "hex": "#fa7e23", + "name": "美人焦橙", + "pinyin": "meirenjiaocheng" + }, + { + "CMYK": [0, 28, 25, 0], + "RGB": [247, 205, 188], + "hex": "#f7cdbc", + "name": "润红", + "pinyin": "runhong" + }, + { + "CMYK": [0, 28, 22, 0], + "RGB": [246, 206, 193], + "hex": "#f6cec1", + "name": "淡桃红", + "pinyin": "dantaohong" + }, + { + "CMYK": [0, 53, 65, 0], + "RGB": [240, 148, 93], + "hex": "#f0945d", + "name": "海螺橙", + "pinyin": "hailuocheng" + }, + { + "CMYK": [0, 44, 32, 0], + "RGB": [240, 173, 160], + "hex": "#f0ada0", + "name": "桃红", + "pinyin": "taohong" + }, + { + "CMYK": [0, 45, 34, 0], + "RGB": [238, 170, 156], + "hex": "#eeaa9c", + "name": "颊红", + "pinyin": "jiahong" + }, + { + "CMYK": [0, 49, 41, 0], + "RGB": [238, 160, 140], + "hex": "#eea08c", + "name": "淡罂粟红", + "pinyin": "danyingsuhong" + }, + { + "CMYK": [0, 58, 67, 0], + "RGB": [234, 137, 88], + "hex": "#ea8958", + "name": "晨曦红", + "pinyin": "chenxihong" + }, + { + "CMYK": [0, 65, 80, 0], + "RGB": [242, 118, 53], + "hex": "#f27635", + "name": "蟹壳红", + "pinyin": "xiekehong" + }, + { + "CMYK": [0, 69, 86, 0], + "RGB": [248, 107, 29], + "hex": "#f86b1d", + "name": "金莲花橙", + "pinyin": "jinlianhuacheng" + }, + { + "CMYK": [0, 69, 70, 0], + "RGB": [239, 111, 72], + "hex": "#ef6f48", + "name": "草莓红", + "pinyin": "caomeihong" + }, + { + "CMYK": [0, 72, 82, 0], + "RGB": [239, 99, 43], + "hex": "#ef632b", + "name": "龙睛鱼红", + "pinyin": "longjingyuhong" + }, + { + "CMYK": [0, 81, 84, 0], + "RGB": [241, 68, 29], + "hex": "#f1441d", + "name": "蜻蜓红", + "pinyin": "qingtinghong" + }, + { + "CMYK": [0, 80, 83, 0], + "RGB": [240, 75, 34], + "hex": "#f04b22", + "name": "大红", + "pinyin": "dahong" + }, + { + "CMYK": [0, 80, 85, 0], + "RGB": [242, 72, 27], + "hex": "#f2481b", + "name": "柿红", + "pinyin": "shihong" + }, + { + "CMYK": [0, 80, 85, 0], + "RGB": [243, 71, 24], + "hex": "#f34718", + "name": "榴花红", + "pinyin": "liuhuahong" + }, + { + "CMYK": [0, 83, 87, 0], + "RGB": [244, 62, 6], + "hex": "#f43e06", + "name": "银朱", + "pinyin": "yinzhu" + }, + { + "CMYK": [0, 78, 83, 0], + "RGB": [237, 81, 38], + "hex": "#ed5126", + "name": "朱红", + "pinyin": "zhuhong" + }, + { + "CMYK": [0, 50, 68, 0], + "RGB": [240, 156, 90], + "hex": "#f09c5a", + "name": "鲑鱼红", + "pinyin": "guiyuhong" + }, + { + "CMYK": [5, 69, 87, 0], + "RGB": [242, 123, 31], + "hex": "#f26b1f", + "name": "金黄", + "pinyin": "jinhuang" + }, + { + "CMYK": [7, 52, 71, 1], + "RGB": [217, 145, 86], + "hex": "#d99156", + "name": "鹿皮褐", + "pinyin": "lupihe" + }, + { + "CMYK": [4, 57, 82, 1], + "RGB": [219, 133, 64], + "hex": "#db8540", + "name": "醉瓜肉", + "pinyin": "zuiguarou" + }, + { + "CMYK": [0, 64, 93, 0], + "RGB": [222, 118, 34], + "hex": "#de7622", + "name": "麂棕", + "pinyin": "jizong" + }, + { + "CMYK": [22, 28, 34, 6], + "RGB": [193, 178, 163], + "hex": "#c1b2a3", + "name": "淡银灰", + "pinyin": "danyinhui" + }, + { + "CMYK": [18, 57, 76, 6], + "RGB": [190, 126, 74], + "hex": "#be7e4a", + "name": "淡赭", + "pinyin": "danzhe" + }, + { + "CMYK": [14, 69, 100, 4], + "RGB": [193, 101, 26], + "hex": "#c1651a", + "name": "槟榔综", + "pinyin": "binglangzong" + }, + { + "CMYK": [34, 42, 46, 23], + "RGB": [145, 128, 114], + "hex": "#918072", + "name": "银灰", + "pinyin": "yinhui" + }, + { + "CMYK": [42, 40, 46, 20], + "RGB": [154, 136, 120], + "hex": "#9a8878", + "name": "海鸥灰", + "pinyin": "haiouhui" + }, + { + "CMYK": [27, 69, 85, 22], + "RGB": [148, 88, 51], + "hex": "#945833", + "name": "淡咖啡", + "pinyin": "dankafei" + }, + { + "CMYK": [26, 76, 97, 20], + "RGB": [150, 77, 34], + "hex": "#964d22", + "name": "岩石棕", + "pinyin": "yanshizong" + }, + { + "CMYK": [25, 80, 100, 20], + "RGB": [149, 68, 22], + "hex": "#954416", + "name": "芒果棕", + "pinyin": "mangguozong" + }, + { + "CMYK": [39, 60, 58, 51], + "RGB": [98, 73, 65], + "hex": "#624941", + "name": "石板灰", + "pinyin": "shibanhui" + }, + { + "CMYK": [38, 63, 63, 50], + "RGB": [100, 72, 61], + "hex": "#64483d", + "name": "珠母灰", + "pinyin": "zhumuhui" + }, + { + "CMYK": [32, 83, 96, 41], + "RGB": [113, 54, 29], + "hex": "#71361d", + "name": "丁香棕", + "pinyin": "dingxiangzong" + }, + { + "CMYK": [30, 87, 100, 38], + "RGB": [117, 49, 23], + "hex": "#753117", + "name": "咖啡", + "pinyin": "kafei" + }, + { + "CMYK": [30, 89, 100, 39], + "RGB": [115, 46, 18], + "hex": "#732e12", + "name": "筍皮棕", + "pinyin": "sunpizong" + }, + { + "CMYK": [0, 72, 86, 0], + "RGB": [252, 99, 21], + "hex": "#fc6315", + "name": "燕颔红", + "pinyin": "yanhanhong" + }, + { + "CMYK": [3, 38, 39, 0], + "RGB": [232, 180, 154], + "hex": "#e8b49a", + "name": "玉粉红", + "pinyin": "yufenhong" + }, + { + "CMYK": [0, 70, 87, 0], + "RGB": [228, 104, 40], + "hex": "#e46828", + "name": "金驼", + "pinyin": "jintuo" + }, + { + "CMYK": [0, 76, 97, 0], + "RGB": [216, 89, 22], + "hex": "#d85916", + "name": "铁棕", + "pinyin": "tiezong" + }, + { + "CMYK": [23, 35, 38, 10], + "RGB": [183, 160, 145], + "hex": "#b7a091", + "name": "蛛网灰", + "pinyin": "zhuwanghui" + }, + { + "CMYK": [16, 77, 100, 6], + "RGB": [183, 81, 29], + "hex": "#b7511d", + "name": "淡可可棕", + "pinyin": "dankekezong" + }, + { + "CMYK": [31, 63, 66, 31], + "RGB": [139, 97, 77], + "hex": "#8b614d", + "name": "中红灰", + "pinyin": "zhonghonghui" + }, + { + "CMYK": [28, 76, 82, 26], + "RGB": [140, 75, 49], + "hex": "#8c4b31", + "name": "淡土黄", + "pinyin": "dantuhuang" + }, + { + "CMYK": [28, 83, 92, 28], + "RGB": [135, 61, 36], + "hex": "#873d24", + "name": "淡豆沙", + "pinyin": "dandousha" + }, + { + "CMYK": [27, 85, 98, 27], + "RGB": [136, 58, 30], + "hex": "#883a1e", + "name": "椰壳棕", + "pinyin": "yekezong" + }, + { + "CMYK": [40, 64, 61, 56], + "RGB": [91, 66, 58], + "hex": "#5b423a", + "name": "淡铁灰", + "pinyin": "dantiehui" + }, + { + "CMYK": [37, 72, 72, 52], + "RGB": [96, 61, 48], + "hex": "#603d30", + "name": "中灰驼", + "pinyin": "zhonghuituo" + }, + { + "CMYK": [34, 82, 85, 47], + "RGB": [103, 52, 36], + "hex": "#673424", + "name": "淡栗棕", + "pinyin": "danlizong" + }, + { + "CMYK": [33, 89, 92, 48], + "RGB": [101, 43, 28], + "hex": "#652b1c", + "name": "可可棕", + "pinyin": "kekezong" + }, + { + "CMYK": [32, 90, 95, 45], + "RGB": [105, 42, 27], + "hex": "#692a1b", + "name": "柞叶棕", + "pinyin": "zhayezong" + }, + { + "CMYK": [0, 53, 59, 0], + "RGB": [251, 153, 104], + "hex": "#fb9968", + "name": "野蔷薇红", + "pinyin": "yeqiangweihong" + }, + { + "CMYK": [0, 65, 79, 0], + "RGB": [252, 121, 48], + "hex": "#fc7930", + "name": "菠萝红", + "pinyin": "boluohong" + }, + { + "CMYK": [2, 31, 31, 0], + "RGB": [237, 195, 174], + "hex": "#edc3ae", + "name": "藕荷", + "pinyin": "ouhe" + }, + { + "CMYK": [0, 70, 91, 0], + "RGB": [225, 103, 35], + "hex": "#e16723", + "name": "陶瓷红", + "pinyin": "taocihong" + }, + { + "CMYK": [16, 23, 27, 2], + "RGB": [212, 196, 183], + "hex": "#d4c4b7", + "name": "晓灰", + "pinyin": "xiaohui" + }, + { + "CMYK": [9, 64, 78, 1], + "RGB": [207, 117, 67], + "hex": "#cf7543", + "name": "余烬红", + "pinyin": "yujinhong" + }, + { + "CMYK": [8, 72, 93, 1], + "RGB": [205, 98, 39], + "hex": "#cd6227", + "name": "火砖红", + "pinyin": "huozhuanhong" + }, + { + "CMYK": [22, 64, 71, 12], + "RGB": [170, 106, 76], + "hex": "#aa6a4c", + "name": "火泥棕", + "pinyin": "huonizong" + }, + { + "CMYK": [20, 76, 92, 9], + "RGB": [166, 82, 44], + "hex": "#a6522c", + "name": "绀红", + "pinyin": "ganhong" + }, + { + "CMYK": [31, 79, 77, 37], + "RGB": [119, 61, 49], + "hex": "#773d31", + "name": "橡树棕", + "pinyin": "xiangshuzong" + }, + { + "CMYK": [45, 68, 57, 66], + "RGB": [72, 51, 50], + "hex": "#483332", + "name": "海报灰", + "pinyin": "haibaohui" + }, + { + "CMYK": [41, 76, 64, 65], + "RGB": [175, 46, 43], + "hex": "#4b2e2b", + "name": "玫瑰灰", + "pinyin": "meiguihui" + }, + { + "CMYK": [41, 84, 71, 67], + "RGB": [72, 37, 34], + "hex": "#482522", + "name": "火山棕", + "pinyin": "huoshanzong" + }, + { + "CMYK": [40, 92, 78, 66], + "RGB": [72, 30, 28], + "hex": "#481e1c", + "name": "豆沙", + "pinyin": "dousha" + }, + { + "CMYK": [0, 9, 12, 0], + "RGB": [251, 238, 226], + "hex": "#fbeee2", + "name": "淡米粉", + "pinyin": "danmifen" + }, + { + "CMYK": [0, 19, 19, 0], + "RGB": [246, 220, 206], + "hex": "#f6dcce", + "name": "初桃粉红", + "pinyin": "chutaofenhong" + }, + { + "CMYK": [0, 27, 27, 0], + "RGB": [247, 207, 186], + "hex": "#f7cfba", + "name": "介壳淡粉红", + "pinyin": "jieqiaodanfenhong" + }, + { + "CMYK": [0, 43, 43, 0], + "RGB": [246, 173, 143], + "hex": "#f6ad8f", + "name": "淡藏花红", + "pinyin": "dancanghuahong" + }, + { + "CMYK": [0, 58, 61, 0], + "RGB": [246, 140, 96], + "hex": "#f68c60", + "name": "瓜瓤红", + "pinyin": "guaranghong" + }, + { + "CMYK": [0, 67, 74, 0], + "RGB": [249, 114, 61], + "hex": "#f9723d", + "name": "芙蓉红", + "pinyin": "furonghong" + }, + { + "CMYK": [0, 74, 85, 0], + "RGB": [250, 93, 25], + "hex": "#fa5d19", + "name": "莓酱红", + "pinyin": "meijianghong" + }, + { + "CMYK": [0, 62, 66, 0], + "RGB": [238, 128, 85], + "hex": "#ee8055", + "name": "法螺红", + "pinyin": "faluohong" + }, + { + "CMYK": [4, 82, 99, 0], + "RGB": [207, 72, 19], + "hex": "#cf4813", + "name": "落霞红", + "pinyin": "luoxiahong" + }, + { + "CMYK": [21, 43, 43, 9], + "RGB": [184, 148, 133], + "hex": "#b89485", + "name": "淡玫瑰灰", + "pinyin": "danmeiguihui" + }, + { + "CMYK": [18, 80, 92, 7], + "RGB": [177, 75, 40], + "hex": "#b14b28", + "name": "蟹蝥红", + "pinyin": "xiemaohong" + }, + { + "CMYK": [27, 91, 95, 28], + "RGB": [134, 48, 32], + "hex": "#863020", + "name": "火岩棕", + "pinyin": "huoyanzong" + }, + { + "CMYK": [27, 96, 100, 27], + "RGB": [134, 38, 23], + "hex": "#862617", + "name": "赭石", + "pinyin": "zheshi" + }, + { + "CMYK": [36, 90, 82, 56], + "RGB": [89, 38, 32], + "hex": "#592620", + "name": "暗驼棕", + "pinyin": "antuozong" + }, + { + "CMYK": [35, 96, 88, 55], + "RGB": [90, 31, 27], + "hex": "#5a1f1b", + "name": "酱棕", + "pinyin": "jiangzong" + }, + { + "CMYK": [34, 98, 91, 53], + "RGB": [92, 30, 25], + "hex": "#5c1e19", + "name": "栗棕", + "pinyin": "lizong" + }, + { + "CMYK": [0, 31, 24, 0], + "RGB": [244, 199, 186], + "hex": "#f4c7ba", + "name": "洋水仙红", + "pinyin": "yangshuixianhong" + }, + { + "CMYK": [0, 67, 55, 0], + "RGB": [241, 118, 102], + "hex": "#f17666", + "name": "谷鞘红", + "pinyin": "guqiaohong" + }, + { + "CMYK": [0, 77, 69, 0], + "RGB": [241, 86, 66], + "hex": "#f15642", + "name": "苹果红", + "pinyin": "pingguohong" + }, + { + "CMYK": [0, 84, 82, 0], + "RGB": [245, 57, 28], + "hex": "#f5391c", + "name": "铁水红", + "pinyin": "tieshuihong" + }, + { + "CMYK": [0, 76, 67, 0], + "RGB": [242, 90, 71], + "hex": "#f25a47", + "name": "桂红", + "pinyin": "guihong" + }, + { + "CMYK": [0, 84, 82, 0], + "RGB": [243, 59, 31], + "hex": "#f33b1f", + "name": "极光红", + "pinyin": "jiguanghong" + }, + { + "CMYK": [0, 38, 25, 0], + "RGB": [242, 185, 178], + "hex": "#f2b9b2", + "name": "粉红", + "pinyin": "fenhong" + }, + { + "CMYK": [0, 53, 36, 0], + "RGB": [241, 151, 144], + "hex": "#f19790", + "name": "舌红", + "pinyin": "shehong" + }, + { + "CMYK": [0, 76, 68, 0], + "RGB": [240, 90, 70], + "hex": "#f05a46", + "name": "曲红", + "pinyin": "quhong" + }, + { + "CMYK": [0, 83, 81, 0], + "RGB": [242, 62, 35], + "hex": "#f23e23", + "name": "红汞红", + "pinyin": "honggonghong" + }, + { + "CMYK": [0, 29, 16, 0], + "RGB": [242, 202, 201], + "hex": "#f2cac9", + "name": "淡绯", + "pinyin": "danfei" + }, + { + "CMYK": [0, 43, 24, 0], + "RGB": [239, 175, 173], + "hex": "#efafad", + "name": "无花果红", + "pinyin": "wuhuaguohong" + }, + { + "CMYK": [0, 57, 36, 0], + "RGB": [241, 144, 140], + "hex": "#f1908c", + "name": "榴子红", + "pinyin": "liuzihong" + }, + { + "CMYK": [0, 83, 81, 0], + "RGB": [240, 63, 36], + "hex": "#f03f24", + "name": "胭脂红", + "pinyin": "yanzhihong" + }, + { + "CMYK": [0, 50, 23, 0], + "RGB": [240, 161, 168], + "hex": "#f0a1a8", + "name": "合欢红", + "pinyin": "hehuanhong" + }, + { + "CMYK": [0, 56, 27, 0], + "RGB": [241, 147, 156], + "hex": "#f1939c", + "name": "春梅红", + "pinyin": "chunmeihong" + }, + { + "CMYK": [0, 65, 38, 0], + "RGB": [240, 124, 130], + "hex": "#f07c82", + "name": "香叶红", + "pinyin": "xiangyehong" + }, + { + "CMYK": [0, 80, 72, 0], + "RGB": [240, 74, 58], + "hex": "#f04a3a", + "name": "珊瑚红", + "pinyin": "shanhuhong" + }, + { + "CMYK": [0, 84, 82, 0], + "RGB": [241, 60, 34], + "hex": "#f13c22", + "name": "萝卜红", + "pinyin": "luobohong" + }, + { + "CMYK": [0, 65, 29, 0], + "RGB": [231, 124, 142], + "hex": "#e77c8e", + "name": "淡茜红", + "pinyin": "danqianhong" + }, + { + "CMYK": [0, 77, 49, 0], + "RGB": [237, 90, 101], + "hex": "#ed5a65", + "name": "艳红", + "pinyin": "yanhong" + }, + { + "CMYK": [0, 81, 66, 0], + "RGB": [237, 72, 69], + "hex": "#ed4845", + "name": "淡菽红", + "pinyin": "danshuhong" + }, + { + "CMYK": [0, 84, 76, 0], + "RGB": [237, 59, 47], + "hex": "#ed3b2f", + "name": "鱼鳃红", + "pinyin": "yusaihong" + }, + { + "CMYK": [0, 86, 82, 0], + "RGB": [237, 51, 33], + "hex": "#ed3321", + "name": "樱桃红", + "pinyin": "yingtaohong" + }, + { + "CMYK": [0, 82, 44, 0], + "RGB": [238, 72, 102], + "hex": "#ee4866", + "name": "淡蕊香红", + "pinyin": "danruixianghong" + }, + { + "CMYK": [0, 82, 46, 0], + "RGB": [238, 72, 99], + "hex": "#ee4863", + "name": "石竹红", + "pinyin": "shizhuhong" + }, + { + "CMYK": [0, 82, 50, 0], + "RGB": [239, 71, 93], + "hex": "#ef475d", + "name": "草茉莉红", + "pinyin": "caomolihong" + }, + { + "CMYK": [0, 84, 60, 0], + "RGB": [238, 63, 77], + "hex": "#ee3f4d", + "name": "茶花红", + "pinyin": "chahuahong" + }, + { + "CMYK": [0, 86, 74, 0], + "RGB": [237, 51, 51], + "hex": "#ed3333", + "name": "枸枢红", + "pinyin": "goushuhong" + }, + { + "CMYK": [0, 88, 81, 0], + "RGB": [236, 43, 36], + "hex": "#ec2b24", + "name": "秋海棠红", + "pinyin": "qiuhaitanghong" + }, + { + "CMYK": [0, 89, 84, 0], + "RGB": [235, 38, 26], + "hex": "#eb261a", + "name": "丽春红", + "pinyin": "lichunhong" + }, + { + "CMYK": [0, 90, 90, 0], + "RGB": [222, 42, 24], + "hex": "#de2a18", + "name": "夕阳红", + "pinyin": "xiyanghong" + }, + { + "CMYK": [0, 92, 95, 0], + "RGB": [212, 37, 23], + "hex": "#d42517", + "name": "鹤顶红", + "pinyin": "hedinghong" + }, + { + "CMYK": [19, 89, 85, 9], + "RGB": [171, 55, 47], + "hex": "#ab372f", + "name": "鹅血石红", + "pinyin": "exueshihong" + }, + { + "CMYK": [17, 98, 100, 8], + "RGB": [172, 31, 24], + "hex": "#ac1f18", + "name": "覆盆子红", + "pinyin": "fupenzihong" + }, + { + "CMYK": [36, 81, 64, 54], + "RGB": [93, 49, 49], + "hex": "#5d3131", + "name": "貂紫", + "pinyin": "diaozi" + }, + { + "CMYK": [35, 94, 77, 53], + "RGB": [92, 34, 35], + "hex": "#5c2223", + "name": "暗玉紫", + "pinyin": "anyuzi" + }, + { + "CMYK": [35, 100, 85, 54], + "RGB": [90, 25, 27], + "hex": "#5a191b", + "name": "栗紫", + "pinyin": "lizi" + }, + { + "CMYK": [35, 100, 80, 54], + "RGB": [90, 18, 22], + "hex": "#5a1216", + "name": "葡萄酱紫", + "pinyin": "putaojiangzi" + }, + { + "CMYK": [0, 49, 27, 0], + "RGB": [238, 162, 164], + "hex": "#eea2a4", + "name": "牡丹粉红", + "pinyin": "mudanfenhong" + }, + { + "CMYK": [0, 78, 44, 0], + "RGB": [237, 85, 106], + "hex": "#ed556a", + "name": "山茶红", + "pinyin": "shanchahong" + }, + { + "CMYK": [0, 86, 55, 0], + "RGB": [240, 55, 82], + "hex": "#f03752", + "name": "海棠红", + "pinyin": "haitanghong" + }, + { + "CMYK": [13, 83, 62, 3], + "RGB": [192, 72, 81], + "hex": "#c04851", + "name": "玉红", + "pinyin": "yuhong" + }, + { + "CMYK": [11, 93, 77, 2], + "RGB": [192, 44, 56], + "hex": "#c02c38", + "name": "高粱红", + "pinyin": "gaolianghong" + }, + { + "CMYK": [22, 76, 54, 12], + "RGB": [167, 83, 90], + "hex": "#a7535a", + "name": "满江红", + "pinyin": "manjianghong" + }, + { + "CMYK": [28, 100, 86, 33], + "RGB": [124, 24, 35], + "hex": "#7c1823", + "name": "枣红", + "pinyin": "zaohong" + }, + { + "CMYK": [39, 92, 67, 64], + "RGB": [76, 31, 36], + "hex": "#4c1f24", + "name": "葡萄紫", + "pinyin": "putaozi" + }, + { + "CMYK": [39, 100, 79, 63], + "RGB": [77, 16, 24], + "hex": "#4d1018", + "name": "酱紫", + "pinyin": "jiangzi" + }, + { + "CMYK": [0, 89, 62, 0], + "RGB": [238, 39, 70], + "hex": "#ee2746", + "name": "淡曙红", + "pinyin": "danshuhong" + }, + { + "CMYK": [0, 93, 76, 0], + "RGB": [222, 28, 49], + "hex": "#de1c31", + "name": "唐菖蒲红", + "pinyin": "tangchangpuhong" + }, + { + "CMYK": [1, 95, 82, 0], + "RGB": [209, 26, 45], + "hex": "#d11a2d", + "name": "鹅冠红", + "pinyin": "eguanhong" + }, + { + "CMYK": [13, 76, 50, 2], + "RGB": [196, 90, 101], + "hex": "#c45a65", + "name": "莓红", + "pinyin": "meihong" + }, + { + "CMYK": [10, 96, 82, 2], + "RGB": [194, 31, 48], + "hex": "#c21f30", + "name": "枫叶红", + "pinyin": "fengyehong" + }, + { + "CMYK": [19, 99, 86, 11], + "RGB": [166, 27, 41], + "hex": "#a61b29", + "name": "苋菜红", + "pinyin": "xiancaihong" + }, + { + "CMYK": [29, 73, 51, 28], + "RGB": [137, 78, 84], + "hex": "#894e54", + "name": "烟红", + "pinyin": "yanhong" + }, + { + "CMYK": [27, 98, 79, 30], + "RGB": [130, 32, 43], + "hex": "#82202b", + "name": "暗紫苑红", + "pinyin": "anziyuanhong" + }, + { + "CMYK": [27, 100, 90, 29], + "RGB": [130, 17, 31], + "hex": "#82111f", + "name": "殷红", + "pinyin": "yanhong" + }, + { + "CMYK": [36, 95, 71, 59], + "RGB": [84, 30, 36], + "hex": "#541e24", + "name": "猪肝紫", + "pinyin": "zhuganzi" + }, + { + "CMYK": [38, 100, 81, 61], + "RGB": [80, 10, 22], + "hex": "#500a16", + "name": "金鱼紫", + "pinyin": "jinyuzi" + }, + { + "CMYK": [1, 11, 9, 0], + "RGB": [248, 235, 230], + "hex": "#f8ebe6", + "name": "草珠红", + "pinyin": "caozhuhong" + }, + { + "CMYK": [0, 68, 21, 0], + "RGB": [236, 118, 150], + "hex": "#ec7696", + "name": "淡绛红", + "pinyin": "danjianghong" + }, + { + "CMYK": [0, 86, 30, 0], + "RGB": [239, 52, 115], + "hex": "#ef3473", + "name": "品红", + "pinyin": "pinhong" + }, + { + "CMYK": [0, 69, 22, 0], + "RGB": [234, 114, 147], + "hex": "#ea7293", + "name": "凤仙花红", + "pinyin": "fengxianhuahong" + }, + { + "CMYK": [0, 52, 18, 0], + "RGB": [236, 155, 173], + "hex": "#ec9bad", + "name": "粉团花红", + "pinyin": "fentuanhuahong" + }, + { + "CMYK": [0, 80, 28, 0], + "RGB": [235, 80, 126], + "hex": "#eb507e", + "name": "夹竹桃红", + "pinyin": "jiazhutaohong" + }, + { + "CMYK": [0, 88, 36, 0], + "RGB": [237, 47, 106], + "hex": "#ed2f6a", + "name": "榲桲红", + "pinyin": "wenpohong" + }, + { + "CMYK": [0, 39, 14, 0], + "RGB": [238, 184, 195], + "hex": "#eeb8c3", + "name": "姜红", + "pinyin": "jianghong" + }, + { + "CMYK": [0, 80, 27, 0], + "RGB": [234, 81, 127], + "hex": "#ea517f", + "name": "莲瓣红", + "pinyin": "lianbanhong" + }, + { + "CMYK": [0, 33, 11, 0], + "RGB": [241, 196, 205], + "hex": "#f1c4cd", + "name": "水红", + "pinyin": "shuihong" + }, + { + "CMYK": [0, 60, 18, 0], + "RGB": [236, 138, 164], + "hex": "#ec8aa4", + "name": "报春红", + "pinyin": "baochunhong" + }, + { + "CMYK": [8, 78, 35, 1], + "RGB": [206, 87, 109], + "hex": "#ce5777", + "name": "月季红", + "pinyin": "yuejihong" + }, + { + "CMYK": [0, 52, 15, 0], + "RGB": [237, 157, 178], + "hex": "#ed9db2", + "name": "豇豆红", + "pinyin": "jiangdouhong" + }, + { + "CMYK": [0, 63, 18, 0], + "RGB": [239, 130, 160], + "hex": "#ef82a0", + "name": "霞光红", + "pinyin": "xiaguanghong" + }, + { + "CMYK": [0, 85, 33, 0], + "RGB": [235, 60, 112], + "hex": "#eb3c70", + "name": "松叶牡丹红", + "pinyin": "songyemudanhong" + }, + { + "CMYK": [0, 88, 40, 0], + "RGB": [236, 44, 100], + "hex": "#ec2c64", + "name": "喜蛋红", + "pinyin": "xidanhong" + }, + { + "CMYK": [5, 38, 20, 0], + "RGB": [227, 180, 184], + "hex": "#e3b4b8", + "name": "鼠鼻红", + "pinyin": "shubihong" + }, + { + "CMYK": [5, 96, 73, 1], + "RGB": [204, 22, 58], + "hex": "#cc163a", + "name": "尖晶玉红", + "pinyin": "jianjingyuhong" + }, + { + "CMYK": [16, 61, 34, 4], + "RGB": [194, 124, 136], + "hex": "#c27c88", + "name": "山黎豆红", + "pinyin": "shanlidouhong" + }, + { + "CMYK": [13, 90, 56, 3], + "RGB": [191, 53, 83], + "hex": "#bf3553", + "name": "锦葵红", + "pinyin": "jinkuihong" + }, + { + "CMYK": [41, 64, 44, 36], + "RGB": [115, 87, 92], + "hex": "#73575c", + "name": "鼠背灰", + "pinyin": "shubeihui" + }, + { + "CMYK": [33, 100, 75, 49], + "RGB": [98, 22, 36], + "hex": "#621624", + "name": "甘蔗紫", + "pinyin": "ganzhezi" + }, + { + "CMYK": [32, 100, 84, 49], + "RGB": [99, 7, 28], + "hex": "#63071c", + "name": "石竹紫", + "pinyin": "shizhuzi" + }, + { + "CMYK": [57, 72, 54, 74], + "RGB": [54, 40, 43], + "hex": "#36282b", + "name": "苍蝇灰", + "pinyin": "cangyinghui" + }, + { + "CMYK": [52, 88, 58, 81], + "RGB": [48, 22, 28], + "hex": "#30161c", + "name": "卵石紫", + "pinyin": "luanshizi" + }, + { + "CMYK": [56, 88, 62, 84], + "RGB": [43, 18, 22], + "hex": "#2b1216", + "name": "李紫", + "pinyin": "lizi" + }, + { + "CMYK": [58, 90, 63, 83], + "RGB": [45, 12, 19], + "hex": "#2d0c13", + "name": "茄皮紫", + "pinyin": "qiepizi" + }, + { + "CMYK": [0, 76, 16, 0], + "RGB": [206, 94, 138], + "hex": "#ce5e8a", + "name": "吊钟花红", + "pinyin": "diaozhonghuahong" + }, + { + "CMYK": [0, 81, 18, 0], + "RGB": [236, 78, 138], + "hex": "#ec4e8a", + "name": "兔眼红", + "pinyin": "tuyanhong" + }, + { + "CMYK": [0, 87, 24, 0], + "RGB": [238, 44, 121], + "hex": "#ee2c79", + "name": "紫荆红", + "pinyin": "zijinghong" + }, + { + "CMYK": [24, 99, 52, 19], + "RGB": [149, 28, 72], + "hex": "#951c48", + "name": "菜头紫", + "pinyin": "caitouzi" + }, + { + "CMYK": [34, 97, 54, 50], + "RGB": [98, 29, 52], + "hex": "#621d34", + "name": "鹞冠紫", + "pinyin": "yaoguanzi" + }, + { + "CMYK": [33, 100, 58, 60], + "RGB": [98, 16, 46], + "hex": "#62102e", + "name": "葡萄酒红", + "pinyin": "putaojiuhong" + }, + { + "CMYK": [53, 81, 50, 74], + "RGB": [56, 33, 41], + "hex": "#382129", + "name": "磨石紫", + "pinyin": "moshizi" + }, + { + "CMYK": [48, 90, 50, 76], + "RGB": [56, 25, 36], + "hex": "#381924", + "name": "檀紫", + "pinyin": "tanzi" + }, + { + "CMYK": [50, 91, 54, 79], + "RGB": [51, 20, 30], + "hex": "#33141e", + "name": "火鹅紫", + "pinyin": "huoezi" + }, + { + "CMYK": [53, 92, 55, 81], + "RGB": [49, 15, 27], + "hex": "#310f1b", + "name": "墨紫", + "pinyin": "mozi" + }, + { + "CMYK": [0, 48, 15, 0], + "RGB": [238, 166, 183], + "hex": "#eea6b7", + "name": "晶红", + "pinyin": "jinghong" + }, + { + "CMYK": [0, 82, 16, 0], + "RGB": [239, 73, 139], + "hex": "#ef498b", + "name": "扁豆花红", + "pinyin": "biandouhuahong" + }, + { + "CMYK": [2, 66, 22, 0], + "RGB": [222, 120, 151], + "hex": "#de7897", + "name": "白芨红", + "pinyin": "baijihong" + }, + { + "CMYK": [0, 85, 24, 0], + "RGB": [222, 63, 124], + "hex": "#de3f7c", + "name": "嫩菱红", + "pinyin": "nenlinghong" + }, + { + "CMYK": [5, 87, 30, 1], + "RGB": [209, 60, 116], + "hex": "#d13c74", + "name": "菠根红", + "pinyin": "bogenhong" + }, + { + "CMYK": [15, 68, 28, 2], + "RGB": [197, 112, 139], + "hex": "#c5708b", + "name": "酢酱草红", + "pinyin": "cujiangcaohong" + }, + { + "CMYK": [22, 83, 34, 11], + "RGB": [168, 69, 107], + "hex": "#a8456b", + "name": "洋葱紫", + "pinyin": "yangcongzi" + }, + { + "CMYK": [40, 92, 47, 64], + "RGB": [75, 30, 47], + "hex": "#4b1e2f", + "name": "海象紫", + "pinyin": "haixiangzi" + }, + { + "CMYK": [41, 97, 49, 68], + "RGB": [70, 22, 41], + "hex": "#461629", + "name": "绀紫", + "pinyin": "ganzi" + }, + { + "CMYK": [42, 99, 51, 69], + "RGB": [68, 14, 37], + "hex": "#440e25", + "name": "古铜紫", + "pinyin": "gutongzi" + }, + { + "CMYK": [0, 30, 12, 0], + "RGB": [240, 201, 207], + "hex": "#f0c9cf", + "name": "石蕊红", + "pinyin": "shiruihong" + }, + { + "CMYK": [0, 50, 16, 0], + "RGB": [235, 160, 179], + "hex": "#eba0b3", + "name": "芍药耕红", + "pinyin": "shaoyaogenghong" + }, + { + "CMYK": [0, 88, 23, 0], + "RGB": [236, 45, 122], + "hex": "#ec2d7a", + "name": "藏花红", + "pinyin": "canghuahong" + }, + { + "CMYK": [0, 71, 18, 0], + "RGB": [225, 108, 150], + "hex": "#e16c96", + "name": "初荷红", + "pinyin": "chuhehong" + }, + { + "CMYK": [6, 13, 7, 0], + "RGB": [237, 227, 231], + "hex": "#ede3e7", + "name": "马鞭草紫", + "pinyin": "mabiancaozi" + }, + { + "CMYK": [7, 20, 8, 0], + "RGB": [233, 215, 223], + "hex": "#e9d7df", + "name": "丁香淡紫", + "pinyin": "dingxiangdanzi" + }, + { + "CMYK": [7, 79, 18, 0], + "RGB": [210, 86, 140], + "hex": "#d2568c", + "name": "丹紫红", + "pinyin": "danzihong" + }, + { + "CMYK": [4, 89, 21, 0], + "RGB": [210, 53, 125], + "hex": "#d2357d", + "name": "玫瑰红", + "pinyin": "meiguihong" + }, + { + "CMYK": [19, 27, 9, 0], + "RGB": [209, 194, 211], + "hex": "#d1c2d3", + "name": "淡牵牛紫", + "pinyin": "danqianniuzi" + }, + { + "CMYK": [21, 37, 12, 0], + "RGB": [200, 173, 196], + "hex": "#c8adc4", + "name": "凤信紫", + "pinyin": "fengxinzi" + }, + { + "CMYK": [23, 53, 14, 1], + "RGB": [192, 142, 175], + "hex": "#c08eaf", + "name": "萝兰紫", + "pinyin": "luolanzi" + }, + { + "CMYK": [18, 91, 18, 2], + "RGB": [186, 47, 123], + "hex": "#ba2f7b", + "name": "玫瑰紫", + "pinyin": "meiguizi" + }, + { + "CMYK": [58, 56, 17, 2], + "RGB": [128, 118, 163], + "hex": "#8076a3", + "name": "藤萝紫", + "pinyin": "tengluozi" + }, + { + "CMYK": [57, 62, 16, 2], + "RGB": [128, 109, 158], + "hex": "#806d9e", + "name": "槿紫", + "pinyin": "jinzi" + }, + { + "CMYK": [56, 72, 15, 1], + "RGB": [129, 92, 148], + "hex": "#815c94", + "name": "蕈紫", + "pinyin": "xunzi" + }, + { + "CMYK": [54, 89, 12, 1], + "RGB": [129, 60, 133], + "hex": "#813c85", + "name": "桔梗紫", + "pinyin": "jiegengzi" + }, + { + "CMYK": [52, 100, 17, 7], + "RGB": [126, 22, 113], + "hex": "#7e1671", + "name": "魏紫", + "pinyin": "weizi" + }, + { + "CMYK": [3, 26, 10, 0], + "RGB": [233, 204, 211], + "hex": "#e9ccd3", + "name": "芝兰紫", + "pinyin": "zhilanzi" + }, + { + "CMYK": [10, 67, 12, 0], + "RGB": [210, 118, 163], + "hex": "#d276a3", + "name": "菱锰红", + "pinyin": "lingmenghong" + }, + { + "CMYK": [11, 97, 10, 0], + "RGB": [204, 85, 149], + "hex": "#cc5595", + "name": "龙须红", + "pinyin": "longxuhong" + }, + { + "CMYK": [8, 22, 12, 0], + "RGB": [230, 210, 213], + "hex": "#e6d2d5", + "name": "蓟粉红", + "pinyin": "jifenhong" + }, + { + "CMYK": [16, 79, 14, 1], + "RGB": [195, 86, 145], + "hex": "#c35691", + "name": "电气石红", + "pinyin": "dianqishihong" + }, + { + "CMYK": [19, 68, 18, 1], + "RGB": [192, 111, 152], + "hex": "#c06f98", + "name": "樱草紫", + "pinyin": "yingcaozi" + }, + { + "CMYK": [25, 31, 26, 5], + "RGB": [189, 174, 173], + "hex": "#bdaead", + "name": "芦穗灰", + "pinyin": "lusuihui" + }, + { + "CMYK": [26, 43, 26, 6], + "RGB": [181, 152, 161], + "hex": "#b598a1", + "name": "隐红灰", + "pinyin": "yinhonghui" + }, + { + "CMYK": [27, 97, 27, 14], + "RGB": [155, 30, 100], + "hex": "#9b1e64", + "name": "苋菜紫", + "pinyin": "xiancaizi" + }, + { + "CMYK": [39, 53, 38, 25], + "RGB": [133, 109, 114], + "hex": "#856d72", + "name": "芦灰", + "pinyin": "luhui" + }, + { + "CMYK": [49, 71, 49, 58], + "RGB": [79, 56, 62], + "hex": "#4f383e", + "name": "暮云灰", + "pinyin": "muyunhui" + }, + { + "CMYK": [49, 82, 46, 63], + "RGB": [72, 41, 54], + "hex": "#482936", + "name": "斑鸠灰", + "pinyin": "banjiuhui" + }, + { + "CMYK": [4, 11, 9, 0], + "RGB": [242, 231, 229], + "hex": "#f2e7e5", + "name": "淡藤萝紫", + "pinyin": "dantengluozi" + }, + { + "CMYK": [10, 27, 11, 0], + "RGB": [224, 200, 209], + "hex": "#e0c8d1", + "name": "淡青紫", + "pinyin": "danqingzi" + }, + { + "CMYK": [24, 58, 15, 1], + "RGB": [188, 132, 168], + "hex": "#bc84a8", + "name": "青蛤壳紫", + "pinyin": "qinghakezi" + }, + { + "CMYK": [31, 71, 15, 1], + "RGB": [173, 101, 152], + "hex": "#ad6598", + "name": "豆蔻紫", + "pinyin": "doukouzi" + }, + { + "CMYK": [35, 75, 18, 2], + "RGB": [163, 92, 143], + "hex": "#a35c8f", + "name": "扁豆紫", + "pinyin": "biandouzi" + }, + { + "CMYK": [39, 91, 15, 3], + "RGB": [152, 54, 128], + "hex": "#983680", + "name": "芥花紫", + "pinyin": "jiehuazi" + }, + { + "CMYK": [43, 97, 19, 8], + "RGB": [139, 38, 113], + "hex": "#8b2671", + "name": "青莲", + "pinyin": "qinglian" + }, + { + "CMYK": [44, 85, 24, 10], + "RGB": [137, 66, 118], + "hex": "#894276", + "name": "芓紫", + "pinyin": "zizi" + }, + { + "CMYK": [45, 99, 24, 16], + "RGB": [126, 32, 101], + "hex": "#7e2065", + "name": "葛巾紫", + "pinyin": "gejinzi" + }, + { + "CMYK": [49, 100, 29, 32], + "RGB": [104, 23, 82], + "hex": "#681752", + "name": "牵牛紫", + "pinyin": "qianniuzi" + }, + { + "CMYK": [53, 75, 41, 41], + "RGB": [93, 63, 81], + "hex": "#5d3f51", + "name": "紫灰", + "pinyin": "zihui" + }, + { + "CMYK": [55, 87, 41, 52], + "RGB": [78, 42, 64], + "hex": "#4e2a40", + "name": "龙睛鱼紫", + "pinyin": "longjingyuzi" + }, + { + "CMYK": [58, 96, 40, 61], + "RGB": [65, 28, 53], + "hex": "#411c35", + "name": "荸荠紫", + "pinyin": "biqizi" + }, + { + "CMYK": [63, 74, 52, 70], + "RGB": [54, 41, 47], + "hex": "#36292f", + "name": "古鼎灰", + "pinyin": "gudinghui" + }, + { + "CMYK": [81, 87, 54, 84], + "RGB": [30, 19, 29], + "hex": "#1e131d", + "name": "乌梅紫", + "pinyin": "wumeizi" + }, + { + "CMYK": [83, 87, 55, 86], + "RGB": [28, 13, 26], + "hex": "#1c0d1a", + "name": "深牵牛紫", + "pinyin": "shenqianniuzi" + }, + { + "CMYK": [7, 5, 7, 0], + "RGB": [241, 240, 237], + "hex": "#f1f0ed", + "name": "银白", + "pinyin": "yinbai" + }, + { + "CMYK": [13, 10, 9, 0], + "RGB": [226, 225, 228], + "hex": "#e2e1e4", + "name": "芡食白", + "pinyin": "qianshibai" + }, + { + "CMYK": [23, 18, 12, 1], + "RGB": [204, 204, 214], + "hex": "#ccccd6", + "name": "远山紫", + "pinyin": "yuanshanzi" + }, + { + "CMYK": [39, 31, 17, 2], + "RGB": [167, 168, 189], + "hex": "#a7a8bd", + "name": "淡蓝紫", + "pinyin": "danlanzi" + }, + { + "CMYK": [74, 64, 14, 1], + "RGB": [97, 100, 159], + "hex": "#61649f", + "name": "山梗紫", + "pinyin": "shangengzi" + }, + { + "CMYK": [63, 53, 22, 5], + "RGB": [116, 117, 155], + "hex": "#74759b", + "name": "螺甸紫", + "pinyin": "luodianzi" + }, + { + "CMYK": [21, 17, 19, 1], + "RGB": [207, 204, 201], + "hex": "#cfccc9", + "name": "玛瑙灰", + "pinyin": "manaohui" + }, + { + "CMYK": [80, 73, 21, 6], + "RGB": [82, 82, 136], + "hex": "#525288", + "name": "野菊紫", + "pinyin": "yejuzi" + }, + { + "CMYK": [100, 93, 21, 5], + "RGB": [46, 49, 124], + "hex": "#2e317c", + "name": "满天星紫", + "pinyin": "mantianxingzi" + }, + { + "CMYK": [48, 45, 40, 26], + "RGB": [122, 115, 116], + "hex": "#7a7374", + "name": "锌灰", + "pinyin": "xinhui" + }, + { + "CMYK": [91, 84, 40, 43], + "RGB": [48, 47, 75], + "hex": "#302f4b", + "name": "野葡萄紫", + "pinyin": "yeputaozi" + }, + { + "CMYK": [70, 69, 49, 56], + "RGB": [62, 56, 65], + "hex": "#3e3841", + "name": "剑锋紫", + "pinyin": "jianfengzi" + }, + { + "CMYK": [79, 74, 49, 60], + "RGB": [50, 47, 59], + "hex": "#322f3b", + "name": "龙葵紫", + "pinyin": "longkuizi" + }, + { + "CMYK": [90, 84, 50, 69], + "RGB": [34, 32, 46], + "hex": "#22202e", + "name": "暗龙胆紫", + "pinyin": "anlongdanzi" + }, + { + "CMYK": [98, 93, 48, 73], + "RGB": [31, 32, 64], + "hex": "#1f2040", + "name": "晶石紫", + "pinyin": "jingshizi" + }, + { + "CMYK": [100, 94, 52, 77], + "RGB": [19, 17, 36], + "hex": "#131124", + "name": "暗蓝紫", + "pinyin": "anlanzi" + }, + { + "CMYK": [95, 46, 10, 1], + "RGB": [39, 117, 182], + "hex": "#2775b6", + "name": "景泰蓝", + "pinyin": "jingtailan" + }, + { + "CMYK": [96, 47, 11, 1], + "RGB": [36, 116, 181], + "hex": "#2474b5", + "name": "尼罗蓝", + "pinyin": "niluolan" + }, + { + "CMYK": [25, 6, 10, 0], + "RGB": [208, 223, 230], + "hex": "#d0dfe6", + "name": "远天蓝", + "pinyin": "yuantianlan" + }, + { + "CMYK": [53, 19, 15, 1], + "RGB": [147, 181, 207], + "hex": "#93b5cf", + "name": "星蓝", + "pinyin": "xinglan" + }, + { + "CMYK": [74, 27, 16, 2], + "RGB": [97, 154, 195], + "hex": "#619ac3", + "name": "羽扇豆蓝", + "pinyin": "yushandoulan" + }, + { + "CMYK": [95, 45, 10, 1], + "RGB": [35, 118, 183], + "hex": "#2376b7", + "name": "花青", + "pinyin": "huaqing" + }, + { + "CMYK": [78, 27, 17, 2], + "RGB": [86, 152, 195], + "hex": "#5698c3", + "name": "睛蓝", + "pinyin": "jinglan" + }, + { + "CMYK": [99, 44, 10, 1], + "RGB": [33, 119, 184], + "hex": "#2177b8", + "name": "虹蓝", + "pinyin": "honglan" + }, + { + "CMYK": [43, 4, 16, 0], + "RGB": [176, 213, 223], + "hex": "#b0d5df", + "name": "湖水蓝", + "pinyin": "hushuilan" + }, + { + "CMYK": [59, 12, 19, 0], + "RGB": [138, 188, 209], + "hex": "#8abcd1", + "name": "秋波蓝", + "pinyin": "qiubolan" + }, + { + "CMYK": [73, 17, 20, 1], + "RGB": [102, 169, 201], + "hex": "#66a9c9", + "name": "涧石蓝", + "pinyin": "jianshilan" + }, + { + "CMYK": [93, 36, 15, 2], + "RGB": [41, 131, 187], + "hex": "#2983bb", + "name": "潮蓝", + "pinyin": "chaolan" + }, + { + "CMYK": [99, 48, 11, 1], + "RGB": [23, 114, 180], + "hex": "#1772b4", + "name": "群青", + "pinyin": "qunqing" + }, + { + "CMYK": [74, 2, 24, 0], + "RGB": [99, 187, 208], + "hex": "#63bbd0", + "name": "霁青", + "pinyin": "jiqing" + }, + { + "CMYK": [77, 7, 24, 0], + "RGB": [92, 179, 204], + "hex": "#5cb3cc", + "name": "碧青", + "pinyin": "biqing" + }, + { + "CMYK": [94, 32, 17, 3], + "RGB": [36, 134, 185], + "hex": "#2486b9", + "name": "宝石蓝", + "pinyin": "baoshilan" + }, + { + "CMYK": [98, 43, 14, 2], + "RGB": [22, 119, 179], + "hex": "#1677b3", + "name": "天蓝", + "pinyin": "tianlan" + }, + { + "CMYK": [100, 52, 11, 1], + "RGB": [18, 107, 174], + "hex": "#126bae", + "name": "柏林蓝", + "pinyin": "bolinlan" + }, + { + "CMYK": [92, 10, 25, 1], + "RGB": [34, 162, 195], + "hex": "#22a2c3", + "name": "海青", + "pinyin": "haiqing" + }, + { + "CMYK": [94, 16, 23, 3], + "RGB": [26, 148, 188], + "hex": "#1a94bc", + "name": "钴蓝", + "pinyin": "gulan" + }, + { + "CMYK": [95, 25, 20, 4], + "RGB": [21, 139, 184], + "hex": "#158bb8", + "name": "鸢尾蓝", + "pinyin": "yuanweilan" + }, + { + "CMYK": [98, 42, 16, 3], + "RGB": [17, 119, 176], + "hex": "#1177b0", + "name": "牵牛花蓝", + "pinyin": "qianniuhualan" + }, + { + "CMYK": [100, 65, 11, 1], + "RGB": [15, 89, 164], + "hex": "#0f59a4", + "name": "飞燕草蓝", + "pinyin": "feiyancaolan" + }, + { + "CMYK": [95, 47, 14, 2], + "RGB": [43, 115, 175], + "hex": "#2b73af", + "name": "品蓝", + "pinyin": "pinlan" + }, + { + "CMYK": [24, 14, 16, 1], + "RGB": [205, 209, 211], + "hex": "#cdd1d3", + "name": "银鱼白", + "pinyin": "yinyubai" + }, + { + "CMYK": [93, 49, 17, 3], + "RGB": [49, 112, 167], + "hex": "#3170a7", + "name": "安安蓝", + "pinyin": "ananlan" + }, + { + "CMYK": [64, 52, 39, 28], + "RGB": [94, 97, 109], + "hex": "#5e616d", + "name": "鱼尾灰", + "pinyin": "yuweihui" + }, + { + "CMYK": [78, 60, 40, 31], + "RGB": [71, 81, 100], + "hex": "#475164", + "name": "鲸鱼灰", + "pinyin": "jingyuhui" + }, + { + "CMYK": [69, 64, 52, 59], + "RGB": [255, 254, 250], + "hex": "#fffefa", + "name": "海参灰", + "pinyin": "haishenhui" + }, + { + "CMYK": [76, 70, 51, 60], + "RGB": [53, 51, 60], + "hex": "#35333c", + "name": "沙鱼灰", + "pinyin": "shayuhui" + }, + { + "CMYK": [100, 89, 54, 79], + "RGB": [15, 20, 35], + "hex": "#0f1423", + "name": "钢蓝", + "pinyin": "ganglan" + }, + { + "CMYK": [35, 13, 13, 0], + "RGB": [186, 204, 217], + "hex": "#baccd9", + "name": "云水蓝", + "pinyin": "yunshuilan" + }, + { + "CMYK": [55, 20, 18, 1], + "RGB": [143, 178, 201], + "hex": "#8fb2c9", + "name": "晴山蓝", + "pinyin": "qingshanlan" + }, + { + "CMYK": [100, 60, 8, 1], + "RGB": [22, 97, 171], + "hex": "#1661ab", + "name": "靛青", + "pinyin": "dianqing" + }, + { + "CMYK": [29, 16, 17, 1], + "RGB": [196, 203, 207], + "hex": "#c4cbcf", + "name": "大理石灰", + "pinyin": "dalishihui" + }, + { + "CMYK": [100, 67, 16, 3], + "RGB": [21, 85, 154], + "hex": "#15559a", + "name": "海涛蓝", + "pinyin": "haitaolan" + }, + { + "CMYK": [81, 41, 24, 8], + "RGB": [78, 124, 161], + "hex": "#4e7ca1", + "name": "蝶翅蓝", + "pinyin": "diechilan" + }, + { + "CMYK": [93, 50, 21, 6], + "RGB": [52, 108, 156], + "hex": "#346c9c", + "name": "海军蓝", + "pinyin": "haijunlan" + }, + { + "CMYK": [77, 68, 54, 66], + "RGB": [47, 47, 53], + "hex": "#2f2f35", + "name": "水牛灰", + "pinyin": "shuiniuhui" + }, + { + "CMYK": [80, 70, 53, 65], + "RGB": [45, 46, 54], + "hex": "#2d2e36", + "name": "牛角灰", + "pinyin": "niujiaohui" + }, + { + "CMYK": [100, 86, 54, 78], + "RGB": [19, 24, 36], + "hex": "#131824", + "name": "燕颔蓝", + "pinyin": "yanhanlan" + }, + { + "CMYK": [21, 6, 10, 0], + "RGB": [216, 227, 231], + "hex": "#d8e3e7", + "name": "云峰白", + "pinyin": "yunfengbai" + }, + { + "CMYK": [32, 8, 13, 0], + "RGB": [195, 215, 223], + "hex": "#c3d7df", + "name": "井天蓝", + "pinyin": "jingtianlan" + }, + { + "CMYK": [91, 24, 22, 4], + "RGB": [47, 144, 185], + "hex": "#2f90b9", + "name": "云山蓝", + "pinyin": "yunshanlan" + }, + { + "CMYK": [96, 34, 18, 4], + "RGB": [23, 129, 181], + "hex": "#1781b5", + "name": "釉蓝", + "pinyin": "youlan" + }, + { + "CMYK": [28, 12, 17, 0], + "RGB": [199, 210, 212], + "hex": "#c7d2d4", + "name": "鸥蓝", + "pinyin": "oulan" + }, + { + "CMYK": [100, 53, 21, 6], + "RGB": [17, 101, 154], + "hex": "#11659a", + "name": "搪磁蓝", + "pinyin": "tangcilan" + }, + { + "CMYK": [29, 18, 21, 2], + "RGB": [192, 196, 195], + "hex": "#c0c4c3", + "name": "月影白", + "pinyin": "yueyingbai" + }, + { + "CMYK": [36, 20, 23, 2], + "RGB": [178, 187, 190], + "hex": "#b2bbbe", + "name": "星灰", + "pinyin": "xinghui" + }, + { + "CMYK": [70, 38, 36, 18], + "RGB": [94, 121, 135], + "hex": "#5e7987", + "name": "淡蓝灰", + "pinyin": "danlanhui" + }, + { + "CMYK": [100, 68, 32, 20], + "RGB": [20, 74, 116], + "hex": "#144a74", + "name": "鷃蓝", + "pinyin": "yanlan" + }, + { + "CMYK": [55, 40, 40, 23], + "RGB": [116, 120, 122], + "hex": "#74787a", + "name": "嫩灰", + "pinyin": "nenhui" + }, + { + "CMYK": [77, 50, 41, 31], + "RGB": [73, 92, 105], + "hex": "#495c69", + "name": "战舰灰", + "pinyin": "zhanjianhui" + }, + { + "CMYK": [67, 57, 49, 49], + "RGB": [71, 72, 76], + "hex": "#47484c", + "name": "瓦罐灰", + "pinyin": "waguanhui" + }, + { + "CMYK": [87, 69, 51, 58], + "RGB": [43, 51, 62], + "hex": "#2b333e", + "name": "青灰", + "pinyin": "qinghui" + }, + { + "CMYK": [100, 77, 50, 62], + "RGB": [28, 41, 56], + "hex": "#1c2938", + "name": "鸽蓝", + "pinyin": "gelan" + }, + { + "CMYK": [100, 82, 51, 64], + "RGB": [20, 35, 52], + "hex": "#142334", + "name": "钢青", + "pinyin": "gangqing" + }, + { + "CMYK": [100, 84, 51, 68], + "RGB": [16, 31, 48], + "hex": "#101f30", + "name": "暗蓝", + "pinyin": "anlan" + }, + { + "CMYK": [11, 0, 8, 0], + "RGB": [238, 247, 242], + "hex": "#eef7f2", + "name": "月白", + "pinyin": "yuebai" + }, + { + "CMYK": [33, 0, 14, 0], + "RGB": [198, 230, 232], + "hex": "#c6e6e8", + "name": "海天蓝", + "pinyin": "haitianlan" + }, + { + "CMYK": [57, 0, 22, 0], + "RGB": [147, 213, 220], + "hex": "#93d5dc", + "name": "清水蓝", + "pinyin": "qingshuilan" + }, + { + "CMYK": [79, 0, 27, 0], + "RGB": [81, 196, 211], + "hex": "#51c4d3", + "name": "瀑布蓝", + "pinyin": "pubulan" + }, + { + "CMYK": [89, 0, 29, 0], + "RGB": [41, 183, 203], + "hex": "#29b7cb", + "name": "蔚蓝", + "pinyin": "weilan" + }, + { + "CMYK": [92, 0, 28, 0], + "RGB": [14, 176, 201], + "hex": "#0eb0c9", + "name": "孔雀蓝", + "pinyin": "kongquelan" + }, + { + "CMYK": [93, 0, 31, 0], + "RGB": [16, 174, 194], + "hex": "#10aec2", + "name": "甸子蓝", + "pinyin": "dianzilan" + }, + { + "CMYK": [78, 36, 0, 0], + "RGB": [87, 195, 194], + "hex": "#57c3c2", + "name": "石绿", + "pinyin": "shilv" + }, + { + "CMYK": [40, 0, 30, 0], + "RGB": [185, 222, 201], + "hex": "#b9dec9", + "name": "竹篁绿", + "pinyin": "zhuhuanglv" + }, + { + "CMYK": [64, 0, 46, 0], + "RGB": [131, 203, 172], + "hex": "#83cbac", + "name": "粉绿", + "pinyin": "fenlv" + }, + { + "CMYK": [95, 0, 52, 0], + "RGB": [18, 170, 156], + "hex": "#12aa9c", + "name": "美蝶绿", + "pinyin": "meidielv" + }, + { + "CMYK": [75, 0, 61, 0], + "RGB": [102, 193, 140], + "hex": "#66c18c", + "name": "毛绿", + "pinyin": "maolv" + }, + { + "CMYK": [78, 0, 62, 0], + "RGB": [93, 190, 138], + "hex": "#5dbe8a", + "name": "蔻梢绿", + "pinyin": "koushaolv" + }, + { + "CMYK": [81, 0, 62, 0], + "RGB": [85, 187, 138], + "hex": "#55bb8a", + "name": "麦苗绿", + "pinyin": "maimiaolv" + }, + { + "CMYK": [86, 0, 63, 0], + "RGB": [69, 183, 135], + "hex": "#45b787", + "name": "蛙绿", + "pinyin": "walv" + }, + { + "CMYK": [92, 0, 64, 0], + "RGB": [43, 174, 133], + "hex": "#2bae85", + "name": "铜绿", + "pinyin": "tonglv" + }, + { + "CMYK": [96, 0, 64, 0], + "RGB": [27, 167, 132], + "hex": "#1ba784", + "name": "竹绿", + "pinyin": "zhulv" + }, + { + "CMYK": [98, 2, 64, 0], + "RGB": [18, 161, 130], + "hex": "#12a182", + "name": "蓝绿", + "pinyin": "lanlv" + }, + { + "CMYK": [32, 7, 18, 0], + "RGB": [196, 215, 214], + "hex": "#c4d7d6", + "name": "穹灰", + "pinyin": "qionghui" + }, + { + "CMYK": [94, 11, 33, 1], + "RGB": [30, 158, 179], + "hex": "#1e9eb3", + "name": "翠蓝", + "pinyin": "cuilan" + }, + { + "CMYK": [96, 16, 31, 3], + "RGB": [15, 149, 176], + "hex": "#0f95b0", + "name": "胆矾蓝", + "pinyin": "danfanlan" + }, + { + "CMYK": [96, 18, 34, 4], + "RGB": [20, 145, 168], + "hex": "#1491a8", + "name": "樫鸟蓝", + "pinyin": "jianniaolan" + }, + { + "CMYK": [64, 18, 32, 2], + "RGB": [124, 171, 177], + "hex": "#7cabb1", + "name": "闪蓝", + "pinyin": "shanlan" + }, + { + "CMYK": [40, 24, 32, 6], + "RGB": [164, 172, 167], + "hex": "#a4aca7", + "name": "冰山蓝", + "pinyin": "bingshanlan" + }, + { + "CMYK": [56, 26, 36, 7], + "RGB": [134, 157, 157], + "hex": "#869d9d", + "name": "虾壳青", + "pinyin": "xiakeqing" + }, + { + "CMYK": [71, 28, 39, 10], + "RGB": [100, 142, 147], + "hex": "#648e93", + "name": "晚波蓝", + "pinyin": "wanbolan" + }, + { + "CMYK": [89, 27, 41, 13], + "RGB": [59, 129, 140], + "hex": "#3b818c", + "name": "蜻蜓蓝", + "pinyin": "qingtinglan" + }, + { + "CMYK": [99, 33, 38, 21], + "RGB": [18, 110, 130], + "hex": "#126e82", + "name": "玉鈫蓝", + "pinyin": "yuqinlan" + }, + { + "CMYK": [57, 37, 42, 21], + "RGB": [115, 124, 123], + "hex": "#737c7b", + "name": "垩灰", + "pinyin": "ehui" + }, + { + "CMYK": [65, 40, 44, 26], + "RGB": [97, 113, 114], + "hex": "#617172", + "name": "夏云灰", + "pinyin": "xiayunhui" + }, + { + "CMYK": [100, 52, 46, 43], + "RGB": [19, 72, 87], + "hex": "#134857", + "name": "苍蓝", + "pinyin": "canglan" + }, + { + "CMYK": [67, 53, 51, 50], + "RGB": [71, 75, 76], + "hex": "#474b4c", + "name": "黄昏灰", + "pinyin": "huanghunhui" + }, + { + "CMYK": [94, 58, 54, 60], + "RGB": [33, 55, 61], + "hex": "#21373d", + "name": "灰蓝", + "pinyin": "huilan" + }, + { + "CMYK": [100, 64, 56, 68], + "RGB": [19, 44, 51], + "hex": "#132c33", + "name": "深灰蓝", + "pinyin": "shenhuilan" + }, + { + "CMYK": [49, 5, 37, 0], + "RGB": [164, 202, 182], + "hex": "#a4cab6", + "name": "玉簪绿", + "pinyin": "yuzanlv" + }, + { + "CMYK": [96, 12, 66, 2], + "RGB": [44, 150, 120], + "hex": "#2c9678", + "name": "青矾绿", + "pinyin": "qingfanlv" + }, + { + "CMYK": [52, 11, 37, 0], + "RGB": [154, 190, 175], + "hex": "#9abeaf", + "name": "草原远绿", + "pinyin": "caoyuanyuanlv" + }, + { + "CMYK": [74, 14, 51, 1], + "RGB": [105, 167, 148], + "hex": "#69a794", + "name": "梧枝绿", + "pinyin": "wuzhilv" + }, + { + "CMYK": [55, 16, 40, 1], + "RGB": [146, 179, 165], + "hex": "#92b3a5", + "name": "浪花绿", + "pinyin": "langhualv" + }, + { + "CMYK": [99, 23, 70, 10], + "RGB": [36, 128, 103], + "hex": "#248067", + "name": "海王绿", + "pinyin": "haiwanglv" + }, + { + "CMYK": [88, 24, 61, 9], + "RGB": [66, 134, 117], + "hex": "#428675", + "name": "亚丁绿", + "pinyin": "yadinglv" + }, + { + "CMYK": [40, 27, 36, 8], + "RGB": [159, 163, 154], + "hex": "#9fa39a", + "name": "镍灰", + "pinyin": "niehui" + }, + { + "CMYK": [52, 28, 42, 10], + "RGB": [138, 152, 142], + "hex": "#8a988e", + "name": "明灰", + "pinyin": "minghui" + }, + { + "CMYK": [63, 31, 50, 14], + "RGB": [112, 136, 125], + "hex": "#70887d", + "name": "淡绿灰", + "pinyin": "danlvhui" + }, + { + "CMYK": [82, 32, 60, 20], + "RGB": [73, 117, 104], + "hex": "#497568", + "name": "飞泉绿", + "pinyin": "feiquanlv" + }, + { + "CMYK": [62, 43, 52, 34], + "RGB": [93, 101, 95], + "hex": "#5d655f", + "name": "狼烟灰", + "pinyin": "langyanhui" + }, + { + "CMYK": [85, 44, 64, 52], + "RGB": [49, 74, 67], + "hex": "#314a43", + "name": "绿灰", + "pinyin": "lvhui" + }, + { + "CMYK": [93, 46, 70, 61], + "RGB": [34, 62, 54], + "hex": "#223e36", + "name": "苍绿", + "pinyin": "canglv" + }, + { + "CMYK": [98, 46, 73, 63], + "RGB": [26, 59, 50], + "hex": "#1a3b32", + "name": "深海绿", + "pinyin": "shenhailv" + }, + { + "CMYK": [67, 60, 57, 68], + "RGB": [54, 52, 51], + "hex": "#363433", + "name": "长石灰", + "pinyin": "changshihui" + }, + { + "CMYK": [82, 60, 65, 80], + "RGB": [31, 38, 35], + "hex": "#1f2623", + "name": "苷蓝绿", + "pinyin": "ganlanlv" + }, + { + "CMYK": [90, 62, 67, 86], + "RGB": [20, 30, 27], + "hex": "#141e1b", + "name": "莽丛绿", + "pinyin": "mangconglv" + }, + { + "CMYK": [33, 1, 29, 0], + "RGB": [198, 223, 200], + "hex": "#c6dfc8", + "name": "淡翠绿", + "pinyin": "dancuilv" + }, + { + "CMYK": [53, 1, 44, 0], + "RGB": [158, 204, 171], + "hex": "#9eccab", + "name": "明绿", + "pinyin": "minglv" + }, + { + "CMYK": [75, 0, 59, 0], + "RGB": [104, 184, 142], + "hex": "#68b88e", + "name": "田园绿", + "pinyin": "tianyuanlv" + }, + { + "CMYK": [98, 0, 82, 0], + "RGB": [32, 161, 98], + "hex": "#20a162", + "name": "翠绿", + "pinyin": "cuilv" + }, + { + "CMYK": [78, 6, 62, 0], + "RGB": [97, 172, 133], + "hex": "#61ac85", + "name": "淡绿", + "pinyin": "danlv" + }, + { + "CMYK": [90, 7, 73, 0], + "RGB": [64, 160, 112], + "hex": "#40a070", + "name": "葱绿", + "pinyin": "conglv" + }, + { + "CMYK": [99, 10, 91, 2], + "RGB": [34, 148, 83], + "hex": "#229453", + "name": "孔雀绿", + "pinyin": "kongquelv" + }, + { + "CMYK": [27, 11, 27, 1], + "RGB": [202, 211, 195], + "hex": "#cad3c3", + "name": "艾绿", + "pinyin": "ailv" + }, + { + "CMYK": [92, 14, 76, 2], + "RGB": [60, 149, 102], + "hex": "#3c9566", + "name": "蟾绿", + "pinyin": "chanlv" + }, + { + "CMYK": [100, 17, 92, 5], + "RGB": [32, 137, 77], + "hex": "#20894d", + "name": "宫殿绿", + "pinyin": "gongdianlv" + }, + { + "CMYK": [61, 19, 52, 3], + "RGB": [131, 167, 141], + "hex": "#83a78d", + "name": "松霜绿", + "pinyin": "songshuanglv" + }, + { + "CMYK": [81, 19, 67, 4], + "RGB": [87, 149, 114], + "hex": "#579572", + "name": "蛋白石绿", + "pinyin": "danbaishilv" + }, + { + "CMYK": [100, 22, 90, 10], + "RGB": [32, 127, 76], + "hex": "#207f4c", + "name": "薄荷绿", + "pinyin": "bohelv" + }, + { + "CMYK": [66, 29, 58, 12], + "RGB": [110, 139, 116], + "hex": "#6e8b74", + "name": "瓦松绿", + "pinyin": "wasonglv" + }, + { + "CMYK": [100, 31, 91, 25], + "RGB": [26, 104, 64], + "hex": "#1a6840", + "name": "荷叶绿", + "pinyin": "heyelv" + }, + { + "CMYK": [62, 42, 56, 34], + "RGB": [94, 102, 91], + "hex": "#5e665b", + "name": "田螺绿", + "pinyin": "tianluolv" + }, + { + "CMYK": [74, 42, 65, 40], + "RGB": [72, 91, 77], + "hex": "#485b4d", + "name": "白屈菜绿", + "pinyin": "baiqucailv" + }, + { + "CMYK": [64, 57, 60, 67], + "RGB": [57, 55, 51], + "hex": "#393733", + "name": "河豚灰", + "pinyin": "hetunhui" + }, + { + "CMYK": [68, 56, 60, 66], + "RGB": [55, 56, 52], + "hex": "#373834", + "name": "蒽油绿", + "pinyin": "enyoulv" + }, + { + "CMYK": [76, 56, 75, 72], + "RGB": [43, 49, 44], + "hex": "#2b312c", + "name": "槲寄生绿", + "pinyin": "hujishenglv" + }, + { + "CMYK": [91, 60, 76, 83], + "RGB": [21, 35, 27], + "hex": "#15231b", + "name": "云杉绿", + "pinyin": "yunshanlv" + }, + { + "CMYK": [9, 1, 14, 0], + "RGB": [240, 245, 229], + "hex": "#f0f5e5", + "name": "嫩菊绿", + "pinyin": "nenjulv" + }, + { + "CMYK": [20, 1, 23, 0], + "RGB": [223, 236, 213], + "hex": "#dfecd5", + "name": "艾背绿", + "pinyin": "aibeilv" + }, + { + "CMYK": [47, 0, 49, 0], + "RGB": [173, 213, 162], + "hex": "#add5a2", + "name": "嘉陵水绿", + "pinyin": "jialingshuilv" + }, + { + "CMYK": [89, 0, 96, 0], + "RGB": [65, 179, 73], + "hex": "#41b349", + "name": "玉髓绿", + "pinyin": "yusuilv" + }, + { + "CMYK": [88, 0, 99, 0], + "RGB": [67, 178, 68], + "hex": "#43b244", + "name": "鲜绿", + "pinyin": "xianlv" + }, + { + "CMYK": [90, 0, 100, 0], + "RGB": [65, 174, 60], + "hex": "#41ae3c", + "name": "宝石绿", + "pinyin": "baoshilv" + }, + { + "CMYK": [18, 4, 33, 0], + "RGB": [226, 231, 191], + "hex": "#e2e7bf", + "name": "海沬绿", + "pinyin": "haimeilv" + }, + { + "CMYK": [28, 4, 44, 0], + "RGB": [208, 222, 170], + "hex": "#d0deaa", + "name": "姚黄", + "pinyin": "yaohuang" + }, + { + "CMYK": [44, 3, 61, 0], + "RGB": [178, 207, 135], + "hex": "#b2cf87", + "name": "橄榄石绿", + "pinyin": "ganlanshilv" + }, + { + "CMYK": [62, 0, 76, 0], + "RGB": [140, 194, 105], + "hex": "#8cc269", + "name": "水绿", + "pinyin": "shuilv" + }, + { + "CMYK": [42, 3, 67, 0], + "RGB": [183, 208, 122], + "hex": "#b7d07a", + "name": "芦苇绿", + "pinyin": "luweilv" + }, + { + "CMYK": [28, 6, 66, 0], + "RGB": [210, 217, 122], + "hex": "#d2d97a", + "name": "槐花黄绿", + "pinyin": "huaihuahuanglv" + }, + { + "CMYK": [41, 4, 76, 0], + "RGB": [186, 207, 101], + "hex": "#bacf65", + "name": "苹果绿", + "pinyin": "pingguolv" + }, + { + "CMYK": [58, 1, 88, 0], + "RGB": [150, 194, 78], + "hex": "#96c24e", + "name": "芽绿", + "pinyin": "yalv" + }, + { + "CMYK": [19, 9, 84, 1], + "RGB": [226, 216, 73], + "hex": "#e2d849", + "name": "蝶黄", + "pinyin": "diehuang" + }, + { + "CMYK": [38, 8, 94, 1], + "RGB": [190, 201, 54], + "hex": "#bec936", + "name": "橄榄黄绿", + "pinyin": "ganlanhuanglv" + }, + { + "CMYK": [81, 0, 100, 0], + "RGB": [91, 174, 35], + "hex": "#5bae23", + "name": "鹦鹉绿", + "pinyin": "yingwulv" + }, + { + "CMYK": [84, 64, 94, 45], + "RGB": [37, 61, 36], + "hex": "#253d24", + "name": "油绿", + "pinyin": "youlv" + }, + { + "CMYK": [0, 1, 4, 0], + "RGB": [255, 254, 248], + "hex": "#fffef8", + "name": "象牙白", + "pinyin": "xiangyabai" + }, + { + "CMYK": [3, 5, 8, 0], + "RGB": [248, 244, 237], + "hex": "#f8f4ed", + "name": "汉白玉", + "pinyin": "hanbaiyu" + }, + { + "CMYK": [0, 1, 3, 0], + "RGB": [255, 254, 249], + "hex": "#fffef9", + "name": "雪白", + "pinyin": "xuebai" + }, + { + "CMYK": [4, 4, 8, 0], + "RGB": [247, 244, 237], + "hex": "#f7f4ed", + "name": "鱼肚白", + "pinyin": "yudubai" + }, + { + "CMYK": [12, 12, 16, 0], + "RGB": [228, 223, 215], + "hex": "#e4dfd7", + "name": "珍珠灰", + "pinyin": "zhenzhuhui" + }, + { + "CMYK": [16, 15, 20, 1], + "RGB": [218, 212, 203], + "hex": "#dad4cb", + "name": "浅灰", + "pinyin": "qianhui" + }, + { + "CMYK": [28, 5, 30, 5], + "RGB": [187, 181, 172], + "hex": "#bbb5ac", + "name": "铅灰", + "pinyin": "qianhui" + }, + { + "CMYK": [28, 25, 30, 5], + "RGB": [187, 181, 172], + "hex": "#bbb5ac", + "name": "中灰", + "pinyin": "zhonghui" + }, + { + "CMYK": [42, 40, 43, 23], + "RGB": [134, 126, 118], + "hex": "#867e76", + "name": "瓦灰", + "pinyin": "wahui" + }, + { + "CMYK": [43, 40, 44, 42], + "RGB": [132, 124, 116], + "hex": "#847c74", + "name": "夜灰", + "pinyin": "yehui" + }, + { + "CMYK": [42, 42, 45, 27], + "RGB": [128, 118, 110], + "hex": "#80766e", + "name": "雁灰", + "pinyin": "yanhui" + }, + { + "CMYK": [42, 42, 46, 27], + "RGB": [129, 119, 110], + "hex": "#81776e", + "name": "深灰", + "pinyin": "shenhui" + } +] diff --git a/grailed-ui-go-view/src/settings/designColorRecommend.json b/grailed-ui-go-view/src/settings/designColorRecommend.json new file mode 100644 index 0000000..51ba973 --- /dev/null +++ b/grailed-ui-go-view/src/settings/designColorRecommend.json @@ -0,0 +1,30 @@ +[ + { + "CMYK": [62, 0, 21, 16], + "RGB": [81, 214, 169], + "hex": "#51d6a9", + "name": "碧空绿", + "pinyin": "bikonlv" + }, + { + "CMYK": [73, 17, 20, 1], + "RGB": [102, 169, 201], + "hex": "#66a9c9", + "name": "涧石蓝", + "pinyin": "jianshilan" + }, + { + "CMYK": [4, 13, 67, 0], + "RGB": [248, 223, 114], + "hex": "#f8df72", + "name": "茉莉黄", + "pinyin": "molihuang" + }, + { + "CMYK": [76, 51, 0, 0], + "RGB": [60, 126, 255], + "hex": "#3c7eff", + "name": "深海蓝", + "pinyin": "shenhailan" + } +] diff --git a/grailed-ui-go-view/src/settings/designSetting.ts b/grailed-ui-go-view/src/settings/designSetting.ts new file mode 100644 index 0000000..5f76b84 --- /dev/null +++ b/grailed-ui-go-view/src/settings/designSetting.ts @@ -0,0 +1,77 @@ +import { LangEnum, PreviewScaleEnum } from '@/enums/styleEnum' +import { RequestHttpIntervalEnum } from '@/enums/httpEnum' +import designColor from './designColor.json' + +// 默认语言 +export const lang = LangEnum.ZH + +// 水印文字 +export const watermarkText = "GoView 低代码平台" + +// 分组名称 +export const groupTitle = "分组" + +// 主题配置 +export const theme = { + // 默认是否开启深色主题 + darkTheme: true, + //默认主题色 + appTheme: '#51d6a9', + appThemeDetail: null, +} + +// 图表初始配置(px) +export const chartInitConfig = { + x: 50, + y: 50, + w: 500, + h: 300, + // 不建议动 offset + offsetX: 0, + offsetY: 0, +} + +// dialog 图标的大小 +export const dialogIconSize = '20' + +// 侧边栏宽度 +export const asideWidth = '270' + +// 侧边栏折叠后的宽度,支持全部折叠会覆盖为 0 +export const asideCollapsedWidth = 60 + +// 弹窗是否可以通过点击遮罩关闭 +export const maskClosable = false + +// 全局边框圆角 +export const borderRadius = '6px' + +// 轮播间隔 +export const carouselInterval = 4000 + +// 工作台大屏背景图片大小限制(5M) +export const backgroundImageSize = 5 + +// 预览展示方式 +export const previewScaleType = PreviewScaleEnum.FIT + +// 编辑工作台同步到 JSON 的轮询间隔(5S) +export const editToJsonInterval = 5000 + +// 数据请求间隔 +export const requestInterval = 30 + +// 工作台自动保存间隔(s) +export const saveInterval = 30 + +// 数据请求间隔单位 +export const requestIntervalUnit = RequestHttpIntervalEnum.SECOND + +// 工作区域历史记录存储最大数量 +export const editHistoryMax = 100 + +// 拖拽时蒙层的 z-index,需比所有图表高 +export const canvasModelIndex = 9999 + +// 框选时蒙层的 z-index,需比所有图表高 +export const selectBoxIndex = canvasModelIndex + 10 diff --git a/grailed-ui-go-view/src/settings/httpSetting.ts b/grailed-ui-go-view/src/settings/httpSetting.ts new file mode 100644 index 0000000..4143efd --- /dev/null +++ b/grailed-ui-go-view/src/settings/httpSetting.ts @@ -0,0 +1,2 @@ +// 请求前缀 +export const axiosPre = '/admin-api' diff --git a/grailed-ui-go-view/src/settings/pathConst.ts b/grailed-ui-go-view/src/settings/pathConst.ts new file mode 100644 index 0000000..4639316 --- /dev/null +++ b/grailed-ui-go-view/src/settings/pathConst.ts @@ -0,0 +1,10 @@ +// * 外部路径地址 + +// 项目文档地址 +export const docPath = "https://doc.iocoder.cn/report/" + +// 项目源码 +export const giteeSourceCodePath = "https://gitee.com/zhijiantianya/yudao-ui-go-view" + +// 赞助 +export const sponsorPath = "https://www.mtruning.club/sponsor/" diff --git a/grailed-ui-go-view/src/settings/systemSetting.ts b/grailed-ui-go-view/src/settings/systemSetting.ts new file mode 100644 index 0000000..84eb65d --- /dev/null +++ b/grailed-ui-go-view/src/settings/systemSetting.ts @@ -0,0 +1,19 @@ +import { SettingStoreEnums, ToolsStatusEnum } from '@/store/modules/settingStore/settingStore.d' + +// * 用户配置项 +export const systemSetting = { + // 侧边栏折叠是否隐藏全部 + [SettingStoreEnums.ASIDE_ALL_COLLAPSED]: true, + // 拖拽页面左侧表单分类只有一项的时候是否隐藏 + [SettingStoreEnums.HIDE_PACKAGE_ONE_CATEGORY]: true, + // 切换语言是否进行路由刷新 + [SettingStoreEnums.CHANGE_LANG_RELOAD]: false, + // 图表移动时按方向键移动的距离 + [SettingStoreEnums.CHART_MOVE_DISTANCE]: 5, + // 图表拖拽时的吸附距离(px) + [SettingStoreEnums.CHART_ALIGN_RANGE]: 10, + // 图表工具栏状态(侧边工具状态) + [SettingStoreEnums.CHART_TOOLS_STATUS]: ToolsStatusEnum.ASIDE, + // 图表工具栏状态隐藏(刚开始不隐藏) + [SettingStoreEnums.CHART_TOOLS_STATUS_HIDE]: false, +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/store/index.ts b/grailed-ui-go-view/src/store/index.ts new file mode 100644 index 0000000..4e303ea --- /dev/null +++ b/grailed-ui-go-view/src/store/index.ts @@ -0,0 +1,10 @@ +import type { App } from 'vue'; +import { createPinia } from 'pinia'; + +const pinia = createPinia(); + +export function setupStore(app: App) { + app.use(pinia); +} + +export { pinia }; diff --git a/grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.d.ts b/grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.d.ts new file mode 100644 index 0000000..2050d59 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.d.ts @@ -0,0 +1,248 @@ +import { CreateComponentType, CreateComponentGroupType, FilterEnum } from '@/packages/index.d' +import { HistoryActionTypeEnum } from '@/store/modules/chartHistoryStore/chartHistoryStore.d' +import { SyncEnum } from '@/enums/editPageEnum' +import { + RequestHttpEnum, + RequestContentTypeEnum, + RequestDataTypeEnum, + RequestHttpIntervalEnum, + RequestParams, + RequestBodyEnum, + RequestParamsObjType +} from '@/enums/httpEnum' +import { PreviewScaleEnum } from '@/enums/styleEnum' +import type { ChartColorsNameType, GlobalThemeJsonType } from '@/settings/chartThemes/index' + +// 项目数据枚举 +export enum ProjectInfoEnum { + // ID + PROJECT_ID = "projectId", + // 名称 + PROJECT_NAME = 'projectName', + // 描述 + REMARKS = 'remarks', + // 缩略图 + THUMBNAIL= 'thumbnail', + // 是否公开发布 + RELEASE = 'release' +} + +// 项目数据 +export type ProjectInfoType = { + [ProjectInfoEnum.PROJECT_ID]: string, + [ProjectInfoEnum.PROJECT_NAME]: string, + [ProjectInfoEnum.REMARKS]: string, + [ProjectInfoEnum.THUMBNAIL]: string, + [ProjectInfoEnum.RELEASE]: boolean +} + +// 编辑画布属性 +export enum EditCanvasTypeEnum { + EDIT_LAYOUT_DOM = 'editLayoutDom', + EDIT_CONTENT_DOM = 'editContentDom', + OFFSET = 'offset', + SCALE = 'scale', + USER_SCALE = 'userScale', + LOCK_SCALE = 'lockScale', + SAVE_STATUS = 'saveStatus', + IS_CREATE = 'isCreate', + IS_DRAG = 'isDrag', + IS_SELECT = 'isSelect' +} + +// 编辑区域(临时) +export type EditCanvasType = { + // 编辑区域 DOM + [EditCanvasTypeEnum.EDIT_LAYOUT_DOM]: HTMLElement | null + [EditCanvasTypeEnum.EDIT_CONTENT_DOM]: HTMLElement | null + // 偏移大小 + [EditCanvasTypeEnum.OFFSET]: number + // 缩放 + [EditCanvasTypeEnum.SCALE]: number + // 缩放 + [EditCanvasTypeEnum.USER_SCALE]: number + // 锁定缩放 + [EditCanvasTypeEnum.LOCK_SCALE]: boolean + // 初始化创建 + [EditCanvasTypeEnum.IS_CREATE]: boolean + // 拖拽中 + [EditCanvasTypeEnum.IS_DRAG]: boolean + // 保存状态 + [EditCanvasTypeEnum.SAVE_STATUS]: SyncEnum + // 框选中 + [EditCanvasTypeEnum.IS_SELECT]: boolean +} + +// 画布数据/滤镜/背景色/宽高主题等 +export enum EditCanvasConfigEnum { + PROJECT_NAME = 'projectName', + WIDTH = 'width', + HEIGHT = 'height', + CHART_THEME_COLOR = 'chartThemeColor', + CHART_THEME_SETTING = 'chartThemeSetting', + BACKGROUND = 'background', + BACKGROUND_IMAGE = 'backgroundImage', + SELECT_COLOR = 'selectColor', + PREVIEW_SCALE_TYPE = 'previewScaleType' +} + +// 画布属性(需保存) +export type EditCanvasConfigType = { + // ID + [EditCanvasConfigEnum.PROJECT_ID]: string, + // 项目名称 + [EditCanvasConfigEnum.PROJECT_NAME]?: string, + // 项目描述 + [EditCanvasConfigEnum.REMARKS]: string, + // 滤镜-启用 + [FilterEnum.FILTERS_SHOW]: boolean + // 滤镜-色相 + [FilterEnum.HUE_ROTATE]: number + // 滤镜-饱和度 + [FilterEnum.SATURATE]: number + // 滤镜-亮度 + [FilterEnum.BRIGHTNESS]: number + // 滤镜-对比度 + [FilterEnum.CONTRAST]: number + // 滤镜-不透明度 + [FilterEnum.OPACITY]: number + // 变换(暂不使用) + [FilterEnum.ROTATE_Z]: number + [FilterEnum.ROTATE_X]: number + [FilterEnum.ROTATE_Y]: number + [FilterEnum.SKEW_X]: number + [FilterEnum.SKEW_Y]: number + [FilterEnum.BLEND_MODE]: string + // 大屏名称 + [EditCanvasConfigEnum.PROJECT_NAME]?: string + // 大屏宽度 + [EditCanvasConfigEnum.WIDTH]: number + // 大屏高度 + [EditCanvasConfigEnum.HEIGHT]: number + // 背景色 + [EditCanvasConfigEnum.BACKGROUND]?: string + [EditCanvasConfigEnum.BACKGROUND_IMAGE]?: string | null + // 图表主题颜色 + [EditCanvasConfigEnum.CHART_THEME_COLOR]: ChartColorsNameType + // 图表全局配置 + [EditCanvasConfigEnum.CHART_THEME_SETTING]: GlobalThemeJsonType + // 图表主题颜色 + [EditCanvasConfigEnum.SELECT_COLOR]: boolean + // 预览展示方式 + [EditCanvasConfigEnum.PREVIEW_SCALE_TYPE]: PreviewScaleEnum +} + +// 坐标轴信息 +// eslint-disable-next-line no-redeclare +export enum EditCanvasTypeEnum { + START_X = 'startX', + START_Y = 'startY', + X = 'x', + Y = 'y' +} + +// 鼠标位置 +export type MousePositionType = { + // 开始 X + [EditCanvasTypeEnum.START_X]: number + // 开始 Y + [EditCanvasTypeEnum.START_Y]: number + // X + [EditCanvasTypeEnum.X]: number + // y + [EditCanvasTypeEnum.Y]: number +} + +// 操作目标 +export type TargetChartType = { + hoverId?: string + selectId: string[] +} + +// 数据记录 +export type RecordChartType = { + charts: CreateComponentType | CreateComponentGroupType | Array + type: HistoryActionTypeEnum.CUT | HistoryActionTypeEnum.COPY +} + +// Store 枚举 +export enum ChartEditStoreEnum { + PROJECT_INFO = 'projectInfo', + EDIT_RANGE = 'editRange', + EDIT_CANVAS = 'editCanvas', + RIGHT_MENU_SHOW = 'rightMenuShow', + MOUSE_POSITION = 'mousePosition', + TARGET_CHART = 'targetChart', + RECORD_CHART = 'recordChart', + // 以下需要存储 + EDIT_CANVAS_CONFIG = 'editCanvasConfig', + REQUEST_GLOBAL_CONFIG = 'requestGlobalConfig', + COMPONENT_LIST = 'componentList' +} + +// 请求公共类型 +type RequestPublicConfigType = { + // 时间单位(时分秒) + requestIntervalUnit: RequestHttpIntervalEnum + // 请求内容 + requestParams: RequestParams +} + +// 数据池项类型 +export type RequestDataPondItemType = { + dataPondId: string, + dataPondName: string, + dataPondRequestConfig: RequestConfigType +} + +// 全局的图表请求配置 +export interface RequestGlobalConfigType extends RequestPublicConfigType { + // 组件定制轮询时间 + requestInterval: number + // 请求源地址 + requestOriginUrl?: string + // 公共数据池 + requestDataPond: RequestDataPondItemType[] +} + +// 单个图表请求配置 +export interface RequestConfigType extends RequestPublicConfigType { + // 所选全局数据池的对应 id + requestDataPondId?: string + // 组件定制轮询时间 + requestInterval?: number + // 获取数据的方式 + requestDataType: RequestDataTypeEnum + // 请求方式 get/post/del/put/patch + requestHttpType: RequestHttpEnum + // 源后续的 url + requestUrl?: string + // 请求内容主体方式 普通/sql + requestContentType: RequestContentTypeEnum + // 请求体类型 + requestParamsBodyType: RequestBodyEnum + // SQL 请求对象 + requestSQLContent: { + sql: string + } +} + +// Store 类型 +export interface ChartEditStoreType { + [ChartEditStoreEnum.PROJECT_INFO]: ProjectInfoType + [ChartEditStoreEnum.EDIT_CANVAS]: EditCanvasType + [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType + [ChartEditStoreEnum.RIGHT_MENU_SHOW]: boolean + [ChartEditStoreEnum.MOUSE_POSITION]: MousePositionType + [ChartEditStoreEnum.TARGET_CHART]: TargetChartType + [ChartEditStoreEnum.RECORD_CHART]?: RecordChartType + [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType + [ChartEditStoreEnum.COMPONENT_LIST]: Array +} + +// 存储数据类型 +export interface ChartEditStorage { + [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType + [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType + [ChartEditStoreEnum.COMPONENT_LIST]: Array +} diff --git a/grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.ts b/grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.ts new file mode 100644 index 0000000..2101525 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/chartEditStore/chartEditStore.ts @@ -0,0 +1,988 @@ +import { toRaw } from 'vue' +import { defineStore } from 'pinia' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { PublicGroupConfigClass } from '@/packages/public/publicConfig' +import debounce from 'lodash/debounce' +import cloneDeep from 'lodash/cloneDeep' +import { defaultTheme, globalThemeJson } from '@/settings/chartThemes/index' +import { requestInterval, previewScaleType, requestIntervalUnit } from '@/settings/designSetting' +// 记录记录 +import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore' +// 全局设置 +import { useSettingStore } from '@/store/modules/settingStore/settingStore' +// 历史类型 +import { HistoryActionTypeEnum, HistoryItemType, HistoryTargetTypeEnum } from '@/store/modules/chartHistoryStore/chartHistoryStore.d' +// 画布枚举 +import { MenuEnum, SyncEnum } from '@/enums/editPageEnum' + +import { + getUUID, + loadingStart, + loadingFinish, + loadingError, + isString, + isArray +} from '@/utils' + +import { + ProjectInfoType, + ChartEditStoreEnum, + ChartEditStorage, + ChartEditStoreType, + EditCanvasType, + MousePositionType, + TargetChartType, + RecordChartType, + RequestGlobalConfigType, + EditCanvasConfigType +} from './chartEditStore.d' + +const chartHistoryStore = useChartHistoryStore() +const settingStore = useSettingStore() + +// 编辑区域内容 +export const useChartEditStore = defineStore({ + id: 'useChartEditStore', + state: (): ChartEditStoreType => ({ + // 项目数据 + projectInfo: { + projectId: '', + projectName: '', + remarks: '', + thumbnail: '', + release: false + }, + // 画布属性 + editCanvas: { + // 编辑区域 Dom + editLayoutDom: null, + editContentDom: null, + // 偏移量 + offset: 20, + // 系统控制缩放 + scale: 1, + // 用户控制的缩放 + userScale: 1, + // 锁定缩放 + lockScale: false, + // 初始化 + isCreate: false, + // 拖拽中 + isDrag: false, + // 框选中 + isSelect: false, + // 同步中 + saveStatus: SyncEnum.PENDING + }, + // 右键菜单 + rightMenuShow: false, + // 鼠标定位 + mousePosition: { + startX: 0, + startY: 0, + x: 0, + y: 0 + }, + // 目标图表 + targetChart: { + hoverId: undefined, + selectId: [] + }, + // 记录临时数据(复制等) + recordChart: undefined, + // ----------------------- + // 画布属性(需存储给后端) + editCanvasConfig: { + // 项目名称 + projectName: undefined, + // 默认宽度 + width: 1920, + // 默认高度 + height: 1080, + // 启用滤镜 + filterShow: false, + // 色相 + hueRotate: 0, + // 饱和度 + saturate: 1, + // 对比度 + contrast: 1, + // 亮度 + brightness: 1, + // 透明度 + opacity: 1, + // 变换(暂不更改) + rotateZ: 0, + rotateX: 0, + rotateY: 0, + skewX: 0, + skewY: 0, + // 混合模式 + blendMode: 'normal', + // 默认背景色 + background: undefined, + backgroundImage: undefined, + // 是否使用纯颜色 + selectColor: true, + // chart 主题色 + chartThemeColor: defaultTheme || 'dark', + // 全局配置 + chartThemeSetting: globalThemeJson, + // 适配方式 + previewScaleType: previewScaleType + }, + // 数据请求处理(需存储给后端) + requestGlobalConfig: { + requestDataPond: [], + requestOriginUrl: '', + requestInterval: requestInterval, + requestIntervalUnit: requestIntervalUnit, + requestParams: { + Body: { + 'form-data': {}, + 'x-www-form-urlencoded': {}, + json: '', + xml: '' + }, + Header: {}, + Params: {} + } + }, + // 图表数组(需存储给后端) + componentList: [] + }), + getters: { + getProjectInfo(): ProjectInfoType { + return this.projectInfo + }, + getMousePosition(): MousePositionType { + return this.mousePosition + }, + getRightMenuShow(): boolean { + return this.rightMenuShow + }, + getEditCanvas(): EditCanvasType { + return this.editCanvas + }, + getEditCanvasConfig(): EditCanvasConfigType { + return this.editCanvasConfig + }, + getTargetChart(): TargetChartType { + return this.targetChart + }, + getRecordChart(): RecordChartType | undefined { + return this.recordChart + }, + getRequestGlobalConfig(): RequestGlobalConfigType { + return this.requestGlobalConfig + }, + getComponentList(): Array { + return this.componentList + }, + // 获取需要存储的数据项 + getStorageInfo(): ChartEditStorage { + return { + [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: this.getEditCanvasConfig, + [ChartEditStoreEnum.COMPONENT_LIST]: this.getComponentList, + [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: this.getRequestGlobalConfig + } + } + }, + actions: { + // * 设置 peojectInfo 数据项 + setProjectInfo(key: T, value: K) { + this.projectInfo[key] = value + }, + // * 设置 editCanvas 数据项 + setEditCanvas(key: T, value: K) { + this.editCanvas[key] = value + }, + // * 设置 editCanvasConfig(需保存后端) 数据项 + setEditCanvasConfig(key: T, value: K) { + this.editCanvasConfig[key] = value + }, + // * 设置右键菜单 + setRightMenuShow(value: boolean) { + this.rightMenuShow = value + }, + // * 设置目标数据 hover + setTargetHoverChart(hoverId?: TargetChartType['hoverId']) { + this.targetChart.hoverId = hoverId + }, + // * 设置目标数据 select + setTargetSelectChart(selectId?: string | string[], push: boolean = false) { + // 重复选中 + if (this.targetChart.selectId.find((e: string) => e === selectId)) return + + // 无 id 清空 + if (!selectId) { + this.targetChart.selectId = [] + return + } + // 多选 + if (push) { + // 字符串 + if (isString(selectId)) { + this.targetChart.selectId.push(selectId) + return + } + // 数组 + if (isArray(selectId)) { + this.targetChart.selectId.push(...selectId) + return + } + } else { + // 字符串 + if (isString(selectId)) { + this.targetChart.selectId = [selectId] + return + } + // 数组 + if (isArray(selectId)) { + this.targetChart.selectId = selectId + return + } + } + }, + // * 设置记录数据 + setRecordChart(item: RecordChartType | undefined) { + this.recordChart = cloneDeep(item) + }, + // * 设置鼠标位置 + setMousePosition(x?: number, y?: number, startX?: number, startY?: number): void { + if (x) this.mousePosition.x = x + if (y) this.mousePosition.y = y + if (startX) this.mousePosition.startX = startX + if (startY) this.mousePosition.startY = startY + }, + // * 找到目标 id 数据的下标位置,id可为父级或子集数组(无则返回-1) + fetchTargetIndex(id?: string): number { + const targetId = id || (this.getTargetChart.selectId.length && this.getTargetChart.selectId[0]) || undefined + if (!targetId) { + loadingFinish() + return -1 + } + const targetIndex = this.componentList.findIndex(e => e.id === targetId) + + // 当前 + if (targetIndex !== -1) { + return targetIndex + } else { + const length = this.getComponentList.length + for (let i = 0; i < length; i++) { + if (this.getComponentList[i].isGroup) { + for (const cItem of (this.getComponentList[i] as CreateComponentGroupType).groupList) { + if (cItem.id === targetId) { + return i + } + } + } + } + } + return -1 + }, + // * 统一格式化处理入参 id + idPreFormat(id?: string | string[]) { + const idArr = [] + if (!id) { + idArr.push(...this.getTargetChart.selectId) + return idArr + } + if (isString(id)) idArr.push(id) + if (isArray(id)) idArr.push(...id) + return idArr + }, + /** + * * 新增组件列表 + * @param componentInstance 新图表实例 + * @param isHead 是否头部插入 + * @param isHistory 是否进行记录 + * @returns + */ + addComponentList( + componentInstance: + | CreateComponentType + | CreateComponentGroupType + | Array, + isHead = false, + isHistory = false + ): void { + if (componentInstance instanceof Array) { + componentInstance.forEach(item => { + this.addComponentList(item, isHead, isHistory) + }) + return + } + if (isHistory) { + chartHistoryStore.createAddHistory([componentInstance]) + } + if (isHead) { + this.componentList.unshift(componentInstance) + return + } + this.componentList.push(componentInstance) + }, + // * 删除组件 + removeComponentList(id?: string | string[], isHistory = true): void { + try { + const idArr = this.idPreFormat(id) + const history: Array = [] + // 遍历所有对象 + if (!idArr.length) return + + loadingStart() + idArr.forEach(ids => { + const index = this.fetchTargetIndex(ids) + if (index !== -1) { + history.push(this.getComponentList[index]) + this.componentList.splice(index, 1) + } + }) + isHistory && chartHistoryStore.createDeleteHistory(history) + loadingFinish() + return + } catch (value) { + loadingError() + } + }, + // * 重置组件位置 + resetComponentPosition(item: CreateComponentType | CreateComponentGroupType, isForward: boolean): void { + const index = this.fetchTargetIndex(item.id) + if (index > -1) { + const componentInstance = this.getComponentList[index] + if (isForward) { + componentInstance.attr = Object.assign(componentInstance.attr, { + x: item.attr.x + item.attr.offsetX, + y: item.attr.y + item.attr.offsetY + }) + } else { + componentInstance.attr = Object.assign(componentInstance.attr, { + x: item.attr.x, + y: item.attr.y + }) + } + } + }, + // * 移动组件 + moveComponentList(item: Array) { + chartHistoryStore.createMoveHistory(item) + }, + // * 更新组件列表某一项的值 + updateComponentList(index: number, newData: CreateComponentType | CreateComponentGroupType) { + if (index < 1 && index > this.getComponentList.length) return + this.componentList[index] = newData + }, + // * 设置页面样式属性 + setPageStyle(key: T, value: any): void { + const dom = this.getEditCanvas.editContentDom + if (dom) { + dom.style[key] = value + } + }, + // * 移动组件列表层级位置到两端 + setBothEnds(isEnd = false, isHistory = true): void { + try { + // 暂不支持多选 + if (this.getTargetChart.selectId.length > 1) return + + loadingStart() + const length = this.getComponentList.length + if (length < 2) { + loadingFinish() + return + } + + const index = this.fetchTargetIndex() + const targetData = this.getComponentList[index] + if (index !== -1) { + // 置底排除最底层, 置顶排除最顶层 + if ((isEnd && index === 0) || (!isEnd && index === length - 1)) { + loadingFinish() + return + } + + // 记录原有位置 + const setIndex = (componentInstance: CreateComponentType | CreateComponentGroupType, i: number) => { + const temp = cloneDeep(componentInstance) + temp.attr.zIndex = i + return temp + } + + // 历史记录 + if (isHistory) { + chartHistoryStore.createLayerHistory( + [setIndex(targetData, index)], + isEnd ? HistoryActionTypeEnum.BOTTOM : HistoryActionTypeEnum.TOP + ) + } + + // 插入两端 + this.addComponentList(targetData, isEnd) + this.getComponentList.splice(isEnd ? index + 1 : index, 1) + loadingFinish() + return + } + } catch (value) { + loadingError() + } + }, + // * 置顶 + setTop(isHistory = true): void { + this.setBothEnds(false, isHistory) + }, + // * 置底 + setBottom(isHistory = true): void { + this.setBothEnds(true, isHistory) + }, + // * 上移/下移互换图表位置 + wrap(isDown = false, isHistory = true) { + try { + // 暂不支持多选 + if (this.getTargetChart.selectId.length > 1) return + + loadingStart() + const length = this.getComponentList.length + if (length < 2) { + loadingFinish() + return + } + + const index: number = this.fetchTargetIndex() + if (index !== -1) { + // 下移排除最底层, 上移排除最顶层 + if ((isDown && index === 0) || (!isDown && index === length - 1)) { + loadingFinish() + return + } + // 互换位置 + const swapIndex = isDown ? index - 1 : index + 1 + const targetItem = this.getComponentList[index] + const swapItem = this.getComponentList[swapIndex] + + // 历史记录 + if (isHistory) { + chartHistoryStore.createLayerHistory( + [targetItem], + isDown ? HistoryActionTypeEnum.DOWN : HistoryActionTypeEnum.UP + ) + } + this.updateComponentList(index, swapItem) + this.updateComponentList(swapIndex, targetItem) + loadingFinish() + return + } + } catch (value) { + loadingError() + } + }, + // * 图层上移 + setUp(isHistory = true) { + this.wrap(false, isHistory) + }, + // * 图层下移 + setDown(isHistory = true) { + this.wrap(true, isHistory) + }, + // * 复制 + setCopy(isCut = false) { + try { + // 暂不支持多选 + if (this.getTargetChart.selectId.length > 1) return + // 处理弹窗普通复制的场景 + if (document.getElementsByClassName('n-modal-body-wrapper').length) return + + loadingStart() + const index: number = this.fetchTargetIndex() + if (index !== -1) { + const copyData: RecordChartType = { + charts: this.getComponentList[index], + type: isCut ? HistoryActionTypeEnum.CUT : HistoryActionTypeEnum.COPY + } + this.setRecordChart(copyData) + window['$message'].success(isCut ? '剪切图表成功' : '复制图表成功!') + loadingFinish() + } + } catch (value) { + loadingError() + } + }, + // * 剪切 + setCut() { + this.setCopy(true) + }, + // * 粘贴 + setParse() { + try { + loadingStart() + const recordCharts = this.getRecordChart + if (recordCharts === undefined) { + loadingFinish() + return + } + const parseHandle = (e: CreateComponentType | CreateComponentGroupType) => { + e = cloneDeep(e) + e.attr.x = this.getMousePosition.x + 30 + e.attr.y = this.getMousePosition.y + 30 + // 外层生成新 id + e.id = getUUID() + // 分组列表生成新 id + if (e.isGroup) { + (e as CreateComponentGroupType).groupList.forEach((item: CreateComponentType) => { + item.id = getUUID() + }) + } + + return e + } + const isCut = recordCharts.type === HistoryActionTypeEnum.CUT + const targetList = Array.isArray(recordCharts.charts) ? recordCharts.charts : [ recordCharts.charts ] + // 多项 + targetList.forEach((e: CreateComponentType | CreateComponentGroupType) => { + this.addComponentList(parseHandle(e), undefined, true) + // 剪切需删除原数据 + if (isCut) { + this.setTargetSelectChart(e.id) + this.removeComponentList(undefined, true) + } + }) + if (isCut) this.setRecordChart(undefined) + loadingFinish() + } catch (value) { + loadingError() + } + }, + // * 撤回/前进 目标处理 + setBackAndSetForwardHandle(HistoryItem: HistoryItemType, isForward = false) { + // 处理画布 + if (HistoryItem.targetType === HistoryTargetTypeEnum.CANVAS) { + this.editCanvas = HistoryItem.historyData[0] as EditCanvasType + return + } + + // 取消选中 + this.setTargetSelectChart() + + // 重新选中 + let historyData = HistoryItem.historyData as Array + if (isArray(historyData)) { + // 选中目标元素,支持多个 + historyData.forEach((item: CreateComponentType | CreateComponentGroupType) => { + this.setTargetSelectChart(item.id, true) + }) + } + + // 处理新增类型 + const isAdd = HistoryItem.actionType === HistoryActionTypeEnum.ADD + const isDel = HistoryItem.actionType === HistoryActionTypeEnum.DELETE + if (isAdd || isDel) { + if ((isAdd && isForward) || (isDel && !isForward)) { + historyData.forEach(item => { + this.addComponentList(item) + }) + return + } + historyData.forEach(item => { + this.removeComponentList(item.id, false) + }) + return + } + + // 处理移动 + const isMove = HistoryItem.actionType === HistoryActionTypeEnum.MOVE + if (isMove) { + historyData.forEach(item => { + this.resetComponentPosition(item, isForward) + }) + return + } + + // 处理层级 + const isTop = HistoryItem.actionType === HistoryActionTypeEnum.TOP + const isBottom = HistoryItem.actionType === HistoryActionTypeEnum.BOTTOM + if (isTop || isBottom) { + if (!isForward) { + // 插入到原有位置 + if (isTop) this.getComponentList.pop() + if (isBottom) this.getComponentList.shift() + this.getComponentList.splice(historyData[0].attr.zIndex, 0, historyData[0]) + return + } + if (isTop) this.setTop(false) + if (isBottom) this.setBottom(false) + } + + const isUp = HistoryItem.actionType === HistoryActionTypeEnum.UP + const isDown = HistoryItem.actionType === HistoryActionTypeEnum.DOWN + if (isUp || isDown) { + if ((isUp && isForward) || (isDown && !isForward)) { + this.setUp(false) + return + } + this.setDown(false) + return + } + + // 处理分组 + const isGroup = HistoryItem.actionType === HistoryActionTypeEnum.GROUP + const isUnGroup = HistoryItem.actionType === HistoryActionTypeEnum.UN_GROUP + if (isGroup || isUnGroup) { + if ((isGroup && isForward) || (isUnGroup && !isForward)) { + const ids: string[] = [] + if (historyData.length > 1) { + historyData.forEach(item => { + ids.push(item.id) + }) + } else { + const group = historyData[0] as CreateComponentGroupType + group.groupList.forEach(item => { + ids.push(item.id) + }) + } + this.setGroup(ids, false) + return + } + // 都需使用子组件的id去解组 + if (historyData.length > 1) { + this.setUnGroup([(historyData[0] as CreateComponentType).id], undefined, false) + } else { + this.setUnGroup([(historyData[0] as CreateComponentGroupType).groupList[0].id], undefined, false) + } + return + } + + // 处理锁定 + const isLock = HistoryItem.actionType === HistoryActionTypeEnum.LOCK + const isUnLock = HistoryItem.actionType === HistoryActionTypeEnum.UNLOCK + if (isLock || isUnLock) { + if ((isLock && isForward) || (isUnLock && !isForward)) { + historyData.forEach(item => { + this.setLock(!item.status.lock, false) + }) + return + } + historyData.forEach(item => { + this.setUnLock(false) + }) + return + } + + // 处理隐藏 + const isHide = HistoryItem.actionType === HistoryActionTypeEnum.HIDE + const isShow = HistoryItem.actionType === HistoryActionTypeEnum.SHOW + if (isHide || isShow) { + if ((isHide && isForward) || (isShow && !isForward)) { + historyData.forEach(item => { + this.setHide(!item.status.hide, false) + }) + return + } + historyData.forEach(item => { + this.setShow(false) + }) + return + } + }, + // * 撤回 + setBack() { + try { + loadingStart() + const targetData = chartHistoryStore.backAction() + if (!targetData) { + loadingFinish() + return + } + this.setBackAndSetForwardHandle(targetData) + loadingFinish() + } catch (value) { + loadingError() + } + }, + // * 前进 + setForward() { + try { + loadingStart() + const targetData = chartHistoryStore.forwardAction() + if (!targetData) { + loadingFinish() + return + } + this.setBackAndSetForwardHandle(targetData, true) + loadingFinish() + } catch (value) { + loadingError() + } + }, + // * 移动位置 + setMove(keyboardValue: MenuEnum) { + const index = this.fetchTargetIndex() + if (index === -1) return + const attr = this.getComponentList[index].attr + const distance = settingStore.getChartMoveDistance + switch (keyboardValue) { + case MenuEnum.ARROW_UP: + attr.y -= distance + break + case MenuEnum.ARROW_RIGHT: + attr.x += distance + break + case MenuEnum.ARROW_DOWN: + attr.y += distance + break + case MenuEnum.ARROW_LEFT: + attr.x -= distance + break + } + }, + // * 创建分组 + setGroup(id?: string | string[], isHistory = true) { + try { + const selectIds = this.idPreFormat(id) || this.getTargetChart.selectId + if (selectIds.length < 2) return + + loadingStart() + const groupClass = new PublicGroupConfigClass() + // 记录整体坐标 + const groupAttr = { + l: this.getEditCanvasConfig.width, + t: this.getEditCanvasConfig.height, + r: 0, + b: 0 + } + const targetList: CreateComponentType[] = [] + const historyList: CreateComponentType[] = [] + + // 若目标中有数组则先解组 + const newSelectIds: string[] = [] + selectIds.forEach((id: string) => { + const targetIndex = this.fetchTargetIndex(id) + if (targetIndex !== -1 && this.getComponentList[targetIndex].isGroup) { + this.setUnGroup( + [id], + (e: CreateComponentType[]) => { + e.forEach(e => { + this.addComponentList(e) + newSelectIds.push(e.id) + }) + }, + false + ) + } else if (targetIndex !== -1) { + newSelectIds.push(id) + } + }) + newSelectIds.forEach((id: string) => { + // 获取目标数据并从 list 中移除 (成组后不可再次成组, 断言处理) + const item = this.componentList.splice(this.fetchTargetIndex(id), 1)[0] as CreateComponentType + const { x, y, w, h } = item.attr + const { l, t, r, b } = groupAttr + // 左 + groupAttr.l = l > x ? x : l + // 上 + groupAttr.t = t > y ? y : t + // 宽 + groupAttr.r = r < x + w ? x + w : r + // 高 + groupAttr.b = b < y + h ? y + h : b + + targetList.push(item) + historyList.push(toRaw(item)) + }) + + // 修改原数据之前,先记录 + if (isHistory) chartHistoryStore.createGroupHistory(historyList) + + // 设置子组件的位置 + targetList.forEach((item: CreateComponentType) => { + item.attr.x = item.attr.x - groupAttr.l + item.attr.y = item.attr.y - groupAttr.t + groupClass.groupList.push(item) + }) + + // 设置 group 属性 + groupClass.attr.x = groupAttr.l + groupClass.attr.y = groupAttr.t + groupClass.attr.w = groupAttr.r - groupAttr.l + groupClass.attr.h = groupAttr.b - groupAttr.t + + this.addComponentList(groupClass) + this.setTargetSelectChart(groupClass.id) + + loadingFinish() + } catch (error) { + console.log(error) + window['$message'].error('创建分组失败,请联系管理员!') + loadingFinish() + } + }, + // * 解除分组 + setUnGroup(ids?: string[], callBack?: (e: CreateComponentType[]) => void, isHistory = true) { + try { + const selectGroupIdArr = ids || this.getTargetChart.selectId + if (selectGroupIdArr.length !== 1) return + loadingStart() + + // 解组 + const unGroup = (targetIndex: number) => { + const targetGroup = this.getComponentList[targetIndex] as CreateComponentGroupType + if (!targetGroup.isGroup) return + + // 记录数据 + if (isHistory) chartHistoryStore.createUnGroupHistory(cloneDeep([targetGroup])) + + // 分离组件并还原位置属性 + targetGroup.groupList.forEach(item => { + item.attr.x = item.attr.x + targetGroup.attr.x + item.attr.y = item.attr.y + targetGroup.attr.y + if (!callBack) { + this.addComponentList(item) + } + }) + this.setTargetSelectChart(targetGroup.id) + // 删除分组 + this.removeComponentList(targetGroup.id, false) + + if (callBack) { + callBack(targetGroup.groupList) + } + } + + const targetIndex = this.fetchTargetIndex(selectGroupIdArr[0]) + // 判断目标是否为分组父级 + if (targetIndex !== -1) { + unGroup(targetIndex) + } + + loadingFinish() + } catch (error) { + console.log(error) + window['$message'].error('解除分组失败,请联系管理员!') + loadingFinish() + } + }, + // * 锁定 + setLock(status: boolean = true, isHistory: boolean = true) { + try { + // 暂不支持多选 + if (this.getTargetChart.selectId.length > 1) return + + loadingStart() + const index: number = this.fetchTargetIndex() + if (index !== -1) { + // 更新状态 + const targetItem = this.getComponentList[index] + targetItem.status.lock = status + + // 历史记录 + if (isHistory) { + status + ? chartHistoryStore.createLockHistory([targetItem]) + : chartHistoryStore.createUnLockHistory([targetItem]) + } + this.updateComponentList(index, targetItem) + // 锁定添加失焦效果 + if (status) this.setTargetSelectChart(undefined) + loadingFinish() + return + } + } catch (value) { + loadingError() + } + }, + // * 解除锁定 + setUnLock(isHistory: boolean = true) { + this.setLock(false, isHistory) + }, + // * 隐藏 + setHide(status: boolean = true, isHistory: boolean = true) { + try { + // 暂不支持多选 + if (this.getTargetChart.selectId.length > 1) return + + loadingStart() + const index: number = this.fetchTargetIndex() + if (index !== -1) { + // 更新状态 + const targetItem = this.getComponentList[index] + targetItem.status.hide = status + + // 历史记录 + if (isHistory) { + status + ? chartHistoryStore.createHideHistory([targetItem]) + : chartHistoryStore.createShowHistory([targetItem]) + } + this.updateComponentList(index, targetItem) + loadingFinish() + + // 隐藏添加失焦效果 + if (status) this.setTargetSelectChart(undefined) + } + } catch (value) { + loadingError() + } + }, + // * 显示 + setShow(isHistory: boolean = true) { + this.setHide(false, isHistory) + }, + // ---------------- + // * 设置页面大小 + setPageSize(scale: number): void { + this.setPageStyle('height', `${this.editCanvasConfig.height * scale}px`) + this.setPageStyle('width', `${this.editCanvasConfig.width * scale}px`) + }, + // * 计算缩放 + computedScale() { + if (this.getEditCanvas.editLayoutDom) { + // 现有展示区域 + const width = this.getEditCanvas.editLayoutDom.clientWidth - this.getEditCanvas.offset * 2 - 5 + const height = this.getEditCanvas.editLayoutDom.clientHeight - this.getEditCanvas.offset * 4 + + // 用户设定大小 + const editCanvasWidth = this.editCanvasConfig.width + const editCanvasHeight = this.editCanvasConfig.height + + // 需保持的比例 + const baseProportion = parseFloat((editCanvasWidth / editCanvasHeight).toFixed(5)) + const currentRate = parseFloat((width / height).toFixed(5)) + + if (currentRate > baseProportion) { + // 表示更宽 + const scaleWidth = parseFloat(((height * baseProportion) / editCanvasWidth).toFixed(5)) + this.setScale(scaleWidth > 1 ? 1 : scaleWidth) + } else { + // 表示更高 + const scaleHeight = parseFloat((width / baseProportion / editCanvasHeight).toFixed(5)) + this.setScale(scaleHeight > 1 ? 1 : scaleHeight) + } + } else { + window['$message'].warning('请先创建画布,再进行缩放') + } + }, + // * 监听缩放 + listenerScale(): Function { + const resize = debounce(this.computedScale, 200) + // 默认执行一次 + resize() + // 开始监听 + window.addEventListener('resize', resize) + // 销毁函数 + const remove = () => { + window.removeEventListener('resize', resize) + } + return remove + }, + /** + * * 设置缩放 + * @param scale 0~1 number 缩放比例; + * @param force boolean 强制缩放 + */ + setScale(scale: number, force = false): void { + if (!this.getEditCanvas.lockScale || force) { + this.setPageSize(scale) + this.getEditCanvas.userScale = scale + this.getEditCanvas.scale = scale + } + } + } +}) diff --git a/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryDefine.ts b/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryDefine.ts new file mode 100644 index 0000000..edb15a3 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryDefine.ts @@ -0,0 +1,23 @@ +import { HistoryTargetTypeEnum, HistoryActionTypeEnum } from './chartHistoryStore.d' + +export const historyActionTypeName = { + [HistoryActionTypeEnum.ADD]: '新增', + [HistoryActionTypeEnum.DELETE]: '删除', + [HistoryActionTypeEnum.UPDATE]: '更新', + [HistoryActionTypeEnum.MOVE]: '移动', + [HistoryActionTypeEnum.PASTE]: '粘贴', + [HistoryActionTypeEnum.COPY]: '复制', + [HistoryActionTypeEnum.CUT]: '剪切', + [HistoryActionTypeEnum.TOP]: '置顶', + [HistoryActionTypeEnum.BOTTOM]: '置底', + [HistoryActionTypeEnum.UP]: '上移', + [HistoryActionTypeEnum.DOWN]: '下移', + [HistoryActionTypeEnum.GROUP]: '成组', + [HistoryActionTypeEnum.UN_GROUP]: '解组', + [HistoryActionTypeEnum.LOCK]: '锁定', + [HistoryActionTypeEnum.UNLOCK]: '解锁', + [HistoryActionTypeEnum.HIDE]: '隐藏', + [HistoryActionTypeEnum.SHOW]: '显示', + + [HistoryTargetTypeEnum.CANVAS]: '画布初始化' +} diff --git a/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.d.ts b/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.d.ts new file mode 100644 index 0000000..9ec7920 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.d.ts @@ -0,0 +1,78 @@ +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { EditCanvasType } from '@/store/modules/chartEditStore/chartEditStore.d' + +// 操作类型枚举 + +export enum HistoryActionTypeEnum { + // 新增 + ADD = 'add', + // 删除 + DELETE = 'delete', + // 更新(位置,属性) + UPDATE = 'update', + // 移动 + MOVE = 'move', + // 复制 + COPY = 'copy', + // 剪切 + CUT = 'cut', + // 粘贴 + PASTE = 'paste', + // 置顶 + TOP = 'top', + // 置底 + BOTTOM = 'bottom', + // 上移 + UP = 'up', + // 下移 + DOWN = 'down', + // 成组 + GROUP = 'group', + // 解组 + UN_GROUP = 'unGroup', + // 锁定 + LOCK = 'lock', + // 解除锁定 + UNLOCK = 'unLock', + // 隐藏 + HIDE = 'hide', + // 显示 + SHOW = 'show' +} + +// 对象类型 +export enum HistoryTargetTypeEnum { + CANVAS = 'canvas', + CHART = 'chart' +} + +// 历史栈 +export enum HistoryStackEnum { + BACK_STACK = 'backStack', + FORWARD_STACK = 'forwardStack' +} + +// 历史记录项 +export enum HistoryStackItemEnum { + ID = 'id', + TARGET_TYPE = 'targetType', + ACTION_TYPE = 'actionType', + HISTORY_DATA = 'historyData' +} + +// 历史记录项类型 +export interface HistoryItemType { + // 会有同时操作多个组件场景 + [HistoryStackItemEnum.ID]: string + [HistoryStackItemEnum.TARGET_TYPE]: HistoryTargetTypeEnum + [HistoryStackItemEnum.ACTION_TYPE]: HistoryActionTypeEnum + [HistoryStackItemEnum.HISTORY_DATA]: CreateComponentType[] | CreateComponentGroupType[] | EditCanvasType[] +} + +// 历史 Store 类型 +export interface ChartHistoryStoreType { + // 后退栈 + [HistoryStackEnum.BACK_STACK]: Array + // 前进栈 + [HistoryStackEnum.FORWARD_STACK]: Array +} diff --git a/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.ts b/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.ts new file mode 100644 index 0000000..dc67ca9 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/chartHistoryStore/chartHistoryStore.ts @@ -0,0 +1,188 @@ +import { defineStore } from 'pinia' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { EditCanvasType } from '@/store/modules/chartEditStore/chartEditStore.d' +import { loadingStart, loadingFinish, loadingError } from '@/utils' +import { editHistoryMax } from '@/settings/designSetting' +import { + HistoryStackItemEnum, + HistoryActionTypeEnum, + HistoryTargetTypeEnum, + HistoryItemType, + ChartHistoryStoreType +} from './chartHistoryStore.d' + +export const useChartHistoryStore = defineStore({ + id: 'useChartHistoryStore', + state: (): ChartHistoryStoreType => ({ + // 后退栈 + backStack: [], + // 前进栈 + forwardStack: [] + }), + getters: { + getBackStack(): Array { + return this.backStack + }, + getForwardStack(): Array { + return this.forwardStack + } + }, + actions: { + /** + * * 新增记录并插入栈 + * @param item 图表实例 + * @param actionType 动作类型 + * @param targetType 对象类型(默认图表) + */ + createStackItem( + item: CreateComponentType[] | CreateComponentGroupType[] | EditCanvasType[], + actionType: HistoryActionTypeEnum, + targetType: HistoryTargetTypeEnum = HistoryTargetTypeEnum.CHART + ) { + // 优化性能转为 freeze + this.pushBackStackItem( + Object.freeze({ + [HistoryStackItemEnum.ID]: new Date().getTime().toString(), + [HistoryStackItemEnum.HISTORY_DATA]: item, + [HistoryStackItemEnum.ACTION_TYPE]: actionType, + [HistoryStackItemEnum.TARGET_TYPE]: targetType + } as const) + ) + }, + // * 画布初始化 + canvasInit(canvas: EditCanvasType) { + this.createStackItem([canvas], HistoryActionTypeEnum.ADD, HistoryTargetTypeEnum.CANVAS) + }, + // * 推入后退栈 + pushBackStackItem(item: HistoryItemType | Array, notClear = false): void { + if (item instanceof Array) this.backStack = [...this.backStack, ...item] + else this.backStack.push(item) + this.backStack.splice(0, this.backStack.length - editHistoryMax) + // 新动作需清空前进栈 + if (notClear) return + this.clearForwardStack() + }, + // * 推入前进栈 + pushForwardStack(item: HistoryItemType | Array): void { + if (item instanceof Array) this.forwardStack = [...this.forwardStack, ...item] + else this.forwardStack.push(item) + }, + // * 移出后退栈 + popBackStackItem(): HistoryItemType | undefined { + if (this.backStack.length > 0) { + return this.backStack.pop() + } + }, + // * 移出前进栈 + popForwardStack(): HistoryItemType | undefined { + if (this.forwardStack.length > 0) { + return this.forwardStack.pop() + } + }, + // * 清空前进栈 + clearForwardStack() { + this.forwardStack = [] + }, + // * 清空后退栈(保留初始化) + clearBackStack() { + const canvasHistory = this.getBackStack[0] + this.backStack = [canvasHistory] + }, + // * 撤回 + backAction() { + try { + loadingStart() + // 排除画布初始化 + if (this.getBackStack.length > 1) { + const targetData = this.popBackStackItem() + if (!targetData) { + loadingFinish() + return + } + // 移除记录到前进堆 + this.pushForwardStack(targetData) + loadingFinish() + return targetData + } + loadingFinish() + } catch (error) { + loadingError() + } + }, + // * 前进 + forwardAction() { + try { + loadingStart() + if (this.getForwardStack.length) { + const targetData = this.popForwardStack() + if (!targetData) { + loadingFinish() + return + } + // 放入后退栈 + this.pushBackStackItem(targetData, true) + loadingFinish() + return targetData + } + loadingFinish() + } catch (error) { + loadingError() + } + }, + // * 新增组件记录 + createAddHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.ADD, HistoryTargetTypeEnum.CHART) + }, + // * 更新属性记录(大小、图表属性) + createUpdateHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.UPDATE, HistoryTargetTypeEnum.CHART) + }, + // * 删除组件记录 + createDeleteHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.DELETE, HistoryTargetTypeEnum.CHART) + }, + // * 移动组件记录 + createMoveHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.MOVE, HistoryTargetTypeEnum.CHART) + }, + // * 改变层级组件记录 + createLayerHistory( + item: Array, + type: + | HistoryActionTypeEnum.TOP + | HistoryActionTypeEnum.DOWN + | HistoryActionTypeEnum.UP + | HistoryActionTypeEnum.BOTTOM + ) { + this.createStackItem(item, type, HistoryTargetTypeEnum.CHART) + }, + // * 剪切组件记录 + createPasteHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.CUT, HistoryTargetTypeEnum.CHART) + }, + // * 创建分组 + createGroupHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.GROUP, HistoryTargetTypeEnum.CHART) + }, + // * 解除分组 + createUnGroupHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.UN_GROUP, HistoryTargetTypeEnum.CHART) + }, + // * 锁定记录 + createLockHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.LOCK, HistoryTargetTypeEnum.CHART) + }, + // * 解锁记录 + createUnLockHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.UNLOCK, HistoryTargetTypeEnum.CHART) + }, + // * 隐藏记录 + createHideHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.HIDE, HistoryTargetTypeEnum.CHART) + }, + // * 展示记录 + createShowHistory(item: Array) { + this.createStackItem(item, HistoryActionTypeEnum.SHOW, HistoryTargetTypeEnum.CHART) + } + } +}) diff --git a/grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts b/grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts new file mode 100644 index 0000000..b485dd5 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.d.ts @@ -0,0 +1,36 @@ +export enum ChartModeEnum { + SINGLE = 'single', + DOUBLE = 'double' +} + +export enum LayerModeEnum { + THUMBNAIL = 'thumbnail', + TEXT = 'text' +} + +export enum ChartLayoutStoreEnum { + LAYERS = 'layers', + CHARTS = 'charts', + DETAILS = 'details', + Chart_TYPE = 'chartType', + LAYER_TYPE = 'layerType', + PERCENTAGE = 'percentage', + RE_POSITION_CANVAS = 'rePositionCanvas' +} + +export interface ChartLayoutType { + // 图层控制 + [ChartLayoutStoreEnum.LAYERS]: boolean + // 图表组件 + [ChartLayoutStoreEnum.CHARTS]: boolean + // 详情设置 + [ChartLayoutStoreEnum.DETAILS]: boolean + // 组件展示方式 + [ChartLayoutStoreEnum.Chart_TYPE]: ChartModeEnum + // 层级展示方式 + [ChartLayoutStoreEnum.LAYER_TYPE]: LayerModeEnum + // 当前正在加载的数量 + [ChartLayoutStoreEnum.PERCENTAGE]: number + // 是否重置当前画布位置 + [ChartLayoutStoreEnum.RE_POSITION_CANVAS]: boolean +} diff --git a/grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.ts b/grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.ts new file mode 100644 index 0000000..c2b6359 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/chartLayoutStore/chartLayoutStore.ts @@ -0,0 +1,77 @@ +import { defineStore } from 'pinia' +import { ChartLayoutType, LayerModeEnum, ChartModeEnum } from './chartLayoutStore.d' +import { setLocalStorage, getLocalStorage } from '@/utils' +import { StorageEnum } from '@/enums/storageEnum' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' + +const chartEditStore = useChartEditStore() + +const { GO_CHART_LAYOUT_STORE } = StorageEnum + +const storageChartLayout: Partial = getLocalStorage(GO_CHART_LAYOUT_STORE) + +// 编辑区域布局和静态设置 +export const useChartLayoutStore = defineStore({ + id: 'useChartLayoutStore', + state: (): ChartLayoutType => ({ + // 图层控制 + layers: true, + // 图表组件 + charts: true, + // 详情设置(收缩为true) + details: false, + // 组件列表展示类型(默认单列) + chartType: ChartModeEnum.SINGLE, + // 图层类型(默认图片) + layerType: LayerModeEnum.THUMBNAIL, + // 当前加载数量 + percentage: 0, + // 是否重置当前画布位置 + rePositionCanvas: false, + // 防止值不存在 + ...storageChartLayout + }), + getters: { + getLayers(): boolean { + return this.layers + }, + getCharts(): boolean { + return this.charts + }, + getDetails(): boolean { + return this.details + }, + getChartType(): ChartModeEnum { + return this.chartType + }, + getLayerType(): LayerModeEnum { + return this.layerType + }, + getPercentage(): number { + return this.percentage + }, + getRePositionCanvas(): boolean { + return this.rePositionCanvas + } + }, + actions: { + setItem(key: T, value: K): void { + this.$patch(state => { + state[key] = value + }) + // 存储本地 + setLocalStorage(GO_CHART_LAYOUT_STORE, this.$state) + // 这里需要标记重置画布位置 + this.rePositionCanvas = true; + // 重新计算拖拽区域缩放比例 + setTimeout(() => { + chartEditStore.computedScale() + }, 500) + }, + setItemUnHandle(key: T, value: K): void { + this.$patch(state => { + state[key] = value + }) + } + } +}) diff --git a/grailed-ui-go-view/src/store/modules/designStore/designStore.d.ts b/grailed-ui-go-view/src/store/modules/designStore/designStore.d.ts new file mode 100644 index 0000000..5786028 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/designStore/designStore.d.ts @@ -0,0 +1,19 @@ +import { ThemeEnum } from '@/enums/styleEnum' + +export type AppThemeColorType = { + CMYK: number[] + RGB: number[] + hex: string + name: string + pinyin: string +} + +export interface DesignStateType { + // 是否是深色主题 + darkTheme: boolean + // 主题名称 + themeName: ThemeEnum + //色号 + appTheme: string + appThemeDetail: AppThemeColorType | null +} diff --git a/grailed-ui-go-view/src/store/modules/designStore/designStore.ts b/grailed-ui-go-view/src/store/modules/designStore/designStore.ts new file mode 100644 index 0000000..d6a54bf --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/designStore/designStore.ts @@ -0,0 +1,51 @@ +import { defineStore } from 'pinia' +import { theme } from '@/settings/designSetting' +import { DesignStateType, AppThemeColorType } from './designStore.d' +import { setLocalStorage, getLocalStorage } from '@/utils' +import { StorageEnum } from '@/enums/storageEnum' +import { ThemeEnum } from '@/enums/styleEnum' + +const { GO_DESIGN_STORE } = StorageEnum + +const { darkTheme, appTheme, appThemeDetail } = theme + +const storageDesign = getLocalStorage(GO_DESIGN_STORE) + +export const useDesignStore = defineStore({ + id: 'useDesignStore', + state: (): DesignStateType => + storageDesign || { + // 是否暗黑 + darkTheme, + // 主题名称 + themeName: (darkTheme && ThemeEnum.DARK) || ThemeEnum.LIGHT, + // 颜色色号 + appTheme, + appThemeDetail, + }, + getters: { + getDarkTheme(e): boolean { + return this.darkTheme + }, + getAppTheme(): string { + return this.appTheme + }, + getAppThemeDetail(): AppThemeColorType | null { + return this.appThemeDetail + } + }, + actions: { + // 切换主题 + changeTheme(): void { + this.darkTheme = !this.darkTheme + this.themeName = this.darkTheme ? ThemeEnum.DARK : ThemeEnum.LIGHT + setLocalStorage(GO_DESIGN_STORE, this.$state) + }, + // 设置颜色 + setAppColor(color: AppThemeColorType): void { + this.appTheme = color.hex + this.appThemeDetail = color + setLocalStorage(GO_DESIGN_STORE, this.$state) + } + } +}) \ No newline at end of file diff --git a/grailed-ui-go-view/src/store/modules/langStore/langStore.d.ts b/grailed-ui-go-view/src/store/modules/langStore/langStore.d.ts new file mode 100644 index 0000000..0d71c8d --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/langStore/langStore.d.ts @@ -0,0 +1,5 @@ +import { LangEnum } from '@/enums/styleEnum' +export interface LangStateType { + // 当前语言 + lang: LangEnum, +} diff --git a/grailed-ui-go-view/src/store/modules/langStore/langStore.ts b/grailed-ui-go-view/src/store/modules/langStore/langStore.ts new file mode 100644 index 0000000..2b7d270 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/langStore/langStore.ts @@ -0,0 +1,36 @@ +import { defineStore } from 'pinia' +import { lang } from '@/settings/designSetting' +import { LangStateType } from './langStore.d' +import { LangEnum } from '@/enums/styleEnum' +import { setLocalStorage, getLocalStorage, reloadRoutePage } from '@/utils' +import { StorageEnum } from '@/enums/storageEnum' +import { useSettingStore } from '@/store/modules/settingStore/settingStore' + +const { GO_LANG_STORE } = StorageEnum +const storageLang: LangStateType = getLocalStorage(GO_LANG_STORE) + +// 语言 +export const useLangStore = defineStore({ + id: 'useLangStore', + state: (): LangStateType => + storageLang || { + lang + }, + getters: { + getLang(): LangEnum { + return this.lang + } + }, + actions: { + changeLang(lang: LangEnum): void { + const settingStore = useSettingStore() + if (this.lang === lang) return + this.lang = lang + setLocalStorage(GO_LANG_STORE, this.$state) + + if (settingStore.getChangeLangReload) { + reloadRoutePage() + } + } + } +}) diff --git a/grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.d.ts b/grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.d.ts new file mode 100644 index 0000000..3dcbf54 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.d.ts @@ -0,0 +1,8 @@ +import { PackagesType, ConfigType } from '@/packages/index.d' + +export { ConfigType } + +export { PackagesType } +export interface PackagesStoreType { + packagesList: PackagesType +} diff --git a/grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.ts b/grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.ts new file mode 100644 index 0000000..0e7254d --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/packagesStore/packagesStore.ts @@ -0,0 +1,16 @@ +import { defineStore } from 'pinia' +import { PackagesStoreType, PackagesType } from './packagesStore.d' +import { packagesList } from '@/packages/index' + +// 组件 pakages +export const usePackagesStore = defineStore({ + id: 'usePackagesStore', + state: (): PackagesStoreType => ({ + packagesList: Object.freeze(packagesList) + }), + getters: { + getPackagesList(): PackagesType { + return this.packagesList + } + } +}) diff --git a/grailed-ui-go-view/src/store/modules/settingStore/settingStore.d.ts b/grailed-ui-go-view/src/store/modules/settingStore/settingStore.d.ts new file mode 100644 index 0000000..09ba684 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/settingStore/settingStore.d.ts @@ -0,0 +1,31 @@ +export enum ToolsStatusEnum { + DOCK = 'dock', + ASIDE = 'aside', +} + +export enum SettingStoreEnums { + // 拖拽页面左侧表单分类只有一项的时候是否隐藏 + HIDE_PACKAGE_ONE_CATEGORY = 'hidePackageOneCategory', + // 切换语言是否进行路由刷新 + CHANGE_LANG_RELOAD = 'changeLangReload', + // 侧边栏折叠是否隐藏全部 + ASIDE_ALL_COLLAPSED = 'asideAllCollapsed', + // 图表移动时按方向键移动的距离 + CHART_MOVE_DISTANCE = 'chartMoveDistance', + // 图表拖拽时的吸附距离(px) + CHART_ALIGN_RANGE = 'chartAlignRange', + // 图表工具栏状态(侧边工具状态) + CHART_TOOLS_STATUS = 'chartToolsStatus', + // 图表工具栏状态隐藏 + CHART_TOOLS_STATUS_HIDE = 'chartToolsStatusHide' +} + +export interface SettingStoreType { + [SettingStoreEnums.HIDE_PACKAGE_ONE_CATEGORY]: boolean + [SettingStoreEnums.CHANGE_LANG_RELOAD]: boolean + [SettingStoreEnums.ASIDE_ALL_COLLAPSED]: boolean + [SettingStoreEnums.CHART_MOVE_DISTANCE]: number + [SettingStoreEnums.CHART_ALIGN_RANGE]: number + [SettingStoreEnums.CHART_TOOLS_STATUS]: ToolsStatusEnum + [SettingStoreEnums.CHART_TOOLS_STATUS_HIDE]: boolean +} diff --git a/grailed-ui-go-view/src/store/modules/settingStore/settingStore.ts b/grailed-ui-go-view/src/store/modules/settingStore/settingStore.ts new file mode 100644 index 0000000..9e65311 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/settingStore/settingStore.ts @@ -0,0 +1,54 @@ +import { defineStore } from 'pinia' +import { systemSetting } from '@/settings/systemSetting' +import { asideCollapsedWidth } from '@/settings/designSetting' +import { SettingStoreType, ToolsStatusEnum } from './settingStore.d' +import { setLocalStorage, getLocalStorage } from '@/utils' +import { StorageEnum } from '@/enums/storageEnum' +const { GO_SETTING_STORE } = StorageEnum + +const storageSetting: SettingStoreType = getLocalStorage( + GO_SETTING_STORE +) + +// 全局设置 +export const useSettingStore = defineStore({ + id: 'useSettingStore', + state: (): SettingStoreType => storageSetting || systemSetting, + getters: { + getHidePackageOneCategory(): boolean { + return this.hidePackageOneCategory + }, + getChangeLangReload(): boolean { + return this.changeLangReload + }, + getAsideAllCollapsed(): boolean { + return this.asideAllCollapsed + }, + getAsideCollapsedWidth(): number { + return this.asideAllCollapsed ? 0 : asideCollapsedWidth + }, + getChartMoveDistance(): number { + return this.chartMoveDistance + }, + getChartAlignRange(): number { + return this.chartAlignRange + }, + getChartToolsStatus(): ToolsStatusEnum { + return this.chartToolsStatus + }, + getChartToolsStatusHide(): boolean { + return this.chartToolsStatusHide + }, + }, + actions: { + setItem( + key: T, + value: K + ): void { + this.$patch(state => { + state[key] = value + }) + setLocalStorage(GO_SETTING_STORE, this.$state) + } + } +}) diff --git a/grailed-ui-go-view/src/store/modules/systemStore/systemStore.d.ts b/grailed-ui-go-view/src/store/modules/systemStore/systemStore.d.ts new file mode 100644 index 0000000..f82629e --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/systemStore/systemStore.d.ts @@ -0,0 +1,31 @@ +export enum SystemStoreUserInfoEnum { + USER_TOKEN = 'userToken', + TOKEN_NAME = 'tokenName', + USER_ID = 'userId', + USER_NAME = 'userName', + NICK_NAME = 'nickName', +} + +export interface UserInfoType { + [SystemStoreUserInfoEnum.USER_TOKEN]?: string, + [SystemStoreUserInfoEnum.TOKEN_NAME]?: string, + [SystemStoreUserInfoEnum.USER_ID]?: number, + [SystemStoreUserInfoEnum.USER_NAME]?: string, + [SystemStoreUserInfoEnum.NICK_NAME]?: string, +} + +export interface TenantInfoType { + tenantId?: number, +} + +export enum SystemStoreEnum { + // 用户 + USER_INFO = 'userInfo', + // 请求 + TENANT_INFO = 'tenantInfo', +} + +export interface SystemStoreType { + [SystemStoreEnum.USER_INFO]: UserInfoType + [SystemStoreEnum.TENANT_INFO]: TenantInfoType +} diff --git a/grailed-ui-go-view/src/store/modules/systemStore/systemStore.ts b/grailed-ui-go-view/src/store/modules/systemStore/systemStore.ts new file mode 100644 index 0000000..7683213 --- /dev/null +++ b/grailed-ui-go-view/src/store/modules/systemStore/systemStore.ts @@ -0,0 +1,40 @@ +import { defineStore } from 'pinia' +import { SystemStoreType, UserInfoType, TenantInfoType } from './systemStore.d' +import { setLocalStorage, getLocalStorage } from '@/utils' +import { StorageEnum } from '@/enums/storageEnum' + +const { GO_SYSTEM_STORE } = StorageEnum + +const storageSystem: SystemStoreType = getLocalStorage(GO_SYSTEM_STORE) + +// 系统数据记录 +export const useSystemStore = defineStore({ + id: 'useSystemStore', + state: (): SystemStoreType => storageSystem || { + userInfo: { + userId: undefined, + userName: undefined, + userToken: undefined, + nickName: undefined + }, + tenantInfo: { + tenantId: undefined + } + }, + getters: { + getUserInfo(): UserInfoType { + return this.userInfo + }, + getTenantInfo(): TenantInfoType { + return this.tenantInfo + } + }, + actions: { + setItem(key: T, value: K): void { + this.$patch(state => { + state[key] = value + }); + setLocalStorage(GO_SYSTEM_STORE, this.$state) + } + } +}) diff --git a/grailed-ui-go-view/src/styles/common/_dark.scss b/grailed-ui-go-view/src/styles/common/_dark.scss new file mode 100644 index 0000000..1c9ee92 --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/_dark.scss @@ -0,0 +1,36 @@ +@import './var.scss'; + +$dark: ( + // 文字颜色 + color: $--color-text-4, + //背景 + background-color: $--color-dark-bg-1, + background-color1: $--color-dark-bg-1, + background-color1-shallow: $--color-dark-bg-1-shallow, + background-color2: $--color-dark-bg-2, + background-color2-shallow: $--color-dark-bg-2-shallow, + background-color3: $--color-dark-bg-3, + background-color3-shallow: $--color-dark-bg-3-shallow, + background-color4: $--color-dark-bg-4, + background-color4-shallow: $--color-dark-bg-4-shallow, + background-color5: $--color-dark-bg-5, + background-color5-shallow: $--color-dark-bg-5-shallow, + // 毛玻璃背景 + filter-color: $--filter-color-login-dark, + filter-color-shallow: $--filter-color-login-dark-shallow, + //渐变背景 + background-image: + linear-gradient(120deg, $--color-dark-bg-1 0%, $--color-dark-bg-1 100%), + // 斑点背景 + background-point: + ( + linear-gradient($--color-dark-bg-1 14px, transparent 0), + linear-gradient(90deg, transparent 14px, $--color-text-2 0) + ), + // hover 边框颜色 + hover-border-color: $--color-dark-bg-5, + hover-border-color-shallow: $--color-dark-bg-3, + // 阴影 + box-shadow: 0 8px 10px #1e1e1e1f + +); diff --git a/grailed-ui-go-view/src/styles/common/_light.scss b/grailed-ui-go-view/src/styles/common/_light.scss new file mode 100644 index 0000000..4e91969 --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/_light.scss @@ -0,0 +1,37 @@ +@import './var.scss'; + +$light: ( + // 文字颜色 + color: $--color-text, + // aside 背景 + aside-background-color: $--color-light-bg-1, + //背景 + background-color: $--color-light-bg-3, + background-color1: $--color-light-bg-1, + background-color1-shallow: $--color-light-bg-1-shallow, + background-color2: $--color-light-bg-2, + background-color2-shallow: $--color-light-bg-2-shallow, + background-color3: $--color-light-bg-3, + background-color3-shallow: $--color-light-bg-3-shallow, + background-color4: $--color-light-bg-4, + background-color4-shallow: $--color-light-bg-4-shallow, + background-color5: $--color-light-bg-5, + background-color5-shallow: $--color-light-bg-5-shallow, + // 毛玻璃背景 + filter-color: $--filter-color-login-light, + filter-color-shallow: $--filter-color-login-light-shallow, + //渐变背景 + background-image: + linear-gradient(120deg, $--color-light-bg 0%, $--color-light-bg 100%), + // 斑点背景 + background-point: + ( + linear-gradient($--color-light-bg-1 14px, transparent 0), + linear-gradient(90deg, transparent 14px, $--color-dark-bg-5 0) + ), + // hover 边框颜色 + hover-border-color: $--color-light-bg-4, + hover-border-color-shallow: $--color-light-bg-3, + // 阴影 + box-shadow: 0 8px 10px #00000012 +); diff --git a/grailed-ui-go-view/src/styles/common/animation.scss b/grailed-ui-go-view/src/styles/common/animation.scss new file mode 100644 index 0000000..5f69c7d --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/animation.scss @@ -0,0 +1,68 @@ +// 闪烁 +.go-animation-twinkle { + animation: twinkle 2s ease; + animation-iteration-count: infinite; + opacity: 1; +} +@keyframes twinkle { + 0% { + opacity: 1; + } + 50% { + opacity: 0.5; + } + 100% { + opacity: 1; + } +} + +// 淡入淡出 +.v-modal-enter { + animation: v-modal-in 0.2s ease; +} + +.v-modal-leave { + animation: v-modal-out 0.2s ease forwards; +} + +@keyframes v-modal-in { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes v-modal-out { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} + +// 渐变 +.fade-enter-from, +.fade-leave-to { + opacity: 0; +} + +.fade-enter-active, +.fade-leave-active { + transition: opacity .2s ease; +} + +// 移动动画 +.list-complete-item { + transition: all 1s; +} +.list-complete-enter-from, +.list-complete-leave-to { + opacity: 0; + transform: translateY(30px); +} +.list-complete-leave-active { + position: absolute; +} diff --git a/grailed-ui-go-view/src/styles/common/format.scss b/grailed-ui-go-view/src/styles/common/format.scss new file mode 100644 index 0000000..8fefec9 --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/format.scss @@ -0,0 +1,23 @@ +body { + overflow: hidden; +} + +* { + list-style: none; +} +/* 设置滚动条的样式 */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} +/* 滚动槽 */ +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0); + border-radius: 2px; +} +/* 滚动条滑块 */ +::-webkit-scrollbar-thumb { + border-radius: 4px; + background: #a3a3a3; +} + diff --git a/grailed-ui-go-view/src/styles/common/mixins/config.scss b/grailed-ui-go-view/src/styles/common/mixins/config.scss new file mode 100644 index 0000000..3be6d24 --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/mixins/config.scss @@ -0,0 +1,4 @@ +$namespace: 'go'; +$theme-light: 'light'; +$theme-dark: 'dark'; +$state-prefix: 'is-'; diff --git a/grailed-ui-go-view/src/styles/common/mixins/function.scss b/grailed-ui-go-view/src/styles/common/mixins/function.scss new file mode 100644 index 0000000..e7023db --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/mixins/function.scss @@ -0,0 +1,3 @@ +@function themed($key) { + @return map-get($theme-map, $key); +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/styles/common/mixins/mixins.scss b/grailed-ui-go-view/src/styles/common/mixins/mixins.scss new file mode 100644 index 0000000..ec6f2cc --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/mixins/mixins.scss @@ -0,0 +1,78 @@ +@import './config.scss'; +@import './function.scss'; +@import '../theme.scss'; + +@mixin go($block) { + $B: $namespace + '-' + $block; + .#{$B} { + @content; + } +} + +@mixin goId($block) { + $B: $namespace + '-' + $block; + ##{$B} { + @content; + } +} + +@mixin deep() { + :deep() { + @content; + } +} + +@mixin when($state) { + @at-root { + &.#{$state-prefix + $state} { + @content; + } + } +} + +@mixin themeify { + @each $theme-name, $theme-map in $themes { + $theme-map: $theme-map !global; + [data-theme='#{$theme-name}'] & { + @content; + } + } +} + +@mixin fetch-theme($param) { + @include themeify { + #{$param}: themed($param); + } +} + +@mixin fetch-theme-custom ($key, $value) { + @include themeify { + #{$key}: themed($value); + } +} + +//获取背景颜色 +@mixin fetch-bg-color($target) { + @include themeify { + background-color: themed($target); + } +} + +//获取背景渐变颜色 +@mixin background-image($target) { + @include themeify { + background-image: themed($target); + } +} + +//设置边框颜色 +@mixin fetch-border-color($target) { + @include themeify { + border-color: themed($target); + } +} +@mixin hover-border-color($target) { + @include themeify { + border: 1px solid themed($target); + } +} diff --git a/grailed-ui-go-view/src/styles/common/style.scss b/grailed-ui-go-view/src/styles/common/style.scss new file mode 100644 index 0000000..13dee27 --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/style.scss @@ -0,0 +1,127 @@ +@import "./var.scss"; +@import "./format.scss"; +@import "./animation.scss"; +@import "./mixins/mixins.scss"; + +// 过度 +.go-transition { + transition: all 0.4s; +} + +.go-transition-quick { + transition: all 0.2s; +} + +.go-flex-center { + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} + +.go-flex-items-center { + display: flex; + align-items: center; + text-align: center; +} + +.go-flex-no-wrap { + flex-wrap: nowrap !important; +} + +.go-absolute-center { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +// cursor 小手 +.go-cursor-pointer { + cursor: pointer; +} + +// IE盒模型 +.go-boderbox { + box-sizing: border-box; +} + +// 毛玻璃 +.go-background-filter { + backdrop-filter: $--filter-blur-base; + @include fetch-bg-color("filter-color"); + box-shadow: $--border-shadow; +} + +// 毛玻璃 +.go-background-filter-shallow { + backdrop-filter: $--filter-blur-base; + @include fetch-bg-color("filter-color-shallow"); + box-shadow: $--border-shadow; +} + +// 边框圆角 +.go-border-radius { + border-radius: $--border-radius-base; + overflow: hidden; +} + +// 背景斑点需配合 @mixin background-image 使用 +.go-point-bg { + @include fetch-theme-custom("background-color", "background-color1"); + background-size: 15px 15px, 15px 15px; +} + +// 省略号 +.go-ellipsis-1 { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + word-break: break-all; +} + +// class:m-1 => margin:1em +// class:mt-1 => margin-top:1em +// m-0|mt-0|mx-0|my-0|p-0|pt-0|... + +@each $typekey, $type in $spacing-types { + //.m-1 + @each $sizekey, $size in $spacing-sizes { + .go-#{$typekey}-#{$sizekey} { + #{$type}: $size * $spacing-base-size; + } + } + + //.mx-1 + @each $sizekey, $size in $spacing-sizes { + .go-#{$typekey}x-#{$sizekey} { + #{$type}-left: $size * $spacing-base-size; + #{$type}-right: $size * $spacing-base-size; + } + + .go-#{$typekey}y-#{$sizekey} { + #{$type}-top: $size * $spacing-base-size; + #{$type}-bottom: $size * $spacing-base-size; + } + } + + //.mt-1 + @each $directionkey, $direction in $spacing-directions { + @each $sizekey, $size in $spacing-sizes { + .go-#{$typekey}#{$directionkey}-#{$sizekey} { + #{$type}-#{$direction}: $size * $spacing-base-size; + } + } + } + + .go-#{$typekey} { + #{$type}: 0 !important; + } +} + +.go-d-inline-block { + display: inline-block; +} +.go-d-block { + display: block; +} diff --git a/grailed-ui-go-view/src/styles/common/theme.scss b/grailed-ui-go-view/src/styles/common/theme.scss new file mode 100644 index 0000000..74cd333 --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/theme.scss @@ -0,0 +1,10 @@ +@import './mixins/config.scss'; +@import './_dark.scss'; +@import './_light.scss'; + +$themes: ( + // 亮白 + #{$theme-light}: $light, + // 暗黑 + #{$theme-dark}: $dark +); diff --git a/grailed-ui-go-view/src/styles/common/var.scss b/grailed-ui-go-view/src/styles/common/var.scss new file mode 100644 index 0000000..ee4ded0 --- /dev/null +++ b/grailed-ui-go-view/src/styles/common/var.scss @@ -0,0 +1,87 @@ +// 颜色 +$--color-red: #fc625d; +$--color-warn: #fcbc40; +$--color-success: #34c749; + +// 文字 +$--color-text: #1d2129; +$--color-text-1: #4e5969; +$--color-text-2: #86909c; +$--color-text-3: #c9cdd4; +$--color-text-4: #f2f3f5; + +//.mt-1 => margin top +//spacing +$spacing-base-size: 1em; + +$spacing-types: ( + m: margin, + p: padding, +); + +$spacing-directions: ( + t: top, + r: right, + b: bottom, + l: left, +); + +$spacing-sizes: ( + 0: 0, + 1: 0.25, + 2: 0.5, + 3: 1, + 4: 1.5, + 5: 2.5, +); + +// 变亮值 +$--light-shalow: 2%; + +// 白色 +$--color-light-bg: #fff; +$--color-light-bg-1: #fafafc; +$--color-light-bg-1-shallow: lighten($--color-light-bg-1, $--light-shalow); +$--color-light-bg-2: #f2f3f5; +$--color-light-bg-2-shallow: lighten($--color-light-bg-2, $--light-shalow); +$--color-light-bg-3: #e5e6eb; +$--color-light-bg-3-shallow: lighten($--color-light-bg-3, $--light-shalow); +$--color-light-bg-4: #e3e3e4; +$--color-light-bg-4-shallow: lighten($--color-light-bg-4, $--light-shalow); +$--color-light-bg-5: #bebebe; +$--color-light-bg-5-shallow: lighten($--color-light-bg-5, $--light-shalow); + +// 变暗值 +$--dark-shalow: 2%; + +// 黑色 +$--color-dark-black: #000; +$--color-dark-bg-1: #18181c; +$--color-dark-bg-1-shallow: darken($--color-dark-bg-1, $--dark-shalow); +$--color-dark-bg-2: #232324; +$--color-dark-bg-2-shallow: darken($--color-dark-bg-2, $--dark-shalow); +$--color-dark-bg-3: #2a2a2b; +$--color-dark-bg-3-shallow: darken($--color-dark-bg-3, $--dark-shalow); +$--color-dark-bg-4: #313132; +$--color-dark-bg-4-shallow: darken($--color-dark-bg-4, $--dark-shalow); +$--color-dark-bg-5: #373739; +$--color-dark-bg-5-shallow: darken($--color-dark-bg-5, $--dark-shalow); + +// 最大宽度 +$--max-width: 1920px; +// 顶部距离 +$--header-height: 60px; +// 底部距离 +$--footer-height: 50px; +// 模糊 +$--filter-blur-base: blur(20px); +// 毛玻璃 +$--filter-color-login-dark: rgba(35,35,36, 0.7); +$--filter-color-login-dark-shallow: rgba(35,35,36, 0.3); +$--filter-color-login-light: rgba(240, 240, 240, 0.7); +$--filter-color-login-light-shallow: rgba(240, 240, 240, 0.3); + +// 边框 +$--border-radius-base: 8px; +// 阴影 +$--border-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); diff --git a/grailed-ui-go-view/src/styles/pages/index.scss b/grailed-ui-go-view/src/styles/pages/index.scss new file mode 100644 index 0000000..b8f7272 --- /dev/null +++ b/grailed-ui-go-view/src/styles/pages/index.scss @@ -0,0 +1,9 @@ +// 页面全局样式 +// 去除高德地图 logo +.amap-logo { + display: none !important; + opacity: 0 !important; +} +.amap-copyright { + opacity: 0 !important; +} diff --git a/grailed-ui-go-view/src/utils/components.ts b/grailed-ui-go-view/src/utils/components.ts new file mode 100644 index 0000000..6d07f94 --- /dev/null +++ b/grailed-ui-go-view/src/utils/components.ts @@ -0,0 +1,30 @@ +import { defineAsyncComponent, AsyncComponentLoader } from 'vue' +import { AsyncLoading, AsyncSkeletonLoading } from '@/components/GoLoading' + +/** + * * 动态注册组件 + */ +export const componentInstall = (key:string, node: T) => { + if(!window['$vue'].component(key) && node) { + window['$vue'].component(key, node) + } +} + +/** + * * 异步加载组件 + * @param loader + * @returns + */ +export const loadAsyncComponent = (loader: AsyncComponentLoader) => + defineAsyncComponent({ + loader, + loadingComponent: AsyncLoading, + delay: 20, + }) + +export const loadSkeletonAsyncComponent = (loader: AsyncComponentLoader) => + defineAsyncComponent({ + loader, + loadingComponent: AsyncSkeletonLoading, + delay: 20, + }) diff --git a/grailed-ui-go-view/src/utils/crypto.ts b/grailed-ui-go-view/src/utils/crypto.ts new file mode 100644 index 0000000..f3530da --- /dev/null +++ b/grailed-ui-go-view/src/utils/crypto.ts @@ -0,0 +1,34 @@ +import CryptoJS from 'crypto-js' +import { isString } from './type' + +const KEY = 'mt' + +/** + * * 加密 + * @param data { string } + * @returns + */ +export const cryptoEncode = (data: string): string => { + if (!isString(data)) return '' + // 加密 + const encryptedData = CryptoJS.AES.encrypt(data, KEY, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }).toString() + return encryptedData +} + +/** + * * 解密 + * @param data { string } + * @returns + */ +export const cryptoDecode = (data: string): string => { + if (!isString(data)) return '' + // 解密 + const decryptedData = CryptoJS.AES.decrypt(data, KEY, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }) + return decryptedData.toString(CryptoJS.enc.Utf8) +} diff --git a/grailed-ui-go-view/src/utils/file.ts b/grailed-ui-go-view/src/utils/file.ts new file mode 100644 index 0000000..4a10bd3 --- /dev/null +++ b/grailed-ui-go-view/src/utils/file.ts @@ -0,0 +1,116 @@ +/** + * * base64转file + * @param dataurl + * @param fileName + * @returns + */ +export const base64toFile = (dataurl: string, fileName: string) => { + let dataArr = dataurl.split(","), + mime = (dataArr as any[])[0].match(/:(.*?);/)[1], + bstr = atob(dataArr[1]), + n = bstr.length, + u8arr = new Uint8Array(n); + while (n--) { + u8arr[n] = bstr.charCodeAt(n); + } + return new File([u8arr], fileName, { type: mime }); +} + +/** + * * file转url + */ + export const fileToUrl = (file: File): string => { + const Url = URL || window.URL || window.webkitURL + const ImageUrl = Url.createObjectURL(file) + return ImageUrl +} + +/** + * * url转file + */ + export const urlToFile = (fileUrl: string, fileName = `${new Date().getTime()}`): File => { + const dataArr = fileUrl.split(',') + const mime = (dataArr as any[])[0].match(/:(.*);/)[1] + const originStr = atob(dataArr[1]) + return new File([originStr], `${fileName}`, { type: mime }) +} + +/** + * * file转base64 + * @param file 文件数据 + * @param callback 回调函数 + */ +export const fileTobase64 = (file: File, callback: Function) => { + let reader = new FileReader() + reader.readAsDataURL(file) + reader.onload = function (e: ProgressEvent) { + if (e.target) { + let base64 = e.target.result + callback(base64) + } + } +} + +/** + * * canvas转file + * @param canvas + */ +export const canvastoFile = (canvas: HTMLCanvasElement, name?: string) => { + const dataurl = canvas.toDataURL('image/png') + return urlToFile(dataurl, name) +} + +/** + * *获取上传的文件数据 + * @param { File } file 文件对象 + */ +export const readFile = (file: File) => { + return new Promise((resolve: Function) => { + try { + const reader = new FileReader() + reader.onload = (evt: ProgressEvent) => { + if (evt.target) { + resolve(evt.target.result) + } + } + reader.readAsText(file) + } catch (error) { + window['$message'].error('文件读取失败!') + } + }) +} + +/** + * * 通过 a 标签下载数据 + * @param url + * @param filename + * @param fileSuffix + */ +export const downloadByA = (url: string, filename = new Date().getTime(), fileSuffix?: string) => { + const ele = document.createElement('a') // 创建下载链接 + ele.download = `${filename}.${fileSuffix}` //设置下载的名称 + ele.style.display = 'none' // 隐藏的可下载链接 + // 字符内容转变成blob地址 + ele.href = url + // 绑定点击时间 + document.body.appendChild(ele) + ele.click() + // 然后移除 + document.body.removeChild(ele) +} + +/** + * * 下载数据 + * @param { string } content 数据内容 + * @param { ?string } filename 文件名称(默认随机字符) + * @param { ?string } fileSuffix 文件名称(默认随机字符) + */ +export const downloadTextFile = ( + content: string, + filename = new Date().getTime(), + fileSuffix?: string +) => { + // 字符内容转变成blob地址 + const blob = new Blob([content]) + downloadByA(URL.createObjectURL(blob), filename, fileSuffix) +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/utils/http.ts b/grailed-ui-go-view/src/utils/http.ts new file mode 100644 index 0000000..8e92db7 --- /dev/null +++ b/grailed-ui-go-view/src/utils/http.ts @@ -0,0 +1,6 @@ +/** + * * 请求失败统一处理 + */ +export const httpErrorHandle = () => { + window['$message'].error(window['$t']('http.error_message')) +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/utils/index.ts b/grailed-ui-go-view/src/utils/index.ts new file mode 100644 index 0000000..3f01578 --- /dev/null +++ b/grailed-ui-go-view/src/utils/index.ts @@ -0,0 +1,10 @@ +export * from '@/utils/utils' +export * from '@/utils/crypto' +export * from '@/utils/router' +export * from '@/utils/storage' +export * from '@/utils/style' +export * from '@/utils/plugin' +export * from '@/utils/components' +export * from '@/utils/type' +export * from '@/utils/file' +export * from '@/utils/http' \ No newline at end of file diff --git a/grailed-ui-go-view/src/utils/plugin.ts b/grailed-ui-go-view/src/utils/plugin.ts new file mode 100644 index 0000000..34e8036 --- /dev/null +++ b/grailed-ui-go-view/src/utils/plugin.ts @@ -0,0 +1,129 @@ +import { icon } from '@/plugins' +import { DialogEnum } from '@/enums/pluginEnum' +import { dialogIconSize } from '@/settings/designSetting' +import { maskClosable } from '@/settings/designSetting' +import { DialogReactive } from 'naive-ui' +const { InformationCircleIcon } = icon.ionicons5 +import { renderIcon } from '@/utils' + +// * 开启加载 +export const loadingStart = () => { + window['$loading'].start() +} + +// * 加载结束 +export const loadingFinish = () => { + setTimeout(() => { + window['$loading'].finish() + }) +} + +// * 加载错误 +export const loadingError = () => { + setTimeout(() => { + window['$loading'].error() + }) +} + +/** + * * render 对话框 + * @param { Object} params 配置参数, 详见 https://www.naiveui.com/zh-CN/light/components/dialog + * ``` + * 最简易的 demo + * goDialog({ + * onPositiveCallback: () => {} + * }) + * ``` + */ + export const goDialog = ( + params: { + // 基本 + type?: DialogEnum + // 标题 + title?: string | (() => any) + // 提示 + message?: string + // 确定提示词 + positiveText?: string + // 取消提示词 + negativeText?: string + // 是否不展示取消按钮 + closeNegativeText?: boolean, + // 点击遮罩是否关闭 + isMaskClosable?: boolean + // 回调 + onPositiveCallback: Function + onNegativeCallback?: Function + // 异步 + promise?: boolean + promiseResCallback?: Function + promiseRejCallback?: Function + [T:string]: any + } +) => { + const { + type, + title, + message, + positiveText, + negativeText, + closeNegativeText, + isMaskClosable, + onPositiveCallback, + onNegativeCallback, + promise, + promiseResCallback, + promiseRejCallback + } = params + + const typeObj = { + // 自定义 + [DialogEnum.DELETE]: { + fn: window['$dialog'].warning, + message: message || '是否删除此数据?' + }, + // 原有 + [DialogEnum.WARNING]: { + fn: window['$dialog'].warning, + message: message || '是否执行此操作?' + }, + [DialogEnum.ERROR]: { + fn: window['$dialog'].error, + message: message || '是否执行此操作?' + }, + [DialogEnum.SUCCESS]: { + fn: window['$dialog'].success, + message: message || '是否执行此操作?' + } + } + + const dialog: DialogReactive = typeObj[type || DialogEnum.WARNING]['fn']({ + // 导入其余 NaiveUI 支持参数 + ...params, + title: title || '提示', + icon: renderIcon(InformationCircleIcon, { size: dialogIconSize }), + content: typeObj[type || DialogEnum.WARNING]['message'], + positiveText: positiveText || '确定', + negativeText: closeNegativeText ? undefined : (negativeText || '取消'), + // 是否通过遮罩关闭 + maskClosable: isMaskClosable || maskClosable, + onPositiveClick: async () => { + // 执行异步 + if (promise && onPositiveCallback) { + dialog.loading = true + try { + const res = await onPositiveCallback() + promiseResCallback && promiseResCallback(res) + } catch (err) { + promiseRejCallback && promiseRejCallback(err) + } + dialog.loading = false + return + } + onPositiveCallback && onPositiveCallback(dialog) + }, + onNegativeClick: async () => { + onNegativeCallback && onNegativeCallback(dialog) + } + }) +} diff --git a/grailed-ui-go-view/src/utils/router.ts b/grailed-ui-go-view/src/utils/router.ts new file mode 100644 index 0000000..0b9be12 --- /dev/null +++ b/grailed-ui-go-view/src/utils/router.ts @@ -0,0 +1,213 @@ +import { useRoute } from 'vue-router' +import { ResultEnum, RequestHttpHeaderEnum } from '@/enums/httpEnum' +import { ErrorPageNameMap, PageEnum, PreviewEnum } from '@/enums/pageEnum' +import { docPath, giteeSourceCodePath } from '@/settings/pathConst' +import { SystemStoreEnum, SystemStoreUserInfoEnum } from '@/store/modules/systemStore/systemStore.d' +import { StorageEnum } from '@/enums/storageEnum' +import { clearLocalStorage, getLocalStorage, clearCookie } from './storage' +import router from '@/router' +import { logoutApi } from '@/api/path' + +/** + * * 根据名字跳转路由 + * @param pageName + * @param isReplace + * @param windowOpen + */ +export const routerTurnByName = ( + pageName: string, + isReplace?: boolean, + windowOpen?: boolean +) => { + if (windowOpen) { + const path = fetchPathByName(pageName, 'href') + openNewWindow(path) + return + } + if (isReplace) { + router.replace({ + name: pageName, + }) + return + } + router.push({ + name: pageName, + }) +} + +/** + * * 根据名称获取路由信息 + * @param pageName + * @param pageName + */ +export const fetchPathByName = (pageName: string, p?: string) => { + try { + const pathData = router.resolve({ + name: pageName, + }) + return p ? (pathData as any)[p] : pathData + } catch (error) { + window['$message'].warning('查询路由信息失败,请联系管理员!') + } +} + +/** + * * 根据路径跳转路由 + * @param path + * @param query + * @param isReplace + * @param windowOpen + */ +export const routerTurnByPath = ( + path: string, + query?: Array, + isReplace?: boolean, + windowOpen?: boolean +) => { + let fullPath = '' + if (query?.length) { + fullPath = `${path}/${query.join('/')}` + } + if (windowOpen) { + return openNewWindow(fullPath) + } + if (isReplace) { + router.replace({ + path: fullPath, + }) + return + } + router.push({ + path: fullPath, + }) +} + +/** + * * 错误页重定向 + * @param icon + * @returns + */ +export const redirectErrorPage = (code: ResultEnum) => { + if (!code) return false + const pageName = ErrorPageNameMap.get(code) + if (!pageName) return false + routerTurnByName(pageName) +} + +/** + * * 重新加载当前路由页面 + */ +export const reloadRoutePage = () => { + routerTurnByName(PageEnum.RELOAD_NAME) +} + +/** + * * 退出登录 + */ +export const logout = async () => { + try { + const res = await logoutApi() + if(res && res.code === ResultEnum.SUCCESS) { + window['$message'].success(window['$t']('global.logout_success')) + clearCookie(RequestHttpHeaderEnum.COOKIE) + clearLocalStorage(StorageEnum.GO_SYSTEM_STORE) + routerTurnByName(PageEnum.BASE_LOGIN_NAME) + } + } catch (error) { + window['$message'].success(window['$t']('global.logout_failure')) + } +} + +/** + * * 新开页面 + * @param url + */ +export const openNewWindow = (url: string) => { + return window.open(url, '_blank') +} + +/** + * * 打开项目文档 + * @param url + */ +export const openDoc = () => { + openNewWindow(docPath) +} + +/** + * * 打开码云仓库地址 + * @param url + */ +export const openGiteeSourceCode = () => { + openNewWindow(giteeSourceCodePath) +} + +/** + * * 判断是否是预览页 + * @returns boolean + */ +export const isPreview = () => { + return document.location.hash.includes('preview') +} + +/** + * * 获取当前路由下的参数 + * @returns object + */ +export const fetchRouteParams = () => { + try { + const route = useRoute() + return route.params + } catch (error) { + window['$message'].warning('查询路由信息失败,请联系管理员!') + } +} + +/** + * * 通过硬解析获取当前路由下的参数 + * @returns object + */ +export const fetchRouteParamsLocation = () => { + try { + return document.location.hash.split('/').pop() || '' + } catch (error) { + window['$message'].warning('查询路由信息失败,请联系管理员!') + return '' + } +} + +/** + * * 回到主页面 + * @param confirm + */ +export const goHome = () => { + routerTurnByName(PageEnum.BASE_HOME_NAME) +} + +/** + * * 判断是否登录 + * @return boolean + */ +export const loginCheck = () => { + try { + const info = getLocalStorage(StorageEnum.GO_SYSTEM_STORE) + if (!info) return false + if (info[SystemStoreEnum.USER_INFO][SystemStoreUserInfoEnum.USER_TOKEN]) { + return true + } + return false + } catch (error) { + return false + } +} + +/** + * * 预览地址 + * @returns + */ + export const previewPath = (id?: string | number) => { + const { origin, pathname } = document.location + const path = fetchPathByName(PreviewEnum.CHART_PREVIEW_NAME, 'href') + const previewPath = `${origin}${pathname}${path}/${id || fetchRouteParamsLocation()}` + return previewPath +} diff --git a/grailed-ui-go-view/src/utils/storage.ts b/grailed-ui-go-view/src/utils/storage.ts new file mode 100644 index 0000000..1827dfa --- /dev/null +++ b/grailed-ui-go-view/src/utils/storage.ts @@ -0,0 +1,110 @@ +import { JSONStringify, JSONParse } from './utils' + +/** + * * 存储本地会话数据 + * @param k 键名 + * @param v 键值(无需stringiiy) + * @returns RemovableRef + */ +export const setLocalStorage = (k: string, v: T) => { + try { + window.localStorage.setItem(k, JSONStringify(v)) + } catch (error) { + return false + } +} + +/** + * * 获取本地会话数据 + * @param k 键名 + * @returns any + */ +export const getLocalStorage = (k: string) => { + const item = window.localStorage.getItem(k) + try { + return item ? JSONParse(item) : item + } catch (err) { + return item + } +} + +/** + * * 清除本地会话数据 + * @param name + */ +export const clearLocalStorage = (name: string) => { + window.localStorage.removeItem(name) +} + +/** + * * 存储临时会话数据 + * @param k 键名 + * @param v 键值 + * @returns RemovableRef + */ +export const setSessionStorage = (k: string, v: T) => { + try { + window.sessionStorage.setItem(k, JSON.stringify(v)) + } catch (error) { + return false + } +} + +/** + * * 获取临时会话数据 + * @returns any + */ +export const getSessionStorage: (k: string) => any = (k: string) => { + const item = window.sessionStorage.getItem(k) + try { + return item ? JSONParse(item) : item + } catch (err) { + return item + } +} + +/** + * * 清除本地会话数据 + * @param name + */ +export const clearSessioStorage = (name: string) => { + window.sessionStorage.removeItem(name) +} + +/** + * * 设置 cookie + * @param name 键名 + * @param cvalue 键值 + * @param exdays 过期时间 + */ +export const setCookie = (name: string, cvalue: string, exdays: number) => { + const d = new Date(); + d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); + const expires = "expires=" + d.toUTCString(); + document.cookie = name + "=" + cvalue + "; " + expires; +} + +/** + * * 获取 cookie + * @param cname 键名 + * @returns string + */ +export const getCookie = (cname: string) => { + const name = cname + "="; + const ca = document.cookie.split(';'); + for (let i = 0; i < ca.length; i++) { + let c = ca[i]; + while (c.charAt(0) == ' ') c = c.substring(1); + if (c.indexOf(name) != -1) return c.substring(name.length, c.length); + } + return ""; +} + +/** + * * 清除 cookie + * @param name 键名 + * @returns string + */ +export const clearCookie = (name: string) => { + setCookie(name, "", -1); +} diff --git a/grailed-ui-go-view/src/utils/style.ts b/grailed-ui-go-view/src/utils/style.ts new file mode 100644 index 0000000..8e8605d --- /dev/null +++ b/grailed-ui-go-view/src/utils/style.ts @@ -0,0 +1,102 @@ +import Color from 'color' +import { useDesignStore } from '@/store/modules/designStore/designStore' +import { PickCreateComponentType } from '@/packages/index.d' +import { EditCanvasConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' + +type AttrType = PickCreateComponentType<'attr'> +type StylesType = PickCreateComponentType<'styles'> + +// * 动画 +export const animationsClass = (animations: string[]) => { + if (animations.length) { + return `animate__animated animate__${animations[0]}` + } + return '' +} + +// * 滤镜 +export const getFilterStyle = (styles?: StylesType | EditCanvasConfigType) => { + if (!styles || !styles.filterShow) return {} + const { opacity, saturate, contrast, hueRotate, brightness } = styles + return { + opacity: opacity, + filter: `saturate(${saturate}) contrast(${contrast}) hue-rotate(${hueRotate}deg) brightness(${brightness})` + } +} + +// * 变换 +export const getTransformStyle = (styles: StylesType) => { + const { rotateZ, rotateX, rotateY, skewX, skewY } = styles + return { + transform: `rotateZ(${rotateZ || 0}deg) rotateX(${rotateX || 0}deg) rotateY(${rotateY || 0}deg) skewX(${ + skewX || 0 + }deg) skewY(${skewY || 0}deg)` + } +} + +// * 混合模式 +export const getBlendModeStyle = (styles: StylesType) => { + if (!styles || !styles.filterShow) return {} + const { blendMode } = styles + return { + 'mix-blend-mode': blendMode + } +} + +/** + * * hsla 转换 + * @param color 颜色 + * @param alpha 默认1 + * @returns + */ +export function alpha(color: string, alpha = 1) { + return Color(color).alpha(alpha).toString() +} + +/** + * * 颜色透明 + * rgba(10, 10, 10, 0.8) -> rgba(10, 10, 10, 0.4) + * @param color 颜色 + * @param concentration 0~1 浓度 + * @returns + */ +export function fade(color: string, fade: number) { + return Color(color).fade(fade).toString() +} + +/** + * * 颜色变亮 + * hsl(100, 50%, 10%) -> hsl(100, 50%, 50%) + * @param color 颜色 + * @param concentration 0~1 浓度 + * @returns + */ +export function lighten(color: string, concentration: number) { + return Color(color).lighten(concentration).toString() +} + +/** + * * 颜色变暗 + * hsl(100, 50%, 50%) -> hsl(100, 50%, 25%) + * @param color 颜色 + * @param concentration 0~1 浓度 + * @returns + */ +export function darken(color: string, concentration: number) { + return Color(color).darken(concentration).toString() +} + +/** + * * 修改主题色 + * @param themeName 主题名称 + * @returns + */ +export const setHtmlTheme = (themeName?: string) => { + const e = window.document.documentElement + if (themeName) { + e.setAttribute('data-theme', themeName) + return + } + const designStore = useDesignStore() + e.setAttribute('data-theme', designStore.themeName) +} diff --git a/grailed-ui-go-view/src/utils/type.ts b/grailed-ui-go-view/src/utils/type.ts new file mode 100644 index 0000000..7b86c02 --- /dev/null +++ b/grailed-ui-go-view/src/utils/type.ts @@ -0,0 +1,33 @@ +import isObject from 'lodash/isObject' + +export function isString(p: any): p is string { + return typeof p === 'string' +} + +export function isNumber(p: any): p is number { + return typeof p === 'number' +} + +export function isBoolean(p: any): p is boolean { + return typeof p === 'boolean' +} + +export function isUndefined(p: any): p is undefined { + return typeof p === 'undefined' +} + +export function isNull(p: any): p is null { + return p === null +} + +export function isArray(p: any): p is [] { + return Array.isArray(p) +} + +export const toNumber = (number: number | string, toFixedNumber = 2) => { + return isString(number) ? parseFloat(parseFloat(number).toFixed(2)) : number +} + +export const toString = (str: any) => { + return isNumber(str) ? `${str}` : (isObject(str) ? JSON.stringify(str) : str) +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/utils/utils.ts b/grailed-ui-go-view/src/utils/utils.ts new file mode 100644 index 0000000..281f806 --- /dev/null +++ b/grailed-ui-go-view/src/utils/utils.ts @@ -0,0 +1,406 @@ +import { h } from 'vue' +import { NIcon } from 'naive-ui' +import screenfull from 'screenfull' +import throttle from 'lodash/throttle' +import Image_404 from '../assets/images/exception/image-404.png' +import html2canvas from 'html2canvas' +import { downloadByA } from './file' +import { toString } from './type' +import cloneDeep from 'lodash/cloneDeep' +import { WinKeyboard } from '@/enums/editPageEnum' +import { RequestHttpIntervalEnum, RequestParamsObjType } from '@/enums/httpEnum' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { excludeParseEventKeyList } from '@/enums/eventEnum' + +/** + * * 判断是否是开发环境 + * @return { Boolean } + */ +export const isDev = () => { + return import.meta.env.DEV +} + +/** + * * 生成一个不重复的ID + * @param { Number } randomLength + */ +export const getUUID = (randomLength = 10) => { + return Number(Math.random().toString().substring(2, randomLength) + Date.now()).toString(36) +} + +/** + * * render 图标 + * @param icon 图标 + * @param set 设置项 + */ +export const renderIcon = (icon: any, set = {}) => { + return () => h(NIcon, set, { default: () => h(icon) }) +} +/** + * * render 语言 + * @param lang 语言标识 + * @param set 设置项 + * @param tag 要渲染成的标签 + */ +export const renderLang = (lang: string, set = {}, tag = 'span') => { + return () => h(tag, set, { default: () => window['$t'](lang) }) +} + +/** + * * 获取错误处理图片,默认 404 图 + * @returns url + */ +export const requireErrorImg = () => { + return Image_404 +} + +/** + * * 全屏操作函数 + * @param isFullscreen + * @param isEnabled + * @returns + */ +export const screenfullFn = (isFullscreen?: boolean, isEnabled?: boolean) => { + // 是否是全屏 + if (isFullscreen) return screenfull.isFullscreen + + // 是否支持全屏 + if (isEnabled) return screenfull.isEnabled + + if (screenfull.isEnabled) { + screenfull.toggle() + return + } + // TODO lang + window['$message'].warning('您的浏览器不支持全屏功能!') +} + +/** + * 修改元素位置 + * @param target 对象 + * @param x X轴 + * @param y Y轴 + */ +export const setComponentPosition = ( + target: CreateComponentType | CreateComponentGroupType, + x?: number, + y?: number +) => { + x && (target.attr.x = x) + y && (target.attr.y = y) +} + +/** + * * 设置元素属性 + * @param HTMLElement 元素 + * @param key 键名 + * @param value 键值 + */ +export const setDomAttribute = ( + HTMLElement: HTMLElement, + key: K, + value: V +) => { + if (HTMLElement) { + HTMLElement.style[key] = value + } +} + +/** + * * 判断是否是 mac + * @returns boolean + */ +export const isMac = () => { + return /macintosh|mac os x/i.test(navigator.userAgent) +} + +/** + * * 挂载监听 + */ +// eslint-disable-next-line no-undef +export const addEventListener = ( + target: HTMLElement | Document, + type: K, + listener: any, + delay?: number, + // eslint-disable-next-line no-undef + options?: boolean | AddEventListenerOptions | undefined +) => { + if (!target) return + target.addEventListener( + type, + throttle(listener, delay || 300, { + leading: true, + trailing: false + }), + options + ) +} + +/** + * * 卸载监听 + */ +// eslint-disable-next-line no-undef +export const removeEventListener = ( + target: HTMLElement | Document, + type: K, + listener: any +) => { + if (!target) return + target.removeEventListener(type, listener) +} + +/** + * * 截取画面为图片并下载 + * @param html 需要截取的 DOM + */ +export const canvasCut = (html: HTMLElement | null, callback?: Function) => { + if (!html) { + window['$message'].error('导出失败!') + if (callback) callback() + return + } + + html2canvas(html, { + backgroundColor: null, + allowTaint: true, + useCORS: true + }).then((canvas: HTMLCanvasElement) => { + window['$message'].success('导出成功!') + downloadByA(canvas.toDataURL(), undefined, 'png') + if (callback) callback() + }) +} + +/** + * * 函数过滤器 + * @param data 数据值 + * @param res 返回顶级对象 + * @param funcStr 函数字符串 + * @param isToString 是否转为字符串 + * @param errorCallBack 错误回调函数 + * @param successCallBack 成功回调函数 + * @returns + */ +export const newFunctionHandle = ( + data: any, + res: any, + funcStr?: string, + isToString?: boolean, + errorCallBack?: Function, + successCallBack?: Function +) => { + try { + if (!funcStr) return data + const fn = new Function('data', 'res', funcStr) + const fnRes = fn(cloneDeep(data), cloneDeep(res)) + const resHandle = isToString ? toString(fnRes) : fnRes + // 成功回调 + successCallBack && successCallBack(resHandle) + return resHandle + } catch (error) { + // 失败回调 + errorCallBack && errorCallBack(error) + return '函数执行错误' + } +} + +/** + * * 处理请求事件单位 + * @param num 时间间隔 + * @param unit RequestHttpIntervalEnum + * @return number 秒数 + */ +export const intervalUnitHandle = (num: number, unit: RequestHttpIntervalEnum) => { + switch (unit) { + // 秒 + case RequestHttpIntervalEnum.SECOND: + return num * 1000 + // 分 + case RequestHttpIntervalEnum.MINUTE: + return num * 1000 * 60 + // 时 + case RequestHttpIntervalEnum.HOUR: + return num * 1000 * 60 * 60 + // 天 + case RequestHttpIntervalEnum.DAY: + return num * 1000 * 60 * 60 * 24 + default: + return num * 1000 + } +} + +/** + * * 对象转换 cookie 格式 + * @param obj + * @returns string + */ +export const objToCookie = (obj: RequestParamsObjType) => { + if (!obj) return '' + + let str = '' + for (const key in obj) { + str += key + '=' + obj[key] + ';' + } + return str.substring(0, str.length - 1) +} + +/** + * * 设置按下键盘按键的底部展示 + * @param keyCode + * @returns + */ +export const setKeyboardDressShow = (keyCode?: number) => { + const code = new Map([ + [17, WinKeyboard.CTRL], + [32, WinKeyboard.SPACE] + ]) + + const dom = document.getElementById('keyboard-dress-show') + if (!dom) return + if (!keyCode) { + window.onKeySpacePressHold?.(false) + dom.innerText = '' + return + } + if (keyCode && code.has(keyCode)) { + if (keyCode == 32) window.onKeySpacePressHold?.(true) + dom.innerText = `按下了「${code.get(keyCode)}」键` + } +} + +/** + * * JSON序列化,支持函数和 undefined + * @param data + */ +export const JSONStringify = (data: T) => { + return JSON.stringify( + data, + (key, val) => { + // 处理函数丢失问题 + if (typeof val === 'function') { + return `${val}` + } + // 处理 undefined 丢失问题 + if (typeof val === 'undefined') { + return null + } + return val + }, + 2 + ) +} + +/** + * * JSON反序列化,支持函数和 undefined + * @param data + */ +export const JSONParse = (data: string) => { + return JSON.parse(data, (k, v) => { + if (excludeParseEventKeyList.includes(k)) return v + if (typeof v === 'string' && v.indexOf && (v.indexOf('function') > -1 || v.indexOf('=>') > -1)) { + return eval(`(function(){return ${v}})()`) + } else if (typeof v === 'string' && v.indexOf && (v.indexOf('return ') > -1)) { + const baseLeftIndex = v.indexOf('(') + if (baseLeftIndex > -1) { + const newFn = `function ${v.substring(baseLeftIndex)}` + return eval(`(function(){return ${newFn}})()`) + } + } + return v + }) +} + +/** + * * 修改顶部标题 + * @param title + */ +export const setTitle = (title?: string) => { + title && (document.title = title) +} + +/** + * 时间日期转换 + * @param date 当前时间,new Date() 格式 + * @param format 需要转换的时间格式字符串 + * @description format 字符串随意,如 `YYYY-mm、YYYY-mm-dd` + * @description format 季度:"YYYY-mm-dd HH:MM:SS QQQQ" + * @description format 星期:"YYYY-mm-dd HH:MM:SS WWW" + * @description format 几周:"YYYY-mm-dd HH:MM:SS ZZZ" + * @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ" + * @returns 返回拼接后的时间字符串 + */ +export function formatDate(date: Date, format: string): string { + const we = date.getDay() // 星期 + const z = getWeek(date) // 周 + const qut = Math.floor((date.getMonth() + 3) / 3).toString() // 季度 + const opt: { [key: string]: string } = { + 'Y+': date.getFullYear().toString(), // 年 + 'm+': (date.getMonth() + 1).toString(), // 月(月份从0开始,要+1) + 'd+': date.getDate().toString(), // 日 + 'H+': date.getHours().toString(), // 时 + 'M+': date.getMinutes().toString(), // 分 + 'S+': date.getSeconds().toString(), // 秒 + 'q+': qut // 季度 + } + // 中文数字 (星期) + const week: { [key: string]: string } = { + '0': '日', + '1': '一', + '2': '二', + '3': '三', + '4': '四', + '5': '五', + '6': '六' + } + // 中文数字(季度) + const quarter: { [key: string]: string } = { + '1': '一', + '2': '二', + '3': '三', + '4': '四' + } + if (/(W+)/.test(format)) + format = format.replace( + RegExp.$1, + RegExp.$1.length > 1 ? (RegExp.$1.length > 2 ? '星期' + week[we] : '周' + week[we]) : week[we] + ) + if (/(Q+)/.test(format)) + format = format.replace( + RegExp.$1, + RegExp.$1.length == 4 ? '第' + quarter[qut] + '季度' : quarter[qut] + ) + if (/(Z+)/.test(format)) + format = format.replace(RegExp.$1, RegExp.$1.length == 3 ? '第' + z + '周' : z + '') + for (const k in opt) { + const r = new RegExp('(' + k + ')').exec(format) + // 若输入的长度不为1,则前面补零 + if (r) + format = format.replace( + r[1], + RegExp.$1.length == 1 ? opt[k] : opt[k].padStart(RegExp.$1.length, '0') + ) + } + return format +} + +/** + * 获取当前日期是第几周 + * @param dateTime 当前传入的日期值 + * @returns 返回第几周数字值 + */ +export function getWeek(dateTime: Date): number { + const temptTime = new Date(dateTime.getTime()) + // 周几 + const weekday = temptTime.getDay() || 7 + // 周1+5天=周六 + temptTime.setDate(temptTime.getDate() - weekday + 1 + 5) + let firstDay = new Date(temptTime.getFullYear(), 0, 1) + const dayOfWeek = firstDay.getDay() + let spendDay = 1 + if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1 + firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay) + const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000) + const result = Math.ceil(d / 7) + return result +} diff --git a/grailed-ui-go-view/src/views/chart/ContentBox/index.ts b/grailed-ui-go-view/src/views/chart/ContentBox/index.ts new file mode 100644 index 0000000..97fd8f7 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentBox/index.ts @@ -0,0 +1,3 @@ +import ContentBox from './index.vue' + +export { ContentBox } diff --git a/grailed-ui-go-view/src/views/chart/ContentBox/index.vue b/grailed-ui-go-view/src/views/chart/ContentBox/index.vue new file mode 100644 index 0000000..8f7b5e5 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentBox/index.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.ts b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.ts new file mode 100644 index 0000000..e9fe1d4 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.ts @@ -0,0 +1,3 @@ +import ChartsItemBox from './index.vue' + +export { ChartsItemBox } diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.vue b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.vue new file mode 100644 index 0000000..7ca3b1b --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsItemBox/index.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.ts b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.ts new file mode 100644 index 0000000..8fffb84 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.ts @@ -0,0 +1,3 @@ +import ChartsOptionContent from './index.vue' + +export { ChartsOptionContent } diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.vue b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.vue new file mode 100644 index 0000000..4b887f2 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsOptionContent/index.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.ts b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.ts new file mode 100644 index 0000000..119c998 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.ts @@ -0,0 +1,3 @@ +import ChartsSearch from './index.vue' + +export { ChartsSearch } diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.vue b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.vue new file mode 100644 index 0000000..f1a25dd --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/components/ChartsSearch/index.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useAside.hook.ts b/grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useAside.hook.ts new file mode 100644 index 0000000..eb69d0c --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useAside.hook.ts @@ -0,0 +1,92 @@ +import { shallowReactive, ref } from 'vue' +import { icon } from '@/plugins' +import { renderLang, renderIcon } from '@/utils' +import { themeColor, setItem, getCharts } from './useLayout.hook' +import { PackagesCategoryEnum, PackagesCategoryName, PackagesType } from '@/packages/index.d' +// 图表 +import { usePackagesStore } from '@/store/modules/packagesStore/packagesStore' +import { ChartLayoutStoreEnum } from '@/store/modules/chartLayoutStore/chartLayoutStore.d' +// 图标 +const { BarChartIcon } = icon.ionicons5 +const { + TableSplitIcon, + RoadmapIcon, + SpellCheckIcon, + GraphicalDataFlowIcon, +} = icon.carbon + + +// 图表 +export type MenuOptionsType = { + key: string + icon: ReturnType + label: ReturnType + list: PackagesType +} + +const { getPackagesList } = usePackagesStore() +const menuOptions: MenuOptionsType[] = [] + +const packagesListObj = { + [PackagesCategoryEnum.CHARTS]: { + icon: renderIcon(RoadmapIcon), + label: PackagesCategoryName.CHARTS, + }, + [PackagesCategoryEnum.INFORMATIONS]: { + icon: renderIcon(SpellCheckIcon), + label: PackagesCategoryName.INFORMATIONS, + }, + [PackagesCategoryEnum.TABLES]: { + icon: renderIcon(TableSplitIcon), + label: PackagesCategoryName.TABLES, + }, + [PackagesCategoryEnum.DECORATES]: { + icon: renderIcon(GraphicalDataFlowIcon), + label: PackagesCategoryName.DECORATES, + }, +} + +// 处理列表 +const handlePackagesList = () => { + for (const val in getPackagesList) { + menuOptions.push({ + key: val, + // @ts-ignore + icon: packagesListObj[val].icon, + // @ts-ignore + label: packagesListObj[val].label, + // @ts-ignore + list: getPackagesList[val], + }) + } +} +handlePackagesList() + +// 记录选中值 +let beforeSelect: string = menuOptions[0]['key'] +const selectValue = ref(menuOptions[0]['key']) + +// 选中的对象值 +const selectOptions = ref(menuOptions[0]) + +// 点击 item +const clickItemHandle = (key: string, item: any) => { + selectOptions.value = item + // 处理折叠 + if (beforeSelect === key) { + setItem(ChartLayoutStoreEnum.CHARTS, !getCharts.value) + } else { + setItem(ChartLayoutStoreEnum.CHARTS, true) + } + beforeSelect = key +} + +export { + getCharts, + BarChartIcon, + themeColor, + selectOptions, + selectValue, + clickItemHandle, + menuOptions, +} diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useLayout.hook.ts b/grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useLayout.hook.ts new file mode 100644 index 0000000..1e35533 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/hooks/useLayout.hook.ts @@ -0,0 +1,20 @@ +import { ref, toRefs } from 'vue' + +// 布局 +import { useChartLayoutStore } from '@/store/modules/chartLayoutStore/chartLayoutStore' +// 样式 +import { useDesignStore } from '@/store/modules/designStore/designStore' + +// 全局颜色 +const designStore = useDesignStore() +const themeColor = ref(designStore.getAppTheme) + +// 结构控制 +const { setItem } = useChartLayoutStore() +const { getCharts } = toRefs(useChartLayoutStore()) + +export { + themeColor, + setItem, + getCharts +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/index.ts b/grailed-ui-go-view/src/views/chart/ContentCharts/index.ts new file mode 100644 index 0000000..f77cc12 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/index.ts @@ -0,0 +1,3 @@ +import ContentCharts from './index.vue' + +export { ContentCharts } diff --git a/grailed-ui-go-view/src/views/chart/ContentCharts/index.vue b/grailed-ui-go-view/src/views/chart/ContentCharts/index.vue new file mode 100644 index 0000000..3f81d04 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentCharts/index.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/components/ChartThemeColor/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/components/ChartThemeColor/index.vue new file mode 100644 index 0000000..8313bda --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/components/ChartThemeColor/index.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.ts new file mode 100644 index 0000000..2926faf --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.ts @@ -0,0 +1,3 @@ +import CanvasPage from './index.vue' + +export { CanvasPage } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.vue new file mode 100644 index 0000000..865aae4 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/CanvasPage/index.vue @@ -0,0 +1,364 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartAnimation/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartAnimation/index.vue new file mode 100644 index 0000000..7614395 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartAnimation/index.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.ts new file mode 100644 index 0000000..73e38fa --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.ts @@ -0,0 +1,3 @@ +import ChartDataAjax from './index.vue' + +export { ChartDataAjax } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue new file mode 100644 index 0000000..736130c --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue @@ -0,0 +1,195 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.ts new file mode 100644 index 0000000..79652ba --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.ts @@ -0,0 +1,3 @@ +import ChartDataMatchingAndShow from './index.vue' + +export { ChartDataMatchingAndShow } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue new file mode 100644 index 0000000..0774a11 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.ts new file mode 100644 index 0000000..58215d1 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.ts @@ -0,0 +1,3 @@ +import ChartDataMonacoEditor from './index.vue' + +export { ChartDataMonacoEditor } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue new file mode 100644 index 0000000..a0078f1 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/displayTable.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/displayTable.vue new file mode 100644 index 0000000..768dc13 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/displayTable.vue @@ -0,0 +1,64 @@ + + + \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.ts new file mode 100644 index 0000000..6617da1 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.ts @@ -0,0 +1,3 @@ +import ChartDataDisplay from './index.vue' + +export { ChartDataDisplay } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.vue new file mode 100644 index 0000000..f2f6e6a --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataDisplay/index.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.ts new file mode 100644 index 0000000..724b5d2 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.ts @@ -0,0 +1,3 @@ +import ChartDataPondControl from './index.vue' + +export { ChartDataPondControl } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.vue new file mode 100644 index 0000000..3ff3c6c --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondControl/index.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.ts new file mode 100644 index 0000000..cb69adf --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.ts @@ -0,0 +1,3 @@ +import ChartDataPondList from './index.vue' + +export { ChartDataPondList } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.vue new file mode 100644 index 0000000..a19c90e --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/components/ChartDataPondList/index.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.ts new file mode 100644 index 0000000..af8dd52 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.ts @@ -0,0 +1,3 @@ +import ChartDataPond from './index.vue' + +export { ChartDataPond } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.vue new file mode 100644 index 0000000..ed9bc27 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataPond/index.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts new file mode 100644 index 0000000..a6efbcc --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts @@ -0,0 +1,3 @@ +import RequestGlobalConfig from './index.vue' + +export { RequestGlobalConfig } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue new file mode 100644 index 0000000..93dd506 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.ts new file mode 100644 index 0000000..72686c1 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.ts @@ -0,0 +1,3 @@ +import RequestGlobalHeaderTable from './index.vue' + +export { RequestGlobalHeaderTable } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.vue new file mode 100644 index 0000000..514a3d3 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalHeaderTable/index.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts new file mode 100644 index 0000000..71865c6 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts @@ -0,0 +1,3 @@ +import RequestHeader from './index.vue' + +export { RequestHeader } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue new file mode 100644 index 0000000..0801cb3 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts new file mode 100644 index 0000000..b016ea6 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts @@ -0,0 +1,3 @@ +import RequestHeaderTable from './index.vue' + +export { RequestHeaderTable } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue new file mode 100644 index 0000000..0761d28 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts new file mode 100644 index 0000000..d3242c6 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts @@ -0,0 +1,3 @@ +import RequestTargetConfig from './index.vue' + +export { RequestTargetConfig } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue new file mode 100644 index 0000000..3b9f92d --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts new file mode 100644 index 0000000..aca3331 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts @@ -0,0 +1,4 @@ +import ChartDataRequest from './index.vue' +import PondDataRequest from './pondIndex.vue' + +export { ChartDataRequest, PondDataRequest } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue new file mode 100644 index 0000000..84c6678 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/pondIndex.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/pondIndex.vue new file mode 100644 index 0000000..cac6f0e --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/pondIndex.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.ts new file mode 100644 index 0000000..1edd837 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.ts @@ -0,0 +1,3 @@ +import ChartDataStatic from './index.vue' + +export { ChartDataStatic } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.vue new file mode 100644 index 0000000..d286791 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataStatic/index.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/hooks/useFile.hooks.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/hooks/useFile.hooks.ts new file mode 100644 index 0000000..0825895 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/hooks/useFile.hooks.ts @@ -0,0 +1,49 @@ +import { ref, toRef, nextTick } from 'vue' +import { UploadCustomRequestOptions } from 'naive-ui' +import { FileTypeEnum } from '@/enums/fileTypeEnum' +import { readFile, downloadTextFile, JSONStringify, JSONParse } from '@/utils' + +export const useFile = (targetData: any) => { + const uploadFileListRef = ref() + + //@ts-ignore + const beforeUpload = ({ file }) => { + uploadFileListRef.value = [] + const type = file.file.type + if (type !== FileTypeEnum.JSON && type !== FileTypeEnum.TXT) { + window['$message'].warning('仅支持上传 【JSON】 格式文件,请重新上传!') + return false + } + return true + } + + // 自定义上传操作 + const customRequest = (options: UploadCustomRequestOptions) => { + const { file } = options + nextTick(() => { + if (file.file) { + readFile(file.file).then((fileData: any) => { + targetData.value.option.dataset = JSONParse(fileData) + }) + } else { + window['$message'].error('导入数据失败,请稍后重试或联系管理员!') + } + }) + } + + // 下载文件 + const download = () => { + try { + window['$message'].success('下载中,请耐心等待...') + downloadTextFile(JSONStringify(targetData.value.option.dataset), undefined, 'json') + } catch (error) { + window['$message'].error('下载失败,数据错误!') + } + } + return { + uploadFileListRef, + beforeUpload, + customRequest, + download + } +} diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts new file mode 100644 index 0000000..261ae32 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts @@ -0,0 +1,105 @@ +import { RequestHttpEnum, RequestHttpIntervalEnum, RequestDataTypeEnum, SelectHttpTimeNameObj } from '@/enums/httpEnum' + +// 匹配结果 +export enum DataResultEnum { + NULL = 0, + SUCCESS = 1, + FAILURE = 2, +} + +export enum TimelineTitleEnum { + FILTER = '数据过滤', + MAPPING = '数据映射', + CONTENT = '数据内容', +} + +export enum SelectCreateDataEnum { + STATIC = '静态数据', + AJAX = '动态请求', + Pond = '公共接口', +} + +export interface SelectCreateDataType { + label: SelectCreateDataEnum + value: RequestDataTypeEnum + disabled?: boolean +} + +// ajax 请求类型 +export interface SelectHttpType { + label: RequestHttpEnum + value: RequestHttpEnum + disabled?: boolean + style?: object +} + +// 类型选项 +export const selectTypeOptions: SelectHttpType[] = [ + { + label: RequestHttpEnum.GET, + value: RequestHttpEnum.GET, + style: { + color: 'greenyellow', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.POST, + value: RequestHttpEnum.POST, + style: { + color: 'skyblue', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.PUT, + value: RequestHttpEnum.PUT, + style: { + color: 'goldenrod', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.PATCH, + value: RequestHttpEnum.PATCH, + style: { + color: 'violet', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.DELETE, + value: RequestHttpEnum.DELETE, + disabled: true, + style: { + fontWeight: 'bold' + } + }, +] + +// ajax 请求间隔 +export interface SelectHttpTimeType { + label: string + value: RequestHttpIntervalEnum + disabled?: boolean +} + +// 时间选项 +export const selectTimeOptions: SelectHttpTimeType[] = [ + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.SECOND], + value: RequestHttpIntervalEnum.SECOND + }, + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.MINUTE], + value: RequestHttpIntervalEnum.MINUTE + }, + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.HOUR], + value: RequestHttpIntervalEnum.HOUR + }, + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.DAY], + value: RequestHttpIntervalEnum.DAY + }, +] \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.vue new file mode 100644 index 0000000..2915cb0 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartData/index.vue @@ -0,0 +1,49 @@ + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/importTemplate.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/importTemplate.ts new file mode 100644 index 0000000..527dd9b --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/importTemplate.ts @@ -0,0 +1,189 @@ +// 获取实例 +const eTemplateString = ` +console.log(e) +` +// 获取全局 echarts 实例 +const echartsTemplateString = ` +console.log(echarts) +` + +// 获取当前组件图表集合 +const componentsTemplateString = ` +console.log(components) +` + +// 获取 nodeModules 实例 +const nodeModulesTemplateString = ` +console.log(node_modules) +` + +// 添加点击事件 +const addClickTemplateString = ` +// 在渲染之后才能获取 dom 实例 +e.el.addEventListener('click', () => { + alert('我触发拉~'); +}, false) +` + +// 异步引入 +const importTemplateString = ` +await import('https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/lodash.js/4.17.21/lodash.js') + +// lodash 默认赋值给 "_" +console.log('isEqual', _.isEqual(['1'], ['1'])) +` + +// 修改图表 tooltip +const tooltipTemplateString = + ` +// 获取echart实例 +const chart = this.refs.vChartRef.chart + +// 图表设置tooltip +chart.setOption({ + tooltip: { + trigger: 'axis', //item + enterable: true, + formatter (params) { + return` + + '`' + + ` +
+ + 《这是一个自定义的tooltip》 +
+
+ ` + + '$' + + `{Object.entries(params[0].value).map(kv => ` + + '`' + + `
` + + '$' + + `{kv[0]}:` + + '$' + + `{kv[1]}
` + + '`' + + `).join('')} +
+ ` + + '`;' + + ` + }, + } +}) +` + +// 添加【轮播列表】样式 +const addStyleString = + ` +// 组件样式作用域标识 +const scoped = this.subTree.scopeId +function loadStyleString(css){ + let style = document.createElement('style') + style.type = 'text/css' + style.appendChild(document.createTextNode(css)) + let head = document.getElementsByTagName('head')[0] + head.appendChild(style) +} +loadStyleString(` + + '`' + + ` +.dv-scroll-board[` + + '$' + + `{scoped}] { + position: relative; + overflow: hidden; +} +.dv-scroll-board[` + + '$' + + `{scoped}]::before { + content: ''; + display: block; + position: absolute; + top: -20%; + left: -100%; + width: 550px; + height: 60px; + transform: rotate(-45deg); + background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(255, 255, 255, 0.3), rgba(0, 0, 0, 0)); + animation: cross 2s infinite; +} +@keyframes cross{ + to{ + top: 80%; + left: 100%; + transform: rotate(-45deg); + } +} +` + + '`' + + `) +` + +// 修改地图原点大小 +const editMapPointString = ` +const chart = this.refs.vChartRef.chart +// 定义地图原点大小 同理可自定义标签等等内容 +this.props.chartConfig.option.series[0].symbolSize = (val) => { + return Math.sqrt(val[2]) / 3; +} +this.setupState.vEchartsSetOption(); +let i = 0; // 当前轮播索引 +const len = 3; // 轮播部分提示 +(function showTips() { + const action = (type, dataIndex) => { + chart.dispatchAction({ + type, + dataIndex, + seriesIndex: 0, + }); + } + setInterval(() => { + action("downplay", i); + action("hideTip", i); + if (i === len) i = 0; + i++; + action("highlight", i); + action("showTip", i); + }, 2000); +})() +` + +export const templateList = [ + { + description: '获取当前组件实例', + code: eTemplateString + }, + { + description: '获取全局 echarts 实例', + code: echartsTemplateString + }, + { + description: '获取组件图表集合', + code: componentsTemplateString + }, + { + description: '获取 nodeModules 实例', + code: nodeModulesTemplateString + }, + { + description: '获取远程 CDN 库', + code: importTemplateString + }, + { + description: '设置文字组件点击事件', + code: addClickTemplateString + }, + { + description: '修改图表 tooltip', + code: tooltipTemplateString + }, + { + description: '添加【轮播列表】样式', + code: addStyleString + }, + { + description: '修改【地图】圆点,新增提示自动轮播', + code: editMapPointString + } +] diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.ts new file mode 100644 index 0000000..32daaf6 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.ts @@ -0,0 +1,3 @@ +import ChartEventAdvancedHandle from './index.vue' + +export { ChartEventAdvancedHandle } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue new file mode 100644 index 0000000..581fefc --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.ts new file mode 100644 index 0000000..d45f2f1 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.ts @@ -0,0 +1,3 @@ +import ChartEventBaseHandle from './index.vue' + +export { ChartEventBaseHandle } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue new file mode 100644 index 0000000..2defea3 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/index.scss b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/index.scss new file mode 100644 index 0000000..8cd67cf --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/components/index.scss @@ -0,0 +1,51 @@ +/* 外层也要使用 */ +.func-keyword { + color: #b478cf; +} + +.func-annotate { + color: #70c0e8; +} + +@include go('chart-data-monaco-editor') { + .func-keyNameWord { + color: #70c0e8; + } + .tab-tip { + font-size: 12px; + } + &.n-card.n-modal, + .n-card { + @extend .go-background-filter; + } +} +@include deep() { + .n-layout, + .n-layout-sider { + background-color: transparent; + } + .collapse-show-box { + .n-card__content { + padding-left: 20px; + padding-right: 10px; + } + } + .go-editor-area { + max-height: 530px; + } + .checkbox--hidden:checked { + & + label { + .n-icon { + transition: all 0.3s; + transform: rotate(180deg); + } + } + & ~ .go-editor-area { + display: none; + } + } + // 优化代码换行 + .n-code > pre { + white-space: break-spaces; + } +} diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/index.vue new file mode 100644 index 0000000..05e5ce4 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartEvent/index.vue @@ -0,0 +1,21 @@ + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartSetting/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartSetting/index.vue new file mode 100644 index 0000000..21c7d96 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/ChartSetting/index.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/hooks/useTargetData.hook.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/hooks/useTargetData.hook.ts new file mode 100644 index 0000000..0fde624 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/components/hooks/useTargetData.hook.ts @@ -0,0 +1,14 @@ +import { computed, Ref } from 'vue' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' + +// 获取当前对象数据 +export const useTargetData = () => { + const chartEditStore = useChartEditStore() + const targetData: Ref = computed(() => { + const list = chartEditStore.getComponentList + const targetIndex = chartEditStore.fetchTargetIndex() + return list[targetIndex] + }) + return { targetData, chartEditStore } +} diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.d.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.d.ts new file mode 100644 index 0000000..59ca5bc --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.d.ts @@ -0,0 +1,7 @@ +export enum TabsEnum { + PAGE_SETTING = 'pageSetting', + CHART_SETTING = 'chartSetting', + CHART_ANIMATION = 'chartAnimation', + CHART_DATA = 'chartData', + CHART_EVENT = 'chartEvent' +} diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.ts b/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.ts new file mode 100644 index 0000000..e708cd5 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.ts @@ -0,0 +1,3 @@ +import ContentConfigurations from './index.vue' + +export { ContentConfigurations } diff --git a/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.vue b/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.vue new file mode 100644 index 0000000..110a3c2 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentConfigurations/index.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.ts new file mode 100644 index 0000000..d07271c --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.ts @@ -0,0 +1,3 @@ +import EditAlignLine from './index.vue' + +export { EditAlignLine } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.vue new file mode 100644 index 0000000..bfa3000 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditAlignLine/index.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.ts new file mode 100644 index 0000000..d987298 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.ts @@ -0,0 +1,3 @@ +import EditBottom from './index.vue' + +export { EditBottom } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.vue new file mode 100644 index 0000000..2f21b65 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditBottom/index.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.ts new file mode 100644 index 0000000..b012584 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.ts @@ -0,0 +1,3 @@ +import EditDataSync from './index.vue' + +export { EditDataSync } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.vue new file mode 100644 index 0000000..7a2a8f8 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditDataSync/index.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.ts new file mode 100644 index 0000000..4fd9d52 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.ts @@ -0,0 +1,3 @@ +import EditGroup from './index.vue' + +export { EditGroup } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.vue new file mode 100644 index 0000000..5d7f146 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditGroup/index.vue @@ -0,0 +1,129 @@ + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.ts new file mode 100644 index 0000000..36ca8b2 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.ts @@ -0,0 +1,3 @@ +import EditHistory from './index.vue' + +export { EditHistory } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.vue new file mode 100644 index 0000000..a9c6c6a --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditHistory/index.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.ts new file mode 100644 index 0000000..eadec58 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.ts @@ -0,0 +1,3 @@ +import EditRange from './index.vue' + +export { EditRange } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.vue new file mode 100644 index 0000000..d9a7bcc --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRange/index.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.ts new file mode 100644 index 0000000..426c4ce --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.ts @@ -0,0 +1,3 @@ +import EditRule from './index.vue' + +export { EditRule } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.vue new file mode 100644 index 0000000..e200bee --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditRule/index.vue @@ -0,0 +1,356 @@ + + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.ts new file mode 100644 index 0000000..88b3334 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.ts @@ -0,0 +1,3 @@ +import EditSelect from './index.vue' + +export { EditSelect } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.vue new file mode 100644 index 0000000..90fc086 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditSelect/index.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.ts new file mode 100644 index 0000000..8980e45 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.ts @@ -0,0 +1,3 @@ +import EditShapeBox from './index.vue' + +export { EditShapeBox } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.vue new file mode 100644 index 0000000..b509b32 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShapeBox/index.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/ShortcutKeyModal.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/ShortcutKeyModal.vue new file mode 100644 index 0000000..c8ed76a --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/ShortcutKeyModal.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.ts new file mode 100644 index 0000000..377edf8 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.ts @@ -0,0 +1,3 @@ +import EditShortcutKey from './index.vue' + +export { EditShortcutKey } \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.vue new file mode 100644 index 0000000..1ffc816 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditShortcutKey/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useFile.hooks.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useFile.hooks.ts new file mode 100644 index 0000000..3acc824 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useFile.hooks.ts @@ -0,0 +1,68 @@ +import { ref, nextTick } from 'vue' +import { UploadCustomRequestOptions } from 'naive-ui' +import { FileTypeEnum } from '@/enums/fileTypeEnum' +import { readFile, goDialog, JSONParse } from '@/utils' +import { useSync } from '@/views/chart/hooks/useSync.hook' + +export const useFile = () => { + const importUploadFileListRef = ref() + const { updateComponent } = useSync() + // 上传-前置 + //@ts-ignore + const importBeforeUpload = ({ file }) => { + importUploadFileListRef.value = [] + const type = file.file.type + if (type !== FileTypeEnum.JSON && type !== FileTypeEnum.TXT) { + window['$message'].warning('仅支持上传 【JSON】 格式文件,请重新上传!') + return false + } + return true + } + + // 上传-导入 + const importCustomRequest = (options: UploadCustomRequestOptions) => { + const { file } = options + nextTick(() => { + if (file.file) { + readFile(file.file).then((fileData: any) => { + goDialog({ + message: '请选择导入方式:', + positiveText: '新增(可撤回)', + negativeText: '覆盖(不可撤回)', + negativeButtonProps: { type: 'info', ghost: false }, + // 新增 + onPositiveCallback: async () => { + try { + fileData = JSONParse(fileData) + await updateComponent(fileData, false, true) + window['$message'].success('导入成功!') + } catch (error) { + console.log(error) + window['$message'].error('组件导入失败,请检查文件完整性!') + } + }, + // 覆盖 + onNegativeCallback: async () => { + try { + fileData = JSONParse(fileData) + await updateComponent(fileData, true, true) + window['$message'].success('导入成功!') + } catch (error) { + console.log(error) + window['$message'].error('组件导入失败,请检查文件完整性!') + } + } + }) + }) + } else { + window['$message'].error('导入失败,请检查数据或联系管理员!') + } + }) + } + + return { + importUploadFileListRef, + importBeforeUpload, + importCustomRequest + } +} diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useSyncUpdate.hook.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useSyncUpdate.hook.ts new file mode 100644 index 0000000..3a1633a --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/hooks/useSyncUpdate.hook.ts @@ -0,0 +1,65 @@ +import { watch } from 'vue' +import { useRoute } from 'vue-router' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { useSync } from '@/views/chart/hooks/useSync.hook' +import { ChartEnum } from '@/enums/pageEnum' +import { SavePageEnum } from '@/enums/editPageEnum' +import { editToJsonInterval } from '@/settings/designSetting' + +const { updateComponent, dataSyncUpdate } = useSync() +const chartEditStore = useChartEditStore() + +// 侦听器更新 +const useSyncUpdateHandle = () => { + // 定义侦听器变量 + let timer: any + const updateFn = (e: any) => updateComponent(e!.detail, true, false) + const syncData = async () => { + dataSyncUpdate && (await dataSyncUpdate()) + dispatchEvent(new CustomEvent(SavePageEnum.CHART, { detail: chartEditStore.getStorageInfo })) + } + + // 开启侦听 + const use = () => { + // // 1、定时同步数据 + // timer = setInterval(() => { + // // 窗口激活并且处于工作台 + // document.hasFocus() && syncData() + // }, editToJsonInterval) + // // 1、定时同步数据 + // timer = setInterval(() => { + // // 窗口激活并且处于工作台 + // document.hasFocus() && syncData() + // }, editToJsonInterval) + // 2、失焦同步数据 + addEventListener('blur', syncData) + + // 【监听JSON代码 刷新工作台图表】 + addEventListener(SavePageEnum.JSON, updateFn) + } + + // 关闭侦听 + const unUse = () => { + // clearInterval(timer) + // clearInterval(timer) + removeEventListener(SavePageEnum.JSON, updateFn) + removeEventListener('blur', syncData) + } + + // 路由变更时处理 + const watchHandler = (toName: any, fromName: any) => { + if (fromName == ChartEnum.CHART_HOME_NAME) { + unUse() + } + if (toName == ChartEnum.CHART_HOME_NAME) { + use() + } + } + + return watchHandler +} + +export const useSyncUpdate = () => { + const routerParamsInfo = useRoute() + watch(() => routerParamsInfo.name, useSyncUpdateHandle(), { immediate: true }) +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.d.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.d.ts new file mode 100644 index 0000000..950436d --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.d.ts @@ -0,0 +1,12 @@ +export enum TypeEnum { + BUTTON = 'button', + IMPORTUPLOAD = 'importUpload' +} + +export type BtnListType = { + key: string + type: TypeEnum + name: string + icon: any + handle?: () => void +} diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.ts new file mode 100644 index 0000000..e4dcfcb --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.ts @@ -0,0 +1,3 @@ +import EditTools from './index.vue' + +export { EditTools } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.vue new file mode 100644 index 0000000..79d2eb6 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/index.vue @@ -0,0 +1,370 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/utils/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/utils/index.ts new file mode 100644 index 0000000..39e7af1 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditTools/utils/index.ts @@ -0,0 +1,41 @@ +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { canvasCut, downloadTextFile, JSONStringify } from '@/utils' +const chartEditStore = useChartEditStore() + +// 导出 +export const exportHandle = () => { + // 取消选中 + chartEditStore.setTargetSelectChart(undefined) + + // 导出数据 + downloadTextFile( + JSONStringify(chartEditStore.getStorageInfo || []), + undefined, + 'json' + ) + + // 导出图片 + const range = document.querySelector('.go-edit-range') as HTMLElement + const watermark = document.getElementById('go-edit-watermark') + // 隐藏边距线 + if (!range || !watermark) { + window['$message'].error('导出失败!') + return + } + + // 记录缩放比例 + const scaleTemp = chartEditStore.getEditCanvas.scale + // 百分百展示页面 + chartEditStore.setScale(1, true) + // 展示水印 + watermark.style.display = 'block' + + setTimeout(() => { + canvasCut(range, () => { + // 隐藏水印 + if (watermark) watermark.style.display = 'none' + // 还原页面大小 + chartEditStore.setScale(scaleTemp, true) + }) + }, 600) +} diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.ts new file mode 100644 index 0000000..77882ab --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.ts @@ -0,0 +1,3 @@ +import EditWatermark from './index.vue' + +export { EditWatermark } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.vue new file mode 100644 index 0000000..88fe429 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/components/EditWatermark/index.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useDrag.hook.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useDrag.hook.ts new file mode 100644 index 0000000..3aae554 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useDrag.hook.ts @@ -0,0 +1,382 @@ +import { toRaw } from 'vue' +import { DragKeyEnum, MouseEventButton } from '@/enums/editPageEnum' +import { createComponent } from '@/packages' +import { ConfigType } from '@/packages/index.d' +import { CreateComponentType, CreateComponentGroupType, PickCreateComponentType } from '@/packages/index.d' +import { useContextMenu } from '@/views/chart/hooks/useContextMenu.hook' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { EditCanvasTypeEnum } from '@/store/modules/chartEditStore/chartEditStore.d' +import { loadingStart, loadingFinish, loadingError, setComponentPosition, JSONParse } from '@/utils' +import { throttle, cloneDeep } from 'lodash' + +const chartEditStore = useChartEditStore() +const { onClickOutSide } = useContextMenu() + +// * 拖拽到编辑区域里 +export const dragHandle = async (e: DragEvent) => { + e.preventDefault() + + try { + loadingStart() + + // 获取拖拽数据 + const drayDataString = e!.dataTransfer!.getData(DragKeyEnum.DRAG_KEY) + if (!drayDataString) { + loadingFinish() + return + } + + // 修改状态 + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_CREATE, false) + const dropData: Exclude = JSONParse(drayDataString) + + // 创建新图表组件 + let newComponent: CreateComponentType = await createComponent(dropData) + + setComponentPosition(newComponent, e.offsetX - newComponent.attr.w / 2, e.offsetY - newComponent.attr.h / 2) + chartEditStore.addComponentList(newComponent, false, true) + chartEditStore.setTargetSelectChart(newComponent.id) + loadingFinish() + } catch (error) { + loadingError() + window['$message'].warning(`图表正在研发中, 敬请期待...`) + } +} + +// * 进入拖拽区域 +export const dragoverHandle = (e: DragEvent) => { + e.preventDefault() + e.stopPropagation() + + if (e.dataTransfer) e.dataTransfer.dropEffect = 'copy' +} + +// * 不拦截默认行为点击 +export const mousedownHandleUnStop = (e: MouseEvent, item?: CreateComponentType | CreateComponentGroupType) => { + if (item) { + chartEditStore.setTargetSelectChart(item.id) + return + } + chartEditStore.setTargetSelectChart(undefined) +} + +// * 框选 +export const mousedownBoxSelect = (e: MouseEvent, item?: CreateComponentType | CreateComponentGroupType) => { + if (e.which == 2) return + if (window.$KeyboardActive?.space) return + + mousedownHandleUnStop(e) + + // 记录点击初始位置 + const startOffsetX = e.offsetX + const startOffsetY = e.offsetY + const startScreenX = e.screenX + const startScreenY = e.screenY + + // 记录缩放 + const scale = chartEditStore.getEditCanvas.scale + + chartEditStore.setMousePosition(undefined, undefined, startOffsetX, startOffsetY) + + // 移动框选 + const mousemove = throttle((moveEvent: MouseEvent) => { + // 取消当前选中 + chartEditStore.setTargetSelectChart() + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_SELECT, true) + + // 这里先把相对值算好,不然组件无法获取 startScreenX 和 startScreenY 的值 + const currX = startOffsetX + moveEvent.screenX - startScreenX + const currY = startOffsetY + moveEvent.screenY - startScreenY + chartEditStore.setMousePosition(currX, currY) + + // 计算框选的左上角和右下角 + const selectAttr = { + // 左上角 + x1: 0, + y1: 0, + // 右下角 + x2: 0, + y2: 0 + } + if (currX > startOffsetX && currY > startOffsetY) { + // 右下方向 + selectAttr.x1 = startOffsetX + selectAttr.y1 = startOffsetY + selectAttr.x2 = Math.round(startOffsetX + (moveEvent.screenX - startScreenX) / scale) + selectAttr.y2 = Math.round(startOffsetY + (moveEvent.screenY - startScreenY) / scale) + } else if (currX > startOffsetX && currY < startOffsetY) { + // 右上方向 + selectAttr.x1 = startOffsetX + selectAttr.y1 = Math.round(startOffsetY - (startScreenY - moveEvent.screenY) / scale) + selectAttr.x2 = Math.round(startOffsetX + (moveEvent.screenX - startScreenX) / scale) + selectAttr.y2 = startOffsetY + } else if (currX < startOffsetX && currY > startOffsetY) { + selectAttr.x1 = Math.round(startOffsetX - (startScreenX - moveEvent.screenX) / scale) + selectAttr.y1 = startOffsetY + selectAttr.x2 = startOffsetX + selectAttr.y2 = Math.round(startOffsetY + (moveEvent.screenY - startScreenY) / scale) + // 左下方向 + } else { + // 左上方向 + selectAttr.x1 = Math.round(startOffsetX - (startScreenX - moveEvent.screenX) / scale) + selectAttr.y1 = Math.round(startOffsetY - (startScreenY - moveEvent.screenY) / scale) + selectAttr.x2 = startOffsetX + selectAttr.y2 = startOffsetY + } + + // 遍历组件 + chartEditStore.getComponentList.forEach(item => { + if (!chartEditStore.getTargetChart.selectId.includes(item.id)) { + // 处理左上角 + let isSelect = false + const { x, y, w, h } = item.attr + const targetAttr = { + // 左上角 + x1: x, + y1: y, + // 右下角 + x2: x + w, + y2: y + h + } + // 全包含则选中 + if ( + targetAttr.x1 - selectAttr.x1 >= 0 && + targetAttr.y1 - selectAttr.y1 >= 0 && + targetAttr.x2 - selectAttr.x2 <= 0 && + targetAttr.y2 - selectAttr.y2 <= 0 && + !item.status.lock && + !item.status.hide + ) { + isSelect = true + chartEditStore.setTargetSelectChart(item.id, true) + } + } + }) + }, 30) + + // 鼠标抬起 + const mouseup = () => { + // 鼠标抬起时,结束mousemove的节流函数,避免选框不消失问题 + mousemove.cancel() + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_SELECT, false) + chartEditStore.setMousePosition(0, 0, 0, 0) + document.removeEventListener('mousemove', mousemove) + document.removeEventListener('mouseup', mouseup) + } + document.addEventListener('mousemove', mousemove) + document.addEventListener('mouseup', mouseup) +} + +// * 鼠标事件 +export const useMouseHandle = () => { + // * Click 事件, 松开鼠标触发 + const mouseClickHandle = (e: MouseEvent, item: CreateComponentType | CreateComponentGroupType) => { + e.preventDefault() + e.stopPropagation() + if (item.status.lock) return + // 若此时按下了 CTRL, 表示多选 + if (window.$KeyboardActive?.ctrl) { + // 若已选中,则去除 + if (chartEditStore.targetChart.selectId.includes(item.id)) { + const exList = chartEditStore.targetChart.selectId.filter(e => e !== item.id) + chartEditStore.setTargetSelectChart(exList) + } else { + chartEditStore.setTargetSelectChart(item.id, true) + } + } + } + + // * 按下事件(包含移动事件) + const mousedownHandle = (e: MouseEvent, item: CreateComponentType | CreateComponentGroupType) => { + e.preventDefault() + e.stopPropagation() + if (item.status.lock) return + onClickOutSide() + // 按下左键 + CTRL + if (e.buttons === MouseEventButton.LEFT && window.$KeyboardActive?.ctrl) return + + // 按下右键 + 选中多个 + 目标元素是多选子元素 + const selectId = chartEditStore.getTargetChart.selectId + if (e.buttons === MouseEventButton.RIGHT && selectId.length > 1 && selectId.includes(item.id)) return + + // 选中当前目标组件 + chartEditStore.setTargetSelectChart(item.id) + + // 按下右键 + if (e.buttons === MouseEventButton.RIGHT) return + + const scale = chartEditStore.getEditCanvas.scale + const canvasWidth = chartEditStore.getEditCanvasConfig.width + const canvasHeight = chartEditStore.getEditCanvasConfig.height + + // 记录图表初始位置和大小 + const targetMap = new Map() + chartEditStore.getTargetChart.selectId.forEach(id => { + const index = chartEditStore.fetchTargetIndex(id) + if (index !== -1) { + const { x, y, w, h } = toRaw(chartEditStore.getComponentList[index]).attr + targetMap.set(id, { x, y, w, h }) + } + }) + + // 记录点击初始位置 + const startX = e.screenX + const startY = e.screenY + + // 记录历史位置 + let prevComponentInstance: Array = [] + chartEditStore.getTargetChart.selectId.forEach(id => { + if (!targetMap.has(id)) return + + const index = chartEditStore.fetchTargetIndex(id) + // 拿到初始位置数据 + prevComponentInstance.push(cloneDeep(chartEditStore.getComponentList[index])) + }) + + // 记录初始位置 + chartEditStore.setMousePosition(undefined, undefined, startX, startY) + + // 移动-计算偏移量 + const mousemove = throttle((moveEvent: MouseEvent) => { + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, true) + chartEditStore.setMousePosition(moveEvent.screenX, moveEvent.screenY) + + // 当前偏移量,处理 scale 比例问题 + let offsetX = (moveEvent.screenX - startX) / scale + let offsetY = (moveEvent.screenY - startY) / scale + + chartEditStore.getTargetChart.selectId.forEach(id => { + if (!targetMap.has(id)) return + + const index = chartEditStore.fetchTargetIndex(id) + // 拿到初始位置数据 + const { x, y, w, h } = targetMap.get(id) + const componentInstance = chartEditStore.getComponentList[index] + + let currX = Math.round(x + offsetX) + let currY = Math.round(y + offsetY) + + // 要预留的距离 + const distance = 50 + + // 基于左上角位置检测 + currX = currX < -w + distance ? -w + distance : currX + currY = currY < -h + distance ? -h + distance : currY + + // 基于右下角位置检测 + currX = currX > canvasWidth - distance ? canvasWidth - distance : currX + currY = currY > canvasHeight - distance ? canvasHeight - distance : currY + if (componentInstance) { + componentInstance.attr = Object.assign(componentInstance.attr, { + x: currX, + y: currY + }) + } + }) + return + }, 20) + + const mouseup = () => { + try { + chartEditStore.setMousePosition(0, 0, 0, 0) + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, false) + // 加入历史栈 + if (prevComponentInstance.length) { + chartEditStore.getTargetChart.selectId.forEach(id => { + if (!targetMap.has(id)) return + const index = chartEditStore.fetchTargetIndex(id) + const curComponentInstance = chartEditStore.getComponentList[index] + // 找到记录的所选组件 + prevComponentInstance.forEach(preItem => { + if (preItem.id === id) { + preItem.attr = Object.assign(preItem.attr, { + offsetX: curComponentInstance.attr.x - preItem.attr.x, + offsetY: curComponentInstance.attr.y - preItem.attr.y + }) + } + }) + }) + chartEditStore.moveComponentList(prevComponentInstance) + } + document.removeEventListener('mousemove', mousemove) + document.removeEventListener('mouseup', mouseup) + } catch (err) { + console.log(err) + } + } + + document.addEventListener('mousemove', mousemove) + document.addEventListener('mouseup', mouseup) + } + + // * 进入事件 + const mouseenterHandle = (e: MouseEvent, item: CreateComponentType | CreateComponentGroupType) => { + e.preventDefault() + e.stopPropagation() + if (!chartEditStore.getEditCanvas.isSelect) { + chartEditStore.setTargetHoverChart(item.id) + } + } + + // * 移出事件 + const mouseleaveHandle = (e: MouseEvent, item: CreateComponentType | CreateComponentGroupType) => { + e.preventDefault() + e.stopPropagation() + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, false) + chartEditStore.setTargetHoverChart(undefined) + } + + return { mouseClickHandle, mousedownHandle, mouseenterHandle, mouseleaveHandle } +} + +// * 移动锚点 +export const useMousePointHandle = (e: MouseEvent, point: string, attr: PickCreateComponentType<'attr'>) => { + e.stopPropagation() + e.preventDefault() + + // 设置拖拽状态 + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, true) + const scale = chartEditStore.getEditCanvas.scale + + const itemAttrX = attr.x + const itemAttrY = attr.y + const itemAttrW = attr.w + const itemAttrH = attr.h + + // 记录点击初始位置 + const startX = e.screenX + const startY = e.screenY + + // 记录初始位置 + chartEditStore.setMousePosition(startX, startY) + + const mousemove = throttle((moveEvent: MouseEvent) => { + chartEditStore.setMousePosition(moveEvent.screenX, moveEvent.screenY) + + let currX = Math.round((moveEvent.screenX - startX) / scale) + let currY = Math.round((moveEvent.screenY - startY) / scale) + + const isTop = /t/.test(point) + const isBottom = /b/.test(point) + const isLeft = /l/.test(point) + const isRight = /r/.test(point) + + const newHeight = itemAttrH + (isTop ? -currY : isBottom ? currY : 0) + const newWidth = itemAttrW + (isLeft ? -currX : isRight ? currX : 0) + + attr.h = newHeight > 0 ? newHeight : 0 + attr.w = newWidth > 0 ? newWidth : 0 + attr.x = itemAttrX + (isLeft ? currX : 0) + attr.y = itemAttrY + (isTop ? currY : 0) + }, 50) + + const mouseup = () => { + chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, false) + chartEditStore.setMousePosition(0, 0, 0, 0) + document.removeEventListener('mousemove', mousemove) + document.removeEventListener('mouseup', mouseup) + } + + document.addEventListener('mousemove', mousemove) + document.addEventListener('mouseup', mouseup) +} diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useLayout.hook.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useLayout.hook.ts new file mode 100644 index 0000000..1da17d5 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useLayout.hook.ts @@ -0,0 +1,29 @@ +import { onUnmounted, onMounted } from 'vue' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { EditCanvasTypeEnum } from '@/store/modules/chartEditStore/chartEditStore.d' + +const chartEditStore = useChartEditStore() + +// 布局处理 +export const useLayout = () => { + onMounted(() => { + // 设置 Dom 值(ref 不生效先用 document) + chartEditStore.setEditCanvas( + EditCanvasTypeEnum.EDIT_LAYOUT_DOM, + document.getElementById('go-chart-edit-layout') + ) + chartEditStore.setEditCanvas( + EditCanvasTypeEnum.EDIT_CONTENT_DOM, + document.getElementById('go-chart-edit-content') + ) + + // 监听初始化 + const removeScale = chartEditStore.listenerScale() + + onUnmounted(() => { + chartEditStore.setEditCanvas(EditCanvasTypeEnum.EDIT_LAYOUT_DOM, null) + chartEditStore.setEditCanvas(EditCanvasTypeEnum.EDIT_CONTENT_DOM, null) + removeScale() + }) + }) +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useStyle.hook.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useStyle.hook.ts new file mode 100644 index 0000000..14507f7 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/hooks/useStyle.hook.ts @@ -0,0 +1,65 @@ +import { PickCreateComponentType } from '@/packages/index.d' + +type AttrType = PickCreateComponentType<'attr'> + +export const useComponentStyle = (attr: AttrType, index: number) => { + if(!attr) return {} + const componentStyle = { + zIndex: index + 1, + left: `${attr.x}px`, + top: `${attr.y}px` + } + return componentStyle +} + +export const useSizeStyle = (attr: AttrType, scale?: number) => { + if(!attr) return {} + return { + width: `${scale ? scale * attr.w : attr.w}px`, + height: `${scale ? scale * attr.h : attr.h}px` + } +} + +// 锚点位置 +export const usePointStyle = ( + point: string, + index: number, + attr: PickCreateComponentType<'attr'>, + cursorResize: string[] +) => { + const { w: width, h: height } = attr + + const isTop = /t/.test(point) + const isBottom = /b/.test(point) + const isLeft = /l/.test(point) + const isRight = /r/.test(point) + + let newLeft = 0 + let newTop = 0 + + // 四个角的点 + if (point.length === 2) { + newLeft = isLeft ? 0 : width + newTop = isTop ? 0 : height + } else { + // 上下两点的点,宽度居中 + if (isTop || isBottom) { + newLeft = width / 2 + newTop = isTop ? 0 : height + } + + // 左右两边的点,高度居中 + if (isLeft || isRight) { + newLeft = isLeft ? 0 : width + newTop = Math.floor(height / 2) + } + } + + const style = { + left: `${newLeft}px`, + top: `${newTop}px`, + cursor: cursorResize[index] + '-resize' + } + + return style +} diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/index.ts b/grailed-ui-go-view/src/views/chart/ContentEdit/index.ts new file mode 100644 index 0000000..4a4766a --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/index.ts @@ -0,0 +1,3 @@ +import ContentEdit from './index.vue' + +export { ContentEdit } diff --git a/grailed-ui-go-view/src/views/chart/ContentEdit/index.vue b/grailed-ui-go-view/src/views/chart/ContentEdit/index.vue new file mode 100644 index 0000000..6f25ec9 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentEdit/index.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.ts b/grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.ts new file mode 100644 index 0000000..1a76146 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.ts @@ -0,0 +1,3 @@ +import HeaderLeftBtn from './index.vue' + +export { HeaderLeftBtn } diff --git a/grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.vue b/grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.vue new file mode 100644 index 0000000..e29a59a --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentHeader/headerLeftBtn/index.vue @@ -0,0 +1,164 @@ + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.ts b/grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.ts new file mode 100644 index 0000000..d6b6deb --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.ts @@ -0,0 +1,3 @@ +import HeaderRightBtn from './index.vue' + +export { HeaderRightBtn } diff --git a/grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.vue b/grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.vue new file mode 100644 index 0000000..9819bb2 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentHeader/headerRightBtn/index.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.ts b/grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.ts new file mode 100644 index 0000000..19b5dbc --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.ts @@ -0,0 +1,3 @@ +import HeaderTitle from './index.vue' + +export { HeaderTitle } diff --git a/grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.vue b/grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.vue new file mode 100644 index 0000000..e1a710a --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentHeader/headerTitle/index.vue @@ -0,0 +1,86 @@ + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.ts b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.ts new file mode 100644 index 0000000..2593932 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.ts @@ -0,0 +1,3 @@ +import LayersGroupListItem from './index.vue' + +export { LayersGroupListItem } diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue new file mode 100644 index 0000000..ac9892e --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.ts b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.ts new file mode 100644 index 0000000..f39abe9 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.ts @@ -0,0 +1,3 @@ +import LayersListItem from './index.vue' + +export { LayersListItem } diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.vue b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.vue new file mode 100644 index 0000000..d77ed45 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersListItem/index.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.ts b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.ts new file mode 100644 index 0000000..220d5c2 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.ts @@ -0,0 +1,3 @@ +import LayersStatus from './index.vue' + +export { LayersStatus } diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.vue b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.vue new file mode 100644 index 0000000..a43d8aa --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/components/LayersStatus/index.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/enums.ts b/grailed-ui-go-view/src/views/chart/ContentLayers/enums.ts new file mode 100644 index 0000000..e69de29 diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/index.ts b/grailed-ui-go-view/src/views/chart/ContentLayers/index.ts new file mode 100644 index 0000000..e2e64f5 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/index.ts @@ -0,0 +1,3 @@ +import ContentLayers from './index.vue' + +export { ContentLayers } diff --git a/grailed-ui-go-view/src/views/chart/ContentLayers/index.vue b/grailed-ui-go-view/src/views/chart/ContentLayers/index.vue new file mode 100644 index 0000000..4f5895d --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLayers/index.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/chart/ContentLoad/index.ts b/grailed-ui-go-view/src/views/chart/ContentLoad/index.ts new file mode 100644 index 0000000..7e41ed3 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLoad/index.ts @@ -0,0 +1,3 @@ +import ContentLoad from './index.vue' + +export { ContentLoad } diff --git a/grailed-ui-go-view/src/views/chart/ContentLoad/index.vue b/grailed-ui-go-view/src/views/chart/ContentLoad/index.vue new file mode 100644 index 0000000..2b7f46c --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/ContentLoad/index.vue @@ -0,0 +1,40 @@ + + + diff --git a/grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.d.ts b/grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.d.ts new file mode 100644 index 0000000..ec1276c --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.d.ts @@ -0,0 +1,11 @@ +import { MenuEnum } from '@/enums/editPageEnum' + +export interface MenuOptionsItemType { + type?: string + label?: string + key: MenuEnum | string + icon?: Function + fnHandle?: Function + disabled?: boolean + hidden?: boolean +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.ts b/grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.ts new file mode 100644 index 0000000..e0aa782 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/hooks/useContextMenu.hook.ts @@ -0,0 +1,277 @@ +import { ref, nextTick, toRaw } from 'vue' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { renderIcon, loadingError } from '@/utils' +import { icon } from '@/plugins' +import { MenuOptionsItemType } from './useContextMenu.hook.d' +import { MenuEnum } from '@/enums/editPageEnum' +import cloneDeep from 'lodash/cloneDeep' + +const { + CopyIcon, + CutIcon, + ClipboardOutlineIcon, + TrashIcon, + ChevronDownIcon, + ChevronUpIcon, + LockOpenOutlineIcon, + LockClosedOutlineIcon, + EyeOutlineIcon, + EyeOffOutlineIcon +} = icon.ionicons5 +const { UpToTopIcon, DownToBottomIcon, PaintBrushIcon, Carbon3DSoftwareIcon, Carbon3DCursorIcon } = icon.carbon + +const chartEditStore = useChartEditStore() + +/** + * 分割线 + * @param {number} n > 2 + * @returns + */ +export const divider = (n: number = 3) => { + return { + type: 'divider', + key: `d${n}` + } +} + +// * 默认单组件选项 +export const defaultOptions: MenuOptionsItemType[] = [ + { + label: '锁定', + key: MenuEnum.LOCK, + icon: renderIcon(LockClosedOutlineIcon), + fnHandle: chartEditStore.setLock + }, + { + label: '解锁', + key: MenuEnum.UNLOCK, + icon: renderIcon(LockOpenOutlineIcon), + fnHandle: chartEditStore.setUnLock + }, + { + label: '隐藏', + key: MenuEnum.HIDE, + icon: renderIcon(EyeOffOutlineIcon), + fnHandle: chartEditStore.setHide + }, + { + label: '显示', + key: MenuEnum.SHOW, + icon: renderIcon(EyeOutlineIcon), + fnHandle: chartEditStore.setShow + }, + { + type: 'divider', + key: 'd0' + }, + { + label: '复制', + key: MenuEnum.COPY, + icon: renderIcon(CopyIcon), + fnHandle: chartEditStore.setCopy + }, + { + label: '剪切', + key: MenuEnum.CUT, + icon: renderIcon(CutIcon), + fnHandle: chartEditStore.setCut + }, + { + label: '粘贴', + key: MenuEnum.PARSE, + icon: renderIcon(ClipboardOutlineIcon), + fnHandle: chartEditStore.setParse + }, + { + type: 'divider', + key: 'd1' + }, + { + label: '置顶', + key: MenuEnum.TOP, + icon: renderIcon(UpToTopIcon), + fnHandle: chartEditStore.setTop + }, + { + label: '置底', + key: MenuEnum.BOTTOM, + icon: renderIcon(DownToBottomIcon), + fnHandle: chartEditStore.setBottom + }, + { + label: '上移', + key: MenuEnum.UP, + icon: renderIcon(ChevronUpIcon), + fnHandle: chartEditStore.setUp + }, + { + label: '下移', + key: MenuEnum.DOWN, + icon: renderIcon(ChevronDownIcon), + fnHandle: chartEditStore.setDown + }, + { + type: 'divider', + key: 'd2' + }, + { + label: '清空剪贴板', + key: MenuEnum.CLEAR, + icon: renderIcon(PaintBrushIcon), + fnHandle: chartEditStore.setRecordChart + }, + { + label: '删除', + key: MenuEnum.DELETE, + icon: renderIcon(TrashIcon), + fnHandle: chartEditStore.removeComponentList + } +] + +// * 默认多选组件选项 +export const defaultMultiSelectOptions: MenuOptionsItemType[] = [ + { + label: '创建分组', + key: MenuEnum.GROUP, + icon: renderIcon(Carbon3DSoftwareIcon), + fnHandle: chartEditStore.setGroup + }, + { + label: '解除分组', + key: MenuEnum.UN_GROUP, + icon: renderIcon(Carbon3DCursorIcon), + fnHandle: chartEditStore.setUnGroup + } +] + +// * 无数据传递拥有的选项 +const defaultNoItemKeys = [MenuEnum.PARSE, MenuEnum.CLEAR] + +/** + * * 挑选选项 + * @param options + * @param pickList + * @returns + */ +const pickOption = (options: MenuOptionsItemType[], pickList?: MenuEnum[]) => { + if (!pickList) return options + const list: MenuOptionsItemType[] = [] + pickList.forEach(e => { + list.push(...options.filter(op => op.key === e)) + }) + return list +} + +/** + * * 去除选项 + * @param options + * @param hideList + * @returns + */ +const hideOption = (options: MenuOptionsItemType[], hideList?: MenuEnum[]) => { + if (!hideList) return options + return options.filter((op: MenuOptionsItemType) => { + return hideList.findIndex((e: MenuEnum) => e !== op.key) !== -1 + }) +} + +// * 右键内容 +const menuOptions = ref([]) + +// * 右键处理 +const handleContextMenu = ( + e: MouseEvent, + // 右键对象 + targetInstance?: CreateComponentType | CreateComponentGroupType, + // 判断函数 + optionsHandle?: Function, + // 隐藏选项列表 + hideOptionsList?: MenuEnum[], + // 挑选选项列表 + pickOptionsList?: MenuEnum[] +) => { + e.stopPropagation() + e.preventDefault() + + let target = e.target + while (target instanceof SVGElement) { + target = target.parentNode + } + + chartEditStore.setTargetSelectChart(targetInstance && targetInstance.id) + + // 隐藏旧列表 + chartEditStore.setRightMenuShow(false) + + // * 多选默认选项 + if (chartEditStore.getTargetChart.selectId.length > 1) { + menuOptions.value = defaultMultiSelectOptions + } else { + // * 单选默认选项 + menuOptions.value = defaultOptions + } + + if (!targetInstance) { + menuOptions.value = pickOption(toRaw(menuOptions.value), defaultNoItemKeys) + } + if (hideOptionsList) { + menuOptions.value = hideOption([...defaultMultiSelectOptions, divider(), ...defaultOptions], hideOptionsList) + } + if (pickOptionsList) { + menuOptions.value = pickOption([...defaultMultiSelectOptions, divider(), ...defaultOptions], pickOptionsList) + } + if (optionsHandle) { + // 自定义函数能够拿到当前选项和所有选项 + menuOptions.value = optionsHandle( + cloneDeep(toRaw(menuOptions.value)), + [...defaultMultiSelectOptions, ...defaultOptions], + targetInstance + ) + } + nextTick().then(() => { + chartEditStore.setMousePosition(e.clientX, e.clientY) + chartEditStore.setRightMenuShow(true) + }) +} + +/** + * * 右键hook + * @param menuConfig + * @returns + */ +export const useContextMenu = () => { + // 设置默认项 + menuOptions.value = defaultOptions + + // * 失焦 + const onClickOutSide = () => { + chartEditStore.setRightMenuShow(false) + } + + // * 事件处理 + const handleMenuSelect = (key: string) => { + chartEditStore.setRightMenuShow(false) + const targetItem: MenuOptionsItemType[] = menuOptions.value.filter((e: MenuOptionsItemType) => e.key === key) + + menuOptions.value.forEach((e: MenuOptionsItemType) => { + if (e.key === key) { + if (e.fnHandle) { + e.fnHandle() + return + } + if (!targetItem) loadingError() + } + }) + } + + return { + menuOptions, + defaultOptions, + defaultMultiSelectOptions, + handleContextMenu, + onClickOutSide, + handleMenuSelect, + mousePosition: chartEditStore.getMousePosition + } +} diff --git a/grailed-ui-go-view/src/views/chart/hooks/useKeyboard.hook.ts b/grailed-ui-go-view/src/views/chart/hooks/useKeyboard.hook.ts new file mode 100644 index 0000000..9cef8c6 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/hooks/useKeyboard.hook.ts @@ -0,0 +1,251 @@ +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { useSync } from './useSync.hook' +import { WinKeyboard, MacKeyboard, MenuEnum } from '@/enums/editPageEnum' +import throttle from 'lodash/throttle' +import debounce from 'lodash/debounce' +import keymaster from 'keymaster' +import { setKeyboardDressShow } from '@/utils' + +// Keymaster可以支持识别以下组合键: ⇧,shift,option,⌥,alt,ctrl,control,command,和⌘ +const chartEditStore = useChartEditStore() +const useSyncIns = useSync() +const winCtrlMerge = (e: string) => `${WinKeyboard.CTRL}+${e}` +const winShiftMerge = (e: string) => `${WinKeyboard.SHIFT}+${e}` +const winAltMerge = (e: string) => `${WinKeyboard.ALT}+${e}` + +export const winKeyboardValue = { + [MenuEnum.ARROW_UP]: winCtrlMerge('up'), + [MenuEnum.ARROW_RIGHT]: winCtrlMerge('right'), + [MenuEnum.ARROW_DOWN]: winCtrlMerge('down'), + [MenuEnum.ARROW_LEFT]: winCtrlMerge('left'), + [MenuEnum.COPY]: winCtrlMerge('c'), + [MenuEnum.CUT]: winCtrlMerge('x'), + [MenuEnum.PARSE]: winCtrlMerge('v'), + [MenuEnum.DELETE]: 'delete', + [MenuEnum.BACK]: winCtrlMerge('z'), + [MenuEnum.FORWORD]: winCtrlMerge(winShiftMerge('z')), + [MenuEnum.SAVE]: winCtrlMerge('s'), + [MenuEnum.GROUP]: winCtrlMerge('g'), + [MenuEnum.UN_GROUP]: winCtrlMerge(winShiftMerge('g')), + [MenuEnum.LOCK]: winCtrlMerge('l'), + [MenuEnum.UNLOCK]: winCtrlMerge(winShiftMerge('l')), + [MenuEnum.HIDE]: winCtrlMerge('h'), + [MenuEnum.SHOW]: winCtrlMerge(winShiftMerge('h')) +} + +// 这个 Ctrl 后面还是换成了 ⌘ +const macCtrlMerge = (e: string) => `${MacKeyboard.CTRL}+${e}` +const macShiftMerge = (e: string) => `${MacKeyboard.SHIFT}+${e}` +const macAltMerge = (e: string) => `${MacKeyboard.ALT}+${e}` + +// 没有测试 macOS 系统,因为我没有😤👻 +export const macKeyboardValue = { + [MenuEnum.ARROW_UP]: macCtrlMerge('arrowup'), + [MenuEnum.ARROW_RIGHT]: macCtrlMerge('arrowright'), + [MenuEnum.ARROW_DOWN]: macCtrlMerge('arrowdown'), + [MenuEnum.ARROW_LEFT]: macCtrlMerge('arrowleft'), + [MenuEnum.COPY]: macCtrlMerge('c'), + [MenuEnum.CUT]: macCtrlMerge('x'), + [MenuEnum.PARSE]: macCtrlMerge('v'), + [MenuEnum.DELETE]: macCtrlMerge('backspace'), + [MenuEnum.BACK]: macCtrlMerge('z'), + [MenuEnum.FORWORD]: macCtrlMerge(macShiftMerge('z')), + [MenuEnum.SAVE]: macCtrlMerge('s'), + [MenuEnum.GROUP]: macCtrlMerge('g'), + [MenuEnum.UN_GROUP]: macCtrlMerge(macShiftMerge('g')), + [MenuEnum.LOCK]: macCtrlMerge('l'), + [MenuEnum.UNLOCK]: macCtrlMerge(macShiftMerge('l')), + [MenuEnum.HIDE]: macCtrlMerge('h'), + [MenuEnum.SHOW]: macCtrlMerge(macShiftMerge('h')) +} + +// Win 快捷键列表 +const winKeyList: Array = [ + winKeyboardValue.up, + winKeyboardValue.right, + winKeyboardValue.down, + winKeyboardValue.left, + + winKeyboardValue.delete, + winKeyboardValue.copy, + winKeyboardValue.cut, + winKeyboardValue.parse, + + winKeyboardValue.back, + winKeyboardValue.forward, + + winKeyboardValue.save, + winKeyboardValue.group, + winKeyboardValue.unGroup, + + winKeyboardValue.lock, + winKeyboardValue.unLock, + + winKeyboardValue.hide, + winKeyboardValue.show +] + +// Mac 快捷键列表 +const macKeyList: Array = [ + macKeyboardValue.up, + macKeyboardValue.right, + macKeyboardValue.down, + macKeyboardValue.left, + + macKeyboardValue.delete, + macKeyboardValue.copy, + macKeyboardValue.cut, + macKeyboardValue.parse, + + macKeyboardValue.back, + macKeyboardValue.forward, + + macKeyboardValue.save, + macKeyboardValue.group, + macKeyboardValue.unGroup, + + macKeyboardValue.lock, + macKeyboardValue.unLock, + + macKeyboardValue.hide, + macKeyboardValue.show +] + +// 处理键盘记录 +const keyRecordHandle = () => { + // 默认赋值 + window.$KeyboardActive = { + ctrl: false, + space: false + } + + document.onkeydown = (e: KeyboardEvent) => { + const { keyCode } = e + if (keyCode == 32 && e.target == document.body) e.preventDefault() + + if ([17, 32].includes(keyCode) && window.$KeyboardActive) { + setKeyboardDressShow(e.keyCode) + switch (keyCode) { + case 17: window.$KeyboardActive.ctrl = true; break + case 32: window.$KeyboardActive.space = true; break + } + } + } + + document.onkeyup = (e: KeyboardEvent) => { + const { keyCode } = e + if (keyCode == 32 && e.target == document.body) e.preventDefault() + + if ([17, 32].includes(keyCode) && window.$KeyboardActive) { + setKeyboardDressShow() + switch (keyCode) { + case 17: window.$KeyboardActive.ctrl = false; break + case 32: window.$KeyboardActive.space = false; break + } + } + } +} + +// 初始化监听事件 +export const useAddKeyboard = () => { + const throttleTime = 50 + const switchHandle = (keyboardValue: typeof winKeyboardValue, e: string) => { + switch (e) { + // ct+↑ + case keyboardValue.up: + keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_UP); return false }, throttleTime)) + break; + // ct+→ + case keyboardValue.right: + keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_RIGHT); return false }, throttleTime)) + break; + // ct+↓ + case keyboardValue.down: + keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_DOWN); return false }, throttleTime)) + break; + // ct+← + case keyboardValue.left: + keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_LEFT); return false }, throttleTime)) + break; + + // 删除 delete + case keyboardValue.delete: + keymaster(e, debounce(() => { chartEditStore.removeComponentList(); return false }, throttleTime)) + break; + // 复制 ct+v + case keyboardValue.copy: + keymaster(e, debounce(() => { chartEditStore.setCopy(); return false }, throttleTime)) + break; + // 剪切 ct+x + case keyboardValue.cut: + keymaster(e, debounce(() => { chartEditStore.setCut(); return false }, throttleTime)) + break; + // 粘贴 ct+v + case keyboardValue.parse: + keymaster(e, throttle(() => { chartEditStore.setParse(); return false }, throttleTime)) + break; + + // 撤回 ct+z + case keyboardValue.back: + keymaster(e, throttle(() => { chartEditStore.setBack(); return false }, throttleTime)) + break; + // 前进 ct+sh+z + case keyboardValue.forward: + keymaster(e, throttle(() => { chartEditStore.setForward(); return false }, throttleTime)) + break; + + // 创建分组 ct+g + case keyboardValue.group: + keymaster(e, throttle(() => { chartEditStore.setGroup(); return false }, throttleTime)) + break; + // 解除分组 ct+sh+g + case keyboardValue.unGroup: + keymaster(e, throttle(() => { chartEditStore.setUnGroup(); return false }, throttleTime)) + break; + + // 锁定 ct+l + case keyboardValue.lock: + keymaster(e, throttle(() => { chartEditStore.setLock(); return false }, throttleTime)) + break; + // 解除锁定 ct+sh+l + case keyboardValue.unLock: + keymaster(e, throttle(() => { chartEditStore.setUnLock(); return false }, throttleTime)) + break; + + // 隐藏 ct+h + case keyboardValue.hide: + keymaster(e, throttle(() => { chartEditStore.setHide(); return false }, throttleTime)) + break; + // 解除隐藏 ct+sh+h + case keyboardValue.show: + keymaster(e, throttle(() => { chartEditStore.setShow(); return false }, throttleTime)) + break; + + // 保存 ct+s + case keyboardValue.save: + keymaster(e, throttle(() => { useSyncIns.dataSyncUpdate(); return false }, 200)) + break; + } + } + winKeyList.forEach((key: string) => { + switchHandle(winKeyboardValue, key) + }) + macKeyList.forEach((key: string) => { + switchHandle(macKeyboardValue, key) + }) + + keyRecordHandle() +} + +// 卸载监听事件 +export const useRemoveKeyboard = () => { + document.onkeydown = () => {}; + document.onkeyup = () => {}; + + winKeyList.forEach((key: string) => { + keymaster.unbind(key) + }) + macKeyList.forEach((key: string) => { + keymaster.unbind(key) + }) +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/chart/hooks/useSync.hook.ts b/grailed-ui-go-view/src/views/chart/hooks/useSync.hook.ts new file mode 100644 index 0000000..ddb560d --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/hooks/useSync.hook.ts @@ -0,0 +1,348 @@ +import { onUnmounted } from 'vue'; +import html2canvas from 'html2canvas' +import { getUUID, httpErrorHandle, fetchRouteParamsLocation, base64toFile, JSONStringify, JSONParse } from '@/utils' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { EditCanvasTypeEnum, ChartEditStoreEnum, ProjectInfoEnum, ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d' +import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore' +import { StylesSetting } from '@/components/Pages/ChartItemSetting' +import { useSystemStore } from '@/store/modules/systemStore/systemStore' +import { useChartLayoutStore } from '@/store/modules/chartLayoutStore/chartLayoutStore' +import { ChartLayoutStoreEnum } from '@/store/modules/chartLayoutStore/chartLayoutStore.d' +import { fetchChartComponent, fetchConfigComponent, createComponent } from '@/packages/index' +import { saveInterval } from '@/settings/designSetting' +import throttle from 'lodash/throttle' +// 接口状态 +import { ResultEnum } from '@/enums/httpEnum' +// 接口 +import { saveProjectApi, fetchProjectApi, uploadFile, updateProjectApi } from '@/api/path' +// 画布枚举 +import { SyncEnum } from '@/enums/editPageEnum' +import { CreateComponentType, CreateComponentGroupType, ConfigType } from '@/packages/index.d' +import { BaseEvent, EventLife } from '@/enums/eventEnum' +import { PublicGroupConfigClass } from '@/packages/public/publicConfig' +import merge from 'lodash/merge' + +/** + * * 画布-版本升级对旧数据无法兼容的补丁 + * @param object + */ +const canvasVersionUpdatePolyfill = (object: any) => { + return object +} + +/** + * * 组件-版本升级对旧数据无法兼容的补丁 + * @param newObject + * @param sources + */ +const componentVersionUpdatePolyfill = (newObject: any, sources: any) => { + try { + // 判断是否是组件 + if (sources.id) { + // 处理事件补丁 + const hasVnodeBeforeMount = 'vnodeBeforeMount' in sources.events + const hasVnodeMounted = 'vnodeMounted' in sources.events + + if (hasVnodeBeforeMount) { + newObject.events.advancedEvents.vnodeBeforeMount = sources?.events.vnodeBeforeMount + } + if (hasVnodeMounted) { + newObject.events.advancedEvents.vnodeMounted = sources?.events.vnodeMounted + } + if (hasVnodeBeforeMount || hasVnodeMounted) { + sources.events = { + baseEvent: { + [BaseEvent.ON_CLICK]: undefined, + [BaseEvent.ON_DBL_CLICK]: undefined, + [BaseEvent.ON_MOUSE_ENTER]: undefined, + [BaseEvent.ON_MOUSE_LEAVE]: undefined + }, + advancedEvents: { + [EventLife.VNODE_MOUNTED]: undefined, + [EventLife.VNODE_BEFORE_MOUNT]: undefined + } + } + } + return newObject + } + } catch (error) { + return newObject + } +} + +/** + * * 合并处理 + * @param newObject 新的模板数据 + * @param sources 新拿到的数据 + * @returns object + */ +const componentMerge = (newObject: any, sources: any, notComponent = false) => { + // 处理组件补丁 + componentVersionUpdatePolyfill(newObject, sources) + + // 非组件不处理 + if (notComponent) return merge(newObject, sources) + // 组件排除 newObject + const option = sources.option + if (!option) return merge(newObject, sources) + + // 为 undefined 的 sources 来源对象属性将被跳过详见 https://www.lodashjs.com/docs/lodash.merge + sources.option = undefined + if (option) { + return { + ...merge(newObject, sources), + option: option + } + } +} + +// 请求处理 +export const useSync = () => { + const chartEditStore = useChartEditStore() + const chartHistoryStore = useChartHistoryStore() + const systemStore = useSystemStore() + const chartLayoutStore = useChartLayoutStore() + /** + * * 组件动态注册 + * @param projectData 项目数据 + * @param isReplace 是否替换数据 + * @returns + */ + const updateComponent = async (projectData: ChartEditStorage, isReplace = false, changeId = false) => { + if (isReplace) { + // 清除列表 + chartEditStore.componentList = [] + // 清除历史记录 + chartHistoryStore.clearBackStack() + chartHistoryStore.clearForwardStack() + } + // 画布补丁处理 + projectData.editCanvasConfig = canvasVersionUpdatePolyfill(projectData.editCanvasConfig) + + // 列表组件注册 + projectData.componentList.forEach(async (e: CreateComponentType | CreateComponentGroupType) => { + const intComponent = (target: CreateComponentType) => { + if (!window['$vue'].component(target.chartConfig.chartKey)) { + window['$vue'].component(target.chartConfig.chartKey, fetchChartComponent(target.chartConfig)) + window['$vue'].component(target.chartConfig.conKey, fetchConfigComponent(target.chartConfig)) + } + } + + if (e.isGroup) { + (e as CreateComponentGroupType).groupList.forEach(groupItem => { + intComponent(groupItem) + }) + } else { + intComponent(e as CreateComponentType) + } + }) + + // 创建函数-重新创建是为了处理类种方法消失的问题 + const create = async ( + _componentInstance: CreateComponentType, + callBack?: (componentInstance: CreateComponentType) => void + ) => { + // 补充 class 上的方法 + let newComponent: CreateComponentType = await createComponent(_componentInstance.chartConfig) + if (callBack) { + if (changeId) { + callBack(componentMerge(newComponent, { ..._componentInstance, id: getUUID() })) + } else { + callBack(componentMerge(newComponent, _componentInstance)) + } + } else { + if (changeId) { + chartEditStore.addComponentList( + componentMerge(newComponent, { ..._componentInstance, id: getUUID() }), + false, + true + ) + } else { + chartEditStore.addComponentList(componentMerge(newComponent, _componentInstance), false, true) + } + } + } + + // 数据赋值 + for (const key in projectData) { + // 组件 + if (key === ChartEditStoreEnum.COMPONENT_LIST) { + let loadIndex = 0 + const listLength = projectData[key].length; + for (const comItem of projectData[key]) { + // 设置加载数量 + let percentage = parseInt((parseFloat(`${++loadIndex / listLength}`) * 100).toString()) + chartLayoutStore.setItemUnHandle(ChartLayoutStoreEnum.PERCENTAGE, percentage) + // 判断类型 + if (comItem.isGroup) { + // 创建分组 + let groupClass = new PublicGroupConfigClass() + if (changeId) { + groupClass = componentMerge(groupClass, { ...comItem, id: getUUID() }) + } else { + groupClass = componentMerge(groupClass, comItem) + } + + // 异步注册子应用 + const targetList: CreateComponentType[] = [] + for (const groupItem of (comItem as CreateComponentGroupType).groupList) { + await create(groupItem, e => { + targetList.push(e) + }) + } + groupClass.groupList = targetList + + // 分组插入到列表 + chartEditStore.addComponentList(groupClass, false, true) + } else { + await create(comItem as CreateComponentType) + } + } + } else { + // 非组件(顺便排除脏数据) + if (key !== 'editCanvasConfig' && key !== 'requestGlobalConfig') return + componentMerge(chartEditStore[key], projectData[key], true) + } + } + + // 清除数量 + chartLayoutStore.setItemUnHandle(ChartLayoutStoreEnum.PERCENTAGE, 0) + } + + /** + * * 赋值全局数据 + * @param projectData 项目数据 + * @returns + */ + const updateStoreInfo = (projectData: { + id: string, + name: string, + picUrl: string, + remark: string, + status: number + }) => { + const { id, name, remark, picUrl, status } = projectData + // ID + chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_ID, id) + // 名称 + chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_NAME, name) + // 描述 + chartEditStore.setProjectInfo(ProjectInfoEnum.REMARKS, remark) + // 缩略图 + chartEditStore.setProjectInfo(ProjectInfoEnum.THUMBNAIL, picUrl) + // 发布 + chartEditStore.setProjectInfo(ProjectInfoEnum.RELEASE, status === 0) + } + + // * 数据获取 + const dataSyncFetch = async () => { + // FIX:重新执行dataSyncFetch需清空chartEditStore.componentList,否则会导致图层重复 + // 切换语言等操作会导致重新执行 dataSyncFetch,此时pinia中并未清空chartEditStore.componentList,导致图层重复 + chartEditStore.componentList = [] + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START) + try { + const res = await fetchProjectApi({ id: fetchRouteParamsLocation() }) + if (res && res.code === ResultEnum.SUCCESS) { + if (res.data) { + updateStoreInfo(res.data) + // 更新全局数据 + if (res.data.content) { + await updateComponent(JSONParse(res.data.content)) + } + return + }else { + chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_ID, fetchRouteParamsLocation()) + } + setTimeout(() => { + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.SUCCESS) + }, 1000) + return + } + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE) + } catch (error) { + console.log(error) + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE) + httpErrorHandle() + } + } + + // * 数据保存 + const dataSyncUpdate = throttle(async (updateImg = true) => { + if(!fetchRouteParamsLocation()) return + + let projectId = chartEditStore.getProjectInfo[ProjectInfoEnum.PROJECT_ID]; + if(projectId === null || projectId === ''){ + window['$message'].error('数据初未始化成功,请刷新页面!') + return + } + + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START) + + // 异常处理:缩略图上传失败不影响JSON的保存 + try { + if (updateImg) { + // 获取缩略图片 + const range = document.querySelector('.go-edit-range') as HTMLElement + // 生成图片 + const canvasImage: HTMLCanvasElement = await html2canvas(range, { + backgroundColor: null, + allowTaint: true, + useCORS: true + }) + + // 上传预览图 + let uploadParams = new FormData() + uploadParams.append('file', + base64toFile(canvasImage.toDataURL(), + `go-view/${fetchRouteParamsLocation()}_index_preview.png`)) // 名字使用 go-view 作为前缀 + const uploadRes = await uploadFile(uploadParams) + // 保存预览图 + if(uploadRes && uploadRes.code === ResultEnum.SUCCESS) { + await updateProjectApi({ + id: fetchRouteParamsLocation(), + picUrl: uploadRes.data + }) + } + } + } catch (e) { + console.log(e) + } + + // 保存数据 + const res = await saveProjectApi({ + id: projectId, + content: JSONStringify(chartEditStore.getStorageInfo || {}) + }) + + if (res && res.code === ResultEnum.SUCCESS) { + // 成功状态 + setTimeout(() => { + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.SUCCESS) + }, 1000) + return + } + // 失败状态 + chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE) + }, 3000) + + // * 定时处理 + const intervalDataSyncUpdate = () => { + // 定时获取数据 + const syncTiming = setInterval(() => { + dataSyncUpdate() + }, saveInterval * 1000) + + // 销毁 + onUnmounted(() => { + clearInterval(syncTiming) + }) + } + + return { + updateComponent, + updateStoreInfo, + dataSyncFetch, + dataSyncUpdate, + intervalDataSyncUpdate + } +} diff --git a/grailed-ui-go-view/src/views/chart/index.vue b/grailed-ui-go-view/src/views/chart/index.vue new file mode 100644 index 0000000..89c60d9 --- /dev/null +++ b/grailed-ui-go-view/src/views/chart/index.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/edit/index.vue b/grailed-ui-go-view/src/views/edit/index.vue new file mode 100644 index 0000000..f59d497 --- /dev/null +++ b/grailed-ui-go-view/src/views/edit/index.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/exception/403.vue b/grailed-ui-go-view/src/views/exception/403.vue new file mode 100644 index 0000000..8f973b2 --- /dev/null +++ b/grailed-ui-go-view/src/views/exception/403.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/exception/404.vue b/grailed-ui-go-view/src/views/exception/404.vue new file mode 100644 index 0000000..d6e0a82 --- /dev/null +++ b/grailed-ui-go-view/src/views/exception/404.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/exception/500.vue b/grailed-ui-go-view/src/views/exception/500.vue new file mode 100644 index 0000000..363bb58 --- /dev/null +++ b/grailed-ui-go-view/src/views/exception/500.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/login/index.vue b/grailed-ui-go-view/src/views/login/index.vue new file mode 100644 index 0000000..a5ec9f8 --- /dev/null +++ b/grailed-ui-go-view/src/views/login/index.vue @@ -0,0 +1,432 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.ts b/grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.ts new file mode 100644 index 0000000..5d5a652 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.ts @@ -0,0 +1,3 @@ +import PreviewRenderGroup from './index.vue' + +export { PreviewRenderGroup } diff --git a/grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.vue b/grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.vue new file mode 100644 index 0000000..e6e22d9 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/components/PreviewRenderGroup/index.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.ts b/grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.ts new file mode 100644 index 0000000..5dacecd --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.ts @@ -0,0 +1,3 @@ +import PreviewRenderList from './index.vue' + +export { PreviewRenderList } diff --git a/grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.vue b/grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.vue new file mode 100644 index 0000000..ee5ea39 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/components/PreviewRenderList/index.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/preview/hooks/useComInstall.hook.ts b/grailed-ui-go-view/src/views/preview/hooks/useComInstall.hook.ts new file mode 100644 index 0000000..a11e8bf --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/hooks/useComInstall.hook.ts @@ -0,0 +1,36 @@ +import { ref } from 'vue' +import { ChartEditStorageType } from '../index.d' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { fetchChartComponent } from '@/packages/index' + +export const useComInstall = (localStorageInfo: ChartEditStorageType) => { + const show = ref(false) + + // 注册组件(一开始无法获取window['$vue']) + const intervalTiming = setInterval(() => { + if (window['$vue']?.component) { + clearInterval(intervalTiming) + + const intComponent = (target: CreateComponentType) => { + if (!window['$vue'].component(target.chartConfig.chartKey)) { + window['$vue'].component(target.chartConfig.chartKey, fetchChartComponent(target.chartConfig)) + } + } + + localStorageInfo.componentList.forEach(async (e: CreateComponentType | CreateComponentGroupType) => { + if (e.isGroup) { + (e as CreateComponentGroupType).groupList.forEach(groupItem => { + intComponent(groupItem) + }) + } else { + intComponent(e as CreateComponentType) + } + }) + show.value = true + } + }, 200) + + return { + show + } +} diff --git a/grailed-ui-go-view/src/views/preview/hooks/useScale.hook.ts b/grailed-ui-go-view/src/views/preview/hooks/useScale.hook.ts new file mode 100644 index 0000000..202aaf0 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/hooks/useScale.hook.ts @@ -0,0 +1,87 @@ +import { ref, onMounted, onUnmounted} from 'vue' +import { usePreviewFitScale, usePreviewScrollYScale, usePreviewScrollXScale, usePreviewFullScale } from '@/hooks/index' +import type { ChartEditStorageType } from '../index.d' +import { PreviewScaleEnum } from '@/enums/styleEnum' + +export const useScale = (localStorageInfo: ChartEditStorageType) => { + + const entityRef = ref() + const previewRef = ref() + const width = ref(localStorageInfo.editCanvasConfig.width) + const height = ref(localStorageInfo.editCanvasConfig.height) + + // 屏幕适配 + onMounted(() => { + switch (localStorageInfo.editCanvasConfig.previewScaleType) { + case PreviewScaleEnum.FIT: (() => { + const { calcRate, windowResize, unWindowResize } = usePreviewFitScale( + width.value as number, + height.value as number, + previewRef.value, + ) + calcRate() + windowResize() + onUnmounted(() => { + unWindowResize() + }) + })() + break; + case PreviewScaleEnum.SCROLL_Y: (() => { + const { calcRate, windowResize, unWindowResize } = usePreviewScrollYScale( + width.value as number, + height.value as number, + previewRef.value, + (scale) => { + const dom = entityRef.value + dom.style.width = `${width.value * scale.width}px` + dom.style.height = `${height.value * scale.height}px` + } + ) + calcRate() + windowResize() + onUnmounted(() => { + unWindowResize() + }) + })() + + break; + case PreviewScaleEnum.SCROLL_X: (() => { + const { calcRate, windowResize, unWindowResize } = usePreviewScrollXScale( + width.value as number, + height.value as number, + previewRef.value, + (scale) => { + const dom = entityRef.value + dom.style.width = `${width.value * scale.width}px` + dom.style.height = `${height.value * scale.height}px` + } + ) + calcRate() + windowResize() + onUnmounted(() => { + unWindowResize() + }) + })() + + break; + case PreviewScaleEnum.FULL: (() => { + const { calcRate, windowResize, unWindowResize } = usePreviewFullScale( + width.value as number, + height.value as number, + previewRef.value, + ) + calcRate() + windowResize() + onUnmounted(() => { + unWindowResize() + }) + })() + break; + } + }) + + return { + entityRef, + previewRef + } +} diff --git a/grailed-ui-go-view/src/views/preview/hooks/useStore.hook.ts b/grailed-ui-go-view/src/views/preview/hooks/useStore.hook.ts new file mode 100644 index 0000000..06bed69 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/hooks/useStore.hook.ts @@ -0,0 +1,9 @@ +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { ChartEditStoreEnum } from '@/store/modules/chartEditStore/chartEditStore.d' +import type { ChartEditStorageType } from '../index.d' + +// store 相关 +export const useStore = (localStorageInfo: ChartEditStorageType) => { + const chartEditStore = useChartEditStore() + chartEditStore.requestGlobalConfig = localStorageInfo[ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG] +} diff --git a/grailed-ui-go-view/src/views/preview/index.d.ts b/grailed-ui-go-view/src/views/preview/index.d.ts new file mode 100644 index 0000000..0dfbe7c --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/index.d.ts @@ -0,0 +1,6 @@ +import { ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d' + +export interface ChartEditStorageType extends ChartEditStorage { + id: string, + isRelease?: boolean +} \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/preview/index.vue b/grailed-ui-go-view/src/views/preview/index.vue new file mode 100644 index 0000000..4e6bc66 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/index.vue @@ -0,0 +1,9 @@ + + + diff --git a/grailed-ui-go-view/src/views/preview/suspenseIndex.vue b/grailed-ui-go-view/src/views/preview/suspenseIndex.vue new file mode 100644 index 0000000..ec10e36 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/suspenseIndex.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/preview/utils/index.ts b/grailed-ui-go-view/src/views/preview/utils/index.ts new file mode 100644 index 0000000..f0f79cf --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/utils/index.ts @@ -0,0 +1,2 @@ +export * from './style' +export * from './storage' \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/preview/utils/storage.ts b/grailed-ui-go-view/src/views/preview/utils/storage.ts new file mode 100644 index 0000000..5db0609 --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/utils/storage.ts @@ -0,0 +1,38 @@ +import { getSessionStorage, fetchRouteParamsLocation, httpErrorHandle, JSONParse } from '@/utils' +import { ResultEnum } from '@/enums/httpEnum' +import { StorageEnum } from '@/enums/storageEnum' +import { ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d' +import { fetchProjectApi } from '@/api/path' + +export interface ChartEditStorageType extends ChartEditStorage { + id: string +} + +// 根据路由 id 获取存储数据的信息 +export const getSessionStorageInfo = async () => { + const id = fetchRouteParamsLocation() + const storageList: ChartEditStorageType[] = getSessionStorage(StorageEnum.GO_CHART_STORAGE_LIST) + + // 是否本地预览 + if (!storageList || storageList.findIndex(e => e.id === id.toString()) === -1) { + // 接口调用 + const res = await fetchProjectApi({ id: id }) + if (res && res.code === ResultEnum.SUCCESS) { + const { content, status } = res.data + if (status === 1) { + // 跳转未发布页 + return { isRelease: false } + } + return { ...JSONParse(content), id } + } else { + httpErrorHandle() + } + } else { + // 本地读取 + for (let i = 0; i < storageList.length; i++) { + if (id.toString() === storageList[i]['id']) { + return storageList[i] + } + } + } +} diff --git a/grailed-ui-go-view/src/views/preview/utils/style.ts b/grailed-ui-go-view/src/views/preview/utils/style.ts new file mode 100644 index 0000000..6cd25cb --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/utils/style.ts @@ -0,0 +1,46 @@ +import { PickCreateComponentType } from '@/packages/index.d' +import { EditCanvasConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' + +type AttrType = PickCreateComponentType<'attr'> +type StatusType = PickCreateComponentType<'status'> + +// 设置位置 +export const getComponentAttrStyle = (attr: AttrType, index: number) => { + const componentStyle = { + zIndex: index + 1, + left: `${attr.x}px`, + top: `${attr.y}px` + } + return componentStyle +} + +// 设置大小 +export const getSizeStyle = (attr: AttrType, scale?: number) => { + return { + width: `${scale ? scale * attr.w : attr.w}px`, + height: `${scale ? scale * attr.h : attr.h}px` + } +} + +// 设置状态样式 +export const getStatusStyle = (attr: StatusType) => { + return { + display: attr.hide ? 'none' : 'block' + } +} + +// 全局样式 +export const getEditCanvasConfigStyle = (canvas: EditCanvasConfigType) => { + // 背景 + const computedBackground = canvas.selectColor + ? { background: canvas.background } + : { + background: `url(${canvas.backgroundImage}) center center / cover no-repeat !important` + } + return { + position: 'relative' as const, + width: canvas.width ? `${canvas.width || 100}px` : '100%', + height: canvas.height ? `${canvas.height}px` : '100%', + ...computedBackground + } +} diff --git a/grailed-ui-go-view/src/views/preview/wrapper.vue b/grailed-ui-go-view/src/views/preview/wrapper.vue new file mode 100644 index 0000000..86abc6b --- /dev/null +++ b/grailed-ui-go-view/src/views/preview/wrapper.vue @@ -0,0 +1,25 @@ + + + diff --git a/grailed-ui-go-view/src/views/project/index.vue b/grailed-ui-go-view/src/views/project/index.vue new file mode 100644 index 0000000..535899b --- /dev/null +++ b/grailed-ui-go-view/src/views/project/index.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.ts b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.ts new file mode 100644 index 0000000..304ac60 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.ts @@ -0,0 +1,3 @@ +import ProjectItemsCard from './index.vue' + +export { ProjectItemsCard } diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.vue b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.vue new file mode 100644 index 0000000..bc79edc --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsCard/index.vue @@ -0,0 +1,254 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useData.hook.ts b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useData.hook.ts new file mode 100644 index 0000000..aad90d1 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useData.hook.ts @@ -0,0 +1,124 @@ +import { ref, reactive } from 'vue' +import { formatDate, goDialog, httpErrorHandle } from '@/utils' +import { DialogEnum } from '@/enums/pluginEnum' +import { projectListApi, deleteProjectApi, changeProjectReleaseApi } from '@/api/path' +import { Chartype, ChartList } from '../../../index.d' +import { ResultEnum } from '@/enums/httpEnum' + +// 数据初始化 +export const useDataListInit = () => { + const loading = ref(true) + + const paginat = reactive({ + // 当前页数 + page: 1, + // 每页值 + limit: 12, + // 总数 + count: 10 + }) + + const list = ref([]) + + // 数据请求 + const fetchList = async () => { + loading.value = true + const res = await projectListApi({ + pageNo: paginat.page, + pageSize: paginat.limit + }) + if (res && res.data) { + paginat.count = res.data.count + const projects = res.data.list + list.value = projects.map(e => { + const { id, name, status, createTime, picUrl, creator } = e + return { + id: id, + title: name, + createId: creator, + time: formatDate(new Date(createTime), 'YYY-mm-dd HH:MM:SS'), + image: picUrl, + release: status === 0 + } + }) + setTimeout(() => { + loading.value = false + }, 500) + return + } + httpErrorHandle() + } + + // 修改页数 + const changePage = (_page: number) => { + paginat.page = _page + fetchList() + } + + // 修改大小 + const changeSize = (_size: number) => { + paginat.limit = _size + fetchList() + } + + // 删除处理 + const deleteHandle = (cardData: Chartype) => { + goDialog({ + type: DialogEnum.DELETE, + promise: true, + onPositiveCallback: () => + new Promise(res => { + res( + deleteProjectApi({ + id: cardData.id + }) + ) + }), + promiseResCallback: (res: any) => { + if (res.code === ResultEnum.SUCCESS) { + window['$message'].success(window['$t']('global.r_delete_success')) + fetchList() + return + } + httpErrorHandle() + } + }) + } + + // 发布处理 + const releaseHandle = async (cardData: Chartype, index: number) => { + const { id, release } = cardData + const res = await changeProjectReleaseApi({ + id: id, + // 反过来 + status: !release ? 0 : 1 + }) + if (res && res.code === ResultEnum.SUCCESS) { + list.value = [] + fetchList() + // 发布 -> 未发布 + if (release) { + window['$message'].success(window['$t']('global.r_unpublish_success')) + return + } + // 未发布 -> 发布 + window['$message'].success(window['$t']('global.r_publish_success')) + return + } + httpErrorHandle() + } + + // 立即请求 + fetchList() + + return { + loading, + paginat, + list, + fetchList, + releaseHandle, + changeSize, + changePage, + deleteHandle + } +} diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useModal.hook.ts b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useModal.hook.ts new file mode 100644 index 0000000..e28b1f9 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/hooks/useModal.hook.ts @@ -0,0 +1,42 @@ +import { ref } from 'vue' +import { ChartEnum } from '@/enums/pageEnum' +import { fetchPathByName, routerTurnByPath, openNewWindow, previewPath } from '@/utils' +import { Chartype } from '../../../index.d' +export const useModalDataInit = () => { + const modalShow = ref(false) + const modalData = ref(null) + + // 关闭 modal + const closeModal = () => { + modalShow.value = false + modalData.value = null + } + + // 缩放处理 + const resizeHandle = (cardData: Chartype) => { + if (!cardData) return + modalShow.value = true + modalData.value = cardData + } + + // 编辑处理 + const editHandle = (cardData: Chartype) => { + if (!cardData) return + const path = fetchPathByName(ChartEnum.CHART_HOME_NAME, 'href') + routerTurnByPath(path, [cardData.id], undefined, true) + } + + // 预览处理 + const previewHandle = (cardData: Chartype) => { + openNewWindow(previewPath(cardData.id)) + } + + return { + modalData, + modalShow, + closeModal, + resizeHandle, + editHandle, + previewHandle + } +} diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.ts b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.ts new file mode 100644 index 0000000..f4b5290 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.ts @@ -0,0 +1,3 @@ +import ProjectItemsList from './index.vue' + +export { ProjectItemsList } diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.vue b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.vue new file mode 100644 index 0000000..81aea4d --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsList/index.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.ts b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.ts new file mode 100644 index 0000000..d5b8a58 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.ts @@ -0,0 +1,3 @@ +import ProjectItemsModalCard from './index.vue' + +export { ProjectItemsModalCard } diff --git a/grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.vue b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.vue new file mode 100644 index 0000000..1916462 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/components/ProjectItemsModalCard/index.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/project/items/index.d.ts b/grailed-ui-go-view/src/views/project/items/index.d.ts new file mode 100644 index 0000000..b0be038 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/index.d.ts @@ -0,0 +1,11 @@ +export type Chartype = { + id: number | string + title: string // 标题 + label?: string // 标签 + time: string, // 时间 + image: string, // 预览图地址 + createId: string, // 创建者 + release: boolean // false 未发布 | true 已发布 +} + +export type ChartList = Chartype[] \ No newline at end of file diff --git a/grailed-ui-go-view/src/views/project/items/index.vue b/grailed-ui-go-view/src/views/project/items/index.vue new file mode 100644 index 0000000..78b79c1 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/items/index.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.ts b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.ts new file mode 100644 index 0000000..6032c13 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.ts @@ -0,0 +1,3 @@ +import ProjectLayoutAsideFooter from './index.vue' + +export { ProjectLayoutAsideFooter } diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.vue b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.vue new file mode 100644 index 0000000..731796c --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutAsideFooter/index.vue @@ -0,0 +1,77 @@ + + + + diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.ts b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.ts new file mode 100644 index 0000000..6d5e114 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.ts @@ -0,0 +1,3 @@ +import CreateModal from './index.vue' + +export { CreateModal } diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.vue b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.vue new file mode 100644 index 0000000..2dcc5c0 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/components/CreateModal/index.vue @@ -0,0 +1,138 @@ + + + + diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.ts b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.ts new file mode 100644 index 0000000..d732e52 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.ts @@ -0,0 +1,3 @@ +import ProjectLayoutCreate from './index.vue' + +export { ProjectLayoutCreate } diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.vue b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.vue new file mode 100644 index 0000000..12f294f --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutCreate/index.vue @@ -0,0 +1,54 @@ + + diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.ts b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.ts new file mode 100644 index 0000000..d870cce --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.ts @@ -0,0 +1,3 @@ +import ProjectLayoutSider from './index.vue' + +export { ProjectLayoutSider } diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.vue b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.vue new file mode 100644 index 0000000..c7b963e --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/index.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/menu.ts b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/menu.ts new file mode 100644 index 0000000..c878f70 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/layout/components/ProjectLayoutSider/menu.ts @@ -0,0 +1,86 @@ +import { reactive, h } from 'vue' +import { renderIcon } from '@/utils' +import { RouterLink } from 'vue-router' +import { PageEnum } from '@/enums/pageEnum' +import { MenuOption, MenuGroupOption } from 'naive-ui' +import { icon } from '@/plugins' + +const { GridIcon, TvOutlineIcon } = icon.ionicons5 +const { StoreIcon, ObjectStorageIcon, DevicesIcon } = icon.carbon +export const renderMenuLabel = (option: MenuOption | MenuGroupOption) => { + return option.label +} + +export const expandedKeys = () => ['all-project'] + +export const menuOptionsInit = () => { + const t = window['$t'] + + return reactive([ + { + key: 'divider-1', + type: 'divider', + }, + { + label: () => h('span', null, { default: () => t('project.project') }), + key: 'all-project', + icon: renderIcon(DevicesIcon), + children: [ + { + type: 'group', + label: () => h('span', null, { default: () => t('project.my') }), + key: 'my-project', + children: [ + { + label: () => + h( + RouterLink, + { + to: { + name: PageEnum.BASE_HOME_ITEMS_NAME, + }, + }, + { default: () => t('project.all_project') } + ), + key: PageEnum.BASE_HOME_ITEMS_NAME, + icon: renderIcon(TvOutlineIcon), + }, + { + label: () => + h( + RouterLink, + { + to: { + name: PageEnum.BASE_HOME_TEMPLATE_NAME, + }, + }, + { default: () => t('project.my_templete') } + ), + key: PageEnum.BASE_HOME_TEMPLATE_NAME, + icon: renderIcon(ObjectStorageIcon), + }, + ], + }, + ], + }, + + { + key: 'divider-2', + type: 'divider', + }, + { + label: () => + h( + RouterLink, + { + to: { + name: PageEnum.BASE_HOME_TEMPLATE_MARKET_NAME, + }, + }, + { default: () => t('project.template_market') } + ), + key: PageEnum.BASE_HOME_TEMPLATE_MARKET_NAME, + icon: renderIcon(StoreIcon), + }, + ]) +} diff --git a/grailed-ui-go-view/src/views/project/mtTemplate/index.vue b/grailed-ui-go-view/src/views/project/mtTemplate/index.vue new file mode 100644 index 0000000..22ffd40 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/mtTemplate/index.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/project/templateMarket/index.vue b/grailed-ui-go-view/src/views/project/templateMarket/index.vue new file mode 100644 index 0000000..fffc9e1 --- /dev/null +++ b/grailed-ui-go-view/src/views/project/templateMarket/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/grailed-ui-go-view/src/views/redirect/UnPublish.vue b/grailed-ui-go-view/src/views/redirect/UnPublish.vue new file mode 100644 index 0000000..2429dd3 --- /dev/null +++ b/grailed-ui-go-view/src/views/redirect/UnPublish.vue @@ -0,0 +1,35 @@ + + + diff --git a/grailed-ui-go-view/src/views/redirect/index.vue b/grailed-ui-go-view/src/views/redirect/index.vue new file mode 100644 index 0000000..7ff0e23 --- /dev/null +++ b/grailed-ui-go-view/src/views/redirect/index.vue @@ -0,0 +1,31 @@ + + + diff --git a/grailed-ui-go-view/tsconfig.json b/grailed-ui-go-view/tsconfig.json new file mode 100644 index 0000000..07a4c65 --- /dev/null +++ b/grailed-ui-go-view/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "baseUrl": ".", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "skipLibCheck": true, + "lib": ["es6", "ESNext", "dom"], + "types": ["vite/client"], + "paths": { + "@/*": ["src/*"], + "/#/*": ["types/*"] + }, + "noImplicitAny": true, //不允许使用any + // "strictNullChecks": true, //不允许使用null + "noImplicitThis": true //不允许往this上面挂属性 + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "types/**/*"], + "exclude": ["node_modules", "dist", "**/*.js"] +} diff --git a/grailed-ui-go-view/types/global.d.ts b/grailed-ui-go-view/types/global.d.ts new file mode 100644 index 0000000..aabfe76 --- /dev/null +++ b/grailed-ui-go-view/types/global.d.ts @@ -0,0 +1,16 @@ +interface Window { + $loading: any + $message: any + $dialog: any + // 语言 + $t: any + $vue: any + // 键盘按键记录 + $KeyboardActive?: { [T: string]: boolean } + onKeySpacePressHold?: Function + + // 编辑 JSON 的存储对象 + opener: any +} + +declare type Recordable = Record diff --git a/grailed-ui-go-view/types/shims-vue.d.ts b/grailed-ui-go-view/types/shims-vue.d.ts new file mode 100644 index 0000000..fbfc892 --- /dev/null +++ b/grailed-ui-go-view/types/shims-vue.d.ts @@ -0,0 +1,8 @@ +declare module '*.vue' { + import { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} + +declare module 'lodash/*' +declare module 'dom-helpers' \ No newline at end of file diff --git a/grailed-ui-go-view/types/vite-env.d.ts b/grailed-ui-go-view/types/vite-env.d.ts new file mode 100644 index 0000000..317bb4b --- /dev/null +++ b/grailed-ui-go-view/types/vite-env.d.ts @@ -0,0 +1,10 @@ +/// + +interface ImportMetaEnv { + // 端口 + VITE_DEV_PORT: string; + // 开发地址 + VITE_DEV_PATH: string + // 生产地址 + VITE_PRO_PATH: string +} \ No newline at end of file diff --git a/grailed-ui-go-view/vite.config.ts b/grailed-ui-go-view/vite.config.ts new file mode 100644 index 0000000..ad47cad --- /dev/null +++ b/grailed-ui-go-view/vite.config.ts @@ -0,0 +1,92 @@ +import { defineConfig, loadEnv } from 'vite' +import vue from '@vitejs/plugin-vue' +import { resolve } from 'path' +import { OUTPUT_DIR, brotliSize, chunkSizeWarningLimit, terserOptions, rollupOptions } from './build/constant' +import viteCompression from 'vite-plugin-compression' +import { axiosPre } from './src/settings/httpSetting' +import { viteMockServe } from 'vite-plugin-mock' +import monacoEditorPlugin from 'vite-plugin-monaco-editor' + +function pathResolve(dir: string) { + return resolve(process.cwd(), '.', dir) +} + +export default ({ mode }) => defineConfig({ + base: process.env.NODE_ENV === 'production' ? './' : '/', + // 路径重定向 + resolve: { + alias: [ + { + find: /\/#\//, + replacement: pathResolve('types') + }, + { + find: '@', + replacement: pathResolve('src') + }, + { + find: 'vue-i18n', + replacement: 'vue-i18n/dist/vue-i18n.cjs.js', //解决i8n警告 + } + ], + dedupe: ['vue'] + }, + // 全局 css 注册 + css: { + preprocessorOptions: { + scss: { + javascriptEnabled: true, + additionalData: `@import "src/styles/common/style.scss";` + } + } + }, + // 开发服务器配置 + server: { + host: true, + open: true, + port: 3000, + proxy: { + [axiosPre]: { + // @ts-ignore + target: loadEnv(mode, process.cwd()).VITE_DEV_PATH, + changeOrigin: true, + ws: true, + secure: true, + } + } + }, + plugins: [ + vue(), + monacoEditorPlugin({ + languageWorkers: ['editorWorkerService', 'typescript', 'json', 'html'] + }), + viteMockServe({ + mockPath: '/src/api/mock', + // 开发打包开关 + localEnabled: true, + // 生产打包开关 + prodEnabled: true, + // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件 + supportTs: true, + // 监视文件更改 + watchFiles: true + }), + // 压缩 + viteCompression({ + verbose: true, + disable: false, + threshold: 10240, + algorithm: 'gzip', + ext: '.gz' + }) + ], + build: { + target: 'es2015', + outDir: OUTPUT_DIR, + // minify: 'terser', // 如果需要用terser混淆,可打开这两行 + // terserOptions: terserOptions, + rollupOptions: rollupOptions, + brotliSize: brotliSize, + chunkSizeWarningLimit: chunkSizeWarningLimit + } +}) diff --git a/grailed_app/.env b/grailed_app/.env new file mode 100644 index 0000000..e69de29 diff --git a/grailed_app/.env - 副本.da b/grailed_app/.env - 副本.da new file mode 100644 index 0000000..fb5faed --- /dev/null +++ b/grailed_app/.env - 副本.da @@ -0,0 +1,8 @@ +VITE_BASE_URL = '' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='da-dk' +VITE_APP_NAME = 'LUX LAIR' +VITE_FAVICON = '/luxlair-favicon.jpg' +VITE_AES_SECRET = 'ocbiteXwSoROtzTwRAQlmJrGsG139lxp' +VITE_OUT_DIR = 'app-da' \ No newline at end of file diff --git a/grailed_app/.env.da b/grailed_app/.env.da new file mode 100644 index 0000000..e34c8a6 --- /dev/null +++ b/grailed_app/.env.da @@ -0,0 +1,10 @@ +VITE_BASE_URL='https://www.22y.fun' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='da-dk' +VITE_APP_NAME = 'LUX LAIR' +VITE_FAVICON = '/luxlair-favicon.jpg' +VITE_AES_SECRET = 'ocbiteXwSoROtzTwRAQlmJrGsG139lxp' +VITE_OUT_DIR = 'app-da' + +VITE_KF_URL='https://22y.fun' diff --git a/grailed_app/.env.dev b/grailed_app/.env.dev new file mode 100644 index 0000000..0ca4a8c --- /dev/null +++ b/grailed_app/.env.dev @@ -0,0 +1,7 @@ +VITE_BASE_URL = 'http://localhost:48080' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='en-us' +VITE_APP_NAME = 'LUX LAIR DEV' +VITE_FAVICON = '/luxlair-favicon.jpg' +VITE_AES_SECRET = '45o7f3k2G+W5/SW+jQpmUV1CZFyCJCAd' diff --git a/grailed_app/.env.in b/grailed_app/.env.in new file mode 100644 index 0000000..fde0c85 --- /dev/null +++ b/grailed_app/.env.in @@ -0,0 +1,8 @@ +VITE_BASE_URL = '' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='en-us' +VITE_APP_NAME = 'Baltini' +VITE_FAVICON = '/baltini-faviocn.webp' +VITE_AES_SECRET = 'ef16WexLxsCrcbrxHclXqm3bGyRXimYy' +VITE_OUT_DIR = 'app-in' \ No newline at end of file diff --git a/grailed_app/.env.nz b/grailed_app/.env.nz new file mode 100644 index 0000000..6ca93e2 --- /dev/null +++ b/grailed_app/.env.nz @@ -0,0 +1,8 @@ +VITE_BASE_URL = '' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='pt-pt' +VITE_APP_NAME = 'Luxe Collective Fashion' +VITE_FAVICON = '/luxlair-favicon.jpg' +VITE_AES_SECRET = 'RJUMtfGjpXP3LaPjqtc7bzLXg7/I7/xJ' +VITE_OUT_DIR = 'app-nz' \ No newline at end of file diff --git a/grailed_app/.env.pt b/grailed_app/.env.pt new file mode 100644 index 0000000..7ae14e8 --- /dev/null +++ b/grailed_app/.env.pt @@ -0,0 +1,8 @@ +VITE_BASE_URL = '' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='pt-pt' +VITE_APP_NAME = 'Luxe Collective Fashion' +VITE_FAVICON = '/luxlair-favicon.jpg' +VITE_AES_SECRET = 'DWxvNYrqCJbZ1soxdANRjk/ECo7DnHfC' +VITE_OUT_DIR = 'app-pt' \ No newline at end of file diff --git a/grailed_app/.env.uk b/grailed_app/.env.uk new file mode 100644 index 0000000..cb39464 --- /dev/null +++ b/grailed_app/.env.uk @@ -0,0 +1,8 @@ +VITE_BASE_URL = '' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='en-us' +VITE_APP_NAME = 'clickflow' +VITE_FAVICON = '/baltini-faviocn.webp' +VITE_AES_SECRET = '3k0bcWSPXH6+7fbapQQ3TziOWsux3Ak6' +VITE_OUT_DIR = 'app-uk' \ No newline at end of file diff --git a/grailed_app/.env.us b/grailed_app/.env.us new file mode 100644 index 0000000..9abef3d --- /dev/null +++ b/grailed_app/.env.us @@ -0,0 +1,8 @@ +VITE_BASE_URL = '' +VITE_API_URL = '/app-api' +TENANT_ID = 1 +VITE_DEFAULT_LANG ='en-us' +VITE_APP_NAME = 'Baltini' +VITE_FAVICON = '/baltini-faviocn.webp' +VITE_AES_SECRET = '3k0bcWSPXH6+7fbapQQ3TziOWsux3Ak6' +VITE_OUT_DIR = 'app-us' \ No newline at end of file diff --git a/grailed_app/.gitignore b/grailed_app/.gitignore new file mode 100644 index 0000000..38adffa --- /dev/null +++ b/grailed_app/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/grailed_app/.prettierignore b/grailed_app/.prettierignore new file mode 100644 index 0000000..c5292de --- /dev/null +++ b/grailed_app/.prettierignore @@ -0,0 +1,15 @@ + +# 忽略日志 +*.log +node_modules/** +dist/ +dist* +public/* +docs/* +app-* +vite.config.ts +src/types/env.d.ts +src/types/auto-components.d.ts +src/types/auto-imports.d.ts +docs/**/* +CHANGELOG \ No newline at end of file diff --git a/grailed_app/.vscode/extensions.json b/grailed_app/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/grailed_app/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/grailed_app/README.md b/grailed_app/README.md new file mode 100644 index 0000000..4a1cc60 --- /dev/null +++ b/grailed_app/README.md @@ -0,0 +1,40 @@ +# grailed_app + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). + +## Type Support for `.vue` Imports in TS + +TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types. + +If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps: + +1. Disable the built-in TypeScript Extension + 1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette + 2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)` +2. Reload the VSCode window by running `Developer: Reload Window` from the command palette. + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +npm run build +``` diff --git a/grailed_app/components.d.ts b/grailed_app/components.d.ts new file mode 100644 index 0000000..b27c955 --- /dev/null +++ b/grailed_app/components.d.ts @@ -0,0 +1,40 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + Dialog: typeof import('./src/components/Dialog.vue')['default'] + GrailedDialog: typeof import('./src/components/GrailedDialog.vue')['default'] + GrailedHeader: typeof import('./src/components/GrailedHeader.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Success: typeof import('./src/components/Success.vue')['default'] + SvgIcon: typeof import('./src/components/SvgIcon.vue')['default'] + TermsModal: typeof import('./src/components/TermsModal.vue')['default'] + VanButton: typeof import('vant/es')['Button'] + VanCollapse: typeof import('vant/es')['Collapse'] + VanCollapseItem: typeof import('vant/es')['CollapseItem'] + VanDialog: typeof import('vant/es')['Dialog'] + VanDivider: typeof import('vant/es')['Divider'] + VanIcon: typeof import('vant/es')['Icon'] + VanList: typeof import('vant/es')['List'] + VanLoading: typeof import('vant/es')['Loading'] + VanNavBar: typeof import('vant/es')['NavBar'] + VanNotify: typeof import('vant/es')['Notify'] + VanOverlay: typeof import('vant/es')['Overlay'] + VanPicker: typeof import('vant/es')['Picker'] + VanPopup: typeof import('vant/es')['Popup'] + VanPullRefresh: typeof import('vant/es')['PullRefresh'] + VanRate: typeof import('vant/es')['Rate'] + VanSwipe: typeof import('vant/es')['Swipe'] + VanSwipeItem: typeof import('vant/es')['SwipeItem'] + VanTab: typeof import('vant/es')['Tab'] + VanTabs: typeof import('vant/es')['Tabs'] + VanToast: typeof import('vant/es')['Toast'] + VanUploader: typeof import('vant/es')['Uploader'] + } +} diff --git a/grailed_app/env.d.ts b/grailed_app/env.d.ts new file mode 100644 index 0000000..8f6a08b --- /dev/null +++ b/grailed_app/env.d.ts @@ -0,0 +1,3 @@ +/// +VITE_BASE_URL = 'http://127.0.0.1:48080' +VITE_API_URL = '/app-api' \ No newline at end of file diff --git a/grailed_app/index.html b/grailed_app/index.html new file mode 100644 index 0000000..a985d2a --- /dev/null +++ b/grailed_app/index.html @@ -0,0 +1,13 @@ + + + + + + + + + +
+ + + diff --git a/grailed_app/package-lock.json b/grailed_app/package-lock.json new file mode 100644 index 0000000..ac18bc3 --- /dev/null +++ b/grailed_app/package-lock.json @@ -0,0 +1,9989 @@ +{ + "name": "grailed_app", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "1.0.0", + "dependencies": { + "@headlessui/vue": "^1.7.16", + "@heroicons/vue": "^2.0.18", + "@intlify/unplugin-vue-i18n": "^1.4.0", + "@tailwindcss/forms": "^0.5.6", + "@types/axios": "^0.14.0", + "@vant/auto-import-resolver": "^1.0.1", + "@vue-hero-icons/solid": "^1.7.2", + "autoprefixer": "^10.4.15", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.9", + "google-libphonenumber": "^3.2.33", + "pinia": "^2.1.6", + "postcss": "^8.4.28", + "qrcode-vue3": "^1.6.8", + "swiper": "^10.2.0", + "tailwindcss": "^3.3.3", + "terser": "^5.22.0", + "ts-node": "^10.9.1", + "unplugin-vue-components": "^0.25.2", + "vant": "^4.6.7", + "vconsole": "^3.15.1", + "vite-plugin-svg-icons": "^2.0.1", + "vue": "^3.3.4", + "vue-i18n": "9.2.2", + "vue-router": "^4.2.4", + "vue-select": "^4.0.0-beta.6", + "vue3-lottie": "^3.1.0", + "vue3-seamless-scroll": "^2.0.1", + "web-storage-cache": "^1.1.1" + }, + "devDependencies": { + "@tsconfig/node18": "^18.2.0", + "@types/node": "^20.5.7", + "@vitejs/plugin-vue": "^4.3.1", + "@vue/tsconfig": "^0.4.0", + "dotenv": "^16.3.1", + "npm-run-all": "^4.1.5", + "typescript": "~5.1.6", + "vite": "^4.4.9", + "vue-tsc": "^1.8.8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.6", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.6.tgz", + "integrity": "sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==" + }, + "node_modules/@babel/parser": { + "version": "7.22.11", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.11.tgz", + "integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@headlessui/vue": { + "version": "1.7.16", + "resolved": "https://registry.npmmirror.com/@headlessui/vue/-/vue-1.7.16.tgz", + "integrity": "sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@heroicons/vue": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/@heroicons/vue/-/vue-2.0.18.tgz", + "integrity": "sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw==", + "peerDependencies": { + "vue": ">= 3" + } + }, + "node_modules/@intlify/bundle-utils": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/@intlify/bundle-utils/-/bundle-utils-7.4.0.tgz", + "integrity": "sha512-AQfjBe2HUxzyN8ignIk3WhhSuVcSuirgzOzkd17nb337rCbI4Gv/t1R60UUyIqFoFdviLb/wLcDUzTD/xXjv9w==", + "dependencies": { + "@intlify/message-compiler": "^9.4.0", + "@intlify/shared": "^9.4.0", + "acorn": "^8.8.2", + "escodegen": "^2.0.0", + "estree-walker": "^2.0.2", + "jsonc-eslint-parser": "^2.3.0", + "magic-string": "^0.30.0", + "mlly": "^1.2.0", + "source-map-js": "^1.0.1", + "yaml-eslint-parser": "^1.2.2" + }, + "engines": { + "node": ">= 14.16" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, + "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/core-base/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/core-base/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/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/devtools-if/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/message-compiler": { + "version": "9.6.5", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.6.5.tgz", + "integrity": "sha512-WeJ499thIj0p7JaIO1V3JaJbqdqfBykS5R8fElFs5hNeotHtPAMBs4IiA+8/KGFkAbjJusgFefCq6ajP7F7+4Q==", + "dependencies": { + "@intlify/shared": "9.6.5", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/@intlify/shared": { + "version": "9.6.5", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.6.5.tgz", + "integrity": "sha512-gD7Ey47Xi4h/t6P+S04ymMSoA3wVRxGqjxuIMglwRO8POki9h164Epu2N8wk/GHXM/hR6ZGcsx2HArCCENjqSQ==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@intlify/unplugin-vue-i18n": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.5.0.tgz", + "integrity": "sha512-jW0MCCdwxybxcwjEfCunAcKjVoxyO3i+cnLL6v+MNGRLUHqrpELF6zQAJUhgAK2afhY7mCliy8RxTFWKdXm26w==", + "dependencies": { + "@intlify/bundle-utils": "^7.4.0", + "@intlify/shared": "^9.4.0", + "@rollup/pluginutils": "^5.0.2", + "@vue/compiler-sfc": "^3.2.47", + "debug": "^4.3.3", + "fast-glob": "^3.2.12", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "pathe": "^1.0.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2", + "unplugin": "^1.1.0" + }, + "engines": { + "node": ">= 14.16" + }, + "peerDependencies": { + "petite-vue-i18n": "*", + "vue-i18n": "*", + "vue-i18n-bridge": "*" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + }, + "vue-i18n-bridge": { + "optional": true + } + } + }, + "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/@intlify/vue-devtools/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/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "license": "MIT", + "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/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/@tailwindcss/forms/-/forms-0.5.7.tgz", + "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "license": "MIT" + }, + "node_modules/@tsconfig/node18": { + "version": "18.2.1", + "resolved": "https://registry.npmmirror.com/@tsconfig/node18/-/node18-18.2.1.tgz", + "integrity": "sha512-RDDZFuofwkcKpl8Vpj5wFbY+H53xOtqK7ckEL1sXsbPwvKwDdjQf3LkHbtt9sxIHn9nWIEwkmCwBRZ6z5TKU2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/axios": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@types/axios/-/axios-0.14.0.tgz", + "integrity": "sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ==", + "license": "MIT", + "dependencies": { + "axios": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/node": { + "version": "20.5.7", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.5.7.tgz", + "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==" + }, + "node_modules/@types/svgo": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz", + "integrity": "sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vant/auto-import-resolver": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vant/auto-import-resolver/-/auto-import-resolver-1.0.2.tgz", + "integrity": "sha512-5SYC1izl36KID+3F4pqFtYD8VFK6m1pdulft99sjSkUN4GBX9OslRnsJA0g7xS+0YrytjDuxxBk04YLYIxaYMg==" + }, + "node_modules/@vant/popperjs": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", + "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" + }, + "node_modules/@vant/use": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz", + "integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.3.3", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.3.3.tgz", + "integrity": "sha512-ssxyhIAZqB0TrpUg6R0cBpCuMk9jTIlO1GNSKKQD6S8VjnXi6JXKfUXjSsxey9IwQiaRGsO1WnW9Rkl1L6AJVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.10.1.tgz", + "integrity": "sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "1.10.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.10.1.tgz", + "integrity": "sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.10.1.tgz", + "integrity": "sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "1.10.1" + } + }, + "node_modules/@vue-hero-icons/solid": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/@vue-hero-icons/solid/-/solid-1.7.2.tgz", + "integrity": "sha512-ngjgdYgdjXp8BuHmx998Kl2tAmbatJXdYO8Cut+DXo9OVGZMuVmIzIjnar4H5Wf9wFVdCuag+HazLEu9F7T3cw==", + "dependencies": { + "babel-helper-vue-jsx-merge-props": "^2.0.3" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==", + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "1.8.8", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.8.tgz", + "integrity": "sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~1.10.0", + "@volar/source-map": "~1.10.0", + "@vue/compiler-dom": "^3.3.0", + "@vue/reactivity": "^3.3.0", + "@vue/shared": "^3.3.0", + "minimatch": "^9.0.0", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/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/@vue/language-core/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "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/@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "license": "MIT", + "dependencies": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + }, + "peerDependencies": { + "vue": "3.3.4" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==", + "license": "MIT" + }, + "node_modules/@vue/tsconfig": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.4.0.tgz", + "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/typescript": { + "version": "1.8.8", + "resolved": "https://registry.npmmirror.com/@vue/typescript/-/typescript-1.8.8.tgz", + "integrity": "sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "~1.10.0", + "@vue/language-core": "1.8.8" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "license": "MIT", + "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==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "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/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.15", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "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.21.10", + "caniuse-lite": "^1.0.30001520", + "fraction.js": "^4.2.0", + "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.5", + "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + }, + "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==", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "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==" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "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.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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==" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001524", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz", + "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==", + "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/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "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/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/class-utils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/core-js": { + "version": "3.33.2", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.33.2.tgz", + "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==", + "hasInstallScript": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.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/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "node_modules/css-select/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.9", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "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/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.503", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.503.tgz", + "integrity": "sha512-LF2IQit4B0VrUHFeQkWhZm97KuJSGF2WJqq1InpY+ECpFRkXd8yTIaTtJxsO0OKDmiBYwWqcrNaXOurn2T2wiA==", + "license": "ISC" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "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==", + "dev": true, + "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/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/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/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "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/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.1.tgz", + "integrity": "sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==", + "license": "ISC" + }, + "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.5", + "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/google-libphonenumber": { + "version": "3.2.33", + "resolved": "https://registry.npmmirror.com/google-libphonenumber/-/google-libphonenumber-3.2.33.tgz", + "integrity": "sha512-1QKCvAlfq8zY1mviORI9lDzM3I/hwm9+h0CwYBTLq59DBbSHMd5zBOLqHZFiBLicRpwIz46Nynvbywj1XApKvA==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", + "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==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/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==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "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==", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "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==", + "dev": true, + "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==", + "license": "MIT", + "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==", + "dev": true, + "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": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "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==", + "license": "MIT", + "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==", + "dev": true, + "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": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "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==", + "dev": true, + "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.2", + "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isobject/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/jiti": { + "version": "1.19.3", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.19.3.tgz", + "integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==", + "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-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", + "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "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==", + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "engines": { + "node": ">=14" + } + }, + "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/lottie-web": { + "version": "5.12.2", + "resolved": "https://registry.npmmirror.com/lottie-web/-/lottie-web-5.12.2.tgz", + "integrity": "sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==" + }, + "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==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "license": "ISC" + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-options": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz", + "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "dependencies": { + "is-plain-obj": "^1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "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/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "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/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/mutation-observer": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz", + "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "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/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/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==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pinia": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.6.tgz", + "integrity": "sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.28", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.28.tgz", + "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", + "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.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "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==", + "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==", + "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.1", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "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==", + "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-prefix-selector": { + "version": "1.16.0", + "resolved": "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz", + "integrity": "sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==", + "peerDependencies": { + "postcss": ">4 <9" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "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==", + "license": "MIT" + }, + "node_modules/posthtml": { + "version": "0.9.2", + "resolved": "https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz", + "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==", + "dependencies": { + "posthtml-parser": "^0.2.0", + "posthtml-render": "^1.0.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz", + "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==", + "dependencies": { + "htmlparser2": "^3.8.3", + "isobject": "^2.1.0" + } + }, + "node_modules/posthtml-rename-id": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz", + "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==", + "dependencies": { + "escape-string-regexp": "1.0.5" + } + }, + "node_modules/posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/posthtml-svg-mode": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", + "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", + "dependencies": { + "merge-options": "1.0.1", + "posthtml": "^0.9.2", + "posthtml-parser": "^0.2.1", + "posthtml-render": "^1.0.6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/qrcode-generator": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz", + "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" + }, + "node_modules/qrcode-vue3": { + "version": "1.6.8", + "resolved": "https://registry.npmmirror.com/qrcode-vue3/-/qrcode-vue3-1.6.8.tgz", + "integrity": "sha512-LtMnwKWi58ZqHbXBcsTF/VxDYhI6RrBIrDQw8fbDVlO8p5tJBZa7TaIaVYLY937vKO2WCEBmOKksGlpm5ccEIg==", + "dependencies": { + "qrcode-generator": "^1.4.4" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "engines": { + "node": ">=0.10.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==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "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-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "3.28.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/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==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/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/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/snapdragon/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "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.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.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==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "engines": { + "node": ">=0.10.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.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "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": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-baker": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz", + "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==", + "dependencies": { + "bluebird": "^3.5.0", + "clone": "^2.1.1", + "he": "^1.1.1", + "image-size": "^0.5.1", + "loader-utils": "^1.1.0", + "merge-options": "1.0.1", + "micromatch": "3.1.0", + "postcss": "^5.2.17", + "postcss-prefix-selector": "^1.6.0", + "posthtml-rename-id": "^1.0", + "posthtml-svg-mode": "^1.0.3", + "query-string": "^4.3.2", + "traverse": "^0.6.6" + } + }, + "node_modules/svg-baker/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/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==", + "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/svg-baker/node_modules/chalk/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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-baker/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/is-number/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==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/micromatch": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz", + "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.2.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^5.0.2", + "nanomatch": "^1.2.1", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/svg-baker/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-baker/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/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==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/swiper": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/swiper/-/swiper-10.2.0.tgz", + "integrity": "sha512-nktQsOtBInJjr3f5DicxC8eHYGcLXDVIGPSon0QoXRaO6NjKnATCbQ8SZsD3dN1Ph1RH4EhVPwSYCcuDRFWHGQ==", + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "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.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "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/tailwindcss/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==", + "license": "MIT" + }, + "node_modules/tailwindcss/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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/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/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/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==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/traverse": { + "version": "0.6.7", + "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.7.tgz", + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==" + }, + "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==", + "license": "Apache-2.0" + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "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 + } + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.3.1.tgz", + "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==" + }, + "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==", + "dev": true, + "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/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.5.0.tgz", + "integrity": "sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==", + "dependencies": { + "acorn": "^8.10.0", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.5.0" + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.25.2", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz", + "integrity": "sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==", + "dependencies": { + "@antfu/utils": "^0.7.5", + "@rollup/pluginutils": "^5.0.2", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.3.0", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.1", + "minimatch": "^9.0.3", + "resolve": "^1.22.2", + "unplugin": "^1.4.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "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==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-vue-components/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/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/unset-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "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.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vant": { + "version": "4.7.3", + "resolved": "https://registry.npmmirror.com/vant/-/vant-4.7.3.tgz", + "integrity": "sha512-nb0pXxKSOaE9CvH//KozKDivqhjE4ZRvx1b/RCWFL4H3tZ5l+HhWtwK1yJx5AkO1Pm/IYQY86yZa1tums8DfsQ==", + "dependencies": { + "@vant/popperjs": "^1.3.0", + "@vant/use": "^1.6.0", + "@vue/shared": "^3.0.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vconsole": { + "version": "3.15.1", + "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz", + "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "copy-text-to-clipboard": "^3.0.1", + "core-js": "^3.11.0", + "mutation-observer": "^1.0.3" + } + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-svg-icons": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz", + "integrity": "sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==", + "dependencies": { + "@types/svgo": "^2.6.1", + "cors": "^2.8.5", + "debug": "^4.3.3", + "etag": "^1.8.1", + "fs-extra": "^10.0.0", + "pathe": "^0.2.0", + "svg-baker": "1.7.0", + "svgo": "^2.8.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==" + }, + "node_modules/vue": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "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-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-i18n/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/vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-select": { + "version": "4.0.0-beta.6", + "resolved": "https://registry.npmmirror.com/vue-select/-/vue-select-4.0.0-beta.6.tgz", + "integrity": "sha512-K+zrNBSpwMPhAxYLTCl56gaMrWZGgayoWCLqe5rWwkB8aUbAUh7u6sXjIR7v4ckp2WKC7zEEUY27g6h1MRsIHw==", + "peerDependencies": { + "vue": "3.x" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.8", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.8.tgz", + "integrity": "sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/language-core": "1.8.8", + "@vue/typescript": "1.8.8", + "semver": "^7.3.8" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue3-lottie": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/vue3-lottie/-/vue3-lottie-3.2.0.tgz", + "integrity": "sha512-PtNXbv7iD4XGmK8CXd71aLWmILIR6P6VzLMDw6ZzmDAeuJZuJ0MdOVnn50LOARgq+cOFJsn/2z+7tZh0F9T9qw==", + "dependencies": { + "lodash-es": "^4.17.21", + "lottie-web": "5.12.2" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "vue": "^3.2" + } + }, + "node_modules/vue3-seamless-scroll": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/vue3-seamless-scroll/-/vue3-seamless-scroll-2.0.1.tgz", + "integrity": "sha512-mI3BaDU3pjcPUhVSw3/xNKdfPBDABTi/OdZaZqKysx4cSdNfGRbVvGNDzzptBbJ5S7imv5T55l6x/SqgnxKreg==", + "dependencies": { + "throttle-debounce": "5.0.0" + } + }, + "node_modules/web-storage-cache": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/web-storage-cache/-/web-storage-cache-1.1.1.tgz", + "integrity": "sha512-D0MieGooOs8RpsrK+vnejXnvh4OOv/+lTFB35JRkJJQt+uOjPE08XpaE0QBLMTRu47B1KGT/Nq3Gbag3Orinzw==", + "license": "MIT" + }, + "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==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "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==", + "dev": true, + "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-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz", + "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + } + }, + "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==" + }, + "@antfu/utils": { + "version": "0.7.6", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.6.tgz", + "integrity": "sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==" + }, + "@babel/parser": { + "version": "7.22.11", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.11.tgz", + "integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==" + }, + "@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "optional": true + }, + "@headlessui/vue": { + "version": "1.7.16", + "resolved": "https://registry.npmmirror.com/@headlessui/vue/-/vue-1.7.16.tgz", + "integrity": "sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg==", + "requires": {} + }, + "@heroicons/vue": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/@heroicons/vue/-/vue-2.0.18.tgz", + "integrity": "sha512-BcTC9nq2TkwNSfQuqo96J7ehx4etezypc2YeTq7KsXWxrcrerhkgjLrxGRBnStN0wrXo0Gv4BInybqz5uBG6Cw==", + "requires": {} + }, + "@intlify/bundle-utils": { + "version": "7.4.0", + "resolved": "https://registry.npmmirror.com/@intlify/bundle-utils/-/bundle-utils-7.4.0.tgz", + "integrity": "sha512-AQfjBe2HUxzyN8ignIk3WhhSuVcSuirgzOzkd17nb337rCbI4Gv/t1R60UUyIqFoFdviLb/wLcDUzTD/xXjv9w==", + "requires": { + "@intlify/message-compiler": "^9.4.0", + "@intlify/shared": "^9.4.0", + "acorn": "^8.8.2", + "escodegen": "^2.0.0", + "estree-walker": "^2.0.2", + "jsonc-eslint-parser": "^2.3.0", + "magic-string": "^0.30.0", + "mlly": "^1.2.0", + "source-map-js": "^1.0.1", + "yaml-eslint-parser": "^1.2.2" + } + }, + "@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" + }, + "dependencies": { + "@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/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" + }, + "dependencies": { + "@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + } + } + }, + "@intlify/message-compiler": { + "version": "9.6.5", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.6.5.tgz", + "integrity": "sha512-WeJ499thIj0p7JaIO1V3JaJbqdqfBykS5R8fElFs5hNeotHtPAMBs4IiA+8/KGFkAbjJusgFefCq6ajP7F7+4Q==", + "requires": { + "@intlify/shared": "9.6.5", + "source-map-js": "^1.0.2" + } + }, + "@intlify/shared": { + "version": "9.6.5", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.6.5.tgz", + "integrity": "sha512-gD7Ey47Xi4h/t6P+S04ymMSoA3wVRxGqjxuIMglwRO8POki9h164Epu2N8wk/GHXM/hR6ZGcsx2HArCCENjqSQ==" + }, + "@intlify/unplugin-vue-i18n": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.5.0.tgz", + "integrity": "sha512-jW0MCCdwxybxcwjEfCunAcKjVoxyO3i+cnLL6v+MNGRLUHqrpELF6zQAJUhgAK2afhY7mCliy8RxTFWKdXm26w==", + "requires": { + "@intlify/bundle-utils": "^7.4.0", + "@intlify/shared": "^9.4.0", + "@rollup/pluginutils": "^5.0.2", + "@vue/compiler-sfc": "^3.2.47", + "debug": "^4.3.3", + "fast-glob": "^3.2.12", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "pathe": "^1.0.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2", + "unplugin": "^1.1.0" + } + }, + "@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" + }, + "dependencies": { + "@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@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==" + }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@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==", + "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==" + }, + "@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==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@tailwindcss/forms": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/@tailwindcss/forms/-/forms-0.5.7.tgz", + "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "requires": { + "mini-svg-data-uri": "^1.2.3" + } + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "@tsconfig/node18": { + "version": "18.2.1", + "resolved": "https://registry.npmmirror.com/@tsconfig/node18/-/node18-18.2.1.tgz", + "integrity": "sha512-RDDZFuofwkcKpl8Vpj5wFbY+H53xOtqK7ckEL1sXsbPwvKwDdjQf3LkHbtt9sxIHn9nWIEwkmCwBRZ6z5TKU2A==", + "dev": true + }, + "@types/axios": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@types/axios/-/axios-0.14.0.tgz", + "integrity": "sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ==", + "requires": { + "axios": "*" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "@types/node": { + "version": "20.5.7", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.5.7.tgz", + "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==" + }, + "@types/svgo": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz", + "integrity": "sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==", + "requires": { + "@types/node": "*" + } + }, + "@vant/auto-import-resolver": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vant/auto-import-resolver/-/auto-import-resolver-1.0.2.tgz", + "integrity": "sha512-5SYC1izl36KID+3F4pqFtYD8VFK6m1pdulft99sjSkUN4GBX9OslRnsJA0g7xS+0YrytjDuxxBk04YLYIxaYMg==" + }, + "@vant/popperjs": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", + "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" + }, + "@vant/use": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz", + "integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==", + "requires": {} + }, + "@vitejs/plugin-vue": { + "version": "4.3.3", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.3.3.tgz", + "integrity": "sha512-ssxyhIAZqB0TrpUg6R0cBpCuMk9jTIlO1GNSKKQD6S8VjnXi6JXKfUXjSsxey9IwQiaRGsO1WnW9Rkl1L6AJVw==", + "dev": true, + "requires": {} + }, + "@volar/language-core": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.10.1.tgz", + "integrity": "sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA==", + "dev": true, + "requires": { + "@volar/source-map": "1.10.1" + } + }, + "@volar/source-map": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.10.1.tgz", + "integrity": "sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==", + "dev": true, + "requires": { + "muggle-string": "^0.3.1" + } + }, + "@volar/typescript": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.10.1.tgz", + "integrity": "sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ==", + "dev": true, + "requires": { + "@volar/language-core": "1.10.1" + } + }, + "@vue-hero-icons/solid": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/@vue-hero-icons/solid/-/solid-1.7.2.tgz", + "integrity": "sha512-ngjgdYgdjXp8BuHmx998Kl2tAmbatJXdYO8Cut+DXo9OVGZMuVmIzIjnar4H5Wf9wFVdCuag+HazLEu9F7T3cw==", + "requires": { + "babel-helper-vue-jsx-merge-props": "^2.0.3" + } + }, + "@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "requires": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "requires": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "@vue/language-core": { + "version": "1.8.8", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.8.tgz", + "integrity": "sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==", + "dev": true, + "requires": { + "@volar/language-core": "~1.10.0", + "@volar/source-map": "~1.10.0", + "@vue/compiler-dom": "^3.3.0", + "@vue/reactivity": "^3.3.0", + "@vue/shared": "^3.3.0", + "minimatch": "^9.0.0", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "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": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "requires": { + "@vue/shared": "3.3.4" + } + }, + "@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "requires": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "requires": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "requires": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "@vue/tsconfig": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.4.0.tgz", + "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", + "dev": true + }, + "@vue/typescript": { + "version": "1.8.8", + "resolved": "https://registry.npmmirror.com/@vue/typescript/-/typescript-1.8.8.tgz", + "integrity": "sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==", + "dev": true, + "requires": { + "@volar/typescript": "~1.10.0", + "@vue/language-core": "1.8.8" + } + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "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": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.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.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" + }, + "arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "10.4.15", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "requires": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "axios": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "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==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "requires": { + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + } + }, + "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==" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "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==" + }, + "caniuse-lite": { + "version": "1.0.30001524", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz", + "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "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" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.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==", + "dev": true, + "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==", + "dev": true + }, + "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" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" + }, + "copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==" + }, + "core-js": { + "version": "3.33.2", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.33.2.tgz", + "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "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==" + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + } + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + } + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "dayjs": { + "version": "1.11.9", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "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" + } + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.503", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.503.tgz", + "integrity": "sha512-LF2IQit4B0VrUHFeQkWhZm97KuJSGF2WJqq1InpY+ECpFRkXd8yTIaTtJxsO0OKDmiBYwWqcrNaXOurn2T2wiA==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "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==" + }, + "escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==" + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "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==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.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" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "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" + } + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "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==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + }, + "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" + } + }, + "fraction.js": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.1.tgz", + "integrity": "sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "requires": { + "map-cache": "^0.2.2" + } + }, + "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==", + "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==" + }, + "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.5", + "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "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==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "google-libphonenumber": { + "version": "3.2.33", + "resolved": "https://registry.npmmirror.com/google-libphonenumber/-/google-libphonenumber-3.2.33.tgz", + "integrity": "sha512-1QKCvAlfq8zY1mviORI9lDzM3I/hwm9+h0CwYBTLq59DBbSHMd5zBOLqHZFiBLicRpwIz46Nynvbywj1XApKvA==" + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "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" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "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" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "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==" + }, + "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==" + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "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==", + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "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==", + "dev": true + }, + "is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "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==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "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==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "requires": { + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + } + } + }, + "jiti": { + "version": "1.19.3", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.19.3.tgz", + "integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==" + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "jsonc-eslint-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", + "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==", + "requires": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "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==" + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==" + }, + "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==" + }, + "lottie-web": { + "version": "5.12.2", + "resolved": "https://registry.npmmirror.com/lottie-web/-/lottie-web-5.12.2.tgz", + "integrity": "sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==" + }, + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.30.3", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.3.tgz", + "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, + "merge-options": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz", + "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "requires": { + "is-plain-obj": "^1.1" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "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" + } + }, + "mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==" + }, + "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==" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "requires": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "mutation-observer": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz", + "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==" + }, + "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.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "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==" + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + } + }, + "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==", + "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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "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" + } + } + } + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "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==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "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" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" + }, + "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": "2.0.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "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-type": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "pinia": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.6.tgz", + "integrity": "sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==", + "requires": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + } + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" + }, + "pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "requires": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" + }, + "postcss": { + "version": "8.4.28", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.28.tgz", + "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "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==", + "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==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + } + }, + "postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "requires": { + "postcss-selector-parser": "^6.0.11" + } + }, + "postcss-prefix-selector": { + "version": "1.16.0", + "resolved": "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz", + "integrity": "sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==", + "requires": {} + }, + "postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "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==" + }, + "posthtml": { + "version": "0.9.2", + "resolved": "https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz", + "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==", + "requires": { + "posthtml-parser": "^0.2.0", + "posthtml-render": "^1.0.5" + } + }, + "posthtml-parser": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz", + "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==", + "requires": { + "htmlparser2": "^3.8.3", + "isobject": "^2.1.0" + } + }, + "posthtml-rename-id": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz", + "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==", + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==" + }, + "posthtml-svg-mode": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", + "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", + "requires": { + "merge-options": "1.0.1", + "posthtml": "^0.9.2", + "posthtml-parser": "^0.2.1", + "posthtml-render": "^1.0.6" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "qrcode-generator": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz", + "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" + }, + "qrcode-vue3": { + "version": "1.6.8", + "resolved": "https://registry.npmmirror.com/qrcode-vue3/-/qrcode-vue3-1.6.8.tgz", + "integrity": "sha512-LtMnwKWi58ZqHbXBcsTF/VxDYhI6RrBIrDQw8fbDVlO8p5tJBZa7TaIaVYLY937vKO2WCEBmOKksGlpm5ccEIg==", + "requires": { + "qrcode-generator": "^1.4.4" + } + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "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==", + "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==" + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "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" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + }, + "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==" + }, + "resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rollup": { + "version": "3.28.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "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==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "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": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "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==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "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" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "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==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" + }, + "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.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmmirror.com/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "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" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.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-baker": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz", + "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==", + "requires": { + "bluebird": "^3.5.0", + "clone": "^2.1.1", + "he": "^1.1.1", + "image-size": "^0.5.1", + "loader-utils": "^1.1.0", + "merge-options": "1.0.1", + "micromatch": "3.1.0", + "postcss": "^5.2.17", + "postcss-prefix-selector": "^1.6.0", + "posthtml-rename-id": "^1.0", + "posthtml-svg-mode": "^1.0.3", + "query-string": "^4.3.2", + "traverse": "^0.6.6" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "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" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "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" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "micromatch": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz", + "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.2.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^5.0.2", + "nanomatch": "^1.2.1", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "requires": { + "has-flag": "^1.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "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==" + } + } + }, + "swiper": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/swiper/-/swiper-10.2.0.tgz", + "integrity": "sha512-nktQsOtBInJjr3f5DicxC8eHYGcLXDVIGPSon0QoXRaO6NjKnATCbQ8SZsD3dN1Ph1RH4EhVPwSYCcuDRFWHGQ==" + }, + "tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "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.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "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" + }, + "dependencies": { + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "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==", + "requires": { + "is-glob": "^4.0.3" + } + } + } + }, + "terser": { + "version": "5.24.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "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==" + } + } + }, + "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" + } + }, + "throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "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" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + }, + "traverse": { + "version": "0.6.7", + "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.7.tgz", + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==" + }, + "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==" + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==" + }, + "ufo": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.3.1.tgz", + "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + }, + "unplugin": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.5.0.tgz", + "integrity": "sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==", + "requires": { + "acorn": "^8.10.0", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.5.0" + } + }, + "unplugin-vue-components": { + "version": "0.25.2", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz", + "integrity": "sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==", + "requires": { + "@antfu/utils": "^0.7.5", + "@rollup/pluginutils": "^5.0.2", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.3.0", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.1", + "minimatch": "^9.0.3", + "resolve": "^1.22.2", + "unplugin": "^1.4.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": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + } + } + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vant": { + "version": "4.7.3", + "resolved": "https://registry.npmmirror.com/vant/-/vant-4.7.3.tgz", + "integrity": "sha512-nb0pXxKSOaE9CvH//KozKDivqhjE4ZRvx1b/RCWFL4H3tZ5l+HhWtwK1yJx5AkO1Pm/IYQY86yZa1tums8DfsQ==", + "requires": { + "@vant/popperjs": "^1.3.0", + "@vant/use": "^1.6.0", + "@vue/shared": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "vconsole": { + "version": "3.15.1", + "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz", + "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==", + "requires": { + "@babel/runtime": "^7.17.2", + "copy-text-to-clipboard": "^3.0.1", + "core-js": "^3.11.0", + "mutation-observer": "^1.0.3" + } + }, + "vite": { + "version": "4.4.9", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + } + }, + "vite-plugin-svg-icons": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz", + "integrity": "sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==", + "requires": { + "@types/svgo": "^2.6.1", + "cors": "^2.8.5", + "debug": "^4.3.3", + "etag": "^1.8.1", + "fs-extra": "^10.0.0", + "pathe": "^0.2.0", + "svg-baker": "1.7.0", + "svgo": "^2.8.0" + }, + "dependencies": { + "pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==" + } + } + }, + "vue": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "requires": {} + }, + "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" + }, + "dependencies": { + "@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + } + } + }, + "vue-router": { + "version": "4.2.4", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.4.tgz", + "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "requires": { + "@vue/devtools-api": "^6.5.0" + } + }, + "vue-select": { + "version": "4.0.0-beta.6", + "resolved": "https://registry.npmmirror.com/vue-select/-/vue-select-4.0.0-beta.6.tgz", + "integrity": "sha512-K+zrNBSpwMPhAxYLTCl56gaMrWZGgayoWCLqe5rWwkB8aUbAUh7u6sXjIR7v4ckp2WKC7zEEUY27g6h1MRsIHw==", + "requires": {} + }, + "vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.8.8", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.8.tgz", + "integrity": "sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==", + "dev": true, + "requires": { + "@vue/language-core": "1.8.8", + "@vue/typescript": "1.8.8", + "semver": "^7.3.8" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "vue3-lottie": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/vue3-lottie/-/vue3-lottie-3.2.0.tgz", + "integrity": "sha512-PtNXbv7iD4XGmK8CXd71aLWmILIR6P6VzLMDw6ZzmDAeuJZuJ0MdOVnn50LOARgq+cOFJsn/2z+7tZh0F9T9qw==", + "requires": { + "lodash-es": "^4.17.21", + "lottie-web": "5.12.2" + } + }, + "vue3-seamless-scroll": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/vue3-seamless-scroll/-/vue3-seamless-scroll-2.0.1.tgz", + "integrity": "sha512-mI3BaDU3pjcPUhVSw3/xNKdfPBDABTi/OdZaZqKysx4cSdNfGRbVvGNDzzptBbJ5S7imv5T55l6x/SqgnxKreg==", + "requires": { + "throttle-debounce": "5.0.0" + } + }, + "web-storage-cache": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/web-storage-cache/-/web-storage-cache-1.1.1.tgz", + "integrity": "sha512-D0MieGooOs8RpsrK+vnejXnvh4OOv/+lTFB35JRkJJQt+uOjPE08XpaE0QBLMTRu47B1KGT/Nq3Gbag3Orinzw==" + }, + "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==" + }, + "webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "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==", + "dev": true, + "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-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==" + }, + "yaml-eslint-parser": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz", + "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==", + "requires": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^2.0.0" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/grailed_app/package.json b/grailed_app/package.json new file mode 100644 index 0000000..ab02860 --- /dev/null +++ b/grailed_app/package.json @@ -0,0 +1,62 @@ +{ + "name": "", + "version": "1.0.0", + "private": true, + "scripts": { + "dev": "vite --mode dev", + "build": "run-p type-check build-only", + "preview": "vite preview", + "build-only": "vite build", + "build:da": "vite build --mode da", + "build:us": "vite build --mode us", + "build:uk": "vite build --mode uk", + "build:pt": "vite build --mode pt", + "build:in": "vite build --mode in", + "build:nz": "vite build --mode nz", + "build:dev": "vite build --mode dev", + "build:prod": "node --max_old_space_size=8192 ./node_modules/vite/bin/vite.js build --mode prod", + "type-check": "vue-tsc --noEmit -p tsconfig.app.json --composite false" + }, + "dependencies": { + "@headlessui/vue": "^1.7.16", + "@heroicons/vue": "^2.0.18", + "@intlify/unplugin-vue-i18n": "^1.4.0", + "@tailwindcss/forms": "^0.5.6", + "@types/axios": "^0.14.0", + "@vant/auto-import-resolver": "^1.0.1", + "@vue-hero-icons/solid": "^1.7.2", + "autoprefixer": "^10.4.15", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.9", + "google-libphonenumber": "^3.2.33", + "pinia": "^2.1.6", + "postcss": "^8.4.28", + "qrcode-vue3": "^1.6.8", + "swiper": "^10.2.0", + "tailwindcss": "^3.3.3", + "terser": "^5.22.0", + "ts-node": "^10.9.1", + "unplugin-vue-components": "^0.25.2", + "vant": "^4.6.7", + "vconsole": "^3.15.1", + "vite-plugin-svg-icons": "^2.0.1", + "vue": "^3.3.4", + "vue-i18n": "9.2.2", + "vue-router": "^4.2.4", + "vue-select": "^4.0.0-beta.6", + "vue3-lottie": "^3.1.0", + "vue3-seamless-scroll": "^2.0.1", + "web-storage-cache": "^1.1.1" + }, + "devDependencies": { + "@tsconfig/node18": "^18.2.0", + "@types/node": "^20.5.7", + "@vitejs/plugin-vue": "^4.3.1", + "@vue/tsconfig": "^0.4.0", + "dotenv": "^16.3.1", + "npm-run-all": "^4.1.5", + "typescript": "~5.1.6", + "vite": "^4.4.9", + "vue-tsc": "^1.8.8" + } +} diff --git a/grailed_app/postcss.config.ts b/grailed_app/postcss.config.ts new file mode 100644 index 0000000..5a8248d --- /dev/null +++ b/grailed_app/postcss.config.ts @@ -0,0 +1,12 @@ +const config: { + plugins: { + [key: string]: any; + }; +} = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + } +}; + +export default config; \ No newline at end of file diff --git a/grailed_app/prettier.config.ts b/grailed_app/prettier.config.ts new file mode 100644 index 0000000..e4dbd39 --- /dev/null +++ b/grailed_app/prettier.config.ts @@ -0,0 +1,21 @@ +const config = { + semi: false, // 使用分号 + trailingComma: 'none', // 不在多行的末尾使用尾随逗号 + singleQuote: true, // 使用单引号而不是双引号 + printWidth: 100, // 一行的字符数,如果超过会进行换行,默认为80 + tabWidth: 2, // tab的宽度,默认为2 + useTabs: false, // 使用空格而不是tab + endOfLine: 'auto', // 根据系统的换行符操作。如果你是Windows用户,或者你在git中有一个特定的配置,可能会遇到与LF和CRLF相关的问题。 + vueIndentScriptAndStyle: false, + quoteProps: 'as-needed', + bracketSpacing: true, // 对象字面量的大括号间使用空格(默认true) + jsxSingleQuote: false, + arrowParens: 'always', + insertPragma: false, + requirePragma: false, + proseWrap: 'never', + htmlWhitespaceSensitivity: 'strict', + rangeStart: 0, + }; + export default config; + \ No newline at end of file diff --git a/grailed_app/public/baltini-logo.webp b/grailed_app/public/baltini-logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..b1ff0f9365ad41fbf1859e53be3a85ed8ae6c795 GIT binary patch literal 7146 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 V|NjgOObZ|;DggB`Be6lo0|41Y>Iwh= literal 0 HcmV?d00001 diff --git a/grailed_app/src/App.vue b/grailed_app/src/App.vue new file mode 100644 index 0000000..fe5d867 --- /dev/null +++ b/grailed_app/src/App.vue @@ -0,0 +1,5 @@ + + + diff --git a/grailed_app/src/api/auth/index.ts b/grailed_app/src/api/auth/index.ts new file mode 100644 index 0000000..89b1b11 --- /dev/null +++ b/grailed_app/src/api/auth/index.ts @@ -0,0 +1,9 @@ +import request from '@/config/axios'; + +export const signUp = (data: any) => { + return request.postOriginal({ 'url': '/member/auth/register', data}) +} + +export const signIn = (data: any) => { + return request.postOriginal({ 'url': '/member/auth/login', data}) +} \ No newline at end of file diff --git a/grailed_app/src/api/auth/type.ts b/grailed_app/src/api/auth/type.ts new file mode 100644 index 0000000..22e91fb --- /dev/null +++ b/grailed_app/src/api/auth/type.ts @@ -0,0 +1,29 @@ +export type UserLoginVO = { + username: string + password: string + captchaVerification: string + } + + export type TokenType = { + id: number // 编号 + accessToken: string // 访问令牌 + refreshToken: string // 刷新令牌 + userId: number // 用户编号 + userType: number //用户类型 + clientId: string //客户端编号 + expiresTime: number //过期时间 + } + + export type UserVO = { + id: number + username: string + nickname: string + deptId: number + email: string + mobile: string + sex: number + avatar: string + loginIp: string + loginDate: string + } + \ No newline at end of file diff --git a/grailed_app/src/api/balance/index.ts b/grailed_app/src/api/balance/index.ts new file mode 100644 index 0000000..46ca61d --- /dev/null +++ b/grailed_app/src/api/balance/index.ts @@ -0,0 +1,18 @@ +import request from '@/config/axios'; + +export const getBalanceAccount = () => { + return request.get({ 'url': '/member/balance-account/get'}) +} + + +export const getQuickRechargeAmount = () => { + return request.get({ 'url': '/member/balance-account/quick-recharge-amount'}) +} + +export const pageBalanceRecord = () => { + return request.get({ 'url': '/member/balance-record/page'}) +} + +export const setWithdrawalPassword = (data:any) => { + return request.post({ 'url': '/member/balance-account/set-withdraw-password',data}) +} \ No newline at end of file diff --git a/grailed_app/src/api/channelConfig/index.ts b/grailed_app/src/api/channelConfig/index.ts new file mode 100644 index 0000000..39bfae2 --- /dev/null +++ b/grailed_app/src/api/channelConfig/index.ts @@ -0,0 +1,14 @@ +import request from '@/config/axios'; + +export const listRechargeChannel = () => { + return request.get({ 'url': '/member/channel-config/list-recharge'}) +} + + +export const listWithdrawalChannel = () => { + return request.get({ 'url': '/member/channel-config/list-withdrawal'}) +} + +export const getChannelConfigById = (id: string) => { + return request.get({ 'url': '/member/channel-config/get?id=' + id}) +} \ No newline at end of file diff --git a/grailed_app/src/api/checkIn/index.ts b/grailed_app/src/api/checkIn/index.ts new file mode 100644 index 0000000..abb0ab1 --- /dev/null +++ b/grailed_app/src/api/checkIn/index.ts @@ -0,0 +1,9 @@ +import request from '@/config/axios'; + +export const userCheckIn = () => { + return request.postOriginal({ 'url': '/member/sign-in-record/create'}) +} + +export const getUserCheckIn = () => { + return request.get({ 'url': '/member/sign-in-record/list'}) +} \ No newline at end of file diff --git a/grailed_app/src/api/countries/index.ts b/grailed_app/src/api/countries/index.ts new file mode 100644 index 0000000..daaeed7 --- /dev/null +++ b/grailed_app/src/api/countries/index.ts @@ -0,0 +1,5 @@ +import request from '@/config/axios'; + +export const listCountry = () => { + return request.get({ 'url': '/member/countries/list'}) +} diff --git a/grailed_app/src/api/home/index.ts b/grailed_app/src/api/home/index.ts new file mode 100644 index 0000000..9eba31e --- /dev/null +++ b/grailed_app/src/api/home/index.ts @@ -0,0 +1,18 @@ +import request from '@/config/axios' + +export const listCarouse = async () => { + return await request.get({ url: '/member/content-carouse/list' }) + } + + + export const listProduct = async () => { + return await request.get({ url: '/member/product/list' }) + } + + export const listMembers = async () => { + return await request.get({ url: '/member/user/list' }) + } + + export const listMessage = async () => { + return await request.get({ url: '/member/user/list-message' }) + } \ No newline at end of file diff --git a/grailed_app/src/api/order/index.ts b/grailed_app/src/api/order/index.ts new file mode 100644 index 0000000..30e259c --- /dev/null +++ b/grailed_app/src/api/order/index.ts @@ -0,0 +1,10 @@ +import request from '@/config/axios'; + +export const pageOrder = (params: any) => { + return request.get({ 'url': '/member/task-record/page', params}) +} + + +export const submitOrder = (data: any) => { + return request.postOriginal({ 'url': '/member/task-record/submit-order', data}) +} \ No newline at end of file diff --git a/grailed_app/src/api/pages/index.ts b/grailed_app/src/api/pages/index.ts new file mode 100644 index 0000000..e34f513 --- /dev/null +++ b/grailed_app/src/api/pages/index.ts @@ -0,0 +1,5 @@ +import request from '@/config/axios' + +export const getH5Pages = async () => { + return await request.get({ url: '/member/app/config/get' }) +} \ No newline at end of file diff --git a/grailed_app/src/api/payOrder/index.ts b/grailed_app/src/api/payOrder/index.ts new file mode 100644 index 0000000..d698153 --- /dev/null +++ b/grailed_app/src/api/payOrder/index.ts @@ -0,0 +1,9 @@ +import request from '@/config/axios'; + +export const createPayOrder = (data: any) => { + return request.postOriginal({ 'url': '/member/pay-order/create', data}) +} + +export const getPayOrder = (id:string) => { + return request.get({ 'url': '/member/pay-order/get?id=' + id}) +} \ No newline at end of file diff --git a/grailed_app/src/api/service/index.ts b/grailed_app/src/api/service/index.ts new file mode 100644 index 0000000..6d79e21 --- /dev/null +++ b/grailed_app/src/api/service/index.ts @@ -0,0 +1,5 @@ +import request from '@/config/axios'; + +export const getCustomerService = () => { + return request.get({ 'url': '/member/user/service'}) +} diff --git a/grailed_app/src/api/settings/index.ts b/grailed_app/src/api/settings/index.ts new file mode 100644 index 0000000..7584db5 --- /dev/null +++ b/grailed_app/src/api/settings/index.ts @@ -0,0 +1,13 @@ +import request from '@/config/axios'; + +export const getUserExtension = () => { + return request.get({ 'url': '/member/user-extension/get'}) +} + +export const updateUserExtension = (data:any) => { + return request.put({ 'url': '/member/user-extension/update',data}) +} + +export const uploadAvatar = (data:any) => { + return request.postOriginal({url: '/infra/file/upload', data}) +} \ No newline at end of file diff --git a/grailed_app/src/api/start/index.ts b/grailed_app/src/api/start/index.ts new file mode 100644 index 0000000..e551856 --- /dev/null +++ b/grailed_app/src/api/start/index.ts @@ -0,0 +1,5 @@ +import request from '@/config/axios'; + +export const retrieveTask = () => { + return request.postOriginal({ 'url': '/member/task-record/retrieve-task'}) +} \ No newline at end of file diff --git a/grailed_app/src/api/user/index.ts b/grailed_app/src/api/user/index.ts new file mode 100644 index 0000000..c342d73 --- /dev/null +++ b/grailed_app/src/api/user/index.ts @@ -0,0 +1,22 @@ +import request from '@/config/axios'; + +export const getUserInfo = () => { + return request.get({ 'url': '/member/user/get'}) +} + +export const getUserDetails = () => { + return request.get({ 'url': '/member/user/details'}) +} + +export const getUserProfile = () => { + return request.get({ 'url': '/member/user/profile'}) +} + +export const getUserLevelInfo = () => { + return request.get({ 'url': '/member/user/level'}) +} + + +export const updateUserPassword = (data:any) => { + return request.postOriginal({ 'url': '/member/user/update-password', data}) +} \ No newline at end of file diff --git a/grailed_app/src/api/withdrawal/Index.ts b/grailed_app/src/api/withdrawal/Index.ts new file mode 100644 index 0000000..cd29073 --- /dev/null +++ b/grailed_app/src/api/withdrawal/Index.ts @@ -0,0 +1,16 @@ +import request from '@/config/axios'; + +export const checkBind = () => { + return request.getOriginal({ 'url': '/member/user-crypto/check-bind'}) +} + +export const bindCryptoAddress = (data:any) => { + return request.postOriginal({ 'url': '/member/user-crypto/create',data}) +} + + +export const createWithdrawal = (data:any) => { + return request.postOriginal({ 'url': '/member/withdrawal/create',data}) +} + + diff --git a/grailed_app/src/assets/css/main.css b/grailed_app/src/assets/css/main.css new file mode 100644 index 0000000..88216df --- /dev/null +++ b/grailed_app/src/assets/css/main.css @@ -0,0 +1,20 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +.btn { + box-shadow: 0px 4px 12px 0px rgba(255, 119, 0, 0.25); + background: linear-gradient(90deg, #F70 0%, #FF4900 100%); + @apply rounded-2xl; + display: flex; +} + +.van-default-btn { + --van-button-radius: 16px; + --van-button-default-background: linear-gradient(90deg, #F70 0%, #FF4900 100%) +} + +.bg-theme { + background: #F7F8FA; +} + diff --git a/grailed_app/src/assets/icons/allow-down.svg b/grailed_app/src/assets/icons/allow-down.svg new file mode 100644 index 0000000..253505d --- /dev/null +++ b/grailed_app/src/assets/icons/allow-down.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/allow-left.svg b/grailed_app/src/assets/icons/allow-left.svg new file mode 100644 index 0000000..1bc9225 --- /dev/null +++ b/grailed_app/src/assets/icons/allow-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/angle-left-circle.svg b/grailed_app/src/assets/icons/angle-left-circle.svg new file mode 100644 index 0000000..c7fa2b7 --- /dev/null +++ b/grailed_app/src/assets/icons/angle-left-circle.svg @@ -0,0 +1,4 @@ + + + + diff --git a/grailed_app/src/assets/icons/chatLess.svg b/grailed_app/src/assets/icons/chatLess.svg new file mode 100644 index 0000000..c527eaf --- /dev/null +++ b/grailed_app/src/assets/icons/chatLess.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/chevron-right.svg b/grailed_app/src/assets/icons/chevron-right.svg new file mode 100644 index 0000000..075cb41 --- /dev/null +++ b/grailed_app/src/assets/icons/chevron-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/click.svg b/grailed_app/src/assets/icons/click.svg new file mode 100644 index 0000000..1377d9f --- /dev/null +++ b/grailed_app/src/assets/icons/click.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/close.svg b/grailed_app/src/assets/icons/close.svg new file mode 100644 index 0000000..9995c70 --- /dev/null +++ b/grailed_app/src/assets/icons/close.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/copy-alt.svg b/grailed_app/src/assets/icons/copy-alt.svg new file mode 100644 index 0000000..37104a3 --- /dev/null +++ b/grailed_app/src/assets/icons/copy-alt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/grailed_app/src/assets/icons/daily/left.svg b/grailed_app/src/assets/icons/daily/left.svg new file mode 100644 index 0000000..1ac3d38 --- /dev/null +++ b/grailed_app/src/assets/icons/daily/left.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/daily/right.svg b/grailed_app/src/assets/icons/daily/right.svg new file mode 100644 index 0000000..3e58860 --- /dev/null +++ b/grailed_app/src/assets/icons/daily/right.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/dollar.svg b/grailed_app/src/assets/icons/dollar.svg new file mode 100644 index 0000000..5afa895 --- /dev/null +++ b/grailed_app/src/assets/icons/dollar.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/grailed_app/src/assets/icons/home_selected.svg b/grailed_app/src/assets/icons/home_selected.svg new file mode 100644 index 0000000..c5c4182 --- /dev/null +++ b/grailed_app/src/assets/icons/home_selected.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/home_unselected.svg b/grailed_app/src/assets/icons/home_unselected.svg new file mode 100644 index 0000000..3339e20 --- /dev/null +++ b/grailed_app/src/assets/icons/home_unselected.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/keys.svg b/grailed_app/src/assets/icons/keys.svg new file mode 100644 index 0000000..0c09199 --- /dev/null +++ b/grailed_app/src/assets/icons/keys.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/lang_icon.svg b/grailed_app/src/assets/icons/lang_icon.svg new file mode 100644 index 0000000..9c1126f --- /dev/null +++ b/grailed_app/src/assets/icons/lang_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/order_selected.svg b/grailed_app/src/assets/icons/order_selected.svg new file mode 100644 index 0000000..7a09ce1 --- /dev/null +++ b/grailed_app/src/assets/icons/order_selected.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/order_unselected.svg b/grailed_app/src/assets/icons/order_unselected.svg new file mode 100644 index 0000000..35d183c --- /dev/null +++ b/grailed_app/src/assets/icons/order_unselected.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/profile/bell.svg b/grailed_app/src/assets/icons/profile/bell.svg new file mode 100644 index 0000000..60f07ee --- /dev/null +++ b/grailed_app/src/assets/icons/profile/bell.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/profile/profile-lv-0.svg b/grailed_app/src/assets/icons/profile/profile-lv-0.svg new file mode 100644 index 0000000..c0cb377 --- /dev/null +++ b/grailed_app/src/assets/icons/profile/profile-lv-0.svg @@ -0,0 +1,60 @@ + + + 编组 9备份 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LV.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/profile/question-mark-circle.svg b/grailed_app/src/assets/icons/profile/question-mark-circle.svg new file mode 100644 index 0000000..21e7948 --- /dev/null +++ b/grailed_app/src/assets/icons/profile/question-mark-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/profile/settings.svg b/grailed_app/src/assets/icons/profile/settings.svg new file mode 100644 index 0000000..a1e5569 --- /dev/null +++ b/grailed_app/src/assets/icons/profile/settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/grailed_app/src/assets/icons/profile/user-plus.svg b/grailed_app/src/assets/icons/profile/user-plus.svg new file mode 100644 index 0000000..9f9081e --- /dev/null +++ b/grailed_app/src/assets/icons/profile/user-plus.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/profile_selected.svg b/grailed_app/src/assets/icons/profile_selected.svg new file mode 100644 index 0000000..0fbbd97 --- /dev/null +++ b/grailed_app/src/assets/icons/profile_selected.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/profile_unselected.svg b/grailed_app/src/assets/icons/profile_unselected.svg new file mode 100644 index 0000000..c7be54a --- /dev/null +++ b/grailed_app/src/assets/icons/profile_unselected.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/service_selected.svg b/grailed_app/src/assets/icons/service_selected.svg new file mode 100644 index 0000000..0f9c672 --- /dev/null +++ b/grailed_app/src/assets/icons/service_selected.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/service_unselected.svg b/grailed_app/src/assets/icons/service_unselected.svg new file mode 100644 index 0000000..0572186 --- /dev/null +++ b/grailed_app/src/assets/icons/service_unselected.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/settings/about-icon.svg b/grailed_app/src/assets/icons/settings/about-icon.svg new file mode 100644 index 0000000..6828d90 --- /dev/null +++ b/grailed_app/src/assets/icons/settings/about-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/settings/arrow.svg b/grailed_app/src/assets/icons/settings/arrow.svg new file mode 100644 index 0000000..c17c311 --- /dev/null +++ b/grailed_app/src/assets/icons/settings/arrow.svg @@ -0,0 +1,13 @@ + + + 编组 + + + + + + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/settings/currency-dollar-icon.svg b/grailed_app/src/assets/icons/settings/currency-dollar-icon.svg new file mode 100644 index 0000000..401f105 --- /dev/null +++ b/grailed_app/src/assets/icons/settings/currency-dollar-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/grailed_app/src/assets/icons/settings/globe-alt-icon.svg b/grailed_app/src/assets/icons/settings/globe-alt-icon.svg new file mode 100644 index 0000000..8c5d718 --- /dev/null +++ b/grailed_app/src/assets/icons/settings/globe-alt-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/settings/language-icon.svg b/grailed_app/src/assets/icons/settings/language-icon.svg new file mode 100644 index 0000000..8c5d718 --- /dev/null +++ b/grailed_app/src/assets/icons/settings/language-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/settings/logout-icon.svg b/grailed_app/src/assets/icons/settings/logout-icon.svg new file mode 100644 index 0000000..5ddbcba --- /dev/null +++ b/grailed_app/src/assets/icons/settings/logout-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/settings/password-icon.svg b/grailed_app/src/assets/icons/settings/password-icon.svg new file mode 100644 index 0000000..945261b --- /dev/null +++ b/grailed_app/src/assets/icons/settings/password-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/settings/personal-icon.svg b/grailed_app/src/assets/icons/settings/personal-icon.svg new file mode 100644 index 0000000..a091218 --- /dev/null +++ b/grailed_app/src/assets/icons/settings/personal-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/grailed_app/src/assets/icons/settings/user-circle.svg b/grailed_app/src/assets/icons/settings/user-circle.svg new file mode 100644 index 0000000..4daea5d --- /dev/null +++ b/grailed_app/src/assets/icons/settings/user-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/start_selected.svg b/grailed_app/src/assets/icons/start_selected.svg new file mode 100644 index 0000000..b5ffe32 --- /dev/null +++ b/grailed_app/src/assets/icons/start_selected.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/start_unselected.svg b/grailed_app/src/assets/icons/start_unselected.svg new file mode 100644 index 0000000..2436ebe --- /dev/null +++ b/grailed_app/src/assets/icons/start_unselected.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/vip.svg b/grailed_app/src/assets/icons/vip.svg new file mode 100644 index 0000000..ef73f01 --- /dev/null +++ b/grailed_app/src/assets/icons/vip.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/assets/icons/vip/vip0-icon.svg b/grailed_app/src/assets/icons/vip/vip0-icon.svg new file mode 100644 index 0000000..bc7d736 --- /dev/null +++ b/grailed_app/src/assets/icons/vip/vip0-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/grailed_app/src/assets/icons/vip/vip1-icon.svg b/grailed_app/src/assets/icons/vip/vip1-icon.svg new file mode 100644 index 0000000..6f72892 --- /dev/null +++ b/grailed_app/src/assets/icons/vip/vip1-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/grailed_app/src/assets/icons/vip/vip2-icon.svg b/grailed_app/src/assets/icons/vip/vip2-icon.svg new file mode 100644 index 0000000..be9b9f5 --- /dev/null +++ b/grailed_app/src/assets/icons/vip/vip2-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/grailed_app/src/assets/icons/vip/vip3-icon.svg b/grailed_app/src/assets/icons/vip/vip3-icon.svg new file mode 100644 index 0000000..bd1e73b --- /dev/null +++ b/grailed_app/src/assets/icons/vip/vip3-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/grailed_app/src/assets/icons/vip/vip4-icon.svg b/grailed_app/src/assets/icons/vip/vip4-icon.svg new file mode 100644 index 0000000..785855c --- /dev/null +++ b/grailed_app/src/assets/icons/vip/vip4-icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/grailed_app/src/assets/icons/volume.svg b/grailed_app/src/assets/icons/volume.svg new file mode 100644 index 0000000..d2f839c --- /dev/null +++ b/grailed_app/src/assets/icons/volume.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/grailed_app/src/assets/imgs/avatar.jpg b/grailed_app/src/assets/imgs/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..167d4f79dc231c1a73bee92f161d5be431b70359 GIT binary patch literal 31403 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/customer.jpg b/grailed_app/src/assets/imgs/customer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24eec33bffad2b3abc75c0630f1dbd4593fc7aca GIT binary patch literal 31898 zcmb5VbyQS++cvxz!l4w926Y@lQaYt&=o%QhTUts%8c|{B4v`pYXc(lWL|R0oOHe>U zL8K+$&2`=P^R4e$>;2>Xt;Ni&*|2BUah&IICYRHfO8|wMlByDb2Ob_g9ss!90{nCy zdH8sEKk|4C6S~h2h%2aS5)c4a$BY@`2AN%2ngHTSo2#8NmvVu3)+ZC2-(;Phzr|@O9+aB&-Q}W z_RJ6ffB*!SbHGD@f|Tq!841O8^6ONT6gTNP80l$g=>=HWZgEHoNlQrxiHpgpm}$u= z8Y0BRb=;7KmNt%$9Az{;{U6);nb|wqUfl$bl8TC+hMtd+kd00;yRA0I-94$U)j~^G9vK~@?>lA%{JE`N>dSp# zAZ9!F!SLGsmMM3?5s@C8`_SWDA`|)5hP2<~1w{&8wGSWEzsx-eFObasn*T>M#USX~ zTdSlL>a3BmdzV0NSK*^Cs#+9v?vo4NBd-P>G9Q{0R%ERrmc7YKN4wfI@}>XKHMWxr z8LC}3c-ZJm*tn8vvxP7pR;@1UXI(5mU^VH|$a+$enm$mhrjwfF8Q7SHAmKzb_Ep!= z|E_)eWmblYP$|;>)Srtj@EzYY^=7=Y=HGe9KqGJ3mfNq$vN?6He8iD-CvLzsFH|=G zcH8nxTO&mETm{}2)itnth_|t-FRHvYS%J~M8K1hHTk3eKw&8o@CHwx6>6eO&YK_U@ z+;-X26=TP@Z(QDdIjO2Hat>Ip?fM(NpuQWcm9$rl*_VwJUN9kH(#NVln_F9WmNhcn zS4}eo0{}UG0_stM$l`=Y{dsq(VWDs~xllV)GKnCaHmgWK*G;ILu_0UJlyRY1OlhLL zBCCP1J3jeW6~P)TKfIrU4ux_n?_?@lDo|7?LWZ2DO$LlIBg zd!FZ8<|F%feSwYrNcQ=pOW*^=*R2ym5!P__lK4(4&3l{I48MJ?l}W79dF?%B@<;q6 zpdfH@uutz$+R*ISR(0a%vsf`VlPI3j>V}ZqlgxK(g>R&IQ=D5Y>Q**cxGJ9y1_qa= zXH6uvHFjSDRF(=FMUay~b{kab)iKHXmnl;#8=c%g7E6)qLD-J?!9JSbL<-9Qcx zp9BC_3E3$^8!#VS!U|1d$`o}uBG5x3^LXLk$zr&8pf!|)6EsZDJ4BmJ9HSJa1zZ3S z%>^5btN{usGEj0(5vu&G8G8MsFa`kVC&v?(XGQSmaX_QFIa1(6XbEZCGHEGul!xsF zsg!?72j!YI6HmR?P~Ck?7Z2}TbIH9SMD!04qU^Mg;a8{r5+l5e5L7Aqf~EWIY0F=z z3DJ$RWYu0|U|--1hqSEg&JszQw%27sBv?&0))z+=UBBv_nD%kUyq*-`D7qzGlQd%c z=_``V>vzE!gW-_w;Nd0kF;Ok@tllKR2EoL)g(IO-f0Eu1D0_AQ>nZu7#+dmOA>432 zqtsfqh3Rc{;X8KFkJckw#}1vO+*aPKo3dbIPuuf9V~us;+$ir(9cg4%4kk8`I9X^d z%5J!;voWFUuNiRhGLsk8?l|$St*!s<+kG3RJ?TZkLd84_$F+A$MkyFF9=417W-e)T7zw3TRe-K)I z#*}0BtIwr;KUU1>i)5uy)+vu!PiEaAYjuvZ&(r;L)c&)k@1CcYQG6(4-xBPx$9LK_ za-w$s8)%da~J(PugHN?wJDX?f8;n+fM-lC}*{PXjW@@{KD^3LRXOGf&D zcMR?l*t2o|{*&v&{G{hx(x$a@a9OMF>bHw-1O83eLQs_F*-b+lHTu%6BOb;{&ujGW z;}(_MDLI*g6jG}!_tfowIkOp!#mJcKjVyo0qN{&s{(bR?^k%a5hoTW2myj`i#qK3= zTcrZ`+*C>to3s_nC_>#i`DB8_0g#fVVTL##gpx z@y9P|o@G6k-1lDPmyjr#jXuX*_VZc?Vc(1R>(vD(p0_juCS*gDe|=oMtvuo$k(A;{ z$I$a#bvKLe)Uf7QuR6rka$mAJWKX0TqkRdK-Z{xST750Bq45$3O@e<&WaQ5S00Mxb z2KBxZP_Tv)TodNxr=Zg{8Zsl{Rdi;c=0~qMF;p$FfK0Q}&=MFy!#B~f^>{5+B*Kcs z1-wAsT|o>PHc|&-O&l7^kKh3)1Viy*{E++)q!g&pR6Gp=2q@^t*OnFK4~yO$sW%AV z_gGGBOl~s$%}frsw>0@)akF#|8{yC%`TMWqbudKx`)(8n#7S6oWxMF4dh5CKQE3af zoRi+1onNfm(hON6!+J;8`Mz!LE2Z9wS!pduWozj>A!p&v8d41soK+u9te_bcVdj)A zT6H^f*QD##`ju^}ehIi-s8sTgeG~pZtL=bNlT?|a>$NOnzhC-B*Vw#OI%~(?c&nt5 z@^Ed3*Jwmqsu*{!Q2tl-ou9hRPw^paIcLw^@)*IfrtP%R3u9jaMQrWwSLtg+^*mbo zW##&7_Cpp$lb$Ht7gcNj14f(IW=%#Gt4bCl<(mO~gz~$mi{784V0UbK|AG|I5I0rM zo=YomW!DXcMCc^xy71vqrHy`gN`f{zi_ns)o+rE)6%3?$Yz{55-LgoY;Mq7TAr6vQ zc$Q|Sen)9z_Sl6ZHuYP{;HUKoZ~y9;XU=8EKR4q?J;vOn)Vt69&dEmTXr+>HgM6{| zs_*-ydeyt{ucZzL34Plxzg<0M?ft$%Rx{Cp!Q&uzeuE{&l45*SUDQn;I*cXqEaZPce@ zll|9Vj8KQWp!de)g9(M4^|E6pskPjtUeSg9;+opH+el;f@4K@@rY|1;cqn6Y32;x_NcREdkE4`$b>f5e{xjimh&D3ovR_GE?=f3GT$4afO@b&5P=N7Ju zT%56`8lzFwvqufDRZpu4Cp}*y73bzii3&tU8loCs5TrN!ILLl@^7Ih9JY`*c&E%!$ z!SF>7LMYzOG}#Tu&D!WMJSaW{QMFwN&A0&*KKk^;B2Rf^uNCrmE(B0-B~6I?-5sPg z%%@Yu`Qzq^{msD1XYqN?`x8I+MV+=R5w*RB@k%__y9>cN!}p5^-HftXm-z;m;$FRf zgWUgGNho0x{fGGE-nXpW-e(u>8FB=|N*KjQ|Im5GC?Yj08etbMQTQkWN=}_7I0cEO zOpD>LGKAxXpAss|?2;v|fZ;ndlD9mmz*o+_JUo_?BulWEI#il>T$q6a;z>#Y^FNov_Am+1QdPO1CE#qhe=X)}F0&-P<@k8Z$T zXvN{fwr`Ic1x#`%O{I8~%xG!hV*&m=h1&s@xjU)W_ zVuwo6c15zqp4;g2OTcT>=CyN#flcl==}SP*9@(fxA;mXIZ|x0 zt@f_H^IRHxJrL-bA9K&3jYpwp#&$pH+r{F#tPr>NKV_!x{%fd_l2-Ii;C zo13FwwpxtPRBTOqL8fLW5h#{O#Ch9@d5v^&78Olv_QEJ$QRS{qm)d6n%P-| zq5vx}XJN_(JD*gzKc=a$J|x~fpmq|Xv`M+C&rSWn1g(4a`V#09UC>IZ4368nkCC33 zu9+%n5psAhV?X|kwysD^X99I$>8(Fo8+8eMPON<9adCU2$V}uZX9=;$?M2RtOJICz zS@t65Bbq`Fp7Ae306=N42D*-cSvT)ZJb!$BDO$lXs{i_2?>{7kB$0VtIUSfY*Mm7T zzONbeqsW_zkNSa|TwuBT0svqDBVGakyU7s=$U$IM!h>ueNt~KW_cg!4r1(B8XqgPF zV;VCaK1uY5zb53KpWh->)_(fH%wT3;VoGIeqj*6)W;v6$LAB7nxTS#c%L#5Vnf(6H z43B-%#D|~HdoO|J*Cv)`-kmQj@_%_SjHl4O8H&p9n;{c^5+iJd53omKh2@DUb&}xa zE>>l$5%xt?cKUoz-Y5Glk({kS2ZFIA>}dka;|g_JH^fab#T+f~_SOcFaf9>r?Is5r zEg2DIF_TE29>MbImW(p}ZB&nLv;{3mWPRhEJcVCIGt?jKYWp<|4%fmle9ayVqUaY4 zsp;T>ne2@3Ye(Zq+)h*%bpe0siJ`8cx|@}Z%Mv=al!h6K@Z zBnD;_S&V?)IzD}*#9y)paj(N)`aURn&ncO$A?oiKUdwu#ytX0UlC$;-V zuqDrsdS2b}4s61VKeoT8oJzPK=!9|tlt?Q@bVLKZJTVKa63dxMqqu8d$Ow^9CTDgJ#WHFObU5l`loxTin*|^6Bx8Bgw!#9*M!H9%L_aC`;;Nv%k~F zCbx5DMY59grxr<6d(1`0=aajMa{4l}yB(8XXS6^gaB%$%Hm+Kk6w{vBCm!4+W|r*{ zdlE9Tk@^!>C;i|<+jp=+j$ax6V-gQNGU94$>|{KWmOf!<`x&%zCKIwZ9}sg=ZDpTF z-T7bG!D`Z(&3+Ib3W81}*lS`l$fJmgEF9!c<`SBvL|+1|^hNzBdT1D)y;&+#8NM5W z?gJ?$`1cwFC`At7O25d$LV*lQdniCa0qh{?A++kaX7y31Ou%HlhjB$x^hem?QE+kP z8LRc!6nE8Mq&BgGo1eghyY%gFs;Z10POG)5xQ0wszB1$BAKb_ybv{0NB@=V#s(0F7 z*ceJGE0Nbp{hBfJmS7&9AQul>k+`OChK8sgE67C!&+9KMR;xuNGNMKaRPr$7cxKC~ zDTK7jOkp|dg!1niXlc3qic+u#4)aU3lp-(c!nW#g*9j7E$I0F~U&~(1) zi93aYrPms+ zU=-v)C$Ji*TyYU!G(GlVZT~|p_u7|``NfskHriy3{UA=0FMp@r&K*iD{zR4|7zQ}C zG^?S*mHms0=TXZO**`s91y>4g?b@4@EMbyF;KE&2^EMTt{ZL3U9D_h4swN^`xp)&E zvZ9P=>Ug;mY0R47<#s5AWH|*nLv}*1CG?266pg;{7*yAI@iR8!TZ0a@7LznOra`XM z=+~e_0gaxq86(1tCdK0RC9sZ?AO6#~gw-a;WA<3W{yr0`NEQ2p?NQZcuJ$&o9S^#l z8j0|%E$d#hq<2btT|LKI%cNTy{O%Iq%!uuyrERHtQ8V~BDe0VC+bKwlDc2b9|EN3wh2m<>5-0%Lu2e?YV6;tVn!?M@DtT%nq6d)z+6iFu3j%AXQcL{@ z+dzei|6&Vd0MILJ389e)T>uaG{1CwJIdiJ`n>D*Xa4u3Yv^!)F;3*lLxOuR@@mDv= zW5;IlYhT$EJ%_v-{e5CBqqm3mXqWdtteM+tKZ~Ii>L4BOahEhvYd3e+J8ib+ogAEe z$|a0oib2J~00<9S1N|J1nW4_4A$pJLhtJTMWzv{M-h~T4Cy9bs>(_8+K^hL>j5h%SzpA8s`_h{Vgx0AT_bUl`KaN|T?6#w@hh%C;%8M@Av9GZIS5wZakv zbFIJ}zc7lV2Z%$dVE_>XfI>1U27x?+PB}1YLaoTL#f!vt+^Y+EItM}O$fwd{erJSh zW34*|X?o-4Slk2oC*86GxxN+v@ z`qAgVbEM$hW_0=3!Go@*VNen%*lB1Hh)gG18X|e{MHnqY|6cReYZ@YiB045Kud_;# zMum%Eo-q4`l03~P8ACRNkO%!Ecr*JHA%ok?8R68p>5{Heql)C2x5G;Ms#y-@0e=RN zM2kszmN5}dqebVM#>VDD97REn#gk>DQ`D_bK9L*VyRkewej=^cyVD%PnR)Ik6MXED zx_>9EYI{S!t8IC{BWY3NS+!m=`8o+;^&hc?!3VpOAONJFhVBEl9*-4xpAX~Apx=i7 zYo2nUxGJ^S{V*IZ`a6xym9s-40H9M200i%*$^iB%W~J;f z1aJC6+vO6FiVYSBYAe=w>krS7gM@;S9X!MlSV7z>5K0F#g<#fGY4cb^=~1kNLeM@> zB8FWWA_zCkCRiSV)C2b$8(mAv|W?$d<^YV)cA`36$Msm2x!z3m@Y+pp`-K6C$a z&)sfPXpM*)IgOE3arDPFCqw1ExnKiRCuB2Y3t6B2WS-@+7E6Gwwdum{{GzH5@GBOR@d7y#y3S zw1NTxvJ)6cOA?$`?&qkq`~x18U~rI!B?SVQg}IVMe@7XGX5sPQg>lr7J*BY8y{lsd zy9vX!tHq9|xK)SpMbg4KLjeFC@lRd_;KS^}2>}5({h=qj!SrXLdEBXN+liww%p_<2 zdaCxPO%tPKN1N4MhsvOb_1{=D%HFt0xLrgry9Fn5&lznckGM++*cP@^jSX$8Dp@x4 zau+^vGKwPnktrA&#t#Q^dkxQLi0I`5eLn#epd~j*E)qxt+cjgzV}q zg3f3z_@4w8-kc?U@l|^ohWm4Ino8WcrT${{72aYD6?@6CS=e2l0r$g-xxk*xZvtWM5t#aa9nFkN|zI#(U^56&Ff^{z^s zE)z#nl#_(!Q@{%4GEfXOv{&g+142HGSda_GekFqhOrYg~0UQSvrJ=fNC}dD_JYOL= zhQ`r3Ax9?K`+hkKnGLPJ>LA--{>l24p{d7^ZysCCl$x^K(!E6fj3m3>x5qz;)KX{k z-Yt>GewM0@Bzw8HEOK&HOSGTb=KiX^_~Fse?6<*#c=@$@sc_Ho;)k=u{$VpW3kzOi z*ou`P|1A)_ri>P6MQ}Lf56=KCFb)X-&CnJ?IqIAs#>m5P@z?A_w4+-N+3zlsX8Y_II+6-ojdv6t;YQ({A}h z)`oZggwjaKBEo3RSA>qfr|_$v&{$wjIDa@YPIT_tttWlD%#1PPv4W692#H2G4;L9a z`pV?Ya#m2RG(?ds2^1(Vc@RAEUo;f(zYsx18qgF85fO+NAeKiQ8X$00$S&k7qwGZN zu$TKH_wz#Uiln(5@>(4yzmNiMj^!I^g!LyU)V?hQEHWjgfrvG7J8h?_lFx6?zbuap zF3mmfKXa1VE!?O$|Dc2I~D3a^%_u^B!-+gmM<(^X!%ET+X-R@F~OHT4MQ zacH39x(Q4bQKl>^YKr>qiYVqtYy*KQh~M*r9R#954K~AwsDV>wP(n3-UA=!5C?ufK zB$33al+Xw?SGJx8nIxK)$wE`fB^_IGplfbOixSxw#P|-tGyRqaS&e}+~^me!GlGArdl69YCg|HKr5tE9C!7}k*xPNUN zoD6MBiZ8mwL|VZhp`cEzpp)z>KYagK_J~U*ER@-b;f60VR#gxbD)PH?fL zsE`09p6X{>=MtSHiu}j!pum;gfrj@Vy8~c(M3moUxQwQ3@vuMkOV8R%3)72gFP^Y* zZ`@@#V9fG4emXd!h5F0#XD!PgUoyTr z*neu) z{fN&TEq7_*QE-C6yD-igGQ$L`+<6)baQ6b_0?W-i@#0Y=Ev#4$2qgit$E)cvr5srv zfJbmehWv6cZ=6W!NujQ|ur}^w?ZUVRtne#k-pr>4{f@vf1g=&4s*6ZApPM?8&X5{r zOnt8C9TAW5KCO$_I%~7kx&)#=S@Nt&HwH=izn7FK%MCo9o-7ucDfY6|^Y~LUS?JKH zw7ckTy7%VePhE-G78aTp20<1=7lo4r>E0=~b~!=MEgz1yLS7QK1m`W)tc6=w zjvttxdgpct1d2{oMVu`~$MV;!`*hZ-gd0Pn1Hhc=U#H*=GpkVVM+lAgO5v7zLUdv* zWoxU;TnO6`Z+CVq%S;BOeUs*zf3LgTL_PSi*E+IfcF1!L3zv`{$=TmyPFxu0$F;3qZL~vw zLpsk@ZwGG#wn-KJG8uO|){4&@f28S=E_Q5rWDlwviQ*)Y7~`w3yiQU)WMGPtoIV^I z&7yA8UrtFQOb`i3+=UV=!jEZa!B9vg$4?rU3XMpuK|;w8+xT%>(|fr)IwUwWK4Y) z(nZfzHg0W4dwF_#44xZUlgTyyN_w|9%&B^6i|yBTa3Qcg^ret z55H4wYg4J68gph+tsxz@9)jb$z!vx`gC-at4X;Iz$c;pYu zvb4X6?;MR>>xY7-nvsT6JT@K&_8P|KVzOH!`J(p?2HzTLI+z9sNj8mHst=wN4jc+# z+H=i&SJ$-V=mce7gGnk5JL#86}v$=j$*Pjmd_R-ub$&&y!j-U{)l{MQ! zi!_b55tBX4!!F$-L$@TJ4RqW|uD*XuNb^W|xDE+*3Y*>t8ms)|)^=(T$b!sjEmfyc zB0bG0eA-S@-fD`i>(N&t-8~9fx9pWXJe1MMW2FE5GJ`0xAJa^22ruK@rg1fWTySBu9A<~@k3wnS%_BP#_7ph#7n6uVE8Hv9gq;#F%6tPua9lbV1) z2Or>o{F5^F-*#Me`TE<-$KeQuz{f8KF^qgU2~om7;v@u8}i zmPL@pQ<1Ugc>A3mbkBUwwD=`(@}%S7nR3_YfZ1vztFuzTy@ns$y8Mf!ND##h3A>!S zkfyAu3BB=q=QG4%rgSUV7YPx6)x9FGTmeE(3tq2xt4 zxo=|xrL8FiQq;akGev&Lrr>sgVBjyKIQO#B;U7$V1EqQlx6!@3a|6Eo%VYN(Wn1sq zGI4Ai=)YnuoGRrtb3sS=sSJKMA0>_Arj?@T-j;uy-GyG`c}_V~1+nfW{p=J~R7*p= zbB!A-#S&OM7GIv`_`H!%RxMT#h`d$F^cQ8&h8wO^*O$%2R>@GxYWGzgUzeUG*S`eL zhiY@}652D`zvlJ3goE?+&glE-6(lMadaqgE2U?Cn7==Fiztb`=4-^6f`Tg9!w@HS4 ztxe#Bkzp_J@Z=!>xEUDWtmWk>fKWNkhP-(L6H}N}d&BwD3Hx2o=YFbwB2mmizPLt& zhxaEjHfO0zz&~x)_m;A>m}cSjP*v}2a7=Dgj`8N}l&}09P_8GU$=&{|RQ0#(mRuIz z{7IW*ewJx&|J7o62VCdyO3a$~IxsveNwaBD7LtrLuWI9Ap8cWuO?mf2)&efT?1bjL zZEDkVvj8V@;N8Kh@F~_Dd9v+)l*~7gyDKoFNxwx}1d>nRVQ)Nc@P`RCRTvdrUOve_ z?rNTNB!up8Y(mENmzViL=QO-qxJ7&lY6@)|)2ti(RWPO6^JN$}QHoYQ?z_DL#(vOY zcU+UqbP4A(Wv`{8MQq(xrSk63%XIgGbn%NsdMDZJ^fSZ>#`@5Z`+%lujfUe?Al7MO z+*&MlY~N-VSN->Vh%*^quV24rKC+zyooq^=Cj+b;+>7v89ciSUT6A%Iw72*ul{i%X zsV1KRa#HVoSFv%4bIcn1QMbxq+el{?nq{>8VN1PNZ6h7;P!QN0&=Q^QbaKTD2j?Sb z_;*4trMxnv2*HD=91YO$^+Y{IR07#`IXMChWgvt%3K2;RWKbj`Xz}89VradT67Yb~ z6bbwwJf?DvD;;G8ARHjQRxmJV0z}j_fDV{SW=pWKd^*$i;TqHG;4O|FQ9apBte-1x zc05%zd3+ipiuv6pNN(c#b}-uG)GMQG>x|IF+}XFWu5|fG`TpGMeh7f{@upRq_y1IM zf2QfdT?W}b?{J6uru>89JDOk4Dy3^v%b&8=(VqXg1Z=%*-*mXF4s?8%sjhIBe3tA1 zHb_hZf}4eNGD`}6(kcn!29%yiaSWPX0)!_eGhuxOl_^3|hB<5VXI_ryeAAnoCg_rb zBQ=@qU+Ro+BwK>aCHucwtDjY@IY{oAtT&IJ^7u!8*FOK)FhiFE<*iQEn0lz8 zM=L+jshN4D(qlW1#ki$R1mcPdS7)2?X_9h^wFJ^#>3F?{NWU=*#`5~R$@8s@@Ag!= zy|F*4R}3-0dC;EU@<$PN_ET2Xp<2UE#xLbky(xVF^BmJDkLlmvp1Sz_jaz?Q7f#T&bRSJc zf^N=z(#yKAIfzQjPCt?zNK3UGv}1hR;e_<9-k>q(3tyZ0bIWp1N&Q&jV52>#J+BEO z6o;fWWYHhcnD_S~|zNJNDkPn9?&duu;G0%ajF26=ghb ze%!Xyv61P!3A0a4Lz7xi(t`5*+znpr7p=$1MJ=npJ{ioIX4+I%{dkE_MG!4 zo$qcMIK-S(eqHtRb#Rif3r{hnzc#6i>gcdOgL7H|oxEDJ>qW|9ZFR$kci(<;mgD&9 ze{T#(L{&v^FdF+D5B4{WG;Z(4S`y4I4Q6hvy)(!_XmBQ9wbUGapXZX6VV2;%6?U9ns$Qxjtpv78&*Kff>Pzbf1KR#vN3vin>8)hgquTHo6g=mp1tQQwbKN|*4NKKqEoI%}&Yt-PYoBuLxP=n1~Gv=cylLn6yv8lf<=)Y8o^+>Mw+3&LOJaZ%qMxDo7 z+1CIRnL6RLB(zsif`E)0G!Hw-{YXSDM;6429SP1x{-Yq_cyiDy>p(6EE*R@yO{u}= z^?wxPN*SJi5f?vjP;+Km)kM#Fhn$nGtr>gB5KaHYaTkBiw-5C$xVmVPK zJPgWvhyXW6m7={5XXwr{>)sE=4RnmG)zd|98|I~s;m&k} zn%0HFAMB|crn5@upWW2AQ9|udXF*;wD5>Ybhpr{JhY0E0wHa^xu=AH}MRKzem^CCF zOp{t$*wl<7#(NBkIK5+Fu{#Z1^)%mT=zn$BO%G{GvvYka(y;$vp}Dv9dShFL;Syk~ z_Kp6l`u^=DKzi}vOna(Ca2nKLLIrRe7C=9TfpdQJ3I$*cMCYMQDcD03@Hwik8jHX2 z|M67<06!j9IqnBtL@I%O3UH4DAS5HWlJhGvuGrutxYtec*V3fC&J;Tm&3K_|n5(63 z=Nd}m)r?h6?;?2nv%aYvsg&tKAvm;=rc#aDKh-}Wmo7j38Pnn86+4-%@siNntNUB9 zN=5opkp}x?C6_|)?X=r}T=w}l7*=_X?VLbm|uUwJyZErZog%% z%<4yDx~`*>75WEzU1W$O844*zP3g~6D$!9^Xg`vOa3K@qD`S~ihrRbAR44w3R*&)h zcTW5_A?=o%gr#qFPQP{?+Fwh(MhrgoSed=%DQy zop3Xn^%~$dYocdSo;?S~#+JUeM@)Wla;GY&EZS%(#uV4iiPgY7tSSz9`>QL?B<^24 z&kwl-$U;8psApI!j^5F5LACJ&5x>Oj|NP8o$@UCi)9@t?23zPX zWS}5n$7od(tHkx@;d{G{b~88i`DOEErj>9Wj3<}Pbj_!Gb1A5M6tKxaJUSD*36i(e zPl8pNwD7Ec!E@b#XgNc%P(hO;E{Pyrqc2A1v3pxN=Ta*-9`+{??+|(hERh02O;p-m z(cGtd8%;`Ew?0*})$LB%h3HIM)B;os`CYTSlZa00;c z0MVut4VcA_Qt-&BT;Xf=PxJSG@CD*;{P~f2Hd}>UOH-?xi!c6MI>jKq8{0ooN%>jc zD>|xNw(y1fO|*YZ@`b8n_#$b$=tc*(u~vK2IUPbNmb;JG!OYh6`c3zmqng@g=!wN4xLjzxcud~?s3dzXjWx+8C3OZtG(bK-MO;0tqFgi$7=DkV4sz(!;iBJFCz4agBq z+>C<<#B}8P(k2!Pn^7*`-zEA^NwhGokXljts6`_cKa>4u&NEL$8vLE)eFF5_ZMg;I z(4ioN0VpaE#eW1I_*Ya2$v_gojvKOK6j_x&hON}PaSU7Gd-3-3Y@6oJtH|Pp3(^Ks zmYq-Or`6-&BDCKuZ}qpYxx}2}TAEVldbW?oCWL7YuID;rxuouQC@($#LAUX1Y(cWZ zD1}KQF6k#*xefQ`9b&07iGoXD$K|i1?BpeI3zHAv(K3Slc`|fmBJvR$jytAsj(Hs0 zTtw6KLUYF{UDo)%mh^+2m9Iw?JTJvFLX3V1|oA z2OM=UqUTstBq-$jvzj7`HH~SV7JZ^eQhs(@J}*c@DzM%3i*jNfHft33waBqe_h7$8 zElg?Z2k6a{=1Yb7m~8^G~aqZexA)LME{jJ4)Zz6Af6ntdaIt$j)`yiVRQq3wPsl6tAYB zybd0(3_DAQ^-M4K({;kZVLCi2kDfT}pFHMYD-RE)xGojes=Xw51u6^#^$JXIC+X@* zZt&`{kb;l_4xdrzzxJ54iR5=x8$z&bx>P}(oY0^5Y1iJH;f?B7wt?Cy4!x_-_+GX6 zv{-6gWEqqTh>ocRFyd z1u=*XrMpE*z4q4RVL`rls=fiv_WFeM+AXw1)>lVrhSXT!g`wW(hg!ck@*|Ee;2|_B zM)lMt>QQYIv1Z7DgXMl~0}U#J;g_|sYnocj?<8E;1k1uhjm7&x{*MF9ETnD~`Ty$X zB6uBuXN!&zh@G1cuvE7jUr8}}uP~lth-9PVe3qU|@pCqM4(F-D{u zM$^GExnk$rRJwe(&#*++t8t>Nf^dTZ6m73*G)5^|Q4fw8M6aNb9)u3fEmaKI9`D!l zg?g@OBysLl>h(z#&z7IJ=&X=aTv>G_Muq5VCW_=2_)0|T|F2Q^Gx=QL-+zH%gwZ(T zgb0;+bYBn&*M*G=zIPx=#|Z9jcB`y}*iTNHuK$$79Hj zFqCjr8+Xj^pO4wgOsiG=#bOj;VMo;}Eqg($_3qty!+otdhp#-SB&~NIRpOy3kq`!X#(|%{5rr8k}rWr9k*E55kXI zB)-&5TYRXiY0WHF-PGxBe&I%I)-t?*R9|?ctV~kRi|)}>_QD*)Md&^Z6&h24 zQ_)NsT9hFi6Agam$BDK~Y>$^~8k2BL!`uMP@Weu$kaJ&?#Dja+PsS{ zAf#=Qp2RKH65)MBt;RThmTaK-we(qL{THRLsUgAneNrF#^qX(l^0L4|ycr!EluTpB z5}6!vij@ee#8gv--e0xojSZeHExvs*?p&m6eZ9dSyK&1_z8RUc6Vp9Z`F6CXEN50@ zx1hgwJzXQa=M=_UAj_a3vI!FqmgA-B{>5TR=fK40G}w6r=W46|0JEIR7LSZ7V{Tn- zgkp|8!|%TB^vu-vF;X0Z`op5F^#>AB!(oau2tkBe97&H?%W6gptl8t9mf17CbFFlJ z#k*K7+HUvNRmLG{_Mt7MvJ+dw!LfVs+sV7ee4D1yN=Cm~4Ge@=a|fdw3(Jc4WIJD& zmb?mz9Cv69y3f^-?>!{okyh6|>BQqMpq<<(@?%?M>!sTO$580~=XRBdKP;ZED)Xw8 z+FjI{NHcWIWE*|Y(SvhC<+K5d3!!7N8PL3HDcz=w-VxRYy~AXM%jP5&o>2U!DodtaUmEgrDC9$dUV zegysI(h~kWAR)1@qjaEg_Tx|QH07%LcBSfx0`1DW2RM`QxECg++C*+X*)8XHbf)x5 z9UW`mIQNy46~GNJneQmE1FnsN^A6eFo>?C3CX_Fq+Br;S<#%CwTwVk+_WFQLrqw9k zUguB0_FraoYzR^3y8KC8-#mX;KK_t*@Iit2{LeqHZEQB9*BU5Tc*?f@ll#q4o9dBy zEuPh9i#6jDXjWQ9;$>EZw|Oh3Lap^CSGBg)z)Cpz3vj7iB>kv=v z{{)vvY<(HIVO&@{tn_G0wwez)rYZ7QQhb`F4n)uZv(DhotLVh46ob~lR@p0=9$RzA zS85g;aKEw_Osx>i_NlTUxi+>pNT0R8cCSeCFR=+&TTw-W!zcjkgg{;ceSXY8L1wPv z?v+H5#J!Mbw4!l_$N{h`Ujmz_V3iEM0M|HP81l!Y4-uy_TNJn;1ClD@@0Dj))Nk8N zS=h=B*||_Yw(8A-ofDfRejZcy=Iz~LUNFg8+hF}znRENQpe{P;TSe-}LPX4Aok&xU z3rnGGgAtqiU6bv_E~<&zZa=byQSwA=Ph|}_Z!Z|k&moP=jP*%2 za&PxPIL9|C_@UW0sdg{Biuh6VeAv>pP}YPS;dt9b0q~{Mf)h+VBWJxDw^va#6C8eJ zO{Fj7^X{@5IJdHvSLp__C3}8)7x?2>yLaHA@dItGJH$qKAWK^Q;98l0GW;;AT_|xDbx)kCGo++s*B*$?sR)Y^@tS;L&F0E^@b>A-*YsEsvfY=r6}Ao(I}Z;4sJ6#leXS4gVo+KeX@Uw+A)*>{&d1;;G3) zh>$Ixi6E8;CQ0RR-hK0Om|`zz!;aFSv{`EqKFT#&nU)O{=G4%tR``oOK(ij&;@ zNyDt3L3{hM(j8{{7XQmz~ahv-}wX-btu5{uPek}xq_=)0=QUwMFEIEJd_^XpVPqu*C%2?i82*5 z!AUSym*0C}?jJ+)=2&8O3*M()D^kIxTr>Wm-GC_L0Y5cwhM{A=bF0W5&bH#(lgK{g zIzusyraePB{dU|tvechcf2S?3WQ;%jq3U_>^u>U_u}{&;%}fT@ZT}$_HO6id(_`1j2P;jk zHfDE3R~sjqJzpQ7MY7%?NVwh3E&oqX-yO|%|GpoJqS^-)MNzehy;rS@y-Dm*vu10y zwi>NkC5VbuV#Eq!?@}v?y=PmssSc}X_4&R%pWpe(IdRVW_{aNx-S_Jr*LB?#0U2-$My+vz~uHus!E3VDI;Kq#V|O@%l>IiZsabm#_1lpKi{V-;fVc zXcIQtQPXfySd9}fo zpYaBzGKP4@S6~fvx95d3t$NFxBP0kn2NTju6B5%&U1`(6QgF{II@5}DE5kZrj{bmP z8)HojXYo#^0ce;`{VG`l`b>w{6~1Xh@2g(bgv;eW%mY0sr$JT5^guQE9_VvKM}sJ! zKnX%iiBU67V?Owtxb0~_GEj5Gx_l=<-ugRdll_*BWz|BWvOOrd*hD`KEc=qIs;O@Q zuOxLC^8oqAxJkj%y3H#J-y%fF<-{~IYkHZsEhYFnwG+z37GnI0C7&ZUR@~=i4^c$^Ul6i#diRkXE}~P( zS6t!SoPBu}+Q=J{m+8vAgm+f96+yeAI-FVTA%oxV{(ad!C94dXHqzUzD-~${7O-Cv zbTJmLWe>UG%>Po-SGz{acBh?@C;LubXm)OvLZL_MK#P`faVazW+>YpGk8KMW-7Gi| z%zUQl-*OsoP&#v&lsL`-_tEHZjwececs<)v!xb+6shnNxL{YBB zOR}*^E~LmnJG%?zO3w1ncG|?{C0A+^Ze>jAqT`1oEb6-<6 zghPVV8)FcS0|PL{Br4e0Oij*sxjpMIwlRfcjZEzdOms;agMRUAT=JNZ=;o_p}4~*vDrCX`%@yFgOzS{tvg2Co9xoxcPTT3%Ho&Xpydlq3-=d%;6 z-KC72-K4?5riwrgk-e~Sf54{$^QR|s)ilcVdnEngXv80Yobh>oOabACFp!#F%ZH4l zcqo4#ey!_g$y7ao6#~pzx~16b#~~Y#;iLkp;p7)?(A$^+_z9SFQYf#t1315QG6V$sh1O_GtKop zok$I~lVt^D#I3gap%DxZzfi>FFYX^Lgrxn<>3-uXR$}AaGnwX7`TY>_k$DJzTuqig zLNB4Z!Hmf0o}D}6xm}6e)r7=_%5Sqrwm0czI(Au=(FV)RJqKEQ*7je(KBMx|JJuTa z8-bKPo7opCg~%Q3wSdxD^G6IP9z3=PcdGN1Ki;z_H`rw3N;zGG*>wPn!I#u2V${v| zP4S=w+6?|mea;-B6OQN-!*xUKeVZ*}gR>#G0m`F^xdN=eHRI67Bsr?f$I8NCq)?@4+pyS`U>ec zQjtf%lh%~mE|!%pHR7LWHnykBg>I)Z4|dUVLnWxUIjZOM(b5@G$wwKk3CZ3zLo=;O zQWvi+gg@@Y&K>&}vH9lWjQ&^(U(Q$5`UX1(NL2c~G?Rowu%yBcOsHgRB0*+2XwXK= z)}bj;cuIgTE+>~*t|B64SJHd~yzKh?C$m(Kb3QWkS-#(V>v$QmT+6$B^+>UMQ$+={ zU3I(XRY7_DX^<5(!aC$%(18c4hYPq`wtD9NxwJ8D^3^k36_Go55`K}B-xPI@4b%Ks zg+ZDJ;zQk{PVWU3{`qt;-f>Zdg%if`B8oEiJa?7Z-J5*riQh6yv$L}iUL{|Qv`^_u zXLf%VSO)A@`y?~KY5iKvK2zc->!1OT?0m=xs|u-+n6ChS>#Ro5fJ^_2PMJo%U0Tu) zw>~(e!U#ek-jcs(N6n~fRvO;H{&!?|9Pgeu?!emZOxz1R-Sr7ty-pQ&uBZnYcP*F& zvj~JBBIDyVjbyar=uXruR4Td6yaZJE6Pw%I3$$xkg0l({w|*HU!D~M`hyQjiFOCoC zFYe*9VCj}FZx@oYIoAzC*h_29BQ{WHE3dil=&G2CC z-_82Z)Eavlcj@8D305~B`b*3}5sl-X;x@_f{!P2K%J8>=e4I3=Bb9j91e!Uk9Z$~J zI^6~mSRoP07g(I3 z|Muf-aIkx((T%2pfW&pbsw|C++$C$693Uf7d8bBDVY7)FR18ZezxCM$L(ua{R3i zjV`DU%@p0ggSmc^G;{sZ=>!xyyGLf<6#9Z0Ko5hv-({yc+8OW-)Bg*a02-nk*Ca|?r6H|@+ysy>b=&bn$ z7`aH2xaezMeH0>8V)xB9aCp|FCt1v9_0{%mTG#@_AeJwKq2iky1$8(}Ln zUlWIxtAK7w>R)FYt|+ZHCd6`BJeaV=N0=Z!NIKU(Sm^c5uWlt$_$`I^%z4au9wD3q zHa7psev+Q_Yx9oACkdt~1j{s3sd-`W3Ep#f4)Iw$w5Xbn)?2{kg$((fJ&&SicHSIa z3y4oT-UTZ)M*X4IhZS)(kv*OYMyY?>J|T?^;pi`Hur_1knkWM9UrCzm;R|yuOHIR5GfgJs#D%z;O{Q(`utn{1W&nH z3zTAQq{_CocfR0X5TwvHawy*@0FBa%nh+eu3Hl+=qKYV+A&n_g@Qm1#Yi(0*$dsYi zyq=*>UBNG^1mciqT9%tOto|949-yBaKyd-6KtSpID3hY8-cz<;MjxG#luR(H`&~U>Qi5U``)-nhZO(t%DD(Q?L4A~3V5X`YzF)@2f_Z{?Im2HRoW3=ML^%2l{_vd@E zE7!K7!{ldo-waX|nA?HtrZ(E-EIQ2;cS+IsH$QCVJUx7OeodEhIKh^OF+%z&f-SLN%=X70V|I#%qXMj}=3{DBKCVn(U0<6w=x6Z9 zWn-X>R+;Oco%r;=mOmS($xMA?`kA0P7J?K(TRq2w zk=#Fwu9Q*2%LEmc0n?Z|<}xwkZ8Tz!RbN2Sn!EN=4pq#091~?%nZjgyzFG+%+n1bf z>_zfS&o_YyLwl#1+XGRy-$(h%xnT26?a2Un^3IpLQG7Z-hu7zcvjOfd+q|26ynk9U z%H)?lNp3>%Um!vv4=g^Y&ORcrXTuaC10^ZTB!aJYD^{2S?*;q)h6Y@r?4z~tXQ2Yyic#fYpM<{nrsn1?75?FSl>(`yD@Da(Eexw74tI7R~-uaIZY2V23c+ zerE6#JhL0j7Z4luET+HKVKO(__4?;sV#?_r)<7a$j2);o#ehRW1F9p5zT=^Fdjp(t z4!Xy2{Sc(AN;N?qfPwJrLdE3UlfnRDuJg7-cNmXSmRJdaQPql4f^^vAD)Hp_@7FUB zkbx>i=S5@9ILZR3ivuW2iT(mEi3aiNrW|EPd)Im$d6;@;M1-)f4RyE=KhjCNi<(Vcz(Tbl!imAZ&*V<# zx>%3is7>;%R^^2UN43e@cgc8G{tLRzQxgy_X<3)BV&Wo656P)WE|Qj$Wrl7_vHS_X zfOm(!J=GP)3;#$_y3{i263+ebi+51m#eP6HdESpgac}h?<0fG}=%(~D3qha6OrEu~ z$kMHKiyY^{z2k<-Js$m!ex0s+sfYWcZUW(D=2kmU&tglU>9WdDkBPhN*FCjU7`jo! z*FQNI=D)jQgfF`t_KxftXS(q)Fz5n-?mMEdKPq9120riD-l=P&g%A52{iU-{H*Vdk zH9h<#4uir8MhIyxSASPV9h58URk;CF8voTC6slIhkW5tqw4nxc_e;eD@`eR6V~X;J z%Sc_!x#{%VsJ{n3>&0x_cW8B*lmt39b5_5H1qzkmlc>;BB|QAu(Su)=oGMBGT5lhci{(EfTGW zye52X7l#(PNf=Gh%wZ-G1E_6nbTDnf9A*#mn2JI&4~>NB+_}bDi|Lv;xLbCh1@@-j z96W6MfcODs5s_aDVJ*l`G=i+i^f?qECt#XNJ(J)!S>t%^4k>9J|C*SVd$_ZW6pA*Np`&yBPXm?Ghz z7K16i>WI@VaFkF3QsLa?CmSKK$)f@`3udZ)XnAy5(_z&F+f-ux8n{)j{+k~FfgB&x zufuic;l(mSWgbc50wO#0PF{r-=nh_?z^v`iUq;V7{(9dz%M$u)GM$?Dd)xlenL=xI z(#W$P(8uV)VR+>|pOmMrbkJ9K!3|KlCoBil~&RbVF>!HoOhIpjmTOs!VXFR-(R8AM4h6Fkn)Na%wppVobwy)ZB%F;;)Z zAD|>(+4~BT!2u;9^`?|3w-BI(3B-nmygwZKpuS<>xfp|K_^0(UY37p0Vto68NFH zRa4-3V(-{$V8&UQ{}Y5@j+j(nN2G;unbFIizfs#uL0b zAMiEjvnN(=lvW`8f8Obn7AJPs9Pi0g-r-Ss8Q%!%#1 z5wh*mP(YYxZeNCvyX3XW_>B29L2|d}33yKG-lXR}Kv9e0Njv+;p-A7>6Y)g3LFyC+ zAD*w^FvK~&mb>Ix=!4Z%ld!U8QR#xRuE>~(W8Sfb=@cKEEUJKLZq-D4Tnlo0A)u}Ga8AOSxHoB6X4W1_zUrn6D zz;t-y{{q4xNR(1LGE|c(oViZP(f+&o$R`=XXAGrf`+o zEF?COYr0etJ;qv?m*fNY2@lEz_v!q&bcLf?S4{`?u5+25D-0Y94&^T)T4DRQec?yPaO z?$ckB67?nySiQ>WaVi}gSG_`j>t4sPXmW=`&aS!$)A>T=<5Z$g10{_@isl^-zoyV3 z-gQQG1E(j7IH|Y~NQhEJL#?upWAfRT3KBTUmKmRDT6P;QCW9*|+?r zjh|`^Oc~p2vP2}bJ_ah$#@jH%VG&u*b2CMo^+#m_8F=z1Pb)V7zAof3+AvnlxA}y6 zj{bM)j#oiYL3`e~s0XFs=WIFK`~tlo=4PahmnonhXGSivcqzIvvL}1olf-If1CEz5 z&&g%U%K0^Qbn5}lLCW*0-5Je+RGyttVzt$40~b??<(tXyb@IueQC+}Mm9W?Wmw;`2 zSp@%#+B!dBC}UsYnPKe~G=fp62S1-%pCpdx)cKw16(_S$-Q?k(B>SUIYN&K#m56WR^|TiM70U3cA8<;U=}FXTQ5}@*G-d6Y00t5kRYT*RDi|+1#ZM z_enT@^zT7n(bLuJ zkFCS_0BGG2&D_Sr{@)g4kU+jyF)0cF?000~qIggt=w{nXa=1_tEOqB?&7f7A2s83a zi+pH`Icv$EI!K6%>0?SgM?j8c0$hiYBEMj}iCUhyk8=p@qQi#Fh3*AN?+2o+8#62S zQt3A@@=J!Yv9%VSUqiEK3%0yWl1$VK4p_g7_zYKuCiLPFjTM7l0=cJymRLUn z=1RPeT*Tz_#{+L?D$FWEzBah;?|GU74a+-?C_xDadw-|F(nm;-0t<&A9|}!&9*4x) z90vK>pAX*@yRyU&Qc?*)NE(B|OUq>wsp@&_;#@pzbk=jm8BfsjiJGIA11u1=u^ zQN>$u-Jkhe4DoS|neVlN8~-4QW+!D))4vaRYBVT`8juojgmDVeL{o!Q$;>TjAAyN! z*mC{nk7t~^3=?g*05RlK(&Lf2Vn)e)U#NuKiQRdeAGS=5sw)~FwwPs`Vgt+pT9>XI zRV0UX>6hlh4C|Nkn9FMl#yIhMr)xL8i&`oZBVCf`N)L}GeW{>lT72;51|^sNjIw4T z{RPilEFKzB*-j;nX`qmJwp9^?l$!h#$QPSsHY9G@BDTxW^b!g! zu9V|QBBi(Dk6nnN5u{I`JMj15L7r;2p=Xb4?j481m_>i`bf*3pc_SJTQT2r4t-6^` ziQ8;i+ar@q|JRQo(i6R7Lpqk50u~}WIV(@3%c{`c5%)3!vu(eA$h@slFO6LCcfOlh z*$lgs@!PY~Q%Nd)EmS;{jGRXv^`d4fow{v?VgzL$whO=0%GhIpmd`5BCJ=*m0<&^y zYoxi)DChgTi2s7n=xMC(5XFxq;)4f z^uNyjyZ%mFJ#lvLKMT%y@_4r`Byq;br~%pyjuzZ*nA&d~s}|&U)}3%KscArf5nn}v zm_Q`z9DoV2+SFxg`Z2}BC8U6_3jr^s&HuVy`GZN!XlTlf#k*SY7Tocl^uy0TuG(5dy}6@E@Wa7e}{u>yy?4~Rpnq$ymAG(9i~HabYg zIkhNtJS_}pYU#yK7W^Y~uqQZVqgR^w+l&}VJ1RVUe8I*YILpU#()0OXT<+*(cGq4?1qSkHh#=pGl}y3Y==sy4AjX)*rZ^ltf_ zqFs{c$V*C6a_zBT8<&)(iXXVWfLcoArl#k8pqug#fK&leTQA6Y>8Qxfq{t-zfiYTB zKw1h@$I(}n#>Srii_7E{X5vRmYN>b9oie8;YW>aGpiTWYrAv!QM@<$L5X^Z2ee=7U zrMyB5eoEXn;^At(bGCjBmfK_O-RIojlVG*p?d< zC?fUY0J}IvE^m<~v>+Yr7c*mBFA!02rsW$lE~;V|QG4OjJXY!;-kGn0;QqT$jq=(w2Jv#&?s>kF+@^L!VL#`ryH>-)pA8 z%sl2urnF6ZuL>(Q%ksINshX>&9C_Y89$5tc$@eB8>pNT9+39na7L)vG$APS>jZ2wTu(SN-O?CDGE4zNsLH+v>u14gTL~>@y(X1PVA}93 zz}z4}*M@|YpOO|3HXt_>6G#UXggDax$w(JkU{DvR@C=YM>e5U)&>S-CrkPDjPh6pw zJ3b&}PlN;}nCUKj*JohHj;b-+SN}SqcyTRXw`1gUO#CY8GBYOoh}! zshvxwl`l7Cd&if{YkkY|2c^sVykab;wKOJ->}rFTdfr!shc<*CU2Gl(_56He<&w$i zlf$|SBZ&KFEV9-FZz*;67=Q11h6|(D{GM=fA^*#xD(Vm|o_h!77*oVe5k`mn0zm)E zbm&T+nlRSCr*%|&K@&!2$DU;Uw>V&E`F8oOD4ri*buM}LGf%g?tPvi0p`m|OZt+Yv zBmdgsx|m1z@DZ)~MpZTp`-um+M?0PddVC_9*%;5p>_4jyaLJ#PxApz^_IL9cKNevo zEPQcqE#!qt3JxNb?h+1v9cOLvvyRFk%OP(!|OOHg<7}yLv**MYPQ|dCR zc`BVRav+TeAL>uG_rr$TOo!$#F_#?ipX(zQx(q@OcyakY4^Hr51Ba9q7{IecDc*;5es>MQ?}%#vXtVa63Dv0~nr zM)#O(PPL|=^7E~7t!a!Q(ExBOL1jf3+s&7k+C0e$0Sag=TG*&v`Har4j9^YVTD z{gl^(CI%{I-Ev;{{^sZ_c4u*4hBIFb{O0c{F>DK8y;-BqP3i{Q?+Zz*2>OXFN{>mIgC%a>jjl4XE$W$dd&aW*W{OEWYA^6xq7UK|fw!fByH zkun0j9z$WsjDWPH~wh60TWZT3XYC z5oY?OLnE5!r`w0NTitIye?3po)lSha^N|p&V6Kcs_M>kVdjX9fF19yqbYn)ciuKf z$DdeK*5b|tqDD86PnxosDpNbkT7*^3W<42Q~~Sqg3X5o0kcbeccH_vvb@kk;I1BD{cwP8Q^%54 zkeDY_E>I?_g2?C`)#BAvpX`3}mnMRD8*6tphd=49jCx8B#byP?*s_KOZCc@HnTrK; z=*+E6ULG%Ehz!Ty{1vnmI4Y-kmkiL}VxB=Vd)x6@|J<0FNe$jdPb;&|@1s1+VNqKJ zgWcGujlwsu>2A6y50~n0)AsQQ#N~~(!gHJEj`j#1mdB^l=8j!Ris~(BzXxhN`vqKl z&tZ})Kk$v@4A1fkmoFP+%ga@iiuqep|KV}I$k+;3N?~I7UFNNS-D{`RWb!)bNy+NasAifjCvZ`D$ zSus%e(}^C2U3p@8Dn%GxDy)O%Tmo&%>jacwTy&Z#C16Z_>N2SLxkQcivpUU%r=ARe zofH1U0|O3DO3g&;XrT-$(|~yccIE(a4r9a;v?0%omH+@@mq^Be=9GezFyP?cj6;I^ zWa&fY_QnVD3iqX;X51`ha@D?8^mBS*mw@1xQ~S{AJbp@kuI8T)C~VOyslA#b0spav z!u|32urCjc49~(IzBBP`lCS-S{0eY!SpRk$%q8kP5~9P9Ml*b*bCR?g49CIIyhUzT zo&hd1*>A#S zu5i@fb1+rdf?5mnpor^sULy7pxAKmfhPuloy_RBRKf*GEoNV$6JraFLyi2D!i{q8UO5P*evEy$+t`|)4!7DHo6^78{wnc?q{LVHwbmpW{q`6IpbNK?T@-capsgaQk-cmvQQ=~*~F8q*p% zSJqqg$q)_zFwx*CaVtEsslcC;KMxnvFq{Gje?g@}ev4N<&4kRvn{#8zw!vTAR{^Z1 z&Q?_@bik{0X@~iA{2o)<6&-j9FYc}RLB`&DJy-=KHGKkz|JEws+cWWxravInzFtSQ zaqXW>x+4#AwP?UH|8qCsy1bO9SQ^!+7{&mLCCGrsfWRCGP*|bFs+kYRG&3ZW0N!T> zq)rsqAC^Z9&kN0CCND7yfMIw%Wz`i~y-EPXY)_ZKCkNXH0+PbG_3b{?mfHoaHvu{D zpWxpC`&${)!G)zJW~Qj`*=>v3PQOt*ih#M3pGgHKylmmhLA(|`u8thJ%1W8ph;aF`k zuC&|KI-uX`Y(DD4cr3fdPrWTEPf@sm+&0spdxy`DaDSamrpNz+Ft0+hJ^!#2vX4Ib z^DoHe?e@Nu@In#eMnLEJP-Ns2mc77_g*VwEM){mKFW3u0E{5K0o<9j{olb0P5FYe$ zaka$epz0C+D=GK+>d8%ko2R8SCY3Z>h;spL%2TuC8OF8B)1eq3{-L|2@2oUdUvjUx z@0#KxYbg_AhLG;GTqC*9b}uPRS04=x#MBUy5bqz76u%^iW=Wz%g!x_{DY?@A0!%Aa@B!c(Esxk$F(cVfB=;fVDl4c+tq!S!vMG!2$}|{lfIbv-+i|i2ocxP z2*SKT&G^Ix19?u9`F5YUThnQJpp@U%6VC8}6H&Z{I%@57fCXWszxZ z2bb*UdKA{Crxy-!fdzaX^;LRfY2djecYOR5Z@sehbrD#2z%HffNXhIC01el;Q z&q;IQ;U85kSFVAWNL86uu92`Qa4nZ7o&u11nRB{I@$6vP+j%y#-M1n9_;gG$o*AxJ z8Y^9Pmv>pB(jTgB;QX{Qmor0TFMx$?WDS<61e?|ZdRI2&sU)Dg|t z@Rw5)N>jO7^k!nQq{dKwBSG;_kp_|$bd!WT@wFqxwZvhKCDINV>hru94u=07?wB@m z^N~t|JmspD#%6Dc20#NM1riHWM-E^H@*WFlbP1OI|MCzT9~f#Y$^8TgncI03mx9}$ zW~Z`FIW}9toypHNVZ}`>wFz&5_fL7BK?(r>-u_Je3F(n3Cs;gOZ~_W zR+O}quOIj7uClJ?da1GOZiw4aJCG;CG2PUJMWKF7@#7T8davp=ZK~inC2}fIa6)Qc zaE$%XGthg3beN&dZR=#@f;$X>-yk$tLKAa)SuB7deIltS;>8a&^3KGX&``S!y`hY9 z@o{YZRI<5KajTYl!NlAEy$)HxiOt8$gnAv=^pqBu6E{I-!$C{0UF^xD(MqlHP;a8x zrnpF6#Z*u<((;~EHizneu1@M`ais`sSfDKnH@7^KN&x;xP~R236406xgQS7A6Dy*x zB7kZgsA?G2v>Uc)+7ThE!{qE-;>?}_eVCyO;hE`XtCWhUkpDZRIBg1VL|AIxJthT} z0jJpVA(RA=Oi#{nGQTGPrdBh41T%`2#(WN1I$D%`^F*tEW3C&W^~|S&j-?7B-HfQW z{tUMeZLG%BNrUMOBB@^wfPv7Zd!IsfA#oC_vMLHNPA{FYJ$G^gc!%q4OEhz;bFy4; zVL5Owo>m5Yjwi%B@m1Pw()+sh@i7EJe}v^~ZiZRq{%)&HzrRJH5fsIHUp4aHzfi5 zmS2mTrLsbW9KI)DWyA1H!53*^#iSOgJ8r?=pjY;?ps~2+aAdh;`$4V5q!``RdN4pB zloSv%r#u{$c+*OiX~8KKmpq%QW%V*}^g=Q_GXJmQW?x)nL+s3|Da~BvdYffUQ#FfI z<9i7l4;21x#vHk3s?9lETw`Q3u6E!R#9MFz zD<}7VC&=_>8X7qjW52xn2Dq@lzV|nN*CpQw-Hbe>^y|0dk^cA zK|!D!X(AQmK9wASfmynEK*7rAYa()eIk1Z+FjJ_u<`C~C@dUNvT1RGO9F5?3r1~FO zgUq$p$viw#H=0r+K|9Nd{&R}_rQw4moxiv2E`ra#XXnLSOm5fOpf!Sroto5n+?wWl z%kK17*Q5?;cmsMql1(pJ40&{MJg!cZNKkw0Y5y*-{Bnhi02qj6SpCFee~xkQ1o35M z{ifu@bTG|-Li^F_8rj7{Y&R)#+kW9A`1glYuy!Y@u?nqeRMF^PV)0=ErjhRh=!tY? ztK4FT=8rS*w3_mc4wR0V26AA73>BFkNYe*Gl)Q_8D5+5HN}6xd_=8ml}F!J z)8^oeA7&A_R$5#<3a!Vsw(!!ggxRM|B2&Vb>mm1k2c~(ns=Yz+=1RNvPW_Lgqm3)jhKF1pD31` z@$)+p5H}fu@-Ash2Z;<>2qy}vHOfn_4@5Tr{y>e!ud+asseRhvsb6 z*P5b(>uyc(QRls|_L_S3oU-e&f2(4EC5EUL-}|ZHZ6#j`BAjj81U2q@^M=!4$lTdM(fQ;`w%m^W<1IXfoQT1T@H$1P+yr;!&+-%?rV1uu^63bkIL(VGz zX&Ou_C>+PvdV{27jeVCpy^R_B5s_t}6B1sK>ZVm#)l`IfWW$*ZQYPgAQ%IratJm6A=30nUkkI4NDaVtn(cTCMvh;o$vVDQxwu5tWv zNN37f={WakV17gLGmnsko&YA1=`g1KvJxj8cFw=4HQDKr=>dscJhY!uO0~Z2`nxmt z5~4$eDdJxc_1%^|xI%}&@@rczTL#WLM4u)bH~w`z&=#PhkEV!rF$1!qyeSdhs$faW zT$5npjEhortS{9CBJJaFVx_569D#;}u@g}#?CpyA66C{2Y;zz#Cc1_EHH@+^OzIg3 zB)S9y)?_`2X|P@cIH7j*ID{aDW>#x@5I~sa_Mlf|w74hqNj$YeMI8oEiTqVzk5HO= z>8Kg!92PT9L1xl_o^s`RgSl~*sjrOC?RE#=sVheFA{T#xSdJCt?ten2Gc>f`wgpqY z<9p8(qyjrTRwrlBtq+vHW~b+@U&EOJ5@b=ma(bA6OLQV$qh#Hh=x74rab9+T>WU5V zXpMf|;4A}@J&*>F_9YBo3C}zDQCv!lQKx2!FQE1Bx0!@H){*g%QFuAVNVGaVzV#B> z`I)N<8YUdQNd2DADhO;?lkylJq?E$CU$Onjb4bzxPBWR#DfOI0ip&~NTCpmb8i!S4 zQFE@cF_N>x0FZk3$LOIxwp}86g>Rl{U zd=`-||LKwCAI@HTCDcQmmbCI1%0@7AK#X7wRB+Gr`X=+9_h8#TB$i3HgOz8*YO{eI zAME8rDrr4W@z#dI1BG&w0cJSl=>}hum|N~>QU&0r^aEN<1@H49N9Ib^ilwmHnP!rL zL|^eX)QnU8H_c2PUqBrFP8}7wm2FrFLYB9|tK0xr_Mn3Ao@QuB4!bXQ?(Hg7wR_Wr z#5x~SYu9kmcaGOmlMnTTsGeVA_=VFi;&!zbc&SIsb|p%ENK2Y0 zH}`(T?BnQ~agnCGv&-E~xo^S~M=^|dBxxk$o&(_nRGsRD``SWh3RJh&pS}ZLBIg7k z5!s!Sqi5q1QG|d;9ZWC04H5%^K({G@%Z?@yM1Mkg4`jh*LhBYsEmEv>BvmW*Kl!r04qUrlp$P| z!STX`Nwix&qKWls6 z;=f5#{@w6T{|sGWG{{GHShsu0oDx|{^g-XIi@`SNpHM#g*>*o1@o$Qw70(wtDt4pO z-!|Nr&+4aFP5~@zviGMk4jY!yDT|v; zpLCge;^%LZ2(pa@u?Xoq^t}2Dn7B2P>Xx8aX4t?VEeS~?sGj9G;NQhI%Up5bccUL7 z@$c356C=Ct%vu~x{Hw0bt_S=ReS-fG<$dBjd)Rovdn`}IbZ)#R z-^4h-il%Sz&v;J!3(T+5Gda~q0GmlQ&|-`O77NuYOR8!i<-zOvRu9SC(Y7zYsD>$u#&X5oP;K z4vpmUTw_NO;yn5QDoNsKu22vcU4^#abgXb`WZH0JO1T%a5Zey?%?u#`-s5KZ-c6ES zRMKih5|+MlO4IDsMtr;PQB07yXZ)fMt2jEvPtynOct5YVSxFpzW{d;>rEuZj2mUiP ze2nR%Uy*zk-l+O__#X{(x1OP+;JJN=f74hM{C^2{;m0Cq0S6Fd!&X#M4E!8=`O!{Z zk6U-erwK+Cj(k_iZP z%rhUwjg>GdyjfLQs(+C{f&szx80Nlv07^AZV$Q&L+nqphKgIpfcMkC=X3pCe;B7;y z=o>H`>Cn``-5-zacQlf*mL(+qdSw+XE6qN}Vl4m8m~??KNeJ@czc>P9{{HiB)Xkpr z+EN5#5&A|ZHN>H64qe@=^$4k^-xHcGS!KQva_@d&Q6shrX;(W3iD^~u1OIGueV~l^ zX(r51_>Y1AyI0C*Y?zUdr6FxoPB|XqW#&M9u*Q79+rU|#fH7S{pa% zYX1xlF$6~leXi@NjyX4_a+R7*pGCZ88sq@SrnAb}93%hG*3<_&&T9j$YUx!Z_q)hG z6QTqd0NHg-pK`x{_9YWi^$YH5#DZ2-|1B$isJ^5FkTUdkgk7`W8Wt>YnO8e(ulEXK zGXNyY{&A39^)5NB6Rg)1q54{5edI~Xh&Vz;p69ZfM)j77p2@CZ6W7L2q1tX|U%`R4 zNyZcZ-)&Mou!4u!Iy#@{z=k$#(vGv@9M}HrpWz=dmVe6^iT}Va1OM?8{KJ@^@IU;$ zVfxc{;)*xfU*2#XhXi*Yimn*=cU(}F6H%^~kk;qP8J7966@Wg_`3&s4bM->plPMS$xFY_z*}4g7y9PD}fqNEfqbu9ZG!!Dam% zC_((kNKEQpE#lxy_||gYhj>zgzof}JS`9ffLjFEMHajSRvJFs6g_X?p_93<%4Fls; zC(LYg;uBY+Qm_RM6@YE^d75r58r6;t3**J9b$a2(n~b%ysxx(7b!QtXdkq(7kZt%8 zVgV`dZH&Ycla$!h0(eF-Nyh6p1|bQN5b`FURLQ#km;oR@`XC6UYL>G8A0?4E^^o>t zJAGA1tJb6fV@x+G=NrLgD4)s-?MOm&<|Z&1uA-2`=VW#nh9_P zzVCXc#cbM>gd4QP>!Eq2%PeM&@}sT#j#FDuY711(KMKKQa%hA!$ZGxZ!{46RaeR@9 zfFMroMnvp|g?tMe@>KsOw)K{5V0-sLG@KsrwlB2TK^l6X$srZDW;*Pl{Z*^<#U$XG z3IP$VzuuUvG=j~*NL@2Gk~)inedy8fKkdrIxBQ|+hAAdtSg~$>-tey)9LrUeRq!uG z9;)^29t}IS_qF%(F?Bn8Jm5dM!e_yj8}Z*rtoVo1gUWZUAOIJLAM(TdCwBZ_rbjeo z4;8SRkhX599J1rQ>botgboVyxLnC*vneX#*J+N1w{H$c7b5<5(9@v`WX8?i7+2jGF z1da}4rBaRwVrf?!`L;sA$>fn%ad{HN6RHwz+r08;-J{O2)Y}+UZWwn0!<3 z#gL86;goeQV=+n?0Bo?e#U?FK6hCY|9XrtaS>&{VokS8xVOSPT3x% z5We^{SyofWfU&KM!oPa~GODVgLp2DuBo%RTD#h{7zc$&RTXa&Nt66jz7K6{=A6j`_ zJE?WowW`ApiCH$6{+~WBAu@%Pl|X9K5c-!!z2p=p;4q&eP>DVW;>bE4pw4 z_OK~@%wA+vfcS1)Ht@f-E%+}qG5%oVt8oYfX}Gg;sAX0b!H)%#se?hv(Us!Y+r?1COKr4)t0y46GYYl48yvyqOr||>44sYGHnrWC;w>i z)AgwlmmA0cVB9ti;}l3{t#UVA_EsH53{nfMyT35=kn7xy$wxc32t|@HU`@6j7W5@sCwHCiR01Ng$@a#h5g=;qaUkb ztz@ZqWwM4KGwGb|dLJsLW>_;^WHk(QOhBXZ&qk}#!*d@-l`*RSKHr>w-ReB~+Y*9x zNjoso23`QiIk+$;3BTzXdowbZJ&7y-%*SbPt^78w^~cuBFHv%Z^;IY<`&8oa0(t`w zhL95As~9zsxY8&1=ui|J$xSyz1(RBi0$DFuO%KU%c55aE>@;~u47ny(t&&$Pc{P^u zn8dbKTQD5rpV4bs3GzmsDts!g({2&ndrk(+)23F#M_N3Eh02OzVvy&7oV>05k7R;n z52@fDzEY=-#34n)j(_`r|6w=!!4AMN(Zw(-#bv5irPz!y<(7uA*k>AG@mcjFu&tZU z*{$^?vT(S3@Dcyf+i9}2eyk_D_xr;CT19={BFuzmnYD{TyFf7%h1b_wU&x;k0%p*+#(pUdb0SHT=8TUZ~lI6)~+(88f^( z{;hPw4NSve9se`ox^I_ViGQzxqm7_WBs}78osVp*YD-+zA|RtiZb-2zo(_vY#@I{>ETtq&V2gpmg-+8v3#$W#N!SPi2u z{I>M#Rp+*1#sMW`#S$w9in!8_YrkmKfaf)`;>blR>{rf_=^H7T_%=UDGBZ1H2BGBZ zStX%uN1H~`>i=QwcSTvA-AS`5yPZ>pKfQEjYLOF*a10*isv%R`s_ka=7CpiBA4Fdh zavE$;y^+1zXeWOh8-#ijqK^NN=_xCM?I9Sx{fjBHRSUhM;rbPGcl{Z zhX1rH2$pJ-dj1S(5VK>Ni!oTo1@jnt8@siUh(5rBI z$uu+0)6Y?DncyEI&a^G@&j}{UF}Gk{m<0!rOQA~sa@7zmL!8dGJmzK77((d4 z%muvBuRaUW7!!fj4tcucWllnD6_W&=MSMF57#Dc^K9_8~4rwc05EvRD?bs8EioI(0 z+Ckl=+HAU^*-8lwhzTlFs>S%Y$L|2JQk6;Nh2Ibdnya+|=!&-8CD!YF9&Xl1RC?b$ zrNq+Cn*^Hx=q~q>97dltl-59vT@S}+{6E%{`CN-1@A@S1JYc?b zHck`%D%B0T)kWYG&OeRDuq4i{$fG_VR4x4L)=1BG{Cg(RpW#0}vf*FEK=UlD?s~k# zweC&wi4i&3Pcfw&(-L_61plKg&%o2WjuAg*l4MVt5ON!F{S*ANGyOsE4|!eipWk1* zl?)dFz${`x;(UFWJ1{3Wfw$|}$qDV{lvv#)0-)Yffn>5>o*iKK`aH*3qx(=R!-nv3 z>5PN7^jP*B!LR$;>IekXFa-kS?H8a05j8-d{b*#>D}x7A!!ADXZZmaShptz0c>nUd zv(9;cQ-WEx(@PHPI+YCjyG@%FhcB$D)!Hy5kuhMl6D}=HSnK!266rr|8cHQu4vt^An zY0|^?1sqHA!vBSnt5TFXD={>Nj*AEo>1ULUfTzd^4oI@`7BiUy{ehSi>{#}wAfk1K ze0m`SqatQshf-#9sgZWyn!GUD3(>EL$(bFifkn*bXL}hd0_And3sL_nTUSHwbA-{_ zr$0@|V}i1(R%F99EG$9+IybU3Yt_*BVUUtl6-U`pE=Lk!spmW&f3%%E>?J7plLUby zQYJU!3LE_HyKK`QX|L)qE4J6(Bl$>=&9^L<`2Ch{>LaRb#u{z3BDP{ZjLYEkIF&QW zWy1!4A2#(lXTALV%8u&WVZy62yZ4!2d>!A3(IrV{d`341^l$hA zlg^}0xjx`O8;Q!Tp%{g}ZAJq4-||QQyiBX|K_~o!EYYunMU5~n-c6cqD##$rJBP=t zZB^OzU}Ba@)XUPfYO7l)jk942#?lz85<*E|$1;k)2pEg1*= z%T{)B&MX^>3pb%S$(7z?i*XrjkiJl^zzO_kAMh_>Mf?*jH%Hi5O4+ewBzOvW?Q!1l zuX=JsQ`s!Uj%^wjcH_Sc+X7+XKaFuUa3Mvtm|Mec%{Ck|G{uS}sCfIVWCz1Y;0mbb z1xd(=L_--@4s#*rlG{gQiG!;$w{{T&$wtdB1jB4+RyJryK~yVyQr%v*?aMlCfS*-^ z*ZBif$E1R+- z*=mYMYab0ULU90}hhj;);Gfxd;9vco0;n;xSH?E9sk9Q*x)5Ay$u@g#;c(P_-Q_1FXq$thjOhNA!V zqSixPG#xwP(-`O$$z><1KC~6`h><)bS%84HwxR>cd=e2P^})eC80H+m1_I?XaiqvP z*8;CqKt_+Q2)T7;BM8hK{`poFoT|ejO9BE(NDZqDxCI;|(^Te}z^bD5Gn%Gc0@R)m z>Y!zH>wP08k=#vf6cQhG(&ZP8B#;ZW0l?me=+SLpLk>H1`2NRh3`@^OlSKQ6N4ga~L8j*z*KJbq?bkW0#lQa(4bXYGQV)#=l z?vOS3DpF2W=oYYew?JFL^_r~GXlwYX&KEL z@c#-1RQ;$7nB2S>1|aNVYDrd?{yH6Z7!L4duQ$XlNUlIfQ z(CLn=_@>!F$QJf4LWww%P!AbvsKzf6l=asc?AjKpW!)c4&_ZJ3_jRfQ@Zby26&VoL z`^d32(Q~#!oRnNu&}mmL*DP>?qdd+CZrI)9Gtb+7e?IOVZM;|tx!9C#&jh6S7xFve z-#;bv$myOCC<^{T$ip(di3qNkX+F^c8J`9Jc6jJmtn!;a-ipIb{vu4oz1ysXI{rV{ zv2#~%Q#gz5tFGj@=MSbtRk;}hS(qRhT>!;s%MN4bZjitT9DVlL@0j@WE zuCyl*$#t4+eCG-q7RIp-D}g-dG_U#lFs|Tf#G*2IO~H_93DDG)W>Jgu7SWdb>?ta4 zEgcP6D+`2}Pd<3Rz~vwQwnI7rRYlmd8h&h*{%psF9;QKhw&_MmUh2*2Ya5=A(@0Dh zrJ)K3b`-1-OwET)Z`Nua@>*n&f=rSMso;Z!bH#ssmRL>sFm=L&nf=>tv{;p#vEV84 zbOF7$tCo|XK_qS(^HE7#yR?6Re^rR~8u*Waf0HMZN@p|4HXpd)f1Y#LFw0n@2|cd& z(YP?`2QoYGKM~NluHqCiH}L`D_d`;nLOLS;C-@)wzjN*!_Uq*J21DBnPGWQwKspUk zBu3RE0T!m!N(D+eRAuY^AmFy(1F&&eg?s_i<*!*)vEGMfIH%z)s^MzGS@q26gExqM zIwcD96U;Ist+q0F(qFu=mxU|c6S%>IidmcP$)%69o6aBV-!80iS!xWhXQ$nF`|_~L zS|M_apO;MBPx3s-l;OnqV4Vz42pNE^mMx_{#TH38OcVavCrO%#+-xfZCT2FWfzZ8i z_7R5;(G)O5xibnwbqtaxs=f@JSf9jZ%uhjIR=2ZQv%>7ezy58SPW+5E75{GD=4o8d zGuy~iv6u10c(n7V1aaiWcjHO_5~JNs^NZpQ0m z?ZSR0Z^i%n_<_`fX?;s5*)d5@>=P{##ev9Ji34W5=w}?VzW3pUtVd07^q`Y~YoFyP zIleh9isblv%>Yp;qI)|53wZggB{DDBi^L1l zAb^TxPvXb`^MU`iWtc}Vax4aX=LlZ$pRtB15+%KEtcr0Ec6(OR#6RK*m@3(i{yi0K z%3G)Eo;I60gUz&!Jel~HHs&=q>k(f^nsV*HzYYAGKFl>&joG@Z_iA8|aZ^BuB<>PS zCF2vQ+eMnFbC;4<3Bo%=x+~9VaCluDYBn@jyZ5+yW5tf(S^?f_1_H86|A_D0LL2jz2 zY^>6J%ou3!*0E}nhQmf=h0dwV4449JY#;;SHTg|OI;av^@vmUh)fK3sMz;pivXSK8 zb7V}g&RjE{B5nt8K4SNL#SEEv_G# zLa`B@CCPY7<6#ph`?=b#b&NIqTjT7Gf5%}~IID)Et;Dkf{uPs_go*?@@n5OnGyYXB zcez6~<8xd0laSJCwf&4>x7l$ShNNm@FjVqZ3-6C4Kr1B}DpZ=B^D4G#T%;9sAyv;4 z(rZJ+DT^^)#;Ou=hy()z(1%`<`b~tUyhBDNBn^sFB1&P3w5)GQNKGXdAEu!jSTi6I z^!VK?=C&nWeI!VuJNjeO`VB3tQ+>wSv|S7SD8s1znjSt5ZrQ5$%HN>O<|o%RC|EH!T>pB_sq!k@6f8%G|2@C6fZ(TjRNq zru)S-5JH0Z{XMMBz3a3}GFuB`FC5M>UMDxV-B+7I&Lahl1@tRj7m!~6#NO5ivfV4L z*a_Nu8=DR1zNxd9%xI^{zAG%xUQyDEc5P-I>1|3S`P6)B%3{IBZ!QTV%rt$^2YEmx#srnS_G*nF%{u<0-(0DQgNbwq1erGy?n=mtBIs!h;Hrc8lW%=^Pe8;! z8gK|4ECTFg!aX8sgVp}Pza-16a9QI?EH~T1=%1B|c1RJZ5>bpN$(@F*Wm7K&tb~h-3f?A z@RICKgu2QP2iUjG_1OB1YT*?PX)F`WdZe<6-P}(JTm)&hE#NjW3W#lV9tD^NHoZn; ztvYun;A7BN2a!q%)*!Ka-u_<(;ce-Q7A{}BAM&FXjY`ZxHupWq*@=46YBC=LJKlTOp6 z7rz>yc1+q*IHKPp{;L@usm#|QqipQ{Tb&WK#oJ&9xrqC=FH`*MivbDz<;&xI0_ zryVksRwSD7m9;@ELIMYMG|z^IhD~hx=;u1Bf^IqW;tGXb-d$%7J!Rkej=U{+32Q+Q zK(sr}n~b?4BK=GNO<5!XSJLbWhk(ljFwZR@jPv|l#p2}p+5y@U;cRD&PPk6l7U8OI zTsl#I!xjruhI=nsMIVzynoAp*B|(~bVw{$tF2f4jP}uf-zFSs)4@2f7^b7|F^BnUB**eE3PALw8^8biiZ#Q2QA&P$=jxx zn%xWNEP%8v;QzY%&2O&q?K->|9T(lX^!$W>Z2~@@`5rO?|Bxb&zciJjDv<)9XShDf zUfcH6MzaZ60wMJf9%TYCwmJntOsBf& zJAqi!uWTzMaUa>V>$w$8JCf6M2RG*}gyX<@J=sYIfUuK6h?VDEFo?rk_r{HtAj zziDXN57Q5@cSpT(B$W3z^|;8u>$YX%oRZ<_Tk+qBw`{t4A4I&xmHiz5r}JA;@d5uK z_}Bb}DrLxB`VHBvup2_`5cz6ki4)_q&W&&dL~d5g#-z-J5*1WR$VCQkk`P05ka?SX zm{p!ubaV*EtwVVlI7AgiDj`(=FPZjP^)i)GfH^py8j%Z|ykw9d=mnd$4hC+O^`M z%%t`)84cw5yaosVlv%vT%9P~;{^2H9dsyLLJs>yGwQHY>+pxmFAMl^W&egISlu}^Z zZqVp?*J|itE%>&!O)?ZT*O7xr2%uBgIVU06wBlv|o$}0KkH|fTLE1>QLD5{lBTIou z=zIY~wvjFM7_ABz!nrs;?2}~vf#}dCa~nvcofsVqvaY=fA8SNatiKE7P-6uB9BO=$ zmx2fZEpSNRqoSMVZvQfAuz2x9|Jg2LtVWI%!V&5Rp z&6ZxjxBV&U5WgNEHq4@x#VAmy_g<_eUA{?$*7YWqK?8&Sz{%s&T0M)I6UkuPlSU{u!*ZYXrr~1XF z74r^frAkdkxQQAZE|S=Xtx`LJQzsieR}Ao#Uhjb`__`y@H(fB5yNE4+W8(2nbD;sc zq{~Xq~h&S8U|C_a_uPtKp@#GqFP=geIbNBN${pTSIu9LlW@;rd=T%2BEt8G~&3VSv38k>_Bd-RX*Rn?W#U8dRIFDswx(JA zaLy}l`Yen-ey>H2BgZIL8sHyCe?{^|26mngU~F9(TdiLKQJuag5>~(N&f+cch$X%v zZYR)4=(0-6gqeP6BN!yi!g8oOov@14D+0W5f5J&4+D^Ky-9bF>A70}!t3=3#Wm@Hd z$#o=G*emQ)QnO&OI`JPvPM3cwXEb<-+8O^eQZEGRg#0Z8|1S8KR|jemIpQC(i=4#& z8kyHlDQ+4T5->(J5BQfhs*@pynG`hHmI?lSwqbosr>|)l7jlbFOPe|mzZ3TB=>={x zyNG2v`O5d_&*eUeY$`G5(p=imsOSL_(MQ7n2~}^ z@d5u_-npPeF>{UkC_>~UE=%U- zh)?)8aNgR7j86<2f#Q>Awj!JYHFRmn5z7T^5pwY4GIL7e+TQ*Ybv#paozfY)6PwWw)}@=(=C0>COqrL(nG~ zW9kFTFrz}nTfA9*I}D>at?4Hs+bg^!kN1{C+cV$K7|Fn3GjB21FWT*Pw)h7BQK+BO zR8uBD_^$>)HWJ;Q^cdkACm=pHS&v}X>kRxm@vp&xDVY3%PWd-jvGJabgmK8>JO0hA zSITUc0VUVJx*fdVi5{BxEvIFkT{ka!Peq7R0i-BpR;EvS$Y0uZnv!c*tdr6kgsg^` z^%GQ8C9vP8SS;3jt@ zZv?y!@kaWw%SN!z2(nFA5;@v8>r-@03=!pPAq4Bw8;p~lT#GQQ=EiZ!1y@M%-AQc2B zhYCP$IaMzLP9qW; zF73hwtpae8mKe4!iezJ+5gLQJCcqnLnkhm21%PesFMdl!2{`nne-#Q|C9BHZY|fxY z0W%1^gf=fUN}yMtTVe6l)pc56FM36D?F6J3T?wfZ{A1K|tm>k4*0^q4qrZxs)Az#5 z=k1+F5t=Qcg03Ssh#q4W#1E}IT_DK^y7K*=F)$k+@GqKgSTW%7fd9RQDXxFB&L|Y} zpm&74>WIR>3;td3FS3`7Sga+3ifG@g_Gu$YvfbEia2b;>Dxub{+I7f^ zdl)ihtV>F22efO7fodP1pf7T#>d%05AsEPoLwsHrP>_acTw&zVMl}L8f`Cd4Q)rdB z&d4ry(%*usqzbdoRaL{sk$BO{{mvJ+M94&AcE+wIT8g_}C*k2*6$|pf+N0Vrn-!3m zP5gEJQUq;F3xw#I@`!&OIc9;9%eXQ&j;`28zhNU$qLLQ;s{{w%H2hab9Sd6A%4ndA z(Ho7;Mz-TWrYyjg*h{wdE;PN^^{FZ_sSHU@C2=(JHjoB$1^0+pB z-$6eE8Dt(((r>EGbFuplNd$K^pt;G-ETYb#@qGv$vNThwfBoBzRv^%Ta>LH*uw;+m z?aW%8lB_Ivcj`3~Apj(M+h=My0U#Bj*{*-_W8M66N@z&x*e)gJUKvprX#*9L3=i5W zph+gjcnKN7f=o5$H}Hi_O?kiG$ed+ot;*!z ztQt$#)^P=T4_U|6n>Io;8q<3Oc(q^7Cvldw_Y1oHOU3)BsQdAKgtBcB+oPB{NpDVd${cL-jK?wQ&HH{@SlInD49&OkQip& z3KO>dey7clKj+Pe?-Jq|__vNR>JMTbmTGc~xa&MQ_zsD7!88jq_g*wvUxBv{k81%V zDloU9j0Bn2nZ5F0*hM3!?3rTD-~z(6a!sJME6CZ!!u*%!_k7Mo7kK^T2RYsb5DV+i zGE@Z(4(}zx$|wi2nNE%&)efjAYiWiLX<*M)vkC2C;rruIdHud@hX6C9-cMVo+C`_) zP+P(nN6Ry1Qm!h#rJ@Rwo|8ma=?QRU=)T)<#3OaY1H`%w8W!TiMK;8T;jfTk%q5(5 zU=P)wL(jp^`Zww#dq1S?yj6N4a}tP>=bE9I5Hml0X3`RaHT;8|BEmnq+tk9=lJvxX zn9qU(|Lut|r$@fSzr5^yi&<2|?zSh_RoT2vd(i;#Pn%eq@_G-tu09s%=Y#6W^fS9Xo)tOA4wE16~HfW~Zk`mM)%Bj$vgoUn0BQ^wIQ z=&q4kq~ZJOES&G&wf~!hbu@Nst`e(JK9p zQj%sUZU+7{Ic`46(I-~VNz&f&Z*l?K77iQ|Hnq!^va2m}(8I53BsG+hCjnAY%~c;Y ze>_7B(<+8})}Hoi4o>>y&)!4U_e$q&ehjNCIK-L=+|=p4lTF)8P_Gwp1izaOX}vnu zK6JSzf)%=4hgPdF^(~uLhwpwdxEeG*w_TCpMy!~6ue=W z)!EP0>ZA6Tk>Z%t@D4%&LhJ;zoG99S2u{dohn;LUgRLc@c5K8>#9behl=V-}ZGC=E z0BMJfR7^)Mret8lU-^vyRJ)W8Oah+mc!BU}FIz!RA_!wlRr~9&0#UkWvcd1T(pL$f z{;e>+gYucx9iXjYO6MR(05d^y@M)?(FHOt@ju>&VX~v0;0PLS`ai|2X9yfrjQ5TL6 zq=9x^@NX;rXdfhU?+Nq8>S2y22SWZ?53p^AMG_NjMngUTC`yZZF!beAf~!tNuJ$iGEhX?ztyg_0(h5$DDV>mJH1XCM^#2 z4FCw4 zBp?^sXnqbW!yl}pS$;`kyh{@EUCr%>DielwtQgU%o53R@N!7!t8;mYy!%8%=MLsT( zfNDdp-p>p!w*3z_v<=;Fj2yQlvUD$^&nN@B^b`qOmIDmdDROwT`YNUGWG86z=g95%2XNQuWw+}zJA?_j$OTJ^yeHm9=DHDN3# z5~LxZtpc1;pP=)ubZ6tw=H8r zo{#viX10X%l4`u?)s*YN$PxeYxp7+zMLyv_02NDiHE*PA1OE*}|Bv{$1O8F4c)#}} zL=ot4p`lqFxBrfzWxJBh3g>w+k&6V=LbdyOnq>Q-9VZ#-Xy^>oTLVaMUP5 z!CeS5m#1b>AAbH%C}nnRZ~ zt>VgqPe#~==(4X>Dq$6PqkvSN%eyoI_KlFO5oiyZ=z4J5*D*&(1?S!~xkEmN zjYB6M=WJzwBDnsu$V>ujg2b&V=&1A82_^HoJ|>k>9=zFx+8OOS$q2gB=7z-PT*Iq< z!5&I@UR>RPKI87$bajGAAjfId=xf@W9cd1g;UNl3=&w$O}D|tw@nuKKH0|d^8L!qSG5i`ho`Qf$i#xx+*Y5?-fx$ z7csqjDQ%0Mh{bKr-OSpwl{4nWgn7(q#L0f->5FdBNVv?qCyCe-Z{fgqq`G@EAMnq% z@}DcdQW+QggPdE}GfB`U#scXR{;7N=V&b!@`2qhH_UXDCV>AxM1Nx#Z4n_O6taI139zlnSWdepjQLHMc83Iy9q{=h0ZqvZSkVIHdP?E?Y=e)E4>J< z?TfbT7P4oaw?+zW6M}5jPgDhM)_`M;f_mH(F~&BBUa{D1z``Tt)aZHJyIU2DpNu}2 zejtZtXBE8(;G<1B_*K2l-~R;vO(u=is1dFdNE9k+BokfGGyXwT=ok1`EPGA8x1^~D znAkZKXZ5w=|AoKcUwjI?n25!A1`Sb8!Tq(_g;S+{=*ueq0965f%T$2 zQ+=&6rx+njhtnX?S!IgF4*|;HuF8!;&I?#w)>cU=X@DHKCfuzOhM7>~)dE+YUHV1? zZ1rnQAh62{f;8f3c5&Mi2jYl+F)u8>TQcPtE9H_6r}RgZHU&I_JBd$08X}8UEncwz zBxuweB%$#m|M~6E&fQFCivIVG7|qsyNTfKanNa~8de2Nx8dJ9ov}HIb=nsH zKKW%9y4&{;_|G;y`emO(o_6W%{ohqVWrFz(;Op{Ev>`Z`UbYI|8mQjG!rHQ)s6s$+ zH7fHl%u+yQ5?FsRl>)HB$gK3ES03(-*t^i+;3AH?StM$8iB-V676oR9IFp+kY?RF~ zLaUgyq7%sm(HRn$svA@G4-%Uu z59m|LUE0)REN_s@WXu+$C$dTomNDXO6w{XiYC~!p83`S?VRy`{2I?9U6*0y%q=EU{^_oD&!IWvoa4E379om)4>Id z6M)-Shx`%6BLGjqbh1!UR0~xB0jWAaBd{AkR*=2Q$8=h7{OLL z)Q{S~ZJQ$1>q&%8`hNedJND%CkI7bAjnb*bk|!xW)2R2|lS->}y`3}rZs$q65S~?~ z+0G$moh2B%#8KT};k|nuy7zW#HAhPpUf5}Pv2K@^=zQGWJNwi28J`xY8+N}8dm^Ec z$h(23Z2cIK-_1YygTyXHW#|ZjN>_43QqBK3{Lt{Pr0NI!TV14XBR|uMvp?&q;eTce zqF?Bkp9fhtEYDJXy*5$p*W|MGR7hUso*9WgH#LBXtC2CwIIr#QJC06@1At@xjb;dB zO~|%i(7{QSU;sZrz`s7tub-T^j)`11zkYrHD^*04{p-e)LvGU`AdwQylC)l~ifqS9 z_OxG`!?$v`OU?I%*05D|OpD$kBr2hp#OiX4?Ol%QiwR)JB;}VgQ0vDPkN~OsVTINb zPWvIzSjA9AX+>fBKykI2HEz246GcmY%O0Og+W?+5&Eqbhv)fPbJ( zoVt#Q@GU_M{9DGCWBZbB=N~8(IDOkhctFPgX}I8#dY~ ze=S{t=eAW!Bj78@(^M^BS9$C4R^`!136@>SqX_;K3+|(+=x>3CPrMj@fQClt@8+am z(w`jF`I&7J1sO~Ix2R=oiHjz{drImU#S_Oi_%dg$_8iOeP^=n9QlU9C&ER5(X%Dow z6;b17Gx589gMTX^_e2Xo4*X}Eh^uY=UlYVkI4?XG^A(XsdzhOh0pm}C{{TrotzHp7 zo|S$Vi1SGl3;)-THOyRMz9una8bltp4OloQB97H* z63cV9pz=#d15`%Z36ZM-!Q_guY)Zx}Ix*)s1JEllr_3TYkEMYDQsN+@#cBm={RY-Z zvh>RiNt@@Az@qx}iWl_*+XdE(C}2+Oe<7u*-Vu}SoH?|}j)`MSq)}{=JIkAsXtl45 zb7gLIfRGXzn^t42NCnsC*_|@?O_S5HZ4*3{-`gsNNornqhDTLw%ox(OavOH}AmI_0 z!$%l-#oXY<{2wSqWek<8R8##DjM6ofO^|&qY@`H-hOg#w*Oi;el!-Z z;d>+82C0o?xHm3jZ|7PjNx4){00e^|4pXE^*KXl3MtxDAfKl4J-@?N1ygJiD3> z8-dLP@78TClBbX}K2Mn+2?olURG=bI3yLQ5)`^iIEjk+y`KIoMN()L$r9WA9ZVF=d zV>59GF(p8SL8X!}+qZ|KfaLUZNTz{o4gZ^sx(zu>)?#g_pmCt&)9^1b8lL!npR4}k zCGhv}k6+SMUQQ327iD2L;VmsVbK`p=9!|Yln9-mhc=)zYK`$|(Df(QeC#+uVeB8(e%U(NJ-VG@khy>!fh1dS_eF3w0G-eVdPRaicHb%G69m4hb zylB$!`PYmgH_W|DyViW2Hx1dD)CX93z9y)&H$rJ7-AR6-IXV*#s@}TD%R|24bbI3r zEezf?sMi8|yeZl%QW8Awdl4g}7H^qN5)pq?wCuVbepNH9R;0oe{j5MvWjp?%T26Dk zcFWOD%|(ax>ezZGKJX8jBMtvlv)AumMftBQP_GQmDwH?^bJpY;(~N~4qa4+xAd)ZL zyX_abJ})J|uEJ{`pK&7iw@?}ju+4iCK)KG1Rt!i!GrD(`Ry86kt6>QG<4JJ8E*t;) z9688XQofy!u?3dU$Zl2bINAmUDhqC*H&QOXz+RP#Jtaf7Hr zJ1Yx!lEYAtnSTxmr;H4=6Byh(L1$80wS1j#WfwpLnSBlcvjji@c*TUZ^}8IQv_jAd zFfxtMKPRbv#vM;pu{$HkrS~234r2{S1kG}2FEu;(> zq&cK>=?-dV%-uPc$^oL?1ZDId9mv|+(v zaAhar-^ZvHdOtdnu%qK&eev{gxtnI_J97yPGYtX z;r6#dtux-KiwqtE|GP|kkuafujs$hSaaP7Y2saWFO0uRyV@>SQrEdgk3vVqF?chgu zmIT9oAr+7QMlue_CT$ZK*|yl#{7iJL9HXDZB1G)!Ir|XOpCl$Ln>9O>t!=MZ3kN)A zD{`VL)QYD-YcXX>`Ss#^#h|ph5~INbOK|0y>6ej%EXwO$wmL}dzwn=hnlJGAQ++@GSygk4K0bLuFusOAlhAXcFQmQ%7%r@vg|l^9(9 zBf5Jw^j?sic0!Rp@t@KDTJ6d{A_t$(h2wXXPI8Ty;350>TEUOs+xcTI zU=@Aiqtw+ul3}>a=Nmik6Fj4b|``=Lf)0y$eABVrcw339BH*HATw;+ zZvnMl2wWA*u#MV53A5z%Mp%{PXHv&Mngb=8Qywi;yz8;1F-HboLJYk#9$XF)eO06l z|MWtOy6U$EZDNnF82jZni$DJD_UC_@{r2bAoWbw5R+wlYr-(_5Yzu>{tmL~J75@>| zR7xG41Zl)S&KW}}Azf>EG8DHFo&V&x6dfjb-&*cE8qRwss@uY7FnC^@DQ_?QFEq4H z8*Rwt$S$l&=v_XV2L_4k|%Y*3d$B zy`f#tUBrd<<6SY+8uzeQxy?(L^;DCd84DIquhG>^Gb3c-^QWC4uTVz40j!w zFk&I|C!0knQu0I3=nu_GzWBHa{$LxPi@z!l&E1Ow9D@YF&$`dMf6yQ8B?`Ysxh97a z@Tz5cvWl=ZGa40J%K9KOG!(eo}hvu!HIffW#V23z_a|B*g7wHuM!=(s#h+f{%ds$wLL z=z#=s*1iPZrj;yrTVizP=1A&EnS3{UpC41`2 zNWP6QMWs^(+c$~3B9UOi@Jxu}yngY`&Iv>SgB(1OBOC zndg-v6OZEG2mWK=-`>-l*HR?N77yV!Y0u!JsAZ51|7hac@xM}oa7GLqWf?3mTmgKG zNnK5x2c;Zq6jpf1i;e3zd1_4Xw`e2JheiiBjl+66001z?iJA3G4#D*8NY%T%cmv{? zW<{$-!Nq^thgnf&>(4240Ztnb8Me>SiMKZIzz#D`CFoqXnNCf$V5dWJ%0p$=ON}iX z%il%lH4@ULg>6bIj}Ii=babs;=#NgQ^IAzctdL|PJAooZAqgh8dhtb|c#0he-V+GH zt8G<)DcZq+PK5J-=vL=cO_v=+Yw!W?9JQ*hqkikw=xj*er2X1-Tb%5;evo!-Zpn_- zzn4a6S6B03x`|=k748L|xs<2rbBFC>yIvMC@NX5zh24Sw>&I7R{)gEg|M~j+uT`N- zgIZnIo000`CR~}et!P4WOrv!CPdi5EA)wI966?1cSBR_7H|wO_UCtcYuVtBWMa^@_ z9nwI?%5@d5DgK>tl>J4WhQx*GQqHOe^Qh4%Z$nZ*uW2SEl)Tg{^PeG3RX|$s#$bzD zt_fmcywjn^$csUKjg&Qc*{E*BagmNn)5u!-wVVA%99P9qCMDCB1e}g=$s}lk1hhWZ z$id1e01Qa5!nQ!zs^2&ueI^~AUpldBQ60Eq*tuQ`@}zqtstD(vEdKKCxIa6z`=_DD{W;IL+l=v zv|hPlRGIZMg$R8j-wJf^@beT5wt`*aV=PLL3$ap7AriA%#IHkD1<9pJW)QulvCtNl z8--buUyR#8n;u8tZ8Co%bwOvjeC!J>qlB(VsA{9(mv;oJzsoj>%?k*6F-)D(^=zl- z^v_tj%*-EQ-zAS?&FbH2i`WR3L~6$VGKW?wH7sR|mMlcirb}4GiW07f{lxb28$9Hl z)L~0FM)mT-QF~#-&ddb9e0276nA)(Du-YKW>-0TkOcTxNSF?eCOZ-1o`EUPvr(Le! z{)~4S<01ehyBta00tpwjDp+c*x`YamHE`0ZY{h?0xmaa@yz!^>eQXbX!-DI+-|si$ z_r*VMjOrPL&Ev*2mi@^)`N*Rc!F`>)BbO|LRGDARN8x|PBoc4rTslqAo^5@n9u<6s z@xoO>o7riE39I*@CCmA95?Zz@CS^y=bF2+Fd%xC(((Sj9p?8KKWoSclscymqI@dm$ zfSyWt2f3EsTKSsI3dc;6SlSLt+q@+eISXMk_nKZHMRaAG&)0{@+WUs9^6xfWiMHm% zWrK-wdW^egf;8{GlZ2=OkOXm#Cfv2F>W|?4+B%;gL zNEtF6{PO;E^*4ht!Gf>*-Z-?=vN1cy-bLs z`e+1x(4V^=694_LuYdnu^Xja$v$HYB*DtUnTZIBQP1nHVR3YolpW~mxo8Z6hOL8QN zFqX9M+leT9@}5zT3@Y34pEMEj;0)}R1hx8zDj1iZOA;s4g>QlrcX8ky=L(tT>kOrQ z*cty}$)(H8Jm>uw?1?GUfD@-}z_0Vv8cm@k6V&|>wc|*TO6Jeh)bWdIv3xlo0?D{G>Xy>YM(Xk2bVj;wuu(; z%dcM-NdH>I{;W-32ivN4L1582G6lBv9PKC%Rv0CIT4xnlGNgg~TwKWuSi6 z@m~lH!SqTT72_Irs~yO#PjY=b&4be)Y+cR=FRfm0<~*9l`(3f?!DntFOHEsSeY~zK zZJ+vNg2pt}MRM~I7*S;N#xaJ>=i;WFci1%?gyGX5j5?zaskgRA#RR=S%ylY2v4hrA4I1aBizbBWu#ZOyQ$zI_Hk2_1kI3OE{<~a z8}D5NQLf;01n45GJ)0{<_OuW2B~Uy+c>O4PwhF7YZSE+73?9Jw2vi+%D>COM)ph^t zV+z6oMywGgi)<=E@(@`y2t)8~66=V-!m`RYs=P)V=p*gZW5u|?9iQ!v=?|Zy4cgzj zZ^(!HXy*-HkuWM1@wnO-&3}5{Y^P#G>*%P0BBDrJV^HKqv5S}}8G{S#nSE*3w8w|( zLEU^%MpewBJK9e8Npat=F~INngXzxbA>BtgYM-=M&gHinNn>Ng6RY%C=O=Y6CVN)B z{P|z@ULdt3!yGGVg6u5MX{(z0Ku}#}0Ne6{sI6`14%hgJ?Zm`?2#3b(VErcw@15%; zn@i$NpT3_W$)EW5DEz;NT$1tJx*tLmUkQmx9DOMMbq*=pLpA>H`dhAR=qB@{CIw%A z&7SYaOJcEBbqGegKzb~ec<3w!h&R}~hpo*zpM`9O~M%^^ChEw8Q42$82=n0|$ zBt?7!Dk_rvkTHVkCF4svH0yRT9bx2fttAgpTssg22;?FMD^x_b<@-%ljbbzEv@G!S z4t>hIN#`HZFYTl9p%{(alOt@1!}2|ZC346wgC>(o}+ zsBiDSJALi$azjl}uHuGPI4#1~>fJ^U<+V2AVC-mOIGp9DI2y?StS+STa`UebssH!- z>+{-bSdniG{6}L+5ELon4hD_i{}lg;e%i-5m#zoDRJ&|r&RETpmW-g&=+&?IHhl$) zIEx6?3%SH39lKl?g<0>_VS8H~wz{99@E=9qVrrZl`GmVP&3ZPDjv9=``dF8;)V<71 zDm#nGJJBj{chl-4oxC|oDs5*zSsCy$?~k_K;G+a8Z!NdOL%!(z42GIU+UGCFIRtyt z)!GBU+UFrC3c=Dht$uYU@`Cg~*b0P!Tw|CT(Rp0GfrIQkt5|p#<`Ml1Sf07zQxZF` znsJvWD+T1$01Io0&b83Sw;5Oo!2_i|v%ZYx-bR94m z!^CD2;SaR$F9rvj4g`>VNzd_UrEmw+4%_ z7Qh)Z5cBT%7h)0$;4tLHzyA#X!KNG7A)CrCE23C0!=FXPRqbKQt^nw z?YlYx$~1zjAD0lK0xCZr>s|-J>K2Eeid3YPQzbKxpTk*0@;Fq1F6VxPl-Gqx9b${u z!}=7>I`XSpSL+WT@1+7LG7$PxO(S61DTAlk9=msO-oLK1;hTM0+hergNvb#IO8 zvIJ{@*3%4jV%UrB)(Q)i;g~2!`sI1OR5nWgniW?Y;s-^-W8<63UtZS?p5t=j#dF1sgu~OvWis*A?CAY7&TpGI z4~Q_U3T+Ei*hPuuClyI2*g9UOxonePMNIR}&rA5Ic5Ne;;hayhxm=mF*50<=d$9Kg z#p%$=rR^vkLhYEsiq^sAZv8z+S^`5RGI@X)v}+pe-mkvA+VYTM8q;PhktM{gi&d)j zQzR^?^3vT9#_V?W<1)7^qgD|!e?xMGf!Z-22*W6kx9`~|&`PY7heiua5hgM>uZz20 zMA=jKvK@~TQ5Cz5EThfpFzTLt&kBn_zDWJIf3FupVAwDSl987G)(oyw;dR{2XN^0A zikd!U%-jS2hPaGv#JSl_lhZo|mUn%tbr2cO4vKkbF@)0%5E^F>+u`|9eaI=_B zaoME{{!Qq-e9#qn&)1vzDydM|YdxHXC5&=i_FwofA5f^~!Dm`#OODwBhW@rbe<+Tc zi4h4q5r`s6#(pSqw1RZgC}{;R1HQ?=%jGT2D#0s}N+mYW?>VniD1t#oKjzY&MY|5L zj*oY#RpXA>3B3Z^hHh3D|Ly{~%2q@zK?1o}k^LT<_jSpA4oy4iH1*bF3TCD2472(u z7{BulK5?T@F_MrtWfQf;lQ}h*uneU3T|zFOWgtL>a(3WQp}i;le-K;;NWCvFfFds8_z1>Lu?A*6R^DBVqmR%kYZJ$EZr@ zbCI28gjUnuiIq3-sIXxlmoEmbmvJE%4T?ms{;Qn*-Qgyau~#s z`>QYR%KD-4xp*@BtNNPE$1)7n5kY2EJw}a4utKDY1#9-Aya${sI@`4j>-zCLnRcu0 zR)-v=MZZA1B#Q%qMNOkPb9=o%z^v@YsgyV-x;n;M+eMsNFh6ez?RT~ReB+n2`DlOuW??OMSH z?0Y-ZBoziR`0mLSL(K9jFHiQWFdEwG8pa$#yGcUUp@vr=mACr5vYR#XuV#B6Ryd-6 z5Xnizm5^cCyW7!yOR`a=T@-_i?B_NBWCxh9vQ>kHpLKsDS4Nq~~$F!jh30#fF^2uR^}~9GMHF z@K0Pux*OGM(4m1-HvD%YW(0#!XBa3s8!HaCPF8io9nF4?88T+y=^=@aC6*Rccz~B= z{s8E-G3HvhA@#tN*83^^&O1nParEi+awyBcYdR^`3YqM$;om8+I?vgT*?L(=5pCG% zjz1+Yh|dn9#v;q?vgTHdngPXtXxm^-+7fjbP)Q#MfRtdxgvp*=^ z3;zn4q*Goby{d#|GK+!#_t%=gW>tK||4MBO(y82C74;jXT5_7;pR8=wa;CzwxK^5Y z&+*0$&piVnd4u4k>u9O0E)8GNveWtI`TY6vFA4%*B|%gyf%R4^cR8i}x)xNjkji~9 zj|lO8$T@dscH#*>O5!@Jp}}-0jKQcC5fG%_!FwE`&VCLD(VlIm*;d)L#sKmP@YR+e zTZtqa()YM-vY8N*lu$3&QALSd$2MecA?2&UkqQhtEYN^qC5ngKICnkR4Gvjj?5TsO zAKPb_N>E9A>koY%RE_hp!0j-xM->6`U2!^o-#&YO*HM?{)UgWVX8RK)W#16cjO-)@ z4b>Mr1s*M~$*7YZZ(=OB5&V1N z-!_+q%-hn6ObuGR7=dM{=b>L_9WzK&_bo}nSQh9$Ca#Z%9X|SxQ8N=d_Eio0LxtM9_pY5VbX5Dj$wfvrRAhBAB zHt@tkIJ_k*_cjx)c9eIKQm*{)Qta>l^5?-`{=7>wgb^)gnct?KmUOs6e5Nn+E=U=1 zV$v)lGkAqSuA||ue8vOhn)pZCX1pTqEG z{Iy%Y#89h;%x?k~<)=u@VM<{uAVa?_jX{7#;+;q)>9*jwL_PyKddVV0f=bC@McD`l zNhEd0t9uJVvzEB#=H1S*_2a4c0px+_JbxkvC@BrLjZMm_8q3j-p}@d(v)wl`XqQG7 z^%Y4%EaJ1`spv~qQ57d)w7!+R57?&chyBWp2(cvx`o6rH&fm-ZRc%REt&7Y(h%@F? z*mwhVZ%FlIj3YMQK$Z8`N?dNfYh5(zUvj*2>;LWc4pe_xS<{GExR zvcV$%{`di7>A2r#qeKu&EY6{pS^t|ES%(i{-_S_A7=mLpSZsw*lgn)bSDa}=)JPo= zCz^=BbVNa|Wsz!7_Nv5yZN*VIJPGY77R%jcJqgw?w#J3*HdSe)pdQUp% zjnt|msg&=WsKvI1M5S>QjGM~XWJOc`+Rzv}{Qh;Z^pC%?iFhl;H>APM&wD&I%+`yS z)fi&s#TIT8|IgoggOP-ZwTek?UF&UqL7Re-@{e(&*9`TgDMjU2%fEc(5x*;6$X|R{u zVdf$eTj=8l5U?(`Z5gB!!3uz~xQ9vbT0Nsh$^QTwwH1d=)~hMlhgFT+|9)!;U@y`5 z*R5(DJvR>LrL3$*y&tn--TTfp%odrDz@)s+(|SYqXqd-2a!2{)Is4+ct`JgzJy;sF z9-Gag$_F$czQdh|)$WQbIc|&;upfmP?J(PiUsAHWUJ4X?PLMK+6kC$Ciqqm;W5Vsp zw$q-;&i1#=_SvQ&cFH`H90=YO_#yn}t=Z?p*D&1w_)qw6e=;_ompZIf9ZG(lh3L&` znaZ|lt>|`SU!Eix)er#L@NZU21*5)q{QHjotdPaDX}^2NKfJA@yp2zUi`y8cO9E~!RB*JJN+OqmI866ZKtR!8g z{ICr_vkJtjkccKDgf7{tfBJgcnrBNUj52=v!}Iy-{tm}o^?tUitAKo=)}mn|ZwN{& zP5eU=l{4u{uZ08?Y#1(x^pQW~AiD*aB_V?QRsqNMh<{IUQ5@*2T?H@8u9)^%Kj!M7 zsKRI@0#uI`1Ksv%NAL2R@mW${#|G|0$+azNh`bB+#Zw^q0shO}#O|@=kDP3JF`Z*L zsRgM67Y<~D*9?pWxD^aJQD^6Ec#ej^brK;$t<-*!G?op0d>;=G6UXN+WBc1w!%iwi zMpp8T3L<9WiaNA!T!zpjURi!sGh0IN(?ie@RX!rjIZOobND8QwK&p+btnM?g(*`mv z;ZD9r*%emF`VCArk6@Q}l^E2vG6e$rmmMmhBZ;#VX~T6*l=FO(Waqr-smYnY$=?aIW!=k(RrsYjvu}xKTyO+w zi&;Cd!yqh;b4`0VUZ}yjeX$emo6}%yV%cFSky9is2C~qI93sG!3m3QL9j6lG)Yb9w zYX@>tWkcm#1?~I)3v03q4A#h4>OJ+sT3=g0G92H4KxItGW+z(^MYVpni+1g17@W#z z?4)e5S3Q&srjC}4Y(7BjczRi6>uWmZ zcPk=URdRn?Ajl*Hmxs`Pt(Y&e4o&jG8+#m*LO))!OZ?}HfJm+weKq@2^+o#LMiq&F zF7SI#iaUzAo)-UZ?`JmA)vB;r2Ir#yvQG#?LUc~hizyWUfMc#TvG}lR#Bm(sONlJ_ zD1nrVLMBXJBVU!oGYJ)Mc;%!l)^DrAJ5|V;yo-xq>ZGrb;hJnDF0=OJCoyT8A4alx z_unW}21ABaU--Ul>%vep0(7rrkckleyO{>#939xXR6?l3HHiB6JSy86*&)PFtlU-q)?-A)TST+NrzH640b(xws88V&v%R%_ z2u7b_-l#?~vD+)M_g49o+>URoYdxlLS z^I<;J$5~ynOh)DG(*E<;NRdBcB-q)S(Y zD?(+efxwec@#x=CUGT|VHtZ_&ve36K_q&?hIFFrmq+Dc-zze9E$ZVAHW0Q4GCKKJZ z<~{xnUz104^a4 zb87N&}Xzu_aRaaO6NM61%x&cy4!RTcnd5*+WEHOsZNtzhcF+?uzZHdyiJKLPf> zM93I%oQt%wiOl@e^oS8Et|OC~*F3$)X)FaZ2$ToLb|VjU!~EWS;|+*2P$5%|f6z*4k{N#~W{{*HK*Zky|+%{bc2yCQo1_OIT!zxHn^Oo5qVy z9gU=ie)jVZZQ7nNnM}R(r!5Aip(ECEzvun-r}^)HMjm8cF_|W?L^|3s^I8k-wzA$L zelL;)1}xK1v{&Cf`|iYl=40?7xy}1%4FFgI&6|W6_QoUxABrs~Gj#<1xkRy^wT194 z9E*Jv40&)HibTnX8_NiDp_P?mBDxahsO~v!wAQr4%2mt&{~||@ix^+&gB5Uhg%R-| zp@Rz(%3Z%*8;xGHJ(z}-$RJAvY6FJYF$$#ClT|b_m@zsx66IcvhVKs$6SjzBThet| zEm|eQcKkq6`9<5&ZtHD4zE2C~_syJHvA0;WOkRGu>b6|6@#GpYfdECgM!xXNa6FM^ z7Dw_bggSL&%#Y;bXR1S@(h>jWBS#%yBa3aC1jE}jm?oPFOGJCnpSr%d5kNn&WPScz zmtUs0>PP9TTB?mLIJ9msNhVwJLdJ@p?kCX^Z1Trn{@iIA%2=F}1p#0!f8=~@$fcI0 zc)y{E&z5ErC@HgPMw33 zt(cILW6h4(xawrRMp1QY)IUxDYsG)o1Zw}f`{*(I5Yq9qBl zkIq9INsy6Wpe^z5lFlPvb%&wBdv4vtL(dFbMO1OaBvK+l>-wYE;ZG1H=nu}*kS7Gw zrzsSWqS1zOY!Z1AxIU`)-L8DJ?sbXzXhwIMN-7z|Mo1wKBO%|mq1VOY2D&+uGu-24 zBt~4=2IF-}M6KTV(6#b{;MiXz?U>>$(pENy>u)?jC=SHQUONda)bCZ%M!P$Dw_M}x zVAmiDT)e77V|8sUxYmEeBpfS%Y310+jv0LvqH4c)e_#emW#gQOBvFf_(kayW+JU*v z^hJf*-h*!t{Hjlq@=UNv7MyNE-+IiwCv=iY1}%1e)H54qpQACHyYwz%T{hlrxbw~I zcNPQ!+-($Ll7ymua4TQ7#33aAst6E&5DF>iAT{=s-*j;9&2KwfLQU&*WDW>2h~M~tmGeZ{}H1&={c=w$`W zXW(>Y1^-0=Q4s?-ylmH~<|}!ve4-WYh|kUMd7Ys2Qm{(J`TTpIyZ%@4keDR-ho>28gSX8qSLH0g-4>V! z&wZ1$MHiDodd3rLN_d8Z2s^C-Sc6GDuYOW_*E%ga$4QC0Q)HUzbmezU$YodI89qT7sZ!NW}dz z%BfMB;{Pr#C0Eg04gYWD-X3IRls$)G2M`IN!3SJU;#tk91KRLPHUU|lDpJBQxeJb= zO$LBRyA;eq1obgwwE@N`=dHrU1q+S!^jrk%oHo+)-jPe=535ATQ?qPnoY0b+lfvRsqC*La+vBEesz-zo{}KgHpZv$zmnP1mtT6q6nWHX zW|D~X0b=C1kClLKAu>zLO4R-EXnzfHN~qFDZn}ypG57rY^^f)3^~kEh+qHjRxBsV= zz_#0kRnXtXaOvGRkPC!caM{*XHudck}Ab*3yM0FuF0e>*}7fIO6rKfY8DmtdG?NFQoF8!e-tvF{|SYV)_xT2o%WOV z-xd76*p@v0Cg?kRNQ0BH#h;plOybqk7tiq*o|9HShD`M)CiMk~O%&0p5C`$lunlBw zOJ{a4NoQV(qLG_R8k>E1Jr%GwCw)raaB?!4H%$0QDpH*R3{Ccop-EjhK0<1b#s-id zXX=P1GcGi8JGR|rgo@%Px4QU;&-^j=q*E*uDj($XtPmWc1x9HiZ`V)=+#9i1BJ#bG zn!#)ytRE$@!f}d z5dO;wK7Fv{;L5Cvoq-*e3IAqg?o7m;!{6=l?M+|B=t*oKuPp3&v&?%;UPHqiG~YW) zV(Nd*4mSf?32IXRkfbkf#R|wjk1qTNnBE9Z-%O4ng`jpF%cOGO#WP4VECfbY*KjSg zbJ;ehMGa6FW7LS12nGbB%WP`X!mQXLO;5>)|L2jv5JH0(#8&ZL%W+(-nV-FM*7F&p zXiSHwssYd>X5R>6htR$$p~J9}EM9KX5rE2kZZ1RKH-KUq>PX^gAOy-$XB$LDEc`@K zZRzf#3+?`m&+upoz>NuR?UTxWtF#vQ!TmbN-0lZ(? zOZMt;k=qIQvLiA7HWk+!vOHnx#gHFlP9S40-}b>Z~ALFw(` zN2Mq?{_pKCD_Gbydb7#VsO-O3`&t)QTSz9%bb3(lAz0xNWyf$9ZtpjFgi6KDxULeC z15IVjAN@KrSVR|OAuj4c=T^iW*22XqA=yR}Gs!xy_XXQRw6x@4aDTugY5S7ebmR)5 z+*rHRu--W`F!Tp9#jd;KG(WXaBijlS-I$4pHd1=0xV|Q3E+v|f9OOvdpxiKCg|9%h zPI^AmtA!QM0Iu#T>TIKwMKv@z)URHG>aifkFJ=vZR@YLnC zX4Q#t@Wzi_$vbmPaj!{A4`byoJCH&K{Nkq>}O_ zGM=bO(YCbqj2rU?!UdpmzZ-I(4 zLXsB_we7SXpg>Z_kf}ZLpcRl~gisDDl8Vrl@!uqH4CNL`T%%1lt>|QDlNrB50r^q> z^k(IP&Ff4rr@#N5!~<|$@`&E{yOIt##oIJft6)Rybm+%84jx2cbsp{twyb=r^poSm zdaMN6mG7EBLn><56;$3WvQ5>9{e(bC8ne>>=};*9G>ID~m8iH(#K1;PHupB<(011$ zQAy&N*L_yRT)(W6My;fGbfPWVEv&~Kd^|=PCa`QXJwc(lkLGmM*s5K{Ek8S*o;GR2 zV@OvRTSZK9C-iW$GlW~Pafg%`?zY(B0rIR-Ov6eQ1x=mvkwh!x0 z=bfi|K~8m1bk#{}o9cSZ}fG7Mf)g6_7F3-f^pyA)2l&2unX%G`a zJ8cMfZ>4}JC1g0-N~d@+u+{Lo=@D(2pj(m5cQS?*+qAd~6aM#RJkCcBG6-^42UYJ- zlZ)#6UL`jZvXn%$W>ep5E{2D2myK>6<%q7H4-iv3M5}`O<|je*J`(S28vC&Ue#aRZ zQuz6;6=mcVoG13G(zGzhIBOMY)QYPoEY&Z}p}iJH;PumyfsQV;WFbWLUO2C~Uw# zh^^^Vi9n5Kn(;p2U*d;Ve>S$}xGxW8FR!bzO|%;;p4J_m_gyy%!oHz0=114Uw9E(s z#L!c(P`}Z6T|Fy>B#?l9)Bb4(Tm#9`7v!oXp=*@W@PA$Pq({W8pzbsN6JM2lU{W)o z^Q(+tXJXT8#j68J@es9xD)>VYc-sc}0&mB0XFq1GvITZk+0X4dWj0h!UI2CsIHmu# zBy5urWy8ukDhRlrbDzcpVxG^C*z{dN&xgxkRAEv<&+P?6U?dpjgZX~N;hR+=B0ox7 zlhjPLy$Z3O0)>n=A~wRy!=2YC5UgAE%+z1W+iNcW_!Q8Cm?2P1AmK=R$%zFfglaO7!PZ!hS%vAlL^DV4JOQHV%BX#)X9!PzKBx-KoUCZ z^!--txql+~DipFX$b^W0Euk0)BwKLv#&JoMn2*5dgNdS4lNpMLRv6?7?)d<*P^ru| zTgMnnv#I?1MeP3jzt;*mHDL%l@w6~q*G6Pqi-8$AolYHT~2p=j1(5nbs;k>HWGWjt=|zNIK8TP;{UGdI1pP>d1rfH z3BQd542s|aY>hrLhFB7t()X1y4|{^;SGWeCZ{Y6_%L^0-SZ}7{$WE2;;DFHSx$)I!jCeI%UZ779W&*7mZqqnIe z6Y?+lK?-?X6dCbY%F%7)1v&4>a<#!AEMZ2FLP)ipy5jFffMt&IGNPR^WjnP)P9YSu zqz8=?oN~GLB|>miCc1eQ1K^_C1^$`IROFX70+l07=4&b@p7raohe6Q!<%qC7Mq82# zD~n2yzT4$Bl|Z8`*7a#~7HBc-#Y>w>l0U)!b*U}cX1&dRu>=Y1#sA;YQVDD-L1IWy z#@+esoIBW_^<)+A^Xh9NBFM>07k%ItZ2My5x{83)yi`3CG3WhPl}sOp@+84KB3_FU z7!urp>vQs%egV$m&U`~tC1u!8@NcEY^Ow(aM*ulM#=ijF>y1~Gv`!ii5c8=Z)e-WI zXb;tozDgs+qO3wRki9po#Cyx?jk05ZYdUD6DQ%|HMiCgsiE<&(t~Nk615`7CeI+l> zf5spJ!<2#SQ4&vC+a0^Fveiy3!_^#}ficauBs-|nCB!rcaW&3tPecr!sB`A*ZhXki z#ix_mgwd>OocBMda9XC`nUUuwp)U@e;*T!HhNYhhEM38`aX1bQc0ly0%;%8;&bvs3 z1TR^H5>-qs7c7DjVHW=)hg#S*M`((do&eV)wn)z19uJ5ZRIJrvcxs}1MQfdVCAqoT;bOYE5O40fN0s`@`y`HRpQIhYt`(~ptN+Lct_9bq zuWu=SB{mtoNKQiE!g-MwhMz<4dhplsFK#fSwdx^eIjZY6Ok3TR)E54iJZfv&5<15F z;4mu^O5@jPxZJn_66Bj6W;+zSjrZuB84QgiCqrqofFs^gBh@u4CS+KGG`3j{B`K{u z8$p-!Dtod1N&Xan4F!DzTaoxA6sg9Uxgz+0u-+BPAJqK()kG&(QyWbbrz@P( zT5jUYVs3|AR@7}HC*emg4GTn(7iY~#;%@>%GS0Tw3$os%&FcN(xa%7D55fOa16&9E zdo722UpliC*~!jKj4YM44WHO3<~qS2HVKm9$P~-jzU((WNfOH2-6aI6$;QT7>I7P> zhxSP2T7R>`%UDB7H4e=~=FXtxDIsNGwPaU+1&o-ai8`+;#wNJwbXUzMKhKbGUewl1 zTgVEj{HIq|bcd1;RG-hY_fuh6Rdug|~zZttUe^W*@TAdpaDB%$(U36H!##;6W36uXRSrOSYS zcRt@eD%=7rR5_*WC8Yulr|p~jNU)~WG%ND=H+|TbiBNf-6#GsBCFE-aDoLTRZ6LrA zr@|z>u_t|%q+Mzy{t@p&=(uifnK-O2@-jQL$CrS(SL0%n)s4=x5&tzZT?gLD_O}q) z%h>e@XFRt@hZY>L-4Fg@kGtTr_NTr_OjT86m7k( z!~{`l@_l>`5U>e}sU$JaEy8JrXI~)14EWX#jhwM_97;Ne-C_Xzi1QJ4JO+;?J^5qf zW$QNYl8TyRce7<{-UZQ>+&mE%@&GY2Syf=Wz>Z@?Umho9>j$|$5WMdeSpDGQepRFE zD{p!^v?9jD}({+^=Ze0|Vx|ICAuf`(48JTF;Gh3qbnZqCJ3kdwVK#PmcB~;;mi#r3K znPrm6?{Jaxg z^qnMk=bPG1Qgk{dW%JUEOkD?Bt3<5pmr;s~i%7t)Wz>d3im(+p3}i&PH_%y6zTXrG zb8Aa;ku3Bt{)|}UZ#r9*MTJa&=O5%Rt3v`;NUs8VCxA6qk4FVW z375WP(y_4Z{-8D*f-mx?d7+nGU*JUUyHVvwzH%|qdMQD{xFHtv;t7HXRoqtP96%Xj zVX)V%*n2{?J`6Sc9_&%ha}}G;v>Hl<=rnZZdxqQQT&7dE##^W8B!osV6fF*-QbNIi znI=74Fy&_)@1+l)_hKY$n|5mbnb8PS(OM6_8X01DnnwZ62*pa zy}yWq2;RQwxzTt1q$!@)+SHh{9L3nJ(-JnGdli(ouD{|fRbZH^e^+w^mHP|< zxQ;|0R%VAx?}OSdi3NB+q9v8ohvN;$oZgjjd66rwMhct{D(f{ux9Y=efV5SL zR!{|+wue>IYgex}BlRC66raz-OgW;O;X(nqfZX(NyV0kyvCg;e2w zZ*ok6CFzO1zo`LAHaR`%qx|7A()f_%RF?OsE9{Twu>wCB--TYchA-8d`jIZG&r36A zww0wbY(ohyZ@y(z!UuPRLMEaq(MCAcPs!SzwGMefph~2XjYowL^xOD@>lbXutFe~DF~i_BeTMzpeM+td~S#@M_?)@&;y1)#5J zsdL`{-X%wp9ji>UAz8Ik${yr$@5DWRYi)-(O%TDaP2Y-jl|iaEA$DUsAUMo{u@DXk zcemEte1OtoTUj7pkK-gTVlU7Sf@+%FH0&^*KislWMZ?PJxOK6g|!Jff!mn&c2K zL^#Tgy-|FKB%(x24mCKA*AU9~CUIS4+RvAm`R&iI{TJJH;Z;-nK24!mHZOU2S2N5h zGCwkg77sqA!GwY_N$+}g<0=>dRBks6>_^-~?qoNo+){kG%LBxiN9y#-4T67~ z7?i5(>gQ}l$$=i=XGg)x0zvSPx+!nSy0eB~?*fn+x;*;gbO5JWbaRYDyaJuSgyb;% zRC9xE{>{+ifefN9*p;iiNFbtDg&Ff3>P2QNW54D)Fm97Ws=_7YVuu1+F!0s^SiIj? z#JD8Gi|dskjOaV`$5KH2vpMXCydWMkYYz~EEDQl?F%wW<^5_N6V4%8)>}FcBNiiKI z(;l@!YWDI~Xj_Jm_NZCS?wfZYafi}A0%XR)QRwc;q6 zzLfR1KP-Oy;yT<0edXLmnFsNRJ0){eR!J*pGgj_bKEp)g2V_Va=DA@ZR~(nQs4PhK zjwMDQyrXV}(>q?H`95^|qAU}p6}DL}InCt4IiXOwBMG&fmnL%of5SkYvBICB>c~G; zl;k$wiE45+xDuna49puVfgHRX8(e0g1jQGgMD*fd@x}Z1!t@CIQN9YqN+y)>jD>fy zjUxp~%A&i_@bcv=E0%rc^3eCZJFa%?u89EIfKZoIPMS^9R+-&b@^W6tX-2dO?qZWk zUf5})@)Y(_rtvyn&Ue~1KIzzYBe1l>RB&lN$zuq3)z!T{_r^?s;XbBys*Q7cS10r# z;KV!?<1nGQz| z9takdurgzt798!x6H%h`ID{$evlj-L#xAF)GqwYe!WDdYD8kwseyTu9^Sis+i1>HU zYd9;p>+AO#52uT$w-1nIUk(3&kyny)oy$gGIg(Qz9cTO(Txq3@gW#ybl(eGye%icn z!Ss&Ob=eZ5$b}hT2z0W@7YUvCw_8Sz1@yc-SMZ}NiSpAm@&7~0%c`_PxU2&gfXtu* zDbNLIJ4Tbekxm{7sz!jEmVo4r3oNm-04K^fdH#y?8#)`Y82qLzS3iuAzI5_RTFD^>8b~0voXC6K>B!qnD#ZCqB8+y z12fYKuv9OCP~jy4N}@`LXrp2^iX5{YfR==8eWb;9r0tj%5OQ%!_2mz~(Aq$F>&&Nz z8>HBi**n^jc@Z5^RLokDZMwVCS`C3QQ;^Ts z$FP%21})V1>8r~z4f8g6|IKOrHafEj6Hr5BGRaYgB%5cu-gWmboF#JvDaW$TZQT3h z9<7w>@M7xSJH8XXQn6%U1yTpEJbpp}OQJ^A76F4H*qb~qb|Pq;9lq`4l*a^A<`m!c z8dZ-QZZxTrm57Cy$SsWdQhr;GX-TL$Hevwvt=G!ABMyFm5PGyE;X1fgLp8I5L^LHh za)#Li=SYmPLErLu~)HjpjX+DwonLML{a zOmOg=#z5A4c3-XfrTuubQ1v5~zi>f5RE;LO?;3dk7EH{kZL_I37agU8W<0$6Ym@~X_xQee3KMq&v4Tj1YOYZZY!Q7 zeHxR?+fls;XdS+?H42hBPDj#IIZ{#I^NaYW8m6s7bdVSlELFdzl~nEI@y#B_BnHKr zOezaTE^&|p=eX4CkR8YT{%2Bh#7=@Cv9Wlg<}#CZV?4kL7sVrwz1E%aOInE20kFy%Ip)p06W`V4OV|!pp{?k723iYkx8aqQjf9%aZhA#27Wj`y87RHKCf~ z-hoS<0r?g7BZz<4y!c~IUelKRWfi%3s@_{UhxnuiG_{h;Bl!2Y$PVN*Q)r^LI`Ge+5pKX%r^N) zyBnc~Msz8L17^_Rd`}#*4NYS*rBmSVZPn9uz1meGrvk!pNMLS4g9$+0e)%oz$8Vnwj-#UuZ!wA-Q{>5i!<95*{%xMf_G%9kKGFY@3hD= zT0ZKx@Lv^sQ6;BrEVyz=@&B6Mtv%~qi(-TV@c+0bGV{(t;63Mh6VSpxo;$o`SkJ_{ zg`T12^Yh;vh2SC#KEnA<;*KcWHu5t8Gz{C?0jfF!z)dzc#Y)(5TYQm8 z{;q^E2@Q@ZWOr_=AwyzT1{DP50J1>O9Y&^30|gjZZ>o+$6NFDKrY9=jx=}EVbzSd#zRIn9>(Z!@TY{&q6-CKc zqDY~DeMMI6fJ&ntZx!2{QtcYhUfi!C?;MXUx`1r(0S-=FBA8A34#u%Zj&|XM`7{jF=7yVlXs-=w-8f`!UtA!RAt-RrCoqYRMI1r(YEh`mG zGFEml3hkmSJE(or*Ns$Fe(D(djDL0_8O?NylD8$eWH-W}lx*8H_>!m@#_3ZNWUV;%k9TFdwbMaZ})tjW;RL=Kfn|$@EI2eoX~!g1pbn zN#aw#hz&Tc^uqsMZr3U{1ox0Va)bjEBQ7z=uI5Z}#|jJLynNv~W_j&yG6I7g_{19= zk6vUh&M|6wM=RFx-xq}@-TB7fQmtQ&whAOs(>aC;Sjk&HGjb7UA^n781x*;agBjX7 z;X!D*C*MecO~2W;?1L>m`>JlSQpDQkRUxkCZkdORCf8xL&a&U)gMk*yHO@n>I@P3t zkbcHFZHqy%xlet>ev;-I(XBvavcr+j-#ZSeq9Wdl+14K!PNiLyzFJH*rCsDvEi6dF zkgsd0kBQb1X4(J=6p_GTbOPwNKit*>qTZ9*iWh1Z`Rbc%k87#J!?My$K4GXu5`Um{ zwOmhqS1ZlG=zv!Qy3SH%c9VHaVtElio4YaYv(D)Ho&QYxfq_MAof5<3!qRD<7@E^v}4IFR_{*kn<^_+Tr z#!iWo+UC?u*(%=iI+n{=%RMWr)ElP!ozhbNyO1cUkPK-Fe&$0CX#(GgfplnF@gX6h z6?MjOY_&In0%HrSOe5jwEg+QiTDmnR9BsaS2Y{CXEoEhgjZECkKk+8pbU*Fq%}H&4 z_0b>TpKTSkVuB#}n?_6?7&g0+XdP2bQy$S>LOwRXNZ^s2quZ_c(K-oe`_T2cxi@>N zueT|m)kl$n9}`BpXhfaHm)H4`{=R;g=dwrMeTYL_*`DXj*!SwAsSh%;A`#fKvZ(o5 zW=9*B)rX^FkG&$Jh+12fBi8pK=JV-FCXc}MlFq4TC%E93vqp=N3je?o-uZcp4PJut zb(J`>mA5MYTkf$+eR6#~uIlBhLlSw)QD()EnC~~ao0qVt%GxDdP^_Q`OqYwNRcz|G<;3{F8M3pMTI6O6( zk29BS(^Se&{gtdEWJ}_$%byRy20Ii-uQrYVqxw!|wNn$E; zkm-Z1dYtl=3@evlx3v9<-(cTmltm9AB=1EKWix5NK8DH$zQTT&>5ujOk}lzuYOxKo z^AkF1iIaNW&EL?O6x-}%HX7fzitnBPc3wFn z>LTAIG6P5#!YW^br+pW@2A>?6u5{!U!~^o#(Qb+dm(SMcy@xwX;R@bLes_a%#NSbY zlnLS*$v3Q?m-K9R$1Boey;NmIX_(8qICLb?1W)`kcStazGKLI`rc5U+@_3M(U6T9X zR(Lbh($$8In6QS<{QeX|wti17SE#uDOgFY#LN502m9a5ABIj$~ z=8(TgBq2I`DGlCBQ+K)Nacan{Mn7$2qN#rdCbXw)mWX*O_Wl?N-vi7FDpuLE3W!li zr0$JBN4q4l9Pvd7>Y-8oo`zSmi85viU0WZO!TJ9s+m+<6uG48agYVsHUe;k75;6Tc zmutJ#a$<}Su1g-2l?3kniNMr@*7x!HJcQ%aw@lPNv-mU;=rXDW<=v(jr83J$`*N9R zp0N5~38qE>bsj;YK?r+;KC5uBy5rS6?{3YdpT;)x=C8DAOX)0qUj&;O_%uqQ%_9cI2#Lmrb zvsCtK$}C3mh)}s^++cs{?^YLlOseRbS&g~~n|-hM-WFd+1y$>i1XM+i!|!eGKC+rD zJ_w!ix@~`e*hFOe>_(r}zV34bv(Bv1H;7G;p^lHGt*)<@q0t|s+qlk*am4Ajug^bz zv3J>{N#dQ6EmH)*-8M?o!x#(h`4Uh$*l?Z9ii}KZc*fDH_tPLoy)t3WN0VN@aSAI(^{X)GBjkPPWtmYyMi3Gj>H|K^m^n;az3huR=hh7H>| z116d-Z#-Rkqf*pIv0B#!j`2)xmQ&ZM|03g6l|NM+pDEO3s@#-Amc#-`9kWuL6=5to z1zfjjT?9Ci<<+WaE2DIvxGuN|fUA+SoWpY^anu@}bs>YZjY1&O6jWa%axudsfmZ({ zJuStvp`ioi^@b=pNs06AP)d*l!FGK9EuGVbDI6al1k1=D@Qz6ULucIF#EZt|)II{w zp{$lII6;G*B=?Bu^jl;SbP(yMY~7}g zRMm~zS^&ryOK$hdL@myuC7ZXMujv@-0*<@;5YzhwkA0K$qVlfk3$Bo{9vn0Ygx``2 zZi9Y*nnh78;sbA!;PFaB@@iCKWKfm*W2&g;?@`j@K*R_7T2#0Eg>~U(eT^PS+L@!I zUu!#(ES<@~z#Iv&Y}J&7-b+iDvh=&ZO>yR-p{m~f?yBuwhW%c_8S1Dm+t!xuPu=VHJfelQRN`}EB`s_1 zfyw+mYKSI*LT76xE|9{6`p;bN{U{)N*H4Su{s1ve!1LN)@Z|T;VMN5`imcXxZFA~C z?H2MkL#nu}5;@zVVT`J&p&|RLF*!QEEe_Zw~$dkg;YT^dJeMOLFy zD`wPL!MPU8J4L_2zsqX^FJ~kMNdfU8cYHcUVq(c-gJF@fP5fh~U#q~%Rn=4rJyi5^ zu{6{$wq9nvUJbbXa@9Gx!fM6pTK!aQux6!Ate&W;f*?QYMOK?2Sz#$`e1SO7MzEvw zkZwvQGPe}ve&ttz)SJDRF|Znk`s?}fnIJIRjG!_}lg%3g^%&%19Oafx%hZZ}%5 z>?=HaYx=tC0fGiKUBvQ^fAw@zfYk^H7hnpJ$$J8XqniN8q#DO;s}s4e>oNrv0VZ}~ zx`M^Wu&>M~H$w6ZFNS=hMHj#;W9%CUqjap}aGpm!KrG_s3J1v7NQ!?#vTnZ?96hs_PY7W5(i9BScl(rSiFeGOXQOrasR{H z){l4D=feM2F_AYHm3**~S^0eZVW1CQWHd;er;3qz)r#p2y2WL709A@w!*ee(5^_oG z6@kumo)s(B3zTT^SUqrt!y36wI*8K0?lvHt0NcwpWhG5y~};TcLrO|Ta)`&y%}|m5V3$O^36=IXg8Qov2|tbDi(2E z!&;p=hDdilInsN;XP3&}q?s^T}2RFWrrVqUAFmWUS~W6|bg z;VP`O5Z``Da*MK7kNhp7t46STfnFB`h3$95#GpQcf?`O8r@*DHozF%=Ura8#fsnm} znB?0kViVCjIf0CedCL~o2^LD!FXU_posQe+R(q!?t$0q5PXaJ=h9%uROomv7n83#T)A z@l8orJ;P|lmp*+gFAo^R%|MV>SX$eHx-NoWJOiY?A%y9k%O|u-SMQmaRejV2*epKZ zPr2rs$ zr4nYDP!Mb%P;IZfUrDqGe@TZtV za)pNsvo(%lXOxP87_ldx6%_dQ&a+>9TB9d@7^fsl9%ek#0n3B5K?@EAI#Vb5H_TgymF9(}fpn*Gj%cu87f@{5(Us zp8pdByq8!=j`$3^Ex%Y^Tet({W4D0m%@xjKY{$Q!@$bx=v9!EKb)qa3gCuM$0W+oD zP8x0ci4e3LV;@Mrjs+a z)e;HfQ2;>_y5*$rF?>^6Z1Nib=CWX_v%1L@lN5O`{y-5;=-2k2mk9DXlF%LcGWGar*Sh}JX{ZA05?AX7kuWl4)9ax=1(h^;&5U~fU?MMTvFv+qNZyP=+1-a< zX&WS`ZB7d04f_WkqI%@8pTdoY{l|Oz-*16SJi5sAkY2I)AQ39=i`F^m>;QjrL!h9SI(4qdbg50U}=+gkr-NGzZ!gI45^`6mZwVolm!G#G}p$?Le3$67#)_qmqt zeT*0w661RS)i)6|7b{FffI8Ig$3F}~WL^M8MGR3MIzA{GSt9fTHiQe!CU0ZyuSc%( zq_=r3Z37SR&yN{|*_@#;f-kU9jZ(T-)IJQ}M7OGw%f~`th|q6PM$L1Aj;kRapU_<@ z5|7l55bN>{394KGRrEju7SAK_yAQM8&bM{bMsToil3acD6^Jx_;FGM`RJU8O4MsU; z=!b3#v!SHP#@wkX;K?@D|DqMASHsbtDDSuSzi!!%+hHq4Lxiegt>d-unL*pZS}y$7 zc(%*FIEs?DR0s9FOXgwbntq{U6q?HkJM?H^ru#`&jlAt&gj#7pzh-0}G&Zw$VDt_+ zkI=THHWIjEEQ7e3K4>l(OTYm1bQUF#qeE|RqhJ3zBl6i=Fa*bbl@ zSQ`gOxPT{b5xn$1tTQ~WItc+Z9jE&{r+~*J4hR0`ruR;de84>d_|JPQB7W4;$6qMQ zEp0{f0QXj4eUw8v1^{4&-i(=mTRZAH^0(*=l0R)NSsVn*q5{QAa?#RN zzuh2}IOOIWrK`PQKnJ}ry=ni|SRJ6-h@1=9dps$d5damx?h{y~rcsTN{y@pN^5u7Em@+iZCpEHG8ZY6S;=eV2Lo|e-g}>1JTP>MDi8jaj29@6kBHp0j1EfvH zRYbZvHQ@zw8722E>%-ZK>P(;O`YXVVjSJ1eHpkxH!2xLh+ze!l*7GcJ=1z;hmHv9Oq&G>h)}ukET}n;003{^lDL66Za(MUZ9t9 zkGsZq*IA&~zpr|2+Wj^7Z{i?fTI%;LMo5ub~wS)H=1(8-wH zVU=pg+?oa-`%BW-_8-R5#ul1`5}Pd|E^+?fVJz%FY3{&y5x6E5SB>o!`%j19q8HQt z%j!P^EnBJZAVQhr?};<(gF_)k2e*#gnKye=8+~{UGKZfKEsM}=*=E$w2C|B*3A%fT zcy*ZMQanpm4A7__J{-^CH;NTers)qlL&k78zk$DFXl5NzH@}N-vPFuHo6hCro6KIt z{aZWcp`=E%m^n+DcZ>-8@qr5!dAahT+iDDIQG`Hk*i-R~PL1k=J-1!qMFWF;QVhpr@|nn znmn!HHtdfeoz$`Xu2|U4+)Q4h7oFB(029r-8ll?eL+1vM>sJ%|2WwpHKP1?wpIU8X z-Sug0F%~XhTtp8L(N7ObMt7o@gwki!Q`E%SheoRgg*`y8lptF4PH^e=?EM%REYi#H z`#8o1M#(!p18D3R4++R~4Az zeN$z24xNb_`-2el0jH)xf;dW7V&F1VxmEE8olbpZ!1r)y8@cyOHLQNd$ETOA&s`kW z?2eUdU(H;2!&0eG1q}N}`;pXQg`b9nvsRS}OFS$V$UM3pWv?j|GNIPdN+!9u)2 z*h8mG{h;?fZr-!MGq4~okpByGUxD;zMdqIom%iFAa)$&ADNax-P5Jz3S-A+?0854h zbn?l-0OIsjN6z6qa!+>h4zvrp4>F6v{=?Txf@|&*)8J+zCDBrz8EEX^OYPeJ#IJBf^(?ZrHki2;sD6J zWI+3Gc?Nf^gpI8@^a0Lcn@L~+zz&*(XJ?4M>w3>_ywQ{vUNfo&PEYVJdQqNhJH^M_ zmipOIXXg%y1>4-z{_i(~Z>!^{2QPq+=-UTK zg}ni~?p^?d%99bc`*apXiJ1)k__SA+z687pd}D?o4r|M7)rjcm-RSvCt>@s(h}zZ8 zokfT!Q$F9P$(_MUJb3cd)B%P{{;D>CV^^Im68mpoaf-f_s*dv?(Jeeu^7L!ke}((|6lv5VD$5B(x9u&X z=1CYUU9MSIVn{Z9iTw*MKy8>7RGYQqcj#vTmcYz@`OBv_oc9bR5N_;wh)iP+V9!?D zSiOy!Q`=So6Wpfa`-S@M{bkBmqQtE;}<&|7S5D^1l!Q-m{Mi$ZO18ZPlYdbCP15wno zN(XuG(XKS|p3T^g-w@!A>R;fJvy1!xH5)CxDUq9zE2CoX;OBB8T@+}c4mstDYl9Mp{+TwBEb*)x7U6XxMwgML?dk7H}qk zAKor7M2TSA;5)oise$$M*D7`6&^q%@FWa{u1ijff{UB;(%w$5z@q>bMJF->O*)oyygsvx@vncG{rr_PpjzAk81yMs zA7MkSYZu(4t_P$c&H*0&Sqtts{sk(-0(*LYRcMY=|+2uB@I`1pVX3j?mw$ zOKpf+c}2+aN_b{54o6zz~$xzj|#Z-h|QFmOj{}?k5=%foPQs#l*&AN?@ z&TFg}UP3WVzCptGygU@iP16lGaIj@nzbC9OQ2QrG?yuR-{#|ptZgd#y+FGc+er&+= zSNbOI|Ca^8(#iOgQ}ML=Y`WC`8x^2bG4xA#R`=AxBSDsZhVWWcX+H%!@P{Tfecs#Q z$*+=Ufnn~Fsz{%s+|Og5x_3Gekz?6K%Os*tuBHr!?mAi5_8;HaKiivn@81}iWjV7PF^E=;d^n;P{2(2zgW)JBy39eXsAEf=#N#jIhIbTh{|fIY)T zf9p6NGYmwt=vQwR>KE+KmX(Q>rbX$%=`O6 zcwT1#F&JfU^=I(h;H&>)D(&8ZVq@CtF|mxu+2E!?V|G>HA|9XbuF=ai zIcjc>F}ppT1Wk4vBGUBf7_*6Dga34z3(#K?`kz-y;ICK8<>&9U4RK7BDMF^Uh`i+h z#p5VXT*m9-0kG(Q!f9VyS|2st1@d6~ap2{CGLrpDQKy z`}OZLF{xm(1EN~+wK_2?5k&e~M?~v={ZLW7`3TOitfYXub*yEczaXM6U*OvKp24{R z=~@g3x)LgC>B7qq(J@(#r_44?vBk;-4jZ%81zi*uZ2++$3sf2^AJ^l-Y>tnC*r2vHvbu$8 zR7JJTFV|iMn3fE0CUMN8IUEB703tf(OT4vo$o`$rQXVlB@Cl#;qyRLH4H5|`fADPQ z_`x$b4vl<~=q9?KFpVIdbRjaDi^;oTMj#qJReoM?Ub|a<{#kk6uwQ@WA}PQs01Vj@ z#>xPv@nZ8m9z3=-y=cBL-DWmj-cH|qW{Y=>Aj{Pa-_3k;MVJJwT(i8KAXYTvp1o$S zfW?RrBzj|sKu~ZG^v%Uf%f~CK`-e=~U*?XX0$X<;&JVl*q#W4#&@sdT7WsG#o2#{k z^~}f15iX#At%dmF9VQ2*KwCEeNSy7|J+Ag|)_caQ+x2c$CzEL?Om!w#de+cBDeWJC zUwi1%uo17j8EV3-qNFU+{;k$H5*!WbMWg1x_FcS0l@T}%Mv|qb*){vd{;9KkUfiH# zdQ{~la07TO0n=uK1urO%FQa$O+K zh7&{@#NDQogP%gc5Zyk2xZI-CnalXhh7)O}49UqCU9L(l2D#D^Ya#UaTDbdr?mz*+Pz+QXT?TilaYB&U* zOqp?`0KSW9lEniQeiIvcfxE|gVfX@i?p!j0P_&7wZ3_6CnN~@4$*cexRtxvtM{Ks? zhIf^|jM}M4w13(4yPsOKqq`ki|LIWQGgi5v7&YXrmqHibJurx7vU z^fYUQ+rv-p+Ya!G)Xg_?fL4fs8s>d|jOXZ292*^-wkvr0xXj8K z)q_ZI3y80+dImPvF!7vmNIN>rUpi6;KWtauMrA@{p)$4?aIKZ*$uF)Pv>uT0?r=MW z+9O_Iud1;5F>0f8{GorB#$36BY31jC{0!$Bq6*5;hos$n+P})^j?NgsffW|iTTi*= z0VyI)KfwtT>D=kN*zeZEBU4a17R3y+q1ZWFgie~+3$Fu|4*MUV4f8(jKmN1*huB3E z%e5iLJvHO%)L7e3O%?4L04ee~2n}&tF~HA{=LSi5)*hclN=MNhc@D5mFBICQC-t*0 z^kZgc9{nwC-+dZ`-Yg6?-ESUrfN%dhBJwy>A;RNCjsdUk~Z) zJqw#xoSWLDL1uE|8M?@R84Rv#FmvyFz>3PVDFJ{P$X8VeNGjXTn^yewWgVx}KmJ-LF?aAs2@I zhh8(}*qNiRF^~4u>XsYxkbj*oVERLPZd78_yz)o{li?80?4rgpwPI- z#Fy^{c&H#zxnypL+@S!>kt;C;{0F(3AcG}s8F|lhdaGZdcs%gih0{JqDiI=drJ|=Y zptoRDRuFM8t$F1~sz!kAR0W-}P`N6kFz?lHfBcl zY7=O0KcE+52mh+g41$a_BQy47K((-p<=4xI|N6gfKmW=FQ`~=7Du?L`?ly5DhPpxl z9?GrpKJEB2M$87q+8{fF4P_NCuYX17-r~oU0}g1p4K~v$MK4TQ8d24&iH@qGoLAkl z9@@pdn)dPg^tMKIM_jg@gB-X~liNed9X@_zhLX>2(8SyhaZUS3r(pMfcu3F4FY{nKk~VTYM{YsY>2Rn0o7#VJolc1D8%!2_!xIig z=>;9YoZ3(fZs4q*0ra+j#}vc4LuG(q57`g&G=PTY$df1HNnQO2fXi)oFJ&~M6Ndco zeyWNw+EaUC~w4BD5s&?CsssRBa-a%#%L_hunaKE zi1Mz7yy?Iwtg*|7^W2@+4X2*3ZGHGVL^cKBPC4j9cg!MiVO9ROTx2N$tT|K05Dq+T zAzyTCj$I5WLjo{W2ZDt^rkoazeAxgA8t&=_r(Ld=dFd*xlP{hQ>R#8&iB0cb&_ zUH}A!furWuZgFS{9KuN?n(Zl;^2V>OwIx8Q;2SozM?Vv5Rl(b#6)4Y_2{g(Hz2^T3 zybl?ewbv*8&U6t@8b2Mx9BU$jZ&3H&|HrUD9DwF`oI{%YD#IDuCJ8DD5F>@MKG^$Q zkvfe&9boecY$YFI*98`BZk>*)OAH*6#z-II{Ze|~cTE|Lj;n<%!7KWY^hVK+9U>tf z<*t;Alo-}sFV~_sw15~_?y~1P)a11o+Fpj1t7Ml$tgU|QCd3kQOdlXJ?ZPF!gkoAn zWzAe1Mbz-cjeP&>ziWro3Ix^+@0GR#*anN6-MXe_j}Pq^H`J>5e$T0MthuG~Lbplg zkV#Cn4h`uG@h}T&^Ycq~Nef9)K|uy;8V|U&1;82ApBdoxj5!^C{qH)0-ThO`C6p6G z43~5=pcuLN3IwpT3-A(bdnn`4={BE>yG4-m#mEWZ1K5@5j$%*10<~jWuF)e#wgEyI z7cumi;D5^=aJ14%D#eU}6KvnW(Id*3l;dnKv>YXD#yXTB)=UL=Yp9)EHd zg)x0)Vt)isT;#0op0m33mLaMdoNU05Tu};rbLjHMVinb@;0KZj#$xa z)J%Y`MHfZ&vx=B4kpKMI_P;=xa&KK2(1UfMj3`nYUeEO+S2+thjBEe_nzsqg6%@FWj=`I60JPLc7BfS@?f~L4BKBVlbh+&QUlb4{ZP^#^c?a|>KmFIg z(-^&?Ua#ZNHo(pY&~B2Wdo}P$!gDuq^k(dRXjCaLLJs`9kD1

cT0{(Zlnu#8?2go9D6ac7)*z^3gT`IbXdS0^bj8 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

6$^hov+~dBARzBEJ@j^BGlH4^ORY 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%0DNt&G?GQxnM&KnW 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ۍ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�Ma`7Z?<}q(c|V(XF8W3a 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%0AKMxkDT6OOU{T%ogJl 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£WXYvGVc+tCPyZ1qCEQ6 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
  • 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%0Dk}#z<^%{Z1*g4 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%0D+BqNiOHaxwo)fCe>24M>r-R5BOjPE(kU$i z`4|B31l0!)Nay-*tSo(*|7tVL0rDS-tPJa*u4tBu*-D^0miG-fe7jE97JtFqI%YfO7!c*d_o^kp0xkY&LbCKORQVoYFCerr#dS5B_Km ze}nT@W`=$dls`>vPbFmlbj>;+NZn`B@tOIoO~d8!!(Gd^hu71lK0X{1WLK3Heu@pI zJzj?J;T0e{+3m%r+95r>vJVfolmCOQR1bhog7v#5DTBI@25>&I-_HzqZ_;N(o}Y&T zFreg2ka5R8C|eFvGv@}tV|}`k_B94;T}dDS0CTKQUZ&#%Kp_GK8@5l1a`2OS>q7?H zDL3Om_s~|c$h4VIS>IVLxZ@fJ#!1h>&1K(i>&xcV?rb}|h zTbDdTtg`{v3ec+tg00CPOxdfDC_1w;Ofzuw0$@8B?f~RRAp-01HejXwW3bf~24*#| zeoX;Jve%Jjd5RZf``pqq_-IQ4@&qgi#(Q9%Y3lo3fb+Rd4~lzmImmhkC>a4-zIf4{ z@a945PR*83z6cmey&;s~xv#rx-S5}x5`F1Sv!yQ^d0kb2oqir{hiNeEfyjFiQ1`MieA!An zcgvkh+MKPs3Yx!jroE`==ijyS`35KvbIRY)(X0T{dCM_0p#8Q1?+V0+(Bj~VhocOE z_-rOgSAgu#W#85-Y4#OfyqD9;taI`H#DI5|h~awtTM}&NJ`hBAfO>BJj`;HL&VNgQ z`@66{mb|8SfyK4*s_kC$Q_b-jXzjsb&p20*T!DG*vjTivD$rN!M~!{2zwI&0T{?TIY|st_A`Rs z$02LYMdeok-R`Y_Tl*=t{B#Pm_S z9U0*JiESR)@Xh+eziz)A01*GZPvoluHnN|vYl7}%iN_ZJhiMz^cL3*LtWT|v`=KQg zp^Zz+2WZciTzq+lywhe*-}^Yp7~wqr@?R6fUI(3QbAa+&#;}O{W&5A4Y54l?ATgx( zLw<=+bjsVl)#Z$BdgeQf>GZ+e=a&Os!#&EsoV&DUKdzq-N^N)3!T-K6(@6%$7XTc) z4U>QYOC5i}thX-PmlCM+{j*uI4q%^Tax&?aSPt#>`*!?@fmbBem$w?zy~c>Q^al<4 zc|07H0{4wQc$3)f5oo{PYKyC`xULh3$KPLUrs@E~ZyVT7xtOVd=`e!j0M)mR9Zzt5 zYcu_Ai(ifH9_#&P7GF@1;eNl_{<>*%%XDKRcz)8d-lLr)Hhb28hmQMJ$#9Qv0PflR zGlu(?0Pz6r$$Yhd*Yu1;`QNcW=wTxx-)&Vxi4D3omlYe_8@s@%|3O;gJ`qEgPRQ)eq_w;8zxl) z(0!7?@6&_yFds?QO~oJDL*=7MV!f{uKsT-SN6(WVS@i_^vsoDe?PP-SAzK;jc&NVi zW|-#~ZQNYLR=*dDhg~d(cbf<72B4YRzMef#40o(QxSrC z9ysQc^iaQM5BAiS1-pB4t!1zSbdQ+1`4ddf0D}(-w~`p*1m+<-lbQ3LJ-FVjn@jU7 zcBa(;cy9arg7t3oFf9V~t7#kHDbqZ=Qb8twMWgL`#wI~21*be4lvXh3$AcoR6R=g5 zdkCH2a0Kv%3Dg7N4xl{(@@odn**b020Kvjuh5|%{0TcunjwOaC0`w~_6FB-9Q~m>C z3dc59NOah*sW?ms84tu8Q{z8>&y zEMD6%?>z9ns7}rEtn?a?uK5c1*KE=Bd5z zHTQNG2TmVdnC@8SGGY@u|MQErKD!mJG?!~kc7NUCb&c0W-BwVY;5q$jto581Lcwn5 zwOen0xUPA6jqj2do3k9`CCoF~YcWf73A2~S@hh)M3!?Md&6nEzt(}S>I7T!u@`)%7;rmdQe@Uneew*Ee!-^Y0Tq3w@lAG>tfuTri^7wz|7 zH^4IhOPB^^t;Gd+V0zHGFIEqI0b+l=k?Q>TFDs_JwyK0;UJ&yi-s>Mj~2HA`#@w0CUd-d_qjY0>1zjS!| zPe~^|+kUyaC+jPs?XEtMmig_)thf$Po1L2S>fJNVblWwy1;&Ks`Q<=OTi>s%U6=OX zxc;byJayoMr1|#`k6gJc+ak?(?ND%OW&qzGUtjJal{)TN{^TdqsPzu8eOl3lSN-WNlvNFPfb0(*hNX1f)l`3-+p+GaZJz48Ke2!Jo#^`$6N2|z@wGMp+FyG< znA2pBI_OPWXwv>>w;ZFN|Ci>$2<=4Zk=MI2fb=}E&uNi`(eicd`_i2wW zY-+yR@1fIwR~`8fN=^B@p>C?*t~&0JkD=Z>rDsry*MKi8v*n%ePAqD|ABI94{*Kk{ z)3wckXsc`RRBFk?vMg(dzWej%Z5e8^!XNb>S{uP_&uP0i%c!+(dZ@Mhz&<<|-FWuJ zG~GYioQB_?46{~y%~Z=h*2R6;?JQE&i>2PI*P^8zISpFYQ)s!@G;zJX=+B=6RGj}J zecrA#Z(d`V1oCBchE+FS{rmLa)oR+uKEJPgq4mCukJopu=)?0XrI`Wjz+f4u5r(vz zqHzrXmenH<=q0qL>E}%~0YSRJzRR#QStDKazav&}$j4Ydb!l=JmXNIUT2Q zrQa%0UaM==({@)M=62L4+dj`s?g#5#yXxaUb!EcYrZ3W zS?jvpJ6upsZrlFEaR07t5!-nY^SLj7SveHnpBe+ctDR-E(tZ7XR?{4>we@e=`u4#y zgRg2=DW~jqFDv7XvL3!%QQu`N9YZ!V*y}3|Q2y*jbL^U{%FYdF>&{}(LNdT2iyU<} z{$bS0AP?<;g|7^8`co^NAUyTd^$Q6y(^Yq!jC!xf&;C*-hCW_a z38rn*qD09~O2gR1N%UoAu zS)Z0AWk#VY0i#KC(lS=AuZ?eGUFWn)$lSAa9s4tzhcJNX7Z=0y6^0!ik8 z8#e1;jg#Sy{X_b>9FNRUHRC>Y56-Wsjc;stHEeD+?SJv}LD(B5W;^SS?0Bnp zYP#{r$Nt`F=G8&7KT)#gvejLOlnu@;qz%uKL=Bki$VY#sTd7e1!<0*j0Yr_NAEj|F z%YBRcKq(oQp0~%Lkd!Irge_H4Ms?a@x!;lxRy)$c$fpiG>xk_4hb{9xOU@9y-)_Nn zV9NjRvm`0>XFGUEYUb2R3$9b6ow6~peGC4&{!IePDJMgjop08MF>h*L9ZW49M%kPA z<&f2nI^LMP4JBz{l$8mglv;l)TO>boQ_>!mjR7?Oi`99s9RU1sMQDc6oTJnX zY_^%e_1R|WkL{Bt9nv#k!$ZUzz&y4eH-qrK`-$1UW#s_OBagc6QTppj=xDA7DTeY^R1gS?&0POiX6KpA9m@9Tp{In(faY59cIkW@~N! z!C9;OK0GQl;ORRsZFtJgkO|K;{t%DW-r)&ydlsax#>pQRx|Fw?~KezIMF?IE$y;sY?)X!eq22-f2pldM@y57NksK0^WKAt`ebif_2j^qci2f4AA+ zGxuzrHQ}w_{0yETv8i0s(O*1W9Fx_7^`4`P`y7AsDrXQU{r#Q^93Beki zTpuP4`qyb6vp%o?+}~-y6Ra7S7CY1X*pJi!rjh;5v^eiBTG<2dulmA$V7u3U_e@e{ zjKaDk9QxSvbBy>dcI#RwC1-9)x--aDki8Dy$k-i~zF99G=_{$~$b4T(vNd1{N6-^r zI5hP|EqRlpd1X59fyEo&$bc8-{MyB!ke8uE2#kO$b+ievg8hqalCxJ#n?5cL;Ah>z z>RWa4I5Wvt8;DN`rA+$=R=+a!xt^K!ld`S|f;VkHyC?x*ei=|O$VZ6*ul+8x^rh|@ zkK0PCr;jlh+jxexL97ey%vR?2OUJ?IvHn*VEjt`}STY8{M9ROC0gHAfw z?4F?>&7X&7q1D{C?R*|;x!}rI&fzXS^<_-uwEQ)scFn0>qj(*IQ8q@|>~miP+43k< zFENFwG>m7kcUjD@Nx{?@>t2&Rgf`X)zrM0hrJ}sr#$ZlXhQEFMt<&F2WvzQHc3Q6{ zd+qnlf2pQGJmbvZw|5%yeL_sTF)O5Cl%*c;H?GfXvhzNq#%T9U_QOyz*_ExXX$r#E z#v@32b07I9!2J(leexq$(f_^*I9&s?J?Q>z+E@m#UsT_J4Pg5s%aSc`0k(geaxoy| zv%wsg&f^2HTS4)f0kDG<49fuw0$u`;J%Wm(1lGTPU26De>6!19>|cQ8Xcu50`Zu0V z!+Up9e+c0I?so}1y?b{M1Eq3~M6kTsM$kdZqeO7sf`vY_fTRG?Q9prbg4C2vA#e^B zE(4@eV;!ur|KWdV0c{xa$(HvoqF4?-1kr0Rxah|+dJd{~x`OZixD(7*aMz#5?6cO# zesDjyzg>nreHlX_TfuDP|NY;$X+B7*2fsZKuKMns*7)rG`wpM|#E9=} z4b%#sTTNY`U8emlBxG#g@^U|Q1}u37UTp^?lr{=;*E5xlQ3;s{iW_(ifF1LeKs)EL z249V`IF}(y$Y34&jwK{ysKrj{8EnV#GGHB&IXDK_4P>91R1B_XAk(m}S6`+vL>Z>V zzBfyN?FztCZie|>zh#m%urE!6f9T|Jjvt5k5&)*!?vFx?i7PNaXEkXVrc=-6*d%4X z9JCFGR%RxG=6FD~h6uFd59^;E4x^L|KzXF4m!-*nI4J@4XQKTc+py*Upo5_f*%|ng z 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

    n*!OfJPY2Ly#;k<{VAX9z^&vPXh}B8 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 F{U4|TK7#-N literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/invitation_bg.png b/grailed_app/src/assets/imgs/invitation_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2bdafe5d9d81e7a97300bf2d1f530e60e74dd362 GIT binary patch literal 91574 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 Y=Ik_eqsK`z|IZE$Rc)0@CG(K~175-o_W%F@ literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/login/login-bg.png b/grailed_app/src/assets/imgs/login/login-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fd06291f294dc62985bdccde02f7011ec3537676 GIT binary patch literal 332827 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 XagPV9 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/logo.png b/grailed_app/src/assets/imgs/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b01f60f12924ad1c944f708255b63040e9ad1ae0 GIT binary patch literal 24939 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/main/home_selected.png b/grailed_app/src/assets/imgs/main/home_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..0dccbb5d32017f7c15303d41376a4d8461a2f675 GIT binary patch literal 907 zcmV;619bd}P)Px&MM*?KR9HvtnO}%hRUF4Z-!rqiC<+-;YLW;`A`xj1i9(2=MIy>>W6DZMkRrWo zg}M2nLe%2opO*?1M64xiP&82b0||nn4{Z@W7(;@HrbG&gvAQ$o7c*wAns?`%duM%U z&)aane?I)?+&gpc6&Wro@KnXqEonYbHnXES$66KnHLDtB6;y8HbxGTSG52I%GqaBT zes*Wkl^WRE8C&V&BS|ZgfXwW(Tr+Q~hpTD8Qvq8mGriM3pruZTlJmAq2k5O+f1fN0 z*b3w@R(on&peeAt-(eky9V$`@^b!ng1;!ifG}DsMvVnTZ4hmMO$R8m&LBRd3%yCX% z0uw_@60{e*x1~)7I9_jFUBI@ACV!c?L0$C*hv}@-jbp2J(m$AQP+%)CsbcIEnm1Tj zn&XCjpA)aC$oZt4L|`j0-sYzr9e$Fc>qx*@fxLv4q<$~*d&>$VX*(G?ciptC+=52 z8rXe&2F6c`0_OZ_e8==CZ#;0ZdUtc@uZV9Soe1E1t`9hF_(E=|f$u(Xe8D9H7sK=q z3QIBJFaS3U9Jr%GCl;z7-V&h`3)K%#*nQpy`2lxQrBlggLCf=Zj+bxZmp2EVHMivP zm$eU0K+CMCQc5TB>t{!Kqk%PhDSE5=;4*yKwq@9f>JzW<6%AbbdRo_`Q_LAV1_V h$%SR_Id=QS&EImILPx(oJmAMR9HvtnQv@UWfaDr=eAuZiv|=zBAOr>PHZ>CsoNDb3lSA{bbqLjXb6}L zjDB#DfFs5@qX|=j;s=eeLFm-gC}#e(%Zqp7*}@5;l&q#mmc_ab+tgO9{qA@JY;}ZyY?lf6%Tpv`fgV z);|cyb^sTfH2(nD9MZa8vm;mDz@=5oE-9w_We^W!1QNVHDv?KqdJg`c4|ra{3#uEg zcTj&5!2B#Bj>Sb;^?i5ew^{n9xlIn(?{|1kjIF28SOPAS>R&pr$#|v!&jYx~WRD7^ zIXtIm2Lge3uHZQXFS^w~D;kUL1W;#@Y>*KDfEFAuY~`x2T)+T;G7H~*E~jf<-{*l- zxj^Rx?5SS97*yUSaCur1;T!JgthK$pJEO_A%F1=Fi0jlYQ0_O!2=EI;zc1Xq|8Ta@ zSpgeKM_nf$BiUvld{!WjhPB|HOi4YeZ#BV}08CE<7ilSu&VIo>Su4E>fv;BYo#TRY z4}m4=RmBlSkJtBqb>Mh56{@(Y_9|U*bb(lCQSC!f#8&^Hy>lXyRz_fNRsB*Z@)m#@ zDIx+LWP3>KdMF!EvyWG;e-$E4ps_Dg#u?~b8S3f!=zO}Cz;kQX6qiKKJVmg@BJfuc zSsU&S9+(VlBF0ngt0lP$z-8&xmbMZ1jHiG8boZ#)mImy-(RU@C3<|Kw0_Yoo>&~zi z_$?pUacI?lDG~huzzr5)eG(I2=9~wFsDI{z{yR>wfyLhJiV-UAk zKp%CF#VYAh>s}<#Y;uSId@`hUZM_hn7F}c`AkP4BC))(rPH%PHFo-M04T6&*vLxIS z{O-Si9p8{uzH3Py0x>&@ZJ1uQPLjbw+P(=7lM6W!GvEIUSX!aP2XGgNhY8-3sqzAO z7lKzD<#?a1IM<@G8Mal}fYn3nGrD3niIaT#l@7U%K*~})pN4I~@dmU(;o~{N{^PF8 zbB<0}9s6l=_5nBYIEcBE0tSvcI%GjMvGxJ4ps^0eJBmV?mI*)?{+VPKM~9f-)GWj8 z1Ws9ljtShfr2I12DdKOgL-}$3E-@2Um?G`D2o~B`$fo2R#;y5B0P_l+*baR$Hf_1;YY}jZ9fF0{AY?O9Q{(iE zPH!i%rqBuV(HFt)aPiru@oSCo!-Z6CBjC(O*zQ;XVj}uyi61wA1M4X$OGvvf1^@s6 M07*qoM6N<$g6n-gtpET3 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/main/order_selected.png b/grailed_app/src/assets/imgs/main/order_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..6edb48c1ad19ae8709a57307cfcf5f179acdd15b GIT binary patch literal 438 zcmV;n0ZIOeP)Px$a7jc#R9HvtnXyX4P!xv0lSNPz2XWDt@C_X73rK`?)uD4ipCF@)j}Rvd1)spd zH}EBN@={7mg$~V;P+dBBZ<40H!J9Gs=jK1({R0P%0O%Dbsyry1gB%s_{CU&>FOhI7 zLq6o|lGB}tH~);TB2zQZIg>nQs7UM&(Z8JNKo&8d{?q+!LX9k9(RR>Xx(tS!zO6tw z5MCh=A`v3-uOcCx9waGpu-<`AXJg3v=5kKw67 zuh(t3h(tF<_FEDO>wRrNP%07|@MHZ%Fl)N=K;Rz&h?Qpv~9kg$;SP=W!hTa1g{_X6R gtJ`_b-R?8*-|@w`!8u-5lK=n!07*qoM6N<$f`4trY5)KL literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/main/order_unselected.png b/grailed_app/src/assets/imgs/main/order_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..54be32973194348cf3d9f4224aa4f89c5b45761d GIT binary patch literal 412 zcmV;N0b~A&P)Px$R!KxbR9HvtnK4TPK@f%CGelbptzs!QXJh4EXJHcvoL~z7fvrXI5A1CG3swp$ zSO_-uhm}n#vDC^y(k2o|PCSrHIM&S`?%`ay%non9easCE0bnC)HR`CHLa;+}B|Y=y z6OlfE`*%({Ps!~o*SDK%OI&>PO=uoiDtsj4Ee271NwDn;(IOopa={>s-+ZT=6_HZr zX0#_itLh~;^oe#}p9*&UI!f3z(R@B7tb}s})Dm7>LfSa|0FD926P?I#0XX6{&YX6M z$vy@km&>6l{n`~)|F_`ES)v>(6lc}8RyK7dtb}!zDBA-r3IF=XQ7|Kz);(93u$v`j z&j>1b7JmYnH5C2UH{HckoKk~6(GMYwWHnIMeM zNgkM1{FiZGYp=>J7E@y1qE7(q`nI#nR<|P=cb^~bUOoZ27()1smrNo60000Px(tw}^dR9HvNnOlfeRT#&A|Gj5)yo9Mmfe&d}hEfEh5pJflz0cX_ z46`5i{=W77*0;XPT5F4xk1b^?K8r$lPR2}wX@W_JlQK?3a2V+EPxFoX7))bM)hZ9P za9g8TFIb82K;Cs@8IZSN5ylyePrMu(wTrXW*sTiIT6iJy_}rjL1)5}!nZy6xgRBA$ zBvZO9Re>e2R{SWU9axPjQoWkXY|w*M3fNW&a77lw44Xl(RpQKYFlJ^xtWZE_QsBg} zVTLt8dn%7!AJhY0j``Zj{v^POU^MZjMeJqvpB_ASX;y`(HKsYEKPBvC;e`A)DM^wCmstMw(u%qGfI>GaTtbY z+@*kH!%4=%Mp<^6vADL0buE%bM6~(c`LbB{iG>X_97eh~&Nr#PyIvvM{Vv{22b<+2 z=;l-~amx9|Mu#7;A{A^d%RfSsuu+C1CdFoIT3BGCAMi#x*etzf zJX6;MD{OGq`T-xOf(@6l7M~C6(hx3@nc+p;qa7Sc1#7L$jv{`lvuA(v1E$A?Qf%pR z1LU&w$#}Fbz=cZC78e3eC=sl+FfS56)V_-u7{7WRv$UO|nt0X?5@z`VzHn+$q9B5+CIzelu(WcXD@OW*2^ZS9<6|f}O$B=e^sFdixrv1sb0m#(?nn7dKWXrzjBYPSk9P5QHISEdDq6%OhFo0J z#3cUYln!zsiB3|Pvaq&<=E!FrFcnergW`37#(6VN`S6{(IbLc4SHaqR8low@f>?(N z?JwV8YVQ9MC@ynVw6`DQ-G+ePDv1SZ>S^Z~0xc%QDQ3VE?EDEjr%* z^~4P2TG%4FyMYnNqQIoPvE6YCD^`FI_}_lW4l8{m9@$+{-^*1--UjjcPZD?M$U z=z(l$&+hBOK3Z1Rvw}Si_Bhgvk$}zHxV;(1U9*q_=ivCk@(8XVi0#T{>6FnrA_-Ql zM_hUtZ#&qLWS(^X=002ovPDHLkV1knET$TU; literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/main/profile_unselected.png b/grailed_app/src/assets/imgs/main/profile_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..0237411f7df03bf224bb47e467bf99233b74ef88 GIT binary patch literal 1866 zcmV-Q2etT#P)Px+1W80eR9HvNnGa}PcNNFK-}~~ih~1Jwgu({Pu+}8^4LbWL_u+;?Ew!`ByPA$o z*qB3+ZtK{FD^r}zL5q`ZXj#E369+0(mf8E#>NYm%D;vC;<5H z-Ul%U!IUT7%RGPXXrYixzd0#7e|fc-O5PO%le zEy0>YsryL&7(g5$C5WchzyDPNZ=H6XOjO{Isw!fKJ4~zRSpavb|FFSoMMM2-6%>&r zkJw$vrhgU%I1;RB+0T;r#&QKBA|&TT^ITZq z(6EC;_P0qq6||;;1o^H9*>fhFKHNxYU*B-o$Jcg0K;jV*UR}2vB1=o)*03%S3fBD0 z=sI>91p(squy{ev6~7+ll$*)Xbr53$kbW{CMet6}E%pPMrDhfm2W#2m1jZ^`sVpkw zL?P?g%@hR32RGlcma+J21lQI1w1)?Clg|ETvYNuK8`^&D6};lTiY>|q=pFA|aYGo3 zE(aLgY;Q0+a0)=I8r1|ddDpqVZCEpzx(|Y9s#_<3C%CgP>HNBx@Ri0*%T|Z#uAobK zOSrLc(wSOKW>d?WN&5%{JF1oyxo}~2zISFO^FgbygF`!RB0F9S$W(r{r!eU}-7f5D z0vjr^Mj$Wc-SqZWLH%_qUU#1-*;SQG{3M@s9%>6VVcGA2xV8q1=kl&|cYCmaY1wB< z^ws=U4&~kS*V=+Lhf@Efp_3E;vc&%}Y$9pD0U#0BuA}*^Gt#zYleS81)&zF!K;Cuk zZ_lz;>P3)Ws+>geq?n(a|3sJ|zLMf{_&Oa3U25OHlXufUY6~`DrM@TN-r&jgJbv}e z3CC&Gx~7$S0^lRT&{gtE$upBj+_qrXZyf25$75%fWmvgfws>PJ*7Yx$&bI(|DVgdV z5c0R2oAwX!Do@imtJa!U>KMS``dds6=G^o>%@hR32M34Ou)F&hgqxP#h(E}=&g0Ew zg@XO`meEad!#LR>%{!2Hiw}jd@cNA-z43VL5FnoqCNd&2dtr9|`Y@MFC|KXR_A>-_ z*8%HzhSy7i2d5{UKdoe$fuYgc4H`cLTCSbggxdwx&B zR2%Bd6cND}9WHVFDNdaor_~{4(d!oSWVk1~eippnMKj^*9Fcg-aCF zvVVPj5Y*L;RuUu?T_LF2=ZSna{oSyjkzswo+QLsle9u~-BI!aWA8WoV`s+M3$fZyPvw>SUiiMOLzbQST@#Q5o6YzG9}V4$DyGbx>< zdngJq1;|S!@VC>hGZRgE{p^-4yOL7n*WOh-{V*Xd3jB(&e#eD3iAb-(a>5Zs za>ThJGDl+Wf=K4<c@!+B= ztiB4by!w}*Hx})TH)V)CArQOw=3VFe%MO@s3mpUGv;S+*;G30`oN5lDEjwtXerk}r z8ksfAMR_l zJsFu5K)+@8#UM`s9IIY7nnz~k-2A7QNT!~I@ZnmwMX}1a@@`sn3qR6FhS62(#Wo0f z>I4(T*c@JF2D-dgNfUs3Nf

    !zCA$%JM96~qmCv47jVnsd`zKT^uFFmDXUgdA?{ zZt{A^IBr&Bs+qTDZTH(CuL*D+WMatvHw^zxm4Arf;bzT-R$fGg(c$%SakaI^oLtEa zbSvLXrk4OYSD|MEn-)vBQEXct^#BwDpteSUm463B@OYrg|f`!f(bhEDdm`VEtfz4I#gp4bn z{gnWB1Ztv%lHi7Rla44auzaq$C8d(07i(384rqHgu*J3wLw*+=AemoW^me{^YU0gy zl(w?AKlzo<#l$-Va&0ZxVsQyrum4V1sjPrjtv8^Jufm8U!c*#dK`V-*tPw~biA@mP zQVCi9ITE4Z=ef!BE)DCq(3z$B;I=Ha@vpqg^9bv8=^TNWlKJAzs&QTA7#JF{3>t^) z%zt?p8)_+kT=|PEUEE$c`G;9Gsm^GA&%g5ki7`F7T>c}CPx%)k#D_R9HvtnN3I(VHn4M&rU1b>OqJ?sDn`lKMDk;h(1(;3TiQTw2DKH{Yj>tn^iMF!IGfXAKr2WIa{JclmN zX{3`AXmF5A@CEzUgHr2Dv@a!70s|~D7TUQJRoAzEu zt?Vw~WXs)Cv%egg4FekEmGn`$H!oF z0KR@$G-&P&=M2SJp+#lbS&Q6`a)EQ}GrgK?`2R3$z3>&AL$%p2u@F;;l;pyUqDZ`R zCIb5|s)~pmamskrDKW$JC=$#CaB7Xj0VMgYPbo}}L6e15^}e+zQ*9ayft2P0dZwl( zUi536TfqA6#Oj{{Un0{qBm}fjqh2m4YzGz^kCLp`N>YJUV+au&Y169o8E{s5c;_HE z&b(^?f6Pk=VWS8kpu+x4%1}@BsL{i%`MTu{I4!>cR-0a0RA>~~frvjNjOv8vBg^GE z^FHL|4LB7p5~LYnt0A;1te>-xX=;b@fD7~4wSF%c@N5{}$I_TdNQlR0xBQ@9dim@G Z_!lG^8P+lx725y+002ovPDHLkV1jOiZEFAk literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/main/service_unselected.png b/grailed_app/src/assets/imgs/main/service_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..bc97c328ccfacb0606b7a9f7251cc6dabebf1a5b GIT binary patch literal 890 zcmV-=1BLvFP)Px&G)Y83R9HvtnOlfVaU93L-*e7r)X<8e4H2!;P}q{Ov`5-avKN;vZ{EDv2Zf{* z#ed2lA(%G^j4LC^kx=@F)9FQw zEor(yvZ2gjGk5|{F&1xnPq5tWeg&3Za$dYy*>>-Boo6}O_VNY5#lAa%;bI&0)(Z>= zhCK#?kqAa27>QEPKwvm9{C5LI+lSSR3Z6%QzQScA!X!TU%^NkaS`bM)I7M=epi3sv z!bEO>Z+Yz`ZAll+H(1LgQn|oK4V>P9eE@fVZzQPGBsMaE-aj>W??&1}JHcf?W3=5o zjYIzecqhOEzciBE(b#LGand^`YC)~z-~`ASo}5`+2wauR&|AOR{f*N^}+z-wWIs{$$JZN@2xqI$) zj=DxH-nbVqw)#4bJL~ zW1O?FvC<0jCc#R-i3P<;0|1f&u0pu%)}X;2zqJHB`}A>OaprhnPEBK_Os_I?+S9%+SA>Z^K~gR_qkS7lK*Ynn)`A5Qp03Dz?ydqt$yB>81&QY3jrRq1sst9 Q3IG5A07*qoM6N<$g19c7$p8QV literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/main/start_selected.png b/grailed_app/src/assets/imgs/main/start_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..eb1462051d40067b5b36a5f44b4000f1be414542 GIT binary patch literal 596 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 PL9 z3`dDuN$89sv>wqNZLs2Bc``s40Uzss=4X}X8F7yEZ;=OX*PG=>1SEFs5#Oq^6(C!m zR{?6o?=3k{mG$#Ce}-5dQ~&L9Q`Uj+j4pRdSF(SG_=U4uo})mGqO{tSN|*4D>h|nR zM;CHF=rH59K-6u-%r=5+2t6Z3$EXK$3M@U3*X8%E&3AP-OML{E2eD z&*J)b$#QKN`i`s)a$C)VVxlR?t`d{MgC@Um0NrLH4HTJorDuBQhZ3;zazif^RFL@~eb} z`tQrTA^pVD!IYlIm;Zj#ui8J-9je{X(%XCRBchQ`^&#oE$(IU+T@?8Vpgn0WYpA2N z^|W1~eOCX+Po1tu5c69B5FqNmGh(DO_<8nXR|Qd#=vAnnA#}AnMfxHeK)o}qGT8^_ zDlv*q7+D8mr;*5Zwl?NJFm`%l^HvATp~xBvP!x}9JycF?jAx(K|M^p= zZSP+M-Jd?Nirpb3%Lhr850QZ1l%<|$qp2YTjXEnXT-bJ*NR+qFCOW@ zmZ!4E&)64l*I!p;m_J^hpJ#faQ>T*Oaxzc=pT&KM>{n~5`d|J^xx5>41%-BGT4}et z)O7WxEWfCIk$20y;$eYRR4IC!Hg8=$@i znU9r|El@u_JnJQa)&4%O|F(Wa{qzFo@yAb(Xo8Et;kq5Jj|!0^oI=)UTp=f$kMyx5 zsM1>W-gYLl@{jme;b+}bjUgEKK0L!-MZeMmVlR`+PG>3>K&?Q5@%>}8N1St&xUOT$ zwxvpqsJPtd?WcD*!unr6fqK3v>v{}XKbE@Rw~MiZz;eBOQ&#jHhydTb^|>E=7Ae%W zwztYZo9t;MA{H~H>k&Wvbw%!xuJ)+UnQa!g53#@M)VW>*y5L9SsX%)~){V8xUk$qc z+wne&Gvo3Rk=^-SlG6fDFMc+g;FUi`R3}mB4QSNM0+V%G5IKd!jE6n%!oD4ge5tjI;R>8;mzPjd+_8KcM4^z=o2I_*LFB5Uh?_9p3)FQ2*`n zA`~7bX6q_Mc5#eSM$y z{rDDtqTGn~iP^6_zl`Vg-}W!(zfdky>z^@4?;6gZKI@B<(e2*eVIb~Iemq)Cgw$C_ z_qN$MkfU_uOAB-^6y079)YlvN8GY`;+m4E?ldmPd*@^a* z>5t-V^=6-ave|8{!obeTJ`_Wk<1hNrhvcYS$R9Ymhh2GJ%D4x;vWb{mZ8L(BypS{K{R0V+#;r~eN7~4Lt z|NU}P*6!wYh!dLZ+ZkupkF~ESi>T8r6#a$5DX@N06?FhEE~Cu19SDHh1(#^jAUc8MdA! z2Rz4bPuVG<;;(8nA2RQ6Xu*KI{*Nb%^=*^mix_>qo3mYC1YK_hA9;b3flIb|qw|$y zup8r1ex&=1QdLKHzKzH}i$?9e&$w;1oz2<#59z<%UpBs8XY{O`wDzwPM+`{o-+uYc z`lF~fI#w@C)=l$_J#V#`96yis+gZITNPTJ9oufm8SMsaY-Drositxod1hDlz^Ue< z?zRt}1LN^zr6Rs zJORe_@ubXr5r+M(Qy7IAiXoZzIuO{2>}5Qv%P3tCzIZ>CK7em<3-}mswuZ{}9H24guK(kg->mmfwDUdT z?R?8;J04Az7dOmjL(0~1y9hRK7d-m<#;UiW*4=tyKeMG|y^U&z?8%t2HR6|_d-jKq zGM?(k0#?y@zM<8*qrBd-7bzTxFCu|IzV{X*B@I6Qs= zZMiqxI#%iEo-gZSQTJ3`JnJ6H4<_T~GoDB`>u{=rdC*X6&&I3`Z+pc5D2`sn`!ixE z<5Br#`R#n?S5w;;Ek!{=DHe(}5xpWHh+IT!Knz$Z(u4p}AcBDAf^LJCPI>=gw%BlQ|L##rt3UUY-TK-n zG7@OZ!M3zVzsfU+z_&3IzMu75oH3NB3c29;NjN@fa-K4Ctgn<9A7|)LbcL5Bnh(qh zJSUM9A3PaX8F>(;p#(Sli?wG5)|DdP>RVehuAbSTWbtMc2N^lWP(+z{9nXrO2-da1 z!2u$+;n(16C!niZq!~~%BmwNs7Sed9@3k6`QQV%pH>i+WFK zphNM2P(Y+XkhGoum%o{Rf#3R9E*QgACpml);XXAQx2Q7-7WaavHWfT-@+-B^pi(8iZ=&M&@z|!-);)lm&%YzdqQ7>QBv^)U_}9o{_Q6dK><=l>DLhUE z1%KAVIJ!KLp?0fZWiBeRq%4#;Q9`-EleKDbUw2+5**qURW_mQ7%G!2B%~En6Hr-cnoQHb z-oI+@CK;Hjd}EeU^$M^&e`n?#@m0((y~&VEX~u`i#y3iJzGB_pZrHM&j7i3=3Ke2#-I={R zRtOAJAzKfZwXK!0oY$lw1%>qOz-oYJHe933LU>5$S<)a^ai=Z6@{mipe~u%~rYEgN zd+qLrmS@^_9BL`6j+hTzpbuD!|5{DsxoiQoVn5B&erFt(lZprEhz22Ju#?y z`Q+3e+u#GLQ*qMlt+BKR>ZINgetJSLwvi|zx4Rx=jj!F3#Chu3$tuAiam4UE`#mJ7 zbYmWkMlp6Z93VQG(>vbRnBNxHrFzb2(LLF6!}~}ouY9w4Kod$p^*l3P;Xx~3x?O%( zx{7TBr|a|E``!<&6`7~M<$xL$h`mO2I>rV{i)bs(OlB`*mO@r7@!adCGwy8e4%Xyr zUL0l%ctrAl11ZL?)`&fBv+sO>pguHzAhPTt)~h*vwyCX_rDqbLiYSw^_4wm^@MMvY zDkL2PcyAN>G!%_Yw%z&FUbUTZvr7>fs~ore+oyz`n+XJSwMQ&!(rHWZ?s34xdTw?y zx2DzhH65-kpjwmI^Wc1kisM0<^IC_nB|^lb%bAhcM01?4f?59kXPC|V5Tki!E!|)R zN77e}WdP7Jjj;A!e{7qbS64sZ4i}KeuU|}GIDKSPBr>mOw{ZI)R?N-T-vd7gU#}vt%eOa#BX+62gSp{lcstqlw%-M4@4JesE z4ARN`=d2=l*B-5Qfl2NM1fg(OZ~+p!MK?v<<@_p!y^d^@zRcLLF#y3_@#nXi{2+*) z!ovj$P$UM zr2VR>x9e(j++dJETzpKWvC zaeXp@Vg*sV;Do zFKgW5Rm34|la5kX-`#M!ysczq8YZFg#S!JNqXgyNt+}!abfNHE0xxZgvjnDcNX|-YH-cRIq0g2j4 zZDdJOVXS)5QAfo6j|Jc>5i8olMOI_0$(yyEd){eoX&3zLzogC8`-CZYSjv_$m+ARq zWg#kIX6ugaxX+DHUuYwYR(tssDwzAvEmF({sf_?^f==ln#`g~u-{Rge;u&{x5B!Dv z!rib&4lClp;Qa~aQ%VETT)2ELs_C?-J|$|;3C-^KtHbotFB^IeoR!i&4k25oY8GjM zhU+-8maCcXlVH5wC;iX@ZcE#ghSo9$c-7US2m-ib30B4*J|L39AxGCN4#+_qecGWik;LKj&m+_5imvCVSHBU50g`G?*s0B1RZg)ml35xZXY?`k! z?_CYqK}O9PsVL08OLT0N2ojPWbZku(vYfI%;tP85yVv_`vXlUYF(O)^Vw1AmfzXV_V4yjYKp4(H<`L48`sj`R7ZqTH~ zvSHGDpgku}Qa4zm0{Sgf|D0|F_F$e4&0e72X{=xT?U_+hpz^NL-O1%105|XS#5#@~ z^uAs)B@JFYOd#Iz#@e*_n|+UIDUe~K!AgQu%rOACT_nTK0h1IJWDax`*rVz^6V!- zzWnw%9?KYUPByGJS7kZueDw&>!$gy@lm2XVaZMjsSk(|JL8r}rtAo8%o-psX)Bt{@ zAh=OM7x_UpT&}jnvi?+P{GCVYq^`;NANee8Sd_9s@kz% zhA6AaLdI^K71LT*x00y#Z1xN3%3Gib7w9Vb&5a{8L4DT@;F*bbX^aN;;~hq8eB&a8k|0Dw6T z#-fPweG2h>Bv9C@~daIMLiR(@?O{yZ|(OlW}#Eecdxtma6GeZ`pqdaf&L%Q9r4rNAl=NYkia{sT@%CAEj2@ay)n( zYL=-z;rYUhnX?gYe;E?H@0-Y@P>JupqgGm4v$|4w@)G|f^7^`9kP)Y&y+a zj=y=^&aAgakRY`n`6-%cN^{JB_$4hWK5CckogU@YTZ-HUE2ZQ4$ovC7KBINH08`AApurte_->Emp8R2cW-slF@ z9n`aP0rzu)O+_^Rlb04jRLFu?ys)FS8c4W0GO=*c=n6V;=!4s_3cinhswOQk_8b@Q zG-O&|4l|f7y7z?5?>93zT|S)^s8_tW@Qb{4yLejYua5_S#QUvvs@(V5QdN8R*3~l+ z@6@q@*-&X7Wy3u7ol!rw)f&{1r4i|O=zC}P@{!Pp2>ojxE=pe1l{HPB@eBj&Kv&-Vda1RqrY(XR6Q=ok`T^yqzs0SesV~Pm$#~beVMnhZ8j;_VEWGld zW5)%gu+{e@9aKTTGJ=-#W-V@Y=;(Lxy zdRNtBVNku}?W>9tMxW(gQ-2?b3)Xd=XUz1Gf`|M~*9Zh3P*G6|O#?Igc3Ftda<>df zDQ*!wA6tK~>s#~_dCQ;QL#nQKZ$CeeOPXd4L$w^3bJl4xR!!OB{3JDVN8fPkiYejJ z3392j&M7jM@&}pT*2xCvWcCtBo_F*WOj1kZ)=+7HKKirT*u`m1YbhiqsM}rH*@Wo2 z68_H%6Ix5O1FNQv6;U%EO_b2DqM70B@u33s2Dij-DjVJRfrl=aXm?)N>qk4-`; z668Rh)V7)Lp*Tp?TL;-iAGB;k)v?t<_3L_9>d)JSwDCE%%tJRqK!+i>J*Pi6-JH|Z zH`<)Y$>dReT_eM6xOy2`1vS2Ed40jvvUS(jwcwqdvr5NeBLgfC9$8vJ0Sq+3e;ISG zuC5Hi#*G^MYBKPL(r$@){}*v?AbE~?1&33^%mV9`YAl6D9opr~Ye20%OV%>hMnM1W zh%w$k&Xhq6z#EWtQgt+Pa^7}@H+t0+z@EyO;t)tL2T(KL#c}cK*x}e845xON?qDDjuT@b<$L68;bJ?Q{;ItmO??Ruruff3_FM^j&R7I0xQqEmFeB6(mA(u&-%k`;6-qYO@Yi< ztx+R*DsZylQ2Ol@$6VnmSpzG+QWpJ9V{~v_G&)Wi7W!ZZFPf!Q-}#SOnVS@EdgX-K z`ogJ2JiRa(QcympYY0eoZvJ$~v(@#J>NqE#5qn*%AThTV_`^XzP?E&6d#KWt>@Z6v zc--K1)heS8x)B2J=J6lvd`4MfnzR0Ee0*vh%jUY)ZPPCFVf}|_r1*>2@M`SR)r$Uu zAelPgfEWCBt^%l1lCDs4;*6c5Vn#yOOAEu%KJ!o&5&@^wVF1yrCDrUF+nDq;^)68+ z+g!EuceiiQOwkw!1tA48#^XcQ*CRq{l?BMOcz+3}x}0`2=)UTQN}&rY3PU}VOt$_OX*cOfr`=ja~m+FgxZd4#U|}0yQZi03?blE6zQ5_#tSid zF^*yYuR*J;NP?v>-3Gi8H~!h9G(-d8%H10#asVp{hBW|625y1X0P_DCr>CW2&hAYi z<;}Wodc6SGnLo~<2}2P2Cdm#S7v${nvL(5EzSCFlc~f0dhf=4uLt&2`yHLoJ*Iqel zruGF3i&g5{i)GI^8Gvnh>;-;;wVt@QimpU`p-CTmF$m}z^-ps_!ax5`*%X=$*#&=y z;C7Y|4M@DUMq$0ZB{*wb_w<3F*mE$9=%>#!Xfl?>C%k%W-fPOl3?(KMR+W$w7-O{T zU>RaHd34hKL+?+r>E5k94y^aD=_yfvq`zyZ4FK9(gnx4o8XFNGgl^POj9tZQ^0DNU!Y?f=9?-N_mUu30gVb zeOme6w?s}^R;|vx)mV8tiav&Bzxbs65;Xk<`04$;Ds(vH@GRvETU3dKFH2((USEhC zJZhb~w2q4GCw=)35x|m(jX<>psyJmmY~}JvWQRL*ZFJo2K946javS|1;p?Q!nY96T z&l|-mgCpOIo=u$oL^Fg`$c`Dt!9YdfXye7+GRa@6+TVSXYbv~PZWRY$%qj&DlDopS z5u}jT2H0E|)BcJgcp_f>v3zc@bMBHBvr}UfK=-Ju_ULa>d25dfj#aDo9n;*@$#jgc zsz?lkS1*X(&BnpoQ6~M0dKq>B5z6O&*i9=}`z#3kvR#5>5ZFyl$Y?LGb(evryy7a4 zP?4Hmnh=1spV>BQG_MeoItnh41IrPU5-h~Vio|%#Z39c=f7%u}r5lX?bQz@S68Hty zBH9x59%>7mRVYJC8Kzw08HUAg(QQ7A=l1?4@X-qSJJQi|OBc7?TfyGY$ z(a9Wfgo@tv?j^U~h!oC^pU{bfwOerv#E(tR-pHMBU0IW^$JyHl+t>Ua?PVin0nTs0 ztj&E1p&dk5y11#y3DPsY>u5Wp>0YzLpFGuq zoSBUiyxLGIogz$*3Jja=)p;Zwpe6qg_RwIQeJI1jWlUh+bii-R34WrsASrOWJ<4|? zE?4j)o$)7xgvE*7g!JD$`{2YTSE>g~8`A9Bs;mlmoZ)a-HLU3>7QXexX`y25-4#Tw z{Zc#ldg%9Yd}5#nG?o`h!L zFwNx0`{dZ&{Hler3l7;4wqTF4xlnUf&Bc%7&mrbp_WI5j0i+TGZH&P)g{*nfG}7>^ zuc5f3;pjh@weRidC&u<1tVXQ@pa}l{Fz!2MNxyTGPR1=bNn*DTL`FGJLq}Z8!3FLX z%wI+O_mIXP&8+>IzjuEFYZ0wd zr@YCt8SXfRT@4%ihs=BVL_C2L;<@&xAYJJ(j5*)E#9COA%T~h_cN)Oy_}yJgfN^tY zgg<#I5QG|Go`191Dr0M@U^F=OVkleW>y5Bx5PwT5OVO>f*Zz`)T|v#Y&O@!g=>--w zhN@b8UUuk2!Jj_{`bs+A9OZ9haHvs#@M{1Lop8D6aC95WUWM+NBlgW7%Om%hSiw7U z1OigRBNSw`1#g~AU2cl}(OZmo*)O%*OCTG#WMs6YC5!SpGBYgU&h!nI72GUsQ3GN* zsO-3la#Bhvm=kPadq2qQQWI36my&L67tLIzKILjV!~ctwrk~vgtw1kwsUouO`@3wH z|E1PVc9{api#|DEPQWpC%>f;$SJU48`+OX5w~C7ep$AFeLn3j2#C?=<_Tm7}X&P~B zfGxyfKLRETlGl7b{t;1?HO;w>DIP*$7}c1tHiN=CRC`yd`}oJZoQt0yaR9WhqOR}h z`U&Ve{v}(xg?BUmVYS`$JaLSGkoJk%%fqpOdH!MprK=d1SlY34PKuyAP28CC)!!m%U}II%{+Ep>w$sRxbyx}~1p-0%G>XP>jH>Q}Y* z`QLlryKm_3ySwlEpJDIXRkiC^RePU_=^8D+eZSned7fUmu}Ob)wW2$i=#G_)zf3pM z_$M;{)-oQG@xQUk_-{Q_Ho}3qPWhjCJ|s|2>Vf%OTh|(3DJMl}ZBZVk{*{hc)9IJy z9nNjYd1HzF&c}pE>A-QNPb!<8w?o#q^9KD(rsc$@dPrCKH@3?j)FXj7B<#2!sT5OQ=X#$p3RZe<`aW=gt} zWjQG8&iF$o!F`=^qTeg#G(c8us*a))xR{c2WOVEuM{Z7_jtDp=132mw0w#gxsA_ML zdzkA`;Fmh%7zGZx3OZO5kh=9d=Q-;Q^g$i|QvWl5MAX4kurCYpE>#YOOyGE_lPvTw z)QlU@6m_I`)%L0i!qXZx;Ew1MS(2^6&MY?PO^UK>V zTkSt*p9I?pa0r0dmJ+Dv15T^wSHuHe0#P#)$$a#jLjVT_XCFAQAlnue2~Nz8C*4fc zOVt6LCk#Sz0->x4@J^b$!|6}l$aqOo)T>zq$^v4GDcd7V)U{u1d zkF)ikdGQObZa`#6S)OX)6M2IGOUWK_wJwK9SOTtae8h(7>O z=%4Lp_9vZw)k$c3jy+XjVcE)Q2hgFj=>~`tOkCW^Gww4uzctHDC~t7?30VC;qZ8o} zQKIAE=9t%N`=k^w({T+RlY`gYq(AF0k8idij#h$B4aZJt*Ig$Mx`kPrW&Vs(iY@&$ zflZZ~bQo=3k7On3QAur34y*&?)?4NbRk=I1y?%N&zK8!k{O=h5g}Kd*+7GuYHrgX6 z{FC#vTljx)-2R#IvhTkfXXp>m6)sFysKBiI2ggotmuP&^c>Q>EOesrU+~x?zY`oB= znMueri7Yz{#?f&`je%#klmkmETV{>WVSuA?#@iP2scNjvx#&pDAp(zNL4*3bHRsa_ zNGn;M<&dNqWtP9?-*m7j5410*2B;C1=ae^UbWgTah-DproMeeEHqJz_O{Pl}f>h(s zK_i z-#0Adf7P>1?;DeQFS~*N75&Ue^zU5BV9s;}%11vTKS%@p?NQL17Qi}}VC8U3tD$4d z=h0Iy8T@R_EDMGT`~)Y^WTcSA2}KwN!$U`y9TnHp$(bq2C_85FcRnKvW7pQF;G|(c zbi>9%t#Vvz=NAo!X@1o=rIoUI{JD(4rj3W*dZ;ZI%)Ss`ECsI*v18hWGIAyzSwi zE(-tU2DXiH20rW%{}6x!{w3SxF5rKp`!6qCxH7?<=`xnGY(5D6^eEdM(}4uwo� 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

    sIzuUm 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ΞD4$-YpJ8WM$OHZIn|Kn(o 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 N002ovPDHLkV1i?I%#Hv6 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/recharge/dollar-big.png b/grailed_app/src/assets/imgs/recharge/dollar-big.png new file mode 100644 index 0000000000000000000000000000000000000000..8cdf243daa2eda2cfea41381b4753eec3721e6eb GIT binary patch literal 15136 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/start/level2.png b/grailed_app/src/assets/imgs/start/level2.png new file mode 100644 index 0000000000000000000000000000000000000000..9505e39521969e186f3be28f5fa95dc36a7e687f GIT binary patch literal 7321 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/start/level3.png b/grailed_app/src/assets/imgs/start/level3.png new file mode 100644 index 0000000000000000000000000000000000000000..31f18be23d1fee7dd0cdc9bc141656701b6a2eb9 GIT binary patch literal 7888 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/sub-title-bg.png b/grailed_app/src/assets/imgs/sub-title-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..70c3272b4583f4d76f0cf71bb6fb83205b45c9a2 GIT binary patch literal 4121 zcmb`KcRL#lpv9G{Rkde~SF30xs6B#;U3*sSQLA>vULA;0V!T$US^AdP#E76VVvlO= zy?1Lj1h@Aa+&}K~oO6E9Ip5&K8|rJ)Qgc$1kdV-7YpEIkW$0fAQ{MZVim98w{({O^ z3+hio!YBK`zN4P`%>M6q$KO~JLQ*xtwez>!byd+*At9+n&=4KSNl56bwAEBhgYO*V z9w4lzZ17QAd0|@)K`ueq+{yzO6QE9(o*s0ZNNrg9I}HuS`jVKjFsN6hmorlSpe}m4 zN>@l;%%41APDy3zz;k@>>@g)DAN?u0By0Q>_3Oz%M*N~pwd>Z(V%USFrC)gpm_2kq z3LB|)a)rWQj9|A$_UC^Q6!W1E)s2|{-?ed_P^8ER5j&;n9bb*NAIY!OnhC=BD9?f{ zS0sv#c_k)A2=u_{*67?@x?#4LH<{k=;-epc4|DJfyJs0~E%LBLxC^M|yX_M2KsQ^& z?c^uOKhyLyqVV?g_)Aig0S9$`@UHJ3h`I9vFuJBUR_EJ8hmaYsz@D5sc-UNyd+RJ2$rvIMa)$7Ap zNeVE1Qq)lnAy^lB3v_(@c1XJTMg_JA{Bs}^WM>jP^ShMy(_`m{2_^_)>a+9ohd`#? z1N7=2wt|>H;Lp#*&I)o*BNpcZ3S{5iCgZOgo7O9FD=)>yZgV_N1Hg>Il_EK=!MmoTYH(Pc2u zSE4fWeh^ezvH5a4)%Q49KSAtrz83K@oM5JP8n^zV-w>ZKk3@f!IkN8V*8C3(PN@7f z7OiXV<+{@BF?B$yXTy!j8a98kgtfh7{xDW{eqO3dbnG(HcRAReP1oGoCetSnoH{n2 z5UEVT{1md4tII>^95uufY53A?4J}=H1|qBUlg5f2@)TPiuTeW9T1_92xjiuX9?I30 z)U<2JK2Ir=63bNg+ug!%iLJ~aLVN^1IR+G zVSP(Ph>lT2uS_6rUZlE?Lh=fDc%xsSgrk$5WG#inu-D{$%t3GS2=Anbh_47&vb}7F zgxMF{-xLTwQNHP|D}{$14p_R|I8Ba-W@f{;Kc3YzW`Hl-S7yuVJ{Y!`PexDm9)bPK zezOlE>}fpeW9iC@Ju5S^vWDx0RWJGOHXa%9=@9h7HxbW);en4py8mU&BG)~KI)Txd zRct{x-QCEfxqNm2#zA(3TY~MT{fs!kJI0eE>!EO)I5@m9()m4=v~sMoHF=6ICRndGQstC znLLuXrm8zPSyz>@N*DQZn0Rn5K7_j)xB znMbGY3tRdD4fPtf-ByB&vQ8$dulW}4h1ntW9jgsohvnkhsJ_vnW-b{WWk3!J4YYHN zMOZIfv1ZLHzlD8VE)WKr%U%{wB*^KvaJ}y$>+_5~=#XNU6d8@Yo|kGJrQa((?CKMX zVi5-mObQ;#LaUr_cpn%hfxei21I6$83Z+h;D(`WpC$l5x#V%^?a~`&T zbL|YNb;)D%!;8p6J1ARK-CB}C3TT87sXRFbxr29VFz?+^Su5dr=KX<9SE7U6=9>yzU>nvj&be zd=MBAMsFK2b9!-vKNZZ8%^>qwMkl7NiAQ@bORRC>54m(y%=hA$04@G*sLeC(8X^jX>}G6;o-v({%4`Y-^%JBP`}4vdhvrPf$rpGaA8ja z9m|&PL&Nq+DTKmgl!- zzwu&%%fIHw47_T~9}!0(>%`=q%`Mr(61iF|$7gb_U{5-{PB@MM0l$@G_o`?>1m$e? zzgIwjXyTVLtY5r^lm~e=*hZT1dN`oSoLtJX2j3sN9!qEFHSU$UjjOCmb>wq7c{Bz9 zUH1gg_J{iS`m2uempobbM00%F>b0+i+9_@P&n9?ta|$}-C4}lw8RYd|b)lc2XGt=M=YUg5)=~EI>FG(~ErCG{Hg z-j$9+o!N&${Wn-{XhcB0Em`7K^RzBnT0l=aLwW7HHph2udZiL*6hOuAF!EKyE3||9hFBQ>Q zsr+32Z5va+T`)QagdSY5d;eIlRDbVHIStbxdP*UK9RhH=|r^odv@DC?OZNdnr|QLO$BR)YXxx!>h_LRxpyb^i>r;ZGbAej z;!y5J(;6X!r}ZB9E`KyUFxHF-Rdj6Y)T%vrEX=Yv{}vHi<#&l|+7|J}w=>({ka8UP zZeac^sYcLAe`l?jh@p{*NlFtxEP7nwB0It8o^t&!d2u6`&XnKz>!I^d5(IbDN^=_B z=GXS4$Sj^T@snp{cB!#{W+6}@prfX1DrBV4FAapO%;((~?EN)Z97`Xl$I8?(`?v_% zQJA~ZkYuDaSL_-ntfECAjB@ZzDj_7HkAiqlNiYXoIo zh#9hBXpJ4r9yed3_cp;S=i>U=vtG_~tO-ytR)3W6(e`Z8Ns;GMm3DDX_il!bJ^h86 zw*(AwafoivPr3Sed|s|Ka^v^t>u^>!HTox#+|Dbp0LcN4Q?RHNwF&AdZdUsFea-f) zS;8f)v-Tw@z>l)p)a-2PQ#JNx35IB{fJ}LY2fDZa%u|TFU)kjdfORL3QX@$r^`)yu zMeeJ{6Z{!3eN#n7C<shwHLsDg}<% zc?MbhBY;%H-t!2M{N%VXXHN%w7HV9o^loRZ>PAPXD@yX>cNTLHGVCdAc+Y^x3*_R0 zPTkOadTjC#=Ium*3S5XA_dQC!_G8&&e<{k|$5t^N@UlN3k!Dj=_4&zqT8qXe(y}~w zl+~@}ajqk*e0W1@k8@fhQNP#)Y2K<~xuQ)mYVwXBVHw6sYXN3l)Mf_4Kna z%Dqf~p#rNJ3&R)MrcbQcs|Mxj%ccQY*+W>p^vfSgP#}I=QlLs)yTXJO;7E!u_J41V zkI>&1dK@Sj{i#4xJh#8ocJ7Um(v{SRjl6n z;=6mCaC~O1V^Tk;BnQZWIqi<%Wa~gdcx4U zp_sPn=$pvsFFZv;%yB3!2jUKi%JU_$>uEG>Uz}Rr2q1Cn3>R*H^28*uVcD D=)GfS$jZ1Ntjk~+MySux)7mB+S-?+PLaf;gpiaRZ?rMR~Aa?W|*=lkx@ zJCn?0WoG4B$x6mp&sg*C+TR}lbOjlC82}U%008yA0RCU*PsDVFhJP%h9DulKf!zG{}%&5LH`^3 zy8%FXuLF$^gZ^Ia7xA?R0l&LP*1@=(Nq}6hmeTv$?FH%ZMriX^%KsrXg-feO;SI=y z>%pplI2_RsH_H*HfL&Oy!qD`rsZ%Mb=_Wph4ogH^4R;ogj!1xg%(;gXCaK~iBw{Af zi@xzwH4*Tyer|G;Q@R4%>2V?OCWgbAfz?j*R%R)w`K%El!s#ZwAOs^) z2UD1+$Z$V)$tC1uZLmz-*bd{wwv0I75veGl5eFyHFlqd(Q1(GnyoiIt=92N`oQNSb zY-KPA5n(D}@(AFF{4o#m*e&^Q`Q!_dEfR?MiI{90oROdjcFu@B$sRr#IDSO5J#oIy z%LytvDi#4;RH-lwELN-$DvVwe(FF#K{2G0h8SjK9Y1G<_$K`ugW zkcM3F^Q?@N2L=)3fWb(DoV@pu-wIzrh zq;)gqW3mIv!SPTaiVYF7s9a?W4oNk_j|V&lPgh@ML5#Kw+g|EtKUPmY>?DYU-I6?r zI;L%#dnLzB*Y0@UIa*Nm(w^R1jc*a%3wEopOc(wb==I?rgFJI*=L2ZQs?_++YWb~d zO66|JPgrN8^IzzbMs1TXp2js_@bH>ze%TSEYHl!fKp3QZe>L2MBC5CHC%x^)ami6}7hjD@A!@F!)oQ&-#TdO-E9L2$@FCiS+x z^xRC2KKdc?N+w=13Q0B6INrHo&3=vgCa5_{Y?`p{w!icxNCPEngU&P@UY7N2A7Wen zb{x8KVSbZeNZ_G&nL_-FDK2G~SO>eQ(|7<`CVpNuaDdC+`}c7))%AGpOV1!f{h6hq z#Y{LJ@=%>2(Vy&c*VyWd&c3NVPQSeN`~K_8>8i^e!9wA6PjAnBG^}-1^Hz)uf~cy! z0)Cx(A4JDI+1aNvRox(i0M`|-mmO{0${=Lf1^<@80F9-iem~j%c%DkFzKR{CHvFGtU%T(y{+TQ zni!~ucfc>nYi}oDG_Hcuxq?k8u{Y$@$vYnCxWR#b$@GY@IqYhV`i~itj zWi5u|^M0P&0sdHrd|HANxRg{kuc)!DM&3f6DL-(Xkt$AGTp?ydOQnw687buml(giD zefGVsov&fsP|ML0Y1p|~*~nhoF;QE*dsSPI)@*|aNvK9k=7t|jY4ib7in3m24kMK4 zfm%%%;v(=LuE=`EA`#mZjsefL_!Rk@AH_56^Y==K0K!wtfRTf=zAMEZA7gM|UU z)F}4kGU^_@%6h9U*h(0!`m;f`KPCk zqSVyWQ?9}<6=`)Rf-|D&vd;ppX*`9r%x@}0hls(dh+IeP*k;C5uN_BZ=C9 z<>~UG5+49khAYK|x}IbkW6Ts>TF-zB4VH(!OjxX{gn-GcqKV9-$InpgSr2S`jI|YW z@iWK}jD%nxA(DAfeRKKw%a1kKsP9XwU*yHh5i|{GodD$GN)X5pJj}vwoxWPS9dIMg z%p%r>QKw&z*#$1aINB_yjNPsX0GW}{Op&M~zHP4(LouU<3ON$+-utYhu&xmewYIsS zB}NC|6{=wr^)Ua1W&JeH$b$AyEYuIL!VOjBhsJl zk^$ty;=>(=YTdeF85u3oAe<0_KEkL3_|o)|kWBO_Au~P8F$pTzq89?NnAlf~F*Z!g z2yz4&kOou`(R?;o>??JGCH@dbf+ae=SP@`G`H~9+nzwmB*QN(3{~+^7NQiFN%E`$o z4SpwL0hjgM3PM7g{|pJ~gPjC=6uXkfXgn^Hp4;wlG#Zm$C`gr<96|DN;Qd2aM*oM< zVc_1!97xFj^8b4g0K|aBB!|OdSJy~^N2g#D*EDwz#irzt@F;EuadJt9%~OfVXjz1p zv<_b3;Bs49S-X8sP22sSp8-Y`8hkGN?d^Lv+2*6-God*W&F)FTr-SpOQUl zM@#(eXwDM%L-#}NL+yjB@J1wVX8#-x6&vjS&+-?rj%lErp)}Km zAnuiN6Cgj+kQ;n{R1u@S42OSvOZP zJ}D1W>fZPLUDO#LGnS#PMaT7!ug00a)`5{^@x-2=8&*wYY!q@E9O2NB%Y&h`^(oUYJQ7ijETxP8^&_VG=j#nrdBD-!e_j#UjG>p z0n6in&Ch^tz}qcg-juNC1*JDTLsign2Tx<{s~-;r_mm*PfepG;_=3PULM7>W6{t!b ztv_l;l>_}Z+)V9*Yae4HX{Cs|2KPtA7e{b{%I(~N;;qYI&m)B+KUd#3X|C4h%V}Pun3Gz>YPu{O1V;D!v#%kv3>J>=ZCTj{? zno?%P1nsf5Dr8!vS8>updvK&par=5gMvZ8!`~<(VTMITmTfKcfb{q_>$IP!leD_!}en zH@EONzIxM(b`&su@G`%_De@8$I}j5JVlVNQu{h+?scyc zj+3OecYFE}Vavzey!45?;*id>YZlcxiqq1o~#T~-~$>DD;J~U!D$D=xbY&qqfec06N^{p}-#EB#S; zW7t-!pMpYoxcnQ#ih1eTuw{u*i|I?glVE`UtvoGmaMCZ?bpi5q*=1Ue9A>x(@f0xS z*>af}#f=v!80}S3%8P`}B-^M3a*V$_2>rl$SI(Tb^6s+Li{LrI9F6)oTFpmnecwiwFf^j`cGpP-ZHY;S}_j zK(;zUGc#tk#!`WxaJXihMn>a2u<9j=as zNQ5>In;;F(s;b6ZZ;`mM<{RwcC6!cvhB|KEusq&I3+=Pe>)6lnKaz9%-M=x)=^Kw{ zsiuaf?gx$MLgUDot8x7GP2@aaSc5 z*!KEjB2>yEs&GK_Ua^CAoawiU%;YsknhQtR+xX&fp7w5%jZ{Z_!7j$i{Iq#0was?= zNja09SQlT#yURn@>d1|u`@ZSqshMjWz-!3K4;!&dMM8Xc2+3PujT?lDuyBQAGxRqD z_LaIPovX9pAq^!_eT20H z77!10nEhMj8PTkR%3BGng&1nto&SK_u|#OHY>jmrt4%P38ClZ%2$~b1O7qdvFdKgC zBj^TL($c(Tm@DxAoGu%O|3${1vOtQWxl2sacq5}Z^!S~aMD&?wAt;0KSJDR^2c{vB zCAW{0Z<9#B*ay#GhtoX9`!G^8SSWl3Th`LDoqbc!^y~B%l%v*DtsMD76BJ6n*^3}X zbpUzN)Iz)IpH^*2MCb3FhB}lOZE#wV*4gUQ-d$gKH}RTa@oe2?v_NY&@!9N&XYGH* zfd9Mr9wqrVs`Kv^GvVEMO}-KjDkmnBkxpQpf8F5r(_g@UBVK5zcWnXoAC2NaApi;k zot#}<-P|2?bsd^g+&s8D&nEW2BVJK*r8oE>v?-D@EYXl&s7=ZKl<#sTgo39e5x(fX zp4~|scrx{Q(S}9oaB^HRy zz>!HTs#JNZlot8Qdh`ee3P%cye=H#O{bZ`DL{d5f#kN9>l2WR?zlI}ML9)7097TX1 z3j;a308Oe~wy=g=?1VAKx5y=MHigxKJP}o@U1U4*o1GL!p(&32frm_(gnk@DcgbgQ zAch<$VWv8acwa{Uq!sspNLJ9HBVA%6T2>&d^M8KqhnW1tTsZFiu?fWyinO8g!b1BY<1;v$i&p;hM`#HGDBYu20INbc zluK#>;l!E+mSN9?fib1y@FcfeI>fokC9VHBoZ_hosvai|i8_?uXpwz@)bh>XhhDi< z9bY^$vHC}hQ1;D$9n)8_mfmnUV^sMOzKQ%?bVmi%a1r}23zBnTtRhse?otk%9Gr5I zcS5LM*E;UzT&Gm2Jh59Uk>dI?#vEN$r7OtV8n*Py9!eZm6(5N}iXsVSU&7f_JY#p8 zp-UzC7bT;64G*b_LOK>&olGdS<8r)4k4YZ3wf zF*3_T0eDHNy_sqAXMh{OEuGByFCa|!vkQgq>e81U9qUBg=*Krb2XIZgqJmQgVLO}C zw>Y8GW0k#wRC&sL71$uZ4#{wv>+b_$a#{JmPJ#kleTcT3Dsyu&O$>55PesFphLz!? zc94J@y`;a~4`KtjHDz4p~*}f_a@JKyK>007ULuGXMZ+1B*2fnl23fX zf&yh?l6Q41Y@4u=1?l`0hUddMI%*{hXPz_R)U&%K8Kyc2)X=L#V4k6rrH$+?e#?Jl)5coA5H1L!DN;gbGRg>CZ*UOh|&-)7i z`YOv<%^s{tBT{9^k?&LAvnUc-y7N7JAbNz$HmKmvLp>5i^~uO|O1J8yOyOLy=D4sM zf?uHufQ_T%ku+ZO)BX-^@{^M}IgypcBdBm0VQvF~1)M3jFJ7uk@BH@dF91>gk_Kwa zuf$MkmyIcf{E9H{lY5eU&g00DqA;9&1B-QFX5mk_P3vyAd2h1tVphh}(`KsD1H>qd zAp7oW947js<^BnDEa^xfGio%{l2$}AGo#M#GqK#1_6W%Q+A6Fny)0^F7Sn~(4U*6H z7vPVk^AI647!;+6iN%93U76;h&yzFj(itHr-=T1`jgFG8ATIE6U~qPXvYRHRV7mk( z0XqQmH|CY48d!@*<2;scRuZ=2}sr)ii_=1Zy-B8g!~t`3&Kz}!ukvinj#WF&b0Ux))1g}NP*RYS(&)?#v%-G^R-HBB2-XIBi-$QsVtG%QoR8x$)N!OGS)~m{m-LDz7#BRGN!1 zN&*zytR0R1TG=i@kFFbE%bDVVQZMS_U0{efbr?sJJM}&Rp_N?y#X6D;c#)C_nJ`m{ zR-Wr@&P{4bf#qn0)Z4I|)Pha=;5R0@vMG)St$LMS{GvMzdgcdmdL;vN1*ttOJ`EZ6 znw`%RK#>G+eznU2{MhueXh=6wQiEB7nj;G1uN>MI-ENx`Fa}j?IlFR|wQn=rLQ{8X!A! zkodQ6-L`hKgXuc+PUzym7*H5S=YtSb=L0Y4cof++++V;{gix#hHt(@*eu0)h#-VLS zfr;^-TU~_7GgU^_#4U{*x5;Kndd~%nt*xjNiZJlZC=3SEI6$M&OfqV;++MYkrxGd>W!G zJGh0R)Mm0$pVE<7H^=COT#No>x$-(i zwJZayBb}d2_X-OrR^BMq3peO#pX|qK)~)?oL6IrhVW+pgd(FJRU$! zd<(PXF>Px}cvY+-_NLUnXE&rK;re>Mo*bNFSe!`BKKo~nzbhIYohZZqF93ux$PZe9 zV?Y`ET$43l+MO{R#NKrOFDScUrbVoI66gEbqdiB#aNtT27qqFroHo6=8=p z#E#EbJiTY`UpRW+BqrPgu(FGL#}N-RS~v7tc<b z8ydXtH7-CRi#npjzW;H`tcA`#5e#qFaVd1XS!X@}i02m#=HJo@*&_Rd9?;x0*Cs$} zhA&d&@RTkXbjU(-mz90r$+En1ge4@|PpXl}v8wx%K}6qsq@5{z>i6huW19h$L$iLo zUgzOZz~E?ug?n&{6W=K;N3*WTH%(u>zUPGQ&2TVpPI~rI=^UHkFvbe1Wd#k&(kZQ} zT?bp(!(%409IqzLdNe_ni=_$;ci_^vVU~4@t5{stb7WJKiF-bZ@h|kLG%!Kw3Zgz} z-4hXFXCEMK6sYhC-LHj#@P8VP7IKo;KbR1gD##Pck58dxxL#Te|XRpVw>Y z>L7k=X0}~{yIJbnHa`VEjS!I&;UQc1s*-u4PPr7_44%U(i~k4$HGpXNG7DO=9B-Kn z_A!10DC%i#nJW9{A;-jzx1FF_2)qt$2Pr)bGuO9ebeS0ha%>!tnBnc{@H*EX7Q{|kuuVAYes zsrCe!lwFEi3X;I7&`g%|F=GsB=h2VSZ>g5{6m>{UEjf^whRLXCS!%=X>_)#eT5U8DR+2RE{}eU~>QsSuDD zGLe_GYKAa=??qu$0EyKZEFmYgEdmU!>iCKFYtQ1w(qvZ)yuwq;>Rb=+Awv|9>D9%hpSq_w> zhOa|buVlk1j?N8n^RGe@@(s(W<@yTasTK$sh;ZJ;a(p>cU(qAe=G5da1n2GPDk+{s zD$e=(l|s%OjLm2GEE;q*;YdhZTEnzkZr%8deKNqrP@P1qN9t25Z`39eT+0@yJ=bWp zx7^5DTi6b0X**Di2mquX-#>#DQt0W*8PVHB>Ne$u=~{=z z^AiS>x39_}J0h*!#w0&j`@{GRa+aNru(w*3&Ou-t!I|zTb;3nPbtc8zdvI>QC5!u8 z1u^)n@g&i=RJ2Kiu5m{DKqcz1jSyG|L0-Kj=D8S9&@k%P1AOQRkQv2>UHkIB6OI*- zn&5)j+$YmHf&utLyD`s+164D-Rdp2D=vax#;=#$z_ZnK$rFc!ppg--=+oW%ca?ul_ zV}YI|%m6q{&}dS;>iaB#Y2>!hci}X@D(q@X8Q_B zb49l!y;{q|k1vP_!Ty2=64RnU>5UW@`tu#SR!t@hp=BnWi6SiG3$qqN0!6Jp%JTA< zNkVu3m1E#Z-~N|}eF5*b_DqXQ(u1kUx;T#=q(#g-_#Xi9z%kg2z(0?{4c1c{IyrQM z4m!ZE3|{OoKpg1HntP<_ELC_R-%4WrVMO|Pt4#2CRIHpeyJQhEQCwZ^$wGu;NO=bW9X8AT)saDx;O5gSV#m#S!a~u3yNhM<^H%BF_bf!YlN*m{X{G3}I1Yqg5%q%~q9O)j@R_2Hi&@Nl6IVXaIRlT5@|8 za)V;hz}r1r4iC4?k&{R2F0Dw~gA&gQ#zMo$q#mB59I1n0$zj*Q!4@;+QY+0lvVX!k z&OQKou1)wI)VQL>I*@+`UDpkdx_e7kVBvEu?}5ENRq)4MX3$jaNT6egQG&%??bsAdIOHvj}W*KOk^pC{6`!V>=GA;H@SCmB8stKFW?85 zzT!~VAAJ9ly<;@?VsUkzbQOz^*Rs#Xj+MO~cbhD_R!!By5E^@5Sw&8KRAZ zo6r&K7mN)}NKyu_J?$suyuZMZ|K5U-hLTiK#r!ybM8Gp`t447AJJ0nn(4n#Z`2#nAib;C><^b{ z1Ry-~iXflD&Z@ci6ELi&*=szCZ-cSb2tiSh@(sU6wm7_hm!5Q;CaZ%9Iw0QZ+D5gJ zo_P3jpTB|PYl@Bcjopz2V1JdleXc)rBw9UR(1EgVu@Ynze5;a%Q~Ihi&zW<4jV(n5 zt7zMP_ng_9p4qkj4mWNBi!f%>pkrx6h;q~v$p@32vI*$KhHya+NvC5TyFr& z@rzh?ZxwP<2u)~nOJ8e-<@ubw6h@?jFzL4Ts6^hNJ7QOyp>4{JxCGzr7ipGjwelKF z2|dG5yZ`z-wr>$nV}y{Dx~1}qUx-=xe)IC1nU-5Smlzw}zKF-y6ePRadnP;{#@>P} z1l7Zb*I#m6;`%N1kUDne zF3mz!#wFi?l7)&%q6BwF zhrOa=;#L%-A=dQwtG=f{D~K%3tc~@ylQ{KBQ?qmx$s2ZZAlwwqa(pr^vMjBmilkTO z0YuU7^l!?gP-MX}A(Kjif-qip7N{rsl!-FB`I2Fk-o3O&B~kG_RERL$y7r;;8Y;U_ z@j@ESyM^3;-rLRD*I?lCo2^k2f{tMJ@t5$p>!okv&P8I#n1^S1Om=7%i@6pue*p|v z4#n>Zf!bF;$ARY&VYJSf)|rG=G`^76kN7I0!JH&^HU@LvZy#lr=S2}mhCo>sAAIPd zfZvd>VNAsL2p5h=@Z0WUX87_w{?HmHgX@CTU6dY^4Kf>Jl|u=*6u$J0W)=>OHi_7T zdwi|eH8vy1D6hk7ckB?T^VlDhbvwOF5^vgeR}KDto9Vt;&r=a9Jyv(5kIw=&snJKZ zm{j_SGOVp&DpHcE&CLarTJ(Ad!Jek78gwxHH3pg`KRB-BxcPugzRcfx@nA!SMZx#B zhrzMS>Isp_MZ#1W{kbQw(+D;CMGb~sKP_hLC%BIt7UGY|HR2DC!OSKdjRC6$!O1A$ zrVQE*cRr(!BgCU$5^H#%ur3UeX|mv%v*U@T4Rn0k8u;;LgSk$dQh5~(*QvUuX|b~W z!7Mdb)iyh!d$f0kykc-wCGa6hQ;LGyQoIDZMhk--SJ(0{;KKtS>|PB9W~NFs%kHIL zWL42E6cKa@({Z#qMA4A$&V7dhjrvdvD;S(CZ+aC2cZsMo!e4uz2p@c_{1ofN&7`Pz zipeLrp6inBUWOk>L-!L8;XKrNg<7Kngd&E!@ufM`(w-edHryk}?N~b?0TG$u3gGnP z1g6WXCql0Zx#Bp(Mmv-J^}tp-+|>_5$X)9T<|gyzG|~fgUF5uWQ5)Sd0rK8Xk#;f# z$3^=j1HidEQN%oY*Nc>GEO=xOai<>lhY-VxH=9wZ4mT5gI)G>A2qsb4IZQCLF0CkF zTKkUzUxX{11)nK++_sEjc{B?2jollX7^;ke7-(^$fGBSE)c_OSDGxAcIDi}JH9OianCk$xm59=Z6Bc(VFXJ&XY4}b`QRc=I znaL*{^OX2nGs!;;+kJtEKg5bgS;;Jb8pT)@VaQ}M^_;WXAUvSp15;a25mmLLZG_tD zI?w(BsrI!X#GS#S?b41dk`(<+lX#pZ1%>OBsEKB=fffTiK~qj^W47{fQ2T?w^t5*i zj92QQPRh?LFaK=8J>Jn2ZACU+dIb?`AMNo!#Nx|}9_VZ*VV&X#T_HND4U(R%QvfyF z5$QG8HaG(BEVV-W%$8p~2}ZrUJA5Xf6%>hva>7W3no#xr`#oJBr8&9KVfqPG#WJs^ zioNpHoP_lwBli(iQgy_tW8_04=?zz<(e9@Ve5gYrcTY!E97IUPa-Rf|vdmZY#WG~( zd^zTv@EW9Z*lJmYyL29Ox*QfWo&Ap%6MNeVGrE3s&smI@NHYpq^r#9PSiI97gj5v(s7s3kW|ea(>DH$B`IGcQon|u9Tn6_~j$BQBu-fLR+RfH~52zdaP&AJB^kq zp*V?s^MP%P*i-&VK*rJ)=48KCSjrK1B1M=HqVWnhlXDti=sT^X=f zr<2Kg;)5a0KW#}*9r@~A&thIx=)rj}uLGL7uR_uTt$WOcm)8QO+Z#4>4?b~)pHA|~ zCinOYC-;p16k>3aEpNEkpA2X$_qYC0kdCgwFcm=THNL&e%DQauj6XgY#@Z5n{dX#h z2je||6$%y>2#@&RMAmx-E;Pn_)+#1BJ4oEzeGr{Oy%`G|=UwKyg5%&6({P*Lz5aJz z>peGD6!0gz&7fM}0QvC*&guriREsfz$0tj0SnfzI=-@VP#li~^^GqhRj64-%Ll}kd zT=mR-V8G-->QX0cYwPj;?UNl4Bk$_=; zZ@LGRMX_O6bOZI6Nm#F7%4pOCMa+@LkLPVyXK@imD~Rq9Qap0cG*QcD;k522t@bnK zGsgT{?z_!U=uvTxuKr2K^XMhoJSa95f8amd2RL*qP@>8c{r(;Fy102t6ytdOr-Bb= z(Aa{#K#oAN#q)v!r)BP(tLfJg#VXe>B^QO3nGjMY>e-@msV!fD-kQI2I$YtKKU=XwQN=?CK5aa{gWq?xC_4m!RQ?TPKm=2{hpFwY` zqZZd6sW>e>{PZqg3jN#3Kv=~0guMTmu6)l_#sI=$lEZ@7%~P;A#MRxK2j_Ruu_;1} zao9K|EIe?jsJS)VuKw-nchyrA@E4#oijpRfsNAG%&;x2iO_TO;fdZHPku3F=SisX+ zV}@N(*CELck-2z_F;?dIM7Ni?ya*_auYhyoZzMd)+fhgZ*zmt89mdo`bZ&}pAa0#=6q~nD|#fS ziXGEjXp9lL$4Y)mxxZiSD%>o5o%7UG@sfh&(u)b?c-L&J*EEUO4GVTsmei&~ilsa~ z`jvmv`aC&q4gV2Q-3rW!7S<*{!-6~wZ)}ZiJtTAM%#av>&kmCLO)(6)Y(GWyK}09z zM0G>7pHdj)b5RimJ!EuX=8*WOji-5Ye3D6b2BgGNiXkG^jU(DuZn$=v1H-E(hg0-i zLD7B0iJEzZ$YpJ5EK^qKP5L~$NQ{ET8MCgO43WT{V;Xo*#A)}NOO4iB*pJj`sklic zev8wl5~pOX%q5yL{G@ZrHT0zgY!B$-YwCcA1zH=U-PB?BX{0t7)GWZvNF{fRv_wgJ zVAp|_aPH&Bo{Zh>v{UG#?l$a;?fu(TU@crm`x+`Gzqgm0+RpezstEjSjo~QbCwhEl z-|4f&ztqfd_KqLx{|C9vMg#x= literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/whatsapp.png b/grailed_app/src/assets/imgs/whatsapp.png new file mode 100644 index 0000000000000000000000000000000000000000..3ea0736f7c50faee7c2b469638fb5a5b592d05db GIT binary patch literal 7177 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 LNkvXXu0mjfv7T?> literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/withdraw.png b/grailed_app/src/assets/imgs/withdraw.png new file mode 100644 index 0000000000000000000000000000000000000000..b3af69570c9ac1d6eeb66da97496dc249e551ab0 GIT binary patch literal 71512 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 JAK_06{{y#t>oouX literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/logo/luxlair-logo.jpg b/grailed_app/src/assets/logo/luxlair-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b01f60f12924ad1c944f708255b63040e9ad1ae0 GIT binary patch literal 24939 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 + + + + + + + + \ No newline at end of file diff --git a/grailed_app/src/components/GrailedDialog.vue b/grailed_app/src/components/GrailedDialog.vue new file mode 100644 index 0000000..69de3fc --- /dev/null +++ b/grailed_app/src/components/GrailedDialog.vue @@ -0,0 +1,95 @@ + + + + \ No newline at end of file diff --git a/grailed_app/src/components/GrailedHeader.vue b/grailed_app/src/components/GrailedHeader.vue new file mode 100644 index 0000000..4f19848 --- /dev/null +++ b/grailed_app/src/components/GrailedHeader.vue @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/grailed_app/src/components/Success.vue b/grailed_app/src/components/Success.vue new file mode 100644 index 0000000..3847546 --- /dev/null +++ b/grailed_app/src/components/Success.vue @@ -0,0 +1,33 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/components/SvgIcon.vue b/grailed_app/src/components/SvgIcon.vue new file mode 100644 index 0000000..a409235 --- /dev/null +++ b/grailed_app/src/components/SvgIcon.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/components/TermsModal.vue b/grailed_app/src/components/TermsModal.vue new file mode 100644 index 0000000..7450e88 --- /dev/null +++ b/grailed_app/src/components/TermsModal.vue @@ -0,0 +1,98 @@ + + + + + + \ No newline at end of file diff --git a/grailed_app/src/config/axios/config.ts b/grailed_app/src/config/axios/config.ts new file mode 100644 index 0000000..c318cbd --- /dev/null +++ b/grailed_app/src/config/axios/config.ts @@ -0,0 +1,30 @@ + +const config: { + base_url: string + result_code: number | string + request_timeout: number, + tenant_id: number + } = { + /** + * api请求基础路径 + */ + base_url: import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL, + /** + * 接口成功返回状态码 + */ + result_code: 200, + + /** + * 接口请求超时时间 + */ + request_timeout: 30000, + + /** + * 国家编号 + */ + tenant_id : import.meta.env.TENANT_ID + + } + + export { config } + \ No newline at end of file diff --git a/grailed_app/src/config/axios/errorCode.ts b/grailed_app/src/config/axios/errorCode.ts new file mode 100644 index 0000000..b1ff17a --- /dev/null +++ b/grailed_app/src/config/axios/errorCode.ts @@ -0,0 +1,7 @@ +export default { + '401': '认证失败,无法访问系统资源', + '403': '当前操作没有权限', + '404': '访问资源不存在', + default: '系统未知错误,请反馈给管理员' + } + \ No newline at end of file diff --git a/grailed_app/src/config/axios/index.ts b/grailed_app/src/config/axios/index.ts new file mode 100644 index 0000000..f99f82b --- /dev/null +++ b/grailed_app/src/config/axios/index.ts @@ -0,0 +1,56 @@ +import service from './service' + + +const request = (option: any) => { + const { url, method, params, data, headersType, responseType } = option + return service({ + url: url, + method, + params, + data, + responseType: responseType, + headers: { + 'Content-Type': headersType || 'application/json' + + } + }) +} +export default { + get: async (option: any) => { + const res = await request({ method: 'GET', ...option }) + return res.data as unknown as T + }, + getOriginal: async (option: any) => { + const res = await request({ method: 'GET', ...option }) + return res + }, + post: async (option: any) => { + const res = await request({ method: 'POST', ...option }) + return res.data as unknown as T + }, + postOriginal: async (option: any) => { + const res = await request({ method: 'POST', ...option }) + return res + }, + delete: async (option: any) => { + const res = await request({ method: 'DELETE', ...option }) + return res.data as unknown as T + }, + put: async (option: any) => { + const res = await request({ method: 'PUT', ...option }) + return res.data as unknown as T + }, + download: async (option: any) => { + const res = await request({ + method: 'GET', + responseType: 'blob', + ...option + }) + return res as unknown as Promise + }, + upload: async (option: any) => { + option.headersType = 'multipart/form-data' + const res = await request({ method: 'POST', ...option }) + return res as unknown as Promise + } +} diff --git a/grailed_app/src/config/axios/service.ts b/grailed_app/src/config/axios/service.ts new file mode 100644 index 0000000..c5cb5b5 --- /dev/null +++ b/grailed_app/src/config/axios/service.ts @@ -0,0 +1,158 @@ +import axios, { type AxiosRequestHeaders, type AxiosResponse, type InternalAxiosRequestConfig } from 'axios'; +import { config } from '@/config/axios/config' +import * as AuthUtils from '@/utils/auth' +import { useRouter } from 'vue-router'; +import { useCache } from '@/hooks/useCache'; +const { result_code, base_url, request_timeout } = config + + +// 是否显示重新登录 +export const isRelogin = { show: false } +let requestList: any[] = [] +// 是否正在刷新中 +let isRefreshToken = false +const whiteList: string[] = ['/sign-in', '/refresh-token'] + +// 创建 Axios 实例 +const instance = axios.create({ + baseURL: base_url, // 设置基本的请求 URL + timeout: request_timeout, // 设置请求超时时间(单位:毫秒) + headers: { + 'Content-Type': 'application/json', // 设置请求头部 + 'tenant-id': config.tenant_id + }, +}); + +// 设置请求拦截器 +instance.interceptors.request.use( + + (config: InternalAxiosRequestConfig) => { + // 是否需要设置 token + let isToken = (config!.headers || {}).isToken === false + whiteList.some((v) => { + if (config.url) { + config.url.indexOf(v) > -1 + return (isToken = false) + } + }) + + if (AuthUtils.getAccessToken() && !isToken) { + config.headers.Authorization = 'Bearer ' + AuthUtils.getAccessToken() // 让每个请求携带自定义token + } + const params = config.params || {} + const data = config.data || false + if (config.method?.toUpperCase() === 'POST' && (config.headers as AxiosRequestHeaders)['Content-Type'] ==='application/x-www-form-urlencoded') { + config.data = qs.stringify(data) + } + if (config.method?.toUpperCase() === 'GET' && params) { + let url = config.url + '?' + for (const propName of Object.keys(params)) { + const value = params[propName] + if (value !== void 0 && value !== null && typeof value !== 'undefined') { + if (typeof value === 'object') { + for (const val of Object.keys(value)) { + const params = propName + '[' + val + ']' + const subPart = encodeURIComponent(params) + '=' + url += subPart + encodeURIComponent(value[val]) + '&' + } + } else { + url += `${propName}=${encodeURIComponent(value)}&` + } + } + } + // 给 get 请求加上时间戳参数,避免从缓存中拿数据 + // const now = new Date().getTime() + // params = params.substring(0, url.length - 1) + `?_t=${now}` + url = url.slice(0, -1) + config.params = {} + config.url = url + } + return config; + }, + (error) => { + // 处理请求错误 + return Promise.reject(error); + } +); + +// 设置响应拦截器 +instance.interceptors.response.use( + async (response: AxiosResponse) => { + // 在接收到响应数据之前做一些处理 + const { data } = response + const config = response.config + if (!data) { + // 返回“[HTTP]请求没有返回值”; + throw new Error() + } + // 未设置状态码则默认成功状态 + const code = data.code || result_code + // 二进制数据则直接返回 + if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') { + return response.data + } + if (code === 401) { + // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了 + if (!isRefreshToken) { + isRefreshToken = true + // 1. 如果获取不到刷新令牌,则只能执行登出操作 + if (!AuthUtils.getRefreshToken()) { + return handleAuthorized() + } + // 2. 进行刷新访问令牌 + try { + const refreshTokenRes = await refreshToken() + AuthUtils.setToken((await refreshTokenRes).data.data) + config.headers!.Authorization = 'Bearer ' + AuthUtils.getAccessToken() + requestList.forEach((cb: any) => { + cb() + }) + requestList = [] + return instance(config) + } catch (error) { + // 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。 + // 2.2 刷新失败,只回放队列的请求 + requestList.forEach((cb: any) => { + cb() + }) + // 提示是否要登出。即不回放当前请求!不然会形成递归 + return handleAuthorized() + } finally { + requestList = [] + isRefreshToken = false + } + } else { + // 添加到队列,等待刷新获取到新的令牌 + return new Promise((resolve) => { + requestList.push(() => { + config.headers!.Authorization = 'Bearer ' + AuthUtils.getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + resolve(instance(config)) + }) + }) + } + } + if (code === 403) { + return handleAuthorized() + } + return response.data; + }, + (error) => { + // 处理响应错误 + return Promise.reject(error); + } +); + +const refreshToken = async () => { + return await axios.post(base_url + '/member/auth/refresh-token?refreshToken=' + AuthUtils.getRefreshToken()) +} + +const handleAuthorized = () => { + const { wsCache } = useCache() + wsCache.clear() + AuthUtils.removeToken() + window.location.href = '/sign-in' + // 英文的提示信息 + return Promise.reject(new Error('Sorry, you do not have permission to access this page, please contact the administrator to apply for permission!')) +} + +export default instance; \ No newline at end of file diff --git a/grailed_app/src/hooks/useCache.ts b/grailed_app/src/hooks/useCache.ts new file mode 100644 index 0000000..6d2a931 --- /dev/null +++ b/grailed_app/src/hooks/useCache.ts @@ -0,0 +1,27 @@ +/** + * 配置浏览器本地存储的方式,可直接存储对象数组。 + */ + +import WebStorageCache from 'web-storage-cache' + +type CacheType = 'localStorage' | 'sessionStorage' + +export const CACHE_KEY = { + IS_DARK: 'isDark', + USER: 'user', + LANG: 'lang', + THEME: 'theme', + LAYOUT: 'layout', + ROLE_ROUTERS: 'roleRouters', + DICT_CACHE: 'dictCache' +} + +export const useCache = (type: CacheType = 'localStorage') => { + const wsCache: WebStorageCache = new WebStorageCache({ + storage: type + }) + + return { + wsCache + } +} diff --git a/grailed_app/src/hooks/useLogo.ts b/grailed_app/src/hooks/useLogo.ts new file mode 100644 index 0000000..3d88c3d --- /dev/null +++ b/grailed_app/src/hooks/useLogo.ts @@ -0,0 +1,22 @@ +import { ref, onMounted } from 'vue'; + + +export const useLogo = () => { + const logo = ref(); + onMounted(async () => { + let logoModule; + if (import.meta.env.MODE === 'us') { + logoModule = await import('@/assets/logo/baltini-logo.webp'); + } else if(import.meta.env.MODE === 'da') { + logoModule = await import('@/assets/logo/luxlair-logo.jpg'); + } else if (import.meta.env.MODE === 'pt') { + logoModule = await import('@/assets/logo/luxe-logo.jpg'); + }else if (import.meta.env.MODE === 'in') { + logoModule = await import('@/assets/logo/baltini-logo.webp'); + }else { + logoModule = await import('@/assets/logo/luxe-logo.jpg'); + } + logo.value = logoModule.default; + }) + return { logo } +} \ No newline at end of file diff --git a/grailed_app/src/i18n/helper.ts b/grailed_app/src/i18n/helper.ts new file mode 100644 index 0000000..335ae52 --- /dev/null +++ b/grailed_app/src/i18n/helper.ts @@ -0,0 +1,4 @@ +export const setHtmlPageLang = (locale: string) => { + document.querySelector('html')?.setAttribute('lang', locale) + } + \ No newline at end of file diff --git a/grailed_app/src/i18n/index.ts b/grailed_app/src/i18n/index.ts new file mode 100644 index 0000000..af30b0f --- /dev/null +++ b/grailed_app/src/i18n/index.ts @@ -0,0 +1,43 @@ +import { createI18n } from 'vue-i18n' +import {setHtmlPageLang} from './helper' +import {lang as en} from './lang/en-us' +import {lang as da} from './lang/da-dk' +import {lang as pt} from './lang/pt-pt' +import {lang as de} from './lang/dn-de' +import {lang as st} from './lang/st-st' +export const loadLang = () => { + const modules: Record = import.meta.glob('./lang/*.ts', { eager: true }); + const langs: Record = {}; + + for (const path in modules) { + const name = path.replace(/(\.\/lang\/|\.ts)/g, ''); + if (name == 'lang-base') { + continue + } + langs[name] = modules[path].lang; + } + return langs; +} + +export const setLang = (locale?: string) => { + if (locale) { + localStorage.setItem('lang', locale); + } + i18n.global.locale.value = locale || localStorage.getItem('lang') || ''; + setHtmlPageLang(i18n.global.locale.value) +} + +export const i18n = createI18n({ + globalInjection: true, + legacy: false, + locale: import.meta.env.VITE_DEFAULT_LANG, + fallbackLocale: import.meta.env.VITE_DEFAULT_LANG, + fallbackWarn: false, + messages: { + 'en-us': en, + 'da-dk': da, + 'pt-pt': pt, + 'dn-de': de, + 'st-st': st + } +}); diff --git a/grailed_app/src/i18n/lang/da-dk.ts b/grailed_app/src/i18n/lang/da-dk.ts new file mode 100644 index 0000000..ed7547a --- /dev/null +++ b/grailed_app/src/i18n/lang/da-dk.ts @@ -0,0 +1,366 @@ +import type { langType } from './lang-base' + +let cp_name = import.meta.env.VITE_APP_NAME; + +export const lang: langType = { + about: { + title: 'Om', + profile: 'Firma Kvalifikationer', + h_1: 'Hvorfor bruger dette program USDT som valuta?', + h_2: 'Da programmet er dedikeret til at betjene købmænd fra hele verden, har vi fastsat USDT som vores valuta for at forene valutatransaktioner, lette ledelsen og bedre beskytte folk og ejendom.', + h_3: 'Kan jeg opgradere mine opgaver når som helst?', + h_4: 'I øjeblikket er vores platform åben fra 10.00-23.00. Det anbefales ikke for agenter at øge ordre uden for arbejdstid for at undgå eventuel dårlig opførsel.', + h_5: 'Hvad sker der, hvis jeg ikke kan tilføje alle mine ordrer?', + h_6: 'Da programmet er afhængigt af positive anmeldelser fra vores agenter, er det vigtigt, at alle agenter deltager for at sikre deres placering. Straffe vil blive anvendt som relevant, og agentens medlemskab vil blive permanent afsluttet. Ikke alene hjælper din forfremmelse andre købmænd, det hjælper også med at informere vores købmænd og bidrage til produktforbedringer.', + h_7: 'Kan jeg ændre mit produktvalg?', + h_8: 'Når et produkt er blevet crawled, vil du ikke være i stand til at ændre dit produktvalg. Når du opgraderer et produkt, skal du læse alle de oplysninger, vi har angivet i Vilkår og Betingelser for at sikre, at du kan overholde alle programkrav. For eksempel kan der være kompatibilitetskrav til elektronik, der kun er kompatible med specifik software.', + h_9: 'Vores partnere har et blomstrende økosystem af alliancer, der leverer forretningsløsninger til at løse vores kunders forretnings- og teknologiudfordringer. Vi har dybe relationer på tværs af et omfattende netværk af førende teknologivirksomheder, der kan hjælpe dig med at transformere og vokse.', + h_10: 'Vores robuste økosystem hjælper partnere med at øge indtægtsvæksten, udvide markedet og geografisk rækkevidde, lette salgsprocesser og forbedre produkt- og serviceudbud.' + }, + balanceRecord: { + title: 'Saldo Optegnelser', + }, + bindCrypto: { + title: 'Bind Adresse', + enterAddress: 'Indtast adresse' + }, + channelSelect: { + title: 'Kanal Vælg', + balance: 'Balance', + t_1: 'Vælg en nyttig kanal', + }, + helpGuide: { + title: 'Hjælpeguide', + faq: 'FAQ', + q_1: 'Hvordan begynder jeg at tage opgaver?', + a_1: "Først skal du registrere en konto på vores hjemmeside. Efter registrering, klik på 'start' menuen, og klik derefter på 'Grib Ordre' knappen for at begynde at arbejde.", + q_2: "Hvornår vil jeg modtage provisionen for de opgaver, jeg har afsluttet?", + a_2: "Når din afsluttede opgave er gennemgået og bekræftet korrekt, vil provisionen blive krediteret til din konto på vores hjemmeside inden for 1 time.", + q_3: 'Hvor mange opgaver kan jeg tage på samme tid?', + a_3: "Du kan kun tage en opgave ad gangen. Antallet af opgaver, du kan fuldføre hver dag, vil blive justeret baseret på dit medlemskabsniveau og butikkens situation.", + q_4: "Hvad hvis jeg ikke kan fuldføre en opgave?", + a_4: "Hvis du ikke kan fuldføre en opgave inden for den fastsatte tid, bedes du straks kontakte vores kundeservice team. Vi vil give dig en passende løsning eller anbefaling baseret på den specifikke situation.", + q_5: 'Hvordan kan jeg opgradere mit medlemskabsniveau?', + a_5: 'Medlemskabsniveauer gives baseret på de opgaver, som kunden har fuldført. For flere detaljer, kontakt venligst kundeservice.', + }, + + home: { + cp_name: cp_name, + continue: 'Fortsæt med at udføre opgaven', + notice: { + c_t: 'Tillykke til ', + f_e: 'tjente ', + }, + taskCarouse: { + title: 'Opgave', + }, + partners: { + title: 'Vores Partnere', + }, + + introduce: { + i_f: 'Inviter Venner', + j_s: 'Lad os Tilmelde Os Nu', + c_c: 'Kopier henvisningskoden for at tilmelde dig nu', + c_l: 'Kopier invitationslink', + terms_a: 'Vilkår & Aftaler', + terms_c: 'Vilkår & Betingelser', + terms_c_1: 'Disse vilkår og betingelser gælder for din brug af dette websted, og ved at få adgang til dette websted og / eller opdatere din ordre, accepterer du at være bundet af følgende vilkår og betingelser. Hvis du ikke accepterer at være bundet af disse vilkår og betingelser, vil du ikke kunne bruge eller få adgang til dette websted.', + terms_c_2: 'Hvis du har spørgsmål om disse vilkår og betingelser, før du opdaterer din ordre, bedes du kontakte vores kundeservice team 7 dage om ugen.', + terms_c_3: 'Forklaring', + terms_c_4: 'Betingelser - disse vilkår og betingelser og specielle betingelser', + terms_c_5: 'Produkter - de produkter, der vises på dette websted for at forbedre vurderinger', + terms_c_6: 'Produktbeskrivelser - de afsnit på dette websted, der giver visse vilkår og betingelser relateret til individuelle produkter', + terms_c_7: 'Særlige betingelser - de vilkår og betingelser på produktbeskrivelsen', + terms_c_8: 'Tjenester - de agenturtjenester, vi leverer for de produkter, der bliver opdateret til gennemgang, som beskrevet i agenturaftalen', + terms_c_9: 'Agent / du - den generiske betegnelse for brugere af dette websted Personlige oplysninger', + terms_c_10: 'Oplysninger, du har givet under registrering', + terms_c_11: 'Cookies - små tekstfiler, der placeres på din computers harddisk af dette websted for at gemme oplysninger og identificere din computer', + terms_c_12: 'Aftale - agenten indeholder disse vilkår og betingelser', + terms_c_13: '1.0 Forklaring', + terms_c_14: '1.1 Alle ord efter en bestemt klausul, for eksempel, eller enhver lignende udtryk, skal fortolkes som illustrative og skal ikke begrænse betydningen af ​​de ord, beskrivelser, definitioner, sætninger eller vilkår, der går forud for disse klausuler.', + terms_c_15: '1.2 Medmindre andet er angivet, skal store bogstaver, der bruges i disse vilkår og betingelser (men ikke defineret i disse vilkår og betingelser), have den betydning, der er fastsat i agenturaftalen.', + terms_c_16: '2.0 Agentens ansvar', + terms_c_17: '2.1 Hver agent skal fuldføre mindst et sæt opgaver for at modtage en bonus fra os.', + terms_c_18: '2.2 Agenter kan nulstille deres konti én gang om dagen. Hver agent kan højst udføre to opgaver om dagen.', + terms_c_19: '2.3 Tidlig fuldførelse af opgaver er ikke tilladt, da dette vil resultere i et brud i indsamlingen af ​​salgsdata.', + terms_c_20: '2.4 Agenter har ikke tilladelse til at indsende eller offentliggøre nogen falske oplysninger på nogen form for sociale medier. Vi forbeholder os retten til at søge juridisk ansvar.', + terms_c_21: '2.5 Overholdelse af juridiske forpligtelser (opfyldelse af vores juridiske forpligtelser)', + terms_c_22: '2.6 Behandling af krav og klager og søge resolution (juridiske rettigheder og juridiske krav)', + terms_c_23: '3.0 Enhver reklame- eller digital medieagentur eller internetudbyder i forbindelse med programmet', + terms_c_24: '3.1 Ved at deltage i programmet forpligter du dig til at indsende alle sande, nøjagtige, aktuelle og komplette oplysninger. Vi forbeholder os retten til at verificere din berettigelse.', + terms_c_25: '3.2 Hvis vi ved eller har rimelig grund til at tro på tidspunktet for registrering, at du ikke er berettiget til at deltage i programmet, forbeholder vi os retten til at diskvalificere dig og vælge en alternativ produktanmelder.', + terms_c_26: '4.0 Vores ansvar', + terms_c_27: '4.1 Vi er ikke ansvarlige for tekniske fejl eller trafikpropper på internettet eller ethvert websted, eller en kombination af disse faktorer, eller for eventuelle afbrydelser eller forstyrrelser af enhver andens udstyr i forbindelse med eller som et resultat af deltagelse.', + terms_c_28: '4.2 Vi er ikke ansvarlige for eventuelle ærekrænkende materialer, krænkelse af tredjeparts immaterielle rettigheder eller andet ulovligt materiale i din indgang.', + terms_c_29: '5.0 Reklame og dine personlige data', + terms_c_30: '5.1 Med forbehold for dit samtykke kan vi bruge dit brugernavn til salgsfremmende formål og/eller i forbindelse med vores reklame-, salgsfremmende eller markedsføringsaktiviteter (som beskrevet i vores meddelelser og anmeldelser, vilkår og betingelser).', + terms_c_31: '5.1 er opmærksom på, at du er bekymret for vores brug af dine oplysninger, og vi værdsætter den tillid, du har til os for at bruge den på en omhyggelig og rimelig måde. Alle oplysninger, vi indsamler, vil være underlagt vores privatlivspolitik, som angiver, hvilke oplysninger vi indsamler, hvad vi gør med det, og de formål, for hvilke vi bruger disse data. Se vores privatlivspolitik for yderligere detaljer. Du forstår, at ved at tilmelde dig programmet, vil indsamle og bruge dine personlige oplysninger som beskrevet i privatlivspolitikken, hvilket inkluderer deling af oplysninger med leverandører, der hjælper med webstedet og kampagner.', + terms_c_32: '5.3 Som vejledt af normale omstændigheder er platformen designet til kun at matche produkter, hvis pris er lavere end agentens kontosaldo. Imidlertid kan købmænd vælge at øge rækkevidden af ​​agenter, der matches ved at betale mindst tre gange deres løn. Dette vil give agenten mulighed for at opnå pakkeopgaver prissat over kontosaldoen. Ved vellykket fuldførelse af disse opgaver vil agenter modtage', + about_us: { + title: 'Om Os', + a_1: 'Firma Kvalifikationer', + a_2: 'Hvorfor bruger dette program USDT som valuta?', + a_3: 'Da programmet er dedikeret til at betjene købmænd fra hele verden, . Vi har fast USDT som vores valuta for at forene valutatransaktioner, lette styring og bedre beskytte mennesker og ejendom.', + a_4: 'Kan jeg opgradere mine opgaver når som helst?', + a_5: 'I øjeblikket er vores platform åben fra 9:00-23:00. Det anbefales ikke for agenter at booste ordrer i ikke-arbejdstimer for at undgå enhver form for dårlig opførsel.', + a_6: 'Hvad sker der, hvis jeg ikke kan tilføje alle mine ordrer?', + a_7: 'Da programmet er afhængigt af positive anmeldelser fra vores agenter, er det vigtigt, at alle agenter deltager for at sikre deres placering. Straffe vil blive anvendt som relevant, og agentens medlemskab vil blive permanent afsluttet. Ikke kun hjælper din forfremmelse andre købmænd, det hjælper også med at informere vores købmænd og bidrage til produktforbedringer.', + a_8: 'Kan jeg ændre mit produktvalg?', + a_9: 'Når et produkt er blevet kravlet, vil du ikke være i stand til at ændre dit produktvalg. Når du opgraderer et produkt, bedes du læse alle de oplysninger, vi har angivet i Vilkår og Betingelser for at sikre, at du kan overholde alle programkrav. For eksempel kan der være kompatibilitetskrav for elektronik, der kun er kompatible med specifik software.', + a_10: cp_name + ' Partnere', + a_11: 'Vores Partnere', + a_12: cp_name + ' har et blomstrende økosystem af alliancer, der leverer forretningsløsninger til at løse vores kunders forretnings- og teknologiske udfordringer. Vi har dybe relationer på tværs af et omfattende netværk af førende teknologivirksomheder, der kan hjælpe dig med at transformere og vokse.', + a_13: 'Vores robuste økosystem hjælper partnere med at øge indtægtsvæksten, udvide marked og geografisk rækkevidde, lette salgsprocesser og forbedre produkt- og serviceudbud.', + } + } + + + }, + invitation: { + title: 'Inviter Venner', + i_c: 'Invitationskode', + link: 'Henvisningslink', + }, + language: { + title: 'Sprog', + u: 'brugernavn', + c_l: 'Skift Sprog', + l: 'Sprog', + }, + order: { + title: 'Ordre', + order_no: 'Ordrenummer', + u_p: 'Enhedspris', + o_q: 'Ordremængde', + total: 'Total', + o_c: 'Ordre Kommission', + c_t: 'Kompileringstid', + all: 'Alle', + completed: 'Fuldført', + pending: 'Afventer', + frozen: 'Frosset', + }, + + password: { + title: 'Skift Adgangskode', + old: 'Nuværende Adgangskode', + new: 'Ny Adgangskode', + confirm_p: 'Bekræft Adgangskode', + note: 'Bemærk: Adgangskodeændringer er begrænset til en gang hver 72 timer.', + not_match: 'Adgangskoderne matcher ikke.', + }, + payOrderDetail: { + title: 'Ordredetaljer', + order_no: 'Ordrenummer:', + amount: 'Beløb', + orderTime: 'Ordretid', + status: 'Status', + pay_m: 'Betalingsmetode', + network: 'Netværk', + address: 'Adresse', + referral: 'Henvisningskode', + t_s_o: 'For at Starte Ordre' + }, + + profile: { + ph_no: 'Ph No', + LV: 'LV', + i_c: 'Invitationskode', + level: 'Niveau', + dailyOrder: 'DagligOrder', + ratio: 'Forhold', + todays: 'Dagens', + creditScore: 'Kredit', + t_order: 'Ordrer', + t_order_a: 'Ordremængde', + t_commission: 'Kommission', + sign_in_reward: 'Check ind', + enter_now: 'Gå Ind Nu', + c_balance: 'Nuværende Saldo', + w_success: 'Udbetaling Lykkedes', + records: 'Optegnelser', + settings: 'Indstillinger', + i_f: 'Inviter Venner', + notification: 'Notifikation', + help_guide: 'Hjælpeguide', + }, + service: { + title: 'Kundeservice', + c_s_c: 'Kundeservicecenter', + online: 'Online Service', + o_tips: 'Hvis du har et problem, bed om kundeservice', + o_tips_1: 'Online Service :Guldflowproblem', + o_t: 'Online tid', + }, + + settings: { + title: 'Indstillinger', + d_o: 'Daglige ordrer', + d_w: 'Daglig udbetaling', + c: 'Kommission', + t_r: 'Hold Belønning', + a: 'Konto', + t_1: 'Personlige Oplysninger', + t_2: 'Skift Adgangskode', + t_3: 'Bind USDT Adresse', + t_4: 'Sprog', + t_5: 'Om Os', + }, + settingsPersonal: { + title: 'Brugeroplysninger', + profile: 'Profil', + p_1: 'Disse oplysninger vil blive vist offentligt, så vær forsigtig med, hvad du deler.', + username: 'Brugernavn', + about: 'Om', + a_1: 'Skriv et par sætninger om dig selv.', + photo: 'Foto', + change: 'ændre', + p_i: 'Personlige Oplysninger', + p_i_1: 'Brug en permanent adresse, hvor du kan modtage post.', + first_name: 'Fornavn', + last_name: 'Efternavn', + email: 'Email adresse', + country: 'Land', + street: 'Gadeadresse', + street_p: '', + city: 'By', + state: 'Stat / Provins', + postal: 'Postnummer', + save: 'Gem', + upload_error_1: 'Upload venligst et billede, der er 500x500 pixels eller mindre.', + upload_error_2: 'Upload venligst en billedfil.', + upload_error_3: 'upload af avatar mislykkedes, prøv igen senere', + }, + + signIn: { + title: 'Log ind på din konto', + p_n: 'Telefonnummer', + country: 'Land', + password: 'Adgangskode', + remember: 'Husk Mig', + forgot: 'Glemt adgangskode?', + sign_in: 'Log Ind', + no_select_country: 'Vælg venligst din landekode', + n_a_m: 'Ikke medlem?', + s_u_n: 'Tilmeld Dig Nu!', + }, + signUp: { + title: 'Opret en ny konto', + p_n: 'Telefonnummer', + country: 'Land', + password: 'Adgangskode', + c_p: 'Bekræft adgangskode', + i_c: 'Invitationskode', + i_green: 'Jeg er enig i ', + r_a: '《Registreringsaftale》', + sign_up: 'Tilmeld Dig', + no_select_country: 'Vælg venligst din landekode', + number_exist: 'Mobilnummeret findes allerede. Log venligst direkte ind.', + i_code_not_exist: 'Invitationskoden, du indtastede, findes ikke. Kontakt venligst din mentor.', + sign_up_success: 'Tilmelding succesfuld!', + to_sign_in: 'Til Log Ind', + }, + + start: { + title: 'Start', + daily_order: 'Daglige Ordrer', + commission_ration: 'Kommissionsforhold', + free: 'Gratis', + earned: 'Tjent Kommission', + frozen: 'Frosset Beløb', + completed_order: 'Fuldført Ordre', + available: 'Tilgængelig Saldo', + freeze_commission: 'Akkumuleret ordreprovision', + freeze_c_desc: 'Dette beløb repræsenterer din nuværende akkumulerede ordretotal. Du kan trække det ud, når opgaven er fuldført.', + g_order: 'Grib Ordre', + order_desc: 'Ordrebeskrivelse', + order_desc_1: '1.Hver konto kan matche 38 ordrer om dagen', + order_desc_2: '2.Kommissionen for at placere en ordre er ensartet og svarer til 1.00% af det samlede ordrebeløb', + order_desc_3: '3.Systemet er baseret på LBS-teknologi og matcher automatisk varer gennem cloud computing', + order_desc_5: '4.Du kan ikke annullere opgaven. Du skal først fuldføre eventuelle eksisterende uafsluttede opgaver, før du kan modtage nye.', + order_desc_6: '5.Hver konto kan matche 38 ordrer om dagen', + order_n: 'Bemærk', + order_n_1: 'Når platformen matcher ordrer for brugere, vil den indsende ordreoplysningerne til købmandens' + + 'baggrund. Hvis brugeren ikke indsender ordren inden for 30 minutter, vil ordrebeløbet blive frosset af' + + 'systemet. For at undgå regulerende systemer vil brugerkonti blive evalueret, hvilket vil direkte' + + 'påvirke brugerens næste matchtid og omdømme! Klik venligst på stop placering af ordre i tide for at undgå' + + 'timeoutfrysning.', + grabOrder: { + not_completed: 'Fuldfør venligst ordren først', + not_completed_text: 'For at tjekke ordre', + order_limit: 'Dagens ordremængde har nået den øvre grænse', + order_limit_text: 'Bekræft', + balance_not_enough: 'Saldo er ikke nok', + balance_not_enough_text: 'Top op', + no_order_available: 'Ingen ordre tilgængelig, prøv venligst igen senere', + no_order_available_text: 'Bekræft', + not_meet_start: 'opfylder ikke startbetingelse', + }, + order_details: { + title: 'Ordreopgave', + u_p: 'Enhedspris', + o_q: 'Ordremængde', + total: 'Total', + o_c: 'Ordre Kommission', + o_r: 'ordrevurdering', + c_1: 'produktet er meget godt Endelig modtaget det. produktet er meget godt Jeg er meget tilfreds med produktet og anbefaler at købe det', + c_2: 'Jeg er meget glad og tilfreds', + c_3: 'prisen er ganske rimelig', + c_4: 'Håndværket er meget godt', + c_5: 'og jeg kan godt lide det meget', + c_6: 'Det ser godt ud', + c_7: 'og min ven har købt det for anden gang.', + balance_not_enough: 'Saldo er ikke nok til at fuldføre ordren, genoplad venligst', + balance_not_enough_text: 'Top op', + order_submitted: 'Ordren er blevet indsendt', + } + }, + withdrawal: { + title: 'Udtræk', + w: 'Udtræk', + c_b: 'nuværende saldo', + s_w_a: 'vælg udtræksbeløb', + w_a: 'Tegnebogsadresse', + m_w_a: 'Ændre tegnebogsadresse', + w_p: 'Indtast din betalingskode', + enterPassword: 'Indtast adgangskode', + p_i: 'Du har en udbetalingsanmodning i gang. Vent venligst på resultatet.', + p_e: 'Betalingsadgangskode fejl', + t_n_c: "Du skal fuldføre dagens ordreopgave, før du kan modtage din løn.", + c_s_n_m:'Din kreditscore opfylder ikke betingelserne for udbetaling, øg venligst din kreditscore.', + + }, + recharge: { + title: 'Top Op', + amount_placeholder: 'vælg eller skriv her', + }, + daily: { + title: 'Daglig indtjekning', + c: 'Kontinuerlig', + a: 'Akkumulering', + r: 'Belønning (USDT)', + btn: 'Tjek ind', + task_not_compiled: 'Fuldfør venligst dagens ordreopgave først.', + }, + common: { + confirm: 'Bekræft', + cancel: 'annuller', + loosing: 'taber', + loading: 'indlæser', + no_data: 'ingen flere data', + submit: 'indsend', + waring: 'advarsel', + error: 'fejl', + insufficient: 'Utilstrækkelig', + submitted: 'Indsendt', + noResult: 'Der blev ikke fundet nogen resultater' + }, + main: { + home: 'Hjem', + order: 'Ordre', + start: 'Start', + service: 'Service', + profile: 'Profil', + } +} \ No newline at end of file diff --git a/grailed_app/src/i18n/lang/dn-de.ts b/grailed_app/src/i18n/lang/dn-de.ts new file mode 100644 index 0000000..18b128c --- /dev/null +++ b/grailed_app/src/i18n/lang/dn-de.ts @@ -0,0 +1,355 @@ +import type { langType } from './lang-base' + +let cp_name = import.meta.env.VITE_APP_NAME; + +export const lang: langType = { + about: { + title: 'Über uns', + profile: 'Unternehmensqualifikationen', + h_1: 'Warum verwendet dieses Programm USDT als Währung?', + h_2: "Da das Programm dazu dient, Händler aus der ganzen Welt zu bedienen, haben wir USDT als unsere Währung festgelegt, um Währungstransaktionen zu vereinheitlichen, die Verwaltung zu erleichtern und Menschen und Eigentum besser zu schützen.", + h_3: 'Kann ich meine Aufgaben jederzeit aktualisieren?', + h_4: 'Derzeit ist unsere Plattform von 10.00 bis 23.00 Uhr geöffnet. Es wird nicht empfohlen, Bestellungen außerhalb der Arbeitszeiten zu beschleunigen, um Fehlverhalten zu vermeiden.', + h_5: "Was passiert, wenn ich nicht alle meine Bestellungen hinzufügen kann?", + h_6: 'Da das Programm auf positiven Bewertungen unserer Agenten beruht, ist es wichtig, dass alle Agenten teilnehmen, um ihre Platzierung sicherzustellen. Strafen werden entsprechend angewendet und die Mitgliedschaft des Agenten wird dauerhaft beendet. Ihre Förderung hilft nicht nur anderen Händlern, sondern informiert auch unsere Händler und trägt zur Produktverbesserung bei.', + h_7: 'Kann ich meine Produktauswahl ändern?', + h_8: 'Sobald ein Produkt gecrawlt wurde, können Sie Ihre Produktauswahl nicht mehr ändern. Wenn Sie ein Produkt aktualisieren, lesen Sie bitte alle Informationen, die wir in den Allgemeinen Geschäftsbedingungen festgelegt haben, um sicherzustellen, dass Sie alle Programmbedingungen erfüllen können. Es können beispielsweise Kompatibilitätsanforderungen für Elektronik bestehen, die nur mit bestimmter Software kompatibel sind.', + h_9: 'Unsere Partner verfügen über ein blühendes Ökosystem von Allianzen, die Geschäftslösungen zur Bewältigung der geschäftlichen und technologischen Herausforderungen unserer Kunden bieten. Wir haben enge Beziehungen zu einem umfangreichen Netzwerk führender Technologieunternehmen, die Ihnen bei der Transformation und dem Wachstum helfen können.', + h_10: 'Unser robustes Ökosystem hilft Partnern, das Umsatzwachstum zu steigern, den Markt- und geografischen Bereich zu erweitern, Verkaufsprozesse zu erleichtern und Produkt- und Serviceangebote zu verbessern.' + }, + balanceRecord: { + title: 'Kontostandprotokolle', + }, + bindCrypto: { + title: 'Bindungsadresse', + enterAddress: 'Adresse eingeben' + }, + channelSelect: { + title: 'Kanal auswählen', + balance: 'Kontostand', + t_1: 'Wählen Sie einen für Sie nützlichen Kanal aus', + }, + helpGuide: { + title: 'Hilfeleitfaden', + faq: 'FAQ', + q_1: 'Wie fange ich an, Aufgaben zu übernehmen?', + a_1: "Zuerst müssen Sie ein Konto auf unserer Website registrieren. Nach der Registrierung klicken Sie im Menü auf 'Start' und dann auf die Schaltfläche 'Auftrag abholen', um mit der Arbeit zu beginnen.", + q_2: "Wann erhalte ich die Provision für die von mir erledigten Aufgaben?", + a_2: "Sobald Ihre erledigte Aufgabe überprüft und als korrekt bestätigt wurde, wird die Provision innerhalb von 1 Stunde auf Ihr Konto auf unserer Website gutgeschrieben.", + q_3: 'Wie viele Aufgaben kann ich gleichzeitig übernehmen?', + a_3: "Sie können immer nur eine Aufgabe gleichzeitig übernehmen. Die Anzahl der Aufgaben, die Sie täglich erledigen können, wird je nach Ihrem Mitgliedschaftslevel und der Situation im Geschäft angepasst.", + q_4: "Was passiert, wenn ich eine Aufgabe nicht abschließen kann?", + a_4: "Wenn Sie eine Aufgabe nicht innerhalb der festgelegten Zeit abschließen können, wenden Sie sich bitte umgehend an unseren Kundenservice. Wir werden Ihnen eine geeignete Lösung oder Empfehlung basierend auf der konkreten Situation bieten.", + q_5: 'Wie kann ich meinen Mitgliedschaftslevel erhöhen?', + a_5: 'Mitgliedschaftslevel werden basierend auf den vom Kunden erledigten Aufgaben vergeben. Für weitere Details wenden Sie sich bitte an den Kundenservice.', + }, + home: { + cp_name: cp_name, + continue: 'Weiterhin Aufgaben erledigen', + notice: { + c_t: 'Herzlichen Glückwunsch an ', + f_e: 'verdient ', + }, + taskCarouse: { + title: 'Aufgabe', + }, + partners: { + title: 'Unsere Partner', + }, + introduce: { + i_f: 'Freunde einladen', + j_s: 'Lass uns jetzt beitreten', + c_c: 'Kopieren Sie den Empfehlungscode, um sich uns anzuschließen', + c_l: 'Einladungslink kopieren', + terms_a: 'Bedingungen & Vereinbarungen', + terms_c: 'Allgemeine Geschäftsbedingungen', + terms_c_1: 'Diese Allgemeinen Geschäftsbedingungen gelten für Ihre Nutzung dieser Website. Durch den Zugriff auf diese Website und/oder die Aktualisierung Ihrer Bestellung erklären Sie sich mit den folgenden Allgemeinen Geschäftsbedingungen einverstanden. Wenn Sie sich nicht an diese Allgemeinen Geschäftsbedingungen halten möchten, können Sie diese Website nicht nutzen oder darauf zugreifen.', + terms_c_2: 'Wenn Sie vor der Aktualisierung Ihrer Bestellung Fragen zu diesen Allgemeinen Geschäftsbedingungen haben, wenden Sie sich bitte an unser Kundenserviceteam, das 7 Tage die Woche für Sie da ist.', + terms_c_3: 'Erklärung', + terms_c_4: 'Bedingungen - diese Allgemeinen Geschäftsbedingungen und besondere Bedingungen', + terms_c_5: 'Produkte - die auf dieser Website gezeigten Produkte zur Verbesserung der Bewertungen', + terms_c_6: 'Produktbeschreibungen - die Abschnitte dieser Website, die bestimmte Bedingungen in Bezug auf einzelne Produkte enthalten', + terms_c_7: 'Besondere Bedingungen - die Bedingungen in der Produktbeschreibung', + terms_c_8: 'Dienstleistungen - die von uns im Rahmen der Produktaktualisierung für die Überprüfung bereitgestellten Agenturdienste gemäß der Agenturvereinbarung', + terms_c_9: 'Agent/Sie - der generische Begriff für Benutzer dieser Website', + terms_c_10: 'Von Ihnen bei der Registrierung bereitgestellte Details', + terms_c_11: 'Cookies - kleine Textdateien, die von dieser Website auf der Festplatte Ihres Computers abgelegt werden, um Informationen zu speichern und Ihren Computer zu identifizieren', + terms_c_12: 'Vereinbarung - die von diesen Allgemeinen Geschäftsbedingungen erfasste Agentur', + terms_c_13: '1.0 Erklärung', + terms_c_14: '1.1 Jede nach einem bestimmten Satz folgende Wortwahl oder ähnlicher Ausdruck ist als veranschaulichend zu verstehen und beschränkt nicht die Bedeutung der Worte, Beschreibungen, Definitionen, Phrasen oder Begriffe, die diesen Sätzen vorausgehen.', + terms_c_15: '1.1 Jede nach einem bestimmten Satz folgende Wortwahl oder ähnlicher Ausdruck ist als veranschaulichend zu verstehen und beschränkt nicht die Bedeutung der Worte, Beschreibungen, Definitionen, Phrasen oder Begriffe, die diesen Sätzen vorausgehen.', + terms_c_16: '2.0 Verantwortlichkeiten des Agenten', + terms_c_17: '2.1 Jeder Agent muss mindestens einen Satz Aufgaben abschließen, um von uns einen Bonus zu erhalten.', + terms_c_18: '2.2 Agenten können ihr Konto einmal pro Tag zurücksetzen. Jeder Agent kann maximal zwei Aufgaben pro Tag abschließen.', + terms_c_19: '2.3 Eine vorzeitige Erledigung von Aufgaben ist nicht gestattet, da dies zu einer Unterbrechung der Datenerfassung für den Verkauf führt.', + terms_c_20: '2.4 Agenten dürfen keine falschen Informationen in sozialen Medien veröffentlichen. Wir behalten uns das Recht vor, rechtliche Schritte einzuleiten.', + terms_c_21: '2.5 Einhaltung rechtlicher Verpflichtungen (Erfüllung unserer rechtlichen Verpflichtungen)', + terms_c_22: '2.6 Umgang mit Ansprüchen und Beschwerden sowie Suche nach Lösungen (Rechtsansprüche und rechtliche Ansprüche)', + terms_c_23: '3.0 Werbung oder digitale Medienagentur oder Internetdienstanbieter im Zusammenhang mit dem Programm', + terms_c_24: '3.1 Durch die Teilnahme am Programm verpflichten Sie sich, alle wahren, genauen, aktuellen und vollständigen Informationen einzureichen. Wir behalten uns das Recht vor, Ihre Berechtigung zu überprüfen.', + terms_c_25: '3.2 Wenn wir zum Zeitpunkt der Registrierung wissen oder vernünftige Gründe zu der Annahme haben, dass Sie nicht berechtigt sind, am Programm teilzunehmen, behalten wir uns das Recht vor, Sie zu disqualifizieren und einen anderen Produktprüfer auszuwählen.', + terms_c_26: '4.0 Unsere Haftung', + terms_c_27: '4.1 Wir sind nicht verantwortlich für technische Ausfälle oder Verkehrsstaus im Internet oder auf Websites oder eine Kombination dieser Faktoren oder für Unterbrechungen oder Störungen der Ausrüstung anderer Personen im Zusammenhang mit oder als Folge der Teilnahme.', + terms_c_28: '4.2 Wir sind nicht verantwortlich für diffamierendes Material, Verletzung von Rechten an geistigem Eigentum Dritter oder andere illegale Inhalte in Ihrem Beitrag.', + terms_c_29: '5.0 Werbung und Ihre persönlichen Daten', + terms_c_30: '5.1 Vorbehaltlich Ihrer Zustimmung können wir Ihren Benutzernamen zu Werbezwecken und/oder im Zusammenhang mit unseren Werbe-, Promotions- oder Marketingaktivitäten verwenden (wie in unseren Ankündigungen und Bewertungen, Allgemeinen Geschäftsbedingungen beschrieben).', + terms_c_31: '5.1 ist sich bewusst, dass Sie besorgt sind über unsere Verwendung Ihrer Informationen, und wir schätzen das Vertrauen, das Sie in uns setzen, um es sorgfältig und vernünftig zu verwenden. Alle von uns gesammelten Informationen unterliegen unserer Datenschutzrichtlinie, die festlegt, welche Informationen wir sammeln, was wir damit tun und zu welchen Zwecken wir diese Daten verwenden. Bitte beachten Sie unsere Datenschutzrichtlinie für weitere Details. Sie verstehen, dass wir durch die Teilnahme am Programm Ihre persönlichen Informationen gemäß der Datenschutzrichtlinie sammeln und verwenden werden, einschließlich der Weitergabe von Informationen an Lieferanten, die bei der Website und den Promotionen behilflich sind.', + terms_c_32: '5.3 Unter normalen Umständen ist die Plattform so konzipiert, dass sie nur Produkte abgleicht, deren Preis niedriger ist als das Kontoguthaben des Agenten. Händler können jedoch wählen, den Bereich der abgeglichenen Agenten zu erweitern, indem sie mindestens das Dreifache ihres Gehalts zahlen. Dies ermöglicht es dem Agenten, Paketaufträge zu erhalten, die über dem Kontostand liegen. Bei erfolgreicher Durchführung dieser Aufgaben erhalten die Agenten', + about_us: { + title: 'Über uns', + a_1: 'Unternehmensqualifikationen', + a_2: 'Warum verwendet dieses Programm USDT als Währung ? ', + a_3: 'Da das Programm sich der Bedienung von Händlern aus aller Welt widmet.Wir haben USDTals unsere Währung festgelegt,um Währungstransaktionen zu vereinheitlichen,die Verwaltung zu erleichtern und besser' + 'Menschen und Eigentum schützen.', + a_4: 'Kann ich meine Aufgaben jederzeit aktualisieren ? ', + a_5: 'Derzeit ist unsere Plattform von 9: 00 - 23: 00 geöffnet.Es wird nicht empfohlen,dass Agenten Bestellungen außerhalb der Arbeitszeiten erhöhen,um Fehlverhalten zu vermeiden.', + a_6: 'Was passiert,wenn ich nicht alle meine Bestellungen hinzufügen kann ? ', + a_7: 'Da das Programm auf positive Bewertungen unserer Agenten angewiesen ist,ist es wichtig,dass alle Agenten' + 'teilnehmen,um ihre Platzierung zu gewährleisten.Es werden entsprechende Strafen verhängt und die Mitgliedschaft des Agenten wird' + 'dauerhaft beendet.Ihre Promotion hilft nicht nur anderen Händlern,sondern informiert auch unsere Händler und trägt zur Verbesserung der Produkte bei.', + a_8: 'Kann ich meine Produktauswahl ändern ? ', + a_9: 'Sobald ein Produkt gecrawlt wurde,können Sie Ihre Produktauswahl nicht mehr ändern.Beim' + 'Upgrade eines Produkts lesen Sie bitte alle Informationen,die wir in den Allgemeinen Geschäftsbedingungen festgelegt haben,um sicherzustellen,dass Sie alle Programmbedingungen einhalten können.Zum Beispiel könnten' + 'Kompatibilitätsanforderungen für Elektronik bestehen,die nur mit bestimmter Software kompatibel sind.', + a_10: cp_name + ' Partners', + a_11: 'Unsere Partner', + a_12: cp_name + 'verfügt über ein florierendes Ökosystem von Allianzen,die Geschäftslösungen zur Lösung unserer' + 'geschäftlichen und technologischen Herausforderungen unserer Kunden bieten.Wir haben tiefe Beziehungen zu einem umfangreichen' + 'Netzwerk führender Technologieunternehmen,die Ihnen helfen können,sich zu transformieren und zu wachsen.', + a_13: 'Unser robustes Ökosystem hilft Partnern,das Umsatzwachstum zu steigern,den Markt und die geografische Reichweite zu erweitern,' + +'den Verkaufsprozess zu erleichtern und Produkt - und Serviceangebote zu verbessern.', + } + } + }, + invitation: { + title: 'Freunde einladen', + i_c: 'Einladungscode', + link: 'Empfehlungslink', + }, + language: { + title: 'Sprache', + u: 'Benutzername', + c_l: 'Sprache ändern', + l: 'Sprache', + }, + order: { + title: 'Bestellung', + order_no: 'Bestellung', + u_p: 'Stückpreis', + o_q: 'Bestellmenge', + total: 'Gesamt', + o_c: 'Bestellkommission', + c_t: 'Kompilierungszeit', + all: 'Alle', + completed: 'Abgeschlossen', + pending: 'Ausstehend', + frozen: 'Eingefroren', + }, + password: { + title: 'Passwort ändern', + old: 'Aktuelles Passwort', + new: 'Neues Passwort', + confirm_p: 'Passwort bestätigen', + note: 'Hinweis: Passwortänderungen sind auf einmal alle 72 Stunden begrenzt.', + not_match: 'Passwörter stimmen nicht überein.', + }, + payOrderDetail: { + title: 'Bestelldetails', + order_no: 'Bestellnummer:', + amount:'Betrag', + orderTime: 'Bestellzeit', + status:'Status', + pay_m:'Zahlungsmethode', + network:'Netzwerk', + address:'Adresse', + t_s_o:'Um die Bestellung zu starten', + referral: 'Empfehlungscode', + }, + profile: { + ph_no: 'Telefonnummer', + LV: 'LV', + i_c: 'Einladungscode', + level: 'Level', + dailyOrder: 'Tägliche Bestellung', + creditScore: 'Kredit', + ratio: 'Verhältnis', + todays: 'Heutige\'s', + t_order: 'Heutige', + t_order_a: 'Bestellbetrag', + t_commission: 'Kommission', + sign_in_reward: 'Einchecken', + enter_now: 'Jetzt betreten', + c_balance: 'Aktueller Kontostand', + w_success: 'Auszahlung erfolgreich', + records: 'Aufzeichnungen', + settings: 'Einstellungen', + i_f: 'Freunde einladen', + notification: 'Benachrichtigung', + help_guide: 'Hilfeleitfaden', + }, + service: { + title: 'Kundendienst', + c_s_c: 'Kundendienstzentrum', + online: 'Online - Service', + o_tips: 'Wenn Sie ein Problem haben,fragen Sie den Kundendienst', + o_tips_1: 'Online - Service: Problem mit dem Goldfluss', + o_t: 'Online - Zeit', + }, + settings: { + title: 'Einstellungen', + d_o: 'Tägliche Bestellungen', + d_w: 'Tägliche Auszahlung', + c: 'Kommission', + t_r: 'Team - Belohnung', + a: 'Konto', + t_1: 'Persönliche Informationen', + t_2: 'Passwort ändern', + t_3: 'USDT - Adresse binden', + t_4: 'Sprache', + t_5: 'Über uns', + }, + settingsPersonal: { + title: 'Benutzerinformationen', + profile: 'Profil', + p_1: 'Diese Informationen werden öffentlich angezeigt,also seien Sie vorsichtig,was Sie teilen.', + username: 'Benutzername', + about: 'Über', + a_1: 'Schreiben Sie ein paar Sätze über sich selbst.', + photo: 'Foto', + change: 'ändern', + p_i: 'Persönliche Informationen', + p_i_1: 'Verwenden Sie eine dauerhafte Adresse,an der Sie Post empfangen können.', + first_name: 'Vorname', + last_name: 'Nachname', + email: 'E - Mail - Adresse', + country: 'Land', + street: 'Straßenadresse', + street_p: '', + city: 'Stadt', + state: 'Bundesland / Provinz', + postal: 'Postleitzahl', + save: 'Speichern', + upload_error_1: 'Bitte laden Sie ein Bild hoch,das 500 x500 Pixel oder kleiner ist.', + upload_error_2: 'Bitte laden Sie eine Bilddatei hoch.', + upload_error_3: 'Hochladen des Avatars fehlgeschlagen,bitte versuchen Sie es später erneut', + }, + signIn: { + title: 'Melden Sie sich in Ihrem Konto an', + p_n: 'Telefonnummer', + country: 'Land', + password: 'Passwort', + remember: 'Erinnere dich an mich', + forgot: 'Passwort vergessen ? ', + sign_in: 'Anmelden', + n_a_m: 'Noch kein Mitglied ? ', + no_select_country: 'Bitte wählen Sie die Vorwahl Ihres Landes', + s_u_n: 'Jetzt anmelden!', + }, + signUp: { + title: 'Erstellen Sie ein neues Konto', + p_n: 'Telefonnummer', + country: 'Land', + password: 'Passwort', + c_p: 'Passwort bestätigen', + i_c: 'Einladungscode', + i_green: 'Ich stimme zu ', + r_a: '《Registrierungsvereinbarung》', + sign_up: 'Anmelden', + number_exist: 'Die Mobiltelefonnummer existiert bereits.Bitte melden Sie sich direkt an.', + no_select_country: 'Bitte wählen Sie die Vorwahl Ihres Landes', + i_code_not_exist: 'Der von Ihnen eingegebene Einladungscode existiert nicht.Bitte kontaktieren Sie Ihren Mentor.', + sign_up_success: 'Erfolgreich angemeldet!', + to_sign_in: 'Zum Anmelden', + }, + start: { + title: 'Start', + daily_order: 'Tägliche Bestellungen', + commission_ration: 'Kommissionsverhältnis', + free: 'Frei', + earned: 'Verdiente Kommission', + frozen: 'Eingefrorener Betrag', + completed_order: 'Abgeschlossene Bestellung', + available: 'Verfügbarer Saldo', + freeze_commission: 'Kumulative Auftragskommission', + freeze_c_desc: 'Dieser Betrag repräsentiert Ihre aktuelle kumulative Auftragssumme.Sie können ihn bei Aufgabenerfüllung abheben.', + g_order: 'Bestellung aufgeben', + order_desc: 'Bestellbeschreibung', + order_desc_1: '1. Jedes Konto kann pro Tag 38 Bestellungen abgleichen', + order_desc_2: '2. Die Kommission für die Aufgabe einer Bestellung ist einheitlich und entspricht 1,00 % des Gesamtbestellbetrags', + order_desc_3: '3. Das System basiert auf LBS - Technologie und gleicht Waren automatisch durch Cloud - Computing ab', + order_desc_5: '4. Sie können die Aufgabe nicht abbrechen.Sie müssen zuerst alle bestehenden unvollständigen Aufgaben abschließen,bevor Sie neue erhalten können.', + order_desc_6: '5. Jedes Konto kann pro Tag 38 Bestellungen abgleichen', + order_n: 'Hinweis', + order_n_1: 'Wenn die Plattform Bestellungen für Benutzer abgleicht,wird sie die Bestellinformationen an den Händler' + 'hintergrund.Wenn der Benutzer die Bestellung nicht innerhalb von 30 Minuten einreicht,wird der Bestellbetrag vom' + 'das System eingefroren.Um regulatorische Systeme zu vermeiden,werden Benutzerkonten bewertet,was direkt' + 'beeinflusst die nächste Abgleichszeit und den Ruf des Benutzers!Bitte klicken Sie rechtzeitig auf Bestellung stoppen,um zu vermeiden' + 'Zeitüberschreitung einfrieren.', + grabOrder: { + not_completed: 'Bitte schließen Sie zuerst die Bestellung ab', + not_completed_text: 'Bestellung prüfen', + order_limit: 'Die Bestellmenge des heutigen Tages hat das obere Limit erreicht', + order_limit_text: 'Bestätigen', + balance_not_enough: 'Saldo ist nicht ausreichend', + balance_not_enough_text: 'Aufladen', + no_order_available: 'Keine Bestellung verfügbar,bitte versuchen Sie es später erneut', + no_order_available_text: 'Bestätigen', + not_meet_start: 'erfüllt nicht die Startbedingung', + }, + + order_details: { + title: 'Bestellungsaufgabe', + u_p: 'Stückpreis', + o_q: 'Bestellmenge', + total: 'Gesamt', + o_c: 'Bestellkommission', + o_r: 'Bestellbewertung', + c_1: 'das Produkt ist sehr gut Endlich erhalten.das Produkt ist sehr gut Ich bin sehr zufrieden mit dem Produkt und empfehle es zu kaufen', + c_2: 'I am very happy and satisfied', + c_3: 'der Preis ist ziemlich vernünftig', + c_4: 'Die Verarbeitung ist sehr gut', + c_5: 'und ich mag es sehr', + c_6: 'Es sieht toll aus', + c_7: 'und mein Freund hat es zum zweiten Mal gekauft.', + balance_not_enough: 'Das Guthaben reicht nicht aus,um die Bestellung abzuschließen,bitte aufladen', + balance_not_enough_text: 'Aufladen', + order_submitted: 'Die Bestellung wurde eingereicht', + } + }, + + withdrawal: { + title: 'Auszahlung', + w: 'Auszahlung', + w_p: 'Geben Sie Ihr Zahlungspasswort ein', + c_b: 'aktueller Saldo', + s_w_a: 'Auszahlungsbetrag auswählen', + w_a: 'Wallet - Adresse', + m_w_a: 'Wallet - Adresse ändern', + enterPassword: 'Enter Password', + p_i: 'Sie haben eine Auszahlungsanforderung in Bearbeitung.Bitte warten Sie auf das Ergebnis.', + p_e: 'Zahlungspasswortfehler', + t_n_c: "Sie müssen die heutige Bestellungsaufgabe abschließen,bevor Sie Ihr Gehalt erhalten.", + c_s_n_m: 'Ihr Kreditscore erfüllt nicht die Bedingungen für eine Auszahlung,bitte erhöhen Sie Ihren Kreditscore', + }, + recharge: { + title: 'Aufladen', + amount_placeholder: 'auswählen oder hier eingeben', + }, + daily: { + title: 'Tägliches Einchecken', + c: 'Kontinuierlich', + a: 'Anhäufung', + r: 'Belohnung(USDT)', + btn: 'Einchecken', + task_not_compiled: 'Bitte schließen Sie zuerst die heutige Bestellungsaufgabe ab', + }, + common: { + confirm: 'Bestätigen', + cancel: 'Abbrechen', + loosing: 'Verlieren', + loading: 'Laden', + no_data: 'keine weiteren Daten', + submit: 'einreichen', + waring: 'Warnung', + error: 'Fehler', + insufficient: 'Unzureichend', + submitted: 'Eingereicht', + noResult: 'Keine Ergebnisse gefunden' + }, + main: { + home: 'Startseite', + order: 'Bestellung', + start: 'Start', + service: 'Service', + profile: 'Profil', + } +} \ No newline at end of file diff --git a/grailed_app/src/i18n/lang/en-us.ts b/grailed_app/src/i18n/lang/en-us.ts new file mode 100644 index 0000000..7256fbe --- /dev/null +++ b/grailed_app/src/i18n/lang/en-us.ts @@ -0,0 +1,384 @@ +import type { langType } from './lang-base' + +let cp_name = import.meta.env.VITE_APP_NAME; + +export const lang: langType = { + about: { + title: 'About', + profile: 'Company Qualifications', + h_1: 'Why does this program use USDT as currency?', + h_2: "Since the program is dedicated to serving merchants from all over the world, . We have fixed USDT as our currency in order to unify currency transactions, facilitate management and better protect people and property.", + h_3: 'Can I upgrade my tasks at any time?', + h_4: 'Currently our platform is open from 10.00-23.00. It is not recommended for agents to boost orders during non-working hours to avoid any misconduct.', + h_5: "What happens if I can't add all my orders?", + h_6: 'Since the program relies on positive reviews from our agents, it is important that all agents participate to ensure their placement. Penalties will be applied as relevant and the agent\'s membership will be permanently terminated. Not only does your promotion help other merchants, it also helps inform our merchants and contribute to product improvements.', + h_7: 'Can I change my product selection?', + h_8: 'Once a product has been crawled, you will not be able to change your product selection. When upgrading a product, please read all the information we have set forth in the Terms and Conditions to ensure that you can comply with all program requirements. For example, there may be compatibility requirements for electronics that are only compatible with specific software.', + h_9: 'Our Partners has a thriving ecosystem of alliances that provide business solutions to solve our customers\' business and technology challenges. We have deep relationships across an extensive network of leading technology companies that can help you transform and grow.', + h_10: 'Our robust ecosystem helps partners increase revenue growth, expand market and geographic reach, facilitate sales processes, and enhance product and service offerings.' + }, + balanceRecord: { + title: 'Balance Records', + }, + bindCrypto: { + title: 'Bind Address', + enterAddress: 'Enter address' + }, + channelSelect: { + title: 'Channel Select', + balance: 'Balance', + t_1: 'Select a you useful channel', + }, + helpGuide: { + title: 'Help Guide', + faq: 'FAQ', + q_1: 'How do I start taking tasks?', + a_1: "First, you need to register an account on our website. After registration, click on the 'start' menu, and then click the 'Grab Order' button to start working.", + q_2: "When will I receive the commission for the tasks I've completed?", + a_2: "Once your completed task is reviewed and confirmed to be correct, the commission will be credited to your account on our website within 1 hour.", + q_3: 'How many tasks can I take on at the same time?', + a_3: "You can only take one task at a time. The number of tasks you can complete each day will be adjusted based on your membership level and the shop's situation.", + q_4: "What if I can't complete a task?", + a_4: "If you can't complete a task within the stipulated time, please contact our customer service team promptly. We will provide you with a suitable solution or recommendation based on the specific situation.", + q_5: 'How can I upgrade my membership level?', + a_5: 'Membership levels are granted based on the tasks completed by the customer. For more details, please contact customer service.', + }, + home: { + cp_name: cp_name, + continue: 'Continue to do the task', + notice: { + c_t: 'Congratulations to ', + f_e: 'earned ', + }, + taskCarouse: { + title: 'Task', + }, + partners: { + title: 'Our Partners', + }, + introduce: { + i_f: 'Invite Friends', + j_s: 'Let\'s Join Us Now', + c_c: 'Copy the referral code to join us now', + c_l: 'Copy invitation link', + terms_a: 'Terms & Agreements', + terms_c: 'Terms & Conditions', + terms_c_1: 'These terms and conditions apply to your use of this website and by accessing this website and/or' + + ' updating your order, you agree to be bound by the following terms and conditions. If you do not' + + 'agree to be bound by these terms and conditions, you will not be able to use or access this website.', + terms_c_2: 'If you have any questions about these terms and conditions before updating your order, please contact our customer service team 7 days a week.', + terms_c_3: 'Explanation', + terms_c_4: 'Conditions - these terms and conditions and special conditions', + terms_c_5: 'Products - the products shown on this website to improve ratings', + terms_c_6: 'Product Descriptions - the sections of this website that provide certain terms and conditions relating to individual products', + terms_c_7: 'Special Conditions - the terms and conditions on the product description', + terms_c_8: 'Services - the agency services we provide for the products being updated for review, as described in the agency agreement', + terms_c_9: 'Agent/you - the generic term for users of this website Personal information', + terms_c_10: 'Details provided by you during registration', + terms_c_11: 'Cookies - small text files placed on your computer\'s hard drive by this website to store information and identify your computer', + terms_c_12: 'Agreement - the agent containing these terms and conditions', + terms_c_13: '1.0 Explanation', + terms_c_14: '1.1 Any words following a particular clause, for example, or any similar expression, shall be construed as illustrative and shall not limit the meaning of the words, descriptions, definitions, phrases or terms preceding those clauses.', + terms_c_15: '1.2 Unless otherwise stated, capital letters used in these terms and conditions (but not defined in these terms and conditions) shall have the meaning set out in the Agency Agreement.', + terms_c_16: '2.0 Responsibilities of the Agent', + terms_c_17: '2.1 Each Agent must complete at least one set of tasks in order to receive a bonus from us.', + terms_c_18: '2.2 Agents may reset their account once per day. Each agent can complete a maximum of two tasks per day.', + terms_c_19: '2.3 Early completion of tasks is not permitted as this will result in a break in sales data collection.', + terms_c_20: '2.4 Agents are not allowed to post or publish any false information on any type of social media. We reserve the right to seek legal liability.', + terms_c_21: '2.5 Compliance with legal obligations (meeting our legal obligations)', + terms_c_22: '2.6 Dealing with claims and complaints and seeking resolution (legal rights and legal claims)', + terms_c_23: '3.0 Any advertising or digital media agency or internet service provider in connection with the Programme', + terms_c_24: '3.1 By participating in the Program, you undertake to submit all true, accurate, current and complete information. We reserve the right to verify your eligibility.', + terms_c_25: '3.2 If we know or have reasonable grounds to believe at the time of registration that you are ' + + 'not eligible to participate in the Program, we reserve the right to disqualify you and ' + + 'select an alternative product reviewer.', + terms_c_26: '4.0 Our liability', + terms_c_27: '4.1 We are not responsible for technical failures or traffic congestion on the internet or any website, or any combination of these factors, or for any interruptions or disruptions to the equipment of any other person in connection with or as a result of participation.', + terms_c_28: '4.2 We are not responsible for any defamatory material, infringement of third party' + + 'intellectual property rights or other illegal material in your entry.', + terms_c_29: '5.0 Advertising and your personal data', + terms_c_30: '5.1 Subject to your consent, we may use your username for promotional purposes and/or in connection with our advertising, promotional or marketing activities (as described in our announcements and reviews, terms and conditions).', + terms_c_31: '5.1 is aware that you are concerned about our use of your information and we appreciate the' + +' trust you place in us to use it in a careful and reasonable manner. All information we' + +'collect will be subject to our Privacy Policy which sets out what information we collect,' + +' what we do with it and the purposes for which we use that data. Please refer to our Privacy' + +'Policy for further details. You understand that by joining the programme, will collect and' + +'use your personal information as described in the Privacy Policy, which includes sharing' + +'information with suppliers who assist with the website and promotions.', + terms_c_32: '5.3 As guided by normal circumstances, the platform is designed to match only products whose' + +'price is lower than the agent\'s account balance. However, merchants may choose to increase' + +'the range of agents matched by paying at least three times their salary. This will allow the' + +'agent to obtain package assignments priced above the account balance. Upon successful' + +'completion of these tasks, agents will receive', + about_us: { + title: 'About Us', + a_1: 'Company Qualifications', + a_2: 'Why does this program use USDT as currency?', + a_3: 'Since the program is dedicated to serving merchants from all over the world, . We' + +'have fixed USDT' + +'as our currency in order to unify currency transactions, facilitate management and better' + +'protect people and property.', + a_4: 'Can I upgrade my tasks at any time?', + a_5: 'Currently our platform is open from 9:00-23:00. It is not recommended for agents to boost orders during non-working hours to avoid any misconduct.', + a_6: 'What happens if I can\'t add all my orders?', + a_7: 'Since the program relies on positive reviews from our agents, it is important that all agents' + +'participate to ensure their placement. Penalties will be applied as relevant and the agent\'s' + +'membership will be permanently terminated. Not only does your promotion help other merchants, it' + +'also helps inform our merchants and contribute to product improvements.', + a_8: 'Can I change my product selection?', + a_9: 'Once a product has been crawled, you will not be able to change your product selection. When' + +'upgrading a product, please read all the information we have set forth in the Terms and' + +'Conditions to ensure that you can comply with all program requirements. For example, there may' + +'be compatibility requirements for electronics that are only compatible with specific software.', + a_10: cp_name + ' Partners', + a_11: 'Our Partners', + a_12: cp_name + ' has a thriving ecosystem of alliances that provide business solutions to solve our' + +'customers\' business and technology challenges. We have deep relationships across an extensive' + +'network of leading technology companies that can help you transform and grow.', + a_13: 'Our robust ecosystem helps partners increase revenue growth, expand market and geographic reach,' + +'facilitate sales processes, and enhance product and service offerings.', + } + } + }, + invitation: { + title: 'Invite Friends', + i_c: 'invitation Code', + link: 'Referral link', + }, + language: { + title: 'Language', + u: 'username', + c_l: 'Change Language', + l: 'Language', + }, + order: { + title: 'Order', + order_no: 'Order No', + u_p: 'Unit Price', + o_q: 'Order quantity', + total: 'Total', + o_c: 'Order Commission', + c_t: 'Compile Time', + all: 'All', + completed: 'Completed', + pending: 'Pending', + frozen: 'Frozen', + }, + password: { + title: 'Change Password', + old: 'Current Password', + new: 'New Password', + confirm_p: 'Confirm Password', + note: 'Note: Password changes are limited to once every 72 hours.', + not_match: 'Passwords do not match.', + }, + payOrderDetail: { + title: 'Order Details', + order_no: 'Order No:', + amount:'Amount', + orderTime: 'Order Time', + status:'Status', + pay_m:'Payment Method', + network:'Network', + address:'Address', + t_s_o:'To Start Order', + referral: 'Referral Code', + }, + profile: { + ph_no: 'Ph No', + LV: 'LV', + i_c: 'invitationCode', + level: 'Level', + dailyOrder: 'DailyOrder', + creditScore: 'Credit', + ratio: 'Ratio', + todays: 'Today\'s', + t_order: 'Orders', + t_order_a: 'Order Amount', + t_commission: 'Commission', + sign_in_reward: 'Check-in', + enter_now: 'Enter Now', + c_balance: 'Current Balance', + w_success: 'Withdrawal Successful', + records: 'Records', + settings: 'Settings', + i_f: 'Invite Friends', + notification: 'Notification', + help_guide: 'Help Guide', + }, + service: { + title: 'Customer Service', + c_s_c: 'Customer service center', + online: 'Online Service', + o_tips: 'If you have a problem,ask for customer service', + o_tips_1: 'Online Service :Gold flow problem', + o_t: 'Online time', + }, + settings: { + title: 'Settings', + d_o: 'Daily orders', + d_w: 'Daily withdrawal', + c: 'Commission', + t_r: 'Team Reward', + a: 'Account', + t_1: 'Personal Information', + t_2: 'Change Password', + t_3: 'Bind USDT Address', + t_4: 'Language', + t_5: 'About Us', + }, + settingsPersonal: { + title: 'User Information', + profile: 'Profile', + p_1: 'This information will be displayed publicly so be careful what you share.', + username: 'Username', + about: 'About', + a_1: 'Write a few sentences about yourself.', + photo: 'Photo', + change: 'change', + p_i: 'Personal Information', + p_i_1: 'Use a permanent address where you can receive mail.', + first_name: 'First Name', + last_name: 'Last Name', + email: 'Email address', + country: 'Country', + street: 'Street address', + street_p: '', + city: 'City', + state: 'State / Province', + postal: 'Postal code', + save: 'Save', + upload_error_1: 'Please upload an image that is 500x500 pixels or smaller.', + upload_error_2: 'Please upload an image file.', + upload_error_3: 'upload avatar failed, please try again late', + }, + signIn: { + title: 'Sign in to your account', + p_n: 'Phone Number', + country: 'Country', + password: 'Password', + remember: 'Remember Me', + forgot: 'Forgot password?', + sign_in: 'Sign In', + n_a_m: 'Not a member?', + no_select_country: 'Please select your country\'s area code', + s_u_n: 'Sign up Now!', + }, + signUp: { + title: 'Create a new account', + p_n: 'Phone Number', + country: 'Country', + password: 'Password', + c_p: 'Confirm password', + i_c: 'Invitation Code', + i_green: 'I agree with the ', + r_a: '《Registration Agreement》', + sign_up: 'Sign Up', + number_exist: 'The mobile number already exists. Please log in directly.', + no_select_country: 'Please select your country\'s area code', + i_code_not_exist: 'The invitation code you entered does not exist. Please contact your mentor.', + sign_up_success: 'Sign up successfully!', + to_sign_in: 'To Sign In', + + }, + start: { + title: 'Start', + daily_order: 'Daily Orders', + commission_ration: 'Commission Ratio', + free: 'Free', + earned: 'Earned Commission', + frozen: 'Frozen Amount', + completed_order: 'Completed Order', + available: 'Available Balance', + freeze_commission: 'Cumulative order commission', + freeze_c_desc: 'This amount represents your current cumulative order total. You can withdraw it upon task completion.', + g_order: 'Grab Order', + order_desc: 'Order description', + order_desc_1: '1.Each account can match 38 orders per day', + order_desc_2: '2.The commission for placing an order is uniform and equals to 1.00% of the total order amount', + order_desc_3: '3.The system is based on LBS technology and automatically matches goods through cloud computing', + order_desc_5: '4.You cannot cancel the task. You must first complete any existing unfinished tasks before you can receive new ones.', + order_desc_6: '5.Each account can match 38 orders per day', + order_n: 'Notice', + order_n_1: 'When the platform matches orders for users, it will submit the order information to the merchant' + +'background. If the user does not submit the order within 30 minutes, the order amount will be frozen by' + +'the system. In order to avoid regulatory systems, user accounts will be evaluated, which will directly' + +'affect the user\'s next matching time and reputation! Please click stop placing order in time to avoid' + +'timeout freeze.', + grabOrder: { + not_completed: 'Please complete the order first', + not_completed_text: 'To Check order', + order_limit: 'Today\'s order quantity has reached the upper limit', + order_limit_text: 'Confirm', + balance_not_enough: 'Balance is not enough', + balance_not_enough_text: 'Top up', + no_order_available: 'No order available, Please try again later', + no_order_available_text: 'Confirm', + not_meet_start: 'not meet start condition', + }, + order_details: { + title: 'Order task', + u_p: 'Unit Price', + o_q: 'Order quantity', + total: 'Total', + o_c: 'Order Commission', + o_r: 'order rating', + c_1: 'the product is very good Finally received it. the product is very good I am very satisfied with the product and recommend to buy it', + c_2: 'I am very happy and satisfied', + c_3: 'the price is quite reasonable', + c_4: 'The workmanship is very good', + c_5: 'and I like it very much', + c_6: 'It looks great', + c_7: 'and my friend has bought it for the second time.', + balance_not_enough: 'Balance is not enough to complete the order, please recharge', + balance_not_enough_text: 'Top up', + order_submitted: 'The order has been submitted', + } + }, + withdrawal: { + title: 'Withdrawal', + w: 'Withdrawal', + w_p: 'Enter Your Payment Password', + c_b: 'current balance', + s_w_a: 'select Withdrawal amount', + w_a: 'Wallet Address', + m_w_a: 'Modify Wallet Address', + enterPassword: 'Enter Password', + p_i: 'you have one withdrawal request in process. Please wait for the result.', + p_e: 'Payment Password Error', + t_n_c: "You need to complete today's order task before receiving your salary.", + c_s_n_m: 'Your credit score does not meet the conditions for withdrawal, please increase your credit score', + }, + recharge: { + title: 'Top Up', + amount_placeholder: 'select or type here', + }, + daily: { + title: 'Daily Check-in', + c: 'Continuous', + a: 'Accumulation', + r: 'Reward (USDT)', + btn: 'Check-in', + task_not_compiled: 'Please complete today order task first', + }, + common: { + confirm: 'Confirm', + cancel: 'Cancel', + loosing: 'loosing', + loading: 'loading', + no_data: 'no more data', + submit: 'submit', + waring: 'waring', + error: 'error', + insufficient: 'Insufficient', + submitted: 'Submitted', + noResult: 'No results found' + }, + main: { + home: 'Home', + order: 'Order', + start: 'Start', + service: 'Service', + profile: 'Profile', + } +} \ No newline at end of file diff --git a/grailed_app/src/i18n/lang/en-us2.ts b/grailed_app/src/i18n/lang/en-us2.ts new file mode 100644 index 0000000..18b128c --- /dev/null +++ b/grailed_app/src/i18n/lang/en-us2.ts @@ -0,0 +1,355 @@ +import type { langType } from './lang-base' + +let cp_name = import.meta.env.VITE_APP_NAME; + +export const lang: langType = { + about: { + title: 'Über uns', + profile: 'Unternehmensqualifikationen', + h_1: 'Warum verwendet dieses Programm USDT als Währung?', + h_2: "Da das Programm dazu dient, Händler aus der ganzen Welt zu bedienen, haben wir USDT als unsere Währung festgelegt, um Währungstransaktionen zu vereinheitlichen, die Verwaltung zu erleichtern und Menschen und Eigentum besser zu schützen.", + h_3: 'Kann ich meine Aufgaben jederzeit aktualisieren?', + h_4: 'Derzeit ist unsere Plattform von 10.00 bis 23.00 Uhr geöffnet. Es wird nicht empfohlen, Bestellungen außerhalb der Arbeitszeiten zu beschleunigen, um Fehlverhalten zu vermeiden.', + h_5: "Was passiert, wenn ich nicht alle meine Bestellungen hinzufügen kann?", + h_6: 'Da das Programm auf positiven Bewertungen unserer Agenten beruht, ist es wichtig, dass alle Agenten teilnehmen, um ihre Platzierung sicherzustellen. Strafen werden entsprechend angewendet und die Mitgliedschaft des Agenten wird dauerhaft beendet. Ihre Förderung hilft nicht nur anderen Händlern, sondern informiert auch unsere Händler und trägt zur Produktverbesserung bei.', + h_7: 'Kann ich meine Produktauswahl ändern?', + h_8: 'Sobald ein Produkt gecrawlt wurde, können Sie Ihre Produktauswahl nicht mehr ändern. Wenn Sie ein Produkt aktualisieren, lesen Sie bitte alle Informationen, die wir in den Allgemeinen Geschäftsbedingungen festgelegt haben, um sicherzustellen, dass Sie alle Programmbedingungen erfüllen können. Es können beispielsweise Kompatibilitätsanforderungen für Elektronik bestehen, die nur mit bestimmter Software kompatibel sind.', + h_9: 'Unsere Partner verfügen über ein blühendes Ökosystem von Allianzen, die Geschäftslösungen zur Bewältigung der geschäftlichen und technologischen Herausforderungen unserer Kunden bieten. Wir haben enge Beziehungen zu einem umfangreichen Netzwerk führender Technologieunternehmen, die Ihnen bei der Transformation und dem Wachstum helfen können.', + h_10: 'Unser robustes Ökosystem hilft Partnern, das Umsatzwachstum zu steigern, den Markt- und geografischen Bereich zu erweitern, Verkaufsprozesse zu erleichtern und Produkt- und Serviceangebote zu verbessern.' + }, + balanceRecord: { + title: 'Kontostandprotokolle', + }, + bindCrypto: { + title: 'Bindungsadresse', + enterAddress: 'Adresse eingeben' + }, + channelSelect: { + title: 'Kanal auswählen', + balance: 'Kontostand', + t_1: 'Wählen Sie einen für Sie nützlichen Kanal aus', + }, + helpGuide: { + title: 'Hilfeleitfaden', + faq: 'FAQ', + q_1: 'Wie fange ich an, Aufgaben zu übernehmen?', + a_1: "Zuerst müssen Sie ein Konto auf unserer Website registrieren. Nach der Registrierung klicken Sie im Menü auf 'Start' und dann auf die Schaltfläche 'Auftrag abholen', um mit der Arbeit zu beginnen.", + q_2: "Wann erhalte ich die Provision für die von mir erledigten Aufgaben?", + a_2: "Sobald Ihre erledigte Aufgabe überprüft und als korrekt bestätigt wurde, wird die Provision innerhalb von 1 Stunde auf Ihr Konto auf unserer Website gutgeschrieben.", + q_3: 'Wie viele Aufgaben kann ich gleichzeitig übernehmen?', + a_3: "Sie können immer nur eine Aufgabe gleichzeitig übernehmen. Die Anzahl der Aufgaben, die Sie täglich erledigen können, wird je nach Ihrem Mitgliedschaftslevel und der Situation im Geschäft angepasst.", + q_4: "Was passiert, wenn ich eine Aufgabe nicht abschließen kann?", + a_4: "Wenn Sie eine Aufgabe nicht innerhalb der festgelegten Zeit abschließen können, wenden Sie sich bitte umgehend an unseren Kundenservice. Wir werden Ihnen eine geeignete Lösung oder Empfehlung basierend auf der konkreten Situation bieten.", + q_5: 'Wie kann ich meinen Mitgliedschaftslevel erhöhen?', + a_5: 'Mitgliedschaftslevel werden basierend auf den vom Kunden erledigten Aufgaben vergeben. Für weitere Details wenden Sie sich bitte an den Kundenservice.', + }, + home: { + cp_name: cp_name, + continue: 'Weiterhin Aufgaben erledigen', + notice: { + c_t: 'Herzlichen Glückwunsch an ', + f_e: 'verdient ', + }, + taskCarouse: { + title: 'Aufgabe', + }, + partners: { + title: 'Unsere Partner', + }, + introduce: { + i_f: 'Freunde einladen', + j_s: 'Lass uns jetzt beitreten', + c_c: 'Kopieren Sie den Empfehlungscode, um sich uns anzuschließen', + c_l: 'Einladungslink kopieren', + terms_a: 'Bedingungen & Vereinbarungen', + terms_c: 'Allgemeine Geschäftsbedingungen', + terms_c_1: 'Diese Allgemeinen Geschäftsbedingungen gelten für Ihre Nutzung dieser Website. Durch den Zugriff auf diese Website und/oder die Aktualisierung Ihrer Bestellung erklären Sie sich mit den folgenden Allgemeinen Geschäftsbedingungen einverstanden. Wenn Sie sich nicht an diese Allgemeinen Geschäftsbedingungen halten möchten, können Sie diese Website nicht nutzen oder darauf zugreifen.', + terms_c_2: 'Wenn Sie vor der Aktualisierung Ihrer Bestellung Fragen zu diesen Allgemeinen Geschäftsbedingungen haben, wenden Sie sich bitte an unser Kundenserviceteam, das 7 Tage die Woche für Sie da ist.', + terms_c_3: 'Erklärung', + terms_c_4: 'Bedingungen - diese Allgemeinen Geschäftsbedingungen und besondere Bedingungen', + terms_c_5: 'Produkte - die auf dieser Website gezeigten Produkte zur Verbesserung der Bewertungen', + terms_c_6: 'Produktbeschreibungen - die Abschnitte dieser Website, die bestimmte Bedingungen in Bezug auf einzelne Produkte enthalten', + terms_c_7: 'Besondere Bedingungen - die Bedingungen in der Produktbeschreibung', + terms_c_8: 'Dienstleistungen - die von uns im Rahmen der Produktaktualisierung für die Überprüfung bereitgestellten Agenturdienste gemäß der Agenturvereinbarung', + terms_c_9: 'Agent/Sie - der generische Begriff für Benutzer dieser Website', + terms_c_10: 'Von Ihnen bei der Registrierung bereitgestellte Details', + terms_c_11: 'Cookies - kleine Textdateien, die von dieser Website auf der Festplatte Ihres Computers abgelegt werden, um Informationen zu speichern und Ihren Computer zu identifizieren', + terms_c_12: 'Vereinbarung - die von diesen Allgemeinen Geschäftsbedingungen erfasste Agentur', + terms_c_13: '1.0 Erklärung', + terms_c_14: '1.1 Jede nach einem bestimmten Satz folgende Wortwahl oder ähnlicher Ausdruck ist als veranschaulichend zu verstehen und beschränkt nicht die Bedeutung der Worte, Beschreibungen, Definitionen, Phrasen oder Begriffe, die diesen Sätzen vorausgehen.', + terms_c_15: '1.1 Jede nach einem bestimmten Satz folgende Wortwahl oder ähnlicher Ausdruck ist als veranschaulichend zu verstehen und beschränkt nicht die Bedeutung der Worte, Beschreibungen, Definitionen, Phrasen oder Begriffe, die diesen Sätzen vorausgehen.', + terms_c_16: '2.0 Verantwortlichkeiten des Agenten', + terms_c_17: '2.1 Jeder Agent muss mindestens einen Satz Aufgaben abschließen, um von uns einen Bonus zu erhalten.', + terms_c_18: '2.2 Agenten können ihr Konto einmal pro Tag zurücksetzen. Jeder Agent kann maximal zwei Aufgaben pro Tag abschließen.', + terms_c_19: '2.3 Eine vorzeitige Erledigung von Aufgaben ist nicht gestattet, da dies zu einer Unterbrechung der Datenerfassung für den Verkauf führt.', + terms_c_20: '2.4 Agenten dürfen keine falschen Informationen in sozialen Medien veröffentlichen. Wir behalten uns das Recht vor, rechtliche Schritte einzuleiten.', + terms_c_21: '2.5 Einhaltung rechtlicher Verpflichtungen (Erfüllung unserer rechtlichen Verpflichtungen)', + terms_c_22: '2.6 Umgang mit Ansprüchen und Beschwerden sowie Suche nach Lösungen (Rechtsansprüche und rechtliche Ansprüche)', + terms_c_23: '3.0 Werbung oder digitale Medienagentur oder Internetdienstanbieter im Zusammenhang mit dem Programm', + terms_c_24: '3.1 Durch die Teilnahme am Programm verpflichten Sie sich, alle wahren, genauen, aktuellen und vollständigen Informationen einzureichen. Wir behalten uns das Recht vor, Ihre Berechtigung zu überprüfen.', + terms_c_25: '3.2 Wenn wir zum Zeitpunkt der Registrierung wissen oder vernünftige Gründe zu der Annahme haben, dass Sie nicht berechtigt sind, am Programm teilzunehmen, behalten wir uns das Recht vor, Sie zu disqualifizieren und einen anderen Produktprüfer auszuwählen.', + terms_c_26: '4.0 Unsere Haftung', + terms_c_27: '4.1 Wir sind nicht verantwortlich für technische Ausfälle oder Verkehrsstaus im Internet oder auf Websites oder eine Kombination dieser Faktoren oder für Unterbrechungen oder Störungen der Ausrüstung anderer Personen im Zusammenhang mit oder als Folge der Teilnahme.', + terms_c_28: '4.2 Wir sind nicht verantwortlich für diffamierendes Material, Verletzung von Rechten an geistigem Eigentum Dritter oder andere illegale Inhalte in Ihrem Beitrag.', + terms_c_29: '5.0 Werbung und Ihre persönlichen Daten', + terms_c_30: '5.1 Vorbehaltlich Ihrer Zustimmung können wir Ihren Benutzernamen zu Werbezwecken und/oder im Zusammenhang mit unseren Werbe-, Promotions- oder Marketingaktivitäten verwenden (wie in unseren Ankündigungen und Bewertungen, Allgemeinen Geschäftsbedingungen beschrieben).', + terms_c_31: '5.1 ist sich bewusst, dass Sie besorgt sind über unsere Verwendung Ihrer Informationen, und wir schätzen das Vertrauen, das Sie in uns setzen, um es sorgfältig und vernünftig zu verwenden. Alle von uns gesammelten Informationen unterliegen unserer Datenschutzrichtlinie, die festlegt, welche Informationen wir sammeln, was wir damit tun und zu welchen Zwecken wir diese Daten verwenden. Bitte beachten Sie unsere Datenschutzrichtlinie für weitere Details. Sie verstehen, dass wir durch die Teilnahme am Programm Ihre persönlichen Informationen gemäß der Datenschutzrichtlinie sammeln und verwenden werden, einschließlich der Weitergabe von Informationen an Lieferanten, die bei der Website und den Promotionen behilflich sind.', + terms_c_32: '5.3 Unter normalen Umständen ist die Plattform so konzipiert, dass sie nur Produkte abgleicht, deren Preis niedriger ist als das Kontoguthaben des Agenten. Händler können jedoch wählen, den Bereich der abgeglichenen Agenten zu erweitern, indem sie mindestens das Dreifache ihres Gehalts zahlen. Dies ermöglicht es dem Agenten, Paketaufträge zu erhalten, die über dem Kontostand liegen. Bei erfolgreicher Durchführung dieser Aufgaben erhalten die Agenten', + about_us: { + title: 'Über uns', + a_1: 'Unternehmensqualifikationen', + a_2: 'Warum verwendet dieses Programm USDT als Währung ? ', + a_3: 'Da das Programm sich der Bedienung von Händlern aus aller Welt widmet.Wir haben USDTals unsere Währung festgelegt,um Währungstransaktionen zu vereinheitlichen,die Verwaltung zu erleichtern und besser' + 'Menschen und Eigentum schützen.', + a_4: 'Kann ich meine Aufgaben jederzeit aktualisieren ? ', + a_5: 'Derzeit ist unsere Plattform von 9: 00 - 23: 00 geöffnet.Es wird nicht empfohlen,dass Agenten Bestellungen außerhalb der Arbeitszeiten erhöhen,um Fehlverhalten zu vermeiden.', + a_6: 'Was passiert,wenn ich nicht alle meine Bestellungen hinzufügen kann ? ', + a_7: 'Da das Programm auf positive Bewertungen unserer Agenten angewiesen ist,ist es wichtig,dass alle Agenten' + 'teilnehmen,um ihre Platzierung zu gewährleisten.Es werden entsprechende Strafen verhängt und die Mitgliedschaft des Agenten wird' + 'dauerhaft beendet.Ihre Promotion hilft nicht nur anderen Händlern,sondern informiert auch unsere Händler und trägt zur Verbesserung der Produkte bei.', + a_8: 'Kann ich meine Produktauswahl ändern ? ', + a_9: 'Sobald ein Produkt gecrawlt wurde,können Sie Ihre Produktauswahl nicht mehr ändern.Beim' + 'Upgrade eines Produkts lesen Sie bitte alle Informationen,die wir in den Allgemeinen Geschäftsbedingungen festgelegt haben,um sicherzustellen,dass Sie alle Programmbedingungen einhalten können.Zum Beispiel könnten' + 'Kompatibilitätsanforderungen für Elektronik bestehen,die nur mit bestimmter Software kompatibel sind.', + a_10: cp_name + ' Partners', + a_11: 'Unsere Partner', + a_12: cp_name + 'verfügt über ein florierendes Ökosystem von Allianzen,die Geschäftslösungen zur Lösung unserer' + 'geschäftlichen und technologischen Herausforderungen unserer Kunden bieten.Wir haben tiefe Beziehungen zu einem umfangreichen' + 'Netzwerk führender Technologieunternehmen,die Ihnen helfen können,sich zu transformieren und zu wachsen.', + a_13: 'Unser robustes Ökosystem hilft Partnern,das Umsatzwachstum zu steigern,den Markt und die geografische Reichweite zu erweitern,' + +'den Verkaufsprozess zu erleichtern und Produkt - und Serviceangebote zu verbessern.', + } + } + }, + invitation: { + title: 'Freunde einladen', + i_c: 'Einladungscode', + link: 'Empfehlungslink', + }, + language: { + title: 'Sprache', + u: 'Benutzername', + c_l: 'Sprache ändern', + l: 'Sprache', + }, + order: { + title: 'Bestellung', + order_no: 'Bestellung', + u_p: 'Stückpreis', + o_q: 'Bestellmenge', + total: 'Gesamt', + o_c: 'Bestellkommission', + c_t: 'Kompilierungszeit', + all: 'Alle', + completed: 'Abgeschlossen', + pending: 'Ausstehend', + frozen: 'Eingefroren', + }, + password: { + title: 'Passwort ändern', + old: 'Aktuelles Passwort', + new: 'Neues Passwort', + confirm_p: 'Passwort bestätigen', + note: 'Hinweis: Passwortänderungen sind auf einmal alle 72 Stunden begrenzt.', + not_match: 'Passwörter stimmen nicht überein.', + }, + payOrderDetail: { + title: 'Bestelldetails', + order_no: 'Bestellnummer:', + amount:'Betrag', + orderTime: 'Bestellzeit', + status:'Status', + pay_m:'Zahlungsmethode', + network:'Netzwerk', + address:'Adresse', + t_s_o:'Um die Bestellung zu starten', + referral: 'Empfehlungscode', + }, + profile: { + ph_no: 'Telefonnummer', + LV: 'LV', + i_c: 'Einladungscode', + level: 'Level', + dailyOrder: 'Tägliche Bestellung', + creditScore: 'Kredit', + ratio: 'Verhältnis', + todays: 'Heutige\'s', + t_order: 'Heutige', + t_order_a: 'Bestellbetrag', + t_commission: 'Kommission', + sign_in_reward: 'Einchecken', + enter_now: 'Jetzt betreten', + c_balance: 'Aktueller Kontostand', + w_success: 'Auszahlung erfolgreich', + records: 'Aufzeichnungen', + settings: 'Einstellungen', + i_f: 'Freunde einladen', + notification: 'Benachrichtigung', + help_guide: 'Hilfeleitfaden', + }, + service: { + title: 'Kundendienst', + c_s_c: 'Kundendienstzentrum', + online: 'Online - Service', + o_tips: 'Wenn Sie ein Problem haben,fragen Sie den Kundendienst', + o_tips_1: 'Online - Service: Problem mit dem Goldfluss', + o_t: 'Online - Zeit', + }, + settings: { + title: 'Einstellungen', + d_o: 'Tägliche Bestellungen', + d_w: 'Tägliche Auszahlung', + c: 'Kommission', + t_r: 'Team - Belohnung', + a: 'Konto', + t_1: 'Persönliche Informationen', + t_2: 'Passwort ändern', + t_3: 'USDT - Adresse binden', + t_4: 'Sprache', + t_5: 'Über uns', + }, + settingsPersonal: { + title: 'Benutzerinformationen', + profile: 'Profil', + p_1: 'Diese Informationen werden öffentlich angezeigt,also seien Sie vorsichtig,was Sie teilen.', + username: 'Benutzername', + about: 'Über', + a_1: 'Schreiben Sie ein paar Sätze über sich selbst.', + photo: 'Foto', + change: 'ändern', + p_i: 'Persönliche Informationen', + p_i_1: 'Verwenden Sie eine dauerhafte Adresse,an der Sie Post empfangen können.', + first_name: 'Vorname', + last_name: 'Nachname', + email: 'E - Mail - Adresse', + country: 'Land', + street: 'Straßenadresse', + street_p: '', + city: 'Stadt', + state: 'Bundesland / Provinz', + postal: 'Postleitzahl', + save: 'Speichern', + upload_error_1: 'Bitte laden Sie ein Bild hoch,das 500 x500 Pixel oder kleiner ist.', + upload_error_2: 'Bitte laden Sie eine Bilddatei hoch.', + upload_error_3: 'Hochladen des Avatars fehlgeschlagen,bitte versuchen Sie es später erneut', + }, + signIn: { + title: 'Melden Sie sich in Ihrem Konto an', + p_n: 'Telefonnummer', + country: 'Land', + password: 'Passwort', + remember: 'Erinnere dich an mich', + forgot: 'Passwort vergessen ? ', + sign_in: 'Anmelden', + n_a_m: 'Noch kein Mitglied ? ', + no_select_country: 'Bitte wählen Sie die Vorwahl Ihres Landes', + s_u_n: 'Jetzt anmelden!', + }, + signUp: { + title: 'Erstellen Sie ein neues Konto', + p_n: 'Telefonnummer', + country: 'Land', + password: 'Passwort', + c_p: 'Passwort bestätigen', + i_c: 'Einladungscode', + i_green: 'Ich stimme zu ', + r_a: '《Registrierungsvereinbarung》', + sign_up: 'Anmelden', + number_exist: 'Die Mobiltelefonnummer existiert bereits.Bitte melden Sie sich direkt an.', + no_select_country: 'Bitte wählen Sie die Vorwahl Ihres Landes', + i_code_not_exist: 'Der von Ihnen eingegebene Einladungscode existiert nicht.Bitte kontaktieren Sie Ihren Mentor.', + sign_up_success: 'Erfolgreich angemeldet!', + to_sign_in: 'Zum Anmelden', + }, + start: { + title: 'Start', + daily_order: 'Tägliche Bestellungen', + commission_ration: 'Kommissionsverhältnis', + free: 'Frei', + earned: 'Verdiente Kommission', + frozen: 'Eingefrorener Betrag', + completed_order: 'Abgeschlossene Bestellung', + available: 'Verfügbarer Saldo', + freeze_commission: 'Kumulative Auftragskommission', + freeze_c_desc: 'Dieser Betrag repräsentiert Ihre aktuelle kumulative Auftragssumme.Sie können ihn bei Aufgabenerfüllung abheben.', + g_order: 'Bestellung aufgeben', + order_desc: 'Bestellbeschreibung', + order_desc_1: '1. Jedes Konto kann pro Tag 38 Bestellungen abgleichen', + order_desc_2: '2. Die Kommission für die Aufgabe einer Bestellung ist einheitlich und entspricht 1,00 % des Gesamtbestellbetrags', + order_desc_3: '3. Das System basiert auf LBS - Technologie und gleicht Waren automatisch durch Cloud - Computing ab', + order_desc_5: '4. Sie können die Aufgabe nicht abbrechen.Sie müssen zuerst alle bestehenden unvollständigen Aufgaben abschließen,bevor Sie neue erhalten können.', + order_desc_6: '5. Jedes Konto kann pro Tag 38 Bestellungen abgleichen', + order_n: 'Hinweis', + order_n_1: 'Wenn die Plattform Bestellungen für Benutzer abgleicht,wird sie die Bestellinformationen an den Händler' + 'hintergrund.Wenn der Benutzer die Bestellung nicht innerhalb von 30 Minuten einreicht,wird der Bestellbetrag vom' + 'das System eingefroren.Um regulatorische Systeme zu vermeiden,werden Benutzerkonten bewertet,was direkt' + 'beeinflusst die nächste Abgleichszeit und den Ruf des Benutzers!Bitte klicken Sie rechtzeitig auf Bestellung stoppen,um zu vermeiden' + 'Zeitüberschreitung einfrieren.', + grabOrder: { + not_completed: 'Bitte schließen Sie zuerst die Bestellung ab', + not_completed_text: 'Bestellung prüfen', + order_limit: 'Die Bestellmenge des heutigen Tages hat das obere Limit erreicht', + order_limit_text: 'Bestätigen', + balance_not_enough: 'Saldo ist nicht ausreichend', + balance_not_enough_text: 'Aufladen', + no_order_available: 'Keine Bestellung verfügbar,bitte versuchen Sie es später erneut', + no_order_available_text: 'Bestätigen', + not_meet_start: 'erfüllt nicht die Startbedingung', + }, + + order_details: { + title: 'Bestellungsaufgabe', + u_p: 'Stückpreis', + o_q: 'Bestellmenge', + total: 'Gesamt', + o_c: 'Bestellkommission', + o_r: 'Bestellbewertung', + c_1: 'das Produkt ist sehr gut Endlich erhalten.das Produkt ist sehr gut Ich bin sehr zufrieden mit dem Produkt und empfehle es zu kaufen', + c_2: 'I am very happy and satisfied', + c_3: 'der Preis ist ziemlich vernünftig', + c_4: 'Die Verarbeitung ist sehr gut', + c_5: 'und ich mag es sehr', + c_6: 'Es sieht toll aus', + c_7: 'und mein Freund hat es zum zweiten Mal gekauft.', + balance_not_enough: 'Das Guthaben reicht nicht aus,um die Bestellung abzuschließen,bitte aufladen', + balance_not_enough_text: 'Aufladen', + order_submitted: 'Die Bestellung wurde eingereicht', + } + }, + + withdrawal: { + title: 'Auszahlung', + w: 'Auszahlung', + w_p: 'Geben Sie Ihr Zahlungspasswort ein', + c_b: 'aktueller Saldo', + s_w_a: 'Auszahlungsbetrag auswählen', + w_a: 'Wallet - Adresse', + m_w_a: 'Wallet - Adresse ändern', + enterPassword: 'Enter Password', + p_i: 'Sie haben eine Auszahlungsanforderung in Bearbeitung.Bitte warten Sie auf das Ergebnis.', + p_e: 'Zahlungspasswortfehler', + t_n_c: "Sie müssen die heutige Bestellungsaufgabe abschließen,bevor Sie Ihr Gehalt erhalten.", + c_s_n_m: 'Ihr Kreditscore erfüllt nicht die Bedingungen für eine Auszahlung,bitte erhöhen Sie Ihren Kreditscore', + }, + recharge: { + title: 'Aufladen', + amount_placeholder: 'auswählen oder hier eingeben', + }, + daily: { + title: 'Tägliches Einchecken', + c: 'Kontinuierlich', + a: 'Anhäufung', + r: 'Belohnung(USDT)', + btn: 'Einchecken', + task_not_compiled: 'Bitte schließen Sie zuerst die heutige Bestellungsaufgabe ab', + }, + common: { + confirm: 'Bestätigen', + cancel: 'Abbrechen', + loosing: 'Verlieren', + loading: 'Laden', + no_data: 'keine weiteren Daten', + submit: 'einreichen', + waring: 'Warnung', + error: 'Fehler', + insufficient: 'Unzureichend', + submitted: 'Eingereicht', + noResult: 'Keine Ergebnisse gefunden' + }, + main: { + home: 'Startseite', + order: 'Bestellung', + start: 'Start', + service: 'Service', + profile: 'Profil', + } +} \ No newline at end of file diff --git a/grailed_app/src/i18n/lang/lang-base.ts b/grailed_app/src/i18n/lang/lang-base.ts new file mode 100644 index 0000000..bca0ab3 --- /dev/null +++ b/grailed_app/src/i18n/lang/lang-base.ts @@ -0,0 +1,353 @@ +export type langType = { + show:{ + + + }, + about: { + title: string; + profile: string; + h_1: string; + h_2: string; + h_3: string; + h_4: string; + h_5: string; + h_6: string; + h_7: string; + h_8: string; + h_9: string; + h_10: string; + }, + balanceRecord: { + title: string; + }, + bindCrypto: { + title: string; + enterAddress: string + }, + channelSelect: { + title: string; + balance: string; + t_1: string; + }, + helpGuide: { + title: string; + faq: string; + q_1: string; + a_1: string; + q_2: string; + a_2: string; + q_3: string; + a_3: string; + q_4: string; + a_4: string; + q_5: string; + a_5: string; + }, + home: { + cp_name: string; + continue: string; + notice: { + c_t: string + f_e: string + }, + taskCarouse: { + title: string; + }, + partners: { + title: string; + }, + introduce: { + i_f: string; + j_s: string; + c_c: string; + c_l: string; + terms_a: string; + terms_c: string; + terms_c_1: string + terms_c_2: string + terms_c_3: string + terms_c_4: string + terms_c_5: string + terms_c_6: string + terms_c_7: string + terms_c_8: string + terms_c_9: string + terms_c_10: string + terms_c_11: string + terms_c_12: string + terms_c_13: string + terms_c_14: string + terms_c_15: string + terms_c_16: string + terms_c_17: string + terms_c_18: string + terms_c_19: string + terms_c_20: string + terms_c_21: string + terms_c_22: string + terms_c_23: string + terms_c_24: string + terms_c_25: string + terms_c_26: string + terms_c_27: string + terms_c_28: string + terms_c_29: string + terms_c_30: string + terms_c_31: string + terms_c_32: string + about_us: { + title: string; + a_1: string; + a_2: string; + a_3: string; + a_4: string; + a_5: string; + a_6: string; + a_7: string; + a_8: string; + a_9: string; + a_10: string; + a_11: string; + a_12: string; + a_13: string; + } + } + }, + invitation: { + title: string; + i_c: string; + link: string; + }, + language: { + title: string; + u: string; + c_l: string; + l: string; + }, + order: { + title: string; + order_no: string; + u_p: string; + o_q: string; + total: string; + o_c: string; + c_t: string; + all: string; + completed: string; + pending: string; + frozen: string; + }, + password: { + title: string; + old: string; + new: string; + confirm_p: string; + note: string; + not_match: string; + }, + payOrderDetail: { + title: string; + order_no: string; + amount:string; + orderTime: string; + status:string; + pay_m:string; + network:string; + address:string; + t_s_o:string; + referral:string; + }, + profile: { + ph_no: string; + LV: string; + i_c: string; + level: string; + dailyOrder: string; + creditScore:string; + ratio: string; + todays:string; + t_order: string; + t_order_a: string; + t_commission: string; + sign_in_reward: string; + enter_now: string; + c_balance: string; + w_success: string; + records: string; + settings: string; + i_f: string; + notification: string; + help_guide: string; + }, + service: { + title: string; + c_s_c: string; + online: string; + o_tips: string; + o_tips_1: string; + o_t: string; + }, + settings: { + title: string; + d_o: string; + d_w: string; + c: string; + t_r: string; + a: string; + t_1: string; + t_2: string; + t_3: string; + t_4: string; + t_5: string; + }, + settingsPersonal: { + title: string; + profile: string; + p_1: string; + username: string; + about: string; + a_1: string; + change:string; + photo: string; + p_i: string; + p_i_1: string; + first_name: string; + last_name: string; + email: string; + country: string; + street: string; + street_p: string; + city: string; + state: string; + postal: string; + save: string; + upload_error_1: string; + upload_error_2: string; + upload_error_3: string; + }, + signIn: { + title: string; + p_n: string; + country: string; + password: string; + remember: string; + forgot: string; + sign_in: string; + no_select_country:string + n_a_m: string; + s_u_n: string; + }, + signUp: { + title: string; + p_n: string; + country: string; + password: string; + r_a:string; + c_p: string; + i_c: string; + i_code_not_exist:string; + no_select_country:string + i_green: string; + sign_up: string; + number_exist: string; + sign_up_success: string; + to_sign_in: string; + + }, + start: { + title: string; + daily_order: string; + commission_ration: string; + free: string; + earned: string; + frozen: string; + completed_order: string; + available: string; + freeze_commission:string; + freeze_c_desc:string; + g_order: string; + order_desc: string; + order_desc_1: string; + order_desc_2: string; + order_desc_3: string; + order_desc_5: string; + order_desc_6: string; + order_n: string; + order_n_1: string; + grabOrder: { + not_completed: string; + not_completed_text: string; + order_limit: string; + order_limit_text: string; + balance_not_enough: string; + balance_not_enough_text: string; + no_order_available: string; + no_order_available_text: string; + not_meet_start: string; + } + order_details: { + title: string; + u_p: string; + o_q: string; + total: string; + o_c: string; + o_r: string; + c_1: string; + c_2: string; + c_3: string; + c_4: string; + c_5: string; + c_6: string; + c_7: string; + balance_not_enough: string; + balance_not_enough_text: string; + order_submitted: string; + } + }, + withdrawal: { + title: string; + w: string; + w_p:string; + c_b: string; + s_w_a: string; + w_a: string; + enterPassword:string; + m_w_a: string; + p_i: string; + p_e: string; + t_n_c:string; + c_s_n_m:string; + }, + recharge: { + title: string; + amount_placeholder: string; + }, + common: { + confirm: string; + cancel: string; + loosing: string; + loading: string; + no_data: string; + submit: string; + waring: string; + error: string; + insufficient: string; + submitted: string; + noResult:string; + }, + daily: { + title:string, + c: string, + a: string, + r: string, + btn: string, + task_not_compiled: string, + }, + main: { + home: string; + order: string; + start: string; + service: string; + profile: string; + } + }; \ No newline at end of file diff --git a/grailed_app/src/i18n/lang/pt-pt.ts b/grailed_app/src/i18n/lang/pt-pt.ts new file mode 100644 index 0000000..911b295 --- /dev/null +++ b/grailed_app/src/i18n/lang/pt-pt.ts @@ -0,0 +1,392 @@ +import type { langType } from './lang-base' + +let cp_name = import.meta.env.VITE_APP_NAME; + +export const lang: langType = { + about: { + title: 'Sobre', + profile: 'Qualificações da Empresa', + h_1: 'Por que este programa usa USDT como moeda?', + h_2: "Como o programa é dedicado a servir comerciantes de todo o mundo, . Nós fixamos USDT como nossa moeda para unificar transações de moeda, facilitar a gestão e melhor proteger pessoas e propriedades.", + h_3: 'Posso atualizar minhas tarefas a qualquer momento?', + h_4: 'Atualmente, nossa plataforma está aberta das 10h00 às 23h00. Não é recomendado que os agentes impulsionem pedidos fora do horário de trabalho para evitar qualquer má conduta.', + h_5: "O que acontece se eu não conseguir adicionar todos os meus pedidos?", + h_6: 'Como o programa depende de avaliações positivas de nossos agentes, é importante que todos os agentes participem para garantir sua colocação. Penalidades serão aplicadas conforme relevante e a associação do agente será terminada permanentemente. Não apenas sua promoção ajuda outros comerciantes, como também ajuda a informar nossos comerciantes e contribuir para melhorias no produto.', + h_7: 'Posso mudar minha seleção de produto?', + h_8: 'Uma vez que um produto foi rastreado, você não será capaz de mudar sua seleção de produto. Ao atualizar um produto, por favor, leia todas as informações que estabelecemos nos Termos e Condições para garantir que você possa cumprir todos os requisitos do programa. Por exemplo, pode haver requisitos de compatibilidade para eletrônicos que só são compatíveis com softwares específicos.', + h_9: 'Nossos Parceiros têm um ecossistema próspero de alianças que fornecem soluções de negócios para resolver os desafios de negócios e tecnologia de nossos clientes. Temos relações profundas em uma extensa rede de empresas de tecnologia líderes que podem ajudá-lo a transformar e crescer.', + h_10: 'Nosso robusto ecossistema ajuda os parceiros a aumentar o crescimento da receita, expandir o mercado e o alcance geográfico, facilitar os processos de vendas e melhorar os produtos e serviços oferecidos.' + }, + balanceRecord: { + title: 'Registros de Saldo', + }, + bindCrypto: { + title: 'Vincular Endereço', + enterAddress: 'Insira o endereço' + }, + channelSelect: { + title: 'Seleção de Canal', + balance: 'Saldo', + t_1: 'Selecione um canal útil', + }, + + helpGuide: { + title: 'Guia de Ajuda', + faq: 'FAQ', + q_1: 'Como começo a assumir tarefas?', + a_1: "Primeiro, você precisa registrar uma conta em nosso site. Após o registro, clique no menu 'iniciar', e então clique no botão 'Pegar Pedido' para começar a trabalhar.", + q_2: "Quando receberei a comissão pelas tarefas que concluí?", + a_2: "Uma vez que sua tarefa concluída seja revisada e confirmada como correta, a comissão será creditada em sua conta em nosso site dentro de 1 hora.", + q_3: 'Quantas tarefas posso assumir ao mesmo tempo?', + a_3: "Você só pode assumir uma tarefa de cada vez. O número de tarefas que você pode concluir cada dia será ajustado com base no seu nível de associação e na situação da loja.", + q_4: "E se eu não conseguir concluir uma tarefa?", + a_4: "Se você não conseguir concluir uma tarefa no prazo estipulado, por favor, entre em contato com nossa equipe de atendimento ao cliente prontamente. Nós lhe forneceremos uma solução ou recomendação adequada com base na situação específica.", + q_5: 'Como posso atualizar meu nível de associação?', + a_5: 'Os níveis de associação são concedidos com base nas tarefas concluídas pelo cliente. Para mais detalhes, por favor, entre em contato com o atendimento ao cliente.', + }, + + home: { + cp_name: cp_name, + continue: 'Continue a fazer a tarefa', + notice: { + c_t: 'Parabéns para ', + f_e: 'ganhou ', + }, + taskCarouse: { + title: 'Tarefa', + }, + partners: { + title: 'Nossos Parceiros', + }, + + introduce: { + i_f: 'Convide Amigos', + j_s: 'Vamos Juntar-se a Nós Agora', + c_c: 'Copie o código de referência para se juntar a nós agora', + c_l: 'Copiar link do convite', + terms_a: 'Termos & Acordos', + terms_c: 'Termos & Condições', + terms_c_1: 'Estes termos e condições aplicam-se ao seu uso deste site e ao acessar este site e/ou' + + ' atualizar o seu pedido, você concorda em estar vinculado pelos seguintes termos e condições. Se você não' + + 'concordar em estar vinculado por estes termos e condições, você não será capaz de usar ou acessar este site.', + terms_c_2: 'Se você tiver alguma dúvida sobre estes termos e condições antes de atualizar o seu pedido, por favor, entre em contato com nossa equipe de atendimento ao cliente 7 dias por semana.', + terms_c_3: 'Explicação', + terms_c_4: 'Condições - estes termos e condições e condições especiais', + terms_c_5: 'Produtos - os produtos mostrados neste site para melhorar as classificações', + terms_c_6: 'Descrições de Produtos - as seções deste site que fornecem certos termos e condições relacionados a produtos individuais', + terms_c_7: 'Condições Especiais - os termos e condições na descrição do produto', + terms_c_8: 'Serviços - os serviços de agência que fornecemos para os produtos sendo atualizados para revisão, conforme descrito no acordo de agência', + terms_c_9: 'Agente/você - o termo genérico para usuários deste site Informações pessoais', + terms_c_10: 'Detalhes fornecidos por você durante o registro', + terms_c_11: 'Cookies - pequenos arquivos de texto colocados no disco rígido do seu computador por este site para armazenar informações e identificar o seu computador', + terms_c_12: 'Acordo - o agente contendo estes termos e condições', + terms_c_13: '1.0 Explicação', + terms_c_14: '1.1 Qualquer palavra seguindo uma cláusula específica, por exemplo, ou qualquer expressão semelhante, será interpretada como ilustrativa e não limitará o significado das palavras, descrições, definições, frases ou termos que precedem essas cláusulas.', + terms_c_15: '1.2 A menos que seja declarado de outra forma, letras maiúsculas usadas nestes termos e condições (mas não definidas nestes termos e condições) terão o significado estabelecido no Acordo de Agência.', + terms_c_16: '2.0 Responsabilidades do Agente', + terms_c_17: '2.1 Cada Agente deve completar pelo menos um conjunto de tarefas para receber um bônus de nós.', + terms_c_18: '2.2 Os agentes podem redefinir sua conta uma vez por dia. Cada agente pode completar no máximo duas tarefas por dia.', + terms_c_19: '2.3 A conclusão antecipada das tarefas não é permitida, pois isso resultará em uma quebra na coleta de dados de vendas.', + terms_c_20: '2.4 Os agentes não estão autorizados a postar ou publicar qualquer informação falsa em qualquer tipo de mídia social. Reservamo-nos o direito de buscar responsabilidade legal.', + terms_c_21: '2.5 Cumprimento de obrigações legais (cumprindo nossas obrigações legais)', + terms_c_22: '2.6 Lidando com reivindicações e reclamações e buscando resolução (direitos legais e reivindicações legais)', + terms_c_23: '3.0 Qualquer agência de publicidade ou mídia digital ou provedor de serviços de internet em conexão com o Programa', + terms_c_24: '3.1 Ao participar do Programa, você se compromete a enviar todas as informações verdadeiras, precisas, atuais e completas. Reservamo-nos o direito de verificar a sua elegibilidade.', + terms_c_25: '3.2 Se soubermos ou tivermos motivos razoáveis para acreditar no momento do registro que você é ' + + 'não é elegível para participar do Programa, reservamo-nos o direito de desqualificá-lo e ' + + 'selecionar um revisor de produto alternativo.', + terms_c_26: '4.0 Nossa responsabilidade', + terms_c_27: '4.1 Não somos responsáveis por falhas técnicas ou congestionamento de tráfego na internet ou em qualquer site, ou qualquer combinação desses fatores, ou por quaisquer interrupções ou perturbações no equipamento de qualquer outra pessoa em conexão com ou como resultado da participação.', + terms_c_28: '4.2 Não somos responsáveis por qualquer material difamatório, infração de direitos de propriedade intelectual de terceiros ou outro material ilegal em sua entrada.', + terms_c_29: '5.0 Publicidade e seus dados pessoais', + terms_c_30: '5.1 Sujeito ao seu consentimento, podemos usar seu nome de usuário para fins promocionais e/ou em conexão com nossas atividades de publicidade, promoção ou marketing (conforme descrito em nossos anúncios e revisões, termos e condições).', + terms_c_31: '5.1 está ciente de que você está preocupado com o nosso uso de suas informações e nós apreciamos o' + +' confiança que você deposita em nós para usá-lo de uma maneira cuidadosa e razoável. Todas as informações que' + +'coletamos estarão sujeitas à nossa Política de Privacidade, que estabelece quais informações coletamos,' + +' o que fazemos com ela e os propósitos para os quais usamos esses dados. Por favor, consulte nossa Política' + +'de Privacidade para mais detalhes. Você entende que ao se juntar ao programa, coletará e' + +'usará suas informações pessoais conforme descrito na Política de Privacidade, que inclui compartilhar' + +'informações com fornecedores que auxiliam no site e nas promoções.', + terms_c_32: '5.3 Como orientado por circunstâncias normais, a plataforma é projetada para combinar apenas produtos cujo' + +'preço é menor que o saldo da conta do agente. No entanto, os comerciantes podem optar por aumentar' + +'o alcance dos agentes correspondidos pagando pelo menos três vezes o seu salário. Isso permitirá que o' + +'agente obtenha atribuições de pacotes com preço acima do saldo da conta. Após a conclusão bem-sucedida' + +'dessas tarefas, os agentes receberão', + about_us: { + title: 'Sobre Nós', + a_1: 'Qualificações da Empresa', + a_2: 'Por que este programa usa USDT como moeda?', + a_3: 'Como o programa é dedicado a servir comerciantes de todo o mundo, . Nós' + +'fixamos USDT' + +'como nossa moeda para unificar as transações de moeda, facilitar a gestão e proteger melhor' + +'pessoas e propriedades.', + a_4: 'Posso atualizar minhas tarefas a qualquer momento?', + a_5: 'Atualmente, nossa plataforma está aberta das 9:00 às 23:00. Não é recomendado para os agentes impulsionarem pedidos fora do horário de trabalho para evitar qualquer má conduta.', + a_6: 'O que acontece se eu não conseguir adicionar todos os meus pedidos?', + a_7: 'Como o programa depende de avaliações positivas de nossos agentes, é importante que todos os agentes' + +'participem para garantir sua colocação. Penalidades serão aplicadas conforme relevante e a associação do agente' + +'será terminada permanentemente. Não apenas sua promoção ajuda outros comerciantes, ela' + +'também ajuda a informar nossos comerciantes e contribuir para melhorias no produto.', + a_8: 'Posso mudar minha seleção de produto?', + a_9: 'Uma vez que um produto foi rastreado, você não será capaz de mudar sua seleção de produto. Quando' + +'atualizando um produto, por favor, leia todas as informações que estabelecemos nos Termos e' + +'Condições para garantir que você pode cumprir todos os requisitos do programa. Por exemplo, pode' + +'haver requisitos de compatibilidade para eletrônicos que só são compatíveis com softwares específicos.', + a_10: cp_name + ' Parceiros', + a_11: 'Nossos Parceiros', + a_12: cp_name + ' tem um ecossistema próspero de alianças que fornecem soluções de negócios para resolver nossos' + +'desafios de negócios e tecnologia dos clientes. Temos relações profundas em uma extensa' + +'rede de empresas líderes em tecnologia que podem ajudá-lo a transformar e crescer.', + a_13: 'Nosso robusto ecossistema ajuda os parceiros a aumentar o crescimento da receita, expandir o mercado e o alcance geográfico,' + +'facilitar os processos de vendas e melhorar os produtos e serviços oferecidos.', + } + } + }, + invitation: { + title: 'Convidar Amigos', + i_c: 'Código de convite', + link: 'Link de referência', + }, + language: { + title: 'Língua', + u: 'nome de usuário', + c_l: 'Mudar idioma', + l: 'Língua', + }, + order: { + title: 'Ordem', + order_no: 'Número do pedido', + u_p: 'Preço unitário', + o_q: 'Quantidade de pedido', + total: 'Total', + o_c: 'Comissão de pedido', + c_t: 'Tempo de compilação', + all: 'Todos', + completed: 'Concluído', + pending: 'Pendente', + frozen: 'Congelado', + }, + + password: { + title: 'Alterar Senha', + old: 'Senha Atual', + new: 'Nova Senha', + confirm_p: 'Confirmar Senha', + note: 'Nota: As alterações de senha são limitadas a uma vez a cada 72 horas.', + not_match: 'As senhas não correspondem.', + }, + payOrderDetail: { + title: 'Detalhes do Pedido', + order_no: 'Número do Pedido:', + amount: 'Quantidade', + orderTime: 'Tempo do Pedido', + status: 'Status', + pay_m: 'Método de Pagamento', + network: 'Rede', + address: 'Endereço', + t_s_o: 'Para Iniciar o Pedido', + referral: 'Código de indicação', + }, + + profile: { + ph_no: 'Ph No', + LV: 'LV', + i_c: 'Código de convite', + level: 'Nível', + dailyOrder: 'Pedido diário', + ratio: 'Razão', + todays: 'Hoje', + creditScore: 'Crédito', + t_order: 'Pedidos de', + t_order_a: 'Quantidade de pedidos de', + t_commission: 'Comissão de', + sign_in_reward: 'Recompensa de inscrição', + enter_now: 'Entrar agora', + c_balance: 'Saldo atual', + w_success: 'Retirada bem sucedida', + records: 'Registros', + settings: 'Configurações', + i_f: 'Convidar amigos', + notification: 'Notificação', + help_guide: 'Guia de ajuda', + }, + service: { + title: 'Atendimento ao cliente', + c_s_c: 'Centro de atendimento ao cliente', + online: 'Serviço online', + o_tips: 'Se você tiver um problema, peça ao atendimento ao cliente', + o_tips_1: 'Serviço online :Problema de fluxo de ouro', + o_t: 'Tempo online', + }, + + settings: { + title: 'Configurações', + d_o: 'Pedidos diários', + d_w: 'Retirada diária', + c: 'Comissão', + t_r: 'Recompensa da equipe', + a: 'Conta', + t_1: 'Informações pessoais', + t_2: 'Alterar senha', + t_3: 'Vincular endereço USDT', + t_4: 'Idioma', + t_5: 'Sobre nós', + }, + settingsPersonal: { + title: 'Informações do usuário', + profile: 'Perfil', + p_1: 'Essas informações serão exibidas publicamente, então tenha cuidado com o que você compartilha.', + username: 'Nome de usuário', + about: 'Sobre', + a_1: 'Escreva algumas frases sobre você.', + photo: 'Foto', + change: 'mudar', + p_i: 'Informações pessoais', + p_i_1: 'Use um endereço permanente onde você possa receber correspondência.', + first_name: 'Primeiro nome', + last_name: 'Último nome', + email: 'Endereço de email', + country: 'País', + street: 'Endereço', + street_p: '', + city: 'Cidade', + state: 'Estado / Província', + postal: 'Código postal', + save: 'Salvar', + upload_error_1: 'Por favor, faça o upload de uma imagem que tenha 500x500 pixels ou menos.', + upload_error_2: 'Por favor, faça o upload de um arquivo de imagem.', + upload_error_3: 'Falha no upload do avatar, por favor tente novamente mais tarde', + }, + + signIn: { + title: 'Faça login na sua conta', + p_n: 'Número de telefone', + country: 'País', + password: 'Senha', + remember: 'Lembrar de mim', + forgot: 'Esqueceu a senha?', + sign_in: 'Entrar', + no_select_country: 'Seleccione o código do seu país', + n_a_m: 'Não é um membro?', + s_u_n: 'Inscreva-se agora!', + }, + signUp: { + title: 'Crie uma nova conta', + p_n: 'Número de telefone', + country: 'País', + password: 'Senha', + c_p: 'Confirme a senha', + i_c: 'Código de convite', + i_green: 'Eu concordo com o ', + r_a: '《Acordo de Registro》', + sign_up: 'Inscrever-se', + no_select_country: 'Seleccione o código do seu país', + number_exist: 'O número de celular já existe. Por favor, faça login diretamente.', + i_code_not_exist: 'O código de convite que você inseriu não existe. Por favor, entre em contato com o seu mentor.', + sign_up_success: 'Inscrição bem sucedida!', + to_sign_in: 'Para entrar', + }, + + start: { + title: 'Iniciar', + daily_order: 'Pedidos diários', + commission_ration: 'Proporção de Comissão', + free: 'Grátis', + earned: 'Comissão Ganha', + frozen: 'Quantia Congelada', + completed_order: 'Pedido Concluído', + available: 'Saldo Disponível', + freeze_commission: 'Comissão acumulada de pedidos', + freeze_c_desc: 'Este valor representa o total acumulado do seu pedido atual. Você pode sacá-lo após a conclusão da tarefa.', + g_order: 'Pegar Pedido', + order_desc: 'Descrição do Pedido', + order_desc_1: '1.Cada conta pode combinar 38 pedidos por dia', + order_desc_2: '2.A comissão para fazer um pedido é uniforme e equivale a 1.00% do valor total do pedido', + order_desc_3: '3.O sistema é baseado em tecnologia LBS e combina automaticamente produtos através de computação em nuvem', + order_desc_5: '4.Você não pode cancelar a tarefa. Você deve primeiro completar quaisquer tarefas inacabadas existentes antes de poder receber novas.', + order_desc_6: '5.Cada conta pode combinar 38 pedidos por dia', + order_n: 'Nota', + order_n_1: 'Quando a plataforma combina pedidos para usuários, ela enviará as informações do pedido para o comerciante' + + 'background. Se o usuário não enviar o pedido dentro de 30 minutos, o valor do pedido será congelado por' + + 'o sistema. Para evitar sistemas regulatórios, as contas do usuário serão avaliadas, o que diretamente' + + 'afetará o próximo tempo de correspondência do usuário e reputação! Por favor, clique em parar de fazer o pedido a tempo para evitar' + + 'congelamento por tempo esgotado.', + grabOrder: { + not_completed: 'Por favor, complete o pedido primeiro', + not_completed_text: 'Para verificar o pedido', + order_limit: 'A quantidade de pedidos de hoje atingiu o limite máximo', + order_limit_text: 'Confirmar', + balance_not_enough: 'Saldo não é suficiente', + balance_not_enough_text: 'Recarregar', + no_order_available: 'Nenhum pedido disponível, por favor, tente novamente mais tarde', + no_order_available_text: 'Confirmar', + not_meet_start: 'não atende a condição de início', + }, + order_details: { + title: 'Tarefa de pedido', + u_p: 'Preço unitário', + o_q: 'Quantidade de pedido', + total: 'Total', + o_c: 'Comissão de Pedido', + o_r: 'avaliação de pedido', + c_1: 'o produto é muito bom Finalmente recebi. o produto é muito bom Estou muito satisfeito com o produto e recomendo comprar', + c_2: 'Estou muito feliz e satisfeito', + c_3: 'o preço é bastante razoável', + c_4: 'O acabamento é muito bom', + c_5: 'e eu gosto muito', + c_6: 'Parece ótimo', + c_7: 'e meu amigo já comprou pela segunda vez.', + balance_not_enough: 'Saldo não é suficiente para completar o pedido, por favor recarregue', + balance_not_enough_text: 'Recarregar', + order_submitted: 'O pedido foi enviado', + } + }, + + withdrawal: { + title: 'Saque', + w: 'Saque', + c_b: 'saldo atual', + s_w_a: 'selecione o valor do saque', + w_a: 'Endereço da Carteira', + m_w_a: 'Modificar Endereço da Carteira', + w_p: 'Digite sua senha de pagamento', + enterPassword: 'Digite a senha', + p_i: 'Você tem um pedido de saque em processo. Aguarde pelo resultado.', + p_e: 'Erro na senha de pagamento', + t_n_c: "Você precisa completar a tarefa de pedido de hoje antes de receber seu salário.", + c_s_n_m:'A sua pontuação de crédito não satisfaz as condições de levantamento, por favor aumente a sua pontuação de crédito', + }, + recharge: { + title: 'Recarregar', + amount_placeholder: 'selecione ou digite aqui', + }, + daily: { + title: 'Check-in Diário', + c: 'Contínuo', + a: 'Acumulação', + r: 'Recompensa (USDT)', + btn: 'Fazer check-in', + task_not_compiled: 'Por favor, complete a tarefa de pedido de hoje primeiro.', + }, + common: { + confirm: 'Confirmar', + cancel: 'cancelar', + loosing: 'perdendo', + loading: 'carregando', + no_data: 'não há mais dados', + submit: 'enviar', + waring: 'aviso', + error: 'erro', + insufficient: 'Insuficiente', + submitted: 'Enviado', + noResult: 'Nenhum resultado encontrado' + }, + main: { + home: 'Início', + order: 'Pedido', + start: 'Iniciar', + service: 'Serviço', + profile: 'Perfil', + } + +} \ No newline at end of file diff --git a/grailed_app/src/i18n/lang/st-st.ts b/grailed_app/src/i18n/lang/st-st.ts new file mode 100644 index 0000000..3772d40 --- /dev/null +++ b/grailed_app/src/i18n/lang/st-st.ts @@ -0,0 +1,378 @@ +import type { langType } from './lang-base' +let cp_name = import.meta.env.VITE_APP_NAME; +export const lang: langType = { +about: { + title: 'معلومات عنا', + profile: 'مؤهلات الشركة', + h_1: 'لماذا يستخدم هذا البرنامج USDT كعملة؟', + h_2: "نظرً ا لأن البرنامج مكرس لخدمة التجار من جميع أنحاء العالم، لقد حددنا USDT كعملتنا لتوحيد المعاملات النقدية وتسهيل الإدارة وحماية الأشخاص والممتلكات بشكل أفضل.", + h_3: 'هل يمكنني تحديث مهامي في أي وقت؟', + h_4: 'تفتح منصتنا حاليً ا من الساعة 10: 00 حتى الساعة 23: 00. لا يوصى بتسريع الطلبات خارج ساعات العمل لتجنب أي سلوك غير لائق.', + h_5: "ماذا يحدث إذا لم أتمكن من إضافة جميع طلباتي؟", + h_6: 'نظرً ا لأن البرنامج يعتمد على التقييمات الإيجابية من وكلائنا، فمن المهم أن يشارك جميع الوكلاء لضمان تواجدهم.سيتم تطبيق العقوبات المناسبة وسيتم إنهاء عضوية الوكيل نهائيً ا.لا تساعد ترويجك فقط التجار الآخرين، بل يساعد أيضً ا في إبلاغ تجارنا والمساهمة في تحسين المنتج.', + h_7: 'هل يمكنني تغيير اختيار المنتج الخاص بي؟', + h_8: 'بمجرد أن يتم الزحف للمنتج، لن تتمكن من تغيير اختيار المنتج الخاص بك.عند ترقية منتج، يرجى قراءة جميع المعلومات التي حددناها في الشروط والأحكام للتأكد من أنك يمكنك الامتثال لجميع متطلبات البرنامج.على سبيل المثال، قد تكون هناك متطلبات توافق للإلكترونيات التي تتوافق فقط مع برامج محددة.', + h_9: 'شركاؤنا لديهم نظام بيئي مزدهر من التحالفات التي تقدم حلولً ا تجارية لمواجهة التحديات التجارية والتكنولوجية لعملائنا.لدينا علاقات عميقة عبر شبكة واسعة من الشركات التكنولوجية الرائدة التي يمكن أن تساعدك في التحول والنمو.', + h_10: 'يساعد نظامنا البيئي القوي الشركاء على زيادة نمو الإيرادات وتوسيع السوق والوصول الجغرافي وتسهيل عمليات البيع وتحسين عروض المنتجات والخدمات.' +}, balanceRecord: { + title: 'سجلات الرصيد', +}, bindCrypto: { + title: 'عنوان الربط', + enterAddress: 'أدخل العنوان' +}, channelSelect: { + title: 'اختر القناة', + balance: 'الرصيد', + t_1: 'اختر قناة مفيدة لك', +}, + + + +helpGuide: { + title: 'دليل المساعدة', + faq: 'الأسئلة الشائعة', + q_1: 'كيف أبدأ في تنفيذ المهام؟', + a_1: "أولاً، يجب عليك إنشاء حساب على موقعنا.بعد التسجيل، انقر على' البدء' في القائمة، ثم انقر على الزر' الحصول على الطلب' لبدء العمل.", + q_2: "متى سأتلقى العمولة على المهام التي أنجزتها؟", + a_2: "بمجرد التحقق من المهمة التي أكملتها والتأكد من صحتها، سيتم اعتماد العمولة على حسابك على موقعنا خلال ساعة واحدة.", + q_3: 'كم مهمة يمكنني تنفيذها في وقت واحد؟', + a_3: "يمكنك دائمً ا تنفيذ مهمة واحدة في وقت واحد.سيتم تعديل عدد المهام التي يمكنك إنجازها يوميً ا بناءً على مستوى عضويتك والوضع التجاري.", + q_4: "ماذا يحدث إذا لم أتمكن من إكمال مهمة؟", + a_4: "إذا لم تتمكن من إكمال المهمة في الوقت المحدد، فيرجى الاتصال بخدمة العملاء لدينا على الفور.سنقدم لك حلاً مناسبً ا أو توصية بناءً على الوضع الفعلي.", + q_5: 'كيف يمكنني رفع مستوى عضويتي؟', + a_5: 'يتم منح مستويات العضوية بناءً على المهام التي ينجزها العميل.لمزيد من التفاصيل، يرجى الاتصال بخدمة العملاء.', + }, home: { + cp_name: cp_name, + continue: 'متابعة تنفيذ المهام', + notice: { + c_t: 'تهانينا لـ ', + f_e: 'كسب ', + }, + taskCarouse: { + title: 'المهمة', + }, + partners: { + title: 'شركاؤنا', + }, + + + + + +introduce: { + i_f: 'دعوة الأصدقاء', + j_s: 'لنبدأ الآن', + c_c: 'انسخ رمز الإحالة للانضمام إلينا', + c_l: 'نسخ رابط الدعوة', + terms_a: 'الشروط والاتفاقيات', + terms_c: 'الشروط والأحكام العامة', + terms_c_1: 'تنطبق هذه الشروط والأحكام العامة على استخدامك لهذا الموقع.من خلال الوصول إلى هذا الموقع و / أو تحديث طلبك، فإنك توافق على الشروط والأحكام العامة التالية.إذا كنت لا ترغب في الالتزام بهذه الشروط والأحكام العامة، فلا يمكنك استخدام هذا الموقع أو الوصول إليه.', + terms_c_2: 'إذا كان لديك أي أسئلة حول هذه الشروط والأحكام العامة قبل تحديث طلبك، فيرجى الاتصال بفريق خدمة العملاء لدينا، الذي يتواجد لخدمتك طوال أيام الأسبوع.', + terms_c_3: 'إعلان', + terms_c_4: 'الشروط - هذه الشروط والأحكام العامة والشروط الخاصة', + terms_c_5: 'المنتجات - المنتجات المعروضة على هذا الموقع لتحسين التقييمات', + terms_c_6: 'وصف المنتج - الأقسام من هذا الموقع التي تحتوي على شروط معينة بخصوص المنتجات الفردية', + terms_c_7: 'الشروط الخاصة - الشروط في وصف المنتج', + terms_c_8: 'الخدمات - خدمات الوكالة التي نقدمها في إطار تحديث المنتج للتحقق وفقً ا لاتفاقية الوكالة', + terms_c_9: 'الوكيل / أنت - المصطلح العام لمستخدمي هذا الموقع', + terms_c_10: 'التفاصيل التي قدمتها عند التسجيل', + terms_c_11: 'الكوكيز - ملفات نصية صغيرة يضعها هذا الموقع على القرص الثابت لجهاز الكمبيوتر الخاص بك لتخزين المعلومات وتحديد جهاز الكمبيوتر الخاص بك', + terms_c_12: 'الاتفاقية - الوكالة التي تغطيها هذه الشروط والأحكام العامة', + terms_c_13: '1.0 إعلان', + terms_c_14: '1.1 أي اختيار للكلمات أو تعبير مماثل يلي جملة معينة يعتبر توضيحيً ا ولا يقيد معنى الكلمات أو الوصف أو التعريفات أو العبارات أو المصطلحات التي تسبق هذه الجمل.', + + + terms_c_15: '1.1 أي اختيار للكلمات أو تعبير مماثل يلي جملة معينة يعتبر توضيحيًا ولا يقيد معنى الكلمات أو الوصف أو التعريفات أو العبارات أو المصطلحات التي تسبق هذه الجمل.', + terms_c_16: '2.0 مسؤوليات الوكيل', + terms_c_17: '2.1 يجب على كل وكيل إكمال مجموعة واحدة على الأقل من المهام للحصول على مكافأة منا.', + terms_c_18: '2.2 يمكن للوكلاء إعادة تعيين حسابهم مرة واحدة في اليوم. يمكن لكل وكيل إكمال ما يصل إلى مهمتين في اليوم.', + terms_c_19: '2.3 لا يُسمح بإكمال المهام مبكرًا ، حيث يمكن أن يؤدي ذلك إلى تعطيل جمع البيانات للبيع.', + terms_c_20: '2.4 لا يجوز للوكلاء نشر معلومات غير صحيحة على وسائل التواصل الاجتماعي. نحتفظ بالحق في اتخاذ إجراءات قانونية.', + terms_c_21: '2.5 الامتثال للالتزامات القانونية (الوفاء بالتزاماتنا القانونية)', + terms_c_22: '2.6 التعامل مع المطالبات والشكاوى والبحث عن حلول (المطالبات القانونية والمطالبات القانونية)', + terms_c_23: '3.0 الإعلان أو وكالة الوسائط الرقمية أو مزود خدمة الإنترنت المتعلق بالبرنامج', + terms_c_24: '3.1 من خلال المشاركة في البرنامج ، فإنك تلتزم بتقديم جميع المعلومات الحقيقية والدقيقة والحالية والكاملة. نحتفظ بالحق في التحقق من أهليتك.', + terms_c_25: '3.2 إذا كنا نعرف في وقت التسجيل أو لدينا أسباب معقولة للاعتقاد بأنك غير مؤهل للمشاركة في البرنامج ، فنحن نحتفظ بالحق في استبعادك واختيار مراجع منتج آخر.', + terms_c_26: '4.0 مسؤوليتنا', + terms_c_27: '4.1 نحن غير مسؤولين عن الأعطال التقنية أو الازدحام في الإنترنت أو المواقع أو أي تركيبة من هذه العوامل أو عن أي انقطاعات أو تعطل في معدات الأشخاص الآخرين المرتبطة بأو نتيجة للمشاركة.', + terms_c_28: '4.2 نحن غير مسؤولين عن المواد القذفية ، أو انتهاك حقوق الملكية الفكرية لأطراف ثالثة ، أو أي محتوى غير قانوني في مشاركتك.', + + + + + + terms_c_29: '5.0 الإعلان وبياناتك الشخصية', + terms_c_30: '5.1 بناءً على موافقتك ، يمكننا استخدام اسم المستخدم الخاص بك لأغراض الترويج و / أو في سياق أنشطتنا الترويجية والتسويقية (كما هو موضح في إعلاناتنا والتقييمات والشروط والأحكام العامة).', + terms_c_31: '5.1 أنت تدرك أنك قلق بشأن استخدامنا لمعلوماتك ، ونحن نقدر الثقة التي وضعتها فينا لاستخدامها بعناية وعقلانية. تخضع جميع المعلومات التي نجمعها لسياسة الخصوصية الخاصة بنا ، التي تحدد المعلومات التي نجمعها ، ماذا نفعل بها ولأي أغراض نستخدم هذه البيانات. يرجى الرجوع إلى سياسة الخصوصية الخاصة بنا للحصول على مزيد من التفاصيل. أنت تفهم أننا سوف نجمع ونستخدم معلوماتك الشخصية وفقًا لسياسة الخصوصية من خلال المشاركة في البرنامج ، بما في ذلك تقديم المعلومات للموردين الذين يساعدون في الموقع والترويج.', + terms_c_32: '5.3 في الظروف العادية ، تم تصميم النظام لمطابقة المنتجات فقط التي يكون سعرها أقل من رصيد حساب الوكيل. ومع ذلك ، يمكن للتجار اختيار توسيع نطاق الوكلاء المتطابقين عن طريق دفع ما لا يقل عن ثلاثة أضعاف راتبهم. هذا يتيح للوكيل الحصول على طلبات الحزم التي تتجاوز الرصيد الموجود في الحساب. عند إكمال هذه المهام بنجاح ، سيحصل الوكلاء', + + + +about_us: { + title: 'معلومات عنا', + a_1: 'مؤهلات الشركة', + a_2: 'لماذا يستخدم هذا البرنامج USDT كعملة؟', + a_3: 'نظرًا لأن البرنامج مكرس لخدمة التجار من جميع أنحاء العالم ، لقد حددنا USDT كعملتنا لتوحيد المعاملات النقدية وتسهيل الإدارة وحماية الأشخاص والممتلكات بشكل أفضل.', + a_4: 'هل يمكنني تحديث مهامي في أي وقت؟', + a_5: 'تفتح منصتنا حاليًا من الساعة 9:00 حتى الساعة 23:00. لا يوصى بأن يزيد الوكلاء على الطلبات خارج ساعات العمل لتجنب أي سلوك غير لائق.', + a_6: 'ماذا يحدث إذا لم أتمكن من إضافة جميع طلباتي؟', + a_7: 'نظرًا لأن البرنامج يعتمد على التقييمات الإيجابية من وكلائنا ، فمن المهم أن يشارك جميع الوكلاء لضمان تواجدهم. سيتم تطبيق العقوبات المناسبة وسيتم إنهاء عضوية الوكيل نهائيًا. لا تساعد ترويجك فقط التجار الآخرين ، بل يساعد أيضًا في إبلاغ تجارنا والمساهمة في تحسين المنتج.', + a_8: 'هل يمكنني تغيير اختيار المنتج الخاص بي؟', + a_9: 'بمجرد أن يتم الزحف للمنتج ، لن تتمكن من تغيير اختيار المنتج الخاص بك. عند ترقية منتج ، يرجى قراءة جميع المعلومات التي حددناها في الشروط والأحكام للتأكد من أنك يمكنك الامتثال لجميع متطلبات البرنامج. على سبيل المثال ، قد تكون هناك متطلبات توافق للإلكترونيات التي تتوافق فقط مع برامج محددة.', + a_10: cp_name + ' الشركاء', + a_11: 'شركاؤنا', + a_12: cp_name + 'لديها نظام بيئي مزدهر من التحالفات التي تقدم حلولًا تجارية لمواجهة التحديات التجارية والتكنولوجية لعملائنا. لدينا علاقات عميقة مع شبكة واسعة من الشركات التكنولوجية الرائدة التي يمكن أن تساعدك في التحول والنمو.', + a_13: 'يساعد نظامنا البيئي القوي الشركاء على زيادة نمو الإيرادات وتوسيع السوق والوصول الجغرافي وتسهيل عمليات البيع وتحسين عروض المنتجات والخدمات.' + } + } + }, + + + + +invitation: { + title: 'دعوة الأصدقاء', + i_c: 'رمز الدعوة', + link: 'رابط الدعوة', + }, + language: { + title: 'اللغة', + u: 'اسم المستخدم', + c_l: 'تغيير اللغة', + l: 'اللغة', + }, + order: { + title: 'الطلب', + order_no: 'الطلب', + u_p: 'سعر الوحدة', + o_q: 'كمية الطلب', + total: 'المجموع', + o_c: 'عمولة الطلب', + c_t: 'وقت التجميع', + all: 'الكل', + completed: 'مكتمل', + pending: 'قيد الانتظار', + frozen: 'مجمد', + }, + password: { + title: 'تغيير كلمة المرور', + old: 'كلمة المرور الحالية', + new: 'كلمة المرور الجديدة', + confirm_p: 'تأكيد كلمة المرور', + note: 'ملاحظة: يتم تقييد تغييرات كلمة المرور إلى مرة واحدة كل 72 ساعة.', + not_match: 'كلمات المرور غير متطابقة.', + }, + payOrderDetail: { + title: 'تفاصيل الطلب', + order_no: 'رقم الطلب:', + amount:'المبلغ', + orderTime: 'وقت الطلب', + status:'الحالة', + pay_m:'طريقة الدفع', + network:'الشبكة', + address:'العنوان', + t_s_o:'لبدء الطلب', + referral: 'رمز الإحالة', + }, + profile: { + ph_no: 'رقم الهاتف', + LV: 'LV', + i_c: 'رمز الدعوة', + level: 'المستوى', + dailyOrder: 'الطلب اليومي', + creditScore: 'الائتمان', + ratio: 'النسبة', + todays: 'اليوم', + t_order: 'الطلب اليومي', + t_order_a: 'مبلغ الطلب اليومي', + t_commission: 'العمولة', + sign_in_reward: 'تسجيل الدخول', + enter_now: 'أدخل الآن', + c_balance: 'رصيد الحساب الحالي', + w_success: 'نجاح السحب', + records: 'السجلات', + settings: 'الإعدادات', + i_f: 'دعوة الأصدقاء', + notification: 'الإشعار', + help_guide: 'دليل المساعدة', + }, + + + + +service: { + title: 'خدمة العملاء', + c_s_c: 'مركز خدمة العملاء', + online: 'خدمة عبر الإنترنت', + o_tips: 'إذا كان لديك مشكلة ، اسأل خدمة العملاء', + o_tips_1: 'خدمة عبر الإنترنت: مشكلة في تدفق الذهب', + o_t: 'وقت الإنترنت', + }, + settings: { + title: 'الإعدادات', + d_o: 'الطلب اليومي', + d_w: 'السحب اليومي', + c: 'العمولة', + t_r: 'مكافأة الفريق', + a: 'الحساب', + t_1: 'معلومات شخصية', + t_2: 'تغيير كلمة المرور', + t_3: 'ربط عنوان USDT', + t_4: 'اللغة', + t_5: 'معلومات عنا', + }, + settingsPersonal: { + title: 'معلومات المستخدم', + profile: 'الملف الشخصي', + p_1: 'سيتم عرض هذه المعلومات بشكل عام ، لذا كن حذرًا فيما تشاركه.', + username: 'اسم المستخدم', + about: 'حول', + a_1: 'اكتب بضع جمل عن نفسك.', + photo: 'صورة', + change: 'تغيير', + p_i: 'معلومات شخصية', + p_i_1: 'استخدم عنوانًا دائمًا يمكنك استلام البريد فيه.', + first_name: 'الاسم الأول', + last_name: 'اسم العائلة', + email: 'عنوان البريد الإلكتروني', + country: 'البلد', + street: 'عنوان الشارع', + street_p: '', + city: 'المدينة', + state: 'الولاية / المحافظة', + postal: 'الرمز البريدي', + save: 'حفظ', + upload_error_1: 'يرجى تحميل صورة بحجم 500 x 500 بكسل أو أصغر.', + upload_error_2: 'يرجى تحميل ملف صورة.', + upload_error_3: 'فشل تحميل الصورة الرمزية ، يرجى المحاولة مرة أخرى لاحقًا', + }, + signIn: { + title: 'تسجيل الدخول إلى حسابك', + p_n: 'رقم الهاتف', + country: 'البلد', + password: 'كلمة المرور', + remember: 'تذكرني', + forgot: 'نسيت كلمة المرور؟', + sign_in: 'تسجيل الدخول', + n_a_m: 'لست عضوًا بعد؟', + no_select_country: 'يرجى اختيار الرمز الدولي لبلدك', + s_u_n: 'سجل الآن!', + }, + signUp: { + title: 'إنشاء حساب جديد', + p_n: 'رقم الهاتف', + country: 'البلد', + password: 'كلمة المرور', + c_p: 'تأكيد كلمة المرور', + i_c: 'رمز الدعوة', + i_green: 'أوافق على', + r_a: '《اتفاقية التسجيل》', + sign_up: 'تسجيل', + number_exist: 'رقم الهاتف موجود بالفعل. يرجى تسجيل الدخول مباشرة.', + no_select_country: 'يرجى اختيار الرمز الدولي لبلدك', + i_code_not_exist: 'رمز الدعوة الذي أدخلته غير موجود. يرجى الاتصال بمعلمك.', + sign_up_success: 'تم التسجيل بنجاح!', + to_sign_in: 'لتسجيل الدخول', + }, + + + + +start: { + title: 'البداية', + daily_order: 'الطلب اليومي', + commission_ration: 'نسبة العمولة', + free: 'حر', + earned: 'العمولة المكتسبة', + frozen: 'المبلغ المجمد', + completed_order: 'الطلب المكتمل', + available: 'الرصيد المتاح', + freeze_commission: 'عمولة الطلب المتراكمة', + freeze_c_desc: 'هذا المبلغ يمثل مجموع طلباتك الحالية المتراكمة.يمكنك سحبه عند إكمال المهمة.', + g_order: 'إصدار الطلب', + order_desc: 'وصف الطلب', + order_desc_1: '1. يمكن لكل حساب مطابقة 38 طلبً ا في اليوم', + order_desc_2: '2. العمولة لمهمة الطلب موحدة وتعادل 1.00 % من إجمالي مبلغ الطلب', + order_desc_3: '3. يعتمد النظام على تكنولوجيا LBS ويقوم بمطابقة البضائع تلقائيً ا من خلال الحوسبة السحابية', + order_desc_5: '4. لا يمكنك إلغاء المهمة.يجب عليك أولاً إكمال جميع المهام غير المكتملة الحالية قبل الحصول على مهام جديدة.', + order_desc_6: '5. يمكن لكل حساب مطابقة 38 طلبً ا في اليوم', + order_n: 'ملاحظة', + order_n_1: 'عندما تقوم النظام بمطابقة الطلبات للمستخدمين، ستقوم بإرسال معلومات الطلب إلى خلفية التاجر.إذا لم يقدم المستخدم الطلب في غضون 30 دقيقة، سيتم تجميد مبلغ الطلب من قبل النظام.لتجنب الأنظمة التنظيمية، سيتم تقييم حسابات المستخدمين، مما يؤثر مباشرة على وقت المطابقة التالي وسمعة المستخدم!يرجى النقر فورً ا على إيقاف الطلب لتجنب تجميد الوقت الزائد.', + grabOrder: { + not_completed: 'يرجى أولاً إكمال الطلب', + not_completed_text: 'تحقق من الطلب', + order_limit: 'وصلت كمية الطلبات اليومية إلى الحد الأقصى', + order_limit_text: 'تأكيد', + balance_not_enough: 'الرصيد غير كاف لإكمال الطلب', + balance_not_enough_text: 'شحن', + no_order_available: 'لا يوجد طلب متاح، يرجى المحاولة مرة أخرى لاحقً ا', + no_order_available_text: 'تأكيد', + not_meet_start: 'لا يستوفي شرط البداية', + }, + + order_details: { + title: 'تفاصيل الطلب', + u_p: 'سعر الوحدة', + o_q: 'كمية الطلب', + total: 'المجموع', + o_c: 'عمولة الطلب', + o_r: 'تقييم الطلب', + c_1: 'المنتج جيد جدا. تم استلامه أخيرا. المنتج جيد جدا. أنا راضٍ جدا عن المنتج وأوصي بشرائه', + c_2: 'أنا سعيد جدا وراض', + c_3: 'السعر منطقي جدا', + c_4: 'التصنيع جيد جدا', + c_5: 'وأنا أحبه كثيرا', + c_6: 'يبدو رائعا', + c_7: 'وقد اشترى صديقي للمرة الثانية.', + balance_not_enough: 'الرصيد غير كاف لإكمال الطلب ، يرجى الشحن', + balance_not_enough_text: 'شحن', + order_submitted: 'تم تقديم الطلب', + } +}, + + + + + + withdrawal: { + title: 'السحب', + w: 'سحب', + w_p: 'أدخل كلمة المرور الخاصة بك للدفع', + c_b: 'الرصيد الحالي', + s_w_a: 'اختر مبلغ السحب', + w_a: 'عنوان المحفظة', + m_w_a: 'تغيير عنوان المحفظة', + enterPassword: 'أدخل كلمة المرور', + p_i: 'لديك طلب سحب قيد التقدم.يرجى الانتظار للحصول على النتيجة.', + p_e: 'خطأ في كلمة المرور الخاصة بالدفع', + t_n_c: "يجب عليك أولاً إكمال مهمة الطلب اليومية قبل الحصول على راتبك.", + c_s_n_m: 'نقاط الائتمان الخاصة بك لا تستوفي شروط السحب، يرجى زيادة نقاط الائتمان الخاصة بك', +}, recharge: { + title: 'شحن', + amount_placeholder: 'اختر أو أدخل هنا', +}, daily: { + title: 'تسجيل الدخول اليومي', + c: 'متواصل', + a: 'تراكم', + r: 'مكافأة(USDT)', + btn: 'تسجيل الدخول', + task_not_compiled: 'يرجى أولاً إكمال مهمة الطلب اليومية', +}, common: { + confirm: 'تأكيد', + cancel: 'إلغاء', + loosing: 'خسارة', + loading: 'تحميل', + no_data: 'لا توجد بيانات أخرى', + submit: 'إرسال', + waring: 'تحذير', + error: 'خطأ', + insufficient: 'غير كاف', + submitted: 'تم الإرسال', + noResult: 'لم يتم العثور على نتائج' +}, main: { + home: 'الصفحة الرئيسية', + order: 'الطلب', + start: 'بداية', + service: 'خدمة', + profile: 'الملف الشخصي', +} +} \ No newline at end of file diff --git a/grailed_app/src/main.ts b/grailed_app/src/main.ts new file mode 100644 index 0000000..181ea83 --- /dev/null +++ b/grailed_app/src/main.ts @@ -0,0 +1,19 @@ +import './assets/css/main.css'; +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import App from './App.vue' +import router from './router' +import 'virtual:svg-icons-register' +import { i18n } from './i18n'; +import { setLang } from './i18n'; +import { setupPageConfig } from './utils/pageUtils'; +setupPageConfig(); +setLang(import.meta.env.VITE_DEFAULT_LANG); +document.title = 'Loading...'; + + +const app = createApp(App); +app.use(i18n) +app.use(createPinia()) +app.use(router) +app.mount('#app') diff --git a/grailed_app/src/router/index.ts b/grailed_app/src/router/index.ts new file mode 100644 index 0000000..78190e6 --- /dev/null +++ b/grailed_app/src/router/index.ts @@ -0,0 +1,151 @@ +import { createRouter, createWebHistory } from 'vue-router' + +const router = createRouter({ + + history: createWebHistory(import.meta.env.BASE_URL), + + + routes: [ + { + path: '/', + name: 'main', + component: () => import('@/views/Main.vue'), + redirect: '/home', + children: [ + { + path: '/home', + name: 'home', + component: () => import('@/views/home/Index.vue') + }, + { + path: '/chat', + name: 'chat', + component: () => import('@/views/service/chat/Index.vue') + }, + { + path: '/order', + name: 'order', + component: () => import('@/views/order/Index.vue') + }, + { + path: '/start', + name: 'start', + component: () => import('@/views/start/Index.vue') + }, + { + path: '/service1', + name: 'service', + component: () => import('@/views/service/Index.vue') + }, + { + path: '/service', + redirect: to => { + if(localStorage.getItem("chatOpen")==="ok"){ + return 'chat' + } + return 'service1' + }, + }, + { + path: '/profile', + name: 'profile', + component: () => import('@/views/profile/Index.vue') + } + ] + }, + { + path: '/daily-check-in', + name: 'dailyCheckIn', + component: () => import('@/views/dailyCheckIn/Index.vue') + }, + { + path: '/channel-select/:scenario', + name: 'channelSelect', + component: () => import('@/views/channelSelect/Index.vue') + + }, + { + path: '/recharge/:configId', + name: 'recharge', + component: () => import('@/views/recharge/Index.vue') + }, + { + path: '/order-details/:orderId', + name: 'orderDetails', + component: () => import('@/views/payOrderDetails/Index.vue') + }, + { + path: '/withdrawal/:configId', + name: 'withdrawal', + component: () => import('@/views/withdrawal/Index.vue') + }, + { + path: '/bind-crypto/:configId', + name: 'bindCrypto', + component: () => import('@/views/bindCrypto/Index.vue') + }, + { + path: '/sign-in', + name: 'signIn', + component: () => import('@/views/signIn/Index.vue') + }, + { + path: '/sign-up', + name: 'signUp', + component: () => import('@/views/signUp/Index.vue') + }, + { + path: '/balance-record', + name: 'balanceRecord', + component: () => import('@/views/balanceRecord/Index.vue') + }, + { + path: '/settings', + name: 'settings', + component: () => import('@/views/settings/Index.vue') + }, + { + path: '/notification', + name: 'notification', + component: () => import('@/views/notification/Index.vue') + }, + { + path: '/invitation', + name: 'invitation', + component: () => import('@/views/invitation/Index.vue') + }, + { + path: '/help-guide', + name: 'helpGuide', + component: () => import('@/views/helpGuide/Index.vue') + }, + { + path: '/settings/personal', + name: 'settingsInfo', + component: () => import('@/views/settingsPersonal/Index.vue') + }, + { + path: '/settings/password', + name: 'settingsPassword', + component: () => import('@/views/password/Index.vue') + }, + { + path: '/settings/about', + name: 'about', + component: () => import('@/views/about/Index.vue') + }, + { + path: '/settings/language', + name: 'language', + component: () => import('@/views/language/Index.vue') + }, + { + path: '/wallet', + name: 'wallet', + component: () => import('@/views/wallet/Index.vue') + }, + + ] +}) + +export default router diff --git a/grailed_app/src/router/permission.ts b/grailed_app/src/router/permission.ts new file mode 100644 index 0000000..32f3307 --- /dev/null +++ b/grailed_app/src/router/permission.ts @@ -0,0 +1,22 @@ +import router from './' +import * as AuthUtils from '@/utils/auth' +// 路由不重定向白名单 +const whiteList = [ + '/sign-in', + '/social-login', + '/auth-redirect', + ] + + router.beforeEach(async (to, from, next) => { + if (AuthUtils.getAccessToken()) { + if (to.path === '/sign-in') { + next({ path: '/' }) + } + } else { + if (whiteList.indexOf(to.path) !== -1) { + next() + } else { + next(`/sign-in?redirect=${to.fullPath}`) // 否则全部重定向到登录页 + } + } + }) \ No newline at end of file diff --git a/grailed_app/src/stores/counter.ts b/grailed_app/src/stores/counter.ts new file mode 100644 index 0000000..7a72d1f --- /dev/null +++ b/grailed_app/src/stores/counter.ts @@ -0,0 +1,13 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore('counter', () => { + const count = ref(0) + const doubleCount = computed(() => count.value * 2) + function increment() { + count.value++ + } + + return { count, doubleCount, increment } +}) + diff --git a/grailed_app/src/stores/modules/locale.ts b/grailed_app/src/stores/modules/locale.ts new file mode 100644 index 0000000..e69de29 diff --git a/grailed_app/src/utils/auth.ts b/grailed_app/src/utils/auth.ts new file mode 100644 index 0000000..8e73f3b --- /dev/null +++ b/grailed_app/src/utils/auth.ts @@ -0,0 +1,42 @@ +import type { TokenType } from '@/api/auth/type' +import { useCache } from '@/hooks/useCache' + +const { wsCache } = useCache() +const AccessTokenKey = 'ACCESS_TOKEN' +const RefreshTokenKey = 'REFRESH_TOKEN' +const TenantIdKey = 'TENANT_ID' +export const getTenantId = () => { + return wsCache.get(TenantIdKey) +} + +export const setTenantId = (username: string) => { + wsCache.set(TenantIdKey, username) +} + +// 获取token +export const getAccessToken = () => { + // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错 + return wsCache.get(AccessTokenKey) ? wsCache.get(AccessTokenKey) : wsCache.get('ACCESS_TOKEN') + } + + // 刷新token + export const getRefreshToken = () => { + return wsCache.get(RefreshTokenKey) + } + + // 设置token + export const setToken = (token: TokenType) => { + wsCache.set(RefreshTokenKey, token.refreshToken) + wsCache.set(AccessTokenKey, token.accessToken) + } + + // 删除token + export const removeToken = () => { + wsCache.delete(AccessTokenKey) + wsCache.delete(RefreshTokenKey) + } + + /** 格式化token(jwt格式) */ + export const formatToken = (token: string): string => { + return 'Bearer ' + token + } \ No newline at end of file diff --git a/grailed_app/src/utils/formatTime.ts b/grailed_app/src/utils/formatTime.ts new file mode 100644 index 0000000..5e5c854 --- /dev/null +++ b/grailed_app/src/utils/formatTime.ts @@ -0,0 +1,223 @@ +import dayjs from 'dayjs' + +/** + * 时间日期转换 + * @param date 当前时间,new Date() 格式 + * @param format 需要转换的时间格式字符串 + * @description format 字符串随意,如 `YYYY-mm、YYYY-mm-dd` + * @description format 季度:"YYYY-mm-dd HH:MM:SS QQQQ" + * @description format 星期:"YYYY-mm-dd HH:MM:SS WWW" + * @description format 几周:"YYYY-mm-dd HH:MM:SS ZZZ" + * @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ" + * @returns 返回拼接后的时间字符串 + */ +export function formatDate(date: Date, format?: string): string { + // 日期不存在,则返回空 + if (!date) { + return '' + } + // 日期存在,则进行格式化 + if (format === undefined) { + format = 'YYYY-MM-DD HH:mm:ss' + } + return dayjs(date).format(format) +} + +/** + * 获取当前的日期+时间 + */ +export function getNowDateTime() { + return dayjs() +} + +/** + * 获取当前日期是第几周 + * @param dateTime 当前传入的日期值 + * @returns 返回第几周数字值 + */ +export function getWeek(dateTime: Date): number { + const temptTime = new Date(dateTime.getTime()) + // 周几 + const weekday = temptTime.getDay() || 7 + // 周1+5天=周六 + temptTime.setDate(temptTime.getDate() - weekday + 1 + 5) + let firstDay = new Date(temptTime.getFullYear(), 0, 1) + const dayOfWeek = firstDay.getDay() + let spendDay = 1 + if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1 + firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay) + const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000) + return Math.ceil(d / 7) +} + +/** + * 将时间转换为 `几秒前`、`几分钟前`、`几小时前`、`几天前` + * @param param 当前时间,new Date() 格式或者字符串时间格式 + * @param format 需要转换的时间格式字符串 + * @description param 10秒: 10 * 1000 + * @description param 1分: 60 * 1000 + * @description param 1小时: 60 * 60 * 1000 + * @description param 24小时:60 * 60 * 24 * 1000 + * @description param 3天: 60 * 60* 24 * 1000 * 3 + * @returns 返回拼接后的时间字符串 + */ +export function formatPast(param: string | Date, format = 'YYYY-mm-dd HH:MM:SS'): string { + // 传入格式处理、存储转换值 + let t: any, s: number + // 获取js 时间戳 + let time: number = new Date().getTime() + // 是否是对象 + typeof param === 'string' || 'object' ? (t = new Date(param).getTime()) : (t = param) + // 当前时间戳 - 传入时间戳 + time = Number.parseInt(`${time - t}`) + if (time < 10000) { + // 10秒内 + return '刚刚' + } else if (time < 60000 && time >= 10000) { + // 超过10秒少于1分钟内 + s = Math.floor(time / 1000) + return `${s}秒前` + } else if (time < 3600000 && time >= 60000) { + // 超过1分钟少于1小时 + s = Math.floor(time / 60000) + return `${s}分钟前` + } else if (time < 86400000 && time >= 3600000) { + // 超过1小时少于24小时 + s = Math.floor(time / 3600000) + return `${s}小时前` + } else if (time < 259200000 && time >= 86400000) { + // 超过1天少于3天内 + s = Math.floor(time / 86400000) + return `${s}天前` + } else { + // 超过3天 + const date = typeof param === 'string' || 'object' ? new Date(param) : param + return formatDate(date, format) + } +} + +/** + * 时间问候语 + * @param param 当前时间,new Date() 格式 + * @description param 调用 `formatAxis(new Date())` 输出 `上午好` + * @returns 返回拼接后的时间字符串 + */ +export function formatAxis(param: Date): string { + const hour: number = new Date(param).getHours() + if (hour < 6) return '凌晨好' + else if (hour < 9) return '早上好' + else if (hour < 12) return '上午好' + else if (hour < 14) return '中午好' + else if (hour < 17) return '下午好' + else if (hour < 19) return '傍晚好' + else if (hour < 22) return '晚上好' + else return '夜里好' +} + +/** + * 将毫秒,转换成时间字符串。例如说,xx 分钟 + * + * @param ms 毫秒 + * @returns {string} 字符串 + */ +export function formatPast2(ms) { + const day = Math.floor(ms / (24 * 60 * 60 * 1000)) + const hour = Math.floor(ms / (60 * 60 * 1000) - day * 24) + const minute = Math.floor(ms / (60 * 1000) - day * 24 * 60 - hour * 60) + const second = Math.floor(ms / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60) + if (day > 0) { + return day + '天' + hour + '小时' + minute + '分钟' + } + if (hour > 0) { + return hour + '小时' + minute + '分钟' + } + if (minute > 0) { + return minute + '分钟' + } + if (second > 0) { + return second + '秒' + } else { + return 0 + '秒' + } +} + +/** + * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD HH:mm:ss 格式 + * + * @param row 行数据 + * @param column 字段 + * @param cellValue 字段值 + */ +// @ts-ignore +export const dateFormatter = (row, column, cellValue) => { + if (!cellValue) { + return + } + return formatDate(cellValue) +} + +/** + * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD 格式 + * + * @param row 行数据 + * @param column 字段 + * @param cellValue 字段值 + */ +// @ts-ignore +export const dateFormatter2 = (row, column, cellValue) => { + if (!cellValue) { + return + } + return formatDate(cellValue, 'YYYY-MM-DD') +} + +/** + * 设置起始日期,时间为00:00:00 + * @param param 传入日期 + * @returns 带时间00:00:00的日期 + */ +export function beginOfDay(param: Date) { + return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 0, 0, 0) +} + +/** + * 设置结束日期,时间为23:59:59 + * @param param 传入日期 + * @returns 带时间23:59:59的日期 + */ +export function endOfDay(param: Date) { + return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 23, 59, 59) +} + +/** + * 计算两个日期间隔天数 + * @param param1 日期1 + * @param param2 日期2 + */ +export function betweenDay(param1: Date, param2: Date) { + param1 = convertDate(param1) + param2 = convertDate(param2) + // 计算差值 + return Math.floor((param2.getTime() - param1.getTime()) / (24 * 3600 * 1000)) +} + +/** + * 日期计算 + * @param param1 日期 + * @param param2 添加的时间 + */ +export function addTime(param1: Date, param2: number) { + param1 = convertDate(param1) + return new Date(param1.getTime() + param2) +} + +/** + * 日期转换 + * @param param 日期 + */ +export function convertDate(param: Date | string) { + if (typeof param === 'string') { + return new Date(param) + } + return param +} diff --git a/grailed_app/src/utils/pageUtils.ts b/grailed_app/src/utils/pageUtils.ts new file mode 100644 index 0000000..43e5f65 --- /dev/null +++ b/grailed_app/src/utils/pageUtils.ts @@ -0,0 +1,52 @@ +import { useCache } from '@/hooks/useCache' +import axios from "@/config/axios"; + +const {wsCache} = useCache('sessionStorage') + +export interface H5Pages { + country: string + language: string + name: string + logo: string + favicon: string + title: string +} + +const defaultConfig: H5Pages = { + country: 'US', + language: 'en-us', + name: 'Baltini', + logo: '/favicon.ico', + favicon: '/favicon.webp', + title: 'Baltini App', +} + +const PAGE_CONFIG_KEY = 'pageConfig' + +export const getH5PagesConfig = (): H5Pages => { + return wsCache.get(PAGE_CONFIG_KEY); +} + +const fetchH5PagesConfig = async () => { + let res:H5Pages + try { + res = await axios.get({ url: '/member/app/config/get' }) + } catch (e) { + res = {...defaultConfig} + } + return res +} + +export const setupPageConfig = () => { + fetchH5PagesConfig().then(res => { + wsCache.set(PAGE_CONFIG_KEY, res) + // set title + document.title = res.title + // set favicon + const link = document.querySelector("link[rel*='icon']") as HTMLLinkElement || document.createElement('link') as HTMLLinkElement + link.type = 'image/x-icon' + link.rel = 'shortcut icon' + link.href = res.favicon + }) + +} \ No newline at end of file diff --git a/grailed_app/src/views/Main.vue b/grailed_app/src/views/Main.vue new file mode 100644 index 0000000..2d06e1a --- /dev/null +++ b/grailed_app/src/views/Main.vue @@ -0,0 +1,81 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/about/Index.vue b/grailed_app/src/views/about/Index.vue new file mode 100644 index 0000000..bf0db3a --- /dev/null +++ b/grailed_app/src/views/about/Index.vue @@ -0,0 +1,39 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/balanceRecord/Index.vue b/grailed_app/src/views/balanceRecord/Index.vue new file mode 100644 index 0000000..f9aef4a --- /dev/null +++ b/grailed_app/src/views/balanceRecord/Index.vue @@ -0,0 +1,96 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/bindCrypto/Index.vue b/grailed_app/src/views/bindCrypto/Index.vue new file mode 100644 index 0000000..bb9702a --- /dev/null +++ b/grailed_app/src/views/bindCrypto/Index.vue @@ -0,0 +1,86 @@ + + + diff --git a/grailed_app/src/views/channelSelect/Index.vue b/grailed_app/src/views/channelSelect/Index.vue new file mode 100644 index 0000000..87370df --- /dev/null +++ b/grailed_app/src/views/channelSelect/Index.vue @@ -0,0 +1,96 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/dailyCheckIn/Index.vue b/grailed_app/src/views/dailyCheckIn/Index.vue new file mode 100644 index 0000000..bf55a22 --- /dev/null +++ b/grailed_app/src/views/dailyCheckIn/Index.vue @@ -0,0 +1,174 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/helpGuide/Index.vue b/grailed_app/src/views/helpGuide/Index.vue new file mode 100644 index 0000000..17d10b3 --- /dev/null +++ b/grailed_app/src/views/helpGuide/Index.vue @@ -0,0 +1,68 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/home/Index.vue b/grailed_app/src/views/home/Index.vue new file mode 100644 index 0000000..c3d96fa --- /dev/null +++ b/grailed_app/src/views/home/Index.vue @@ -0,0 +1,277 @@ + + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/home/components/Carousel.vue b/grailed_app/src/views/home/components/Carousel.vue new file mode 100644 index 0000000..d0968e1 --- /dev/null +++ b/grailed_app/src/views/home/components/Carousel.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/home/components/Introduce.vue b/grailed_app/src/views/home/components/Introduce.vue new file mode 100644 index 0000000..3d0e93f --- /dev/null +++ b/grailed_app/src/views/home/components/Introduce.vue @@ -0,0 +1,234 @@ + + + + + + + diff --git a/grailed_app/src/views/home/components/MemberList.vue b/grailed_app/src/views/home/components/MemberList.vue new file mode 100644 index 0000000..f013d5f --- /dev/null +++ b/grailed_app/src/views/home/components/MemberList.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/home/components/Notice.vue b/grailed_app/src/views/home/components/Notice.vue new file mode 100644 index 0000000..c2a563f --- /dev/null +++ b/grailed_app/src/views/home/components/Notice.vue @@ -0,0 +1,67 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/home/components/Partners.vue b/grailed_app/src/views/home/components/Partners.vue new file mode 100644 index 0000000..778f163 --- /dev/null +++ b/grailed_app/src/views/home/components/Partners.vue @@ -0,0 +1,73 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/home/components/TaskCarouse.vue b/grailed_app/src/views/home/components/TaskCarouse.vue new file mode 100644 index 0000000..bcf1195 --- /dev/null +++ b/grailed_app/src/views/home/components/TaskCarouse.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/invitation/Index.vue b/grailed_app/src/views/invitation/Index.vue new file mode 100644 index 0000000..2fd83c2 --- /dev/null +++ b/grailed_app/src/views/invitation/Index.vue @@ -0,0 +1,110 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/language/Index.vue b/grailed_app/src/views/language/Index.vue new file mode 100644 index 0000000..ee0448d --- /dev/null +++ b/grailed_app/src/views/language/Index.vue @@ -0,0 +1,69 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/notification/Index.vue b/grailed_app/src/views/notification/Index.vue new file mode 100644 index 0000000..d1d536f --- /dev/null +++ b/grailed_app/src/views/notification/Index.vue @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/grailed_app/src/views/order/Index.vue b/grailed_app/src/views/order/Index.vue new file mode 100644 index 0000000..94a156d --- /dev/null +++ b/grailed_app/src/views/order/Index.vue @@ -0,0 +1,252 @@ + + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/password/Index.vue b/grailed_app/src/views/password/Index.vue new file mode 100644 index 0000000..ae68a0d --- /dev/null +++ b/grailed_app/src/views/password/Index.vue @@ -0,0 +1,120 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/payOrderDetails/Index.vue b/grailed_app/src/views/payOrderDetails/Index.vue new file mode 100644 index 0000000..1c9ec2f --- /dev/null +++ b/grailed_app/src/views/payOrderDetails/Index.vue @@ -0,0 +1,109 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/profile/Index.vue b/grailed_app/src/views/profile/Index.vue new file mode 100644 index 0000000..69be912 --- /dev/null +++ b/grailed_app/src/views/profile/Index.vue @@ -0,0 +1,234 @@ + + + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/recharge/Index.vue b/grailed_app/src/views/recharge/Index.vue new file mode 100644 index 0000000..5ae2900 --- /dev/null +++ b/grailed_app/src/views/recharge/Index.vue @@ -0,0 +1,164 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/service/Index.vue b/grailed_app/src/views/service/Index.vue new file mode 100644 index 0000000..6dd375c --- /dev/null +++ b/grailed_app/src/views/service/Index.vue @@ -0,0 +1,93 @@ + + + + + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/service/chat/index.vue b/grailed_app/src/views/service/chat/index.vue new file mode 100644 index 0000000..a521c7e --- /dev/null +++ b/grailed_app/src/views/service/chat/index.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/grailed_app/src/views/settings/Index.vue b/grailed_app/src/views/settings/Index.vue new file mode 100644 index 0000000..b056b05 --- /dev/null +++ b/grailed_app/src/views/settings/Index.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/grailed_app/src/views/settingsPersonal/Index.vue b/grailed_app/src/views/settingsPersonal/Index.vue new file mode 100644 index 0000000..9824ee0 --- /dev/null +++ b/grailed_app/src/views/settingsPersonal/Index.vue @@ -0,0 +1,257 @@ + +

  • dEpCl5j)lFhdSG1_QnhwC%nbIzia!z}mQSZH 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 mV;a+##x$lejcH6HqyG=XEA{007SnAocZ} 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 UAX|d?=VbsOcWl57#$E~k2ZkF)vH$=8 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/home/ebay.png b/grailed_app/src/assets/imgs/home/ebay.png new file mode 100644 index 0000000000000000000000000000000000000000..20ecb7dfcccb57bad1de50dda6412555f520075d GIT binary patch literal 4048 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/home/icon-term.png b/grailed_app/src/assets/imgs/home/icon-term.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8c8f5f4cbad686ffa69e51869de53d92b1022f GIT binary patch literal 13657 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/home/manomano.png b/grailed_app/src/assets/imgs/home/manomano.png new file mode 100644 index 0000000000000000000000000000000000000000..bd99f4b92793ca99201c9e1a969fc4568e31aef7 GIT binary patch literal 3825 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 t7+ubs3hOcxVJ+G`-*ow4a|}cXu}r4-W$a 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 LtOKf2d>i$DzBXHb literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/home/tiktok.jpg b/grailed_app/src/assets/imgs/home/tiktok.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fade54d1473394301138e78617c17121c76ba4fe GIT binary patch literal 6310 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/home/wish.png b/grailed_app/src/assets/imgs/home/wish.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d09efd0951c0492650b97c231ff9072abf91c5 GIT binary patch literal 4203 zcmV-x5R~tUP)H^QGJM`~Ls1-}deJ{nPFGyyW+G%kakN z_-n`S&g=Px(DFdL?B@0SwBh!?3ZX;5{y7{Y|Hy1Z;Ac>Z+X2W5|XH*0TXBLN&T8{A`3)AQ}o8$+aLb$hd%^h zvn{Fy#k!omx<~&l3@fEG6I!e7t2^~y!d_*4o;IB`H5BzHUVUrI{ZZAzZW0n zI#WvN^WYt<5ypViBs#q8Xk zmTH``wcIX%Oiv?TI{*5DTwgw)*3%!us;3t6WxCdeKnZ2}D*UCBW?gA@jCj#YFtrSc z8YF9O0hCatcHu8=YqmTqN6+hUa#*QhrjqT)11N#;clI`St(NoWbvZ47Qqb#E4K9%c zvha6K`|s4MirH6w5NJ45Dl8!%;1B>FyI zd_WeF=rn+Lo;>)KkX=#y7FQ1HpGtL#gu7e_InCN@M`1rY;8nqWoezOP-lme(YLqv$VHHhddsmJ zoO7jAe!irh4Uo4)4Zbh}l>NE`(>a{u)d^ zhnv-5aae6WBvCn#j6Q7=F3uqfAyH&bVtni`$LvaBzi|CmbsDUA%yJqs+UeKUTL%9i z7y6v8wd&Ikt#eh3iT?>k7oIE+&*q1HSq=u}bg}U=-S#>q&`YmO$H#0XnJkaaCds&|K;vd>@AhZlwz#Q0$eud( zbdi&c4xN-f&wM!VR!cEV}5Ch2+AcJXST~!3C>-U0Y0 zxEDeSql7&6p~Sv zZYh9%+MD{X_L;jlQ^M_|-d%3h#|&f_m+)DFUfmpAC~YztrGr|m(L2}0`Erj8WJX3E zL4wQvkyrL>Dq$ZA5W=sIe$p={bN-wGn-ST zJ-foPjTk(9TSNm=G76P2-M?kr7a1yBWE6=>ExSv1wpiw!&+MFAV~!Pe$c>sXi8kZe zJ8%Ya!O6I__Ga9-ZVr-B zQ!RqsI)`?#VN*9#cM4OmX=rp%oyUjaY&4n;7h9*NSImYO8D&O3G6|Rj7#XdbgA2u6 zT|f!31$g-44!Y_bT*x%6p{i-iH?b-BkHlHeq)$bcy#X}~8FBl#Jz zr_=32)EqjsnP+r#iuHDn+(0^&(F9IvQkAvM^f{|!#XMcamcd9z(;OTMgN)+%o`8Hm zs?eF^mlXmN(ov?**`~%kU1a-U+_!EHp4v>3h3yFW+1IxUbGh%ILp|^0he8PulN62G zC0iG>WiakrHzy*aZ1Ysb)GOAH&SZYJWtG5WjkCxFqETs@ENPBdz?$aZfS9{1r!QI^ zr*da4Bcl#CAv|QXN-&nZXbSRRP5EdF9pXS z;9qk~JO8b$C@RzEp=31BmeCww;Bc6lote2i(0P7h)_VLZfu{>95utgSMJ}+`VWctF zoQ(U{9fkwaCRtwbC08Nf8iv?nF1YOjj)c%I#PoS686`xJ*)rR^Kv)S`}a+ zU_K*I<#-LqPKKf|+CEs=6(eD+x!Ra3BBMdYlk&>?O;DDS&~eBugfX|GFxoyC8D$13 zQFDl$cP)M)HQZET(JQ#HkRTlcc0w4m#q>GRCM@iVZ9uHKnstcC=v(WaFAwz6mk1e^ z#5>?!T=3&JVHj;6%+tkIuE>^wOvOEtMa}cLgGG00!AAvr60zp& zKr$(;Mj#5KwSZ|8vH`J^bln^_6@Y<51KS3g4ns0(Kcjo+a^GQYa*kYX z4mhdUOf*0!H8V=E7(X&`m>Irtf1z0cr^G6tikq1j&U3jPz@H@e@f#0V#Z-(0EK=pk z1lP1CCZi4Z-ZC(04$I|s0WWJ|%m$0n!0LpSbjRAOf7!G3S4d7&u}Ug5wBa5^37f%W zR9LT_NdRumFeYf z#riQE&*C1AwGuO<#@hq!wGyik{3vNIJk6p7p{Gu}yj^m1^Dx$|9~tdnv^eE5AvALo z-^(qCx4>jnm`v#iIIz(gSRANEZad3;P!(Y)Ax|>e$9ycQrPnC=sC&7wcR<)%mzSfb zdfz2=Oe|4rj-)%oOyEsME%=-|D|^Tj$(R^1Rxa>EIQ1iq&ZB^n?u#bP=*U}p(9-x<25Q>IX~u-4I-mftXPUg zEdhKlw_wphzqfeBx&schT2F_w_t|j2^s1YjXP4E-Y_?mK?xKP%BOq!-c*<`<;+Dqu zatjt6=27AmD+oBy_v|%E?po(}`6K7e{iHd#*yG_j`ge@rwpF_^@V(rEMTdEmc*Q!C zM}7dUB><;nU;%8T)M~zt@8uROI!s2zE0#qK{}fup4Nb}JzBoOdmy(r^cDkCc<3p+7 z?O26~M*jwn$g@;v7biqhvc0vJ%E+S+^QPMlp}_xJU8jYN&I3hjm8H>E4J*t1;KOzztt7DSR(?6dCoox<)=$ zNzgq%Lo#ZdOInq+G#@H(>aPWg@8uTkGLT1k)u;@(Mf!>8-t~pob@NQuOMR6Aw4r^X z0sejfUxg?rN`QHkPm!~*$g`)RqeCQQwEst~miGM3A$VI8*9_^nBwh|~qJH-%zH$-t zCYqqqtJQF%bG{3>_q+o`)AQLW$AOzIIo7g~c4MXYlMaSj<0W z@1xmnzPJ!0_1gXM5_8)aGca%}Djc0t8H>}rByTaGv>RW!ltjR}C+4lzow-@SAUP@eB#%=4mPFDnw}13#xH62ogcQI){vj&cGUXk4!O!a-N@w}>NO+wKGxfJ{0%dWG2O>9U;QRt-!%%ddN zA=?4%C_U)hIQD(WMVD8MXXC^|;ntuS83=idaxjr6?^HpnJ%7d@^`@{bs{s#o&!jQlox|aX|002ovPDHLkV1m2- B9$x?e literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/home/zalando.png b/grailed_app/src/assets/imgs/home/zalando.png new file mode 100644 index 0000000000000000000000000000000000000000..d50b3767c718c5fa645c4d40ffda10f90ca37103 GIT binary patch literal 2385 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 literal 0 HcmV?d00001 diff --git a/grailed_app/src/assets/imgs/home_bg.png b/grailed_app/src/assets/imgs/home_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e17f825d75e626ef7d9a502c304da65e88eefc0d GIT binary patch literal 1319720 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 z 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 z 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

    |I+Gx^oPse9?Owo6Sqeimob`k(QbeCHOED|# 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 literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/imgs/avatar.gif b/grailed-ui-admin-vue3/src/assets/imgs/avatar.gif new file mode 100644 index 0000000000000000000000000000000000000000..fdbd32c675f85af4ed57021ac0638a21a3c6cad3 GIT binary patch literal 6334 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 literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/imgs/avatar.jpg b/grailed-ui-admin-vue3/src/assets/imgs/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d46a70a46430e31744420865138cc7eedb8b77e1 GIT binary patch literal 6264 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 BLq7lj literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/imgs/logo.png b/grailed-ui-admin-vue3/src/assets/imgs/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..386805f587769f238c92955c8e93383070a6f9bb GIT binary patch literal 26131 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 DOo#kG literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/imgs/profile.jpg b/grailed-ui-admin-vue3/src/assets/imgs/profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4bcf879884f76657292f2e792bf9efbb4090f63 GIT binary patch literal 7885 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 NvOP|&09Jii_#cBOpN9Yd literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/imgs/wechat.png b/grailed-ui-admin-vue3/src/assets/imgs/wechat.png new file mode 100644 index 0000000000000000000000000000000000000000..6afc5e41cfc29d258e0c6135981a7a09b7bcf126 GIT binary patch literal 1881 zcmV-f2d4OmP)Px+6G=otRA@uxT5F6HRTlovt)4-Yt`>DxqM{h1piEaoG!it+;>Ku9`iG12%)6qSb>G)jC#QP~(>XJx8!Ncf>R3nRXU>6!tR>8fLH z&-BPlcUM(+R|8q^kNH#I`M&erd#dK%bDQux7!;JpamncoOxXzv({Uli+0)aoy&Fxi zgW|7-ry`T%jKJPYsh*xLg z=_mZbD@VDSjI=d2u_EpTV{+vZ?vV_<2cWG_H(#rjMoE)uN^1inQ7hpBUdB=@VJ2&# zSJb3xM4tobrdkMkaJE{yxiV`Dvjn&heT6&y}!$;8dSkH)Ae?JF=Qm5e2{TXFM(B5|Eyoa>Qb zi=~@uyi9mKA2ex1-va0|S1@Cjl`zjd6m$He(YfOA2lTk($P%F!8(B{iu%3c|8#NUDitV7DNwa~y0EA>Nbu?!+#%Zpl`| zS!mMGWT{>nB&i=RX1p&z>&T{cvi!#-r=KUtUPy$~m@yH+X#h_IhzaOoa2J@m2-Ja) zvp%yVz0Z%1#K>~p3*cnG0Ri9!K=e0Rf?*>%ML^7F@KpdVER*{sfL|vCo4pKE#L#v# zaB7(X6~X03!V%dU_cx$N-CK7Lh*wlZbZ8J^7c=hf)6J(!aZw}{eTA9iOxAj=v~;sI zoQhpZoHI8gV8L}x2>16dHn$hNlaZu$7ZV-`Sa1{_zisL1%hhCb1&HpenHHmm34a}Z zHl?tk%_U${&4huEE#16GO=<}c+G?mXNX_VT$eG)(Z{L#FlJDf13 zwT=^8cR1@^18ig2*fT57iXNu0r3`tR}is!F3D zS-LqZVrT~#7+WP*wc$I8wj?7)>{&FwOswejRRN_jn0?GM7iE-*~8LJ*>%_n!r5g92N}TF>amg< z7w8c^%fQRTd_F)^0ge^BuM9CJW(o4j;mRO$E|-g#7nL+QE)|_6m_8UH&4TE8F+eMO zmv7ruN+{Q&tVcr#*}XmAJKu&+2whHunqA3x8Xmpl866NYqE9nuF2FB{tg_0@oST?x zXs;is)g8GVq5Zubcf0@iKm=5XK2^EU%QC`yjQdGD#%*)#Sn>+H(se%MS78C?tDhM*>{ z2+z+#h?%`D+hm7-cpO%fIisoQ3NXoT-I##Qerk*Cy!|bmvX4As9Cnj~MztAWNTY%M z50#sbQj>N>Oy-kOliFX1_$mg?uXksla(-wPS#Ojve@iP`2#b^O0DIsA?r(JL%Hz4@s4x|Xv_L12Fc30Q=P TM8y=K00000NkvXXu0mjf4<3N5 literal 0 HcmV?d00001 diff --git a/grailed-ui-admin-vue3/src/assets/svgs/403.svg b/grailed-ui-admin-vue3/src/assets/svgs/403.svg new file mode 100644 index 0000000..4500596 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/403.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/assets/svgs/404.svg b/grailed-ui-admin-vue3/src/assets/svgs/404.svg new file mode 100644 index 0000000..5244d8d --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/assets/svgs/500.svg b/grailed-ui-admin-vue3/src/assets/svgs/500.svg new file mode 100644 index 0000000..9c02092 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/500.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/assets/svgs/icon.svg b/grailed-ui-admin-vue3/src/assets/svgs/icon.svg new file mode 100644 index 0000000..0866e24 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/icon.svg @@ -0,0 +1,3 @@ +; + + diff --git a/grailed-ui-admin-vue3/src/assets/svgs/login-bg.svg b/grailed-ui-admin-vue3/src/assets/svgs/login-bg.svg new file mode 100644 index 0000000..a999b43 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/login-bg.svg @@ -0,0 +1,7 @@ +; + + diff --git a/grailed-ui-admin-vue3/src/assets/svgs/login-box-bg.svg b/grailed-ui-admin-vue3/src/assets/svgs/login-box-bg.svg new file mode 100644 index 0000000..ab10040 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/login-box-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/assets/svgs/message.svg b/grailed-ui-admin-vue3/src/assets/svgs/message.svg new file mode 100644 index 0000000..37ac2a7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/message.svg @@ -0,0 +1,3 @@ +; + + diff --git a/grailed-ui-admin-vue3/src/assets/svgs/money.svg b/grailed-ui-admin-vue3/src/assets/svgs/money.svg new file mode 100644 index 0000000..5640193 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/money.svg @@ -0,0 +1,3 @@ +; + + diff --git a/grailed-ui-admin-vue3/src/assets/svgs/peoples.svg b/grailed-ui-admin-vue3/src/assets/svgs/peoples.svg new file mode 100644 index 0000000..eacaf94 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/peoples.svg @@ -0,0 +1,4 @@ +; + + + diff --git a/grailed-ui-admin-vue3/src/assets/svgs/shopping.svg b/grailed-ui-admin-vue3/src/assets/svgs/shopping.svg new file mode 100644 index 0000000..6dedcf0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/shopping.svg @@ -0,0 +1,3 @@ +; + + diff --git a/grailed-ui-admin-vue3/src/assets/svgs/speaker-wave.svg b/grailed-ui-admin-vue3/src/assets/svgs/speaker-wave.svg new file mode 100644 index 0000000..804f3f6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/speaker-wave.svg @@ -0,0 +1,3 @@ + + + diff --git a/grailed-ui-admin-vue3/src/assets/svgs/speaker-x-mark.svg b/grailed-ui-admin-vue3/src/assets/svgs/speaker-x-mark.svg new file mode 100644 index 0000000..e98295a --- /dev/null +++ b/grailed-ui-admin-vue3/src/assets/svgs/speaker-x-mark.svg @@ -0,0 +1,3 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Backtop/index.ts b/grailed-ui-admin-vue3/src/components/Backtop/index.ts new file mode 100644 index 0000000..96de88d --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Backtop/index.ts @@ -0,0 +1,3 @@ +import Backtop from './src/Backtop.vue' + +export { Backtop } diff --git a/grailed-ui-admin-vue3/src/components/Backtop/src/Backtop.vue b/grailed-ui-admin-vue3/src/components/Backtop/src/Backtop.vue new file mode 100644 index 0000000..5d79f51 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Backtop/src/Backtop.vue @@ -0,0 +1,17 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/ConfigGlobal/index.ts b/grailed-ui-admin-vue3/src/components/ConfigGlobal/index.ts new file mode 100644 index 0000000..dda2462 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ConfigGlobal/index.ts @@ -0,0 +1,3 @@ +import ConfigGlobal from './src/ConfigGlobal.vue' + +export { ConfigGlobal } diff --git a/grailed-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue b/grailed-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue new file mode 100644 index 0000000..a087396 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ConfigGlobal/src/ConfigGlobal.vue @@ -0,0 +1,63 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/ContentDetailWrap/index.ts b/grailed-ui-admin-vue3/src/components/ContentDetailWrap/index.ts new file mode 100644 index 0000000..1871cac --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ContentDetailWrap/index.ts @@ -0,0 +1,3 @@ +import ContentDetailWrap from './src/ContentDetailWrap.vue' + +export { ContentDetailWrap } diff --git a/grailed-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue b/grailed-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue new file mode 100644 index 0000000..a9eacc0 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ContentDetailWrap/src/ContentDetailWrap.vue @@ -0,0 +1,58 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/ContentWrap/index.ts b/grailed-ui-admin-vue3/src/components/ContentWrap/index.ts new file mode 100644 index 0000000..8c22cc8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ContentWrap/index.ts @@ -0,0 +1,3 @@ +import ContentWrap from './src/ContentWrap.vue' + +export { ContentWrap } diff --git a/grailed-ui-admin-vue3/src/components/ContentWrap/src/ContentWrap.vue b/grailed-ui-admin-vue3/src/components/ContentWrap/src/ContentWrap.vue new file mode 100644 index 0000000..e3bd597 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ContentWrap/src/ContentWrap.vue @@ -0,0 +1,34 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/CountTo/index.ts b/grailed-ui-admin-vue3/src/components/CountTo/index.ts new file mode 100644 index 0000000..2119f02 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/CountTo/index.ts @@ -0,0 +1,3 @@ +import CountTo from './src/CountTo.vue' + +export { CountTo } diff --git a/grailed-ui-admin-vue3/src/components/CountTo/src/CountTo.vue b/grailed-ui-admin-vue3/src/components/CountTo/src/CountTo.vue new file mode 100644 index 0000000..1b1131a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/CountTo/src/CountTo.vue @@ -0,0 +1,182 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Crontab/index.ts b/grailed-ui-admin-vue3/src/components/Crontab/index.ts new file mode 100644 index 0000000..6beeef8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Crontab/index.ts @@ -0,0 +1,2 @@ +import Crontab from './src/Crontab.vue' +export { Crontab } diff --git a/grailed-ui-admin-vue3/src/components/Crontab/src/Crontab.vue b/grailed-ui-admin-vue3/src/components/Crontab/src/Crontab.vue new file mode 100644 index 0000000..90b40b2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Crontab/src/Crontab.vue @@ -0,0 +1,1011 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/components/Cropper/index.ts b/grailed-ui-admin-vue3/src/components/Cropper/index.ts new file mode 100644 index 0000000..8fcc618 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Cropper/index.ts @@ -0,0 +1,4 @@ +import CropperImage from './src/Cropper.vue' +import CropperAvatar from './src/CropperAvatar.vue' + +export { CropperImage, CropperAvatar } diff --git a/grailed-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue b/grailed-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue new file mode 100644 index 0000000..27052b8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Cropper/src/CopperModal.vue @@ -0,0 +1,261 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Cropper/src/Cropper.vue b/grailed-ui-admin-vue3/src/components/Cropper/src/Cropper.vue new file mode 100644 index 0000000..871aed8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Cropper/src/Cropper.vue @@ -0,0 +1,183 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue b/grailed-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue new file mode 100644 index 0000000..8886c4e --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Cropper/src/CropperAvatar.vue @@ -0,0 +1,140 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Cropper/src/types.ts b/grailed-ui-admin-vue3/src/components/Cropper/src/types.ts new file mode 100644 index 0000000..bcad3b4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Cropper/src/types.ts @@ -0,0 +1,8 @@ +import type Cropper from 'cropperjs' + +export interface CropendResult { + imgBase64: string + imgInfo: Cropper.Data +} + +export type { Cropper } diff --git a/grailed-ui-admin-vue3/src/components/Descriptions/index.ts b/grailed-ui-admin-vue3/src/components/Descriptions/index.ts new file mode 100644 index 0000000..91b0eb4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Descriptions/index.ts @@ -0,0 +1,3 @@ +import Descriptions from './src/Descriptions.vue' + +export { Descriptions } diff --git a/grailed-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue b/grailed-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue new file mode 100644 index 0000000..06e1096 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Descriptions/src/Descriptions.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/Dialog/index.ts b/grailed-ui-admin-vue3/src/components/Dialog/index.ts new file mode 100644 index 0000000..1655dad --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Dialog/index.ts @@ -0,0 +1,3 @@ +import Dialog from './src/Dialog.vue' + +export { Dialog } diff --git a/grailed-ui-admin-vue3/src/components/Dialog/src/Dialog.vue b/grailed-ui-admin-vue3/src/components/Dialog/src/Dialog.vue new file mode 100644 index 0000000..ea9caf9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Dialog/src/Dialog.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/DictTag/index.ts b/grailed-ui-admin-vue3/src/components/DictTag/index.ts new file mode 100644 index 0000000..4db2742 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/DictTag/index.ts @@ -0,0 +1,3 @@ +import DictTag from './src/DictTag.vue' + +export { DictTag } diff --git a/grailed-ui-admin-vue3/src/components/DictTag/src/DictTag.vue b/grailed-ui-admin-vue3/src/components/DictTag/src/DictTag.vue new file mode 100644 index 0000000..db37f71 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/DictTag/src/DictTag.vue @@ -0,0 +1,60 @@ + diff --git a/grailed-ui-admin-vue3/src/components/DocAlert/index.vue b/grailed-ui-admin-vue3/src/components/DocAlert/index.vue new file mode 100644 index 0000000..3a3feab --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/DocAlert/index.vue @@ -0,0 +1,34 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Echart/index.ts b/grailed-ui-admin-vue3/src/components/Echart/index.ts new file mode 100644 index 0000000..4822092 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Echart/index.ts @@ -0,0 +1,3 @@ +import Echart from './src/Echart.vue' + +export { Echart } diff --git a/grailed-ui-admin-vue3/src/components/Echart/src/Echart.vue b/grailed-ui-admin-vue3/src/components/Echart/src/Echart.vue new file mode 100644 index 0000000..fd3342d --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Echart/src/Echart.vue @@ -0,0 +1,115 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Editor/index.ts b/grailed-ui-admin-vue3/src/components/Editor/index.ts new file mode 100644 index 0000000..3fbf0a9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Editor/index.ts @@ -0,0 +1,8 @@ +import Editor from './src/Editor.vue' +import { IDomEditor } from '@wangeditor/editor' + +export interface EditorExpose { + getEditorRef: () => Promise +} + +export { Editor } diff --git a/grailed-ui-admin-vue3/src/components/Editor/src/Editor.vue b/grailed-ui-admin-vue3/src/components/Editor/src/Editor.vue new file mode 100644 index 0000000..d972552 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Editor/src/Editor.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/Error/index.ts b/grailed-ui-admin-vue3/src/components/Error/index.ts new file mode 100644 index 0000000..a52c6f9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Error/index.ts @@ -0,0 +1,3 @@ +import Error from './src/Error.vue' + +export { Error } diff --git a/grailed-ui-admin-vue3/src/components/Error/src/Error.vue b/grailed-ui-admin-vue3/src/components/Error/src/Error.vue new file mode 100644 index 0000000..3fd7a17 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Error/src/Error.vue @@ -0,0 +1,58 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Form/index.ts b/grailed-ui-admin-vue3/src/components/Form/index.ts new file mode 100644 index 0000000..484c7a2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/index.ts @@ -0,0 +1,15 @@ +import Form from './src/Form.vue' +import { ElForm } from 'element-plus' +import { FormSchema, FormSetPropsType } from '@/types/form' + +export interface FormExpose { + setValues: (data: Recordable) => void + setProps: (props: Recordable) => void + delSchema: (field: string) => void + addSchema: (formSchema: FormSchema, index?: number) => void + setSchema: (schemaProps: FormSetPropsType[]) => void + formModel: Recordable + getElFormRef: () => ComponentRef +} + +export { Form } diff --git a/grailed-ui-admin-vue3/src/components/Form/src/Form.vue b/grailed-ui-admin-vue3/src/components/Form/src/Form.vue new file mode 100644 index 0000000..9742bab --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/src/Form.vue @@ -0,0 +1,307 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Form/src/componentMap.ts b/grailed-ui-admin-vue3/src/components/Form/src/componentMap.ts new file mode 100644 index 0000000..5af9b40 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/src/componentMap.ts @@ -0,0 +1,55 @@ +import type { Component } from 'vue' +import { + ElCascader, + ElCheckboxGroup, + ElColorPicker, + ElDatePicker, + ElInput, + ElInputNumber, + ElRadioGroup, + ElRate, + ElSelect, + ElSelectV2, + ElTreeSelect, + ElSlider, + ElSwitch, + ElTimePicker, + ElTimeSelect, + ElTransfer, + ElAutocomplete, + ElDivider +} from 'element-plus' +import { InputPassword } from '@/components/InputPassword' +import { Editor } from '@/components/Editor' +import { UploadImg, UploadImgs, UploadFile } from '@/components/UploadFile' +import { ComponentName } from '@/types/components' + +const componentMap: Recordable = { + Radio: ElRadioGroup, + Checkbox: ElCheckboxGroup, + CheckboxButton: ElCheckboxGroup, + Input: ElInput, + Autocomplete: ElAutocomplete, + InputNumber: ElInputNumber, + Select: ElSelect, + Cascader: ElCascader, + Switch: ElSwitch, + Slider: ElSlider, + TimePicker: ElTimePicker, + DatePicker: ElDatePicker, + Rate: ElRate, + ColorPicker: ElColorPicker, + Transfer: ElTransfer, + Divider: ElDivider, + TimeSelect: ElTimeSelect, + SelectV2: ElSelectV2, + TreeSelect: ElTreeSelect, + RadioButton: ElRadioGroup, + InputPassword: InputPassword, + Editor: Editor, + UploadImg: UploadImg, + UploadImgs: UploadImgs, + UploadFile: UploadFile +} + +export { componentMap } diff --git a/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx b/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx new file mode 100644 index 0000000..e151839 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderCheckbox.tsx @@ -0,0 +1,26 @@ +import { FormSchema } from '@/types/form' +import { ElCheckbox, ElCheckboxButton } from 'element-plus' +import { defineComponent } from 'vue' + +export const useRenderCheckbox = () => { + const renderCheckboxOptions = (item: FormSchema) => { + // 如果有别名,就取别名 + const labelAlias = item?.componentProps?.optionsAlias?.labelField + const valueAlias = item?.componentProps?.optionsAlias?.valueField + const Com = (item.component === 'Checkbox' ? ElCheckbox : ElCheckboxButton) as ReturnType< + typeof defineComponent + > + return item?.componentProps?.options?.map((option) => { + const { ...other } = option + return ( + + {option[labelAlias || 'label']} + + ) + }) + } + + return { + renderCheckboxOptions + } +} diff --git a/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx b/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx new file mode 100644 index 0000000..d1005ca --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderRadio.tsx @@ -0,0 +1,26 @@ +import { FormSchema } from '@/types/form' +import { ElRadio, ElRadioButton } from 'element-plus' +import { defineComponent } from 'vue' + +export const useRenderRadio = () => { + const renderRadioOptions = (item: FormSchema) => { + // 如果有别名,就取别名 + const labelAlias = item?.componentProps?.optionsAlias?.labelField + const valueAlias = item?.componentProps?.optionsAlias?.valueField + const Com = (item.component === 'Radio' ? ElRadio : ElRadioButton) as ReturnType< + typeof defineComponent + > + return item?.componentProps?.options?.map((option) => { + const { ...other } = option + return ( + + {option[labelAlias || 'label']} + + ) + }) + } + + return { + renderRadioOptions + } +} diff --git a/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx b/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx new file mode 100644 index 0000000..59b72e6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/src/components/useRenderSelect.tsx @@ -0,0 +1,57 @@ +import { FormSchema } from '@/types/form' +import { ComponentOptions } from '@/types/components' +import { ElOption, ElOptionGroup } from 'element-plus' +import { getSlot } from '@/utils/tsxHelper' +import { Slots } from 'vue' + +export const useRenderSelect = (slots: Slots) => { + // 渲染 select options + const renderSelectOptions = (item: FormSchema) => { + // 如果有别名,就取别名 + const labelAlias = item?.componentProps?.optionsAlias?.labelField + return item?.componentProps?.options?.map((option) => { + if (option?.options?.length) { + return ( + + {() => { + return option?.options?.map((v) => { + return renderSelectOptionItem(item, v) + }) + }} + + ) + } else { + return renderSelectOptionItem(item, option) + } + }) + } + + // 渲染 select option item + const renderSelectOptionItem = (item: FormSchema, option: ComponentOptions) => { + // 如果有别名,就取别名 + const labelAlias = item?.componentProps?.optionsAlias?.labelField + const valueAlias = item?.componentProps?.optionsAlias?.valueField + + const { label, value, ...other } = option + + return ( + + {{ + default: () => + // option 插槽名规则,{field}-option + item?.componentProps?.optionsSlot + ? getSlot(slots, `${item.field}-option`, { item: option }) + : undefined + }} + + ) + } + + return { + renderSelectOptions + } +} diff --git a/grailed-ui-admin-vue3/src/components/Form/src/helper.ts b/grailed-ui-admin-vue3/src/components/Form/src/helper.ts new file mode 100644 index 0000000..cdfc8ca --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/src/helper.ts @@ -0,0 +1,148 @@ +import type { Slots } from 'vue' +import { getSlot } from '@/utils/tsxHelper' +import { PlaceholderModel } from './types' +import { FormSchema } from '@/types/form' +import { ColProps } from '@/types/components' + +/** + * + * @param schema 对应组件数据 + * @returns 返回提示信息对象 + * @description 用于自动设置placeholder + */ +export const setTextPlaceholder = (schema: FormSchema): PlaceholderModel => { + const { t } = useI18n() + const textMap = ['Input', 'Autocomplete', 'InputNumber', 'InputPassword'] + const selectMap = ['Select', 'SelectV2', 'TimePicker', 'DatePicker', 'TimeSelect', 'TimeSelect'] + if (textMap.includes(schema?.component as string)) { + return { + placeholder: t('common.inputText') + schema.label + } + } + if (selectMap.includes(schema?.component as string)) { + // 一些范围选择器 + const twoTextMap = ['datetimerange', 'daterange', 'monthrange', 'datetimerange', 'daterange'] + if ( + twoTextMap.includes( + (schema?.componentProps?.type || schema?.componentProps?.isRange) as string + ) + ) { + return { + startPlaceholder: t('common.startTimeText'), + endPlaceholder: t('common.endTimeText'), + rangeSeparator: '-' + } + } else { + return { + placeholder: t('common.selectText') + schema.label + } + } + } + return {} +} + +/** + * + * @param col 内置栅格 + * @returns 返回栅格属性 + * @description 合并传入进来的栅格属性 + */ +export const setGridProp = (col: ColProps = {}): ColProps => { + const colProps: ColProps = { + // 如果有span,代表用户优先级更高,所以不需要默认栅格 + ...(col.span + ? {} + : { + xs: 24, + sm: 12, + md: 12, + lg: 12, + xl: 12 + }), + ...col + } + return colProps +} + +/** + * + * @param item 传入的组件属性 + * @returns 默认添加 clearable 属性 + */ +export const setComponentProps = (item: FormSchema): Recordable => { + const notNeedClearable = ['ColorPicker'] + const componentProps: Recordable = notNeedClearable.includes(item.component as string) + ? { ...item.componentProps } + : { + clearable: true, + ...item.componentProps + } + // 需要删除额外的属性 + delete componentProps?.slots + return componentProps +} + +/** + * + * @param slots 插槽 + * @param slotsProps 插槽属性 + * @param field 字段名 + */ +export const setItemComponentSlots = ( + slots: Slots, + slotsProps: Recordable = {}, + field: string +): Recordable => { + const slotObj: Recordable = {} + for (const key in slotsProps) { + if (slotsProps[key]) { + // 由于组件有可能重复,需要有一个唯一的前缀 + slotObj[key] = (data: Recordable) => { + return getSlot(slots, `${field}-${key}`, data) + } + } + } + return slotObj +} + +/** + * + * @param schema Form表单结构化数组 + * @param formModel FormModel + * @returns FormModel + * @description 生成对应的formModel + */ +export const initModel = (schema: FormSchema[], formModel: Recordable) => { + const model: Recordable = { ...formModel } + schema.map((v) => { + // 如果是hidden,就删除对应的值 + if (v.hidden) { + delete model[v.field] + } else if (v.component && v.component !== 'Divider') { + const hasField = Reflect.has(model, v.field) + // 如果先前已经有值存在,则不进行重新赋值,而是采用现有的值 + model[v.field] = hasField ? model[v.field] : v.value !== void 0 ? v.value : '' + } + }) + return model +} + +/** + * @param slots 插槽 + * @param field 字段名 + * @returns 返回FormIiem插槽 + */ +export const setFormItemSlots = (slots: Slots, field: string): Recordable => { + const slotObj: Recordable = {} + if (slots[`${field}-error`]) { + slotObj['error'] = (data: Recordable) => { + return getSlot(slots, `${field}-error`, data) + } + } + if (slots[`${field}-label`]) { + slotObj['label'] = (data: Recordable) => { + return getSlot(slots, `${field}-label`, data) + } + } + return slotObj +} diff --git a/grailed-ui-admin-vue3/src/components/Form/src/types.ts b/grailed-ui-admin-vue3/src/components/Form/src/types.ts new file mode 100644 index 0000000..dcd01e7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Form/src/types.ts @@ -0,0 +1,17 @@ +import { FormSchema } from '@/types/form' + +export interface PlaceholderModel { + placeholder?: string + startPlaceholder?: string + endPlaceholder?: string + rangeSeparator?: string +} + +export type FormProps = { + schema?: FormSchema[] + isCol?: boolean + model?: Recordable + autoSetPlaceholder?: boolean + isCustom?: boolean + labelWidth?: string | number +} & Recordable diff --git a/grailed-ui-admin-vue3/src/components/Highlight/index.ts b/grailed-ui-admin-vue3/src/components/Highlight/index.ts new file mode 100644 index 0000000..3e2d9ed --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Highlight/index.ts @@ -0,0 +1,3 @@ +import Highlight from './src/Highlight.vue' + +export { Highlight } diff --git a/grailed-ui-admin-vue3/src/components/Highlight/src/Highlight.vue b/grailed-ui-admin-vue3/src/components/Highlight/src/Highlight.vue new file mode 100644 index 0000000..ef923a9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Highlight/src/Highlight.vue @@ -0,0 +1,65 @@ + diff --git a/grailed-ui-admin-vue3/src/components/IFrame/index.ts b/grailed-ui-admin-vue3/src/components/IFrame/index.ts new file mode 100644 index 0000000..9f8cf24 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/IFrame/index.ts @@ -0,0 +1,3 @@ +import IFrame from './src/IFrame.vue' + +export { IFrame } diff --git a/grailed-ui-admin-vue3/src/components/IFrame/src/IFrame.vue b/grailed-ui-admin-vue3/src/components/IFrame/src/IFrame.vue new file mode 100644 index 0000000..19de51a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/IFrame/src/IFrame.vue @@ -0,0 +1,32 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/Icon/index.ts b/grailed-ui-admin-vue3/src/components/Icon/index.ts new file mode 100644 index 0000000..33d1de3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Icon/index.ts @@ -0,0 +1,4 @@ +import Icon from './src/Icon.vue' +import IconSelect from './src/IconSelect.vue' + +export { Icon, IconSelect } diff --git a/grailed-ui-admin-vue3/src/components/Icon/src/Icon.vue b/grailed-ui-admin-vue3/src/components/Icon/src/Icon.vue new file mode 100644 index 0000000..00dfa5d --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Icon/src/Icon.vue @@ -0,0 +1,85 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Icon/src/IconSelect.vue b/grailed-ui-admin-vue3/src/components/Icon/src/IconSelect.vue new file mode 100644 index 0000000..d6ae6e6 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Icon/src/IconSelect.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/Icon/src/data.ts b/grailed-ui-admin-vue3/src/components/Icon/src/data.ts new file mode 100644 index 0000000..2a4ed5a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Icon/src/data.ts @@ -0,0 +1,1961 @@ +export const IconJson = { + 'ep:': [ + 'add-location', + 'aim', + 'alarm-clock', + 'apple', + 'arrow-down', + 'arrow-down-bold', + 'arrow-left', + 'arrow-left-bold', + 'arrow-right', + 'arrow-right-bold', + 'arrow-up', + 'arrow-up-bold', + 'avatar', + 'back', + 'baseball', + 'basketball', + 'bell', + 'bell-filled', + 'bicycle', + 'bottom', + 'bottom-left', + 'bottom-right', + 'bowl', + 'box', + 'briefcase', + 'brush', + 'brush-filled', + 'burger', + 'calendar', + 'camera', + 'camera-filled', + 'caret-bottom', + 'caret-left', + 'caret-right', + 'caret-top', + 'cellphone', + 'chat-dot-round', + 'chat-dot-square', + 'chat-line-round', + 'chat-line-square', + 'chat-round', + 'chat-square', + 'check', + 'checked', + 'cherry', + 'chicken', + 'circle-check', + 'circle-check-filled', + 'circle-close', + 'circle-close-filled', + 'circle-plus', + 'circle-plus-filled', + 'clock', + 'close', + 'close-bold', + 'cloudy', + 'coffee', + 'coffee-cup', + 'coin', + 'cold-drink', + 'collection', + 'collection-tag', + 'comment', + 'compass', + 'connection', + 'coordinate', + 'copy-document', + 'cpu', + 'credit-card', + 'crop', + 'd-arrow-left', + 'd-arrow-right', + 'd-caret', + 'data-analysis', + 'data-board', + 'data-line', + 'delete', + 'delete-filled', + 'delete-location', + 'dessert', + 'discount', + 'dish', + 'dish-dot', + 'document', + 'document-add', + 'document-checked', + 'document-copy', + 'document-delete', + 'document-remove', + 'download', + 'drizzling', + 'edit', + 'edit-pen', + 'eleme', + 'eleme-filled', + 'expand', + 'failed', + 'female', + 'files', + 'film', + 'filter', + 'finished', + 'first-aid-kit', + 'flag', + 'fold', + 'folder', + 'folder-add', + 'folder-checked', + 'folder-delete', + 'folder-opened', + 'folder-remove', + 'food', + 'football', + 'fork-spoon', + 'fries', + 'full-screen', + 'goblet', + 'goblet-full', + 'goblet-square', + 'goblet-square-full', + 'goods', + 'goods-filled', + 'grape', + 'grid', + 'guide', + 'headset', + 'help', + 'help-filled', + 'histogram', + 'home-filled', + 'hot-water', + 'house', + 'ice-cream', + 'ice-cream-round', + 'ice-cream-square', + 'ice-drink', + 'ice-tea', + 'info-filled', + 'iphone', + 'key', + 'knife-fork', + 'lightning', + 'link', + 'list', + 'loading', + 'location', + 'location-filled', + 'location-information', + 'lock', + 'lollipop', + 'magic-stick', + 'magnet', + 'male', + 'management', + 'map-location', + 'medal', + 'menu', + 'message', + 'message-box', + 'mic', + 'microphone', + 'milk-tea', + 'minus', + 'money', + 'monitor', + 'moon', + 'moon-night', + 'more', + 'more-filled', + 'mostly-cloudy', + 'mouse', + 'mug', + 'mute', + 'mute-notification', + 'no-smoking', + 'notebook', + 'notification', + 'odometer', + 'office-building', + 'open', + 'operation', + 'opportunity', + 'orange', + 'paperclip', + 'partly-cloudy', + 'pear', + 'phone', + 'phone-filled', + 'picture', + 'picture-filled', + 'picture-rounded', + 'pie-chart', + 'place', + 'platform', + 'plus', + 'pointer', + 'position', + 'postcard', + 'pouring', + 'present', + 'price-tag', + 'printer', + 'promotion', + 'question-filled', + 'rank', + 'reading', + 'reading-lamp', + 'refresh', + 'refresh-left', + 'refresh-right', + 'refrigerator', + 'remove', + 'remove-filled', + 'right', + 'scale-to-original', + 'school', + 'scissor', + 'search', + 'select', + 'sell', + 'semi-select', + 'service', + 'set-up', + 'setting', + 'share', + 'ship', + 'shop', + 'shopping-bag', + 'shopping-cart', + 'shopping-cart-full', + 'smoking', + 'soccer', + 'sold-out', + 'sort', + 'sort-down', + 'sort-up', + 'stamp', + 'star', + 'star-filled', + 'stopwatch', + 'success-filled', + 'sugar', + 'suitcase', + 'sunny', + 'sunrise', + 'sunset', + 'switch', + 'switch-button', + 'takeaway-box', + 'ticket', + 'tickets', + 'timer', + 'toilet-paper', + 'tools', + 'top', + 'top-left', + 'top-right', + 'trend-charts', + 'trophy', + 'turn-off', + 'umbrella', + 'unlock', + 'upload', + 'upload-filled', + 'user', + 'user-filled', + 'van', + 'video-camera', + 'video-camera-filled', + 'video-pause', + 'video-play', + 'view', + 'wallet', + 'wallet-filled', + 'warning', + 'warning-filled', + 'watch', + 'watermelon', + 'wind-power', + 'zoom-in', + 'zoom-out' + ], + 'fa:': [ + '500px', + 'address-book', + 'address-book-o', + 'address-card', + 'address-card-o', + 'adjust', + 'adn', + 'align-center', + 'align-justify', + 'align-left', + 'amazon', + 'ambulance', + 'american-sign-language-interpreting', + 'anchor', + 'android', + 'angellist', + 'angle-double-left', + 'angle-double-up', + 'angle-down', + 'angle-left', + 'angle-up', + 'apple', + 'archive', + 'area-chart', + 'arrow-circle-left', + 'arrow-circle-o-left', + 'arrow-circle-o-up', + 'arrow-circle-up', + 'arrow-left', + 'arrow-up', + 'arrows', + 'arrows-alt', + 'arrows-h', + 'arrows-v', + 'assistive-listening-systems', + 'asterisk', + 'at', + 'audio-description', + 'automobile', + 'backward', + 'balance-scale', + 'ban', + 'bandcamp', + 'bank', + 'bar-chart', + 'barcode', + 'bars', + 'bath', + 'battery', + 'battery-0', + 'battery-1', + 'battery-2', + 'battery-3', + 'bed', + 'beer', + 'behance', + 'behance-square', + 'bell', + 'bell-o', + 'bell-slash', + 'bell-slash-o', + 'bicycle', + 'binoculars', + 'birthday-cake', + 'bitbucket', + 'bitbucket-square', + 'bitcoin', + 'black-tie', + 'blind', + 'bluetooth', + 'bluetooth-b', + 'bold', + 'bolt', + 'bomb', + 'book', + 'bookmark', + 'bookmark-o', + 'braille', + 'briefcase', + 'bug', + 'building', + 'building-o', + 'bullhorn', + 'bullseye', + 'bus', + 'buysellads', + 'cab', + 'calculator', + 'calendar', + 'calendar-check-o', + 'calendar-minus-o', + 'calendar-o', + 'calendar-plus-o', + 'calendar-times-o', + 'camera', + 'camera-retro', + 'caret-down', + 'caret-left', + 'caret-square-o-left', + 'caret-square-o-up', + 'caret-up', + 'cart-arrow-down', + 'cart-plus', + 'cc', + 'cc-amex', + 'cc-diners-club', + 'cc-discover', + 'cc-jcb', + 'cc-mastercard', + 'cc-paypal', + 'cc-stripe', + 'cc-visa', + 'certificate', + 'chain', + 'chain-broken', + 'check', + 'check-circle', + 'check-circle-o', + 'check-square', + 'check-square-o', + 'chevron-circle-left', + 'chevron-circle-up', + 'chevron-down', + 'chevron-left', + 'chevron-up', + 'child', + 'chrome', + 'circle', + 'circle-o', + 'circle-o-notch', + 'circle-thin', + 'clipboard', + 'clock-o', + 'clone', + 'close', + 'cloud', + 'cloud-download', + 'cloud-upload', + 'cny', + 'code', + 'code-fork', + 'codepen', + 'codiepie', + 'coffee', + 'cog', + 'cogs', + 'columns', + 'comment', + 'comment-o', + 'commenting', + 'commenting-o', + 'comments', + 'comments-o', + 'compass', + 'compress', + 'connectdevelop', + 'contao', + 'copy', + 'copyright', + 'creative-commons', + 'credit-card', + 'credit-card-alt', + 'crop', + 'crosshairs', + 'css3', + 'cube', + 'cubes', + 'cut', + 'cutlery', + 'dashboard', + 'dashcube', + 'database', + 'deaf', + 'dedent', + 'delicious', + 'desktop', + 'deviantart', + 'diamond', + 'digg', + 'dollar', + 'dot-circle-o', + 'download', + 'dribbble', + 'drivers-license', + 'drivers-license-o', + 'dropbox', + 'drupal', + 'edge', + 'edit', + 'eercast', + 'eject', + 'ellipsis-h', + 'ellipsis-v', + 'empire', + 'envelope', + 'envelope-o', + 'envelope-open', + 'envelope-open-o', + 'envelope-square', + 'envira', + 'eraser', + 'etsy', + 'eur', + 'exchange', + 'exclamation', + 'exclamation-circle', + 'exclamation-triangle', + 'expand', + 'expeditedssl', + 'external-link', + 'external-link-square', + 'eye', + 'eye-slash', + 'eyedropper', + 'fa', + 'facebook', + 'facebook-official', + 'facebook-square', + 'fast-backward', + 'fax', + 'feed', + 'female', + 'fighter-jet', + 'file', + 'file-archive-o', + 'file-audio-o', + 'file-code-o', + 'file-excel-o', + 'file-image-o', + 'file-movie-o', + 'file-o', + 'file-pdf-o', + 'file-powerpoint-o', + 'file-text', + 'file-text-o', + 'file-word-o', + 'film', + 'filter', + 'fire', + 'fire-extinguisher', + 'firefox', + 'first-order', + 'flag', + 'flag-checkered', + 'flag-o', + 'flask', + 'flickr', + 'floppy-o', + 'folder', + 'folder-o', + 'folder-open', + 'folder-open-o', + 'font', + 'fonticons', + 'fort-awesome', + 'forumbee', + 'foursquare', + 'free-code-camp', + 'frown-o', + 'futbol-o', + 'gamepad', + 'gavel', + 'gbp', + 'genderless', + 'get-pocket', + 'gg', + 'gg-circle', + 'gift', + 'git', + 'git-square', + 'github', + 'github-alt', + 'github-square', + 'gitlab', + 'gittip', + 'glass', + 'glide', + 'glide-g', + 'globe', + 'google', + 'google-plus', + 'google-plus-circle', + 'google-plus-square', + 'google-wallet', + 'graduation-cap', + 'grav', + 'group', + 'h-square', + 'hacker-news', + 'hand-grab-o', + 'hand-lizard-o', + 'hand-o-left', + 'hand-o-up', + 'hand-paper-o', + 'hand-peace-o', + 'hand-pointer-o', + 'hand-scissors-o', + 'hand-spock-o', + 'handshake-o', + 'hashtag', + 'hdd-o', + 'header', + 'headphones', + 'heart', + 'heart-o', + 'heartbeat', + 'history', + 'home', + 'hospital-o', + 'hourglass', + 'hourglass-1', + 'hourglass-2', + 'hourglass-3', + 'hourglass-o', + 'houzz', + 'html5', + 'i-cursor', + 'id-badge', + 'ils', + 'image', + 'imdb', + 'inbox', + 'indent', + 'industry', + 'info', + 'info-circle', + 'inr', + 'instagram', + 'internet-explorer', + 'intersex', + 'ioxhost', + 'italic', + 'joomla', + 'jsfiddle', + 'key', + 'keyboard-o', + 'krw', + 'language', + 'laptop', + 'lastfm', + 'lastfm-square', + 'leaf', + 'leanpub', + 'lemon-o', + 'level-up', + 'life-bouy', + 'lightbulb-o', + 'line-chart', + 'linkedin', + 'linkedin-square', + 'linode', + 'linux', + 'list', + 'list-alt', + 'list-ol', + 'list-ul', + 'location-arrow', + 'lock', + 'long-arrow-left', + 'long-arrow-up', + 'low-vision', + 'magic', + 'magnet', + 'mail-forward', + 'mail-reply', + 'mail-reply-all', + 'male', + 'map', + 'map-marker', + 'map-o', + 'map-pin', + 'map-signs', + 'mars', + 'mars-double', + 'mars-stroke', + 'mars-stroke-h', + 'mars-stroke-v', + 'maxcdn', + 'meanpath', + 'medium', + 'medkit', + 'meetup', + 'meh-o', + 'mercury', + 'microchip', + 'microphone', + 'microphone-slash', + 'minus', + 'minus-circle', + 'minus-square', + 'minus-square-o', + 'mixcloud', + 'mobile', + 'modx', + 'money', + 'moon-o', + 'motorcycle', + 'mouse-pointer', + 'music', + 'neuter', + 'newspaper-o', + 'object-group', + 'object-ungroup', + 'odnoklassniki', + 'odnoklassniki-square', + 'opencart', + 'openid', + 'opera', + 'optin-monster', + 'pagelines', + 'paint-brush', + 'paper-plane', + 'paper-plane-o', + 'paperclip', + 'paragraph', + 'pause', + 'pause-circle', + 'pause-circle-o', + 'paw', + 'paypal', + 'pencil', + 'pencil-square', + 'percent', + 'phone', + 'phone-square', + 'pie-chart', + 'pied-piper', + 'pied-piper-alt', + 'pied-piper-pp', + 'pinterest', + 'pinterest-p', + 'pinterest-square', + 'plane', + 'play', + 'play-circle', + 'play-circle-o', + 'plug', + 'plus', + 'plus-circle', + 'plus-square', + 'plus-square-o', + 'podcast', + 'power-off', + 'print', + 'product-hunt', + 'puzzle-piece', + 'qq', + 'qrcode', + 'question', + 'question-circle', + 'question-circle-o', + 'quora', + 'quote-left', + 'quote-right', + 'ra', + 'random', + 'ravelry', + 'recycle', + 'reddit', + 'reddit-alien', + 'reddit-square', + 'refresh', + 'registered', + 'renren', + 'repeat', + 'retweet', + 'road', + 'rocket', + 'rotate-left', + 'rouble', + 'rss-square', + 'safari', + 'scribd', + 'search', + 'search-minus', + 'search-plus', + 'sellsy', + 'server', + 'share-alt', + 'share-alt-square', + 'share-square', + 'share-square-o', + 'shield', + 'ship', + 'shirtsinbulk', + 'shopping-bag', + 'shopping-basket', + 'shopping-cart', + 'shower', + 'sign-in', + 'sign-language', + 'sign-out', + 'signal', + 'simplybuilt', + 'sitemap', + 'skyatlas', + 'skype', + 'slack', + 'sliders', + 'slideshare', + 'smile-o', + 'snapchat', + 'snapchat-ghost', + 'snapchat-square', + 'snowflake-o', + 'sort', + 'sort-alpha-asc', + 'sort-alpha-desc', + 'sort-amount-asc', + 'sort-amount-desc', + 'sort-asc', + 'sort-numeric-asc', + 'sort-numeric-desc', + 'soundcloud', + 'space-shuttle', + 'spinner', + 'spoon', + 'spotify', + 'square', + 'square-o', + 'stack-exchange', + 'stack-overflow', + 'star', + 'star-half', + 'star-half-empty', + 'star-o', + 'steam', + 'steam-square', + 'step-backward', + 'stethoscope', + 'sticky-note', + 'sticky-note-o', + 'stop', + 'stop-circle', + 'stop-circle-o', + 'street-view', + 'strikethrough', + 'stumbleupon', + 'stumbleupon-circle', + 'subscript', + 'subway', + 'suitcase', + 'sun-o', + 'superpowers', + 'superscript', + 'table', + 'tablet', + 'tag', + 'tags', + 'tasks', + 'telegram', + 'television', + 'tencent-weibo', + 'terminal', + 'text-height', + 'text-width', + 'th', + 'th-large', + 'th-list', + 'themeisle', + 'thermometer', + 'thermometer-0', + 'thermometer-1', + 'thermometer-2', + 'thermometer-3', + 'thumb-tack', + 'thumbs-down', + 'thumbs-o-up', + 'thumbs-up', + 'ticket', + 'times-circle', + 'times-circle-o', + 'times-rectangle', + 'times-rectangle-o', + 'tint', + 'toggle-off', + 'toggle-on', + 'trademark', + 'train', + 'transgender-alt', + 'trash', + 'trash-o', + 'tree', + 'trello', + 'tripadvisor', + 'trophy', + 'truck', + 'try', + 'tty', + 'tumblr', + 'tumblr-square', + 'twitch', + 'twitter', + 'twitter-square', + 'umbrella', + 'underline', + 'universal-access', + 'unlock', + 'unlock-alt', + 'upload', + 'usb', + 'user', + 'user-circle', + 'user-circle-o', + 'user-md', + 'user-o', + 'user-plus', + 'user-secret', + 'user-times', + 'venus', + 'venus-double', + 'venus-mars', + 'viacoin', + 'viadeo', + 'viadeo-square', + 'video-camera', + 'vimeo', + 'vimeo-square', + 'vine', + 'vk', + 'volume-control-phone', + 'volume-down', + 'volume-off', + 'volume-up', + 'wechat', + 'weibo', + 'whatsapp', + 'wheelchair', + 'wheelchair-alt', + 'wifi', + 'wikipedia-w', + 'window-maximize', + 'window-minimize', + 'window-restore', + 'windows', + 'wordpress', + 'wpbeginner', + 'wpexplorer', + 'wpforms', + 'wrench', + 'xing', + 'xing-square', + 'y-combinator', + 'yahoo', + 'yelp', + 'yoast', + 'youtube', + 'youtube-play', + 'youtube-square' + ], + 'fa-solid:': [ + 'abacus', + 'ad', + 'address-book', + 'address-card', + 'adjust', + 'air-freshener', + 'align-center', + 'align-justify', + 'align-left', + 'align-right', + 'allergies', + 'ambulance', + 'american-sign-language-interpreting', + 'anchor', + 'angle-double-down', + 'angle-double-left', + 'angle-double-right', + 'angle-double-up', + 'angle-down', + 'angle-left', + 'angle-right', + 'angle-up', + 'angry', + 'ankh', + 'apple-alt', + 'archive', + 'archway', + 'arrow-alt-circle-down', + 'arrow-alt-circle-left', + 'arrow-alt-circle-right', + 'arrow-alt-circle-up', + 'arrow-circle-down', + 'arrow-circle-left', + 'arrow-circle-right', + 'arrow-circle-up', + 'arrow-down', + 'arrow-left', + 'arrow-right', + 'arrow-up', + 'arrows-alt', + 'arrows-alt-h', + 'arrows-alt-v', + 'assistive-listening-systems', + 'asterisk', + 'at', + 'atlas', + 'atom', + 'audio-description', + 'award', + 'baby', + 'baby-carriage', + 'backspace', + 'backward', + 'bacon', + 'bacteria', + 'bacterium', + 'bahai', + 'balance-scale', + 'balance-scale-left', + 'balance-scale-right', + 'ban', + 'band-aid', + 'barcode', + 'bars', + 'baseball-ball', + 'basketball-ball', + 'bath', + 'battery-empty', + 'battery-full', + 'battery-half', + 'battery-quarter', + 'battery-three-quarters', + 'bed', + 'beer', + 'bell', + 'bell-slash', + 'bezier-curve', + 'bible', + 'bicycle', + 'biking', + 'binoculars', + 'biohazard', + 'birthday-cake', + 'blender', + 'blender-phone', + 'blind', + 'blog', + 'bold', + 'bolt', + 'bomb', + 'bone', + 'bong', + 'book', + 'book-dead', + 'book-medical', + 'book-open', + 'book-reader', + 'bookmark', + 'border-all', + 'border-none', + 'border-style', + 'bowling-ball', + 'box', + 'box-open', + 'box-tissue', + 'boxes', + 'braille', + 'brain', + 'bread-slice', + 'briefcase', + 'briefcase-medical', + 'broadcast-tower', + 'broom', + 'brush', + 'bug', + 'building', + 'bullhorn', + 'bullseye', + 'burn', + 'bus', + 'bus-alt', + 'business-time', + 'calculator', + 'calculator-alt', + 'calendar', + 'calendar-alt', + 'calendar-check', + 'calendar-day', + 'calendar-minus', + 'calendar-plus', + 'calendar-times', + 'calendar-week', + 'camera', + 'camera-retro', + 'campground', + 'candy-cane', + 'cannabis', + 'capsules', + 'car', + 'car-alt', + 'car-battery', + 'car-crash', + 'car-side', + 'caravan', + 'caret-down', + 'caret-left', + 'caret-right', + 'caret-square-down', + 'caret-square-left', + 'caret-square-right', + 'caret-square-up', + 'caret-up', + 'carrot', + 'cart-arrow-down', + 'cart-plus', + 'cash-register', + 'cat', + 'certificate', + 'chair', + 'chalkboard', + 'chalkboard-teacher', + 'charging-station', + 'chart-area', + 'chart-bar', + 'chart-line', + 'chart-pie', + 'check', + 'check-circle', + 'check-double', + 'check-square', + 'cheese', + 'chess', + 'chess-bishop', + 'chess-board', + 'chess-king', + 'chess-knight', + 'chess-pawn', + 'chess-queen', + 'chess-rook', + 'chevron-circle-down', + 'chevron-circle-left', + 'chevron-circle-right', + 'chevron-circle-up', + 'chevron-down', + 'chevron-left', + 'chevron-right', + 'chevron-up', + 'child', + 'church', + 'circle', + 'circle-notch', + 'city', + 'clinic-medical', + 'clipboard', + 'clipboard-check', + 'clipboard-list', + 'clock', + 'clone', + 'closed-captioning', + 'cloud', + 'cloud-download-alt', + 'cloud-meatball', + 'cloud-moon', + 'cloud-moon-rain', + 'cloud-rain', + 'cloud-showers-heavy', + 'cloud-sun', + 'cloud-sun-rain', + 'cloud-upload-alt', + 'cocktail', + 'code', + 'code-branch', + 'coffee', + 'cog', + 'cogs', + 'coins', + 'columns', + 'comment', + 'comment-alt', + 'comment-dollar', + 'comment-dots', + 'comment-medical', + 'comment-slash', + 'comments', + 'comments-dollar', + 'compact-disc', + 'compass', + 'compress', + 'compress-alt', + 'compress-arrows-alt', + 'concierge-bell', + 'cookie', + 'cookie-bite', + 'copy', + 'copyright', + 'couch', + 'credit-card', + 'crop', + 'crop-alt', + 'cross', + 'crosshairs', + 'crow', + 'crown', + 'crutch', + 'cube', + 'cubes', + 'cut', + 'database', + 'deaf', + 'democrat', + 'desktop', + 'dharmachakra', + 'diagnoses', + 'dice', + 'dice-d20', + 'dice-d6', + 'dice-five', + 'dice-four', + 'dice-one', + 'dice-six', + 'dice-three', + 'dice-two', + 'digital-tachograph', + 'directions', + 'disease', + 'divide', + 'dizzy', + 'dna', + 'dog', + 'dollar-sign', + 'dolly', + 'dolly-flatbed', + 'donate', + 'door-closed', + 'door-open', + 'dot-circle', + 'dove', + 'download', + 'drafting-compass', + 'dragon', + 'draw-polygon', + 'drum', + 'drum-steelpan', + 'drumstick-bite', + 'dumbbell', + 'dumpster', + 'dumpster-fire', + 'dungeon', + 'edit', + 'egg', + 'eject', + 'ellipsis-h', + 'ellipsis-v', + 'empty-set', + 'envelope', + 'envelope-open', + 'envelope-open-text', + 'envelope-square', + 'equals', + 'eraser', + 'ethernet', + 'euro-sign', + 'exchange-alt', + 'exclamation', + 'exclamation-circle', + 'exclamation-triangle', + 'expand', + 'expand-alt', + 'expand-arrows-alt', + 'external-link-alt', + 'external-link-square-alt', + 'eye', + 'eye-dropper', + 'eye-slash', + 'fan', + 'fast-backward', + 'fast-forward', + 'faucet', + 'fax', + 'feather', + 'feather-alt', + 'female', + 'fighter-jet', + 'file', + 'file-alt', + 'file-archive', + 'file-audio', + 'file-code', + 'file-contract', + 'file-csv', + 'file-download', + 'file-excel', + 'file-export', + 'file-image', + 'file-import', + 'file-invoice', + 'file-invoice-dollar', + 'file-medical', + 'file-medical-alt', + 'file-pdf', + 'file-powerpoint', + 'file-prescription', + 'file-signature', + 'file-upload', + 'file-video', + 'file-word', + 'fill', + 'fill-drip', + 'film', + 'filter', + 'fingerprint', + 'fire', + 'fire-alt', + 'fire-extinguisher', + 'first-aid', + 'fish', + 'fist-raised', + 'flag', + 'flag-checkered', + 'flag-usa', + 'flask', + 'flushed', + 'folder', + 'folder-minus', + 'folder-open', + 'folder-plus', + 'font', + 'football-ball', + 'forward', + 'frog', + 'frown', + 'frown-open', + 'function', + 'funnel-dollar', + 'futbol', + 'gamepad', + 'gas-pump', + 'gavel', + 'gem', + 'genderless', + 'ghost', + 'gift', + 'gifts', + 'glass-cheers', + 'glass-martini', + 'glass-martini-alt', + 'glass-whiskey', + 'glasses', + 'globe', + 'globe-africa', + 'globe-americas', + 'globe-asia', + 'globe-europe', + 'golf-ball', + 'gopuram', + 'graduation-cap', + 'greater-than', + 'greater-than-equal', + 'grimace', + 'grin', + 'grin-alt', + 'grin-beam', + 'grin-beam-sweat', + 'grin-hearts', + 'grin-squint', + 'grin-squint-tears', + 'grin-stars', + 'grin-tears', + 'grin-tongue', + 'grin-tongue-squint', + 'grin-tongue-wink', + 'grin-wink', + 'grip-horizontal', + 'grip-lines', + 'grip-lines-vertical', + 'grip-vertical', + 'guitar', + 'h-square', + 'hamburger', + 'hammer', + 'hamsa', + 'hand-holding', + 'hand-holding-heart', + 'hand-holding-medical', + 'hand-holding-usd', + 'hand-holding-water', + 'hand-lizard', + 'hand-middle-finger', + 'hand-paper', + 'hand-peace', + 'hand-point-down', + 'hand-point-left', + 'hand-point-right', + 'hand-point-up', + 'hand-pointer', + 'hand-rock', + 'hand-scissors', + 'hand-sparkles', + 'hand-spock', + 'hands', + 'hands-helping', + 'hands-wash', + 'handshake', + 'handshake-alt-slash', + 'handshake-slash', + 'hanukiah', + 'hard-hat', + 'hashtag', + 'hat-cowboy', + 'hat-cowboy-side', + 'hat-wizard', + 'hdd', + 'head-side-cough', + 'head-side-cough-slash', + 'head-side-mask', + 'head-side-virus', + 'heading', + 'headphones', + 'headphones-alt', + 'headset', + 'heart', + 'heart-broken', + 'heartbeat', + 'helicopter', + 'highlighter', + 'hiking', + 'hippo', + 'history', + 'hockey-puck', + 'holly-berry', + 'home', + 'horse', + 'horse-head', + 'hospital', + 'hospital-alt', + 'hospital-symbol', + 'hospital-user', + 'hot-tub', + 'hotdog', + 'hotel', + 'hourglass', + 'hourglass-end', + 'hourglass-half', + 'hourglass-start', + 'house-damage', + 'house-user', + 'hryvnia', + 'i-cursor', + 'ice-cream', + 'icicles', + 'icons', + 'id-badge', + 'id-card', + 'id-card-alt', + 'igloo', + 'image', + 'images', + 'inbox', + 'indent', + 'industry', + 'infinity', + 'info', + 'info-circle', + 'integral', + 'intersection', + 'italic', + 'jedi', + 'joint', + 'journal-whills', + 'kaaba', + 'key', + 'keyboard', + 'khanda', + 'kiss', + 'kiss-beam', + 'kiss-wink-heart', + 'kiwi-bird', + 'lambda', + 'landmark', + 'language', + 'laptop', + 'laptop-code', + 'laptop-house', + 'laptop-medical', + 'laugh', + 'laugh-beam', + 'laugh-squint', + 'laugh-wink', + 'layer-group', + 'leaf', + 'lemon', + 'less-than', + 'less-than-equal', + 'level-down-alt', + 'level-up-alt', + 'life-ring', + 'lightbulb', + 'link', + 'lira-sign', + 'list', + 'list-alt', + 'list-ol', + 'list-ul', + 'location-arrow', + 'lock', + 'lock-open', + 'long-arrow-alt-down', + 'long-arrow-alt-left', + 'long-arrow-alt-right', + 'long-arrow-alt-up', + 'low-vision', + 'luggage-cart', + 'lungs', + 'lungs-virus', + 'magic', + 'magnet', + 'mail-bulk', + 'male', + 'map', + 'map-marked', + 'map-marked-alt', + 'map-marker', + 'map-marker-alt', + 'map-pin', + 'map-signs', + 'marker', + 'mars', + 'mars-double', + 'mars-stroke', + 'mars-stroke-h', + 'mars-stroke-v', + 'mask', + 'medal', + 'medkit', + 'meh', + 'meh-blank', + 'meh-rolling-eyes', + 'memory', + 'menorah', + 'mercury', + 'meteor', + 'microchip', + 'microphone', + 'microphone-alt', + 'microphone-alt-slash', + 'microphone-slash', + 'microscope', + 'minus', + 'minus-circle', + 'minus-square', + 'mitten', + 'mobile', + 'mobile-alt', + 'money-bill', + 'money-bill-alt', + 'money-bill-wave', + 'money-bill-wave-alt', + 'money-check', + 'money-check-alt', + 'monument', + 'moon', + 'mortar-pestle', + 'mosque', + 'motorcycle', + 'mountain', + 'mouse', + 'mouse-pointer', + 'mug-hot', + 'music', + 'network-wired', + 'neuter', + 'newspaper', + 'not-equal', + 'notes-medical', + 'object-group', + 'object-ungroup', + 'oil-can', + 'om', + 'omega', + 'otter', + 'outdent', + 'pager', + 'paint-brush', + 'paint-roller', + 'palette', + 'pallet', + 'paper-plane', + 'paperclip', + 'parachute-box', + 'paragraph', + 'parking', + 'passport', + 'pastafarianism', + 'paste', + 'pause', + 'pause-circle', + 'paw', + 'peace', + 'pen', + 'pen-alt', + 'pen-fancy', + 'pen-nib', + 'pen-square', + 'pencil-alt', + 'pencil-ruler', + 'people-arrows', + 'people-carry', + 'pepper-hot', + 'percent', + 'percentage', + 'person-booth', + 'phone', + 'phone-alt', + 'phone-slash', + 'phone-square', + 'phone-square-alt', + 'phone-volume', + 'photo-video', + 'pi', + 'piggy-bank', + 'pills', + 'pizza-slice', + 'place-of-worship', + 'plane', + 'plane-arrival', + 'plane-departure', + 'plane-slash', + 'play', + 'play-circle', + 'plug', + 'plus', + 'plus-circle', + 'plus-square', + 'podcast', + 'poll', + 'poll-h', + 'poo', + 'poo-storm', + 'poop', + 'portrait', + 'pound-sign', + 'power-off', + 'pray', + 'praying-hands', + 'prescription', + 'prescription-bottle', + 'prescription-bottle-alt', + 'print', + 'procedures', + 'project-diagram', + 'pump-medical', + 'pump-soap', + 'puzzle-piece', + 'qrcode', + 'question', + 'question-circle', + 'quidditch', + 'quote-left', + 'quote-right', + 'quran', + 'radiation', + 'radiation-alt', + 'rainbow', + 'random', + 'receipt', + 'record-vinyl', + 'recycle', + 'redo', + 'redo-alt', + 'registered', + 'remove-format', + 'reply', + 'reply-all', + 'republican', + 'restroom', + 'retweet', + 'ribbon', + 'ring', + 'road', + 'robot', + 'rocket', + 'route', + 'rss', + 'rss-square', + 'ruble-sign', + 'ruler', + 'ruler-combined', + 'ruler-horizontal', + 'ruler-vertical', + 'running', + 'rupee-sign', + 'sad-cry', + 'sad-tear', + 'satellite', + 'satellite-dish', + 'save', + 'school', + 'screwdriver', + 'scroll', + 'sd-card', + 'search', + 'search-dollar', + 'search-location', + 'search-minus', + 'search-plus', + 'seedling', + 'server', + 'shapes', + 'share', + 'share-alt', + 'share-alt-square', + 'share-square', + 'shekel-sign', + 'shield-alt', + 'shield-virus', + 'ship', + 'shipping-fast', + 'shoe-prints', + 'shopping-bag', + 'shopping-basket', + 'shopping-cart', + 'shower', + 'shuttle-van', + 'sigma', + 'sign', + 'sign-in-alt', + 'sign-language', + 'sign-out-alt', + 'signal', + 'signal-alt', + 'signal-alt-slash', + 'signal-slash', + 'signature', + 'sim-card', + 'sink', + 'sitemap', + 'skating', + 'skiing', + 'skiing-nordic', + 'skull', + 'skull-crossbones', + 'slash', + 'sleigh', + 'sliders-h', + 'smile', + 'smile-beam', + 'smile-wink', + 'smog', + 'smoking', + 'smoking-ban', + 'sms', + 'snowboarding', + 'snowflake', + 'snowman', + 'snowplow', + 'soap', + 'socks', + 'solar-panel', + 'sort', + 'sort-alpha-down', + 'sort-alpha-down-alt', + 'sort-alpha-up', + 'sort-alpha-up-alt', + 'sort-amount-down', + 'sort-amount-down-alt', + 'sort-amount-up', + 'sort-amount-up-alt', + 'sort-down', + 'sort-numeric-down', + 'sort-numeric-down-alt', + 'sort-numeric-up', + 'sort-numeric-up-alt', + 'sort-up', + 'spa', + 'space-shuttle', + 'spell-check', + 'spider', + 'spinner', + 'splotch', + 'spray-can', + 'square', + 'square-full', + 'square-root', + 'square-root-alt', + 'stamp', + 'star', + 'star-and-crescent', + 'star-half', + 'star-half-alt', + 'star-of-david', + 'star-of-life', + 'step-backward', + 'step-forward', + 'stethoscope', + 'sticky-note', + 'stop', + 'stop-circle', + 'stopwatch', + 'stopwatch-20', + 'store', + 'store-alt', + 'store-alt-slash', + 'store-slash', + 'stream', + 'street-view', + 'strikethrough', + 'stroopwafel', + 'subscript', + 'subway', + 'suitcase', + 'suitcase-rolling', + 'sun', + 'superscript', + 'surprise', + 'swatchbook', + 'swimmer', + 'swimming-pool', + 'synagogue', + 'sync', + 'sync-alt', + 'syringe', + 'table', + 'table-tennis', + 'tablet', + 'tablet-alt', + 'tablets', + 'tachometer-alt', + 'tag', + 'tags', + 'tally', + 'tape', + 'tasks', + 'taxi', + 'teeth', + 'teeth-open', + 'temperature-high', + 'temperature-low', + 'tenge', + 'terminal', + 'text-height', + 'text-width', + 'th', + 'th-large', + 'th-list', + 'theater-masks', + 'thermometer', + 'thermometer-empty', + 'thermometer-full', + 'thermometer-half', + 'thermometer-quarter', + 'thermometer-three-quarters', + 'theta', + 'thumbs-down', + 'thumbs-up', + 'thumbtack', + 'ticket-alt', + 'tilde', + 'times', + 'times-circle', + 'tint', + 'tint-slash', + 'tired', + 'toggle-off', + 'toggle-on', + 'toilet', + 'toilet-paper', + 'toilet-paper-slash', + 'toolbox', + 'tools', + 'tooth', + 'torah', + 'torii-gate', + 'tractor', + 'trademark', + 'traffic-light', + 'trailer', + 'train', + 'tram', + 'transgender', + 'transgender-alt', + 'trash', + 'trash-alt', + 'trash-restore', + 'trash-restore-alt', + 'tree', + 'trophy', + 'truck', + 'truck-loading', + 'truck-monster', + 'truck-moving', + 'truck-pickup', + 'tshirt', + 'tty', + 'tv', + 'umbrella', + 'umbrella-beach', + 'underline', + 'undo', + 'undo-alt', + 'union', + 'universal-access', + 'university', + 'unlink', + 'unlock', + 'unlock-alt', + 'upload', + 'user', + 'user-alt', + 'user-alt-slash', + 'user-astronaut', + 'user-check', + 'user-circle', + 'user-clock', + 'user-cog', + 'user-edit', + 'user-friends', + 'user-graduate', + 'user-injured', + 'user-lock', + 'user-md', + 'user-minus', + 'user-ninja', + 'user-nurse', + 'user-plus', + 'user-secret', + 'user-shield', + 'user-slash', + 'user-tag', + 'user-tie', + 'user-times', + 'users', + 'users-cog', + 'users-slash', + 'utensil-spoon', + 'utensils', + 'value-absolute', + 'vector-square', + 'venus', + 'venus-double', + 'venus-mars', + 'vest', + 'vest-patches', + 'vial', + 'vials', + 'video', + 'video-slash', + 'vihara', + 'virus', + 'virus-slash', + 'viruses', + 'voicemail', + 'volleyball-ball', + 'volume', + 'volume-down', + 'volume-mute', + 'volume-off', + 'volume-slash', + 'volume-up', + 'vote-yea', + 'vr-cardboard', + 'walking', + 'wallet', + 'warehouse', + 'water', + 'wave-square', + 'weight', + 'weight-hanging', + 'wheelchair', + 'wifi', + 'wifi-slash', + 'wind', + 'window-close', + 'window-maximize', + 'window-minimize', + 'window-restore', + 'wine-bottle', + 'wine-glass', + 'wine-glass-alt', + 'won-sign', + 'wrench', + 'x-ray', + 'yen-sign', + 'yin-yang' + ] +} diff --git a/grailed-ui-admin-vue3/src/components/ImageViewer/index.ts b/grailed-ui-admin-vue3/src/components/ImageViewer/index.ts new file mode 100644 index 0000000..3868135 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ImageViewer/index.ts @@ -0,0 +1,33 @@ +import ImageViewer from './src/ImageViewer.vue' +import { isClient } from '@/utils/is' +import { createVNode, render, VNode } from 'vue' +import { ImageViewerProps } from './src/types' + +let instance: Nullable = null + +export function createImageViewer(options: ImageViewerProps) { + if (!isClient) return + const { + urlList, + initialIndex = 0, + infinite = true, + hideOnClickModal = false, + appendToBody = false, + zIndex = 2000, + show = true + } = options + + const propsData: Partial = {} + const container = document.createElement('div') + propsData.urlList = urlList + propsData.initialIndex = initialIndex + propsData.infinite = infinite + propsData.hideOnClickModal = hideOnClickModal + propsData.appendToBody = appendToBody + propsData.zIndex = zIndex + propsData.show = show + + document.body.appendChild(container) + instance = createVNode(ImageViewer, propsData) + render(instance, container) +} diff --git a/grailed-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue b/grailed-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue new file mode 100644 index 0000000..5c4921e --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ImageViewer/src/ImageViewer.vue @@ -0,0 +1,35 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/ImageViewer/src/types.ts b/grailed-ui-admin-vue3/src/components/ImageViewer/src/types.ts new file mode 100644 index 0000000..1932d74 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/ImageViewer/src/types.ts @@ -0,0 +1,9 @@ +export interface ImageViewerProps { + urlList?: string[] + zIndex?: number + initialIndex?: number + infinite?: boolean + hideOnClickModal?: boolean + appendToBody?: boolean + show?: boolean +} diff --git a/grailed-ui-admin-vue3/src/components/Infotip/index.ts b/grailed-ui-admin-vue3/src/components/Infotip/index.ts new file mode 100644 index 0000000..413fa5f --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Infotip/index.ts @@ -0,0 +1,3 @@ +import Infotip from './src/Infotip.vue' + +export { Infotip } diff --git a/grailed-ui-admin-vue3/src/components/Infotip/src/Infotip.vue b/grailed-ui-admin-vue3/src/components/Infotip/src/Infotip.vue new file mode 100644 index 0000000..60887d3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Infotip/src/Infotip.vue @@ -0,0 +1,54 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/InputPassword/index.ts b/grailed-ui-admin-vue3/src/components/InputPassword/index.ts new file mode 100644 index 0000000..1dcc38e --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/InputPassword/index.ts @@ -0,0 +1,3 @@ +import InputPassword from './src/InputPassword.vue' + +export { InputPassword } diff --git a/grailed-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue b/grailed-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue new file mode 100644 index 0000000..f970369 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/InputPassword/src/InputPassword.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/Pagination/index.vue b/grailed-ui-admin-vue3/src/components/Pagination/index.vue new file mode 100644 index 0000000..41cde9d --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Pagination/index.vue @@ -0,0 +1,77 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/PhoneNumberInput/index.ts b/grailed-ui-admin-vue3/src/components/PhoneNumberInput/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/PhoneNumberInput.vue b/grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/PhoneNumberInput.vue new file mode 100644 index 0000000..796438c --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/PhoneNumberInput.vue @@ -0,0 +1,49 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/countryList.json b/grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/countryList.json new file mode 100644 index 0000000..a550831 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/PhoneNumberInput/src/countryList.json @@ -0,0 +1,492 @@ +[ + { + "c_name": "阿联酋", + "e_name": "United Arab Emirates", + "iso": "AE", + "iconName": "country/ae", + "phoneCode": "+971" + }, + { + "c_name": "阿根廷", + "e_name": "Argentina", + "iso": "AR", + "iconName": "country/ar", + "phoneCode": "+54" + }, + { + "c_name": "奥地利", + "e_name": "Austria", + "iso": "AT", + "iconName": "country/at", + "phoneCode": "+43" + }, + { + "c_name": "澳大利亚", + "e_name": "Australia", + "iso": "AU", + "iconName": "country/au", + "phoneCode": "+61" + }, + { + "c_name": "比利时", + "e_name": "Belgium", + "iso": "BE", + "iconName": "country/be", + "phoneCode": "+32" + }, + { + "c_name": "巴西", + "e_name": "Brazil", + "iso": "BR", + "iconName": "country/br", + "phoneCode": "+55" + }, + { + "c_name": "巴哈马", + "e_name": "Bahamas", + "iso": "BS", + "iconName": "country/bs", + "phoneCode": "+1" + }, + { + "c_name": "加拿大", + "e_name": "Canada", + "iso": "CA", + "iconName": "country/ca", + "phoneCode": "+1" + }, + { + "c_name": "瑞士", + "e_name": "Switzerland", + "iso": "CH", + "iconName": "country/ch", + "phoneCode": "+41" + }, + { + "c_name": "智利", + "e_name": "Chile", + "iso": "CL", + "iconName": "country/cl", + "phoneCode": "+56" + }, + { + "c_name": "中国", + "e_name": "China", + "iso": "CN", + "iconName": "country/cn", + "phoneCode": "+86" + }, + { + "c_name": "哥伦比亚", + "e_name": "Colombia", + "iso": "CO", + "iconName": "country/co", + "phoneCode": "+57" + }, + { + "c_name": "塞浦路斯", + "e_name": "Cyprus", + "iso": "CY", + "iconName": "country/cy", + "phoneCode": "+357" + }, + { + "c_name": "柬埔寨", + "e_name": "Cambodia", + "iso": "KH", + "iconName": "country/kh", + "phoneCode": "+855" +}, + { + "c_name": "捷克", + "e_name": "Czech Republic", + "iso": "CZ", + "iconName": "country/cz", + "phoneCode": "+420" + }, + { + "c_name": "德国", + "e_name": "Germany", + "iso": "DE", + "iconName": "country/de", + "phoneCode": "+49" + }, + { + "c_name": "丹麦", + "e_name": "Denmark", + "iso": "DK", + "iconName": "country/dk", + "phoneCode": "+45" + }, + { + "c_name": "厄瓜多尔", + "e_name": "Ecuador", + "iso": "EC", + "iconName": "country/ec", + "phoneCode": "+593" + }, + { + "c_name": "爱沙尼亚", + "e_name": "Estonia", + "iso": "EE", + "iconName": "country/ee", + "phoneCode": "+372" + }, + { + "c_name": "埃及", + "e_name": "Egypt", + "iso": "EG", + "iconName": "country/eg", + "phoneCode": "+20" + }, + { + "c_name": "西班牙", + "e_name": "Spain", + "iso": "ES", + "iconName": "country/es", + "phoneCode": "+34" + }, + { + "c_name": "芬兰", + "e_name": "Finland", + "iso": "FI", + "iconName": "country/fi", + "phoneCode": "+358" + }, + { + "c_name": "法国", + "e_name": "France", + "iso": "FR", + "iconName": "country/fr", + "phoneCode": "+33" + }, + { + "c_name": "希腊", + "e_name": "Greece", + "iso": "GR", + "iconName": "country/gr", + "phoneCode": "+30" + }, + { + "c_name": "克罗地亚", + "e_name": "Croatia", + "iso": "HR", + "iconName": "country/hr", + "phoneCode": "+385" + }, + { + "c_name": "匈牙利", + "e_name": "Hungary", + "iso": "HU", + "iconName": "country/hu", + "phoneCode": "+36" + }, + { + "c_name": "香港", + "e_name": "Hong Kong", + "iso": "hk", + "iconName": "country/hk", + "phoneCode": "+852" +}, + { + "c_name": "印度尼西亚", + "e_name": "Indonesia", + "iso": "ID", + "iconName": "country/id", + "phoneCode": "+62" + }, + { + "c_name": "爱尔兰", + "e_name": "Ireland", + "iso": "IE", + "iconName": "country/ie", + "phoneCode": "+353" + }, + { + "c_name": "以色列", + "e_name": "Israel", + "iso": "IL", + "iconName": "country/il", + "phoneCode": "+972" + }, + { + "c_name": "印度", + "e_name": "India", + "iso": "IN", + "iconName": "country/in", + "phoneCode": "+91" + }, + { + "c_name": "冰岛", + "e_name": "Iceland", + "iso": "IS", + "iconName": "country/is", + "phoneCode": "+354" + }, + { + "c_name": "意大利", + "e_name": "Italy", + "iso": "IT", + "iconName": "country/it", + "phoneCode": "+39" + }, + { + "c_name": "牙买加", + "e_name": "Jamaica", + "iso": "JM", + "iconName": "country/jm", + "phoneCode": "+1" + }, + { + "c_name": "日本", + "e_name": "Japan", + "iso": "JP", + "iconName": "country/jp", + "phoneCode": "+81" + }, + { + "c_name": "肯尼亚", + "e_name": "Kenya", + "iso": "KE", + "iconName": "country/ke", + "phoneCode": "+254" + }, + { + "c_name": "韩国", + "e_name": "South Korea", + "iso": "KR", + "iconName": "country/kr", + "phoneCode": "+82" + }, + { + "c_name": "立陶宛", + "e_name": "Lithuania", + "iso": "LT", + "iconName": "country/lt", + "phoneCode": "+370" + }, + { + "c_name": "卢森堡", + "e_name": "Luxembourg", + "iso": "LU", + "iconName": "country/lu", + "phoneCode": "+352" + }, + { + "c_name": "拉脱维亚", + "e_name": "Latvia", + "iso": "LV", + "iconName": "country/lv", + "phoneCode": "+371" + }, + { + "c_name": "摩洛哥", + "e_name": "Morocco", + "iso": "MA", + "iconName": "country/ma", + "phoneCode": "+212" + }, + { + "c_name": "蒙古", + "e_name": "Mongolia", + "iso": "MN", + "iconName": "country/mn", + "phoneCode": "+976" + }, + { + "c_name": "毛里求斯", + "e_name": "Mauritius", + "iso": "MU", + "iconName": "country/mu", + "phoneCode": "+230" + }, + { + "c_name": "马尔代夫", + "e_name": "Maldives", + "iso": "MV", + "iconName": "country/mv", + "phoneCode": "+960" + }, + { + "c_name": "墨西哥", + "e_name": "Mexico", + "iso": "MX", + "iconName": "country/mx", + "phoneCode": "+52" + }, + { + "c_name": "马来西亚", + "e_name": "Malaysia", + "iso": "MY", + "iconName": "country/my", + "phoneCode": "+60" + }, + { + "c_name": "荷兰", + "e_name": "Netherlands", + "iso": "NL", + "iconName": "country/nl", + "phoneCode": "+31" + }, + { + "c_name": "挪威", + "e_name": "Norway", + "iso": "NO", + "iconName": "country/no", + "phoneCode": "+47" + }, + { + "c_name": "新西兰", + "e_name": "New Zealand", + "iso": "NZ", + "iconName": "country/nz", + "phoneCode": "+64" + }, + { + "c_name": "巴拿马", + "e_name": "Panama", + "iso": "PA", + "iconName": "country/pa", + "phoneCode": "+507" + }, + { + "c_name": "秘鲁", + "e_name": "Peru", + "iso": "PE", + "iconName": "country/pe", + "phoneCode": "+51" + }, + { + "c_name": "菲律宾", + "e_name": "Philippines", + "iso": "PH", + "iconName": "country/ph", + "phoneCode": "+63" + }, + { + "c_name": "波多黎各", + "e_name": "Puerto Rico", + "iso": "PR", + "iconName": "country/pr", + "phoneCode": "+1" + }, + { + "c_name": "葡萄牙", + "e_name": "Portugal", + "iso": "PT", + "iconName": "country/pt", + "phoneCode": "+351" + }, + { + "c_name": "卡塔尔", + "e_name": "Qatar", + "iso": "QA", + "iconName": "country/qa", + "phoneCode": "+974" + }, + { + "c_name": "罗马尼亚", + "e_name": "Romania", + "iso": "RO", + "iconName": "country/ro", + "phoneCode": "+40" + }, + { + "c_name": "俄罗斯", + "e_name": "Russia", + "iso": "RU", + "iconName": "country/ru", + "phoneCode": "+7" + }, + { + "c_name": "沙特阿拉伯", + "e_name": "Saudi Arabia", + "iso": "SA", + "iconName": "country/sa", + "phoneCode": "+966" + }, + { + "c_name": "塞舌尔", + "e_name": "Seychelles", + "iso": "SC", + "iconName": "country/sc", + "phoneCode": "+248" + }, + { + "c_name": "瑞典", + "e_name": "Sweden", + "iso": "SE", + "iconName": "country/se", + "phoneCode": "+46" + }, + { + "c_name": "斯洛文尼亚", + "e_name": "Slovenia", + "iso": "SI", + "iconName": "country/si", + "phoneCode": "+386" + }, + { + "c_name": "斯洛伐克", + "e_name": "Slovakia", + "iso": "SK", + "iconName": "country/sk", + "phoneCode": "+421" + }, + { + "c_name": "泰国", + "e_name": "Thailand", + "iso": "TH", + "iconName": "country/th", + "phoneCode": "+66" + }, + { + "c_name": "突尼斯", + "e_name": "Tunisia", + "iso": "TN", + "iconName": "country/tn", + "phoneCode": "+216" + }, + { + "c_name": "土耳其", + "e_name": "Turkey", + "iso": "TR", + "iconName": "country/tr", + "phoneCode": "+90" + }, + { + "c_name": "台湾", + "e_name": "Taiwan", + "iso": "TW", + "iconName": "country/tw", + "phoneCode": "+886" +}, + { + "c_name": "英国", + "e_name": "United Kingdom", + "iso": "GB", + "iconName": "country/uk", + "phoneCode": "+44" + }, + { + "c_name": "美国", + "e_name": "United States", + "iso": "US", + "iconName": "country/us", + "phoneCode": "+1" + }, + { + "c_name": "越南", + "e_name": "Vietnam", + "iso": "VN", + "iconName": "country/vn", + "phoneCode": "+84" + }, + { + "c_name": "南非", + "e_name": "South Africa", + "iso": "ZA", + "iconName": "country/za", + "phoneCode": "+27" + } +] \ No newline at end of file diff --git a/grailed-ui-admin-vue3/src/components/Qrcode/index.ts b/grailed-ui-admin-vue3/src/components/Qrcode/index.ts new file mode 100644 index 0000000..ce46161 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Qrcode/index.ts @@ -0,0 +1,3 @@ +import Qrcode from './src/Qrcode.vue' + +export { Qrcode } diff --git a/grailed-ui-admin-vue3/src/components/Qrcode/src/Qrcode.vue b/grailed-ui-admin-vue3/src/components/Qrcode/src/Qrcode.vue new file mode 100644 index 0000000..337bc78 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Qrcode/src/Qrcode.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/RouterSearch/index.vue b/grailed-ui-admin-vue3/src/components/RouterSearch/index.vue new file mode 100644 index 0000000..c12385a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/RouterSearch/index.vue @@ -0,0 +1,76 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Search/index.ts b/grailed-ui-admin-vue3/src/components/Search/index.ts new file mode 100644 index 0000000..fcc6f16 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Search/index.ts @@ -0,0 +1,3 @@ +import Search from './src/Search.vue' + +export { Search } diff --git a/grailed-ui-admin-vue3/src/components/Search/src/Search.vue b/grailed-ui-admin-vue3/src/components/Search/src/Search.vue new file mode 100644 index 0000000..3218a63 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Search/src/Search.vue @@ -0,0 +1,157 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Sticky/index.ts b/grailed-ui-admin-vue3/src/components/Sticky/index.ts new file mode 100644 index 0000000..5e1de45 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Sticky/index.ts @@ -0,0 +1,3 @@ +import Sticky from './src/Sticky.vue' + +export { Sticky } diff --git a/grailed-ui-admin-vue3/src/components/Sticky/src/Sticky.vue b/grailed-ui-admin-vue3/src/components/Sticky/src/Sticky.vue new file mode 100644 index 0000000..b958544 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Sticky/src/Sticky.vue @@ -0,0 +1,143 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/Table/index.ts b/grailed-ui-admin-vue3/src/components/Table/index.ts new file mode 100644 index 0000000..689f64a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Table/index.ts @@ -0,0 +1,12 @@ +import Table from './src/Table.vue' +import { ElTable } from 'element-plus' +import { TableSetPropsType } from '@/types/table' + +export interface TableExpose { + setProps: (props: Recordable) => void + setColumn: (columnProps: TableSetPropsType[]) => void + selections: Recordable[] + elTableRef: ComponentRef +} + +export { Table } diff --git a/grailed-ui-admin-vue3/src/components/Table/src/Table.vue b/grailed-ui-admin-vue3/src/components/Table/src/Table.vue new file mode 100644 index 0000000..a13e2b9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Table/src/Table.vue @@ -0,0 +1,311 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/Table/src/helper.ts b/grailed-ui-admin-vue3/src/components/Table/src/helper.ts new file mode 100644 index 0000000..d8b34a8 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Table/src/helper.ts @@ -0,0 +1,8 @@ +export const setIndex = (reserveIndex: boolean, index: number, size: number, current: number) => { + const newIndex = index + 1 + if (reserveIndex) { + return size * (current - 1) + newIndex + } else { + return newIndex + } +} diff --git a/grailed-ui-admin-vue3/src/components/Table/src/types.ts b/grailed-ui-admin-vue3/src/components/Table/src/types.ts new file mode 100644 index 0000000..1c7ff76 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Table/src/types.ts @@ -0,0 +1,26 @@ +import { Pagination, TableColumn } from '@/types/table' + +export type TableProps = { + pageSize?: number + currentPage?: number + // 是否多选 + selection?: boolean + // 是否所有的超出隐藏,优先级低于schema中的showOverflowTooltip, + showOverflowTooltip?: boolean + // 表头 + columns?: TableColumn[] + // 是否展示分页 + pagination?: Pagination | undefined + // 仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 row-key) + reserveSelection?: boolean + // 加载状态 + loading?: boolean + // 是否叠加索引 + reserveIndex?: boolean + // 对齐方式 + align?: 'left' | 'center' | 'right' + // 表头对齐方式 + headerAlign?: 'left' | 'center' | 'right' + data?: Recordable + expand?: boolean +} & Recordable diff --git a/grailed-ui-admin-vue3/src/components/Tooltip/index.ts b/grailed-ui-admin-vue3/src/components/Tooltip/index.ts new file mode 100644 index 0000000..ab66ddf --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Tooltip/index.ts @@ -0,0 +1,3 @@ +import Tooltip from './src/Tooltip.vue' + +export { Tooltip } diff --git a/grailed-ui-admin-vue3/src/components/Tooltip/src/Tooltip.vue b/grailed-ui-admin-vue3/src/components/Tooltip/src/Tooltip.vue new file mode 100644 index 0000000..b8d252b --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Tooltip/src/Tooltip.vue @@ -0,0 +1,17 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/UploadFile/index.ts b/grailed-ui-admin-vue3/src/components/UploadFile/index.ts new file mode 100644 index 0000000..97c1d66 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/UploadFile/index.ts @@ -0,0 +1,5 @@ +import UploadImg from './src/UploadImg.vue' +import UploadImgs from './src/UploadImgs.vue' +import UploadFile from './src/UploadFile.vue' + +export { UploadImg, UploadImgs, UploadFile } diff --git a/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue b/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue new file mode 100644 index 0000000..c8a3b97 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadFile.vue @@ -0,0 +1,170 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue b/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue new file mode 100644 index 0000000..3cfc0a7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImg.vue @@ -0,0 +1,271 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue b/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue new file mode 100644 index 0000000..91bb5e3 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/UploadFile/src/UploadImgs.vue @@ -0,0 +1,309 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/components/Verifition/index.ts b/grailed-ui-admin-vue3/src/components/Verifition/index.ts new file mode 100644 index 0000000..bcfe6d9 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Verifition/index.ts @@ -0,0 +1,3 @@ +import Verify from './src/Verify.vue' + +export { Verify } diff --git a/grailed-ui-admin-vue3/src/components/Verifition/src/Verify.vue b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify.vue new file mode 100644 index 0000000..b7b5048 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify.vue @@ -0,0 +1,441 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue new file mode 100644 index 0000000..9d04f29 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifyPoints.vue @@ -0,0 +1,250 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue new file mode 100644 index 0000000..573a822 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/VerifySlide.vue @@ -0,0 +1,380 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/index.ts b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/index.ts new file mode 100644 index 0000000..0daa63a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Verifition/src/Verify/index.ts @@ -0,0 +1,4 @@ +import VerifySlide from './VerifySlide.vue' +import VerifyPoints from './VerifyPoints.vue' + +export { VerifySlide, VerifyPoints } diff --git a/grailed-ui-admin-vue3/src/components/Verifition/src/utils/ase.ts b/grailed-ui-admin-vue3/src/components/Verifition/src/utils/ase.ts new file mode 100644 index 0000000..d2e6b98 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Verifition/src/utils/ase.ts @@ -0,0 +1,14 @@ +import CryptoJS from 'crypto-js' +/** + * @word 要加密的内容 + * @keyWord String 服务器随机返回的关键字 + * */ +export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { + const key = CryptoJS.enc.Utf8.parse(keyWord) + const srcs = CryptoJS.enc.Utf8.parse(word) + const encrypted = CryptoJS.AES.encrypt(srcs, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }) + return encrypted.toString() +} diff --git a/grailed-ui-admin-vue3/src/components/Verifition/src/utils/util.ts b/grailed-ui-admin-vue3/src/components/Verifition/src/utils/util.ts new file mode 100644 index 0000000..50bfbed --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/Verifition/src/utils/util.ts @@ -0,0 +1,102 @@ +export function resetSize(vm) { + let img_width, img_height, bar_width, bar_height //图片的宽度、高度,移动条的宽度、高度 + const EmployeeWindow = window as any + const parentWidth = vm.$el.parentNode.offsetWidth || EmployeeWindow.offsetWidth + const parentHeight = vm.$el.parentNode.offsetHeight || EmployeeWindow.offsetHeight + if (vm.imgSize.width.indexOf('%') != -1) { + img_width = (parseInt(vm.imgSize.width) / 100) * parentWidth + 'px' + } else { + img_width = vm.imgSize.width + } + + if (vm.imgSize.height.indexOf('%') != -1) { + img_height = (parseInt(vm.imgSize.height) / 100) * parentHeight + 'px' + } else { + img_height = vm.imgSize.height + } + + if (vm.barSize.width.indexOf('%') != -1) { + bar_width = (parseInt(vm.barSize.width) / 100) * parentWidth + 'px' + } else { + bar_width = vm.barSize.width + } + + if (vm.barSize.height.indexOf('%') != -1) { + bar_height = (parseInt(vm.barSize.height) / 100) * parentHeight + 'px' + } else { + bar_height = vm.barSize.height + } + + return { + imgWidth: img_width, + imgHeight: img_height, + barWidth: bar_width, + barHeight: bar_height + } +} + +export const _code_chars = [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z' +] +export const _code_color1 = ['#fffff0', '#f0ffff', '#f0fff0', '#fff0f0'] +export const _code_color2 = ['#FF0033', '#006699', '#993366', '#FF9900', '#66CC66', '#FF33CC'] diff --git a/grailed-ui-admin-vue3/src/components/XButton/index.ts b/grailed-ui-admin-vue3/src/components/XButton/index.ts new file mode 100644 index 0000000..be0f0d4 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/XButton/index.ts @@ -0,0 +1,4 @@ +import XButton from './src/XButton.vue' +import XTextButton from './src/XTextButton.vue' + +export { XButton, XTextButton } diff --git a/grailed-ui-admin-vue3/src/components/XButton/src/XButton.vue b/grailed-ui-admin-vue3/src/components/XButton/src/XButton.vue new file mode 100644 index 0000000..40cba1a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/XButton/src/XButton.vue @@ -0,0 +1,50 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/components/XButton/src/XTextButton.vue b/grailed-ui-admin-vue3/src/components/XButton/src/XTextButton.vue new file mode 100644 index 0000000..b1a922b --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/XButton/src/XTextButton.vue @@ -0,0 +1,49 @@ + + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue new file mode 100644 index 0000000..3fe2194 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue @@ -0,0 +1,704 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue new file mode 100644 index 0000000..856fb2d --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue @@ -0,0 +1,575 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index.ts b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index.ts new file mode 100644 index 0000000..8522846 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index.ts @@ -0,0 +1,8 @@ +import MyProcessDesigner from './ProcessDesigner.vue' + +MyProcessDesigner.install = function (Vue) { + Vue.component(MyProcessDesigner.name, MyProcessDesigner) +} + +// 流程图的设计器,可编辑 +export default MyProcessDesigner diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index2.ts b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index2.ts new file mode 100644 index 0000000..ebe8ca7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/index2.ts @@ -0,0 +1,8 @@ +import MyProcessViewer from './ProcessViewer.vue' + +MyProcessViewer.install = function (Vue) { + Vue.component(MyProcessViewer.name, MyProcessViewer) +} + +// 流程图的查看器,不可编辑 +export default MyProcessViewer diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js new file mode 100644 index 0000000..8783493 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js @@ -0,0 +1,423 @@ +import { assign, forEach, isArray } from 'min-dash' + +import { is } from 'bpmn-js/lib/util/ModelUtil' + +import { isExpanded, isEventSubProcess } from 'bpmn-js/lib/util/DiUtil' + +import { isAny } from 'bpmn-js/lib/features/modeling/util/ModelingUtil' + +import { getChildLanes } from 'bpmn-js/lib/features/modeling/util/LaneUtil' + +import { hasPrimaryModifier } from 'diagram-js/lib/util/Mouse' + +/** + * A provider for BPMN 2.0 elements context pad + */ +export default function ContextPadProvider( + config, + injector, + eventBus, + contextPad, + modeling, + elementFactory, + connect, + create, + popupMenu, + canvas, + rules, + translate +) { + config = config || {} + + contextPad.registerProvider(this) + + this._contextPad = contextPad + + this._modeling = modeling + + this._elementFactory = elementFactory + this._connect = connect + this._create = create + this._popupMenu = popupMenu + this._canvas = canvas + this._rules = rules + this._translate = translate + + if (config.autoPlace !== false) { + this._autoPlace = injector.get('autoPlace', false) + } + + eventBus.on('create.end', 250, function (event) { + const context = event.context, + shape = context.shape + + if (!hasPrimaryModifier(event) || !contextPad.isOpen(shape)) { + return + } + + const entries = contextPad.getEntries(shape) + + if (entries.replace) { + entries.replace.action.click(event, shape) + } + }) +} + +ContextPadProvider.$inject = [ + 'config.contextPad', + 'injector', + 'eventBus', + 'contextPad', + 'modeling', + 'elementFactory', + 'connect', + 'create', + 'popupMenu', + 'canvas', + 'rules', + 'translate', + 'elementRegistry' +] + +ContextPadProvider.prototype.getContextPadEntries = function (element) { + const contextPad = this._contextPad, + modeling = this._modeling, + elementFactory = this._elementFactory, + connect = this._connect, + create = this._create, + popupMenu = this._popupMenu, + canvas = this._canvas, + rules = this._rules, + autoPlace = this._autoPlace, + translate = this._translate + + const actions = {} + + if (element.type === 'label') { + return actions + } + + const businessObject = element.businessObject + + function startConnect(event, element) { + connect.start(event, element) + } + + function removeElement() { + modeling.removeElements([element]) + } + + function getReplaceMenuPosition(element) { + const Y_OFFSET = 5 + + const diagramContainer = canvas.getContainer(), + pad = contextPad.getPad(element).html + + const diagramRect = diagramContainer.getBoundingClientRect(), + padRect = pad.getBoundingClientRect() + + const top = padRect.top - diagramRect.top + const left = padRect.left - diagramRect.left + + const pos = { + x: left, + y: top + padRect.height + Y_OFFSET + } + + return pos + } + + /** + * Create an append action + * + * @param {string} type + * @param {string} className + * @param {string} [title] + * @param {Object} [options] + * + * @return {Object} descriptor + */ + function appendAction(type, className, title, options) { + if (typeof title !== 'string') { + options = title + title = translate('Append {type}', { type: type.replace(/^bpmn:/, '') }) + } + + function appendStart(event, element) { + const shape = elementFactory.createShape(assign({ type: type }, options)) + create.start(event, shape, { + source: element + }) + } + + const append = autoPlace + ? function (event, element) { + const shape = elementFactory.createShape(assign({ type: type }, options)) + + autoPlace.append(element, shape) + } + : appendStart + + return { + group: 'model', + className: className, + title: title, + action: { + dragstart: appendStart, + click: append + } + } + } + + function splitLaneHandler(count) { + return function (event, element) { + // actual split + modeling.splitLane(element, count) + + // refresh context pad after split to + // get rid of split icons + contextPad.open(element, true) + } + } + + if (isAny(businessObject, ['bpmn:Lane', 'bpmn:Participant']) && isExpanded(businessObject)) { + const childLanes = getChildLanes(element) + + assign(actions, { + 'lane-insert-above': { + group: 'lane-insert-above', + className: 'bpmn-icon-lane-insert-above', + title: translate('Add Lane above'), + action: { + click: function (event, element) { + modeling.addLane(element, 'top') + } + } + } + }) + + if (childLanes.length < 2) { + if (element.height >= 120) { + assign(actions, { + 'lane-divide-two': { + group: 'lane-divide', + className: 'bpmn-icon-lane-divide-two', + title: translate('Divide into two Lanes'), + action: { + click: splitLaneHandler(2) + } + } + }) + } + + if (element.height >= 180) { + assign(actions, { + 'lane-divide-three': { + group: 'lane-divide', + className: 'bpmn-icon-lane-divide-three', + title: translate('Divide into three Lanes'), + action: { + click: splitLaneHandler(3) + } + } + }) + } + } + + assign(actions, { + 'lane-insert-below': { + group: 'lane-insert-below', + className: 'bpmn-icon-lane-insert-below', + title: translate('Add Lane below'), + action: { + click: function (event, element) { + modeling.addLane(element, 'bottom') + } + } + } + }) + } + + if (is(businessObject, 'bpmn:FlowNode')) { + if (is(businessObject, 'bpmn:EventBasedGateway')) { + assign(actions, { + 'append.receive-task': appendAction( + 'bpmn:ReceiveTask', + 'bpmn-icon-receive-task', + translate('Append ReceiveTask') + ), + 'append.message-intermediate-event': appendAction( + 'bpmn:IntermediateCatchEvent', + 'bpmn-icon-intermediate-event-catch-message', + translate('Append MessageIntermediateCatchEvent'), + { eventDefinitionType: 'bpmn:MessageEventDefinition' } + ), + 'append.timer-intermediate-event': appendAction( + 'bpmn:IntermediateCatchEvent', + 'bpmn-icon-intermediate-event-catch-timer', + translate('Append TimerIntermediateCatchEvent'), + { eventDefinitionType: 'bpmn:TimerEventDefinition' } + ), + 'append.condition-intermediate-event': appendAction( + 'bpmn:IntermediateCatchEvent', + 'bpmn-icon-intermediate-event-catch-condition', + translate('Append ConditionIntermediateCatchEvent'), + { eventDefinitionType: 'bpmn:ConditionalEventDefinition' } + ), + 'append.signal-intermediate-event': appendAction( + 'bpmn:IntermediateCatchEvent', + 'bpmn-icon-intermediate-event-catch-signal', + translate('Append SignalIntermediateCatchEvent'), + { eventDefinitionType: 'bpmn:SignalEventDefinition' } + ) + }) + } else if ( + isEventType(businessObject, 'bpmn:BoundaryEvent', 'bpmn:CompensateEventDefinition') + ) { + assign(actions, { + 'append.compensation-activity': appendAction( + 'bpmn:Task', + 'bpmn-icon-task', + translate('Append compensation activity'), + { + isForCompensation: true + } + ) + }) + } else if ( + !is(businessObject, 'bpmn:EndEvent') && + !businessObject.isForCompensation && + !isEventType(businessObject, 'bpmn:IntermediateThrowEvent', 'bpmn:LinkEventDefinition') && + !isEventSubProcess(businessObject) + ) { + assign(actions, { + 'append.end-event': appendAction( + 'bpmn:EndEvent', + 'bpmn-icon-end-event-none', + translate('Append EndEvent') + ), + 'append.gateway': appendAction( + 'bpmn:ExclusiveGateway', + 'bpmn-icon-gateway-none', + translate('Append Gateway') + ), + 'append.append-task': appendAction( + 'bpmn:UserTask', + 'bpmn-icon-user-task', + translate('Append Task') + ), + 'append.intermediate-event': appendAction( + 'bpmn:IntermediateThrowEvent', + 'bpmn-icon-intermediate-event-none', + translate('Append Intermediate/Boundary Event') + ) + }) + } + } + + if (!popupMenu.isEmpty(element, 'bpmn-replace')) { + // Replace menu entry + assign(actions, { + replace: { + group: 'edit', + className: 'bpmn-icon-screw-wrench', + title: '修改类型', + action: { + click: function (event, element) { + const position = assign(getReplaceMenuPosition(element), { + cursor: { x: event.x, y: event.y } + }) + + popupMenu.open(element, 'bpmn-replace', position) + } + } + } + }) + } + + if ( + isAny(businessObject, [ + 'bpmn:FlowNode', + 'bpmn:InteractionNode', + 'bpmn:DataObjectReference', + 'bpmn:DataStoreReference' + ]) + ) { + assign(actions, { + 'append.text-annotation': appendAction('bpmn:TextAnnotation', 'bpmn-icon-text-annotation'), + + connect: { + group: 'connect', + className: 'bpmn-icon-connection-multi', + title: translate( + 'Connect using ' + + (businessObject.isForCompensation ? '' : 'Sequence/MessageFlow or ') + + 'Association' + ), + action: { + click: startConnect, + dragstart: startConnect + } + } + }) + } + + if (isAny(businessObject, ['bpmn:DataObjectReference', 'bpmn:DataStoreReference'])) { + assign(actions, { + connect: { + group: 'connect', + className: 'bpmn-icon-connection-multi', + title: translate('Connect using DataInputAssociation'), + action: { + click: startConnect, + dragstart: startConnect + } + } + }) + } + + if (is(businessObject, 'bpmn:Group')) { + assign(actions, { + 'append.text-annotation': appendAction('bpmn:TextAnnotation', 'bpmn-icon-text-annotation') + }) + } + + // delete element entry, only show if allowed by rules + let deleteAllowed = rules.allowed('elements.delete', { elements: [element] }) + + if (isArray(deleteAllowed)) { + // was the element returned as a deletion candidate? + deleteAllowed = deleteAllowed[0] === element + } + + if (deleteAllowed) { + assign(actions, { + delete: { + group: 'edit', + className: 'bpmn-icon-trash', + title: translate('Remove'), + action: { + click: removeElement + } + } + }) + } + + return actions +} + +// helpers ///////// + +function isEventType(eventBo, type, definition) { + const isType = eventBo.$instanceOf(type) + let isDefinition = false + + const definitions = eventBo.eventDefinitions || [] + forEach(definitions, function (def) { + if (def.$type === definition) { + isDefinition = true + } + }) + + return isType && isDefinition +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js new file mode 100644 index 0000000..80009ef --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js @@ -0,0 +1,6 @@ +import CustomContextPadProvider from './contentPadProvider' + +export default { + __init__: ['contextPadProvider'], + contextPadProvider: ['type', CustomContextPadProvider] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js new file mode 100644 index 0000000..f3bc894 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js @@ -0,0 +1,24 @@ +export default (key, name, type) => { + if (!type) type = 'camunda' + const TYPE_TARGET = { + activiti: 'http://activiti.org/bpmn', + camunda: 'http://bpmn.io/schema/bpmn', + flowable: 'http://flowable.org/bpmn' + } + return ` + + + + + + + +` +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json new file mode 100644 index 0000000..db5e490 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json @@ -0,0 +1,994 @@ +{ + "name": "Activiti", + "uri": "http://activiti.org/bpmn", + "prefix": "activiti", + "xml": { + "tagAlias": "lowerCase" + }, + "associations": [], + "types": [ + { + "name": "Definitions", + "isAbstract": true, + "extends": ["bpmn:Definitions"], + "properties": [ + { + "name": "diagramRelationId", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "InOutBinding", + "superClass": ["Element"], + "isAbstract": true, + "properties": [ + { + "name": "source", + "isAttr": true, + "type": "String" + }, + { + "name": "sourceExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "target", + "isAttr": true, + "type": "String" + }, + { + "name": "businessKey", + "isAttr": true, + "type": "String" + }, + { + "name": "local", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "variables", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "In", + "superClass": ["InOutBinding"], + "meta": { + "allowedIn": ["bpmn:CallActivity"] + } + }, + { + "name": "Out", + "superClass": ["InOutBinding"], + "meta": { + "allowedIn": ["bpmn:CallActivity"] + } + }, + { + "name": "AsyncCapable", + "isAbstract": true, + "extends": ["bpmn:Activity", "bpmn:Gateway", "bpmn:Event"], + "properties": [ + { + "name": "async", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "asyncBefore", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "asyncAfter", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "exclusive", + "isAttr": true, + "type": "Boolean", + "default": true + } + ] + }, + { + "name": "JobPriorized", + "isAbstract": true, + "extends": ["bpmn:Process", "activiti:AsyncCapable"], + "properties": [ + { + "name": "jobPriority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "SignalEventDefinition", + "isAbstract": true, + "extends": ["bpmn:SignalEventDefinition"], + "properties": [ + { + "name": "async", + "isAttr": true, + "type": "Boolean", + "default": false + } + ] + }, + { + "name": "ErrorEventDefinition", + "isAbstract": true, + "extends": ["bpmn:ErrorEventDefinition"], + "properties": [ + { + "name": "errorCodeVariable", + "isAttr": true, + "type": "String" + }, + { + "name": "errorMessageVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Error", + "isAbstract": true, + "extends": ["bpmn:Error"], + "properties": [ + { + "name": "activiti:errorMessage", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "PotentialStarter", + "superClass": ["Element"], + "properties": [ + { + "name": "resourceAssignmentExpression", + "type": "bpmn:ResourceAssignmentExpression" + } + ] + }, + { + "name": "FormSupported", + "isAbstract": true, + "extends": ["bpmn:StartEvent", "bpmn:UserTask"], + "properties": [ + { + "name": "formHandlerClass", + "isAttr": true, + "type": "String" + }, + { + "name": "formKey", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "TemplateSupported", + "isAbstract": true, + "extends": ["bpmn:Process", "bpmn:FlowElement"], + "properties": [ + { + "name": "modelerTemplate", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Initiator", + "isAbstract": true, + "extends": ["bpmn:StartEvent"], + "properties": [ + { + "name": "initiator", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ScriptTask", + "isAbstract": true, + "extends": ["bpmn:ScriptTask"], + "properties": [ + { + "name": "resultVariable", + "isAttr": true, + "type": "String" + }, + { + "name": "resource", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Process", + "isAbstract": true, + "extends": ["bpmn:Process"], + "properties": [ + { + "name": "candidateStarterGroups", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateStarterUsers", + "isAttr": true, + "type": "String" + }, + { + "name": "versionTag", + "isAttr": true, + "type": "String" + }, + { + "name": "historyTimeToLive", + "isAttr": true, + "type": "String" + }, + { + "name": "isStartableInTasklist", + "isAttr": true, + "type": "Boolean", + "default": true + }, + { + "name": "executionListener", + "isAbstract": true, + "type": "Expression" + } + ] + }, + { + "name": "EscalationEventDefinition", + "isAbstract": true, + "extends": ["bpmn:EscalationEventDefinition"], + "properties": [ + { + "name": "escalationCodeVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "FormalExpression", + "isAbstract": true, + "extends": ["bpmn:FormalExpression"], + "properties": [ + { + "name": "resource", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "multiinstance_type", + "superClass": ["Element"] + }, + { + "name": "multiinstance_condition", + "superClass": ["Element"] + }, + { + "name": "Assignable", + "extends": ["bpmn:UserTask"], + "properties": [ + { + "name": "assignee", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateUsers", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateGroups", + "isAttr": true, + "type": "String" + }, + { + "name": "dueDate", + "isAttr": true, + "type": "String" + }, + { + "name": "followUpDate", + "isAttr": true, + "type": "String" + }, + { + "name": "priority", + "isAttr": true, + "type": "String" + }, + { + "name": "multiinstance_condition", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "CallActivity", + "extends": ["bpmn:CallActivity"], + "properties": [ + { + "name": "calledElementBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "calledElementVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "calledElementVersionTag", + "isAttr": true, + "type": "String" + }, + { + "name": "calledElementTenantId", + "isAttr": true, + "type": "String" + }, + { + "name": "caseRef", + "isAttr": true, + "type": "String" + }, + { + "name": "caseBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "caseVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "caseTenantId", + "isAttr": true, + "type": "String" + }, + { + "name": "variableMappingClass", + "isAttr": true, + "type": "String" + }, + { + "name": "variableMappingDelegateExpression", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ServiceTaskLike", + "extends": [ + "bpmn:ServiceTask", + "bpmn:BusinessRuleTask", + "bpmn:SendTask", + "bpmn:MessageEventDefinition" + ], + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "resultVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "DmnCapable", + "extends": ["bpmn:BusinessRuleTask"], + "properties": [ + { + "name": "decisionRef", + "isAttr": true, + "type": "String" + }, + { + "name": "decisionRefBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "decisionRefVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "mapDecisionResult", + "isAttr": true, + "type": "String", + "default": "resultList" + }, + { + "name": "decisionRefTenantId", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ExternalCapable", + "extends": ["activiti:ServiceTaskLike"], + "properties": [ + { + "name": "type", + "isAttr": true, + "type": "String" + }, + { + "name": "topic", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "TaskPriorized", + "extends": ["bpmn:Process", "activiti:ExternalCapable"], + "properties": [ + { + "name": "taskPriority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Properties", + "superClass": ["Element"], + "meta": { + "allowedIn": ["*"] + }, + "properties": [ + { + "name": "values", + "type": "Property", + "isMany": true + } + ] + }, + { + "name": "Property", + "superClass": ["Element"], + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "value", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "Connector", + "superClass": ["Element"], + "meta": { + "allowedIn": ["activiti:ServiceTaskLike"] + }, + "properties": [ + { + "name": "inputOutput", + "type": "InputOutput" + }, + { + "name": "connectorId", + "type": "String" + } + ] + }, + { + "name": "InputOutput", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:FlowNode", "activiti:Connector"] + }, + "properties": [ + { + "name": "inputOutput", + "type": "InputOutput" + }, + { + "name": "connectorId", + "type": "String" + }, + { + "name": "inputParameters", + "isMany": true, + "type": "InputParameter" + }, + { + "name": "outputParameters", + "isMany": true, + "type": "OutputParameter" + } + ] + }, + { + "name": "InputOutputParameter", + "properties": [ + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + }, + { + "name": "definition", + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "InputOutputParameterDefinition", + "isAbstract": true + }, + { + "name": "List", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "items", + "isMany": true, + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "Map", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "entries", + "isMany": true, + "type": "Entry" + } + ] + }, + { + "name": "Entry", + "properties": [ + { + "name": "key", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + }, + { + "name": "definition", + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "Value", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "id", + "isAttr": true, + "type": "String" + }, + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "Script", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "scriptFormat", + "isAttr": true, + "type": "String" + }, + { + "name": "resource", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "Field", + "superClass": ["Element"], + "meta": { + "allowedIn": [ + "activiti:ServiceTaskLike", + "activiti:ExecutionListener", + "activiti:TaskListener" + ] + }, + "properties": [ + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "expression", + "type": "String" + }, + { + "name": "stringValue", + "isAttr": true, + "type": "String" + }, + { + "name": "string", + "type": "String" + } + ] + }, + { + "name": "InputParameter", + "superClass": ["InputOutputParameter"] + }, + { + "name": "OutputParameter", + "superClass": ["InputOutputParameter"] + }, + { + "name": "Collectable", + "isAbstract": true, + "extends": ["bpmn:MultiInstanceLoopCharacteristics"], + "superClass": ["activiti:AsyncCapable"], + "properties": [ + { + "name": "collection", + "isAttr": true, + "type": "String" + }, + { + "name": "elementVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "FailedJobRetryTimeCycle", + "superClass": ["Element"], + "meta": { + "allowedIn": ["activiti:AsyncCapable", "bpmn:MultiInstanceLoopCharacteristics"] + }, + "properties": [ + { + "name": "body", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "ExecutionListener", + "superClass": ["Element"], + "meta": { + "allowedIn": [ + "bpmn:Task", + "bpmn:ServiceTask", + "bpmn:UserTask", + "bpmn:BusinessRuleTask", + "bpmn:ScriptTask", + "bpmn:ReceiveTask", + "bpmn:ManualTask", + "bpmn:ExclusiveGateway", + "bpmn:SequenceFlow", + "bpmn:ParallelGateway", + "bpmn:InclusiveGateway", + "bpmn:EventBasedGateway", + "bpmn:StartEvent", + "bpmn:IntermediateCatchEvent", + "bpmn:IntermediateThrowEvent", + "bpmn:EndEvent", + "bpmn:BoundaryEvent", + "bpmn:CallActivity", + "bpmn:SubProcess", + "bpmn:Process" + ] + }, + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "event", + "isAttr": true, + "type": "String" + }, + { + "name": "script", + "type": "Script" + }, + { + "name": "fields", + "type": "Field", + "isMany": true + } + ] + }, + { + "name": "TaskListener", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:UserTask"] + }, + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "event", + "isAttr": true, + "type": "String" + }, + { + "name": "script", + "type": "Script" + }, + { + "name": "fields", + "type": "Field", + "isMany": true + } + ] + }, + { + "name": "FormProperty", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"] + }, + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "required", + "type": "String", + "isAttr": true + }, + { + "name": "readable", + "type": "String", + "isAttr": true + }, + { + "name": "writable", + "type": "String", + "isAttr": true + }, + { + "name": "variable", + "type": "String", + "isAttr": true + }, + { + "name": "expression", + "type": "String", + "isAttr": true + }, + { + "name": "datePattern", + "type": "String", + "isAttr": true + }, + { + "name": "default", + "type": "String", + "isAttr": true + }, + { + "name": "values", + "type": "Value", + "isMany": true + } + ] + }, + { + "name": "FormProperty", + "superClass": ["Element"], + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "label", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "datePattern", + "type": "String", + "isAttr": true + }, + { + "name": "defaultValue", + "type": "String", + "isAttr": true + }, + { + "name": "properties", + "type": "Properties" + }, + { + "name": "validation", + "type": "Validation" + }, + { + "name": "values", + "type": "Value", + "isMany": true + } + ] + }, + { + "name": "Validation", + "superClass": ["Element"], + "properties": [ + { + "name": "constraints", + "type": "Constraint", + "isMany": true + } + ] + }, + { + "name": "Constraint", + "superClass": ["Element"], + "properties": [ + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "config", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "ConditionalEventDefinition", + "isAbstract": true, + "extends": ["bpmn:ConditionalEventDefinition"], + "properties": [ + { + "name": "variableName", + "isAttr": true, + "type": "String" + }, + { + "name": "variableEvent", + "isAttr": true, + "type": "String" + } + ] + } + ], + "emumerations": [] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json new file mode 100644 index 0000000..79b86bc --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json @@ -0,0 +1,1010 @@ +{ + "name": "Camunda", + "uri": "http://camunda.org/schema/1.0/bpmn", + "prefix": "camunda", + "xml": { + "tagAlias": "lowerCase" + }, + "associations": [], + "types": [ + { + "name": "Definitions", + "isAbstract": true, + "extends": ["bpmn:Definitions"], + "properties": [ + { + "name": "diagramRelationId", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "InOutBinding", + "superClass": ["Element"], + "isAbstract": true, + "properties": [ + { + "name": "source", + "isAttr": true, + "type": "String" + }, + { + "name": "sourceExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "target", + "isAttr": true, + "type": "String" + }, + { + "name": "businessKey", + "isAttr": true, + "type": "String" + }, + { + "name": "local", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "variables", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "In", + "superClass": ["InOutBinding"], + "meta": { + "allowedIn": ["bpmn:CallActivity", "bpmn:SignalEventDefinition"] + } + }, + { + "name": "Out", + "superClass": ["InOutBinding"], + "meta": { + "allowedIn": ["bpmn:CallActivity"] + } + }, + { + "name": "AsyncCapable", + "isAbstract": true, + "extends": ["bpmn:Activity", "bpmn:Gateway", "bpmn:Event"], + "properties": [ + { + "name": "async", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "asyncBefore", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "asyncAfter", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "exclusive", + "isAttr": true, + "type": "Boolean", + "default": true + } + ] + }, + { + "name": "JobPriorized", + "isAbstract": true, + "extends": ["bpmn:Process", "camunda:AsyncCapable"], + "properties": [ + { + "name": "jobPriority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "SignalEventDefinition", + "isAbstract": true, + "extends": ["bpmn:SignalEventDefinition"], + "properties": [ + { + "name": "async", + "isAttr": true, + "type": "Boolean", + "default": false + } + ] + }, + { + "name": "ErrorEventDefinition", + "isAbstract": true, + "extends": ["bpmn:ErrorEventDefinition"], + "properties": [ + { + "name": "errorCodeVariable", + "isAttr": true, + "type": "String" + }, + { + "name": "errorMessageVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Error", + "isAbstract": true, + "extends": ["bpmn:Error"], + "properties": [ + { + "name": "camunda:errorMessage", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "PotentialStarter", + "superClass": ["Element"], + "properties": [ + { + "name": "resourceAssignmentExpression", + "type": "bpmn:ResourceAssignmentExpression" + } + ] + }, + { + "name": "FormSupported", + "isAbstract": true, + "extends": ["bpmn:StartEvent", "bpmn:UserTask"], + "properties": [ + { + "name": "formHandlerClass", + "isAttr": true, + "type": "String" + }, + { + "name": "formKey", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "TemplateSupported", + "isAbstract": true, + "extends": ["bpmn:Process", "bpmn:FlowElement"], + "properties": [ + { + "name": "modelerTemplate", + "isAttr": true, + "type": "String" + }, + { + "name": "modelerTemplateVersion", + "isAttr": true, + "type": "Integer" + } + ] + }, + { + "name": "Initiator", + "isAbstract": true, + "extends": ["bpmn:StartEvent"], + "properties": [ + { + "name": "initiator", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ScriptTask", + "isAbstract": true, + "extends": ["bpmn:ScriptTask"], + "properties": [ + { + "name": "resultVariable", + "isAttr": true, + "type": "String" + }, + { + "name": "resource", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Process", + "isAbstract": true, + "extends": ["bpmn:Process"], + "properties": [ + { + "name": "candidateStarterGroups", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateStarterUsers", + "isAttr": true, + "type": "String" + }, + { + "name": "versionTag", + "isAttr": true, + "type": "String" + }, + { + "name": "historyTimeToLive", + "isAttr": true, + "type": "String" + }, + { + "name": "isStartableInTasklist", + "isAttr": true, + "type": "Boolean", + "default": true + } + ] + }, + { + "name": "EscalationEventDefinition", + "isAbstract": true, + "extends": ["bpmn:EscalationEventDefinition"], + "properties": [ + { + "name": "escalationCodeVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "FormalExpression", + "isAbstract": true, + "extends": ["bpmn:FormalExpression"], + "properties": [ + { + "name": "resource", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Assignable", + "extends": ["bpmn:UserTask"], + "properties": [ + { + "name": "assignee", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateUsers", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateGroups", + "isAttr": true, + "type": "String" + }, + { + "name": "dueDate", + "isAttr": true, + "type": "String" + }, + { + "name": "followUpDate", + "isAttr": true, + "type": "String" + }, + { + "name": "priority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "CallActivity", + "extends": ["bpmn:CallActivity"], + "properties": [ + { + "name": "calledElementBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "calledElementVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "calledElementVersionTag", + "isAttr": true, + "type": "String" + }, + { + "name": "calledElementTenantId", + "isAttr": true, + "type": "String" + }, + { + "name": "caseRef", + "isAttr": true, + "type": "String" + }, + { + "name": "caseBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "caseVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "caseTenantId", + "isAttr": true, + "type": "String" + }, + { + "name": "variableMappingClass", + "isAttr": true, + "type": "String" + }, + { + "name": "variableMappingDelegateExpression", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ServiceTaskLike", + "extends": [ + "bpmn:ServiceTask", + "bpmn:BusinessRuleTask", + "bpmn:SendTask", + "bpmn:MessageEventDefinition" + ], + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "resultVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "DmnCapable", + "extends": ["bpmn:BusinessRuleTask"], + "properties": [ + { + "name": "decisionRef", + "isAttr": true, + "type": "String" + }, + { + "name": "decisionRefBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "decisionRefVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "mapDecisionResult", + "isAttr": true, + "type": "String", + "default": "resultList" + }, + { + "name": "decisionRefTenantId", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ExternalCapable", + "extends": ["camunda:ServiceTaskLike"], + "properties": [ + { + "name": "type", + "isAttr": true, + "type": "String" + }, + { + "name": "topic", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "TaskPriorized", + "extends": ["bpmn:Process", "camunda:ExternalCapable"], + "properties": [ + { + "name": "taskPriority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Properties", + "superClass": ["Element"], + "meta": { + "allowedIn": ["*"] + }, + "properties": [ + { + "name": "values", + "type": "Property", + "isMany": true + } + ] + }, + { + "name": "Property", + "superClass": ["Element"], + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "value", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "Connector", + "superClass": ["Element"], + "meta": { + "allowedIn": ["camunda:ServiceTaskLike"] + }, + "properties": [ + { + "name": "inputOutput", + "type": "InputOutput" + }, + { + "name": "connectorId", + "type": "String" + } + ] + }, + { + "name": "InputOutput", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:FlowNode", "camunda:Connector"] + }, + "properties": [ + { + "name": "inputOutput", + "type": "InputOutput" + }, + { + "name": "connectorId", + "type": "String" + }, + { + "name": "inputParameters", + "isMany": true, + "type": "InputParameter" + }, + { + "name": "outputParameters", + "isMany": true, + "type": "OutputParameter" + } + ] + }, + { + "name": "InputOutputParameter", + "properties": [ + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + }, + { + "name": "definition", + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "InputOutputParameterDefinition", + "isAbstract": true + }, + { + "name": "List", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "items", + "isMany": true, + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "Map", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "entries", + "isMany": true, + "type": "Entry" + } + ] + }, + { + "name": "Entry", + "properties": [ + { + "name": "key", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + }, + { + "name": "definition", + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "Value", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "id", + "isAttr": true, + "type": "String" + }, + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "Script", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "scriptFormat", + "isAttr": true, + "type": "String" + }, + { + "name": "resource", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "Field", + "superClass": ["Element"], + "meta": { + "allowedIn": [ + "camunda:ServiceTaskLike", + "camunda:ExecutionListener", + "camunda:TaskListener" + ] + }, + "properties": [ + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "expression", + "type": "String" + }, + { + "name": "stringValue", + "isAttr": true, + "type": "String" + }, + { + "name": "string", + "type": "String" + } + ] + }, + { + "name": "InputParameter", + "superClass": ["InputOutputParameter"] + }, + { + "name": "OutputParameter", + "superClass": ["InputOutputParameter"] + }, + { + "name": "Collectable", + "isAbstract": true, + "extends": ["bpmn:MultiInstanceLoopCharacteristics"], + "superClass": ["camunda:AsyncCapable"], + "properties": [ + { + "name": "collection", + "isAttr": true, + "type": "String" + }, + { + "name": "elementVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "FailedJobRetryTimeCycle", + "superClass": ["Element"], + "meta": { + "allowedIn": ["camunda:AsyncCapable", "bpmn:MultiInstanceLoopCharacteristics"] + }, + "properties": [ + { + "name": "body", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "ExecutionListener", + "superClass": ["Element"], + "meta": { + "allowedIn": [ + "bpmn:Task", + "bpmn:ServiceTask", + "bpmn:UserTask", + "bpmn:BusinessRuleTask", + "bpmn:ScriptTask", + "bpmn:ReceiveTask", + "bpmn:ManualTask", + "bpmn:ExclusiveGateway", + "bpmn:SequenceFlow", + "bpmn:ParallelGateway", + "bpmn:InclusiveGateway", + "bpmn:EventBasedGateway", + "bpmn:StartEvent", + "bpmn:IntermediateCatchEvent", + "bpmn:IntermediateThrowEvent", + "bpmn:EndEvent", + "bpmn:BoundaryEvent", + "bpmn:CallActivity", + "bpmn:SubProcess", + "bpmn:Process" + ] + }, + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "event", + "isAttr": true, + "type": "String" + }, + { + "name": "script", + "type": "Script" + }, + { + "name": "fields", + "type": "Field", + "isMany": true + } + ] + }, + { + "name": "TaskListener", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:UserTask"] + }, + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "event", + "isAttr": true, + "type": "String" + }, + { + "name": "script", + "type": "Script" + }, + { + "name": "fields", + "type": "Field", + "isMany": true + }, + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "eventDefinitions", + "type": "bpmn:TimerEventDefinition", + "isMany": true + } + ] + }, + { + "name": "FormProperty", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"] + }, + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "required", + "type": "String", + "isAttr": true + }, + { + "name": "readable", + "type": "String", + "isAttr": true + }, + { + "name": "writable", + "type": "String", + "isAttr": true + }, + { + "name": "variable", + "type": "String", + "isAttr": true + }, + { + "name": "expression", + "type": "String", + "isAttr": true + }, + { + "name": "datePattern", + "type": "String", + "isAttr": true + }, + { + "name": "default", + "type": "String", + "isAttr": true + }, + { + "name": "values", + "type": "Value", + "isMany": true + } + ] + }, + { + "name": "FormData", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"] + }, + "properties": [ + { + "name": "fields", + "type": "FormField", + "isMany": true + }, + { + "name": "businessKey", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "FormField", + "superClass": ["Element"], + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "label", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "datePattern", + "type": "String", + "isAttr": true + }, + { + "name": "defaultValue", + "type": "String", + "isAttr": true + }, + { + "name": "properties", + "type": "Properties" + }, + { + "name": "validation", + "type": "Validation" + }, + { + "name": "values", + "type": "Value", + "isMany": true + } + ] + }, + { + "name": "Validation", + "superClass": ["Element"], + "properties": [ + { + "name": "constraints", + "type": "Constraint", + "isMany": true + } + ] + }, + { + "name": "Constraint", + "superClass": ["Element"], + "properties": [ + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "config", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "ConditionalEventDefinition", + "isAbstract": true, + "extends": ["bpmn:ConditionalEventDefinition"], + "properties": [ + { + "name": "variableName", + "isAttr": true, + "type": "String" + }, + { + "name": "variableEvents", + "isAttr": true, + "type": "String" + } + ] + } + ], + "emumerations": [] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json new file mode 100644 index 0000000..7fe7ad1 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json @@ -0,0 +1,1207 @@ +{ + "name": "Flowable", + "uri": "http://flowable.org/bpmn", + "prefix": "flowable", + "xml": { + "tagAlias": "lowerCase" + }, + "associations": [], + "types": [ + { + "name": "InOutBinding", + "superClass": ["Element"], + "isAbstract": true, + "properties": [ + { + "name": "source", + "isAttr": true, + "type": "String" + }, + { + "name": "sourceExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "target", + "isAttr": true, + "type": "String" + }, + { + "name": "businessKey", + "isAttr": true, + "type": "String" + }, + { + "name": "local", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "variables", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "In", + "superClass": ["InOutBinding"], + "meta": { + "allowedIn": ["bpmn:CallActivity"] + } + }, + { + "name": "Out", + "superClass": ["InOutBinding"], + "meta": { + "allowedIn": ["bpmn:CallActivity"] + } + }, + { + "name": "AsyncCapable", + "isAbstract": true, + "extends": ["bpmn:Activity", "bpmn:Gateway", "bpmn:Event"], + "properties": [ + { + "name": "async", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "asyncBefore", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "asyncAfter", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "exclusive", + "isAttr": true, + "type": "Boolean", + "default": true + } + ] + }, + { + "name": "JobPriorized", + "isAbstract": true, + "extends": ["bpmn:Process", "flowable:AsyncCapable"], + "properties": [ + { + "name": "jobPriority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "SignalEventDefinition", + "isAbstract": true, + "extends": ["bpmn:SignalEventDefinition"], + "properties": [ + { + "name": "async", + "isAttr": true, + "type": "Boolean", + "default": false + } + ] + }, + { + "name": "ErrorEventDefinition", + "isAbstract": true, + "extends": ["bpmn:ErrorEventDefinition"], + "properties": [ + { + "name": "errorCodeVariable", + "isAttr": true, + "type": "String" + }, + { + "name": "errorMessageVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Error", + "isAbstract": true, + "extends": ["bpmn:Error"], + "properties": [ + { + "name": "flowable:errorMessage", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "PotentialStarter", + "superClass": ["Element"], + "properties": [ + { + "name": "resourceAssignmentExpression", + "type": "bpmn:ResourceAssignmentExpression" + } + ] + }, + { + "name": "FormSupported", + "isAbstract": true, + "extends": ["bpmn:StartEvent", "bpmn:UserTask"], + "properties": [ + { + "name": "formHandlerClass", + "isAttr": true, + "type": "String" + }, + { + "name": "formKey", + "isAttr": true, + "type": "String" + }, + { + "name": "formType", + "isAttr": true, + "type": "String" + }, + { + "name": "formReadOnly", + "isAttr": true, + "type": "Boolean", + "default": false + }, + { + "name": "formInit", + "isAttr": true, + "type": "Boolean", + "default": true + } + ] + }, + { + "name": "TemplateSupported", + "isAbstract": true, + "extends": ["bpmn:Process", "bpmn:FlowElement"], + "properties": [ + { + "name": "modelerTemplate", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Initiator", + "isAbstract": true, + "extends": ["bpmn:StartEvent"], + "properties": [ + { + "name": "initiator", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ScriptTask", + "isAbstract": true, + "extends": ["bpmn:ScriptTask"], + "properties": [ + { + "name": "resultVariable", + "isAttr": true, + "type": "String" + }, + { + "name": "resource", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Process", + "isAbstract": true, + "extends": ["bpmn:Process"], + "properties": [ + { + "name": "candidateStarterGroups", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateStarterUsers", + "isAttr": true, + "type": "String" + }, + { + "name": "versionTag", + "isAttr": true, + "type": "String" + }, + { + "name": "historyTimeToLive", + "isAttr": true, + "type": "String" + }, + { + "name": "isStartableInTasklist", + "isAttr": true, + "type": "Boolean", + "default": true + } + ] + }, + { + "name": "EscalationEventDefinition", + "isAbstract": true, + "extends": ["bpmn:EscalationEventDefinition"], + "properties": [ + { + "name": "escalationCodeVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "FormalExpression", + "isAbstract": true, + "extends": ["bpmn:FormalExpression"], + "properties": [ + { + "name": "resource", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Assignable", + "extends": ["bpmn:UserTask"], + "properties": [ + { + "name": "assignee", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateUsers", + "isAttr": true, + "type": "String" + }, + { + "name": "candidateGroups", + "isAttr": true, + "type": "String" + }, + { + "name": "dueDate", + "isAttr": true, + "type": "String" + }, + { + "name": "followUpDate", + "isAttr": true, + "type": "String" + }, + { + "name": "priority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Assignee", + "supperClass": "Element", + "meta": { + "allowedIn": ["*"] + }, + "properties": [ + { + "name": "label", + "type": "String", + "isAttr": true + }, + { + "name": "viewId", + "type": "Number", + "isAttr": true + } + ] + }, + { + "name": "CallActivity", + "extends": ["bpmn:CallActivity"], + "properties": [ + { + "name": "calledElementBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "calledElementVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "calledElementVersionTag", + "isAttr": true, + "type": "String" + }, + { + "name": "calledElementTenantId", + "isAttr": true, + "type": "String" + }, + { + "name": "caseRef", + "isAttr": true, + "type": "String" + }, + { + "name": "caseBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "caseVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "caseTenantId", + "isAttr": true, + "type": "String" + }, + { + "name": "variableMappingClass", + "isAttr": true, + "type": "String" + }, + { + "name": "variableMappingDelegateExpression", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ServiceTaskLike", + "extends": [ + "bpmn:ServiceTask", + "bpmn:BusinessRuleTask", + "bpmn:SendTask", + "bpmn:MessageEventDefinition" + ], + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "resultVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "DmnCapable", + "extends": ["bpmn:BusinessRuleTask"], + "properties": [ + { + "name": "decisionRef", + "isAttr": true, + "type": "String" + }, + { + "name": "decisionRefBinding", + "isAttr": true, + "type": "String", + "default": "latest" + }, + { + "name": "decisionRefVersion", + "isAttr": true, + "type": "String" + }, + { + "name": "mapDecisionResult", + "isAttr": true, + "type": "String", + "default": "resultList" + }, + { + "name": "decisionRefTenantId", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "ExternalCapable", + "extends": ["flowable:ServiceTaskLike"], + "properties": [ + { + "name": "type", + "isAttr": true, + "type": "String" + }, + { + "name": "topic", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "TaskPriorized", + "extends": ["bpmn:Process", "flowable:ExternalCapable"], + "properties": [ + { + "name": "taskPriority", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Properties", + "superClass": ["Element"], + "meta": { + "allowedIn": ["*"] + }, + "properties": [ + { + "name": "values", + "type": "Property", + "isMany": true + } + ] + }, + { + "name": "Property", + "superClass": ["Element"], + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "value", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "Button", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:UserTask"] + }, + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "code", + "type": "String", + "isAttr": true + }, + { + "name": "isHide", + "type": "String", + "isAttr": true + }, + { + "name": "next", + "type": "String", + "isAttr": true + }, + { + "name": "sort", + "type": "Integer", + "isAttr": true + } + ] + }, + { + "name": "Assignee", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:UserTask"] + }, + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "value", + "type": "String", + "isAttr": true + }, + { + "name": "condition", + "type": "String", + "isAttr": true + }, + { + "name": "operationType", + "type": "String", + "isAttr": true + }, + { + "name": "sort", + "type": "Integer", + "isAttr": true + } + ] + }, + { + "name": "Connector", + "superClass": ["Element"], + "meta": { + "allowedIn": ["flowable:ServiceTaskLike"] + }, + "properties": [ + { + "name": "inputOutput", + "type": "InputOutput" + }, + { + "name": "connectorId", + "type": "String" + } + ] + }, + { + "name": "InputOutput", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:FlowNode", "flowable:Connector"] + }, + "properties": [ + { + "name": "inputOutput", + "type": "InputOutput" + }, + { + "name": "connectorId", + "type": "String" + }, + { + "name": "inputParameters", + "isMany": true, + "type": "InputParameter" + }, + { + "name": "outputParameters", + "isMany": true, + "type": "OutputParameter" + } + ] + }, + { + "name": "InputOutputParameter", + "properties": [ + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + }, + { + "name": "definition", + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "InputOutputParameterDefinition", + "isAbstract": true + }, + { + "name": "List", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "items", + "isMany": true, + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "Map", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "entries", + "isMany": true, + "type": "Entry" + } + ] + }, + { + "name": "Entry", + "properties": [ + { + "name": "key", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + }, + { + "name": "definition", + "type": "InputOutputParameterDefinition" + } + ] + }, + { + "name": "Value", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "id", + "isAttr": true, + "type": "String" + }, + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "Script", + "superClass": ["InputOutputParameterDefinition"], + "properties": [ + { + "name": "scriptFormat", + "isAttr": true, + "type": "String" + }, + { + "name": "resource", + "isAttr": true, + "type": "String" + }, + { + "name": "value", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "Field", + "superClass": ["Element"], + "meta": { + "allowedIn": [ + "flowable:ServiceTaskLike", + "flowable:ExecutionListener", + "flowable:TaskListener" + ] + }, + "properties": [ + { + "name": "name", + "isAttr": true, + "type": "String" + }, + { + "name": "expression", + "type": "String" + }, + { + "name": "stringValue", + "isAttr": true, + "type": "String" + }, + { + "name": "string", + "type": "String" + } + ] + }, + { + "name": "ChildField", + "superClass": ["Element"], + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "required", + "type": "String", + "isAttr": true + }, + { + "name": "readable", + "type": "String", + "isAttr": true + }, + { + "name": "writable", + "type": "String", + "isAttr": true + }, + { + "name": "variable", + "type": "String", + "isAttr": true + }, + { + "name": "expression", + "type": "String", + "isAttr": true + }, + { + "name": "datePattern", + "type": "String", + "isAttr": true + }, + { + "name": "default", + "type": "String", + "isAttr": true + }, + { + "name": "values", + "type": "Value", + "isMany": true + } + ] + }, + { + "name": "InputParameter", + "superClass": ["InputOutputParameter"] + }, + { + "name": "OutputParameter", + "superClass": ["InputOutputParameter"] + }, + { + "name": "Collectable", + "isAbstract": true, + "extends": ["bpmn:MultiInstanceLoopCharacteristics"], + "superClass": ["flowable:AsyncCapable"], + "properties": [ + { + "name": "collection", + "isAttr": true, + "type": "String" + }, + { + "name": "elementVariable", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "FailedJobRetryTimeCycle", + "superClass": ["Element"], + "meta": { + "allowedIn": ["flowable:AsyncCapable", "bpmn:MultiInstanceLoopCharacteristics"] + }, + "properties": [ + { + "name": "body", + "isBody": true, + "type": "String" + } + ] + }, + { + "name": "ExecutionListener", + "superClass": ["Element"], + "meta": { + "allowedIn": [ + "bpmn:Task", + "bpmn:ServiceTask", + "bpmn:UserTask", + "bpmn:BusinessRuleTask", + "bpmn:ScriptTask", + "bpmn:ReceiveTask", + "bpmn:ManualTask", + "bpmn:ExclusiveGateway", + "bpmn:SequenceFlow", + "bpmn:ParallelGateway", + "bpmn:InclusiveGateway", + "bpmn:EventBasedGateway", + "bpmn:StartEvent", + "bpmn:IntermediateCatchEvent", + "bpmn:IntermediateThrowEvent", + "bpmn:EndEvent", + "bpmn:BoundaryEvent", + "bpmn:CallActivity", + "bpmn:SubProcess", + "bpmn:Process" + ] + }, + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "event", + "isAttr": true, + "type": "String" + }, + { + "name": "script", + "type": "Script" + }, + { + "name": "fields", + "type": "Field", + "isMany": true + } + ] + }, + { + "name": "TaskListener", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:UserTask"] + }, + "properties": [ + { + "name": "expression", + "isAttr": true, + "type": "String" + }, + { + "name": "class", + "isAttr": true, + "type": "String" + }, + { + "name": "delegateExpression", + "isAttr": true, + "type": "String" + }, + { + "name": "event", + "isAttr": true, + "type": "String" + }, + { + "name": "script", + "type": "Script" + }, + { + "name": "fields", + "type": "Field", + "isMany": true + } + ] + }, + { + "name": "FormProperty", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"] + }, + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "required", + "type": "String", + "isAttr": true + }, + { + "name": "readable", + "type": "String", + "isAttr": true + }, + { + "name": "writable", + "type": "String", + "isAttr": true + }, + { + "name": "variable", + "type": "String", + "isAttr": true + }, + { + "name": "expression", + "type": "String", + "isAttr": true + }, + { + "name": "datePattern", + "type": "String", + "isAttr": true + }, + { + "name": "default", + "type": "String", + "isAttr": true + }, + { + "name": "values", + "type": "Value", + "isMany": true + }, + { + "name": "children", + "type": "ChildField", + "isMany": true + }, + { + "name": "extensionElements", + "type": "bpmn:ExtensionElements", + "isMany": true + } + ] + }, + { + "name": "FormData", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"] + }, + "properties": [ + { + "name": "fields", + "type": "FormField", + "isMany": true + }, + { + "name": "businessKey", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "FormField", + "superClass": ["Element"], + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "label", + "type": "String", + "isAttr": true + }, + { + "name": "type", + "type": "String", + "isAttr": true + }, + { + "name": "datePattern", + "type": "String", + "isAttr": true + }, + { + "name": "defaultValue", + "type": "String", + "isAttr": true + }, + { + "name": "properties", + "type": "Properties" + }, + { + "name": "validation", + "type": "Validation" + }, + { + "name": "values", + "type": "Value", + "isMany": true + } + ] + }, + { + "name": "Validation", + "superClass": ["Element"], + "properties": [ + { + "name": "constraints", + "type": "Constraint", + "isMany": true + } + ] + }, + { + "name": "Constraint", + "superClass": ["Element"], + "properties": [ + { + "name": "name", + "type": "String", + "isAttr": true + }, + { + "name": "config", + "type": "String", + "isAttr": true + } + ] + }, + { + "name": "ConditionalEventDefinition", + "isAbstract": true, + "extends": ["bpmn:ConditionalEventDefinition"], + "properties": [ + { + "name": "variableName", + "isAttr": true, + "type": "String" + }, + { + "name": "variableEvent", + "isAttr": true, + "type": "String" + } + ] + }, + { + "name": "Condition", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:SequenceFlow"] + }, + "properties": [ + { + "name": "id", + "type": "String", + "isAttr": true + }, + { + "name": "field", + "type": "String", + "isAttr": true + }, + { + "name": "compare", + "type": "String", + "isAttr": true + }, + { + "name": "value", + "type": "String", + "isAttr": true + }, + { + "name": "logic", + "type": "String", + "isAttr": true + }, + { + "name": "sort", + "type": "Integer", + "isAttr": true + } + ] + } + ], + "emumerations": [] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js new file mode 100644 index 0000000..56ef38a --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js @@ -0,0 +1,83 @@ +'use strict' + +import { some } from 'min-dash' + +// const some = require('min-dash').some +// const some = some + +const ALLOWED_TYPES = { + FailedJobRetryTimeCycle: [ + 'bpmn:StartEvent', + 'bpmn:BoundaryEvent', + 'bpmn:IntermediateCatchEvent', + 'bpmn:Activity' + ], + Connector: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'], + Field: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'] +} + +function is(element, type) { + return element && typeof element.$instanceOf === 'function' && element.$instanceOf(type) +} + +function exists(element) { + return element && element.length +} + +function includesType(collection, type) { + return ( + exists(collection) && + some(collection, function (element) { + return is(element, type) + }) + ) +} + +function anyType(element, types) { + return some(types, function (type) { + return is(element, type) + }) +} + +function isAllowed(propName, propDescriptor, newElement) { + const name = propDescriptor.name, + types = ALLOWED_TYPES[name.replace(/activiti:/, '')] + + return name === propName && anyType(newElement, types) +} + +function ActivitiModdleExtension(eventBus) { + eventBus.on( + 'property.clone', + function (context) { + const newElement = context.newElement, + propDescriptor = context.propertyDescriptor + + this.canCloneProperty(newElement, propDescriptor) + }, + this + ) +} + +ActivitiModdleExtension.$inject = ['eventBus'] + +ActivitiModdleExtension.prototype.canCloneProperty = function (newElement, propDescriptor) { + if (isAllowed('activiti:FailedJobRetryTimeCycle', propDescriptor, newElement)) { + return ( + includesType(newElement.eventDefinitions, 'bpmn:TimerEventDefinition') || + includesType(newElement.eventDefinitions, 'bpmn:SignalEventDefinition') || + is(newElement.loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics') + ) + } + + if (isAllowed('activiti:Connector', propDescriptor, newElement)) { + return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition') + } + + if (isAllowed('activiti:Field', propDescriptor, newElement)) { + return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition') + } +} + +// module.exports = ActivitiModdleExtension; +export default ActivitiModdleExtension diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js new file mode 100644 index 0000000..c22ca34 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js @@ -0,0 +1,11 @@ +/* + * @author igdianov + * address https://github.com/igdianov/activiti-bpmn-moddle + * */ + +import activitiExtension from './activitiExtension' + +export default { + __init__: ['ActivitiModdleExtension'], + ActivitiModdleExtension: ['type', activitiExtension] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js new file mode 100644 index 0000000..b8c37a5 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js @@ -0,0 +1,151 @@ +'use strict' + +import { isFunction, isObject, some } from 'min-dash' + +// const isFunction = isFunction, +// isObject = isObject, +// some = some +// const isFunction = require('min-dash').isFunction, +// isObject = require('min-dash').isObject, +// some = require('min-dash').some + +const WILDCARD = '*' + +function CamundaModdleExtension(eventBus) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const self = this + + eventBus.on('moddleCopy.canCopyProperty', function (context) { + const property = context.property, + parent = context.parent + + return self.canCopyProperty(property, parent) + }) +} + +CamundaModdleExtension.$inject = ['eventBus'] + +/** + * Check wether to disallow copying property. + */ +CamundaModdleExtension.prototype.canCopyProperty = function (property, parent) { + // (1) check wether property is allowed in parent + if (isObject(property) && !isAllowedInParent(property, parent)) { + return false + } + + // (2) check more complex scenarios + + if (is(property, 'camunda:InputOutput') && !this.canHostInputOutput(parent)) { + return false + } + + if (isAny(property, ['camunda:Connector', 'camunda:Field']) && !this.canHostConnector(parent)) { + return false + } + + if (is(property, 'camunda:In') && !this.canHostIn(parent)) { + return false + } +} + +CamundaModdleExtension.prototype.canHostInputOutput = function (parent) { + // allowed in camunda:Connector + const connector = getParent(parent, 'camunda:Connector') + + if (connector) { + return true + } + + // special rules inside bpmn:FlowNode + const flowNode = getParent(parent, 'bpmn:FlowNode') + + if (!flowNode) { + return false + } + + if (isAny(flowNode, ['bpmn:StartEvent', 'bpmn:Gateway', 'bpmn:BoundaryEvent'])) { + return false + } + + return !(is(flowNode, 'bpmn:SubProcess') && flowNode.get('triggeredByEvent')) +} + +CamundaModdleExtension.prototype.canHostConnector = function (parent) { + const serviceTaskLike = getParent(parent, 'camunda:ServiceTaskLike') + + if (is(serviceTaskLike, 'bpmn:MessageEventDefinition')) { + // only allow on throw and end events + return getParent(parent, 'bpmn:IntermediateThrowEvent') || getParent(parent, 'bpmn:EndEvent') + } + + return true +} + +CamundaModdleExtension.prototype.canHostIn = function (parent) { + const callActivity = getParent(parent, 'bpmn:CallActivity') + + if (callActivity) { + return true + } + + const signalEventDefinition = getParent(parent, 'bpmn:SignalEventDefinition') + + if (signalEventDefinition) { + // only allow on throw and end events + return getParent(parent, 'bpmn:IntermediateThrowEvent') || getParent(parent, 'bpmn:EndEvent') + } + + return true +} + +// module.exports = CamundaModdleExtension; +export default CamundaModdleExtension + +// helpers ////////// + +function is(element, type) { + return element && isFunction(element.$instanceOf) && element.$instanceOf(type) +} + +function isAny(element, types) { + return some(types, function (t) { + return is(element, t) + }) +} + +function getParent(element, type) { + if (!type) { + return element.$parent + } + + if (is(element, type)) { + return element + } + + if (!element.$parent) { + return + } + + return getParent(element.$parent, type) +} + +function isAllowedInParent(property, parent) { + // (1) find property descriptor + const descriptor = property.$type && property.$model.getTypeDescriptor(property.$type) + + const allowedIn = descriptor && descriptor.meta && descriptor.meta.allowedIn + + if (!allowedIn || isWildcard(allowedIn)) { + return true + } + + // (2) check wether property has parent of allowed type + return some(allowedIn, function (type) { + return getParent(parent, type) + }) +} + +function isWildcard(allowedIn) { + return allowedIn.indexOf(WILDCARD) !== -1 +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js new file mode 100644 index 0000000..1da1bc7 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js @@ -0,0 +1,8 @@ +'use strict' + +import extension from './extension' + +export default { + __init__: ['camundaModdleExtension'], + camundaModdleExtension: ['type', extension] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js new file mode 100644 index 0000000..3dcea67 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js @@ -0,0 +1,83 @@ +'use strict' + +import { some } from 'min-dash' + +// const some = some +// const some = require('min-dash').some + +const ALLOWED_TYPES = { + FailedJobRetryTimeCycle: [ + 'bpmn:StartEvent', + 'bpmn:BoundaryEvent', + 'bpmn:IntermediateCatchEvent', + 'bpmn:Activity' + ], + Connector: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'], + Field: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'] +} + +function is(element, type) { + return element && typeof element.$instanceOf === 'function' && element.$instanceOf(type) +} + +function exists(element) { + return element && element.length +} + +function includesType(collection, type) { + return ( + exists(collection) && + some(collection, function (element) { + return is(element, type) + }) + ) +} + +function anyType(element, types) { + return some(types, function (type) { + return is(element, type) + }) +} + +function isAllowed(propName, propDescriptor, newElement) { + const name = propDescriptor.name, + types = ALLOWED_TYPES[name.replace(/flowable:/, '')] + + return name === propName && anyType(newElement, types) +} + +function FlowableModdleExtension(eventBus) { + eventBus.on( + 'property.clone', + function (context) { + const newElement = context.newElement, + propDescriptor = context.propertyDescriptor + + this.canCloneProperty(newElement, propDescriptor) + }, + this + ) +} + +FlowableModdleExtension.$inject = ['eventBus'] + +FlowableModdleExtension.prototype.canCloneProperty = function (newElement, propDescriptor) { + if (isAllowed('flowable:FailedJobRetryTimeCycle', propDescriptor, newElement)) { + return ( + includesType(newElement.eventDefinitions, 'bpmn:TimerEventDefinition') || + includesType(newElement.eventDefinitions, 'bpmn:SignalEventDefinition') || + is(newElement.loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics') + ) + } + + if (isAllowed('flowable:Connector', propDescriptor, newElement)) { + return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition') + } + + if (isAllowed('flowable:Field', propDescriptor, newElement)) { + return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition') + } +} + +// module.exports = FlowableModdleExtension; +export default FlowableModdleExtension diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js new file mode 100644 index 0000000..6d59b67 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js @@ -0,0 +1,10 @@ +/* + * @author igdianov + * address https://github.com/igdianov/activiti-bpmn-moddle + * */ +import flowableExtension from './flowableExtension' + +export default { + __init__: ['FlowableModdleExtension'], + FlowableModdleExtension: ['type', flowableExtension] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js new file mode 100644 index 0000000..5e2803b --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js @@ -0,0 +1,221 @@ +import PaletteProvider from 'bpmn-js/lib/features/palette/PaletteProvider' +import { assign } from 'min-dash' + +export default function CustomPalette( + palette, + create, + elementFactory, + spaceTool, + lassoTool, + handTool, + globalConnect, + translate +) { + PaletteProvider.call( + this, + palette, + create, + elementFactory, + spaceTool, + lassoTool, + handTool, + globalConnect, + translate, + 2000 + ) +} + +const F = function () {} // 核心,利用空对象作为中介; +F.prototype = PaletteProvider.prototype // 核心,将父类的原型赋值给空对象F; + +// 利用中介函数重写原型链方法 +F.prototype.getPaletteEntries = function () { + const actions = {}, + create = this._create, + elementFactory = this._elementFactory, + spaceTool = this._spaceTool, + lassoTool = this._lassoTool, + handTool = this._handTool, + globalConnect = this._globalConnect, + translate = this._translate + + function createAction(type, group, className, title, options) { + function createListener(event) { + const shape = elementFactory.createShape(assign({ type: type }, options)) + + if (options) { + shape.businessObject.di.isExpanded = options.isExpanded + } + + create.start(event, shape) + } + + const shortType = type.replace(/^bpmn:/, '') + + return { + group: group, + className: className, + title: title || translate('Create {type}', { type: shortType }), + action: { + dragstart: createListener, + click: createListener + } + } + } + + function createSubprocess(event) { + const subProcess = elementFactory.createShape({ + type: 'bpmn:SubProcess', + x: 0, + y: 0, + isExpanded: true + }) + + const startEvent = elementFactory.createShape({ + type: 'bpmn:StartEvent', + x: 40, + y: 82, + parent: subProcess + }) + + create.start(event, [subProcess, startEvent], { + hints: { + autoSelect: [startEvent] + } + }) + } + + function createParticipant(event) { + create.start(event, elementFactory.createParticipantShape()) + } + + assign(actions, { + 'hand-tool': { + group: 'tools', + className: 'bpmn-icon-hand-tool', + title: '激活抓手工具', + // title: translate("Activate the hand tool"), + action: { + click: function (event) { + handTool.activateHand(event) + } + } + }, + 'lasso-tool': { + group: 'tools', + className: 'bpmn-icon-lasso-tool', + title: translate('Activate the lasso tool'), + action: { + click: function (event) { + lassoTool.activateSelection(event) + } + } + }, + 'space-tool': { + group: 'tools', + className: 'bpmn-icon-space-tool', + title: translate('Activate the create/remove space tool'), + action: { + click: function (event) { + spaceTool.activateSelection(event) + } + } + }, + 'global-connect-tool': { + group: 'tools', + className: 'bpmn-icon-connection-multi', + title: translate('Activate the global connect tool'), + action: { + click: function (event) { + globalConnect.toggle(event) + } + } + }, + 'tool-separator': { + group: 'tools', + separator: true + }, + 'create.start-event': createAction( + 'bpmn:StartEvent', + 'event', + 'bpmn-icon-start-event-none', + translate('Create StartEvent') + ), + 'create.intermediate-event': createAction( + 'bpmn:IntermediateThrowEvent', + 'event', + 'bpmn-icon-intermediate-event-none', + translate('Create Intermediate/Boundary Event') + ), + 'create.end-event': createAction( + 'bpmn:EndEvent', + 'event', + 'bpmn-icon-end-event-none', + translate('Create EndEvent') + ), + 'create.exclusive-gateway': createAction( + 'bpmn:ExclusiveGateway', + 'gateway', + 'bpmn-icon-gateway-none', + translate('Create Gateway') + ), + 'create.user-task': createAction( + 'bpmn:UserTask', + 'activity', + 'bpmn-icon-user-task', + translate('Create User Task') + ), + 'create.data-object': createAction( + 'bpmn:DataObjectReference', + 'data-object', + 'bpmn-icon-data-object', + translate('Create DataObjectReference') + ), + 'create.data-store': createAction( + 'bpmn:DataStoreReference', + 'data-store', + 'bpmn-icon-data-store', + translate('Create DataStoreReference') + ), + 'create.subprocess-expanded': { + group: 'activity', + className: 'bpmn-icon-subprocess-expanded', + title: translate('Create expanded SubProcess'), + action: { + dragstart: createSubprocess, + click: createSubprocess + } + }, + 'create.participant-expanded': { + group: 'collaboration', + className: 'bpmn-icon-participant', + title: translate('Create Pool/Participant'), + action: { + dragstart: createParticipant, + click: createParticipant + } + }, + 'create.group': createAction( + 'bpmn:Group', + 'artifact', + 'bpmn-icon-group', + translate('Create Group') + ) + }) + + return actions +} + +CustomPalette.$inject = [ + 'palette', + 'create', + 'elementFactory', + 'spaceTool', + 'lassoTool', + 'handTool', + 'globalConnect', + 'translate' +] + +CustomPalette.prototype = new F() // 核心,将 F的实例赋值给子类; +CustomPalette.prototype.constructor = CustomPalette // 修复子类CustomPalette的构造器指向,防止原型链的混乱; diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js new file mode 100644 index 0000000..8e4f3ac --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js @@ -0,0 +1,22 @@ +// import PaletteModule from "diagram-js/lib/features/palette"; +// import CreateModule from "diagram-js/lib/features/create"; +// import SpaceToolModule from "diagram-js/lib/features/space-tool"; +// import LassoToolModule from "diagram-js/lib/features/lasso-tool"; +// import HandToolModule from "diagram-js/lib/features/hand-tool"; +// import GlobalConnectModule from "diagram-js/lib/features/global-connect"; +// import translate from "diagram-js/lib/i18n/translate"; +// +// import PaletteProvider from "./paletteProvider"; +// +// export default { +// __depends__: [PaletteModule, CreateModule, SpaceToolModule, LassoToolModule, HandToolModule, GlobalConnectModule, translate], +// __init__: ["paletteProvider"], +// paletteProvider: ["type", PaletteProvider] +// }; + +import CustomPalette from './CustomPalette' + +export default { + __init__: ['paletteProvider'], + paletteProvider: ['type', CustomPalette] +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js new file mode 100644 index 0000000..7098981 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js @@ -0,0 +1,213 @@ +import { assign } from 'min-dash' + +/** + * A palette provider for BPMN 2.0 elements. + */ +export default function PaletteProvider( + palette, + create, + elementFactory, + spaceTool, + lassoTool, + handTool, + globalConnect, + translate +) { + this._palette = palette + this._create = create + this._elementFactory = elementFactory + this._spaceTool = spaceTool + this._lassoTool = lassoTool + this._handTool = handTool + this._globalConnect = globalConnect + this._translate = translate + + palette.registerProvider(this) +} + +PaletteProvider.$inject = [ + 'palette', + 'create', + 'elementFactory', + 'spaceTool', + 'lassoTool', + 'handTool', + 'globalConnect', + 'translate' +] + +PaletteProvider.prototype.getPaletteEntries = function () { + const actions = {}, + create = this._create, + elementFactory = this._elementFactory, + spaceTool = this._spaceTool, + lassoTool = this._lassoTool, + handTool = this._handTool, + globalConnect = this._globalConnect, + translate = this._translate + + function createAction(type, group, className, title, options) { + function createListener(event) { + const shape = elementFactory.createShape(assign({ type: type }, options)) + + if (options) { + shape.businessObject.di.isExpanded = options.isExpanded + } + + create.start(event, shape) + } + + const shortType = type.replace(/^bpmn:/, '') + + return { + group: group, + className: className, + title: title || translate('Create {type}', { type: shortType }), + action: { + dragstart: createListener, + click: createListener + } + } + } + + function createSubprocess(event) { + const subProcess = elementFactory.createShape({ + type: 'bpmn:SubProcess', + x: 0, + y: 0, + isExpanded: true + }) + + const startEvent = elementFactory.createShape({ + type: 'bpmn:StartEvent', + x: 40, + y: 82, + parent: subProcess + }) + + create.start(event, [subProcess, startEvent], { + hints: { + autoSelect: [startEvent] + } + }) + } + + function createParticipant(event) { + create.start(event, elementFactory.createParticipantShape()) + } + + assign(actions, { + 'hand-tool': { + group: 'tools', + className: 'bpmn-icon-hand-tool', + title: translate('Activate the hand tool'), + action: { + click: function (event) { + handTool.activateHand(event) + } + } + }, + 'lasso-tool': { + group: 'tools', + className: 'bpmn-icon-lasso-tool', + title: translate('Activate the lasso tool'), + action: { + click: function (event) { + lassoTool.activateSelection(event) + } + } + }, + 'space-tool': { + group: 'tools', + className: 'bpmn-icon-space-tool', + title: translate('Activate the create/remove space tool'), + action: { + click: function (event) { + spaceTool.activateSelection(event) + } + } + }, + 'global-connect-tool': { + group: 'tools', + className: 'bpmn-icon-connection-multi', + title: translate('Activate the global connect tool'), + action: { + click: function (event) { + globalConnect.toggle(event) + } + } + }, + 'tool-separator': { + group: 'tools', + separator: true + }, + 'create.start-event': createAction( + 'bpmn:StartEvent', + 'event', + 'bpmn-icon-start-event-none', + translate('Create StartEvent') + ), + 'create.intermediate-event': createAction( + 'bpmn:IntermediateThrowEvent', + 'event', + 'bpmn-icon-intermediate-event-none', + translate('Create Intermediate/Boundary Event') + ), + 'create.end-event': createAction( + 'bpmn:EndEvent', + 'event', + 'bpmn-icon-end-event-none', + translate('Create EndEvent') + ), + 'create.exclusive-gateway': createAction( + 'bpmn:ExclusiveGateway', + 'gateway', + 'bpmn-icon-gateway-none', + translate('Create Gateway') + ), + 'create.user-task': createAction( + 'bpmn:UserTask', + 'activity', + 'bpmn-icon-user-task', + translate('Create User Task') + ), + 'create.data-object': createAction( + 'bpmn:DataObjectReference', + 'data-object', + 'bpmn-icon-data-object', + translate('Create DataObjectReference') + ), + 'create.data-store': createAction( + 'bpmn:DataStoreReference', + 'data-store', + 'bpmn-icon-data-store', + translate('Create DataStoreReference') + ), + 'create.subprocess-expanded': { + group: 'activity', + className: 'bpmn-icon-subprocess-expanded', + title: translate('Create expanded SubProcess'), + action: { + dragstart: createSubprocess, + click: createSubprocess + } + }, + 'create.participant-expanded': { + group: 'collaboration', + className: 'bpmn-icon-participant', + title: translate('Create Pool/Participant'), + action: { + dragstart: createParticipant, + click: createParticipant + } + }, + 'create.group': createAction( + 'bpmn:Group', + 'artifact', + 'bpmn-icon-group', + translate('Create Group') + ) + }) + + return actions +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js new file mode 100644 index 0000000..c1b99e1 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js @@ -0,0 +1,44 @@ +// import translations from "./zh"; +// +// export default function customTranslate(template, replacements) { +// replacements = replacements || {}; +// +// // Translate +// template = translations[template] || template; +// +// // Replace +// return template.replace(/{([^}]+)}/g, function(_, key) { +// let str = replacements[key]; +// if ( +// translations[replacements[key]] !== null && +// translations[replacements[key]] !== "undefined" +// ) { +// // eslint-disable-next-line no-mixed-spaces-and-tabs +// str = translations[replacements[key]]; +// // eslint-disable-next-line no-mixed-spaces-and-tabs +// } +// return str || "{" + key + "}"; +// }); +// } + +export default function customTranslate(translations) { + return function (template, replacements) { + replacements = replacements || {} + // Translate + template = translations[template] || template + + // Replace + return template.replace(/{([^}]+)}/g, function (_, key) { + let str = replacements[key] + if ( + translations[replacements[key]] !== null && + translations[replacements[key]] !== undefined + ) { + // eslint-disable-next-line no-mixed-spaces-and-tabs + str = translations[replacements[key]] + // eslint-disable-next-line no-mixed-spaces-and-tabs + } + return str || '{' + key + '}' + }) + } +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js new file mode 100644 index 0000000..777db3e --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js @@ -0,0 +1,240 @@ +/** + * This is a sample file that should be replaced with the actual translation. + * + * Checkout https://github.com/bpmn-io/bpmn-js-i18n for a list of available + * translations and labels to translate. + */ +export default { + // 添加部分 + 'Append EndEvent': '追加结束事件', + 'Append Gateway': '追加网关', + 'Append Task': '追加任务', + 'Append Intermediate/Boundary Event': '追加中间抛出事件/边界事件', + + 'Activate the global connect tool': '激活全局连接工具', + 'Append {type}': '添加 {type}', + 'Add Lane above': '在上面添加道', + 'Divide into two Lanes': '分割成两个道', + 'Divide into three Lanes': '分割成三个道', + 'Add Lane below': '在下面添加道', + 'Append compensation activity': '追加补偿活动', + 'Change type': '修改类型', + 'Connect using Association': '使用关联连接', + 'Connect using Sequence/MessageFlow or Association': '使用顺序/消息流或者关联连接', + 'Connect using DataInputAssociation': '使用数据输入关联连接', + Remove: '移除', + 'Activate the hand tool': '激活抓手工具', + 'Activate the lasso tool': '激活套索工具', + 'Activate the create/remove space tool': '激活创建/删除空间工具', + 'Create expanded SubProcess': '创建扩展子过程', + 'Create IntermediateThrowEvent/BoundaryEvent': '创建中间抛出事件/边界事件', + 'Create Pool/Participant': '创建池/参与者', + 'Parallel Multi Instance': '并行多重事件', + 'Sequential Multi Instance': '时序多重事件', + DataObjectReference: '数据对象参考', + DataStoreReference: '数据存储参考', + Loop: '循环', + 'Ad-hoc': '即席', + 'Create {type}': '创建 {type}', + Task: '任务', + 'Send Task': '发送任务', + 'Receive Task': '接收任务', + 'User Task': '用户任务', + 'Manual Task': '手工任务', + 'Business Rule Task': '业务规则任务', + 'Service Task': '服务任务', + 'Script Task': '脚本任务', + 'Call Activity': '调用活动', + 'Sub Process (collapsed)': '子流程(折叠的)', + 'Sub Process (expanded)': '子流程(展开的)', + 'Start Event': '开始事件', + StartEvent: '开始事件', + 'Intermediate Throw Event': '中间事件', + 'End Event': '结束事件', + EndEvent: '结束事件', + 'Create StartEvent': '创建开始事件', + 'Create EndEvent': '创建结束事件', + 'Create Task': '创建任务', + 'Create User Task': '创建用户任务', + 'Create Gateway': '创建网关', + 'Create DataObjectReference': '创建数据对象', + 'Create DataStoreReference': '创建数据存储', + 'Create Group': '创建分组', + 'Create Intermediate/Boundary Event': '创建中间/边界事件', + 'Message Start Event': '消息开始事件', + 'Timer Start Event': '定时开始事件', + 'Conditional Start Event': '条件开始事件', + 'Signal Start Event': '信号开始事件', + 'Error Start Event': '错误开始事件', + 'Escalation Start Event': '升级开始事件', + 'Compensation Start Event': '补偿开始事件', + 'Message Start Event (non-interrupting)': '消息开始事件(非中断)', + 'Timer Start Event (non-interrupting)': '定时开始事件(非中断)', + 'Conditional Start Event (non-interrupting)': '条件开始事件(非中断)', + 'Signal Start Event (non-interrupting)': '信号开始事件(非中断)', + 'Escalation Start Event (non-interrupting)': '升级开始事件(非中断)', + 'Message Intermediate Catch Event': '消息中间捕获事件', + 'Message Intermediate Throw Event': '消息中间抛出事件', + 'Timer Intermediate Catch Event': '定时中间捕获事件', + 'Escalation Intermediate Throw Event': '升级中间抛出事件', + 'Conditional Intermediate Catch Event': '条件中间捕获事件', + 'Link Intermediate Catch Event': '链接中间捕获事件', + 'Link Intermediate Throw Event': '链接中间抛出事件', + 'Compensation Intermediate Throw Event': '补偿中间抛出事件', + 'Signal Intermediate Catch Event': '信号中间捕获事件', + 'Signal Intermediate Throw Event': '信号中间抛出事件', + 'Message End Event': '消息结束事件', + 'Escalation End Event': '定时结束事件', + 'Error End Event': '错误结束事件', + 'Cancel End Event': '取消结束事件', + 'Compensation End Event': '补偿结束事件', + 'Signal End Event': '信号结束事件', + 'Terminate End Event': '终止结束事件', + 'Message Boundary Event': '消息边界事件', + 'Message Boundary Event (non-interrupting)': '消息边界事件(非中断)', + 'Timer Boundary Event': '定时边界事件', + 'Timer Boundary Event (non-interrupting)': '定时边界事件(非中断)', + 'Escalation Boundary Event': '升级边界事件', + 'Escalation Boundary Event (non-interrupting)': '升级边界事件(非中断)', + 'Conditional Boundary Event': '条件边界事件', + 'Conditional Boundary Event (non-interrupting)': '条件边界事件(非中断)', + 'Error Boundary Event': '错误边界事件', + 'Cancel Boundary Event': '取消边界事件', + 'Signal Boundary Event': '信号边界事件', + 'Signal Boundary Event (non-interrupting)': '信号边界事件(非中断)', + 'Compensation Boundary Event': '补偿边界事件', + 'Exclusive Gateway': '互斥网关', + 'Parallel Gateway': '并行网关', + 'Inclusive Gateway': '相容网关', + 'Complex Gateway': '复杂网关', + 'Event based Gateway': '事件网关', + Transaction: '转运', + 'Sub Process': '子流程', + 'Event Sub Process': '事件子流程', + 'Collapsed Pool': '折叠池', + 'Expanded Pool': '展开池', + + // Errors + 'no parent for {element} in {parent}': '在{parent}里,{element}没有父类', + 'no shape type specified': '没有指定的形状类型', + 'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类', + 'out of bounds release': 'out of bounds release', + 'more than {count} child lanes': '子道大于{count} ', + 'element required': '元素不能为空', + 'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范', + 'no diagram to display': '没有可展示的流程图', + 'no process or collaboration to display': '没有可展示的流程/协作', + 'element {element} referenced by {referenced}#{property} not yet drawn': + '由{referenced}#{property}引用的{element}元素仍未绘制', + 'already rendered {element}': '{element} 已被渲染', + 'failed to import {element}': '导入{element}失败', + //属性面板的参数 + Id: '编号', + Name: '名称', + General: '常规', + Details: '详情', + 'Message Name': '消息名称', + Message: '消息', + Initiator: '创建者', + 'Asynchronous Continuations': '持续异步', + 'Asynchronous Before': '异步前', + 'Asynchronous After': '异步后', + 'Job Configuration': '工作配置', + Exclusive: '排除', + 'Job Priority': '工作优先级', + 'Retry Time Cycle': '重试时间周期', + Documentation: '文档', + 'Element Documentation': '元素文档', + 'History Configuration': '历史配置', + 'History Time To Live': '历史的生存时间', + Forms: '表单', + 'Form Key': '表单key', + 'Form Fields': '表单字段', + 'Business Key': '业务key', + 'Form Field': '表单字段', + ID: '编号', + Type: '类型', + Label: '名称', + 'Default Value': '默认值', + 'Default Flow': '默认流转路径', + 'Conditional Flow': '条件流转路径', + 'Sequence Flow': '普通流转路径', + Validation: '校验', + 'Add Constraint': '添加约束', + Config: '配置', + Properties: '属性', + 'Add Property': '添加属性', + Value: '值', + Listeners: '监听器', + 'Execution Listener': '执行监听', + 'Event Type': '事件类型', + 'Listener Type': '监听器类型', + 'Java Class': 'Java类', + Expression: '表达式', + 'Must provide a value': '必须提供一个值', + 'Delegate Expression': '代理表达式', + Script: '脚本', + 'Script Format': '脚本格式', + 'Script Type': '脚本类型', + 'Inline Script': '内联脚本', + 'External Script': '外部脚本', + Resource: '资源', + 'Field Injection': '字段注入', + Extensions: '扩展', + 'Input/Output': '输入/输出', + 'Input Parameters': '输入参数', + 'Output Parameters': '输出参数', + Parameters: '参数', + 'Output Parameter': '输出参数', + 'Timer Definition Type': '定时器定义类型', + 'Timer Definition': '定时器定义', + Date: '日期', + Duration: '持续', + Cycle: '循环', + Signal: '信号', + 'Signal Name': '信号名称', + Escalation: '升级', + Error: '错误', + 'Link Name': '链接名称', + Condition: '条件名称', + 'Variable Name': '变量名称', + 'Variable Event': '变量事件', + 'Specify more than one variable change event as a comma separated list.': + '多个变量事件以逗号隔开', + 'Wait for Completion': '等待完成', + 'Activity Ref': '活动参考', + 'Version Tag': '版本标签', + Executable: '可执行文件', + 'External Task Configuration': '扩展任务配置', + 'Task Priority': '任务优先级', + External: '外部', + Connector: '连接器', + 'Must configure Connector': '必须配置连接器', + 'Connector Id': '连接器编号', + Implementation: '实现方式', + 'Field Injections': '字段注入', + Fields: '字段', + 'Result Variable': '结果变量', + Topic: '主题', + 'Configure Connector': '配置连接器', + 'Input Parameter': '输入参数', + Assignee: '代理人', + 'Candidate Users': '候选用户', + 'Candidate Groups': '候选组', + 'Due Date': '到期时间', + 'Follow Up Date': '跟踪日期', + Priority: '优先级', + 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)': + '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00', + 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)': + '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00', + Variables: '变量', + 'Candidate Starter Configuration': '候选人起动器配置', + 'Candidate Starter Groups': '候选人起动器组', + 'This maps to the process definition key.': '这映射到流程定义键。', + 'Candidate Starter Users': '候选人起动器的用户', + 'Specify more than one user as a comma separated list.': '指定多个用户作为逗号分隔的列表。', + 'Tasklist Configuration': 'Tasklist配置', + Startable: '启动', + 'Specify more than one group as a comma separated list.': '指定多个组作为逗号分隔的列表。' +} diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/index.ts b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/index.ts new file mode 100644 index 0000000..ce44a3c --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/index.ts @@ -0,0 +1,11 @@ +import MyProcessDesigner from './designer' +import MyProcessPenal from './penal' +import MyProcessViewer from './designer/index2' + +import './theme/index.scss' +import 'bpmn-js/dist/assets/diagram-js.css' +import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css' +import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css' +import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css' + +export { MyProcessDesigner, MyProcessPenal, MyProcessViewer } diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue new file mode 100644 index 0000000..ba97d96 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue new file mode 100644 index 0000000..377592f --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue @@ -0,0 +1,211 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue new file mode 100644 index 0000000..639c1cb --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue @@ -0,0 +1,184 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue new file mode 100644 index 0000000..7d87cf2 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue @@ -0,0 +1,194 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue new file mode 100644 index 0000000..2636606 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue @@ -0,0 +1,472 @@ + + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/index.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/index.js new file mode 100644 index 0000000..7fa5617 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/index.js @@ -0,0 +1,7 @@ +import MyPropertiesPanel from './PropertiesPanel.vue' + +MyPropertiesPanel.install = function (Vue) { + Vue.component(MyPropertiesPanel.name, MyPropertiesPanel) +} + +export default MyPropertiesPanel diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue new file mode 100644 index 0000000..9930159 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue @@ -0,0 +1,419 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue new file mode 100644 index 0000000..463c5ab --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue @@ -0,0 +1,471 @@ + + diff --git a/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/template.js b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/template.js new file mode 100644 index 0000000..430dc64 --- /dev/null +++ b/grailed-ui-admin-vue3/src/components/bpmnProcessDesigner/package/penal/listeners/template.js @@ -0,0 +1,178 @@ +export const template = (isTaskListener) => { + return ` +