diff --git a/.auto-import.json b/.auto-import.json
new file mode 100644
index 0000000..f5553b8
--- /dev/null
+++ b/.auto-import.json
@@ -0,0 +1,314 @@
+{
+ "globals": {
+ "Component": true,
+ "ComponentPublicInstance": true,
+ "ComputedRef": true,
+ "DirectiveBinding": true,
+ "EffectScope": true,
+ "ExtractDefaultPropTypes": true,
+ "ExtractPropTypes": true,
+ "ExtractPublicPropTypes": true,
+ "InjectionKey": true,
+ "MaybeRef": true,
+ "MaybeRefOrGetter": true,
+ "PropType": true,
+ "Ref": true,
+ "VNode": true,
+ "WritableComputedRef": true,
+ "acceptHMRUpdate": 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,
+ "createPinia": true,
+ "createReactiveFn": true,
+ "createReusableTemplate": true,
+ "createSharedComposable": true,
+ "createTemplatePromise": true,
+ "createUnrefFn": true,
+ "customRef": true,
+ "debouncedRef": true,
+ "debouncedWatch": true,
+ "defineAsyncComponent": true,
+ "defineComponent": true,
+ "defineStore": true,
+ "eagerComputed": true,
+ "effectScope": true,
+ "extendRef": true,
+ "getActivePinia": true,
+ "getCurrentInstance": true,
+ "getCurrentScope": true,
+ "h": true,
+ "ignorableWatch": true,
+ "inject": true,
+ "injectLocal": true,
+ "isDefined": true,
+ "isProxy": true,
+ "isReactive": true,
+ "isReadonly": true,
+ "isRef": true,
+ "makeDestructurable": true,
+ "mapActions": true,
+ "mapGetters": true,
+ "mapState": true,
+ "mapStores": true,
+ "mapWritableState": true,
+ "markRaw": true,
+ "nextTick": true,
+ "onActivated": true,
+ "onBeforeMount": true,
+ "onBeforeRouteLeave": true,
+ "onBeforeRouteUpdate": 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,
+ "onWatcherCleanup": true,
+ "pausableWatch": true,
+ "provide": true,
+ "provideLocal": 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,
+ "setActivePinia": true,
+ "setMapStoreSuffix": true,
+ "shallowReactive": true,
+ "shallowReadonly": true,
+ "shallowRef": true,
+ "storeToRefs": true,
+ "syncRef": true,
+ "syncRefs": true,
+ "templateRef": true,
+ "throttledRef": true,
+ "throttledWatch": true,
+ "toRaw": true,
+ "toReactive": true,
+ "toRef": true,
+ "toRefs": true,
+ "toValue": true,
+ "triggerRef": true,
+ "tryOnBeforeMount": true,
+ "tryOnBeforeUnmount": true,
+ "tryOnMounted": true,
+ "tryOnScopeDispose": true,
+ "tryOnUnmounted": true,
+ "unref": true,
+ "unrefElement": true,
+ "until": true,
+ "useActiveElement": true,
+ "useAnimate": true,
+ "useArrayDifference": true,
+ "useArrayEvery": true,
+ "useArrayFilter": true,
+ "useArrayFind": true,
+ "useArrayFindIndex": true,
+ "useArrayFindLast": true,
+ "useArrayIncludes": true,
+ "useArrayJoin": true,
+ "useArrayMap": true,
+ "useArrayReduce": true,
+ "useArraySome": true,
+ "useArrayUnique": true,
+ "useAsyncQueue": true,
+ "useAsyncState": true,
+ "useAttrs": true,
+ "useBase64": true,
+ "useBattery": true,
+ "useBluetooth": true,
+ "useBreakpoints": true,
+ "useBroadcastChannel": true,
+ "useBrowserLocation": true,
+ "useCached": true,
+ "useClipboard": true,
+ "useClipboardItems": true,
+ "useCloned": 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,
+ "useId": true,
+ "useIdle": true,
+ "useImage": true,
+ "useInfiniteScroll": true,
+ "useIntersectionObserver": true,
+ "useInterval": true,
+ "useIntervalFn": true,
+ "useKeyModifier": true,
+ "useLastChanged": true,
+ "useLink": true,
+ "useLocalStorage": true,
+ "useMagicKeys": true,
+ "useManualRefHistory": true,
+ "useMediaControls": true,
+ "useMediaQuery": true,
+ "useMemoize": true,
+ "useMemory": true,
+ "useModel": 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,
+ "useParentElement": true,
+ "usePerformanceObserver": true,
+ "usePermission": true,
+ "usePointer": true,
+ "usePointerLock": true,
+ "usePointerSwipe": true,
+ "usePreferredColorScheme": true,
+ "usePreferredContrast": true,
+ "usePreferredDark": true,
+ "usePreferredLanguages": true,
+ "usePreferredReducedMotion": true,
+ "usePrevious": 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,
+ "useSorted": true,
+ "useSpeechRecognition": true,
+ "useSpeechSynthesis": true,
+ "useStepper": true,
+ "useStorage": true,
+ "useStorageAsync": true,
+ "useStyleTag": true,
+ "useSupported": true,
+ "useSwipe": true,
+ "useTemplateRef": 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,
+ "useToNumber": true,
+ "useToString": 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,
+ "watchDeep": true,
+ "watchEffect": true,
+ "watchIgnorable": true,
+ "watchImmediate": true,
+ "watchOnce": true,
+ "watchPausable": true,
+ "watchPostEffect": true,
+ "watchSyncEffect": true,
+ "watchThrottled": true,
+ "watchTriggerable": true,
+ "watchWithFilter": true,
+ "whenever": true,
+ "ElMessage": true,
+ "ElTag": true
+ }
+}
diff --git a/.env b/.env
new file mode 100644
index 0000000..4200543
--- /dev/null
+++ b/.env
@@ -0,0 +1,25 @@
+# 【通用】环境变量
+
+# 版本号
+VITE_VERSION = 2.4.2.8
+
+# 端口号
+VITE_PORT = 3006
+
+# 网站地址前缀
+VITE_BASE_URL = /art-design-pro/
+
+# API 地址前缀
+VITE_API_URL = https://m1.apifoxmock.com/m1/6400575-6097373-default
+
+# 权限模式( frontend | backend )
+VITE_ACCESS_MODE = frontend
+
+# 跨域请求时是否携带 Cookie(开启前需确保后端支持)
+VITE_WITH_CREDENTIALS = false
+
+# 是否打开路由信息
+VITE_OPEN_ROUTE_INFO = false
+
+# 锁屏加密密钥
+VITE_LOCK_ENCRYPT_KEY = s3cur3k3y4adpro
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..7c8afd2
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,10 @@
+# 【开发】环境变量
+
+# 网站地址前缀
+VITE_BASE_URL = /
+
+# API 地址前缀
+VITE_API_URL = https://m1.apifoxmock.com/m1/6400575-6097373-default
+
+# Delete console
+VITE_DROP_CONSOLE = false
\ No newline at end of file
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..7edcd70
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,10 @@
+# 【生产】环境变量
+
+# 网站地址前缀
+VITE_BASE_URL = /art-design-pro/
+
+# API 地址前缀
+VITE_API_URL = https://m1.apifoxmock.com/m1/6400575-6097373-default
+
+# Delete console
+VITE_DROP_CONSOLE = true
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..866e8ee
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+*.html linguist-detectable=false
+*.vue linguist-detectable=true
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4536f78
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+node_modules
+.DS_Store
+dist
+dist-ssr
+*.local
+.cursorrules
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..9e96efc
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,3 @@
+/node_modules/*
+/dist/*
+/src/main.ts
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..f3d6ad5
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,20 @@
+{
+ "printWidth": 100,
+ "tabWidth": 2,
+ "useTabs": false,
+ "semi": false,
+ "vueIndentScriptAndStyle": true,
+ "singleQuote": true,
+ "quoteProps": "as-needed",
+ "bracketSpacing": true,
+ "trailingComma": "none",
+ "bracketSameLine": false,
+ "jsxSingleQuote": false,
+ "arrowParens": "always",
+ "insertPragma": false,
+ "requirePragma": false,
+ "proseWrap": "never",
+ "htmlWhitespaceSensitivity": "strict",
+ "endOfLine": "auto",
+ "rangeStart": 0
+}
diff --git a/.stylelintignore b/.stylelintignore
new file mode 100644
index 0000000..476ea45
--- /dev/null
+++ b/.stylelintignore
@@ -0,0 +1,9 @@
+dist
+node_modules
+public
+.husky
+.vscode
+
+src/components/Layout/MenuLeft/index.vue
+src/assets
+stats.html
\ No newline at end of file
diff --git a/.stylelintrc.cjs b/.stylelintrc.cjs
new file mode 100644
index 0000000..c6588f2
--- /dev/null
+++ b/.stylelintrc.cjs
@@ -0,0 +1,62 @@
+module.exports = {
+ // 继承推荐规范配置
+ extends: [
+ 'stylelint-config-standard',
+ 'stylelint-config-recommended-scss',
+ 'stylelint-config-recommended-vue/scss',
+ 'stylelint-config-html/vue',
+ 'stylelint-config-recess-order'
+ ],
+ // 指定不同文件对应的解析器
+ overrides: [
+ {
+ files: ['**/*.{vue,html}'],
+ customSyntax: 'postcss-html'
+ },
+ {
+ files: ['**/*.{css,scss}'],
+ customSyntax: 'postcss-scss'
+ }
+ ],
+ // 自定义规则
+ rules: {
+ 'import-notation': 'string', // 指定导入CSS文件的方式("string"|"url")
+ 'selector-class-pattern': null, // 选择器类名命名规则
+ 'custom-property-pattern': null, // 自定义属性命名规则
+ 'keyframes-name-pattern': null, // 动画帧节点样式命名规则
+ 'no-descending-specificity': null, // 允许无降序特异性
+ 'no-empty-source': null, // 允许空样式
+ // 允许 global 、export 、deep伪类
+ 'selector-pseudo-class-no-unknown': [
+ true,
+ {
+ ignorePseudoClasses: ['global', 'export', 'deep']
+ }
+ ],
+ // 允许未知属性
+ 'property-no-unknown': [
+ true,
+ {
+ ignoreProperties: []
+ }
+ ],
+ // 允许未知规则
+ 'at-rule-no-unknown': [
+ true,
+ {
+ ignoreAtRules: [
+ 'apply',
+ 'use',
+ 'mixin',
+ 'include',
+ 'extend',
+ 'each',
+ 'if',
+ 'else',
+ 'for',
+ 'while'
+ ]
+ }
+ ]
+ }
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..0f027bd
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "volar.inlayHints.eventArgumentInInlineHandlers": true
+}
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..68322de
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2025 SuperManTT
+
+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/README.md b/README.md
index 3613320..7fdaf4d 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,83 @@
-# art-design-pro-test
+English | [简体中文](./README.zh-CN.md)
+## About Art Design Pro
+
+As a developer, I needed to build admin management systems for multiple projects but found that traditional systems couldn't fully meet the requirements for user experience and visual design. Therefore, I created Art Design Pro, an open-source admin management solution focused on user experience and rapid development. Based on the ElementPlus design specifications, it has been visually optimized to provide a more beautiful and practical front-end interface, helping you easily build high-quality admin systems.
+
+## Official Website
+
+[Visit the official documentation](https://www.lingchen.kim/art-design-pro/docs/en/)
+
+## Demo Images
+
+### Light Theme
+
+
+
+
+
+### Dark Theme
+
+
+
+
+
+## Features
+
+- Uses the latest technology stack
+- Built-in common business component templates
+- Provides multiple theme modes and customizable themes
+- Beautiful UI design, excellent user experience, and attention to detail
+- System fully supports customization, meeting your personalized needs
+
+## Functionality
+
+- Rich theme switching
+- Global search
+- Lock screen
+- Multi-tabs
+- Global breadcrumbs
+- Multi-language support
+- Icon library
+- Rich text editor
+- Echarts charts
+- Utils toolkit
+- Network exception handling
+- Route-level authentication
+- Sidebar menu authentication
+- Authentication directives
+- Mobile adaptation
+- Excellent persistent storage solution
+- Local data storage validation
+- Code commit validation and formatting
+- Code commit standardization
+
+## Compatibility
+
+- Supports modern mainstream browsers such as Chrome, Safari, Firefox, etc.
+
+## Installation and Running
+
+```bash
+# Install dependencies
+pnpm install
+
+# If pnpm install fails, try using the following command to install dependencies
+pnpm install --ignore-scripts
+
+# Start local development environment
+pnpm dev
+
+# Build for production
+pnpm build
+```
+
+## Technical Support
+
+QQ Group: 821834289 (Click the link to join the group chat)
+
+## Donation
+
+If my project has been helpful to you, donations are welcome! Your support will be used to purchase tools like ChatGPT, Cursor, etc., to improve development efficiency and make the project even better. Thank you for your encouragement and support!
+
+
diff --git a/README.zh-CN.md b/README.zh-CN.md
new file mode 100644
index 0000000..e339797
--- /dev/null
+++ b/README.zh-CN.md
@@ -0,0 +1,88 @@
+简体中文 | [English](./README.md)
+
+## 关于 Art Design Pro
+
+作为一名开发者,我在多个项目中需要搭建后台管理系统,但发现传统系统在用户体验和视觉设计上不能完全满足需求。因此,我创建了 Art Design Pro,一款专注于用户体验和快速开发的开源后台管理解决方案。基于 ElementPlus 设计规范,进行了视觉上的精心优化,提供更美观、更实用的前端界面,帮助你轻松构建高质量的后台系统。
+
+## 官方网站
+
+[访问官方文档](https://www.lingchen.kim/art-design-pro/docs/)
+
+## 演示图
+
+### 浅色主题
+
+
+
+
+
+### 暗黑主题
+
+
+
+
+
+## 特点
+
+- 使用最新技术栈
+- 内置常用业务组件模版
+- 提供多种主题模式,可以自定义主题
+- 漂亮的 UI设计、极致的用户体验和细节处理
+- 系统全面支持自定义设置,满足您的个性化需求
+
+## 技术栈
+
+- 开发框架:Vue3、TypeScript、Vite、Element-Plus
+- 代码规范:Eslint、Prettier、Stylelint、Husky、Lint-staged、cz-git
+
+## 功能
+
+- 丰富主题切换
+- 全局搜索
+- 锁屏
+- 多标签页
+- 全局面包屑
+- 多语言
+- 图标库
+- 富文本编辑器
+- Echarts 图表
+- Utils工具包
+- 网络异常处理
+- 路由级别鉴权
+- 侧边栏菜单鉴权
+- 鉴权指令
+- 移动端适配
+- 优秀的持久化存储方案
+- 本地数据存储校验
+- 代码提交校验与格式化
+- 代码提交规范化
+
+## 兼容性
+
+- 支持 Chrome、Safari、Firefox 等现代主流浏览器。
+
+## 安装运行
+
+```bash
+# 安装依赖
+pnpm install
+
+# 如果 pnpm install 安装失败,尝试使用下面的命令安装依赖
+pnpm install --ignore-scripts
+
+# 本地开发环境启动
+pnpm dev
+
+# 生产环境打包
+pnpm build
+```
+
+## 技术支持
+
+QQ群:821834289(点击链接加入群聊)
+
+## 捐赠
+
+如果我的项目对你有所帮助,欢迎捐赠支持!你的支持将用于购买 ChatGPT、Cursor 等工具,以提升开发效率,让项目变得更好。感谢你的鼓励与支持!
+
+
diff --git a/commitlint.config.cjs b/commitlint.config.cjs
new file mode 100644
index 0000000..2d883ea
--- /dev/null
+++ b/commitlint.config.cjs
@@ -0,0 +1,97 @@
+/**
+ * commitlint 配置文件
+ * 文档
+ * https://commitlint.js.org/#/reference-rules
+ * https://cz-git.qbb.sh/zh/guide/
+ */
+
+module.exports = {
+ // 继承的规则
+ extends: ['@commitlint/config-conventional'],
+ // 自定义规则
+ rules: {
+ // 提交类型枚举,git提交type必须是以下类型
+ 'type-enum': [
+ 2,
+ 'always',
+ [
+ 'feat', // 新增功能
+ 'fix', // 修复缺陷
+ 'docs', // 文档变更
+ 'style', // 代码格式(不影响功能,例如空格、分号等格式修正)
+ 'refactor', // 代码重构(不包括 bug 修复、功能新增)
+ 'perf', // 性能优化
+ 'test', // 添加疏漏测试或已有测试改动
+ 'build', // 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等)
+ 'ci', // 修改 CI 配置、脚本
+ 'revert', // 回滚 commit
+ 'chore', // 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)
+ 'wip' // 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)
+ ]
+ ],
+ 'subject-case': [0] // subject大小写不做校验
+ },
+
+ prompt: {
+ messages: {
+ type: '选择你要提交的类型 :',
+ scope: '选择一个提交范围(可选):',
+ customScope: '请输入自定义的提交范围 :',
+ subject: '填写简短精炼的变更描述 :\n',
+ body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n',
+ breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n',
+ footerPrefixesSelect: '选择关联issue前缀(可选):',
+ customFooterPrefix: '输入自定义issue前缀 :',
+ footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
+ generatingByAI: '正在通过 AI 生成你的提交简短描述...',
+ generatedSelectByAI: '选择一个 AI 生成的简短描述:',
+ confirmCommit: '是否提交或修改commit ?'
+ },
+ // prettier-ignore
+ types: [
+ { value: "feat", name: "特性: 新增功能" },
+ { value: "fix", name: "修复: 修复缺陷" },
+ { value: "docs", name: "文档: 文档变更(更新README文件,或者注释)" },
+ { value: "style", name: "格式: 代码格式(空格、格式化、缺失的分号等)" },
+ { value: "refactor", name: "重构: 代码重构(不修复错误也不添加特性的代码更改)" },
+ { value: "perf", name: "性能: 性能优化" },
+ { value: "test", name: "测试: 添加疏漏测试或已有测试改动" },
+ { value: "build", name: "构建: 构建流程、外部依赖变更(如升级 npm 包、修改 vite 配置等)" },
+ { value: "ci", name: "集成: 修改 CI 配置、脚本" },
+ { value: "revert", name: "回退: 回滚 commit" },
+ { value: "chore", name: "其他: 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)" },
+ ],
+ useEmoji: true,
+ emojiAlign: 'center',
+ useAI: false,
+ aiNumber: 1,
+ themeColorCode: '',
+ scopes: [],
+ allowCustomScopes: true,
+ allowEmptyScopes: true,
+ customScopesAlign: 'bottom',
+ customScopesAlias: 'custom',
+ emptyScopesAlias: 'empty',
+ upperCaseSubject: false,
+ markBreakingChangeMode: false,
+ allowBreakingChanges: ['feat', 'fix'],
+ breaklineNumber: 100,
+ breaklineChar: '|',
+ skipQuestions: ['breaking', 'footerPrefix', 'footer'], // 跳过的步骤
+ issuePrefixes: [{ value: 'closed', name: 'closed: ISSUES has been processed' }],
+ customIssuePrefixAlign: 'top',
+ emptyIssuePrefixAlias: 'skip',
+ customIssuePrefixAlias: 'custom',
+ allowCustomIssuePrefix: true,
+ allowEmptyIssuePrefix: true,
+ confirmColorize: true,
+ maxHeaderLength: Infinity,
+ maxSubjectLength: Infinity,
+ minSubjectLength: 0,
+ scopeOverrides: undefined,
+ defaultBody: '',
+ defaultIssues: '',
+ defaultScope: '',
+ defaultSubject: ''
+ }
+}
diff --git a/components.d.ts b/components.d.ts
new file mode 100644
index 0000000..6ad3a14
--- /dev/null
+++ b/components.d.ts
@@ -0,0 +1,70 @@
+/* eslint-disable */
+// @ts-nocheck
+// Generated by unplugin-vue-components
+// Read more: https://github.com/vuejs/core/pull/3399
+export {}
+
+/* prettier-ignore */
+declare module 'vue' {
+ export interface GlobalComponents {
+ ArtBackToTop: typeof import('./src/components/core/base/ArtBackToTop.vue')['default']
+ ArtBarChart: typeof import('./src/components/core/charts/ArtBarChart.vue')['default']
+ ArtBarChartCard: typeof import('./src/components/core/cards/ArtBarChartCard.vue')['default']
+ ArtBasicBanner: typeof import('./src/components/core/banners/ArtBasicBanner.vue')['default']
+ ArtBreadcrumb: typeof import('./src/components/core/layouts/art-breadcrumb/index.vue')['default']
+ ArtButtonMore: typeof import('./src/components/core/forms/ArtButtonMore.vue')['default']
+ ArtButtonTable: typeof import('./src/components/core/forms/ArtButtonTable.vue')['default']
+ ArtCardBanner: typeof import('./src/components/core/banners/ArtCardBanner.vue')['default']
+ ArtChatWindow: typeof import('./src/components/core/layouts/art-chat-window/index.vue')['default']
+ ArtCutterImg: typeof import('./src/components/core/media/ArtCutterImg.vue')['default']
+ ArtDataListCard: typeof import('./src/components/core/cards/ArtDataListCard.vue')['default']
+ ArtDonutChartCard: typeof import('./src/components/core/cards/ArtDonutChartCard.vue')['default']
+ ArtDragVerify: typeof import('./src/components/core/forms/ArtDragVerify.vue')['default']
+ ArtDualBarCompareChart: typeof import('./src/components/core/charts/ArtDualBarCompareChart.vue')['default']
+ ArtExcelExport: typeof import('./src/components/core/forms/ArtExcelExport.vue')['default']
+ ArtExcelImport: typeof import('./src/components/core/forms/ArtExcelImport.vue')['default']
+ ArtException: typeof import('./src/components/core/views/exception/ArtException.vue')['default']
+ ArtFastEnter: typeof import('./src/components/core/layouts/art-fast-enter/index.vue')['default']
+ ArtFestivalTextScroll: typeof import('./src/components/core/text-effect/ArtFestivalTextScroll.vue')['default']
+ ArtFireworksEffect: typeof import('./src/components/core/layouts/art-fireworks-effect/index.vue')['default']
+ ArtFormInput: typeof import('./src/components/core/forms/ArtFormInput.vue')['default']
+ ArtFormSelect: typeof import('./src/components/core/forms/ArtFormSelect.vue')['default']
+ ArtGlobalSearch: typeof import('./src/components/core/layouts/art-global-search/index.vue')['default']
+ ArtHBarChart: typeof import('./src/components/core/charts/ArtHBarChart.vue')['default']
+ ArtHeaderBar: typeof import('./src/components/core/layouts/art-header-bar/index.vue')['default']
+ ArtHorizontalMenu: typeof import('./src/components/core/layouts/art-menus/art-horizontal-menu/index.vue')['default']
+ ArtIconSelector: typeof import('./src/components/core/base/ArtIconSelector.vue')['default']
+ ArtImageCard: typeof import('./src/components/core/cards/ArtImageCard.vue')['default']
+ ArtKLineChart: typeof import('./src/components/core/charts/ArtKLineChart.vue')['default']
+ ArtLineChart: typeof import('./src/components/core/charts/ArtLineChart.vue')['default']
+ ArtLineChartCard: typeof import('./src/components/core/cards/ArtLineChartCard.vue')['default']
+ ArtMapChart: typeof import('./src/components/core/charts/ArtMapChart.vue')['default']
+ ArtMenuRight: typeof import('./src/components/core/others/ArtMenuRight.vue')['default']
+ ArtMixedMenu: typeof import('./src/components/core/layouts/art-menus/art-mixed-menu/index.vue')['default']
+ ArtNetwork: typeof import('./src/components/core/base/ArtNetwork.vue')['default']
+ ArtNotification: typeof import('./src/components/core/layouts/art-notification/index.vue')['default']
+ ArtPageContent: typeof import('./src/components/core/layouts/art-page-content/index.vue')['default']
+ ArtProgressCard: typeof import('./src/components/core/cards/ArtProgressCard.vue')['default']
+ ArtRadarChart: typeof import('./src/components/core/charts/ArtRadarChart.vue')['default']
+ ArtRingChart: typeof import('./src/components/core/charts/ArtRingChart.vue')['default']
+ ArtScatterChart: typeof import('./src/components/core/charts/ArtScatterChart.vue')['default']
+ ArtScreenLock: typeof import('./src/components/core/layouts/art-screen-lock/index.vue')['default']
+ ArtSettingsPanel: typeof import('./src/components/core/layouts/art-settings-panel/index.vue')['default']
+ ArtSidebarMenu: typeof import('./src/components/core/layouts/art-menus/art-sidebar-menu/index.vue')['default']
+ ArtStatsCard: typeof import('./src/components/core/cards/ArtStatsCard.vue')['default']
+ ArtTable: typeof import('./src/components/core/tables/ArtTable.vue')['default']
+ ArtTableBar: typeof import('./src/components/core/tables/ArtTableBar.vue')['default']
+ ArtTextScroll: typeof import('./src/components/core/text-effect/ArtTextScroll.vue')['default']
+ ArtTimelineListCard: typeof import('./src/components/core/cards/ArtTimelineListCard.vue')['default']
+ ArtVideoPlayer: typeof import('./src/components/core/media/ArtVideoPlayer.vue')['default']
+ ArtWangEditor: typeof import('./src/components/core/forms/ArtWangEditor.vue')['default']
+ ArtWatermark: typeof import('./src/components/core/others/ArtWatermark.vue')['default']
+ ArtWorkTab: typeof import('./src/components/core/layouts/art-work-tab/index.vue')['default']
+ BannerWidget: typeof import('./src/components/core/BannerWidget.vue')['default']
+ HorizontalSubmenu: typeof import('./src/components/core/layouts/art-menus/art-horizontal-menu/widget/HorizontalSubmenu.vue')['default']
+ LoginLeftView: typeof import('./src/components/core/views/login/LoginLeftView.vue')['default']
+ RouterLink: typeof import('vue-router')['RouterLink']
+ RouterView: typeof import('vue-router')['RouterView']
+ SidebarSubmenu: typeof import('./src/components/core/layouts/art-menus/art-sidebar-menu/widget/SidebarSubmenu.vue')['default']
+ }
+}
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000..2e5dfb8
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,81 @@
+// 从 URL 和路径模块中导入必要的功能
+import fs from 'fs'
+import path, { dirname } from 'path'
+import { fileURLToPath } from 'url'
+
+// 从 ESLint 插件中导入推荐配置
+import pluginJs from '@eslint/js'
+import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
+import pluginVue from 'eslint-plugin-vue'
+import globals from 'globals'
+import tseslint from 'typescript-eslint'
+
+// 使用 import.meta.url 获取当前模块的路径
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = dirname(__filename)
+
+// 读取 .auto-import.json 文件的内容,并将其解析为 JSON 对象
+const autoImportConfig = JSON.parse(
+ fs.readFileSync(path.resolve(__dirname, '.auto-import.json'), 'utf-8')
+)
+
+export default [
+ // 指定文件匹配规则
+ {
+ files: ['**/*.{js,mjs,cjs,ts,vue}']
+ },
+ // 指定全局变量和环境
+ {
+ languageOptions: {
+ globals: {
+ ...globals.browser,
+ ...globals.node
+ }
+ }
+ },
+ // 扩展配置
+ pluginJs.configs.recommended,
+ ...tseslint.configs.recommended,
+ ...pluginVue.configs['flat/essential'],
+ // 自定义规则
+ {
+ // 针对所有 JavaScript、TypeScript 和 Vue 文件应用以下配置
+ files: ['**/*.{js,mjs,cjs,ts,vue}'],
+
+ languageOptions: {
+ globals: {
+ // 合并从 autoImportConfig 中读取的全局变量配置
+ ...autoImportConfig.globals
+ }
+ },
+ rules: {
+ quotes: ['error', 'single'], // 使用单引号
+ semi: ['error', 'never'], // 语句末尾不加分号
+ 'no-var': 'error', // 要求使用 let 或 const 而不是 var
+ '@typescript-eslint/no-explicit-any': 'off', // 禁用 any 检查
+ 'vue/multi-word-component-names': 'off', // 禁用对 Vue 组件名称的多词要求检查
+ 'no-multiple-empty-lines': ['warn', { max: 1 }], // 不允许多个空行
+ 'no-unexpected-multiline': 'error' // 禁止空余的多行
+ }
+ },
+ // vue 规则
+ {
+ files: ['**/*.vue'],
+ languageOptions: {
+ parserOptions: { parser: tseslint.parser }
+ }
+ },
+ // 忽略文件
+ {
+ ignores: [
+ 'node_modules',
+ 'dist',
+ 'public',
+ '.vscode/**',
+ 'src/assets/**',
+ 'src/utils/console.ts'
+ ]
+ },
+ // prettier 配置
+ eslintPluginPrettierRecommended
+]
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..51a88b7
--- /dev/null
+++ b/index.html
@@ -0,0 +1,18 @@
+
+
+
+ Art Design Pro
+
+
+
+
+
+
+
+
+
+
+
diff --git a/npminstall-debug.log b/npminstall-debug.log
new file mode 100644
index 0000000..5a7ecef
--- /dev/null
+++ b/npminstall-debug.log
@@ -0,0 +1,205 @@
+{
+ root: '/Users/tt/Downloads/art-design-pro',
+ registry: 'https://registry.npmmirror.com',
+ pkgs: [
+ {
+ name: '',
+ version: '/Users/tt/Downloads/art-design-pro/@types/vite/client',
+ type: 'directory',
+ alias: undefined,
+ arg: [Result]
+ }
+ ],
+ production: false,
+ cacheStrict: false,
+ cacheDir: '/Users/tt/.npminstall_tarball',
+ env: {
+ npm_config_registry: 'https://registry.npmmirror.com',
+ npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=/Users/tt/.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","--save-dev","@types/vite/client"],"original":["--fix-bug-versions","--china","--userconfig=/Users/tt/.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","--save-dev","@types/vite/client"]}',
+ npm_config_user_agent: 'npminstall/7.12.0 npm/? node/v18.20.4 darwin x64',
+ npm_config_cache: '/Users/tt/.npminstall_tarball',
+ NODE: '/Users/tt/.nvm/versions/node/v18.20.4/bin/node',
+ npm_node_execpath: '/Users/tt/.nvm/versions/node/v18.20.4/bin/node',
+ npm_execpath: '/usr/local/lib/node_modules/cnpm/node_modules/npminstall/bin/install.js',
+ npm_config_userconfig: '/Users/tt/.cnpmrc',
+ npm_config_disturl: 'https://cdn.npmmirror.com/binaries/node',
+ npm_config_r: 'https://registry.npmmirror.com',
+ COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
+ EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
+ NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+ NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+ PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
+ CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
+ OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
+ CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
+ ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
+ ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
+ SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
+ SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
+ NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
+ PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+ PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+ PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
+ SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
+ SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
+ RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
+ RE2_DOWNLOAD_SKIP_PATH: 'true',
+ PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
+ npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
+ npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
+ npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
+ npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
+ npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
+ npm_rootpath: '/Users/tt/Downloads/art-design-pro',
+ INIT_CWD: '/Users/tt/Downloads/art-design-pro'
+ },
+ binaryMirrors: {
+ ENVS: {
+ COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
+ EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
+ NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+ NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
+ PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
+ CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
+ OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
+ CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
+ ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
+ ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
+ SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
+ SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
+ NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
+ PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+ PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
+ PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
+ SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
+ SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
+ RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
+ RE2_DOWNLOAD_SKIP_PATH: 'true',
+ PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
+ npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
+ npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
+ npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
+ npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
+ npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs'
+ },
+ '@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' },
+ sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] },
+ '@tensorflow/tfjs-node': {
+ replaceHostFiles: [Array],
+ replaceHostRegExpMap: [Object],
+ replaceHostMap: [Object]
+ },
+ cypress: {
+ host: 'https://cdn.npmmirror.com/binaries/cypress',
+ newPlatforms: [Object]
+ },
+ 'utf-8-validate': {
+ host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}'
+ },
+ xprofiler: {
+ remote_path: './xprofiler/v{version}/',
+ host: 'https://cdn.npmmirror.com/binaries'
+ },
+ leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' },
+ couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' },
+ gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' },
+ sqlite3: {
+ host: 'https://cdn.npmmirror.com/binaries/sqlite3',
+ remote_path: 'v{version}'
+ },
+ '@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' },
+ grpc: {
+ host: 'https://cdn.npmmirror.com/binaries',
+ remote_path: '{name}/v{version}'
+ },
+ 'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' },
+ wrtc: {
+ host: 'https://cdn.npmmirror.com/binaries',
+ remote_path: '{name}/v{version}'
+ },
+ fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' },
+ nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' },
+ canvas: { host: 'https://cdn.npmmirror.com/binaries/canvas' },
+ 'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' },
+ 'flow-bin': {
+ replaceHost: 'https://github.com/facebook/flow/releases/download/v',
+ host: 'https://cdn.npmmirror.com/binaries/flow/v'
+ },
+ 'jpegtran-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin'
+ },
+ 'cwebp-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/cwebp-bin'
+ },
+ 'zopflipng-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin'
+ },
+ 'optipng-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/optipng-bin'
+ },
+ mozjpeg: {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin'
+ },
+ gifsicle: {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin'
+ },
+ 'pngquant-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/pngquant-bin',
+ replaceHostMap: [Object]
+ },
+ 'pngcrush-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin'
+ },
+ 'jpeg-recompress-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin'
+ },
+ 'advpng-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/advpng-bin'
+ },
+ 'pngout-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/pngout-bin'
+ },
+ 'jpegoptim-bin': {
+ replaceHost: [Array],
+ host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin'
+ },
+ argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' },
+ 'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' },
+ 'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' },
+ 'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' },
+ 'libpg-query': { host: 'https://cdn.npmmirror.com/binaries' }
+ },
+ forbiddenLicenses: null,
+ flatten: false,
+ proxy: undefined,
+ prune: false,
+ disableFallbackStore: false,
+ workspacesMap: Map(0) {},
+ enableWorkspace: false,
+ workspaceRoot: '/Users/tt/Downloads/art-design-pro',
+ isWorkspaceRoot: true,
+ isWorkspacePackage: false,
+ offline: false,
+ strictSSL: true,
+ ignoreScripts: false,
+ foregroundScripts: false,
+ ignoreOptionalDependencies: false,
+ detail: false,
+ forceLinkLatest: false,
+ trace: false,
+ engineStrict: false,
+ registryOnly: false,
+ client: false,
+ autoFixVersion: [Function: autoFixVersion]
+}
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..f4868c2
--- /dev/null
+++ b/package.json
@@ -0,0 +1,115 @@
+{
+ "name": "art-design-pro",
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite --open",
+ "build": "vue-tsc --noEmit && vite build",
+ "serve": "vite preview",
+ "lint": "eslint",
+ "fix": "eslint --fix",
+ "lint:prettier": "prettier --write \"**/*.{js,cjs,ts,json,tsx,css,less,scss,vue,html,md}\"",
+ "lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix",
+ "lint:lint-staged": "lint-staged",
+ "prepare": "husky",
+ "commit": "git-cz"
+ },
+ "config": {
+ "commitizen": {
+ "path": "node_modules/cz-git"
+ }
+ },
+ "lint-staged": {
+ "*.{js,ts,mjs,mts,tsx}": [
+ "eslint --fix",
+ "prettier --write"
+ ],
+ "*.{cjs,json,jsonc}": [
+ "prettier --write"
+ ],
+ "*.vue": [
+ "eslint --fix",
+ "stylelint --fix --allow-empty-input",
+ "prettier --write"
+ ],
+ "*.{html,htm}": [
+ "prettier --write"
+ ],
+ "*.{scss,css,less}": [
+ "stylelint --fix --allow-empty-input",
+ "prettier --write"
+ ],
+ "*.{md,mdx}": [
+ "prettier --write"
+ ],
+ "*.{yaml,yml}": [
+ "prettier --write"
+ ]
+ },
+ "dependencies": {
+ "@element-plus/icons-vue": "^2.3.1",
+ "@vue/reactivity": "^3.4.35",
+ "@vueuse/core": "^11.0.0",
+ "@wangeditor/editor": "^5.1.23",
+ "@wangeditor/editor-for-vue": "next",
+ "axios": "^1.7.5",
+ "crypto-js": "^4.2.0",
+ "echarts": "^5.4.0",
+ "element-plus": "^2.8.0",
+ "file-saver": "^2.0.5",
+ "highlight.js": "^11.10.0",
+ "md-editor-v3": "^4.17.0",
+ "mitt": "^3.0.1",
+ "nprogress": "^0.2.0",
+ "pinia": "^3.0.2",
+ "pinia-plugin-persistedstate": "^4.3.0",
+ "qrcode.vue": "^3.6.0",
+ "vue": "^3.5.12",
+ "vue-draggable-plus": "^0.6.0",
+ "vue-i18n": "^9.14.0",
+ "vue-router": "^4.4.2",
+ "vue3-count-to": "^1.1.2",
+ "xgplayer": "^3.0.20",
+ "xlsx": "^0.18.5"
+ },
+ "devDependencies": {
+ "@commitlint/cli": "^19.4.1",
+ "@commitlint/config-conventional": "^19.4.1",
+ "@eslint/js": "^9.9.1",
+ "@types/node": "^22.1.0",
+ "@typescript-eslint/eslint-plugin": "^8.3.0",
+ "@typescript-eslint/parser": "^8.3.0",
+ "@vitejs/plugin-vue": "^5.2.1",
+ "@vue/compiler-sfc": "^3.0.5",
+ "commitizen": "^4.3.0",
+ "cz-git": "^1.11.1",
+ "eslint": "^9.9.1",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-prettier": "^5.2.1",
+ "eslint-plugin-vue": "^9.27.0",
+ "globals": "^15.9.0",
+ "husky": "^9.1.5",
+ "lint-staged": "^15.5.2",
+ "prettier": "^3.5.3",
+ "rollup-plugin-visualizer": "^5.12.0",
+ "sass": "^1.81.0",
+ "stylelint": "^16.20.0",
+ "stylelint-config-html": "^1.1.0",
+ "stylelint-config-recess-order": "^4.6.0",
+ "stylelint-config-recommended-scss": "^14.1.0",
+ "stylelint-config-recommended-vue": "^1.5.0",
+ "stylelint-config-standard": "^36.0.1",
+ "terser": "^5.36.0",
+ "typescript": "~5.6.3",
+ "typescript-eslint": "^8.9.0",
+ "unplugin-auto-import": "^0.18.3",
+ "unplugin-vue-components": "^0.27.4",
+ "vite": "^6.1.0",
+ "vite-plugin-compression": "^0.5.1",
+ "vite-plugin-imagemin": "^0.6.1",
+ "vite-plugin-vue-devtools": "^7.7.6",
+ "vue-demi": "^0.14.9",
+ "vue-img-cutter": "^3.0.5",
+ "vue-tsc": "~2.1.6"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..87eb3ab
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,13801 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+ .:
+ dependencies:
+ '@element-plus/icons-vue':
+ specifier: ^2.3.1
+ version: 2.3.1(vue@3.5.15(typescript@5.6.3))
+ '@vue/reactivity':
+ specifier: ^3.4.35
+ version: 3.5.13
+ '@vueuse/core':
+ specifier: ^11.0.0
+ version: 11.3.0(vue@3.5.15(typescript@5.6.3))
+ '@wangeditor/editor':
+ specifier: ^5.1.23
+ version: 5.1.23
+ '@wangeditor/editor-for-vue':
+ specifier: next
+ version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.15(typescript@5.6.3))
+ axios:
+ specifier: ^1.7.5
+ version: 1.7.8
+ crypto-js:
+ specifier: ^4.2.0
+ version: 4.2.0
+ echarts:
+ specifier: ^5.4.0
+ version: 5.5.1
+ element-plus:
+ specifier: ^2.8.0
+ version: 2.9.11(vue@3.5.15(typescript@5.6.3))
+ file-saver:
+ specifier: ^2.0.5
+ version: 2.0.5
+ highlight.js:
+ specifier: ^11.10.0
+ version: 11.10.0
+ md-editor-v3:
+ specifier: ^4.17.0
+ version: 4.21.3(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(vue@3.5.15(typescript@5.6.3))
+ mitt:
+ specifier: ^3.0.1
+ version: 3.0.1
+ nprogress:
+ specifier: ^0.2.0
+ version: 0.2.0
+ pinia:
+ specifier: ^3.0.2
+ version: 3.0.2(typescript@5.6.3)(vue@3.5.15(typescript@5.6.3))
+ pinia-plugin-persistedstate:
+ specifier: ^4.3.0
+ version: 4.3.0(pinia@3.0.2(typescript@5.6.3)(vue@3.5.15(typescript@5.6.3)))
+ qrcode.vue:
+ specifier: ^3.6.0
+ version: 3.6.0(vue@3.5.15(typescript@5.6.3))
+ vue:
+ specifier: ^3.5.12
+ version: 3.5.15(typescript@5.6.3)
+ vue-draggable-plus:
+ specifier: ^0.6.0
+ version: 0.6.0(@types/sortablejs@1.15.8)
+ vue-i18n:
+ specifier: ^9.14.0
+ version: 9.14.1(vue@3.5.15(typescript@5.6.3))
+ vue-router:
+ specifier: ^4.4.2
+ version: 4.5.0(vue@3.5.15(typescript@5.6.3))
+ vue3-count-to:
+ specifier: ^1.1.2
+ version: 1.1.2(vue@3.5.15(typescript@5.6.3))
+ xgplayer:
+ specifier: ^3.0.20
+ version: 3.0.20(core-js@3.39.0)
+ xlsx:
+ specifier: ^0.18.5
+ version: 0.18.5
+ devDependencies:
+ '@commitlint/cli':
+ specifier: ^19.4.1
+ version: 19.6.0(@types/node@22.10.0)(typescript@5.6.3)
+ '@commitlint/config-conventional':
+ specifier: ^19.4.1
+ version: 19.6.0
+ '@eslint/js':
+ specifier: ^9.9.1
+ version: 9.15.0
+ '@types/node':
+ specifier: ^22.1.0
+ version: 22.10.0
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^8.3.0
+ version: 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/parser':
+ specifier: ^8.3.0
+ version: 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ '@vitejs/plugin-vue':
+ specifier: ^5.2.1
+ version: 5.2.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))(vue@3.5.15(typescript@5.6.3))
+ '@vue/compiler-sfc':
+ specifier: ^3.0.5
+ version: 3.5.13
+ commitizen:
+ specifier: ^4.3.0
+ version: 4.3.1(@types/node@22.10.0)(typescript@5.6.3)
+ cz-git:
+ specifier: ^1.11.1
+ version: 1.11.1
+ eslint:
+ specifier: ^9.9.1
+ version: 9.15.0(jiti@2.4.2)
+ eslint-config-prettier:
+ specifier: ^9.1.0
+ version: 9.1.0(eslint@9.15.0(jiti@2.4.2))
+ eslint-plugin-prettier:
+ specifier: ^5.2.1
+ version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.2)))(eslint@9.15.0(jiti@2.4.2))(prettier@3.5.3)
+ eslint-plugin-vue:
+ specifier: ^9.27.0
+ version: 9.31.0(eslint@9.15.0(jiti@2.4.2))
+ globals:
+ specifier: ^15.9.0
+ version: 15.12.0
+ husky:
+ specifier: ^9.1.5
+ version: 9.1.7
+ lint-staged:
+ specifier: ^15.5.2
+ version: 15.5.2
+ prettier:
+ specifier: ^3.5.3
+ version: 3.5.3
+ rollup-plugin-visualizer:
+ specifier: ^5.12.0
+ version: 5.12.0(rollup@4.34.8)
+ sass:
+ specifier: ^1.81.0
+ version: 1.81.0
+ stylelint:
+ specifier: ^16.20.0
+ version: 16.20.0(typescript@5.6.3)
+ stylelint-config-html:
+ specifier: ^1.1.0
+ version: 1.1.0(postcss-html@1.7.0)(stylelint@16.20.0(typescript@5.6.3))
+ stylelint-config-recess-order:
+ specifier: ^4.6.0
+ version: 4.6.0(stylelint@16.20.0(typescript@5.6.3))
+ stylelint-config-recommended-scss:
+ specifier: ^14.1.0
+ version: 14.1.0(postcss@8.4.49)(stylelint@16.20.0(typescript@5.6.3))
+ stylelint-config-recommended-vue:
+ specifier: ^1.5.0
+ version: 1.5.0(postcss-html@1.7.0)(stylelint@16.20.0(typescript@5.6.3))
+ stylelint-config-standard:
+ specifier: ^36.0.1
+ version: 36.0.1(stylelint@16.20.0(typescript@5.6.3))
+ terser:
+ specifier: ^5.36.0
+ version: 5.36.0
+ typescript:
+ specifier: ~5.6.3
+ version: 5.6.3
+ typescript-eslint:
+ specifier: ^8.9.0
+ version: 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ unplugin-auto-import:
+ specifier: ^0.18.3
+ version: 0.18.5(@nuxt/kit@3.17.4)(@vueuse/core@11.3.0(vue@3.5.15(typescript@5.6.3)))(rollup@4.34.8)
+ unplugin-vue-components:
+ specifier: ^0.27.4
+ version: 0.27.4(@babel/parser@7.27.5)(@nuxt/kit@3.17.4)(rollup@4.34.8)(vue@3.5.15(typescript@5.6.3))
+ vite:
+ specifier: ^6.1.0
+ version: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+ vite-plugin-compression:
+ specifier: ^0.5.1
+ version: 0.5.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))
+ vite-plugin-imagemin:
+ specifier: ^0.6.1
+ version: 0.6.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))
+ vite-plugin-vue-devtools:
+ specifier: ^7.7.6
+ version: 7.7.6(@nuxt/kit@3.17.4)(rollup@4.34.8)(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))(vue@3.5.15(typescript@5.6.3))
+ vue-demi:
+ specifier: ^0.14.9
+ version: 0.14.10(vue@3.5.15(typescript@5.6.3))
+ vue-img-cutter:
+ specifier: ^3.0.5
+ version: 3.0.7(typescript@5.6.3)
+ vue-tsc:
+ specifier: ~2.1.6
+ version: 2.1.10(typescript@5.6.3)
+
+packages:
+ '@ampproject/remapping@2.3.0':
+ resolution:
+ {
+ integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@antfu/utils@0.7.10':
+ resolution:
+ {
+ integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==
+ }
+
+ '@babel/code-frame@7.26.2':
+ resolution:
+ {
+ integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/code-frame@7.27.1':
+ resolution:
+ {
+ integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/compat-data@7.27.5':
+ resolution:
+ {
+ integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/core@7.27.4':
+ resolution:
+ {
+ integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/generator@7.27.5':
+ resolution:
+ {
+ integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ resolution:
+ {
+ integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-compilation-targets@7.27.2':
+ resolution:
+ {
+ integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-create-class-features-plugin@7.27.1':
+ resolution:
+ {
+ integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-member-expression-to-functions@7.27.1':
+ resolution:
+ {
+ integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-module-imports@7.27.1':
+ resolution:
+ {
+ integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-module-transforms@7.27.3':
+ resolution:
+ {
+ integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ resolution:
+ {
+ integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-plugin-utils@7.27.1':
+ resolution:
+ {
+ integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-replace-supers@7.27.1':
+ resolution:
+ {
+ integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ resolution:
+ {
+ integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-string-parser@7.25.9':
+ resolution:
+ {
+ integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-string-parser@7.27.1':
+ resolution:
+ {
+ integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution:
+ {
+ integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution:
+ {
+ integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-validator-option@7.27.1':
+ resolution:
+ {
+ integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helpers@7.27.6':
+ resolution:
+ {
+ integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/parser@7.26.2':
+ resolution:
+ {
+ integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==
+ }
+ engines: { node: '>=6.0.0' }
+ hasBin: true
+
+ '@babel/parser@7.27.3':
+ resolution:
+ {
+ integrity: sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==
+ }
+ engines: { node: '>=6.0.0' }
+ hasBin: true
+
+ '@babel/parser@7.27.5':
+ resolution:
+ {
+ integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==
+ }
+ engines: { node: '>=6.0.0' }
+ hasBin: true
+
+ '@babel/plugin-proposal-decorators@7.27.1':
+ resolution:
+ {
+ integrity: sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-decorators@7.27.1':
+ resolution:
+ {
+ integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-attributes@7.27.1':
+ resolution:
+ {
+ integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-meta@7.10.4':
+ resolution:
+ {
+ integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-jsx@7.27.1':
+ resolution:
+ {
+ integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-typescript@7.27.1':
+ resolution:
+ {
+ integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typescript@7.27.1':
+ resolution:
+ {
+ integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/runtime@7.26.0':
+ resolution:
+ {
+ integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/template@7.27.2':
+ resolution:
+ {
+ integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/traverse@7.27.4':
+ resolution:
+ {
+ integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/types@7.26.0':
+ resolution:
+ {
+ integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/types@7.27.3':
+ resolution:
+ {
+ integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/types@7.27.6':
+ resolution:
+ {
+ integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@codemirror/autocomplete@6.18.3':
+ resolution:
+ {
+ integrity: sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==
+ }
+ peerDependencies:
+ '@codemirror/language': ^6.0.0
+ '@codemirror/state': ^6.0.0
+ '@codemirror/view': ^6.0.0
+ '@lezer/common': ^1.0.0
+
+ '@codemirror/commands@6.7.1':
+ resolution:
+ {
+ integrity: sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==
+ }
+
+ '@codemirror/lang-angular@0.1.3':
+ resolution:
+ {
+ integrity: sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==
+ }
+
+ '@codemirror/lang-cpp@6.0.2':
+ resolution:
+ {
+ integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==
+ }
+
+ '@codemirror/lang-css@6.3.1':
+ resolution:
+ {
+ integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==
+ }
+
+ '@codemirror/lang-go@6.0.1':
+ resolution:
+ {
+ integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==
+ }
+
+ '@codemirror/lang-html@6.4.9':
+ resolution:
+ {
+ integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==
+ }
+
+ '@codemirror/lang-java@6.0.1':
+ resolution:
+ {
+ integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==
+ }
+
+ '@codemirror/lang-javascript@6.2.2':
+ resolution:
+ {
+ integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==
+ }
+
+ '@codemirror/lang-json@6.0.1':
+ resolution:
+ {
+ integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==
+ }
+
+ '@codemirror/lang-less@6.0.2':
+ resolution:
+ {
+ integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==
+ }
+
+ '@codemirror/lang-liquid@6.2.2':
+ resolution:
+ {
+ integrity: sha512-7Dm841fk37+JQW6j2rI1/uGkJyESrjzyhiIkaLjbbR0U6aFFQvMrJn35WxQreRMADMhzkyVkZM4467OR7GR8nQ==
+ }
+
+ '@codemirror/lang-markdown@6.3.1':
+ resolution:
+ {
+ integrity: sha512-y3sSPuQjBKZQbQwe3ZJKrSW6Silyl9PnrU/Mf0m2OQgIlPoSYTtOvEL7xs94SVMkb8f4x+SQFnzXPdX4Wk2lsg==
+ }
+
+ '@codemirror/lang-php@6.0.1':
+ resolution:
+ {
+ integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==
+ }
+
+ '@codemirror/lang-python@6.1.6':
+ resolution:
+ {
+ integrity: sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==
+ }
+
+ '@codemirror/lang-rust@6.0.1':
+ resolution:
+ {
+ integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==
+ }
+
+ '@codemirror/lang-sass@6.0.2':
+ resolution:
+ {
+ integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==
+ }
+
+ '@codemirror/lang-sql@6.8.0':
+ resolution:
+ {
+ integrity: sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==
+ }
+
+ '@codemirror/lang-vue@0.1.3':
+ resolution:
+ {
+ integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==
+ }
+
+ '@codemirror/lang-wast@6.0.2':
+ resolution:
+ {
+ integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==
+ }
+
+ '@codemirror/lang-xml@6.1.0':
+ resolution:
+ {
+ integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==
+ }
+
+ '@codemirror/lang-yaml@6.1.1':
+ resolution:
+ {
+ integrity: sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==
+ }
+
+ '@codemirror/language-data@6.5.1':
+ resolution:
+ {
+ integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==
+ }
+
+ '@codemirror/language@6.10.4':
+ resolution:
+ {
+ integrity: sha512-qjt7Wn/nxGuI278GYVlqE5V93Xn8ZQwzqZtgS0FaWr7K2yWgd5/FlBNqNi4jtUvBVvWJzAGfnggIlpyjTOaF4A==
+ }
+
+ '@codemirror/legacy-modes@6.4.2':
+ resolution:
+ {
+ integrity: sha512-HsvWu08gOIIk303eZQCal4H4t65O/qp1V4ul4zVa3MHK5FJ0gz3qz3O55FIkm+aQUcshUOjBx38t2hPiJwW5/g==
+ }
+
+ '@codemirror/lint@6.8.3':
+ resolution:
+ {
+ integrity: sha512-GSGfKxCo867P7EX1k2LoCrjuQFeqVgPGRRsSl4J4c0KMkD+k1y6WYvTQkzv0iZ8JhLJDujEvlnMchv4CZQLh3Q==
+ }
+
+ '@codemirror/search@6.5.8':
+ resolution:
+ {
+ integrity: sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==
+ }
+
+ '@codemirror/state@6.4.1':
+ resolution:
+ {
+ integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==
+ }
+
+ '@codemirror/view@6.35.0':
+ resolution:
+ {
+ integrity: sha512-I0tYy63q5XkaWsJ8QRv5h6ves7kvtrBWjBcnf/bzohFJQc5c14a1AQRdE8QpPF9eMp5Mq2FMm59TCj1gDfE7kw==
+ }
+
+ '@commitlint/cli@19.6.0':
+ resolution:
+ {
+ integrity: sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w==
+ }
+ engines: { node: '>=v18' }
+ hasBin: true
+
+ '@commitlint/config-conventional@19.6.0':
+ resolution:
+ {
+ integrity: sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/config-validator@19.5.0':
+ resolution:
+ {
+ integrity: sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/ensure@19.5.0':
+ resolution:
+ {
+ integrity: sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/execute-rule@19.5.0':
+ resolution:
+ {
+ integrity: sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/format@19.5.0':
+ resolution:
+ {
+ integrity: sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/is-ignored@19.6.0':
+ resolution:
+ {
+ integrity: sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/lint@19.6.0':
+ resolution:
+ {
+ integrity: sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/load@19.5.0':
+ resolution:
+ {
+ integrity: sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/message@19.5.0':
+ resolution:
+ {
+ integrity: sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/parse@19.5.0':
+ resolution:
+ {
+ integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/read@19.5.0':
+ resolution:
+ {
+ integrity: sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/resolve-extends@19.5.0':
+ resolution:
+ {
+ integrity: sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/rules@19.6.0':
+ resolution:
+ {
+ integrity: sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/to-lines@19.5.0':
+ resolution:
+ {
+ integrity: sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/top-level@19.5.0':
+ resolution:
+ {
+ integrity: sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==
+ }
+ engines: { node: '>=v18' }
+
+ '@commitlint/types@19.5.0':
+ resolution:
+ {
+ integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==
+ }
+ engines: { node: '>=v18' }
+
+ '@csstools/css-parser-algorithms@3.0.4':
+ resolution:
+ {
+ integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==
+ }
+ engines: { node: '>=18' }
+ peerDependencies:
+ '@csstools/css-tokenizer': ^3.0.3
+
+ '@csstools/css-tokenizer@3.0.3':
+ resolution:
+ {
+ integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==
+ }
+ engines: { node: '>=18' }
+
+ '@csstools/media-query-list-parser@4.0.3':
+ resolution:
+ {
+ integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==
+ }
+ engines: { node: '>=18' }
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.5
+ '@csstools/css-tokenizer': ^3.0.4
+
+ '@csstools/selector-specificity@5.0.0':
+ resolution:
+ {
+ integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==
+ }
+ engines: { node: '>=18' }
+ peerDependencies:
+ postcss-selector-parser: ^7.0.0
+
+ '@ctrl/tinycolor@3.6.1':
+ resolution:
+ {
+ integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==
+ }
+ engines: { node: '>=10' }
+
+ '@dual-bundle/import-meta-resolve@4.1.0':
+ resolution:
+ {
+ integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==
+ }
+
+ '@element-plus/icons-vue@2.3.1':
+ resolution:
+ {
+ integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==
+ }
+ peerDependencies:
+ vue: ^3.2.0
+
+ '@esbuild/aix-ppc64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==
+ }
+ engines: { node: '>=18' }
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.24.2':
+ resolution:
+ {
+ integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.24.2':
+ resolution:
+ {
+ integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.24.2':
+ resolution:
+ {
+ integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==
+ }
+ engines: { node: '>=18' }
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.14.54':
+ resolution:
+ {
+ integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==
+ }
+ engines: { node: '>=12' }
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==
+ }
+ engines: { node: '>=18' }
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.24.2':
+ resolution:
+ {
+ integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==
+ }
+ engines: { node: '>=18' }
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==
+ }
+ engines: { node: '>=18' }
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==
+ }
+ engines: { node: '>=18' }
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.24.2':
+ resolution:
+ {
+ integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==
+ }
+ engines: { node: '>=18' }
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-arm64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==
+ }
+ engines: { node: '>=18' }
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.24.2':
+ resolution:
+ {
+ integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==
+ }
+ engines: { node: '>=18' }
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.24.2':
+ resolution:
+ {
+ integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==
+ }
+ engines: { node: '>=18' }
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.4.1':
+ resolution:
+ {
+ integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution:
+ {
+ integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
+ }
+ engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 }
+
+ '@eslint/config-array@0.19.0':
+ resolution:
+ {
+ integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@eslint/core@0.9.0':
+ resolution:
+ {
+ integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@eslint/eslintrc@3.2.0':
+ resolution:
+ {
+ integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@eslint/js@9.15.0':
+ resolution:
+ {
+ integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@eslint/object-schema@2.1.4':
+ resolution:
+ {
+ integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@eslint/plugin-kit@0.2.3':
+ resolution:
+ {
+ integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@floating-ui/core@1.6.8':
+ resolution:
+ {
+ integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==
+ }
+
+ '@floating-ui/dom@1.6.12':
+ resolution:
+ {
+ integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==
+ }
+
+ '@floating-ui/utils@0.2.8':
+ resolution:
+ {
+ integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==
+ }
+
+ '@humanfs/core@0.19.1':
+ resolution:
+ {
+ integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
+ }
+ engines: { node: '>=18.18.0' }
+
+ '@humanfs/node@0.16.6':
+ resolution:
+ {
+ integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==
+ }
+ engines: { node: '>=18.18.0' }
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution:
+ {
+ integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+ }
+ engines: { node: '>=12.22' }
+
+ '@humanwhocodes/retry@0.3.1':
+ resolution:
+ {
+ integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
+ }
+ engines: { node: '>=18.18' }
+
+ '@humanwhocodes/retry@0.4.1':
+ resolution:
+ {
+ integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==
+ }
+ engines: { node: '>=18.18' }
+
+ '@intlify/core-base@9.14.1':
+ resolution:
+ {
+ integrity: sha512-rG5/hlNW6Qfve41go37szEf0mVLcfhYuOu83JcY0jZKasnwsrcZYYWDzebCcuO5I/6Sy1JFWo9p+nvkQS1Dy+w==
+ }
+ engines: { node: '>= 16' }
+
+ '@intlify/message-compiler@9.14.1':
+ resolution:
+ {
+ integrity: sha512-MY8hwukJBnXvGAncVKlHsqKDQ5ZcQx4peqEmI8wBUTXn4pezrtTGYXNoz81cLyEEHB+L/zlKWVBSh5TiX4gYoQ==
+ }
+ engines: { node: '>= 16' }
+
+ '@intlify/shared@9.14.1':
+ resolution:
+ {
+ integrity: sha512-XjHu6PEQup9MnP1x0W9y0nXXfq9jFftAYSfV11hryjtH4XqXP8HrzMvXI+ZVifF+jZLszaTzIhvukllplxTQTg==
+ }
+ engines: { node: '>= 16' }
+
+ '@jridgewell/gen-mapping@0.3.5':
+ resolution:
+ {
+ integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution:
+ {
+ integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/set-array@1.2.1':
+ resolution:
+ {
+ integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/source-map@0.3.6':
+ resolution:
+ {
+ integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==
+ }
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution:
+ {
+ integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
+ }
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution:
+ {
+ integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+ }
+
+ '@keyv/serialize@1.0.3':
+ resolution:
+ {
+ integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==
+ }
+
+ '@lezer/common@1.2.3':
+ resolution:
+ {
+ integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==
+ }
+
+ '@lezer/cpp@1.1.2':
+ resolution:
+ {
+ integrity: sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==
+ }
+
+ '@lezer/css@1.1.9':
+ resolution:
+ {
+ integrity: sha512-TYwgljcDv+YrV0MZFFvYFQHCfGgbPMR6nuqLabBdmZoFH3EP1gvw8t0vae326Ne3PszQkbXfVBjCnf3ZVCr0bA==
+ }
+
+ '@lezer/go@1.0.0':
+ resolution:
+ {
+ integrity: sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==
+ }
+
+ '@lezer/highlight@1.2.1':
+ resolution:
+ {
+ integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==
+ }
+
+ '@lezer/html@1.3.10':
+ resolution:
+ {
+ integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==
+ }
+
+ '@lezer/java@1.1.3':
+ resolution:
+ {
+ integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==
+ }
+
+ '@lezer/javascript@1.4.19':
+ resolution:
+ {
+ integrity: sha512-j44kbR1QL26l6dMunZ1uhKBFteVGLVCBGNUD2sUaMnic+rbTviVuoK0CD1l9FTW31EueWvFFswCKMH7Z+M3JRA==
+ }
+
+ '@lezer/json@1.0.2':
+ resolution:
+ {
+ integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==
+ }
+
+ '@lezer/lr@1.4.2':
+ resolution:
+ {
+ integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==
+ }
+
+ '@lezer/markdown@1.3.2':
+ resolution:
+ {
+ integrity: sha512-Wu7B6VnrKTbBEohqa63h5vxXjiC4pO5ZQJ/TDbhJxPQaaIoRD/6UVDhSDtVsCwVZV12vvN9KxuLL3ATMnlG0oQ==
+ }
+
+ '@lezer/php@1.0.2':
+ resolution:
+ {
+ integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==
+ }
+
+ '@lezer/python@1.1.14':
+ resolution:
+ {
+ integrity: sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==
+ }
+
+ '@lezer/rust@1.0.2':
+ resolution:
+ {
+ integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==
+ }
+
+ '@lezer/sass@1.0.7':
+ resolution:
+ {
+ integrity: sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw==
+ }
+
+ '@lezer/xml@1.0.5':
+ resolution:
+ {
+ integrity: sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==
+ }
+
+ '@lezer/yaml@1.0.3':
+ resolution:
+ {
+ integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==
+ }
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution:
+ {
+ integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ }
+ engines: { node: '>= 8' }
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution:
+ {
+ integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+ }
+ engines: { node: '>= 8' }
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution:
+ {
+ integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ }
+ engines: { node: '>= 8' }
+
+ '@nuxt/kit@3.17.4':
+ resolution:
+ {
+ integrity: sha512-l+hY8sy2XFfg3PigZj+PTu6+KIJzmbACTRimn1ew/gtCz+F38f6KTF4sMRTN5CUxiB8TRENgEonASmkAWfpO9Q==
+ }
+ engines: { node: '>=18.12.0' }
+
+ '@parcel/watcher-android-arm64@2.5.0':
+ resolution:
+ {
+ integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.5.0':
+ resolution:
+ {
+ integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.5.0':
+ resolution:
+ {
+ integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.5.0':
+ resolution:
+ {
+ integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.5.0':
+ resolution:
+ {
+ integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm-musl@2.5.0':
+ resolution:
+ {
+ integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.0':
+ resolution:
+ {
+ integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm64-musl@2.5.0':
+ resolution:
+ {
+ integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-x64-glibc@2.5.0':
+ resolution:
+ {
+ integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-x64-musl@2.5.0':
+ resolution:
+ {
+ integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-win32-arm64@2.5.0':
+ resolution:
+ {
+ integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-ia32@2.5.0':
+ resolution:
+ {
+ integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [ia32]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.5.0':
+ resolution:
+ {
+ integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==
+ }
+ engines: { node: '>= 10.0.0' }
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.5.0':
+ resolution:
+ {
+ integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ '@pkgr/core@0.1.1':
+ resolution:
+ {
+ integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
+ }
+ engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 }
+
+ '@polka/url@1.0.0-next.29':
+ resolution:
+ {
+ integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==
+ }
+
+ '@rollup/pluginutils@5.1.3':
+ resolution:
+ {
+ integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==
+ }
+ engines: { node: '>=14.0.0' }
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/rollup-android-arm-eabi@4.34.8':
+ resolution:
+ {
+ integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==
+ }
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.34.8':
+ resolution:
+ {
+ integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==
+ }
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.34.8':
+ resolution:
+ {
+ integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==
+ }
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.34.8':
+ resolution:
+ {
+ integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==
+ }
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.34.8':
+ resolution:
+ {
+ integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==
+ }
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.34.8':
+ resolution:
+ {
+ integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==
+ }
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
+ resolution:
+ {
+ integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==
+ }
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.34.8':
+ resolution:
+ {
+ integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==
+ }
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-arm64-gnu@4.34.8':
+ resolution:
+ {
+ integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==
+ }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm64-musl@4.34.8':
+ resolution:
+ {
+ integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==
+ }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
+ resolution:
+ {
+ integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==
+ }
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
+ resolution:
+ {
+ integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==
+ }
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.34.8':
+ resolution:
+ {
+ integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==
+ }
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-s390x-gnu@4.34.8':
+ resolution:
+ {
+ integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==
+ }
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-gnu@4.34.8':
+ resolution:
+ {
+ integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==
+ }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-musl@4.34.8':
+ resolution:
+ {
+ integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==
+ }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-win32-arm64-msvc@4.34.8':
+ resolution:
+ {
+ integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==
+ }
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.34.8':
+ resolution:
+ {
+ integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==
+ }
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.34.8':
+ resolution:
+ {
+ integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==
+ }
+ cpu: [x64]
+ os: [win32]
+
+ '@sec-ant/readable-stream@0.4.1':
+ resolution:
+ {
+ integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==
+ }
+
+ '@sindresorhus/is@0.7.0':
+ resolution:
+ {
+ integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==
+ }
+ engines: { node: '>=4' }
+
+ '@sindresorhus/merge-streams@4.0.0':
+ resolution:
+ {
+ integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==
+ }
+ engines: { node: '>=18' }
+
+ '@sxzz/popperjs-es@2.11.7':
+ resolution:
+ {
+ integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
+ }
+
+ '@transloadit/prettier-bytes@0.0.7':
+ resolution:
+ {
+ integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==
+ }
+
+ '@trysound/sax@0.2.0':
+ resolution:
+ {
+ integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
+ }
+ engines: { node: '>=10.13.0' }
+
+ '@types/conventional-commits-parser@5.0.1':
+ resolution:
+ {
+ integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==
+ }
+
+ '@types/estree@1.0.6':
+ resolution:
+ {
+ integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+ }
+
+ '@types/event-emitter@0.3.5':
+ resolution:
+ {
+ integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==
+ }
+
+ '@types/glob@7.2.0':
+ resolution:
+ {
+ integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
+ }
+
+ '@types/imagemin-gifsicle@7.0.4':
+ resolution:
+ {
+ integrity: sha512-ZghMBd/Jgqg5utTJNPmvf6DkuHzMhscJ8vgf/7MUGCpO+G+cLrhYltL+5d+h3A1B4W73S2SrmJZ1jS5LACpX+A==
+ }
+
+ '@types/imagemin-jpegtran@5.0.4':
+ resolution:
+ {
+ integrity: sha512-PSMxOeJa8q94Y+qx8Yriw+qj1+vH5xWpvar63o6SGO0Xi5RlKuwHHfJmN2GRUngPrlhe394jOUmpVq8jQlVmFA==
+ }
+
+ '@types/imagemin-mozjpeg@8.0.4':
+ resolution:
+ {
+ integrity: sha512-ZCAxV8SYJB8ehwHpnbRpHjg5Wc4HcyuAMiDhXbkgC7gujDoOTyHO3dhDkUtZ1oK1DLBRZapqG9etdLVhUml7yQ==
+ }
+
+ '@types/imagemin-optipng@5.2.4':
+ resolution:
+ {
+ integrity: sha512-mvKnDMC8eCYZetAQudjs1DbgpR84WhsTx1wgvdiXnpuUEti3oJ+MaMYBRWPY0JlQ4+y4TXKOfa7+LOuT8daegQ==
+ }
+
+ '@types/imagemin-svgo@10.0.5':
+ resolution:
+ {
+ integrity: sha512-9U2Rf7vWBHeqJvzmWNP3vYAKqR0208QqQ9Mkrq9OLIL5AeoF/dRVRou6iUYCufBSim57BpBpCJhZLrTgfS3k1g==
+ }
+
+ '@types/imagemin-webp@7.0.3':
+ resolution:
+ {
+ integrity: sha512-C2/EMohS4bzsvY5VJvdzHFdcfmnZoui54DmM/9bFtK57/CgGmKkc+p6n49euPGmMFDDvwm4yVl60nwxcZOmH5A==
+ }
+
+ '@types/imagemin@7.0.1':
+ resolution:
+ {
+ integrity: sha512-xEn5+M3lDBtI3JxLy6eU3ksoVurygnlG7OYhTqJfGGP4PcvYnfn+IABCmMve7ziM/SneHDm5xgJFKC8hCYPicw==
+ }
+
+ '@types/json-schema@7.0.15':
+ resolution:
+ {
+ integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+ }
+
+ '@types/keyv@3.1.4':
+ resolution:
+ {
+ integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
+ }
+
+ '@types/linkify-it@5.0.0':
+ resolution:
+ {
+ integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==
+ }
+
+ '@types/lodash-es@4.17.12':
+ resolution:
+ {
+ integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
+ }
+
+ '@types/lodash@4.17.13':
+ resolution:
+ {
+ integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==
+ }
+
+ '@types/markdown-it@14.1.2':
+ resolution:
+ {
+ integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==
+ }
+
+ '@types/mdurl@2.0.0':
+ resolution:
+ {
+ integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==
+ }
+
+ '@types/minimatch@5.1.2':
+ resolution:
+ {
+ integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==
+ }
+
+ '@types/node@22.10.0':
+ resolution:
+ {
+ integrity: sha512-XC70cRZVElFHfIUB40FgZOBbgJYFKKMa5nb9lxcwYstFG/Mi+/Y0bGS+rs6Dmhmkpq4pnNiLiuZAbc02YCOnmA==
+ }
+
+ '@types/responselike@1.0.3':
+ resolution:
+ {
+ integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==
+ }
+
+ '@types/sortablejs@1.15.8':
+ resolution:
+ {
+ integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==
+ }
+
+ '@types/svgo@2.6.4':
+ resolution:
+ {
+ integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==
+ }
+
+ '@types/web-bluetooth@0.0.16':
+ resolution:
+ {
+ integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==
+ }
+
+ '@types/web-bluetooth@0.0.20':
+ resolution:
+ {
+ integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==
+ }
+
+ '@typescript-eslint/eslint-plugin@8.16.0':
+ resolution:
+ {
+ integrity: sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/parser@8.16.0':
+ resolution:
+ {
+ integrity: sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@8.16.0':
+ resolution:
+ {
+ integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@typescript-eslint/type-utils@8.16.0':
+ resolution:
+ {
+ integrity: sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/types@8.16.0':
+ resolution:
+ {
+ integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@typescript-eslint/typescript-estree@8.16.0':
+ resolution:
+ {
+ integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/utils@8.16.0':
+ resolution:
+ {
+ integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/visitor-keys@8.16.0':
+ resolution:
+ {
+ integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ '@uppy/companion-client@2.2.2':
+ resolution:
+ {
+ integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==
+ }
+
+ '@uppy/core@2.3.4':
+ resolution:
+ {
+ integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==
+ }
+
+ '@uppy/store-default@2.1.1':
+ resolution:
+ {
+ integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==
+ }
+
+ '@uppy/utils@4.1.3':
+ resolution:
+ {
+ integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==
+ }
+
+ '@uppy/xhr-upload@2.1.3':
+ resolution:
+ {
+ integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==
+ }
+ peerDependencies:
+ '@uppy/core': ^2.3.3
+
+ '@vavt/util@2.1.0':
+ resolution:
+ {
+ integrity: sha512-YIfAvArSFVXmWvoF+DEGD0FhkhVNcCtVWWkfYtj76eSrwHh/wuEEFhiEubg1XLNM3tChO8FH8xJCT/hnizjgFQ==
+ }
+
+ '@vitejs/plugin-vue@5.2.1':
+ resolution:
+ {
+ integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==
+ }
+ engines: { node: ^18.0.0 || >=20.0.0 }
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0
+ vue: ^3.2.25
+
+ '@volar/language-core@2.4.10':
+ resolution:
+ {
+ integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==
+ }
+
+ '@volar/source-map@2.4.10':
+ resolution:
+ {
+ integrity: sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==
+ }
+
+ '@volar/typescript@2.4.10':
+ resolution:
+ {
+ integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==
+ }
+
+ '@vue/babel-helper-vue-transform-on@1.4.0':
+ resolution:
+ {
+ integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==
+ }
+
+ '@vue/babel-plugin-jsx@1.4.0':
+ resolution:
+ {
+ integrity: sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==
+ }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+
+ '@vue/babel-plugin-resolve-type@1.4.0':
+ resolution:
+ {
+ integrity: sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==
+ }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@vue/compiler-core@3.5.13':
+ resolution:
+ {
+ integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==
+ }
+
+ '@vue/compiler-core@3.5.15':
+ resolution:
+ {
+ integrity: sha512-nGRc6YJg/kxNqbv/7Tg4juirPnjHvuVdhcmDvQWVZXlLHjouq7VsKmV1hIxM/8yKM0VUfwT/Uzc0lO510ltZqw==
+ }
+
+ '@vue/compiler-dom@3.5.13':
+ resolution:
+ {
+ integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==
+ }
+
+ '@vue/compiler-dom@3.5.15':
+ resolution:
+ {
+ integrity: sha512-ZelQd9n+O/UCBdL00rlwCrsArSak+YLZpBVuNDio1hN3+wrCshYZEDUO3khSLAzPbF1oQS2duEoMDUHScUlYjA==
+ }
+
+ '@vue/compiler-sfc@3.5.13':
+ resolution:
+ {
+ integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==
+ }
+
+ '@vue/compiler-sfc@3.5.15':
+ resolution:
+ {
+ integrity: sha512-3zndKbxMsOU6afQWer75Zot/aydjtxNj0T2KLg033rAFaQUn2PGuE32ZRe4iMhflbTcAxL0yEYsRWFxtPro8RQ==
+ }
+
+ '@vue/compiler-ssr@3.5.13':
+ resolution:
+ {
+ integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==
+ }
+
+ '@vue/compiler-ssr@3.5.15':
+ resolution:
+ {
+ integrity: sha512-gShn8zRREZbrXqTtmLSCffgZXDWv8nHc/GhsW+mbwBfNZL5pI96e7IWcIq8XGQe1TLtVbu7EV9gFIVSmfyarPg==
+ }
+
+ '@vue/compiler-vue2@2.7.16':
+ resolution:
+ {
+ integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==
+ }
+
+ '@vue/devtools-api@6.6.4':
+ resolution:
+ {
+ integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==
+ }
+
+ '@vue/devtools-api@7.7.2':
+ resolution:
+ {
+ integrity: sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==
+ }
+
+ '@vue/devtools-core@7.7.6':
+ resolution:
+ {
+ integrity: sha512-ghVX3zjKPtSHu94Xs03giRIeIWlb9M+gvDRVpIZ/cRIxKHdW6HE/sm1PT3rUYS3aV92CazirT93ne+7IOvGUWg==
+ }
+ peerDependencies:
+ vue: ^3.0.0
+
+ '@vue/devtools-kit@7.7.2':
+ resolution:
+ {
+ integrity: sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==
+ }
+
+ '@vue/devtools-kit@7.7.6':
+ resolution:
+ {
+ integrity: sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==
+ }
+
+ '@vue/devtools-shared@7.7.2':
+ resolution:
+ {
+ integrity: sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==
+ }
+
+ '@vue/devtools-shared@7.7.6':
+ resolution:
+ {
+ integrity: sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==
+ }
+
+ '@vue/language-core@2.1.10':
+ resolution:
+ {
+ integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==
+ }
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@vue/reactivity@3.5.13':
+ resolution:
+ {
+ integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==
+ }
+
+ '@vue/reactivity@3.5.15':
+ resolution:
+ {
+ integrity: sha512-GaA5VUm30YWobCwpvcs9nvFKf27EdSLKDo2jA0IXzGS344oNpFNbEQ9z+Pp5ESDaxyS8FcH0vFN/XSe95BZtHQ==
+ }
+
+ '@vue/runtime-core@3.5.15':
+ resolution:
+ {
+ integrity: sha512-CZAlIOQ93nj0OPpWWOx4+QDLCMzBNY85IQR4Voe6vIID149yF8g9WQaWnw042f/6JfvLttK7dnyWlC1EVCRK8Q==
+ }
+
+ '@vue/runtime-dom@3.5.15':
+ resolution:
+ {
+ integrity: sha512-wFplHKzKO/v998up2iCW3RN9TNUeDMhdBcNYZgs5LOokHntrB48dyuZHspcahKZczKKh3v6i164gapMPxBTKNw==
+ }
+
+ '@vue/server-renderer@3.5.15':
+ resolution:
+ {
+ integrity: sha512-Gehc693kVTYkLt6QSYEjGvqvdK2zZ/gf/D5zkgmvBdeB30dNnVZS8yY7+IlBmHRd1rR/zwaqeu06Ij04ZxBscg==
+ }
+ peerDependencies:
+ vue: 3.5.15
+
+ '@vue/shared@3.5.13':
+ resolution:
+ {
+ integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
+ }
+
+ '@vue/shared@3.5.15':
+ resolution:
+ {
+ integrity: sha512-bKvgFJJL1ZX9KxMCTQY6xD9Dhe3nusd1OhyOb1cJYGqvAr0Vg8FIjHPMOEVbJ9GDT9HG+Bjdn4oS8ohKP8EvoA==
+ }
+
+ '@vueuse/core@11.3.0':
+ resolution:
+ {
+ integrity: sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==
+ }
+
+ '@vueuse/core@9.13.0':
+ resolution:
+ {
+ integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==
+ }
+
+ '@vueuse/metadata@11.3.0':
+ resolution:
+ {
+ integrity: sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==
+ }
+
+ '@vueuse/metadata@9.13.0':
+ resolution:
+ {
+ integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==
+ }
+
+ '@vueuse/shared@11.3.0':
+ resolution:
+ {
+ integrity: sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==
+ }
+
+ '@vueuse/shared@9.13.0':
+ resolution:
+ {
+ integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==
+ }
+
+ '@wangeditor/basic-modules@1.1.7':
+ resolution:
+ {
+ integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==
+ }
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.throttle: ^4.1.1
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/code-highlight@1.0.3':
+ resolution:
+ {
+ integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==
+ }
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/core@1.1.19':
+ resolution:
+ {
+ integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==
+ }
+ peerDependencies:
+ '@uppy/core': ^2.1.1
+ '@uppy/xhr-upload': ^2.0.3
+ dom7: ^3.0.0
+ is-hotkey: ^0.2.0
+ lodash.camelcase: ^4.3.0
+ lodash.clonedeep: ^4.5.0
+ lodash.debounce: ^4.0.8
+ lodash.foreach: ^4.5.0
+ lodash.isequal: ^4.5.0
+ lodash.throttle: ^4.1.1
+ lodash.toarray: ^4.4.0
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/editor-for-vue@5.1.12':
+ resolution:
+ {
+ integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==
+ }
+ peerDependencies:
+ '@wangeditor/editor': '>=5.1.0'
+ vue: ^3.0.5
+
+ '@wangeditor/editor@5.1.23':
+ resolution:
+ {
+ integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==
+ }
+
+ '@wangeditor/list-module@1.0.5':
+ resolution:
+ {
+ integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==
+ }
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/table-module@1.1.4':
+ resolution:
+ {
+ integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==
+ }
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.isequal: ^4.5.0
+ lodash.throttle: ^4.1.1
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/upload-image-module@1.0.2':
+ resolution:
+ {
+ integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==
+ }
+ peerDependencies:
+ '@uppy/core': ^2.0.3
+ '@uppy/xhr-upload': ^2.0.3
+ '@wangeditor/basic-modules': 1.x
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.foreach: ^4.5.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/video-module@1.1.4':
+ resolution:
+ {
+ integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==
+ }
+ peerDependencies:
+ '@uppy/core': ^2.1.4
+ '@uppy/xhr-upload': ^2.0.7
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ JSONStream@1.3.5:
+ resolution:
+ {
+ integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
+ }
+ hasBin: true
+
+ acorn-jsx@5.3.2:
+ resolution:
+ {
+ integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+ }
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.14.0:
+ resolution:
+ {
+ integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
+ }
+ engines: { node: '>=0.4.0' }
+ hasBin: true
+
+ acorn@8.14.1:
+ resolution:
+ {
+ integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
+ }
+ engines: { node: '>=0.4.0' }
+ hasBin: true
+
+ adler-32@1.3.1:
+ resolution:
+ {
+ integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==
+ }
+ engines: { node: '>=0.8' }
+
+ ajv@6.12.6:
+ resolution:
+ {
+ integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ }
+
+ ajv@8.17.1:
+ resolution:
+ {
+ integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
+ }
+
+ alien-signals@0.2.2:
+ resolution:
+ {
+ integrity: sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==
+ }
+
+ ansi-escapes@4.3.2:
+ resolution:
+ {
+ integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ }
+ engines: { node: '>=8' }
+
+ ansi-escapes@7.0.0:
+ resolution:
+ {
+ integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==
+ }
+ engines: { node: '>=18' }
+
+ ansi-regex@2.1.1:
+ resolution:
+ {
+ integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ansi-regex@5.0.1:
+ resolution:
+ {
+ integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+ }
+ engines: { node: '>=8' }
+
+ ansi-regex@6.1.0:
+ resolution:
+ {
+ integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
+ }
+ engines: { node: '>=12' }
+
+ ansi-styles@2.2.1:
+ resolution:
+ {
+ integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ansi-styles@3.2.1:
+ resolution:
+ {
+ integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ }
+ engines: { node: '>=4' }
+
+ ansi-styles@4.3.0:
+ resolution:
+ {
+ integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ }
+ engines: { node: '>=8' }
+
+ ansi-styles@6.2.1:
+ resolution:
+ {
+ integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+ }
+ engines: { node: '>=12' }
+
+ anymatch@3.1.3:
+ resolution:
+ {
+ integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ }
+ engines: { node: '>= 8' }
+
+ arch@2.2.0:
+ resolution:
+ {
+ integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
+ }
+
+ archive-type@4.0.0:
+ resolution:
+ {
+ integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==
+ }
+ engines: { node: '>=4' }
+
+ argparse@2.0.1:
+ resolution:
+ {
+ integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+ }
+
+ array-find-index@1.0.2:
+ resolution:
+ {
+ integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ array-ify@1.0.0:
+ resolution:
+ {
+ integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==
+ }
+
+ array-union@2.1.0:
+ resolution:
+ {
+ integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+ }
+ engines: { node: '>=8' }
+
+ astral-regex@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+ }
+ engines: { node: '>=8' }
+
+ async-validator@4.2.5:
+ resolution:
+ {
+ integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
+ }
+
+ asynckit@0.4.0:
+ resolution:
+ {
+ integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+ }
+
+ at-least-node@1.0.0:
+ resolution:
+ {
+ integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+ }
+ engines: { node: '>= 4.0.0' }
+
+ axios@1.7.8:
+ resolution:
+ {
+ integrity: sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==
+ }
+
+ balanced-match@1.0.2:
+ resolution:
+ {
+ integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+ }
+
+ balanced-match@2.0.0:
+ resolution:
+ {
+ integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==
+ }
+
+ base64-js@1.5.1:
+ resolution:
+ {
+ integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+ }
+
+ bin-build@3.0.0:
+ resolution:
+ {
+ integrity: sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==
+ }
+ engines: { node: '>=4' }
+
+ bin-check@4.1.0:
+ resolution:
+ {
+ integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==
+ }
+ engines: { node: '>=4' }
+
+ bin-version-check@4.0.0:
+ resolution:
+ {
+ integrity: sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==
+ }
+ engines: { node: '>=6' }
+
+ bin-version@3.1.0:
+ resolution:
+ {
+ integrity: sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==
+ }
+ engines: { node: '>=6' }
+
+ bin-wrapper@4.1.0:
+ resolution:
+ {
+ integrity: sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==
+ }
+ engines: { node: '>=6' }
+
+ binary-extensions@2.3.0:
+ resolution:
+ {
+ integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
+ }
+ engines: { node: '>=8' }
+
+ birpc@0.2.19:
+ resolution:
+ {
+ integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==
+ }
+
+ birpc@2.3.0:
+ resolution:
+ {
+ integrity: sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==
+ }
+
+ bl@1.2.3:
+ resolution:
+ {
+ integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==
+ }
+
+ bl@4.1.0:
+ resolution:
+ {
+ integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ }
+
+ boolbase@1.0.0:
+ resolution:
+ {
+ integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+ }
+
+ brace-expansion@1.1.11:
+ resolution:
+ {
+ integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ }
+
+ brace-expansion@2.0.1:
+ resolution:
+ {
+ integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ }
+
+ braces@3.0.3:
+ resolution:
+ {
+ integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
+ }
+ engines: { node: '>=8' }
+
+ browserslist@4.25.0:
+ resolution:
+ {
+ integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==
+ }
+ engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ hasBin: true
+
+ buffer-alloc-unsafe@1.1.0:
+ resolution:
+ {
+ integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
+ }
+
+ buffer-alloc@1.2.0:
+ resolution:
+ {
+ integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
+ }
+
+ buffer-crc32@0.2.13:
+ resolution:
+ {
+ integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+ }
+
+ buffer-fill@1.0.0:
+ resolution:
+ {
+ integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==
+ }
+
+ buffer-from@1.1.2:
+ resolution:
+ {
+ integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+ }
+
+ buffer@5.7.1:
+ resolution:
+ {
+ integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ }
+
+ buffer@6.0.3:
+ resolution:
+ {
+ integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
+ }
+
+ bundle-name@4.1.0:
+ resolution:
+ {
+ integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==
+ }
+ engines: { node: '>=18' }
+
+ c12@3.0.4:
+ resolution:
+ {
+ integrity: sha512-t5FaZTYbbCtvxuZq9xxIruYydrAGsJ+8UdP0pZzMiK2xl/gNiSOy0OxhLzHUEEb0m1QXYqfzfvyIFEmz/g9lqg==
+ }
+ peerDependencies:
+ magicast: ^0.3.5
+ peerDependenciesMeta:
+ magicast:
+ optional: true
+
+ cacheable-request@2.1.4:
+ resolution:
+ {
+ integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==
+ }
+
+ cacheable@1.9.0:
+ resolution:
+ {
+ integrity: sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==
+ }
+
+ cachedir@2.3.0:
+ resolution:
+ {
+ integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==
+ }
+ engines: { node: '>=6' }
+
+ callsites@3.1.0:
+ resolution:
+ {
+ integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+ }
+ engines: { node: '>=6' }
+
+ camelcase-keys@2.1.0:
+ resolution:
+ {
+ integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ camelcase@2.1.1:
+ resolution:
+ {
+ integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ caniuse-lite@1.0.30001721:
+ resolution:
+ {
+ integrity: sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==
+ }
+
+ caw@2.0.1:
+ resolution:
+ {
+ integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==
+ }
+ engines: { node: '>=4' }
+
+ cfb@1.2.2:
+ resolution:
+ {
+ integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==
+ }
+ engines: { node: '>=0.8' }
+
+ chalk@1.1.3:
+ resolution:
+ {
+ integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ chalk@2.4.2:
+ resolution:
+ {
+ integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ }
+ engines: { node: '>=4' }
+
+ chalk@4.1.2:
+ resolution:
+ {
+ integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ }
+ engines: { node: '>=10' }
+
+ chalk@5.3.0:
+ resolution:
+ {
+ integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==
+ }
+ engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
+
+ chalk@5.4.1:
+ resolution:
+ {
+ integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==
+ }
+ engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
+
+ chardet@0.7.0:
+ resolution:
+ {
+ integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+ }
+
+ chokidar@3.6.0:
+ resolution:
+ {
+ integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
+ }
+ engines: { node: '>= 8.10.0' }
+
+ chokidar@4.0.1:
+ resolution:
+ {
+ integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==
+ }
+ engines: { node: '>= 14.16.0' }
+
+ chokidar@4.0.3:
+ resolution:
+ {
+ integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==
+ }
+ engines: { node: '>= 14.16.0' }
+
+ citty@0.1.6:
+ resolution:
+ {
+ integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==
+ }
+
+ cli-cursor@3.1.0:
+ resolution:
+ {
+ integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ }
+ engines: { node: '>=8' }
+
+ cli-cursor@5.0.0:
+ resolution:
+ {
+ integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==
+ }
+ engines: { node: '>=18' }
+
+ cli-spinners@2.9.2:
+ resolution:
+ {
+ integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==
+ }
+ engines: { node: '>=6' }
+
+ cli-truncate@4.0.0:
+ resolution:
+ {
+ integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==
+ }
+ engines: { node: '>=18' }
+
+ cli-width@3.0.0:
+ resolution:
+ {
+ integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+ }
+ engines: { node: '>= 10' }
+
+ cliui@8.0.1:
+ resolution:
+ {
+ integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ }
+ engines: { node: '>=12' }
+
+ clone-response@1.0.2:
+ resolution:
+ {
+ integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==
+ }
+
+ clone@1.0.4:
+ resolution:
+ {
+ integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+ }
+ engines: { node: '>=0.8' }
+
+ codemirror@6.0.1:
+ resolution:
+ {
+ integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==
+ }
+
+ codepage@1.15.0:
+ resolution:
+ {
+ integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==
+ }
+ engines: { node: '>=0.8' }
+
+ color-convert@1.9.3:
+ resolution:
+ {
+ integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ }
+
+ color-convert@2.0.1:
+ resolution:
+ {
+ integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ }
+ engines: { node: '>=7.0.0' }
+
+ color-name@1.1.3:
+ resolution:
+ {
+ integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+ }
+
+ color-name@1.1.4:
+ resolution:
+ {
+ integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+ }
+
+ colord@2.9.3:
+ resolution:
+ {
+ integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
+ }
+
+ colorette@2.0.20:
+ resolution:
+ {
+ integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
+ }
+
+ combined-stream@1.0.8:
+ resolution:
+ {
+ integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ }
+ engines: { node: '>= 0.8' }
+
+ commander@13.1.0:
+ resolution:
+ {
+ integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==
+ }
+ engines: { node: '>=18' }
+
+ commander@2.20.3:
+ resolution:
+ {
+ integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+ }
+
+ commander@7.2.0:
+ resolution:
+ {
+ integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+ }
+ engines: { node: '>= 10' }
+
+ commitizen@4.3.1:
+ resolution:
+ {
+ integrity: sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==
+ }
+ engines: { node: '>= 12' }
+ hasBin: true
+
+ compare-func@2.0.0:
+ resolution:
+ {
+ integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==
+ }
+
+ compute-scroll-into-view@1.0.20:
+ resolution:
+ {
+ integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
+ }
+
+ concat-map@0.0.1:
+ resolution:
+ {
+ integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+ }
+
+ confbox@0.1.8:
+ resolution:
+ {
+ integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==
+ }
+
+ confbox@0.2.2:
+ resolution:
+ {
+ integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==
+ }
+
+ config-chain@1.1.13:
+ resolution:
+ {
+ integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==
+ }
+
+ consola@3.4.2:
+ resolution:
+ {
+ integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==
+ }
+ engines: { node: ^14.18.0 || >=16.10.0 }
+
+ console-stream@0.1.1:
+ resolution:
+ {
+ integrity: sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==
+ }
+
+ content-disposition@0.5.4:
+ resolution:
+ {
+ integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ }
+ engines: { node: '>= 0.6' }
+
+ conventional-changelog-angular@7.0.0:
+ resolution:
+ {
+ integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==
+ }
+ engines: { node: '>=16' }
+
+ conventional-changelog-conventionalcommits@7.0.2:
+ resolution:
+ {
+ integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==
+ }
+ engines: { node: '>=16' }
+
+ conventional-commit-types@3.0.0:
+ resolution:
+ {
+ integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==
+ }
+
+ conventional-commits-parser@5.0.0:
+ resolution:
+ {
+ integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==
+ }
+ engines: { node: '>=16' }
+ hasBin: true
+
+ convert-source-map@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+ }
+
+ copy-anything@3.0.5:
+ resolution:
+ {
+ integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==
+ }
+ engines: { node: '>=12.13' }
+
+ copy-to-clipboard@3.3.3:
+ resolution:
+ {
+ integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==
+ }
+
+ core-js@3.39.0:
+ resolution:
+ {
+ integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==
+ }
+
+ core-util-is@1.0.3:
+ resolution:
+ {
+ integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+ }
+
+ cosmiconfig-typescript-loader@5.1.0:
+ resolution:
+ {
+ integrity: sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA==
+ }
+ engines: { node: '>=v16' }
+ peerDependencies:
+ '@types/node': '*'
+ cosmiconfig: '>=8.2'
+ typescript: '>=4'
+
+ cosmiconfig@9.0.0:
+ resolution:
+ {
+ integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
+ }
+ engines: { node: '>=14' }
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ crc-32@1.2.2:
+ resolution:
+ {
+ integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
+ }
+ engines: { node: '>=0.8' }
+ hasBin: true
+
+ crelt@1.0.6:
+ resolution:
+ {
+ integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==
+ }
+
+ cross-spawn@5.1.0:
+ resolution:
+ {
+ integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==
+ }
+
+ cross-spawn@6.0.6:
+ resolution:
+ {
+ integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==
+ }
+ engines: { node: '>=4.8' }
+
+ cross-spawn@7.0.6:
+ resolution:
+ {
+ integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
+ }
+ engines: { node: '>= 8' }
+
+ crypto-js@4.2.0:
+ resolution:
+ {
+ integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==
+ }
+
+ css-functions-list@3.2.3:
+ resolution:
+ {
+ integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==
+ }
+ engines: { node: '>=12 || >=16' }
+
+ css-select@4.3.0:
+ resolution:
+ {
+ integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
+ }
+
+ css-tree@1.1.3:
+ resolution:
+ {
+ integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ }
+ engines: { node: '>=8.0.0' }
+
+ css-tree@3.0.1:
+ resolution:
+ {
+ integrity: sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==
+ }
+ engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 }
+
+ css-tree@3.1.0:
+ resolution:
+ {
+ integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==
+ }
+ engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 }
+
+ css-what@6.1.0:
+ resolution:
+ {
+ integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+ }
+ engines: { node: '>= 6' }
+
+ cssesc@3.0.0:
+ resolution:
+ {
+ integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+ }
+ engines: { node: '>=4' }
+ hasBin: true
+
+ cssfilter@0.0.10:
+ resolution:
+ {
+ integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==
+ }
+
+ csso@4.2.0:
+ resolution:
+ {
+ integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
+ }
+ engines: { node: '>=8.0.0' }
+
+ csstype@3.1.3:
+ resolution:
+ {
+ integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+ }
+
+ currently-unhandled@0.4.1:
+ resolution:
+ {
+ integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==
+ }
+ engines: { node: '>=0.10.0' }
+
+ cwebp-bin@6.1.2:
+ resolution:
+ {
+ integrity: sha512-NLEZ/BVAl9g426hwUX/qrQ7b/EfQH7BS1tr+CzPo2EgDQbcdzmUVE+fIfsi64lsL638lWgzTEViMAL4pxV1GOg==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ cz-conventional-changelog@3.3.0:
+ resolution:
+ {
+ integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==
+ }
+ engines: { node: '>= 10' }
+
+ cz-git@1.11.1:
+ resolution:
+ {
+ integrity: sha512-QIhpsX8blMydkGcSSlSb4VKvu4qHNtxAWeN0N3TWDfQw7VbVHMLlAwmLm/YxVk60KKPy42O5ihe7E0gosTG2kg==
+ }
+ engines: { node: '>=v12.20.0' }
+
+ d@1.0.2:
+ resolution:
+ {
+ integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==
+ }
+ engines: { node: '>=0.12' }
+
+ danmu.js@1.1.13:
+ resolution:
+ {
+ integrity: sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg==
+ }
+
+ dargs@8.1.0:
+ resolution:
+ {
+ integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==
+ }
+ engines: { node: '>=12' }
+
+ dayjs@1.11.13:
+ resolution:
+ {
+ integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==
+ }
+
+ de-indent@1.0.2:
+ resolution:
+ {
+ integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
+ }
+
+ debug@4.3.7:
+ resolution:
+ {
+ integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
+ }
+ engines: { node: '>=6.0' }
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.1:
+ resolution:
+ {
+ integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
+ }
+ engines: { node: '>=6.0' }
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decamelize@1.2.0:
+ resolution:
+ {
+ integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ decode-uri-component@0.2.2:
+ resolution:
+ {
+ integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
+ }
+ engines: { node: '>=0.10' }
+
+ decompress-response@3.3.0:
+ resolution:
+ {
+ integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==
+ }
+ engines: { node: '>=4' }
+
+ decompress-tar@4.1.1:
+ resolution:
+ {
+ integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==
+ }
+ engines: { node: '>=4' }
+
+ decompress-tarbz2@4.1.1:
+ resolution:
+ {
+ integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==
+ }
+ engines: { node: '>=4' }
+
+ decompress-targz@4.1.1:
+ resolution:
+ {
+ integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==
+ }
+ engines: { node: '>=4' }
+
+ decompress-unzip@4.0.1:
+ resolution:
+ {
+ integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==
+ }
+ engines: { node: '>=4' }
+
+ decompress@4.2.1:
+ resolution:
+ {
+ integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==
+ }
+ engines: { node: '>=4' }
+
+ dedent@0.7.0:
+ resolution:
+ {
+ integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
+ }
+
+ deep-is@0.1.4:
+ resolution:
+ {
+ integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+ }
+
+ deep-pick-omit@1.2.1:
+ resolution:
+ {
+ integrity: sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==
+ }
+
+ default-browser-id@5.0.0:
+ resolution:
+ {
+ integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==
+ }
+ engines: { node: '>=18' }
+
+ default-browser@5.2.1:
+ resolution:
+ {
+ integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==
+ }
+ engines: { node: '>=18' }
+
+ defaults@1.0.4:
+ resolution:
+ {
+ integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==
+ }
+
+ define-lazy-prop@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+ }
+ engines: { node: '>=8' }
+
+ define-lazy-prop@3.0.0:
+ resolution:
+ {
+ integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==
+ }
+ engines: { node: '>=12' }
+
+ defu@6.1.4:
+ resolution:
+ {
+ integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==
+ }
+
+ delayed-stream@1.0.0:
+ resolution:
+ {
+ integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+ }
+ engines: { node: '>=0.4.0' }
+
+ delegate@3.2.0:
+ resolution:
+ {
+ integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
+ }
+
+ destr@2.0.5:
+ resolution:
+ {
+ integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==
+ }
+
+ detect-file@1.0.0:
+ resolution:
+ {
+ integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ detect-indent@6.1.0:
+ resolution:
+ {
+ integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
+ }
+ engines: { node: '>=8' }
+
+ detect-libc@1.0.3:
+ resolution:
+ {
+ integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==
+ }
+ engines: { node: '>=0.10' }
+ hasBin: true
+
+ dir-glob@3.0.1:
+ resolution:
+ {
+ integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ }
+ engines: { node: '>=8' }
+
+ dom-serializer@1.4.1:
+ resolution:
+ {
+ integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
+ }
+
+ dom-serializer@2.0.0:
+ resolution:
+ {
+ integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
+ }
+
+ dom7@3.0.0:
+ resolution:
+ {
+ integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==
+ }
+
+ domelementtype@2.3.0:
+ resolution:
+ {
+ integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+ }
+
+ domhandler@4.3.1:
+ resolution:
+ {
+ integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+ }
+ engines: { node: '>= 4' }
+
+ domhandler@5.0.3:
+ resolution:
+ {
+ integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
+ }
+ engines: { node: '>= 4' }
+
+ domutils@2.8.0:
+ resolution:
+ {
+ integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+ }
+
+ domutils@3.1.0:
+ resolution:
+ {
+ integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==
+ }
+
+ dot-prop@5.3.0:
+ resolution:
+ {
+ integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+ }
+ engines: { node: '>=8' }
+
+ dotenv@16.5.0:
+ resolution:
+ {
+ integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==
+ }
+ engines: { node: '>=12' }
+
+ download@6.2.5:
+ resolution:
+ {
+ integrity: sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==
+ }
+ engines: { node: '>=4' }
+
+ download@7.1.0:
+ resolution:
+ {
+ integrity: sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==
+ }
+ engines: { node: '>=6' }
+
+ downloadjs@1.4.7:
+ resolution:
+ {
+ integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==
+ }
+
+ duplexer3@0.1.5:
+ resolution:
+ {
+ integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
+ }
+
+ echarts@5.5.1:
+ resolution:
+ {
+ integrity: sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==
+ }
+
+ electron-to-chromium@1.5.166:
+ resolution:
+ {
+ integrity: sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==
+ }
+
+ element-plus@2.9.11:
+ resolution:
+ {
+ integrity: sha512-x4L/6YC8de4JtuE3vpaEugJdQIeHQaHtIYKyk67IeF6dTIiVax45aX4nWOygnh+xX+0gTvL6xO+9BZhPA3G82w==
+ }
+ peerDependencies:
+ vue: ^3.2.0
+
+ emoji-regex@10.4.0:
+ resolution:
+ {
+ integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
+ }
+
+ emoji-regex@8.0.0:
+ resolution:
+ {
+ integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+ }
+
+ end-of-stream@1.4.4:
+ resolution:
+ {
+ integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ }
+
+ entities@2.2.0:
+ resolution:
+ {
+ integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+ }
+
+ entities@4.5.0:
+ resolution:
+ {
+ integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
+ }
+ engines: { node: '>=0.12' }
+
+ env-paths@2.2.1:
+ resolution:
+ {
+ integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+ }
+ engines: { node: '>=6' }
+
+ environment@1.1.0:
+ resolution:
+ {
+ integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==
+ }
+ engines: { node: '>=18' }
+
+ error-ex@1.3.2:
+ resolution:
+ {
+ integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ }
+
+ error-stack-parser-es@0.1.5:
+ resolution:
+ {
+ integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==
+ }
+
+ errx@0.1.0:
+ resolution:
+ {
+ integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==
+ }
+
+ es5-ext@0.10.64:
+ resolution:
+ {
+ integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
+ }
+ engines: { node: '>=0.10' }
+
+ es6-iterator@2.0.3:
+ resolution:
+ {
+ integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
+ }
+
+ es6-symbol@3.1.4:
+ resolution:
+ {
+ integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==
+ }
+ engines: { node: '>=0.12' }
+
+ esbuild-android-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [android]
+
+ esbuild-android-arm64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [android]
+
+ esbuild-darwin-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [darwin]
+
+ esbuild-darwin-arm64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [darwin]
+
+ esbuild-freebsd-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [freebsd]
+
+ esbuild-freebsd-arm64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [freebsd]
+
+ esbuild-linux-32@0.14.54:
+ resolution:
+ {
+ integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==
+ }
+ engines: { node: '>=12' }
+ cpu: [ia32]
+ os: [linux]
+
+ esbuild-linux-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [linux]
+
+ esbuild-linux-arm64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [linux]
+
+ esbuild-linux-arm@0.14.54:
+ resolution:
+ {
+ integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm]
+ os: [linux]
+
+ esbuild-linux-mips64le@0.14.54:
+ resolution:
+ {
+ integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==
+ }
+ engines: { node: '>=12' }
+ cpu: [mips64el]
+ os: [linux]
+
+ esbuild-linux-ppc64le@0.14.54:
+ resolution:
+ {
+ integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [ppc64]
+ os: [linux]
+
+ esbuild-linux-riscv64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==
+ }
+ engines: { node: '>=12' }
+ cpu: [riscv64]
+ os: [linux]
+
+ esbuild-linux-s390x@0.14.54:
+ resolution:
+ {
+ integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==
+ }
+ engines: { node: '>=12' }
+ cpu: [s390x]
+ os: [linux]
+
+ esbuild-netbsd-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [netbsd]
+
+ esbuild-openbsd-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [openbsd]
+
+ esbuild-sunos-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [sunos]
+
+ esbuild-windows-32@0.14.54:
+ resolution:
+ {
+ integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==
+ }
+ engines: { node: '>=12' }
+ cpu: [ia32]
+ os: [win32]
+
+ esbuild-windows-64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [win32]
+
+ esbuild-windows-arm64@0.14.54:
+ resolution:
+ {
+ integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [win32]
+
+ esbuild@0.14.54:
+ resolution:
+ {
+ integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==
+ }
+ engines: { node: '>=12' }
+ hasBin: true
+
+ esbuild@0.24.2:
+ resolution:
+ {
+ integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==
+ }
+ engines: { node: '>=18' }
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution:
+ {
+ integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+ }
+ engines: { node: '>=6' }
+
+ escape-html@1.0.3:
+ resolution:
+ {
+ integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+ }
+
+ escape-string-regexp@1.0.5:
+ resolution:
+ {
+ integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+ }
+ engines: { node: '>=0.8.0' }
+
+ escape-string-regexp@4.0.0:
+ resolution:
+ {
+ integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+ }
+ engines: { node: '>=10' }
+
+ escape-string-regexp@5.0.0:
+ resolution:
+ {
+ integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
+ }
+ engines: { node: '>=12' }
+
+ eslint-config-prettier@9.1.0:
+ resolution:
+ {
+ integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
+ }
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-plugin-prettier@5.2.1:
+ resolution:
+ {
+ integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==
+ }
+ engines: { node: ^14.18.0 || >=16.0.0 }
+ peerDependencies:
+ '@types/eslint': '>=8.0.0'
+ eslint: '>=8.0.0'
+ eslint-config-prettier: '*'
+ prettier: '>=3.0.0'
+ peerDependenciesMeta:
+ '@types/eslint':
+ optional: true
+ eslint-config-prettier:
+ optional: true
+
+ eslint-plugin-vue@9.31.0:
+ resolution:
+ {
+ integrity: sha512-aYMUCgivhz1o4tLkRHj5oq9YgYPM4/EJc0M7TAKRLCUA5OYxRLAhYEVD2nLtTwLyixEFI+/QXSvKU9ESZFgqjQ==
+ }
+ engines: { node: ^14.17.0 || >=16.0.0 }
+ peerDependencies:
+ eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
+
+ eslint-scope@7.2.2:
+ resolution:
+ {
+ integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ eslint-scope@8.2.0:
+ resolution:
+ {
+ integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ eslint-visitor-keys@3.4.3:
+ resolution:
+ {
+ integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ eslint-visitor-keys@4.2.0:
+ resolution:
+ {
+ integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ eslint@9.15.0:
+ resolution:
+ {
+ integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ esniff@2.0.1:
+ resolution:
+ {
+ integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==
+ }
+ engines: { node: '>=0.10' }
+
+ espree@10.3.0:
+ resolution:
+ {
+ integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ espree@9.6.1:
+ resolution:
+ {
+ integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ esquery@1.6.0:
+ resolution:
+ {
+ integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
+ }
+ engines: { node: '>=0.10' }
+
+ esrecurse@4.3.0:
+ resolution:
+ {
+ integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ }
+ engines: { node: '>=4.0' }
+
+ estraverse@5.3.0:
+ resolution:
+ {
+ integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+ }
+ engines: { node: '>=4.0' }
+
+ estree-walker@2.0.2:
+ resolution:
+ {
+ integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+ }
+
+ estree-walker@3.0.3:
+ resolution:
+ {
+ integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
+ }
+
+ esutils@2.0.3:
+ resolution:
+ {
+ integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ event-emitter@0.3.5:
+ resolution:
+ {
+ integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
+ }
+
+ eventemitter3@4.0.7:
+ resolution:
+ {
+ integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+ }
+
+ eventemitter3@5.0.1:
+ resolution:
+ {
+ integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==
+ }
+
+ exec-buffer@3.2.0:
+ resolution:
+ {
+ integrity: sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==
+ }
+ engines: { node: '>=4' }
+
+ execa@0.7.0:
+ resolution:
+ {
+ integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==
+ }
+ engines: { node: '>=4' }
+
+ execa@1.0.0:
+ resolution:
+ {
+ integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ }
+ engines: { node: '>=6' }
+
+ execa@4.1.0:
+ resolution:
+ {
+ integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+ }
+ engines: { node: '>=10' }
+
+ execa@5.1.1:
+ resolution:
+ {
+ integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ }
+ engines: { node: '>=10' }
+
+ execa@8.0.1:
+ resolution:
+ {
+ integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
+ }
+ engines: { node: '>=16.17' }
+
+ execa@9.6.0:
+ resolution:
+ {
+ integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==
+ }
+ engines: { node: ^18.19.0 || >=20.5.0 }
+
+ executable@4.1.1:
+ resolution:
+ {
+ integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==
+ }
+ engines: { node: '>=4' }
+
+ expand-tilde@2.0.2:
+ resolution:
+ {
+ integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ exsolve@1.0.5:
+ resolution:
+ {
+ integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==
+ }
+
+ ext-list@2.2.2:
+ resolution:
+ {
+ integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ext-name@5.0.0:
+ resolution:
+ {
+ integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==
+ }
+ engines: { node: '>=4' }
+
+ ext@1.7.0:
+ resolution:
+ {
+ integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
+ }
+
+ external-editor@3.1.0:
+ resolution:
+ {
+ integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+ }
+ engines: { node: '>=4' }
+
+ fast-deep-equal@3.1.3:
+ resolution:
+ {
+ integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+ }
+
+ fast-diff@1.3.0:
+ resolution:
+ {
+ integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
+ }
+
+ fast-glob@3.3.2:
+ resolution:
+ {
+ integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
+ }
+ engines: { node: '>=8.6.0' }
+
+ fast-glob@3.3.3:
+ resolution:
+ {
+ integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
+ }
+ engines: { node: '>=8.6.0' }
+
+ fast-json-stable-stringify@2.1.0:
+ resolution:
+ {
+ integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+ }
+
+ fast-levenshtein@2.0.6:
+ resolution:
+ {
+ integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+ }
+
+ fast-uri@3.0.3:
+ resolution:
+ {
+ integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==
+ }
+
+ fast-xml-parser@4.5.3:
+ resolution:
+ {
+ integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==
+ }
+ hasBin: true
+
+ fastest-levenshtein@1.0.16:
+ resolution:
+ {
+ integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
+ }
+ engines: { node: '>= 4.9.1' }
+
+ fastq@1.17.1:
+ resolution:
+ {
+ integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
+ }
+
+ fd-slicer@1.1.0:
+ resolution:
+ {
+ integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
+ }
+
+ fdir@6.4.5:
+ resolution:
+ {
+ integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==
+ }
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ figures@1.7.0:
+ resolution:
+ {
+ integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ figures@3.2.0:
+ resolution:
+ {
+ integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ }
+ engines: { node: '>=8' }
+
+ figures@6.1.0:
+ resolution:
+ {
+ integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==
+ }
+ engines: { node: '>=18' }
+
+ file-entry-cache@10.1.0:
+ resolution:
+ {
+ integrity: sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==
+ }
+
+ file-entry-cache@8.0.0:
+ resolution:
+ {
+ integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
+ }
+ engines: { node: '>=16.0.0' }
+
+ file-saver@2.0.5:
+ resolution:
+ {
+ integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
+ }
+
+ file-type@10.11.0:
+ resolution:
+ {
+ integrity: sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==
+ }
+ engines: { node: '>=6' }
+
+ file-type@12.4.2:
+ resolution:
+ {
+ integrity: sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==
+ }
+ engines: { node: '>=8' }
+
+ file-type@3.9.0:
+ resolution:
+ {
+ integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ file-type@4.4.0:
+ resolution:
+ {
+ integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==
+ }
+ engines: { node: '>=4' }
+
+ file-type@5.2.0:
+ resolution:
+ {
+ integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==
+ }
+ engines: { node: '>=4' }
+
+ file-type@6.2.0:
+ resolution:
+ {
+ integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==
+ }
+ engines: { node: '>=4' }
+
+ file-type@8.1.0:
+ resolution:
+ {
+ integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==
+ }
+ engines: { node: '>=6' }
+
+ filename-reserved-regex@2.0.0:
+ resolution:
+ {
+ integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==
+ }
+ engines: { node: '>=4' }
+
+ filenamify@2.1.0:
+ resolution:
+ {
+ integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==
+ }
+ engines: { node: '>=4' }
+
+ fill-range@7.1.1:
+ resolution:
+ {
+ integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
+ }
+ engines: { node: '>=8' }
+
+ find-node-modules@2.1.3:
+ resolution:
+ {
+ integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==
+ }
+
+ find-root@1.1.0:
+ resolution:
+ {
+ integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+ }
+
+ find-up@1.1.2:
+ resolution:
+ {
+ integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ find-up@5.0.0:
+ resolution:
+ {
+ integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ }
+ engines: { node: '>=10' }
+
+ find-up@7.0.0:
+ resolution:
+ {
+ integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==
+ }
+ engines: { node: '>=18' }
+
+ find-versions@3.2.0:
+ resolution:
+ {
+ integrity: sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==
+ }
+ engines: { node: '>=6' }
+
+ findup-sync@4.0.0:
+ resolution:
+ {
+ integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==
+ }
+ engines: { node: '>= 8' }
+
+ flat-cache@4.0.1:
+ resolution:
+ {
+ integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
+ }
+ engines: { node: '>=16' }
+
+ flat-cache@6.1.9:
+ resolution:
+ {
+ integrity: sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==
+ }
+
+ flatted@3.3.2:
+ resolution:
+ {
+ integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
+ }
+
+ flatted@3.3.3:
+ resolution:
+ {
+ integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
+ }
+
+ follow-redirects@1.15.9:
+ resolution:
+ {
+ integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
+ }
+ engines: { node: '>=4.0' }
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ form-data@4.0.1:
+ resolution:
+ {
+ integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
+ }
+ engines: { node: '>= 6' }
+
+ frac@1.1.2:
+ resolution:
+ {
+ integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==
+ }
+ engines: { node: '>=0.8' }
+
+ from2@2.3.0:
+ resolution:
+ {
+ integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==
+ }
+
+ fs-constants@1.0.0:
+ resolution:
+ {
+ integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+ }
+
+ fs-extra@10.1.0:
+ resolution:
+ {
+ integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
+ }
+ engines: { node: '>=12' }
+
+ fs-extra@11.3.0:
+ resolution:
+ {
+ integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==
+ }
+ engines: { node: '>=14.14' }
+
+ fs-extra@9.1.0:
+ resolution:
+ {
+ integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ }
+ engines: { node: '>=10' }
+
+ fs.realpath@1.0.0:
+ resolution:
+ {
+ integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+ }
+
+ fsevents@2.3.3:
+ resolution:
+ {
+ integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+ }
+ engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution:
+ {
+ integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+ }
+
+ gensync@1.0.0-beta.2:
+ resolution:
+ {
+ integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ get-caller-file@2.0.5:
+ resolution:
+ {
+ integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+ }
+ engines: { node: 6.* || 8.* || >= 10.* }
+
+ get-east-asian-width@1.3.0:
+ resolution:
+ {
+ integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==
+ }
+ engines: { node: '>=18' }
+
+ get-proxy@2.1.0:
+ resolution:
+ {
+ integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==
+ }
+ engines: { node: '>=4' }
+
+ get-stdin@4.0.1:
+ resolution:
+ {
+ integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ get-stream@2.3.1:
+ resolution:
+ {
+ integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ get-stream@3.0.0:
+ resolution:
+ {
+ integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==
+ }
+ engines: { node: '>=4' }
+
+ get-stream@4.1.0:
+ resolution:
+ {
+ integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ }
+ engines: { node: '>=6' }
+
+ get-stream@5.2.0:
+ resolution:
+ {
+ integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ }
+ engines: { node: '>=8' }
+
+ get-stream@6.0.1:
+ resolution:
+ {
+ integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+ }
+ engines: { node: '>=10' }
+
+ get-stream@8.0.1:
+ resolution:
+ {
+ integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
+ }
+ engines: { node: '>=16' }
+
+ get-stream@9.0.1:
+ resolution:
+ {
+ integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==
+ }
+ engines: { node: '>=18' }
+
+ gifsicle@5.2.0:
+ resolution:
+ {
+ integrity: sha512-vOIS3j0XoTCxq9pkGj43gEix82RkI5FveNgaFZutjbaui/HH+4fR8Y56dwXDuxYo8hR4xOo6/j2h1WHoQW6XLw==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ giget@2.0.0:
+ resolution:
+ {
+ integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==
+ }
+ hasBin: true
+
+ git-raw-commits@4.0.0:
+ resolution:
+ {
+ integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==
+ }
+ engines: { node: '>=16' }
+ hasBin: true
+
+ glob-parent@5.1.2:
+ resolution:
+ {
+ integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ }
+ engines: { node: '>= 6' }
+
+ glob-parent@6.0.2:
+ resolution:
+ {
+ integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ }
+ engines: { node: '>=10.13.0' }
+
+ glob@7.2.3:
+ resolution:
+ {
+ integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ }
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ global-directory@4.0.1:
+ resolution:
+ {
+ integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==
+ }
+ engines: { node: '>=18' }
+
+ global-modules@1.0.0:
+ resolution:
+ {
+ integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ global-modules@2.0.0:
+ resolution:
+ {
+ integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
+ }
+ engines: { node: '>=6' }
+
+ global-prefix@1.0.2:
+ resolution:
+ {
+ integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ global-prefix@3.0.0:
+ resolution:
+ {
+ integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
+ }
+ engines: { node: '>=6' }
+
+ globals@11.12.0:
+ resolution:
+ {
+ integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+ }
+ engines: { node: '>=4' }
+
+ globals@13.24.0:
+ resolution:
+ {
+ integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
+ }
+ engines: { node: '>=8' }
+
+ globals@14.0.0:
+ resolution:
+ {
+ integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
+ }
+ engines: { node: '>=18' }
+
+ globals@15.12.0:
+ resolution:
+ {
+ integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==
+ }
+ engines: { node: '>=18' }
+
+ globby@10.0.2:
+ resolution:
+ {
+ integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==
+ }
+ engines: { node: '>=8' }
+
+ globby@11.1.0:
+ resolution:
+ {
+ integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+ }
+ engines: { node: '>=10' }
+
+ globjoin@0.1.4:
+ resolution:
+ {
+ integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==
+ }
+
+ got@7.1.0:
+ resolution:
+ {
+ integrity: sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==
+ }
+ engines: { node: '>=4' }
+
+ got@8.3.2:
+ resolution:
+ {
+ integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==
+ }
+ engines: { node: '>=4' }
+
+ graceful-fs@4.2.11:
+ resolution:
+ {
+ integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+ }
+
+ graphemer@1.4.0:
+ resolution:
+ {
+ integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+ }
+
+ has-ansi@2.0.0:
+ resolution:
+ {
+ integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ has-flag@3.0.0:
+ resolution:
+ {
+ integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+ }
+ engines: { node: '>=4' }
+
+ has-flag@4.0.0:
+ resolution:
+ {
+ integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+ }
+ engines: { node: '>=8' }
+
+ has-symbol-support-x@1.4.2:
+ resolution:
+ {
+ integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==
+ }
+
+ has-to-string-tag-x@1.4.1:
+ resolution:
+ {
+ integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==
+ }
+
+ hasown@2.0.2:
+ resolution:
+ {
+ integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ }
+ engines: { node: '>= 0.4' }
+
+ he@1.2.0:
+ resolution:
+ {
+ integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+ }
+ hasBin: true
+
+ highlight.js@11.10.0:
+ resolution:
+ {
+ integrity: sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==
+ }
+ engines: { node: '>=12.0.0' }
+
+ homedir-polyfill@1.0.3:
+ resolution:
+ {
+ integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ hookable@5.5.3:
+ resolution:
+ {
+ integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==
+ }
+
+ hookified@1.9.1:
+ resolution:
+ {
+ integrity: sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==
+ }
+
+ hosted-git-info@2.8.9:
+ resolution:
+ {
+ integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+ }
+
+ html-tags@3.3.1:
+ resolution:
+ {
+ integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==
+ }
+ engines: { node: '>=8' }
+
+ html-void-elements@2.0.1:
+ resolution:
+ {
+ integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==
+ }
+
+ htmlparser2@8.0.2:
+ resolution:
+ {
+ integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==
+ }
+
+ http-cache-semantics@3.8.1:
+ resolution:
+ {
+ integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==
+ }
+
+ human-signals@1.1.1:
+ resolution:
+ {
+ integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+ }
+ engines: { node: '>=8.12.0' }
+
+ human-signals@2.1.0:
+ resolution:
+ {
+ integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+ }
+ engines: { node: '>=10.17.0' }
+
+ human-signals@5.0.0:
+ resolution:
+ {
+ integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
+ }
+ engines: { node: '>=16.17.0' }
+
+ human-signals@8.0.1:
+ resolution:
+ {
+ integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==
+ }
+ engines: { node: '>=18.18.0' }
+
+ husky@9.1.7:
+ resolution:
+ {
+ integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==
+ }
+ engines: { node: '>=18' }
+ hasBin: true
+
+ i18next@20.6.1:
+ resolution:
+ {
+ integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==
+ }
+
+ iconv-lite@0.4.24:
+ resolution:
+ {
+ integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ieee754@1.2.1:
+ resolution:
+ {
+ integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+ }
+
+ ignore@5.3.2:
+ resolution:
+ {
+ integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
+ }
+ engines: { node: '>= 4' }
+
+ ignore@7.0.4:
+ resolution:
+ {
+ integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==
+ }
+ engines: { node: '>= 4' }
+
+ imagemin-gifsicle@7.0.0:
+ resolution:
+ {
+ integrity: sha512-LaP38xhxAwS3W8PFh4y5iQ6feoTSF+dTAXFRUEYQWYst6Xd+9L/iPk34QGgK/VO/objmIlmq9TStGfVY2IcHIA==
+ }
+ engines: { node: '>=10' }
+
+ imagemin-jpegtran@7.0.0:
+ resolution:
+ {
+ integrity: sha512-MJoyTCW8YjMJf56NorFE41SR/WkaGA3IYk4JgvMlRwguJEEd3PnP9UxA8Y2UWjquz8d+On3Ds/03ZfiiLS8xTQ==
+ }
+ engines: { node: '>=10' }
+
+ imagemin-mozjpeg@9.0.0:
+ resolution:
+ {
+ integrity: sha512-TwOjTzYqCFRgROTWpVSt5UTT0JeCuzF1jswPLKALDd89+PmrJ2PdMMYeDLYZ1fs9cTovI9GJd68mRSnuVt691w==
+ }
+ engines: { node: '>=10' }
+
+ imagemin-optipng@8.0.0:
+ resolution:
+ {
+ integrity: sha512-CUGfhfwqlPjAC0rm8Fy+R2DJDBGjzy2SkfyT09L8rasnF9jSoHFqJ1xxSZWK6HVPZBMhGPMxCTL70OgTHlLF5A==
+ }
+ engines: { node: '>=10' }
+
+ imagemin-pngquant@9.0.2:
+ resolution:
+ {
+ integrity: sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg==
+ }
+ engines: { node: '>=10' }
+
+ imagemin-svgo@9.0.0:
+ resolution:
+ {
+ integrity: sha512-uNgXpKHd99C0WODkrJ8OO/3zW3qjgS4pW7hcuII0RcHN3tnKxDjJWcitdVC/TZyfIqSricU8WfrHn26bdSW62g==
+ }
+ engines: { node: '>=10' }
+
+ imagemin-webp@6.1.0:
+ resolution:
+ {
+ integrity: sha512-i8ZluZV1pfQX9aVzmZ/VZh9KBSdPwUlp5VruAa9c30GZnX/nMl5n7h+oUMnI7Mg7+SUpu9mYBsw2nsYGUEllWQ==
+ }
+ engines: { node: '>=10' }
+
+ imagemin@7.0.1:
+ resolution:
+ {
+ integrity: sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==
+ }
+ engines: { node: '>=8' }
+
+ immer@9.0.21:
+ resolution:
+ {
+ integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==
+ }
+
+ immutable@5.0.3:
+ resolution:
+ {
+ integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==
+ }
+
+ import-fresh@3.3.0:
+ resolution:
+ {
+ integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ }
+ engines: { node: '>=6' }
+
+ import-lazy@3.1.0:
+ resolution:
+ {
+ integrity: sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==
+ }
+ engines: { node: '>=6' }
+
+ import-meta-resolve@4.1.0:
+ resolution:
+ {
+ integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==
+ }
+
+ imurmurhash@0.1.4:
+ resolution:
+ {
+ integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+ }
+ engines: { node: '>=0.8.19' }
+
+ indent-string@2.1.0:
+ resolution:
+ {
+ integrity: sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ inflight@1.0.6:
+ resolution:
+ {
+ integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ }
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution:
+ {
+ integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+ }
+
+ ini@1.3.8:
+ resolution:
+ {
+ integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+ }
+
+ ini@4.1.1:
+ resolution:
+ {
+ integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==
+ }
+ engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 }
+
+ inquirer@8.2.5:
+ resolution:
+ {
+ integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==
+ }
+ engines: { node: '>=12.0.0' }
+
+ into-stream@3.1.0:
+ resolution:
+ {
+ integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==
+ }
+ engines: { node: '>=4' }
+
+ is-arrayish@0.2.1:
+ resolution:
+ {
+ integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+ }
+
+ is-binary-path@2.1.0:
+ resolution:
+ {
+ integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ }
+ engines: { node: '>=8' }
+
+ is-core-module@2.16.1:
+ resolution:
+ {
+ integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
+ }
+ engines: { node: '>= 0.4' }
+
+ is-cwebp-readable@3.0.0:
+ resolution:
+ {
+ integrity: sha512-bpELc7/Q1/U5MWHn4NdHI44R3jxk0h9ew9ljzabiRl70/UIjL/ZAqRMb52F5+eke/VC8yTiv4Ewryo1fPWidvA==
+ }
+
+ is-docker@2.2.1:
+ resolution:
+ {
+ integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+ }
+ engines: { node: '>=8' }
+ hasBin: true
+
+ is-docker@3.0.0:
+ resolution:
+ {
+ integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+ hasBin: true
+
+ is-extglob@2.1.1:
+ resolution:
+ {
+ integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-finite@1.1.0:
+ resolution:
+ {
+ integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-fullwidth-code-point@3.0.0:
+ resolution:
+ {
+ integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+ }
+ engines: { node: '>=8' }
+
+ is-fullwidth-code-point@4.0.0:
+ resolution:
+ {
+ integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
+ }
+ engines: { node: '>=12' }
+
+ is-fullwidth-code-point@5.0.0:
+ resolution:
+ {
+ integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==
+ }
+ engines: { node: '>=18' }
+
+ is-gif@3.0.0:
+ resolution:
+ {
+ integrity: sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw==
+ }
+ engines: { node: '>=6' }
+
+ is-glob@4.0.3:
+ resolution:
+ {
+ integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-hotkey@0.2.0:
+ resolution:
+ {
+ integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==
+ }
+
+ is-inside-container@1.0.0:
+ resolution:
+ {
+ integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==
+ }
+ engines: { node: '>=14.16' }
+ hasBin: true
+
+ is-interactive@1.0.0:
+ resolution:
+ {
+ integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+ }
+ engines: { node: '>=8' }
+
+ is-jpg@2.0.0:
+ resolution:
+ {
+ integrity: sha512-ODlO0ruzhkzD3sdynIainVP5eoOFNN85rxA1+cwwnPe4dKyX0r5+hxNO5XpCrxlHcmb9vkOit9mhRD2JVuimHg==
+ }
+ engines: { node: '>=6' }
+
+ is-natural-number@4.0.1:
+ resolution:
+ {
+ integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==
+ }
+
+ is-number@7.0.0:
+ resolution:
+ {
+ integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+ }
+ engines: { node: '>=0.12.0' }
+
+ is-obj@2.0.0:
+ resolution:
+ {
+ integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+ }
+ engines: { node: '>=8' }
+
+ is-object@1.0.2:
+ resolution:
+ {
+ integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+ }
+
+ is-plain-obj@1.1.0:
+ resolution:
+ {
+ integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-plain-obj@4.1.0:
+ resolution:
+ {
+ integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
+ }
+ engines: { node: '>=12' }
+
+ is-plain-object@5.0.0:
+ resolution:
+ {
+ integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-png@2.0.0:
+ resolution:
+ {
+ integrity: sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==
+ }
+ engines: { node: '>=8' }
+
+ is-retry-allowed@1.2.0:
+ resolution:
+ {
+ integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-stream@1.1.0:
+ resolution:
+ {
+ integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-stream@2.0.1:
+ resolution:
+ {
+ integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+ }
+ engines: { node: '>=8' }
+
+ is-stream@3.0.0:
+ resolution:
+ {
+ integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+
+ is-stream@4.0.1:
+ resolution:
+ {
+ integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==
+ }
+ engines: { node: '>=18' }
+
+ is-svg@4.4.0:
+ resolution:
+ {
+ integrity: sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug==
+ }
+ engines: { node: '>=6' }
+
+ is-text-path@2.0.0:
+ resolution:
+ {
+ integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==
+ }
+ engines: { node: '>=8' }
+
+ is-unicode-supported@0.1.0:
+ resolution:
+ {
+ integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+ }
+ engines: { node: '>=10' }
+
+ is-unicode-supported@2.1.0:
+ resolution:
+ {
+ integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==
+ }
+ engines: { node: '>=18' }
+
+ is-url@1.2.4:
+ resolution:
+ {
+ integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
+ }
+
+ is-utf8@0.2.1:
+ resolution:
+ {
+ integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==
+ }
+
+ is-what@4.1.16:
+ resolution:
+ {
+ integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==
+ }
+ engines: { node: '>=12.13' }
+
+ is-windows@1.0.2:
+ resolution:
+ {
+ integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-wsl@2.2.0:
+ resolution:
+ {
+ integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ }
+ engines: { node: '>=8' }
+
+ is-wsl@3.1.0:
+ resolution:
+ {
+ integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==
+ }
+ engines: { node: '>=16' }
+
+ isarray@1.0.0:
+ resolution:
+ {
+ integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+ }
+
+ isexe@2.0.0:
+ resolution:
+ {
+ integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+ }
+
+ isurl@1.0.0:
+ resolution:
+ {
+ integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==
+ }
+ engines: { node: '>= 4' }
+
+ jiti@1.21.6:
+ resolution:
+ {
+ integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
+ }
+ hasBin: true
+
+ jiti@2.4.2:
+ resolution:
+ {
+ integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==
+ }
+ hasBin: true
+
+ jpegtran-bin@5.0.2:
+ resolution:
+ {
+ integrity: sha512-4FSmgIcr8d5+V6T1+dHbPZjaFH0ogVyP4UVsE+zri7S9YLO4qAT2our4IN3sW3STVgNTbqPermdIgt2XuAJ4EA==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ jpegtran-bin@6.0.1:
+ resolution:
+ {
+ integrity: sha512-WohhhHhqe22de7PU8hXs6Sr5d4BAvkrfA93NR5tGlHyPnFLgvEW/bH+q7fv65JgoiQDsd7SBwwQ/OGRBivU3Mw==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+ hasBin: true
+
+ js-tokens@4.0.0:
+ resolution:
+ {
+ integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+ }
+
+ js-tokens@9.0.1:
+ resolution:
+ {
+ integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==
+ }
+
+ js-yaml@4.1.0:
+ resolution:
+ {
+ integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ }
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution:
+ {
+ integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ json-buffer@3.0.0:
+ resolution:
+ {
+ integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==
+ }
+
+ json-buffer@3.0.1:
+ resolution:
+ {
+ integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+ }
+
+ json-parse-even-better-errors@2.3.1:
+ resolution:
+ {
+ integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+ }
+
+ json-schema-traverse@0.4.1:
+ resolution:
+ {
+ integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+ }
+
+ json-schema-traverse@1.0.0:
+ resolution:
+ {
+ integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+ }
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution:
+ {
+ integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+ }
+
+ json5@2.2.3:
+ resolution:
+ {
+ integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ jsonfile@6.1.0:
+ resolution:
+ {
+ integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ }
+
+ jsonparse@1.3.1:
+ resolution:
+ {
+ integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
+ }
+ engines: { '0': node >= 0.2.0 }
+
+ junk@3.1.0:
+ resolution:
+ {
+ integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==
+ }
+ engines: { node: '>=8' }
+
+ keyv@3.0.0:
+ resolution:
+ {
+ integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==
+ }
+
+ keyv@4.5.4:
+ resolution:
+ {
+ integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ }
+
+ keyv@5.3.3:
+ resolution:
+ {
+ integrity: sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==
+ }
+
+ kind-of@6.0.3:
+ resolution:
+ {
+ integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ klona@2.0.6:
+ resolution:
+ {
+ integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==
+ }
+ engines: { node: '>= 8' }
+
+ knitwork@1.2.0:
+ resolution:
+ {
+ integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==
+ }
+
+ known-css-properties@0.35.0:
+ resolution:
+ {
+ integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==
+ }
+
+ known-css-properties@0.36.0:
+ resolution:
+ {
+ integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==
+ }
+
+ kolorist@1.8.0:
+ resolution:
+ {
+ integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==
+ }
+
+ levn@0.4.1:
+ resolution:
+ {
+ integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ lilconfig@3.1.3:
+ resolution:
+ {
+ integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==
+ }
+ engines: { node: '>=14' }
+
+ lines-and-columns@1.2.4:
+ resolution:
+ {
+ integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+ }
+
+ linkify-it@5.0.0:
+ resolution:
+ {
+ integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
+ }
+
+ lint-staged@15.5.2:
+ resolution:
+ {
+ integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==
+ }
+ engines: { node: '>=18.12.0' }
+ hasBin: true
+
+ listr2@8.2.5:
+ resolution:
+ {
+ integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==
+ }
+ engines: { node: '>=18.0.0' }
+
+ load-json-file@1.1.0:
+ resolution:
+ {
+ integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ local-pkg@0.5.1:
+ resolution:
+ {
+ integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==
+ }
+ engines: { node: '>=14' }
+
+ local-pkg@1.1.1:
+ resolution:
+ {
+ integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==
+ }
+ engines: { node: '>=14' }
+
+ locate-path@6.0.0:
+ resolution:
+ {
+ integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ }
+ engines: { node: '>=10' }
+
+ locate-path@7.2.0:
+ resolution:
+ {
+ integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+
+ lodash-es@4.17.21:
+ resolution:
+ {
+ integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+ }
+
+ lodash-unified@1.0.3:
+ resolution:
+ {
+ integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
+ }
+ peerDependencies:
+ '@types/lodash-es': '*'
+ lodash: '*'
+ lodash-es: '*'
+
+ lodash.camelcase@4.3.0:
+ resolution:
+ {
+ integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+ }
+
+ lodash.clonedeep@4.5.0:
+ resolution:
+ {
+ integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==
+ }
+
+ lodash.debounce@4.0.8:
+ resolution:
+ {
+ integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+ }
+
+ lodash.foreach@4.5.0:
+ resolution:
+ {
+ integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==
+ }
+
+ lodash.isequal@4.5.0:
+ resolution:
+ {
+ integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
+ }
+
+ lodash.isplainobject@4.0.6:
+ resolution:
+ {
+ integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
+ }
+
+ lodash.kebabcase@4.1.1:
+ resolution:
+ {
+ integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==
+ }
+
+ lodash.map@4.6.0:
+ resolution:
+ {
+ integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==
+ }
+
+ lodash.merge@4.6.2:
+ resolution:
+ {
+ integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+ }
+
+ lodash.mergewith@4.6.2:
+ resolution:
+ {
+ integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==
+ }
+
+ lodash.snakecase@4.1.1:
+ resolution:
+ {
+ integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==
+ }
+
+ lodash.startcase@4.4.0:
+ resolution:
+ {
+ integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==
+ }
+
+ lodash.throttle@4.1.1:
+ resolution:
+ {
+ integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
+ }
+
+ lodash.toarray@4.4.0:
+ resolution:
+ {
+ integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==
+ }
+
+ lodash.truncate@4.4.2:
+ resolution:
+ {
+ integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==
+ }
+
+ lodash.uniq@4.5.0:
+ resolution:
+ {
+ integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
+ }
+
+ lodash.upperfirst@4.3.1:
+ resolution:
+ {
+ integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==
+ }
+
+ lodash@4.17.21:
+ resolution:
+ {
+ integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+ }
+
+ log-symbols@4.1.0:
+ resolution:
+ {
+ integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
+ }
+ engines: { node: '>=10' }
+
+ log-update@6.1.0:
+ resolution:
+ {
+ integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==
+ }
+ engines: { node: '>=18' }
+
+ logalot@2.1.0:
+ resolution:
+ {
+ integrity: sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ longest@1.0.1:
+ resolution:
+ {
+ integrity: sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ longest@2.0.1:
+ resolution:
+ {
+ integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ loud-rejection@1.6.0:
+ resolution:
+ {
+ integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ lowercase-keys@1.0.0:
+ resolution:
+ {
+ integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ lowercase-keys@1.0.1:
+ resolution:
+ {
+ integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ lpad-align@1.1.2:
+ resolution:
+ {
+ integrity: sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==
+ }
+ engines: { node: '>=0.10.0' }
+ hasBin: true
+
+ lru-cache@10.4.3:
+ resolution:
+ {
+ integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
+ }
+
+ lru-cache@4.1.5:
+ resolution:
+ {
+ integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
+ }
+
+ lru-cache@5.1.1:
+ resolution:
+ {
+ integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ }
+
+ magic-string@0.30.14:
+ resolution:
+ {
+ integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==
+ }
+
+ magic-string@0.30.17:
+ resolution:
+ {
+ integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==
+ }
+
+ make-dir@1.3.0:
+ resolution:
+ {
+ integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
+ }
+ engines: { node: '>=4' }
+
+ make-dir@3.1.0:
+ resolution:
+ {
+ integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ }
+ engines: { node: '>=8' }
+
+ map-obj@1.0.1:
+ resolution:
+ {
+ integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ markdown-it-image-figures@2.1.1:
+ resolution:
+ {
+ integrity: sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==
+ }
+ engines: { node: '>=12.0.0' }
+ peerDependencies:
+ markdown-it: '*'
+
+ markdown-it-sub@2.0.0:
+ resolution:
+ {
+ integrity: sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==
+ }
+
+ markdown-it-sup@2.0.0:
+ resolution:
+ {
+ integrity: sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA==
+ }
+
+ markdown-it@14.1.0:
+ resolution:
+ {
+ integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==
+ }
+ hasBin: true
+
+ mathml-tag-names@2.1.3:
+ resolution:
+ {
+ integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
+ }
+
+ md-editor-v3@4.21.3:
+ resolution:
+ {
+ integrity: sha512-9+RCioqFIWSExTsG0jf9T/RTrFhtH8SpRcKVjHeEQSlExAr/zsgYt/M9XUy/nuGx87hgNKDzK0PXp/uOlDumAw==
+ }
+ peerDependencies:
+ vue: ^3.2.47
+
+ mdn-data@2.0.14:
+ resolution:
+ {
+ integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+ }
+
+ mdn-data@2.12.1:
+ resolution:
+ {
+ integrity: sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==
+ }
+
+ mdn-data@2.12.2:
+ resolution:
+ {
+ integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==
+ }
+
+ mdurl@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==
+ }
+
+ medium-zoom@1.1.0:
+ resolution:
+ {
+ integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==
+ }
+
+ memoize-one@6.0.0:
+ resolution:
+ {
+ integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
+ }
+
+ meow@12.1.1:
+ resolution:
+ {
+ integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==
+ }
+ engines: { node: '>=16.10' }
+
+ meow@13.2.0:
+ resolution:
+ {
+ integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==
+ }
+ engines: { node: '>=18' }
+
+ meow@3.7.0:
+ resolution:
+ {
+ integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ merge-stream@2.0.0:
+ resolution:
+ {
+ integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+ }
+
+ merge2@1.4.1:
+ resolution:
+ {
+ integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+ }
+ engines: { node: '>= 8' }
+
+ merge@2.1.1:
+ resolution:
+ {
+ integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==
+ }
+
+ micromatch@4.0.8:
+ resolution:
+ {
+ integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
+ }
+ engines: { node: '>=8.6' }
+
+ mime-db@1.52.0:
+ resolution:
+ {
+ integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+ }
+ engines: { node: '>= 0.6' }
+
+ mime-match@1.0.2:
+ resolution:
+ {
+ integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==
+ }
+
+ mime-types@2.1.35:
+ resolution:
+ {
+ integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ }
+ engines: { node: '>= 0.6' }
+
+ mimic-fn@2.1.0:
+ resolution:
+ {
+ integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+ }
+ engines: { node: '>=6' }
+
+ mimic-fn@4.0.0:
+ resolution:
+ {
+ integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+ }
+ engines: { node: '>=12' }
+
+ mimic-function@5.0.1:
+ resolution:
+ {
+ integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==
+ }
+ engines: { node: '>=18' }
+
+ mimic-response@1.0.1:
+ resolution:
+ {
+ integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+ }
+ engines: { node: '>=4' }
+
+ minimatch@3.1.2:
+ resolution:
+ {
+ integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ }
+
+ minimatch@9.0.5:
+ resolution:
+ {
+ integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ }
+ engines: { node: '>=16 || 14 >=14.17' }
+
+ minimist@1.2.7:
+ resolution:
+ {
+ integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
+ }
+
+ minimist@1.2.8:
+ resolution:
+ {
+ integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+ }
+
+ mitt@3.0.1:
+ resolution:
+ {
+ integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
+ }
+
+ mlly@1.7.3:
+ resolution:
+ {
+ integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==
+ }
+
+ mlly@1.7.4:
+ resolution:
+ {
+ integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==
+ }
+
+ mozjpeg@7.1.1:
+ resolution:
+ {
+ integrity: sha512-iIDxWvzhWvLC9mcRJ1uSkiKaj4drF58oCqK2bITm5c2Jt6cJ8qQjSSru2PCaysG+hLIinryj8mgz5ZJzOYTv1A==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ mrmime@2.0.1:
+ resolution:
+ {
+ integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==
+ }
+ engines: { node: '>=10' }
+
+ ms@2.1.3:
+ resolution:
+ {
+ integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+ }
+
+ muggle-string@0.4.1:
+ resolution:
+ {
+ integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==
+ }
+
+ mute-stream@0.0.8:
+ resolution:
+ {
+ integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+ }
+
+ namespace-emitter@2.0.1:
+ resolution:
+ {
+ integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==
+ }
+
+ nanoid@3.3.8:
+ resolution:
+ {
+ integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
+ }
+ engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ hasBin: true
+
+ nanoid@5.1.5:
+ resolution:
+ {
+ integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==
+ }
+ engines: { node: ^18 || >=20 }
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution:
+ {
+ integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+ }
+
+ next-tick@1.1.0:
+ resolution:
+ {
+ integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
+ }
+
+ nice-try@1.0.5:
+ resolution:
+ {
+ integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+ }
+
+ node-addon-api@7.1.1:
+ resolution:
+ {
+ integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==
+ }
+
+ node-fetch-native@1.6.6:
+ resolution:
+ {
+ integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==
+ }
+
+ node-releases@2.0.19:
+ resolution:
+ {
+ integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
+ }
+
+ normalize-package-data@2.5.0:
+ resolution:
+ {
+ integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ }
+
+ normalize-path@3.0.0:
+ resolution:
+ {
+ integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ normalize-url@2.0.1:
+ resolution:
+ {
+ integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==
+ }
+ engines: { node: '>=4' }
+
+ normalize-wheel-es@1.2.0:
+ resolution:
+ {
+ integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==
+ }
+
+ npm-conf@1.1.3:
+ resolution:
+ {
+ integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==
+ }
+ engines: { node: '>=4' }
+
+ npm-run-path@2.0.2:
+ resolution:
+ {
+ integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
+ }
+ engines: { node: '>=4' }
+
+ npm-run-path@4.0.1:
+ resolution:
+ {
+ integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ }
+ engines: { node: '>=8' }
+
+ npm-run-path@5.3.0:
+ resolution:
+ {
+ integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+
+ npm-run-path@6.0.0:
+ resolution:
+ {
+ integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==
+ }
+ engines: { node: '>=18' }
+
+ nprogress@0.2.0:
+ resolution:
+ {
+ integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==
+ }
+
+ nth-check@2.1.1:
+ resolution:
+ {
+ integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+ }
+
+ nypm@0.6.0:
+ resolution:
+ {
+ integrity: sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==
+ }
+ engines: { node: ^14.16.0 || >=16.10.0 }
+ hasBin: true
+
+ object-assign@4.1.1:
+ resolution:
+ {
+ integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ohash@2.0.11:
+ resolution:
+ {
+ integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==
+ }
+
+ once@1.4.0:
+ resolution:
+ {
+ integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ }
+
+ onetime@5.1.2:
+ resolution:
+ {
+ integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ }
+ engines: { node: '>=6' }
+
+ onetime@6.0.0:
+ resolution:
+ {
+ integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+ }
+ engines: { node: '>=12' }
+
+ onetime@7.0.0:
+ resolution:
+ {
+ integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==
+ }
+ engines: { node: '>=18' }
+
+ open@10.1.2:
+ resolution:
+ {
+ integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==
+ }
+ engines: { node: '>=18' }
+
+ open@8.4.2:
+ resolution:
+ {
+ integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
+ }
+ engines: { node: '>=12' }
+
+ optionator@0.9.4:
+ resolution:
+ {
+ integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ optipng-bin@7.0.1:
+ resolution:
+ {
+ integrity: sha512-W99mpdW7Nt2PpFiaO+74pkht7KEqkXkeRomdWXfEz3SALZ6hns81y/pm1dsGZ6ItUIfchiNIP6ORDr1zETU1jA==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ ora@5.4.1:
+ resolution:
+ {
+ integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==
+ }
+ engines: { node: '>=10' }
+
+ os-filter-obj@2.0.0:
+ resolution:
+ {
+ integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==
+ }
+ engines: { node: '>=4' }
+
+ os-tmpdir@1.0.2:
+ resolution:
+ {
+ integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ow@0.17.0:
+ resolution:
+ {
+ integrity: sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA==
+ }
+ engines: { node: '>=10' }
+
+ p-cancelable@0.3.0:
+ resolution:
+ {
+ integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==
+ }
+ engines: { node: '>=4' }
+
+ p-cancelable@0.4.1:
+ resolution:
+ {
+ integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==
+ }
+ engines: { node: '>=4' }
+
+ p-event@1.3.0:
+ resolution:
+ {
+ integrity: sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==
+ }
+ engines: { node: '>=4' }
+
+ p-event@2.3.1:
+ resolution:
+ {
+ integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==
+ }
+ engines: { node: '>=6' }
+
+ p-finally@1.0.0:
+ resolution:
+ {
+ integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
+ }
+ engines: { node: '>=4' }
+
+ p-is-promise@1.1.0:
+ resolution:
+ {
+ integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==
+ }
+ engines: { node: '>=4' }
+
+ p-limit@3.1.0:
+ resolution:
+ {
+ integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ }
+ engines: { node: '>=10' }
+
+ p-limit@4.0.0:
+ resolution:
+ {
+ integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+
+ p-locate@5.0.0:
+ resolution:
+ {
+ integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ }
+ engines: { node: '>=10' }
+
+ p-locate@6.0.0:
+ resolution:
+ {
+ integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+
+ p-map-series@1.0.0:
+ resolution:
+ {
+ integrity: sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==
+ }
+ engines: { node: '>=4' }
+
+ p-pipe@3.1.0:
+ resolution:
+ {
+ integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==
+ }
+ engines: { node: '>=8' }
+
+ p-reduce@1.0.0:
+ resolution:
+ {
+ integrity: sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==
+ }
+ engines: { node: '>=4' }
+
+ p-timeout@1.2.1:
+ resolution:
+ {
+ integrity: sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==
+ }
+ engines: { node: '>=4' }
+
+ p-timeout@2.0.1:
+ resolution:
+ {
+ integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==
+ }
+ engines: { node: '>=4' }
+
+ parent-module@1.0.1:
+ resolution:
+ {
+ integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ }
+ engines: { node: '>=6' }
+
+ parse-json@2.2.0:
+ resolution:
+ {
+ integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ parse-json@5.2.0:
+ resolution:
+ {
+ integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ }
+ engines: { node: '>=8' }
+
+ parse-ms@4.0.0:
+ resolution:
+ {
+ integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==
+ }
+ engines: { node: '>=18' }
+
+ parse-passwd@1.0.0:
+ resolution:
+ {
+ integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ path-browserify@1.0.1:
+ resolution:
+ {
+ integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+ }
+
+ path-exists@2.1.0:
+ resolution:
+ {
+ integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ path-exists@4.0.0:
+ resolution:
+ {
+ integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+ }
+ engines: { node: '>=8' }
+
+ path-exists@5.0.0:
+ resolution:
+ {
+ integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+
+ path-is-absolute@1.0.1:
+ resolution:
+ {
+ integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ path-key@2.0.1:
+ resolution:
+ {
+ integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
+ }
+ engines: { node: '>=4' }
+
+ path-key@3.1.1:
+ resolution:
+ {
+ integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+ }
+ engines: { node: '>=8' }
+
+ path-key@4.0.0:
+ resolution:
+ {
+ integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
+ }
+ engines: { node: '>=12' }
+
+ path-parse@1.0.7:
+ resolution:
+ {
+ integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+ }
+
+ path-type@1.1.0:
+ resolution:
+ {
+ integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ path-type@4.0.0:
+ resolution:
+ {
+ integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+ }
+ engines: { node: '>=8' }
+
+ pathe@0.2.0:
+ resolution:
+ {
+ integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==
+ }
+
+ pathe@1.1.2:
+ resolution:
+ {
+ integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
+ }
+
+ pathe@2.0.3:
+ resolution:
+ {
+ integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==
+ }
+
+ pend@1.2.0:
+ resolution:
+ {
+ integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
+ }
+
+ perfect-debounce@1.0.0:
+ resolution:
+ {
+ integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
+ }
+
+ picocolors@1.1.1:
+ resolution:
+ {
+ integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+ }
+
+ picomatch@2.3.1:
+ resolution:
+ {
+ integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+ }
+ engines: { node: '>=8.6' }
+
+ picomatch@4.0.2:
+ resolution:
+ {
+ integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
+ }
+ engines: { node: '>=12' }
+
+ pidtree@0.6.0:
+ resolution:
+ {
+ integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==
+ }
+ engines: { node: '>=0.10' }
+ hasBin: true
+
+ pify@2.3.0:
+ resolution:
+ {
+ integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+ }
+ engines: { node: '>=0.10.0' }
+
+ pify@3.0.0:
+ resolution:
+ {
+ integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
+ }
+ engines: { node: '>=4' }
+
+ pify@4.0.1:
+ resolution:
+ {
+ integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+ }
+ engines: { node: '>=6' }
+
+ pinia-plugin-persistedstate@4.3.0:
+ resolution:
+ {
+ integrity: sha512-x9wxpHj6iFDj5ITQJ3rj6+KesEqyRk/vqcE3WE+VGfetleV9Zufqwa9qJ6AkA5wmRSQEp7BTA1us/MDVTRHFFw==
+ }
+ peerDependencies:
+ '@pinia/nuxt': '>=0.10.0'
+ pinia: '>=3.0.0'
+ peerDependenciesMeta:
+ '@pinia/nuxt':
+ optional: true
+ pinia:
+ optional: true
+
+ pinia@3.0.2:
+ resolution:
+ {
+ integrity: sha512-sH2JK3wNY809JOeiiURUR0wehJ9/gd9qFN2Y828jCbxEzKEmEt0pzCXwqiSTfuRsK9vQsOflSdnbdBOGrhtn+g==
+ }
+ peerDependencies:
+ typescript: '>=4.4.4'
+ vue: ^2.7.0 || ^3.5.11
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ pinkie-promise@2.0.1:
+ resolution:
+ {
+ integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ pinkie@2.0.4:
+ resolution:
+ {
+ integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ pkg-types@1.2.1:
+ resolution:
+ {
+ integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==
+ }
+
+ pkg-types@1.3.1:
+ resolution:
+ {
+ integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==
+ }
+
+ pkg-types@2.1.0:
+ resolution:
+ {
+ integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==
+ }
+
+ pngquant-bin@6.0.1:
+ resolution:
+ {
+ integrity: sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ postcss-html@1.7.0:
+ resolution:
+ {
+ integrity: sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==
+ }
+ engines: { node: ^12 || >=14 }
+
+ postcss-media-query-parser@0.2.3:
+ resolution:
+ {
+ integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==
+ }
+
+ postcss-resolve-nested-selector@0.1.6:
+ resolution:
+ {
+ integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==
+ }
+
+ postcss-safe-parser@6.0.0:
+ resolution:
+ {
+ integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==
+ }
+ engines: { node: '>=12.0' }
+ peerDependencies:
+ postcss: ^8.3.3
+
+ postcss-safe-parser@7.0.1:
+ resolution:
+ {
+ integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==
+ }
+ engines: { node: '>=18.0' }
+ peerDependencies:
+ postcss: ^8.4.31
+
+ postcss-scss@4.0.9:
+ resolution:
+ {
+ integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==
+ }
+ engines: { node: '>=12.0' }
+ peerDependencies:
+ postcss: ^8.4.29
+
+ postcss-selector-parser@6.1.2:
+ resolution:
+ {
+ integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
+ }
+ engines: { node: '>=4' }
+
+ postcss-selector-parser@7.0.0:
+ resolution:
+ {
+ integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==
+ }
+ engines: { node: '>=4' }
+
+ postcss-selector-parser@7.1.0:
+ resolution:
+ {
+ integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==
+ }
+ engines: { node: '>=4' }
+
+ postcss-sorting@8.0.2:
+ resolution:
+ {
+ integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==
+ }
+ peerDependencies:
+ postcss: ^8.4.20
+
+ postcss-value-parser@4.2.0:
+ resolution:
+ {
+ integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+ }
+
+ postcss@8.4.49:
+ resolution:
+ {
+ integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
+ postcss@8.5.3:
+ resolution:
+ {
+ integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
+ preact@10.25.0:
+ resolution:
+ {
+ integrity: sha512-6bYnzlLxXV3OSpUxLdaxBmE7PMOu0aR3pG6lryK/0jmvcDFPlcXGQAt5DpK3RITWiDrfYZRI0druyaK/S9kYLg==
+ }
+
+ prelude-ls@1.2.1:
+ resolution:
+ {
+ integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ prepend-http@1.0.4:
+ resolution:
+ {
+ integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ prepend-http@2.0.0:
+ resolution:
+ {
+ integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
+ }
+ engines: { node: '>=4' }
+
+ prettier-linter-helpers@1.0.0:
+ resolution:
+ {
+ integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+ }
+ engines: { node: '>=6.0.0' }
+
+ prettier@3.5.3:
+ resolution:
+ {
+ integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==
+ }
+ engines: { node: '>=14' }
+ hasBin: true
+
+ pretty-ms@9.2.0:
+ resolution:
+ {
+ integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==
+ }
+ engines: { node: '>=18' }
+
+ prismjs@1.29.0:
+ resolution:
+ {
+ integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==
+ }
+ engines: { node: '>=6' }
+
+ process-nextick-args@2.0.1:
+ resolution:
+ {
+ integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+ }
+
+ proto-list@1.2.4:
+ resolution:
+ {
+ integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
+ }
+
+ proxy-from-env@1.1.0:
+ resolution:
+ {
+ integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+ }
+
+ pseudomap@1.0.2:
+ resolution:
+ {
+ integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
+ }
+
+ pump@3.0.2:
+ resolution:
+ {
+ integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==
+ }
+
+ punycode.js@2.3.1:
+ resolution:
+ {
+ integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==
+ }
+ engines: { node: '>=6' }
+
+ punycode@2.3.1:
+ resolution:
+ {
+ integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+ }
+ engines: { node: '>=6' }
+
+ qrcode.vue@3.6.0:
+ resolution:
+ {
+ integrity: sha512-vQcl2fyHYHMjDO1GguCldJxepq2izQjBkDEEu9NENgfVKP6mv/e2SU62WbqYHGwTgWXLhxZ1NCD1dAZKHQq1fg==
+ }
+ peerDependencies:
+ vue: ^3.0.0
+
+ quansync@0.2.10:
+ resolution:
+ {
+ integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==
+ }
+
+ query-string@5.1.1:
+ resolution:
+ {
+ integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ queue-microtask@1.2.3:
+ resolution:
+ {
+ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+ }
+
+ rc9@2.1.2:
+ resolution:
+ {
+ integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==
+ }
+
+ read-pkg-up@1.0.1:
+ resolution:
+ {
+ integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ read-pkg@1.1.0:
+ resolution:
+ {
+ integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ readable-stream@2.3.8:
+ resolution:
+ {
+ integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ }
+
+ readable-stream@3.6.2:
+ resolution:
+ {
+ integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ }
+ engines: { node: '>= 6' }
+
+ readdirp@3.6.0:
+ resolution:
+ {
+ integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ }
+ engines: { node: '>=8.10.0' }
+
+ readdirp@4.0.2:
+ resolution:
+ {
+ integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==
+ }
+ engines: { node: '>= 14.16.0' }
+
+ redent@1.0.0:
+ resolution:
+ {
+ integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ regenerator-runtime@0.14.1:
+ resolution:
+ {
+ integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
+ }
+
+ repeating@2.0.1:
+ resolution:
+ {
+ integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ replace-ext@1.0.1:
+ resolution:
+ {
+ integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
+ }
+ engines: { node: '>= 0.10' }
+
+ require-directory@2.1.1:
+ resolution:
+ {
+ integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ require-from-string@2.0.2:
+ resolution:
+ {
+ integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ resolve-dir@1.0.1:
+ resolution:
+ {
+ integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ resolve-from@4.0.0:
+ resolution:
+ {
+ integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+ }
+ engines: { node: '>=4' }
+
+ resolve-from@5.0.0:
+ resolution:
+ {
+ integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+ }
+ engines: { node: '>=8' }
+
+ resolve@1.22.10:
+ resolution:
+ {
+ integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
+ }
+ engines: { node: '>= 0.4' }
+ hasBin: true
+
+ responselike@1.0.2:
+ resolution:
+ {
+ integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==
+ }
+
+ restore-cursor@3.1.0:
+ resolution:
+ {
+ integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ }
+ engines: { node: '>=8' }
+
+ restore-cursor@5.1.0:
+ resolution:
+ {
+ integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==
+ }
+ engines: { node: '>=18' }
+
+ reusify@1.0.4:
+ resolution:
+ {
+ integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+ }
+ engines: { iojs: '>=1.0.0', node: '>=0.10.0' }
+
+ rfdc@1.4.1:
+ resolution:
+ {
+ integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
+ }
+
+ rimraf@2.7.1:
+ resolution:
+ {
+ integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ }
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ rollup-plugin-visualizer@5.12.0:
+ resolution:
+ {
+ integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==
+ }
+ engines: { node: '>=14' }
+ hasBin: true
+ peerDependencies:
+ rollup: 2.x || 3.x || 4.x
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ rollup@4.34.8:
+ resolution:
+ {
+ integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==
+ }
+ engines: { node: '>=18.0.0', npm: '>=8.0.0' }
+ hasBin: true
+
+ run-applescript@7.0.0:
+ resolution:
+ {
+ integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==
+ }
+ engines: { node: '>=18' }
+
+ run-async@2.4.1:
+ resolution:
+ {
+ integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
+ }
+ engines: { node: '>=0.12.0' }
+
+ run-parallel@1.2.0:
+ resolution:
+ {
+ integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ }
+
+ rxjs@7.8.1:
+ resolution:
+ {
+ integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
+ }
+
+ safe-buffer@5.1.2:
+ resolution:
+ {
+ integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+ }
+
+ safe-buffer@5.2.1:
+ resolution:
+ {
+ integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+ }
+
+ safer-buffer@2.1.2:
+ resolution:
+ {
+ integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+ }
+
+ sass@1.81.0:
+ resolution:
+ {
+ integrity: sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA==
+ }
+ engines: { node: '>=14.0.0' }
+ hasBin: true
+
+ scroll-into-view-if-needed@2.2.31:
+ resolution:
+ {
+ integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
+ }
+
+ scule@1.3.0:
+ resolution:
+ {
+ integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==
+ }
+
+ seek-bzip@1.0.6:
+ resolution:
+ {
+ integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==
+ }
+ hasBin: true
+
+ semver-regex@2.0.0:
+ resolution:
+ {
+ integrity: sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==
+ }
+ engines: { node: '>=6' }
+
+ semver-truncate@1.1.2:
+ resolution:
+ {
+ integrity: sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==
+ }
+ engines: { node: '>=0.10.0' }
+
+ semver@5.7.2:
+ resolution:
+ {
+ integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+ }
+ hasBin: true
+
+ semver@6.3.1:
+ resolution:
+ {
+ integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+ }
+ hasBin: true
+
+ semver@7.6.3:
+ resolution:
+ {
+ integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ semver@7.7.2:
+ resolution:
+ {
+ integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ shebang-command@1.2.0:
+ resolution:
+ {
+ integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ shebang-command@2.0.0:
+ resolution:
+ {
+ integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ }
+ engines: { node: '>=8' }
+
+ shebang-regex@1.0.0:
+ resolution:
+ {
+ integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ shebang-regex@3.0.0:
+ resolution:
+ {
+ integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+ }
+ engines: { node: '>=8' }
+
+ signal-exit@3.0.7:
+ resolution:
+ {
+ integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+ }
+
+ signal-exit@4.1.0:
+ resolution:
+ {
+ integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+ }
+ engines: { node: '>=14' }
+
+ sirv@3.0.1:
+ resolution:
+ {
+ integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==
+ }
+ engines: { node: '>=18' }
+
+ slash@3.0.0:
+ resolution:
+ {
+ integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+ }
+ engines: { node: '>=8' }
+
+ slate-history@0.66.0:
+ resolution:
+ {
+ integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==
+ }
+ peerDependencies:
+ slate: '>=0.65.3'
+
+ slate@0.72.8:
+ resolution:
+ {
+ integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==
+ }
+
+ slice-ansi@4.0.0:
+ resolution:
+ {
+ integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+ }
+ engines: { node: '>=10' }
+
+ slice-ansi@5.0.0:
+ resolution:
+ {
+ integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
+ }
+ engines: { node: '>=12' }
+
+ slice-ansi@7.1.0:
+ resolution:
+ {
+ integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==
+ }
+ engines: { node: '>=18' }
+
+ snabbdom@3.6.2:
+ resolution:
+ {
+ integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==
+ }
+ engines: { node: '>=12.17.0' }
+
+ sort-keys-length@1.0.1:
+ resolution:
+ {
+ integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ sort-keys@1.1.2:
+ resolution:
+ {
+ integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ sort-keys@2.0.0:
+ resolution:
+ {
+ integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==
+ }
+ engines: { node: '>=4' }
+
+ source-map-js@1.2.1:
+ resolution:
+ {
+ integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ source-map-support@0.5.21:
+ resolution:
+ {
+ integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ }
+
+ source-map@0.6.1:
+ resolution:
+ {
+ integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ source-map@0.7.4:
+ resolution:
+ {
+ integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
+ }
+ engines: { node: '>= 8' }
+
+ spdx-correct@3.2.0:
+ resolution:
+ {
+ integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
+ }
+
+ spdx-exceptions@2.5.0:
+ resolution:
+ {
+ integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
+ }
+
+ spdx-expression-parse@3.0.1:
+ resolution:
+ {
+ integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ }
+
+ spdx-license-ids@3.0.21:
+ resolution:
+ {
+ integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==
+ }
+
+ speakingurl@14.0.1:
+ resolution:
+ {
+ integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ split2@4.2.0:
+ resolution:
+ {
+ integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
+ }
+ engines: { node: '>= 10.x' }
+
+ squeak@1.3.0:
+ resolution:
+ {
+ integrity: sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ssf@0.11.2:
+ resolution:
+ {
+ integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==
+ }
+ engines: { node: '>=0.8' }
+
+ ssr-window@3.0.0:
+ resolution:
+ {
+ integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==
+ }
+
+ stable@0.1.8:
+ resolution:
+ {
+ 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'
+
+ std-env@3.9.0:
+ resolution:
+ {
+ integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==
+ }
+
+ strict-uri-encode@1.1.0:
+ resolution:
+ {
+ integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ string-argv@0.3.2:
+ resolution:
+ {
+ integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
+ }
+ engines: { node: '>=0.6.19' }
+
+ string-width@4.2.3:
+ resolution:
+ {
+ integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ }
+ engines: { node: '>=8' }
+
+ string-width@7.2.0:
+ resolution:
+ {
+ integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==
+ }
+ engines: { node: '>=18' }
+
+ string_decoder@1.1.1:
+ resolution:
+ {
+ integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ }
+
+ string_decoder@1.3.0:
+ resolution:
+ {
+ integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ }
+
+ strip-ansi@3.0.1:
+ resolution:
+ {
+ integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ strip-ansi@6.0.1:
+ resolution:
+ {
+ integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ }
+ engines: { node: '>=8' }
+
+ strip-ansi@7.1.0:
+ resolution:
+ {
+ integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ }
+ engines: { node: '>=12' }
+
+ strip-bom@2.0.0:
+ resolution:
+ {
+ integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ strip-bom@4.0.0:
+ resolution:
+ {
+ integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+ }
+ engines: { node: '>=8' }
+
+ strip-dirs@2.1.0:
+ resolution:
+ {
+ integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==
+ }
+
+ strip-eof@1.0.0:
+ resolution:
+ {
+ integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ strip-final-newline@2.0.0:
+ resolution:
+ {
+ integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+ }
+ engines: { node: '>=6' }
+
+ strip-final-newline@3.0.0:
+ resolution:
+ {
+ integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+ }
+ engines: { node: '>=12' }
+
+ strip-final-newline@4.0.0:
+ resolution:
+ {
+ integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==
+ }
+ engines: { node: '>=18' }
+
+ strip-indent@1.0.1:
+ resolution:
+ {
+ integrity: sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==
+ }
+ engines: { node: '>=0.10.0' }
+ hasBin: true
+
+ strip-json-comments@3.1.1:
+ resolution:
+ {
+ integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+ }
+ engines: { node: '>=8' }
+
+ strip-literal@2.1.1:
+ resolution:
+ {
+ integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==
+ }
+
+ strip-literal@3.0.0:
+ resolution:
+ {
+ integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==
+ }
+
+ strip-outer@1.0.1:
+ resolution:
+ {
+ integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ strnum@1.1.2:
+ resolution:
+ {
+ integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==
+ }
+
+ style-mod@4.1.2:
+ resolution:
+ {
+ integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==
+ }
+
+ stylelint-config-html@1.1.0:
+ resolution:
+ {
+ integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==
+ }
+ engines: { node: ^12 || >=14 }
+ peerDependencies:
+ postcss-html: ^1.0.0
+ stylelint: '>=14.0.0'
+
+ stylelint-config-recess-order@4.6.0:
+ resolution:
+ {
+ integrity: sha512-V76fhv3YtcNXh/hyAuAdSzi5FmcrG54Mp2AThJ3D/PTMTSYzUPd7GIhP6z9mTqnRhmkk6YTfcu/JWB8h+Yrcaw==
+ }
+ peerDependencies:
+ stylelint: '>=15'
+
+ stylelint-config-recommended-scss@14.1.0:
+ resolution:
+ {
+ integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==
+ }
+ engines: { node: '>=18.12.0' }
+ peerDependencies:
+ postcss: ^8.3.3
+ stylelint: ^16.6.1
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+
+ stylelint-config-recommended-vue@1.5.0:
+ resolution:
+ {
+ integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==
+ }
+ engines: { node: ^12 || >=14 }
+ peerDependencies:
+ postcss-html: ^1.0.0
+ stylelint: '>=14.0.0'
+
+ stylelint-config-recommended@14.0.1:
+ resolution:
+ {
+ integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==
+ }
+ engines: { node: '>=18.12.0' }
+ peerDependencies:
+ stylelint: ^16.1.0
+
+ stylelint-config-standard@36.0.1:
+ resolution:
+ {
+ integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==
+ }
+ engines: { node: '>=18.12.0' }
+ peerDependencies:
+ stylelint: ^16.1.0
+
+ stylelint-order@6.0.4:
+ resolution:
+ {
+ integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==
+ }
+ peerDependencies:
+ stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1
+
+ stylelint-scss@6.10.0:
+ resolution:
+ {
+ integrity: sha512-y03if6Qw9xBMoVaf7tzp5BbnYhYvudIKzURkhSHzcHG0bW0fAYvQpTUVJOe7DyhHaxeThBil4ObEMvGbV7+M+w==
+ }
+ engines: { node: '>=18.12.0' }
+ peerDependencies:
+ stylelint: ^16.0.2
+
+ stylelint@16.20.0:
+ resolution:
+ {
+ integrity: sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==
+ }
+ engines: { node: '>=18.12.0' }
+ hasBin: true
+
+ superjson@2.2.2:
+ resolution:
+ {
+ integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==
+ }
+ engines: { node: '>=16' }
+
+ supports-color@2.0.0:
+ resolution:
+ {
+ integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
+ }
+ engines: { node: '>=0.8.0' }
+
+ supports-color@5.5.0:
+ resolution:
+ {
+ integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ }
+ engines: { node: '>=4' }
+
+ supports-color@7.2.0:
+ resolution:
+ {
+ integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ }
+ engines: { node: '>=8' }
+
+ supports-hyperlinks@3.2.0:
+ resolution:
+ {
+ integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==
+ }
+ engines: { node: '>=14.18' }
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution:
+ {
+ integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+ }
+ engines: { node: '>= 0.4' }
+
+ svg-tags@1.0.0:
+ resolution:
+ {
+ integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==
+ }
+
+ svgo@2.8.0:
+ resolution:
+ {
+ integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
+ }
+ engines: { node: '>=10.13.0' }
+ hasBin: true
+
+ synckit@0.9.2:
+ resolution:
+ {
+ integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==
+ }
+ engines: { node: ^14.18.0 || >=16.0.0 }
+
+ table@6.9.0:
+ resolution:
+ {
+ integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==
+ }
+ engines: { node: '>=10.0.0' }
+
+ tar-stream@1.6.2:
+ resolution:
+ {
+ integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ temp-dir@1.0.0:
+ resolution:
+ {
+ integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==
+ }
+ engines: { node: '>=4' }
+
+ tempfile@2.0.0:
+ resolution:
+ {
+ integrity: sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==
+ }
+ engines: { node: '>=4' }
+
+ terser@5.36.0:
+ resolution:
+ {
+ integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ text-extensions@2.4.0:
+ resolution:
+ {
+ integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==
+ }
+ engines: { node: '>=8' }
+
+ through@2.3.8:
+ resolution:
+ {
+ integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+ }
+
+ timed-out@4.0.1:
+ resolution:
+ {
+ integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ tiny-warning@1.0.3:
+ resolution:
+ {
+ integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
+ }
+
+ tinyexec@0.3.1:
+ resolution:
+ {
+ integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==
+ }
+
+ tinyexec@0.3.2:
+ resolution:
+ {
+ integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==
+ }
+
+ tinyglobby@0.2.14:
+ resolution:
+ {
+ integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==
+ }
+ engines: { node: '>=12.0.0' }
+
+ tmp@0.0.33:
+ resolution:
+ {
+ integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ }
+ engines: { node: '>=0.6.0' }
+
+ to-buffer@1.1.1:
+ resolution:
+ {
+ integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
+ }
+
+ to-regex-range@5.0.1:
+ resolution:
+ {
+ integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ }
+ engines: { node: '>=8.0' }
+
+ toggle-selection@1.0.6:
+ resolution:
+ {
+ integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
+ }
+
+ totalist@3.0.1:
+ resolution:
+ {
+ integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==
+ }
+ engines: { node: '>=6' }
+
+ trim-newlines@1.0.0:
+ resolution:
+ {
+ integrity: sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ trim-repeated@1.0.0:
+ resolution:
+ {
+ integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ts-api-utils@1.4.2:
+ resolution:
+ {
+ integrity: sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==
+ }
+ engines: { node: '>=16' }
+ peerDependencies:
+ typescript: '>=4.2.0'
+
+ tslib@2.3.0:
+ resolution:
+ {
+ integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
+ }
+
+ tslib@2.8.1:
+ resolution:
+ {
+ integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+ }
+
+ tunnel-agent@0.6.0:
+ resolution:
+ {
+ integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
+ }
+
+ type-check@0.4.0:
+ resolution:
+ {
+ integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ type-fest@0.11.0:
+ resolution:
+ {
+ integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
+ }
+ engines: { node: '>=8' }
+
+ type-fest@0.20.2:
+ resolution:
+ {
+ integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+ }
+ engines: { node: '>=10' }
+
+ type-fest@0.21.3:
+ resolution:
+ {
+ integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+ }
+ engines: { node: '>=10' }
+
+ type@2.7.3:
+ resolution:
+ {
+ integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==
+ }
+
+ typescript-eslint@8.16.0:
+ resolution:
+ {
+ integrity: sha512-wDkVmlY6O2do4V+lZd0GtRfbtXbeD0q9WygwXXSJnC1xorE8eqyC2L1tJimqpSeFrOzRlYtWnUp/uzgHQOgfBQ==
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ typescript@5.6.3:
+ resolution:
+ {
+ integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==
+ }
+ engines: { node: '>=14.17' }
+ hasBin: true
+
+ uc.micro@2.1.0:
+ resolution:
+ {
+ integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==
+ }
+
+ ufo@1.5.4:
+ resolution:
+ {
+ integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==
+ }
+
+ ufo@1.6.1:
+ resolution:
+ {
+ integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==
+ }
+
+ unbzip2-stream@1.4.3:
+ resolution:
+ {
+ integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
+ }
+
+ unctx@2.4.1:
+ resolution:
+ {
+ integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==
+ }
+
+ undici-types@6.20.0:
+ resolution:
+ {
+ integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
+ }
+
+ unicorn-magic@0.1.0:
+ resolution:
+ {
+ integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==
+ }
+ engines: { node: '>=18' }
+
+ unicorn-magic@0.3.0:
+ resolution:
+ {
+ integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==
+ }
+ engines: { node: '>=18' }
+
+ unimport@3.13.3:
+ resolution:
+ {
+ integrity: sha512-dr7sjOoRFCSDlnARFPAMB8OmjIMc6j14qd749VmB1yiqFEYFbi+1jWPTuc22JoFs/t1kHJXT3vQNiwCy3ZvsTA==
+ }
+
+ unimport@5.0.1:
+ resolution:
+ {
+ integrity: sha512-1YWzPj6wYhtwHE+9LxRlyqP4DiRrhGfJxdtH475im8ktyZXO3jHj/3PZ97zDdvkYoovFdi0K4SKl3a7l92v3sQ==
+ }
+ engines: { node: '>=18.12.0' }
+
+ universalify@2.0.1:
+ resolution:
+ {
+ integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ unplugin-auto-import@0.18.5:
+ resolution:
+ {
+ integrity: sha512-ZUnayBRlOwNuN9hrM1PymSZK5qDEI8heDD0E3U8Tq4FS6bUxd9VMfJ8tCwWTG5ir6g1yThe/4SVHbFUZQwplOw==
+ }
+ engines: { node: '>=14' }
+ peerDependencies:
+ '@nuxt/kit': ^3.2.2
+ '@vueuse/core': '*'
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+ '@vueuse/core':
+ optional: true
+
+ unplugin-utils@0.2.4:
+ resolution:
+ {
+ integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==
+ }
+ engines: { node: '>=18.12.0' }
+
+ unplugin-vue-components@0.27.4:
+ resolution:
+ {
+ integrity: sha512-1XVl5iXG7P1UrOMnaj2ogYa5YTq8aoh5jwDPQhemwO/OrXW+lPQKDXd1hMz15qxQPxgb/XXlbgo3HQ2rLEbmXQ==
+ }
+ 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
+
+ unplugin@1.16.0:
+ resolution:
+ {
+ integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==
+ }
+ engines: { node: '>=14.0.0' }
+
+ unplugin@2.3.5:
+ resolution:
+ {
+ integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==
+ }
+ engines: { node: '>=18.12.0' }
+
+ untyped@2.0.0:
+ resolution:
+ {
+ integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==
+ }
+ hasBin: true
+
+ update-browserslist-db@1.1.3:
+ resolution:
+ {
+ integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
+ }
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution:
+ {
+ integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ }
+
+ url-parse-lax@1.0.0:
+ resolution:
+ {
+ integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ url-parse-lax@3.0.0:
+ resolution:
+ {
+ integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==
+ }
+ engines: { node: '>=4' }
+
+ url-to-options@1.0.1:
+ resolution:
+ {
+ integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==
+ }
+ engines: { node: '>= 4' }
+
+ util-deprecate@1.0.2:
+ resolution:
+ {
+ integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+ }
+
+ uuid@3.4.0:
+ resolution:
+ {
+ integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+ }
+ deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
+ hasBin: true
+
+ validate-npm-package-license@3.0.4:
+ resolution:
+ {
+ integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ }
+
+ vite-hot-client@2.0.4:
+ resolution:
+ {
+ integrity: sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==
+ }
+ peerDependencies:
+ vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
+
+ vite-plugin-compression@0.5.1:
+ resolution:
+ {
+ integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==
+ }
+ peerDependencies:
+ vite: '>=2.0.0'
+
+ vite-plugin-imagemin@0.6.1:
+ resolution:
+ {
+ integrity: sha512-cP7LDn8euPrji7WYtDoNQpJEB9nkMxJHm/A+QZnvMrrCSuyo/clpMy/T1v7suDXPBavsDiDdFdVQB5p7VGD2cg==
+ }
+ peerDependencies:
+ vite: '>=2.0.0'
+
+ vite-plugin-inspect@0.8.9:
+ resolution:
+ {
+ integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==
+ }
+ engines: { node: '>=14' }
+ peerDependencies:
+ '@nuxt/kit': '*'
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+
+ vite-plugin-vue-devtools@7.7.6:
+ resolution:
+ {
+ integrity: sha512-L7nPVM5a7lgit/Z+36iwoqHOaP3wxqVi1UvaDJwGCfblS9Y6vNqf32ILlzJVH9c47aHu90BhDXeZc+rgzHRHcw==
+ }
+ engines: { node: '>=v14.21.3' }
+ peerDependencies:
+ vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0
+
+ vite-plugin-vue-inspector@5.3.1:
+ resolution:
+ {
+ integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==
+ }
+ peerDependencies:
+ vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0
+
+ vite@6.1.1:
+ resolution:
+ {
+ integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==
+ }
+ engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ jiti: '>=1.21.0'
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ vscode-uri@3.0.8:
+ resolution:
+ {
+ integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==
+ }
+
+ vue-count-to@1.0.13:
+ resolution:
+ {
+ integrity: sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ==
+ }
+
+ vue-demi@0.14.10:
+ resolution:
+ {
+ integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==
+ }
+ engines: { node: '>=12' }
+ hasBin: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+
+ vue-draggable-plus@0.6.0:
+ resolution:
+ {
+ integrity: sha512-G5TSfHrt9tX9EjdG49InoFJbt2NYk0h3kgjgKxkFWr3ulIUays0oFObr5KZ8qzD4+QnhtALiRwIqY6qul4egqw==
+ }
+ peerDependencies:
+ '@types/sortablejs': ^1.15.0
+ '@vue/composition-api': '*'
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+
+ vue-eslint-parser@9.4.3:
+ resolution:
+ {
+ integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==
+ }
+ engines: { node: ^14.17.0 || >=16.0.0 }
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ vue-i18n@9.14.1:
+ resolution:
+ {
+ integrity: sha512-xjxV0LYc1xQ8TbAVfIyZiOSS8qoU1R0YwV7V5I8I6Fd64+zvsTsdPgtylPsie3Vdt9wekeYhr+smKDeaK6RBuA==
+ }
+ engines: { node: '>= 16' }
+ peerDependencies:
+ vue: ^3.0.0
+
+ vue-img-cutter@3.0.7:
+ resolution:
+ {
+ integrity: sha512-fNw3kimawg9XVXDZCw2bI74NI+Jq+H42wjymatZVVSY46wuBty6LbQsu4GeVfo/yzpS9AHY0tzckpYzX3D2fmA==
+ }
+
+ vue-router@4.5.0:
+ resolution:
+ {
+ integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==
+ }
+ peerDependencies:
+ vue: ^3.2.0
+
+ vue-tsc@2.1.10:
+ resolution:
+ {
+ integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==
+ }
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.0.0'
+
+ vue3-count-to@1.1.2:
+ resolution:
+ {
+ integrity: sha512-C5AvlcGfyM4XvFqPDkni94rqGd5K/+RB+B4xv/1NQx3RrdC+GvXPFzeXW5hWL/jh8ehWLm4LITyK0eMKf4iJbg==
+ }
+ peerDependencies:
+ vue: '>= 3 < 4'
+
+ vue@3.5.15:
+ resolution:
+ {
+ integrity: sha512-aD9zK4rB43JAMK/5BmS4LdPiEp8Fdh8P1Ve/XNuMF5YRf78fCyPE6FUbQwcaWQ5oZ1R2CD9NKE0FFOVpMR7gEQ==
+ }
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ w3c-keyname@2.2.8:
+ resolution:
+ {
+ integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==
+ }
+
+ wcwidth@1.0.1:
+ resolution:
+ {
+ integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
+ }
+
+ webpack-virtual-modules@0.6.2:
+ resolution:
+ {
+ integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==
+ }
+
+ which@1.3.1:
+ resolution:
+ {
+ integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ }
+ hasBin: true
+
+ which@2.0.2:
+ resolution:
+ {
+ integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ }
+ engines: { node: '>= 8' }
+ hasBin: true
+
+ wildcard@1.1.2:
+ resolution:
+ {
+ integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==
+ }
+
+ wmf@1.0.2:
+ resolution:
+ {
+ integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==
+ }
+ engines: { node: '>=0.8' }
+
+ word-wrap@1.2.5:
+ resolution:
+ {
+ integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ word@0.3.0:
+ resolution:
+ {
+ integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==
+ }
+ engines: { node: '>=0.8' }
+
+ wrap-ansi@7.0.0:
+ resolution:
+ {
+ integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ }
+ engines: { node: '>=10' }
+
+ wrap-ansi@9.0.0:
+ resolution:
+ {
+ integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==
+ }
+ engines: { node: '>=18' }
+
+ wrappy@1.0.2:
+ resolution:
+ {
+ integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+ }
+
+ write-file-atomic@5.0.1:
+ resolution:
+ {
+ integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==
+ }
+ engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 }
+
+ xgplayer-subtitles@3.0.20:
+ resolution:
+ {
+ integrity: sha512-I1bjsIY+aKOrhYQspLdneOkYg+Vf4cJVGPnDSFnNebnxXl9Mhz5SEpWGzYizMYxL9UvsQ9pgjeEY0o4hkwM+kQ==
+ }
+ peerDependencies:
+ core-js: '>=3.12.1'
+
+ xgplayer@3.0.20:
+ resolution:
+ {
+ integrity: sha512-UNKZJRyODOZGdka83ao8fI18xdhzOV8qG4aNEOOkuOQbXFXfXsJMr/dazRHFP+uXmTqiCXr568euee3ch7CS7g==
+ }
+ peerDependencies:
+ core-js: '>=3.12.1'
+
+ xlsx@0.18.5:
+ resolution:
+ {
+ integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==
+ }
+ engines: { node: '>=0.8' }
+ hasBin: true
+
+ xml-name-validator@4.0.0:
+ resolution:
+ {
+ integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+ }
+ engines: { node: '>=12' }
+
+ xss@1.0.15:
+ resolution:
+ {
+ integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==
+ }
+ engines: { node: '>= 0.10.0' }
+ hasBin: true
+
+ xtend@4.0.2:
+ resolution:
+ {
+ integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+ }
+ engines: { node: '>=0.4' }
+
+ y18n@5.0.8:
+ resolution:
+ {
+ integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+ }
+ engines: { node: '>=10' }
+
+ yallist@2.1.2:
+ resolution:
+ {
+ integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==
+ }
+
+ yallist@3.1.1:
+ resolution:
+ {
+ integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+ }
+
+ yaml@2.8.0:
+ resolution:
+ {
+ integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==
+ }
+ engines: { node: '>= 14.6' }
+ hasBin: true
+
+ yargs-parser@21.1.1:
+ resolution:
+ {
+ integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+ }
+ engines: { node: '>=12' }
+
+ yargs@17.7.2:
+ resolution:
+ {
+ integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ }
+ engines: { node: '>=12' }
+
+ yauzl@2.10.0:
+ resolution:
+ {
+ integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
+ }
+
+ yocto-queue@0.1.0:
+ resolution:
+ {
+ integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+ }
+ engines: { node: '>=10' }
+
+ yocto-queue@1.1.1:
+ resolution:
+ {
+ integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==
+ }
+ engines: { node: '>=12.20' }
+
+ yoctocolors@2.1.1:
+ resolution:
+ {
+ integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==
+ }
+ engines: { node: '>=18' }
+
+ zrender@5.6.0:
+ resolution:
+ {
+ integrity: sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==
+ }
+
+snapshots:
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@antfu/utils@0.7.10': {}
+
+ '@babel/code-frame@7.26.2':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/code-frame@7.27.1':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.27.5': {}
+
+ '@babel/core@7.27.4':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.27.5
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4)
+ '@babel/helpers': 7.27.6
+ '@babel/parser': 7.27.5
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.27.4
+ '@babel/types': 7.27.3
+ convert-source-map: 2.0.0
+ debug: 4.4.1
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.27.5':
+ dependencies:
+ '@babel/parser': 7.27.5
+ '@babel/types': 7.27.3
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.1.0
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ dependencies:
+ '@babel/types': 7.27.3
+
+ '@babel/helper-compilation-targets@7.27.2':
+ dependencies:
+ '@babel/compat-data': 7.27.5
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.25.0
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/traverse': 7.27.4
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-member-expression-to-functions@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.27.4
+ '@babel/types': 7.27.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.27.4
+ '@babel/types': 7.27.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.27.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ dependencies:
+ '@babel/types': 7.27.3
+
+ '@babel/helper-plugin-utils@7.27.1': {}
+
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/traverse': 7.27.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.27.4
+ '@babel/types': 7.27.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-string-parser@7.25.9': {}
+
+ '@babel/helper-string-parser@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.25.9': {}
+
+ '@babel/helper-validator-identifier@7.27.1': {}
+
+ '@babel/helper-validator-option@7.27.1': {}
+
+ '@babel/helpers@7.27.6':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.27.6
+
+ '@babel/parser@7.26.2':
+ dependencies:
+ '@babel/types': 7.26.0
+
+ '@babel/parser@7.27.3':
+ dependencies:
+ '@babel/types': 7.27.3
+
+ '@babel/parser@7.27.5':
+ dependencies:
+ '@babel/types': 7.27.3
+
+ '@babel/plugin-proposal-decorators@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.27.4)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/runtime@7.26.0':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
+ '@babel/template@7.27.2':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.27.3
+ '@babel/types': 7.27.3
+
+ '@babel/traverse@7.27.4':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.27.5
+ '@babel/parser': 7.27.5
+ '@babel/template': 7.27.2
+ '@babel/types': 7.27.3
+ debug: 4.4.1
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.26.0':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
+ '@babel/types@7.27.3':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@babel/types@7.27.6':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@codemirror/autocomplete@6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)':
+ dependencies:
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+
+ '@codemirror/commands@6.7.1':
+ dependencies:
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+
+ '@codemirror/lang-angular@0.1.3':
+ dependencies:
+ '@codemirror/lang-html': 6.4.9
+ '@codemirror/lang-javascript': 6.2.2
+ '@codemirror/language': 6.10.4
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@codemirror/lang-cpp@6.0.2':
+ dependencies:
+ '@codemirror/language': 6.10.4
+ '@lezer/cpp': 1.1.2
+
+ '@codemirror/lang-css@6.3.1(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.3
+ '@lezer/css': 1.1.9
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/lang-go@6.0.1(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.3
+ '@lezer/go': 1.0.0
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/lang-html@6.4.9':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0)
+ '@codemirror/lang-javascript': 6.2.2
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+ '@lezer/css': 1.1.9
+ '@lezer/html': 1.3.10
+
+ '@codemirror/lang-java@6.0.1':
+ dependencies:
+ '@codemirror/language': 6.10.4
+ '@lezer/java': 1.1.3
+
+ '@codemirror/lang-javascript@6.2.2':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/language': 6.10.4
+ '@codemirror/lint': 6.8.3
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+ '@lezer/javascript': 1.4.19
+
+ '@codemirror/lang-json@6.0.1':
+ dependencies:
+ '@codemirror/language': 6.10.4
+ '@lezer/json': 1.0.2
+
+ '@codemirror/lang-less@6.0.2(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0)
+ '@codemirror/language': 6.10.4
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/lang-liquid@6.2.2':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/lang-html': 6.4.9
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@codemirror/lang-markdown@6.3.1':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/lang-html': 6.4.9
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+ '@lezer/markdown': 1.3.2
+
+ '@codemirror/lang-php@6.0.1':
+ dependencies:
+ '@codemirror/lang-html': 6.4.9
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.3
+ '@lezer/php': 1.0.2
+
+ '@codemirror/lang-python@6.1.6(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.3
+ '@lezer/python': 1.1.14
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/lang-rust@6.0.1':
+ dependencies:
+ '@codemirror/language': 6.10.4
+ '@lezer/rust': 1.0.2
+
+ '@codemirror/lang-sass@6.0.2(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0)
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.3
+ '@lezer/sass': 1.0.7
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/lang-sql@6.8.0(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/lang-vue@0.1.3':
+ dependencies:
+ '@codemirror/lang-html': 6.4.9
+ '@codemirror/lang-javascript': 6.2.2
+ '@codemirror/language': 6.10.4
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@codemirror/lang-wast@6.0.2':
+ dependencies:
+ '@codemirror/language': 6.10.4
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@codemirror/lang-xml@6.1.0':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+ '@lezer/xml': 1.0.5
+
+ '@codemirror/lang-yaml@6.1.1(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/language': 6.10.4
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/yaml': 1.0.3
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/language-data@6.5.1(@codemirror/view@6.35.0)':
+ dependencies:
+ '@codemirror/lang-angular': 0.1.3
+ '@codemirror/lang-cpp': 6.0.2
+ '@codemirror/lang-css': 6.3.1(@codemirror/view@6.35.0)
+ '@codemirror/lang-go': 6.0.1(@codemirror/view@6.35.0)
+ '@codemirror/lang-html': 6.4.9
+ '@codemirror/lang-java': 6.0.1
+ '@codemirror/lang-javascript': 6.2.2
+ '@codemirror/lang-json': 6.0.1
+ '@codemirror/lang-less': 6.0.2(@codemirror/view@6.35.0)
+ '@codemirror/lang-liquid': 6.2.2
+ '@codemirror/lang-markdown': 6.3.1
+ '@codemirror/lang-php': 6.0.1
+ '@codemirror/lang-python': 6.1.6(@codemirror/view@6.35.0)
+ '@codemirror/lang-rust': 6.0.1
+ '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.35.0)
+ '@codemirror/lang-sql': 6.8.0(@codemirror/view@6.35.0)
+ '@codemirror/lang-vue': 0.1.3
+ '@codemirror/lang-wast': 6.0.2
+ '@codemirror/lang-xml': 6.1.0
+ '@codemirror/lang-yaml': 6.1.1(@codemirror/view@6.35.0)
+ '@codemirror/language': 6.10.4
+ '@codemirror/legacy-modes': 6.4.2
+ transitivePeerDependencies:
+ - '@codemirror/view'
+
+ '@codemirror/language@6.10.4':
+ dependencies:
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+ style-mod: 4.1.2
+
+ '@codemirror/legacy-modes@6.4.2':
+ dependencies:
+ '@codemirror/language': 6.10.4
+
+ '@codemirror/lint@6.8.3':
+ dependencies:
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ crelt: 1.0.6
+
+ '@codemirror/search@6.5.8':
+ dependencies:
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ crelt: 1.0.6
+
+ '@codemirror/state@6.4.1': {}
+
+ '@codemirror/view@6.35.0':
+ dependencies:
+ '@codemirror/state': 6.4.1
+ style-mod: 4.1.2
+ w3c-keyname: 2.2.8
+
+ '@commitlint/cli@19.6.0(@types/node@22.10.0)(typescript@5.6.3)':
+ dependencies:
+ '@commitlint/format': 19.5.0
+ '@commitlint/lint': 19.6.0
+ '@commitlint/load': 19.5.0(@types/node@22.10.0)(typescript@5.6.3)
+ '@commitlint/read': 19.5.0
+ '@commitlint/types': 19.5.0
+ tinyexec: 0.3.1
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - typescript
+
+ '@commitlint/config-conventional@19.6.0':
+ dependencies:
+ '@commitlint/types': 19.5.0
+ conventional-changelog-conventionalcommits: 7.0.2
+
+ '@commitlint/config-validator@19.5.0':
+ dependencies:
+ '@commitlint/types': 19.5.0
+ ajv: 8.17.1
+
+ '@commitlint/ensure@19.5.0':
+ dependencies:
+ '@commitlint/types': 19.5.0
+ lodash.camelcase: 4.3.0
+ lodash.kebabcase: 4.1.1
+ lodash.snakecase: 4.1.1
+ lodash.startcase: 4.4.0
+ lodash.upperfirst: 4.3.1
+
+ '@commitlint/execute-rule@19.5.0': {}
+
+ '@commitlint/format@19.5.0':
+ dependencies:
+ '@commitlint/types': 19.5.0
+ chalk: 5.3.0
+
+ '@commitlint/is-ignored@19.6.0':
+ dependencies:
+ '@commitlint/types': 19.5.0
+ semver: 7.6.3
+
+ '@commitlint/lint@19.6.0':
+ dependencies:
+ '@commitlint/is-ignored': 19.6.0
+ '@commitlint/parse': 19.5.0
+ '@commitlint/rules': 19.6.0
+ '@commitlint/types': 19.5.0
+
+ '@commitlint/load@19.5.0(@types/node@22.10.0)(typescript@5.6.3)':
+ dependencies:
+ '@commitlint/config-validator': 19.5.0
+ '@commitlint/execute-rule': 19.5.0
+ '@commitlint/resolve-extends': 19.5.0
+ '@commitlint/types': 19.5.0
+ chalk: 5.3.0
+ cosmiconfig: 9.0.0(typescript@5.6.3)
+ cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.0)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3)
+ lodash.isplainobject: 4.0.6
+ lodash.merge: 4.6.2
+ lodash.uniq: 4.5.0
+ transitivePeerDependencies:
+ - '@types/node'
+ - typescript
+
+ '@commitlint/message@19.5.0': {}
+
+ '@commitlint/parse@19.5.0':
+ dependencies:
+ '@commitlint/types': 19.5.0
+ conventional-changelog-angular: 7.0.0
+ conventional-commits-parser: 5.0.0
+
+ '@commitlint/read@19.5.0':
+ dependencies:
+ '@commitlint/top-level': 19.5.0
+ '@commitlint/types': 19.5.0
+ git-raw-commits: 4.0.0
+ minimist: 1.2.8
+ tinyexec: 0.3.1
+
+ '@commitlint/resolve-extends@19.5.0':
+ dependencies:
+ '@commitlint/config-validator': 19.5.0
+ '@commitlint/types': 19.5.0
+ global-directory: 4.0.1
+ import-meta-resolve: 4.1.0
+ lodash.mergewith: 4.6.2
+ resolve-from: 5.0.0
+
+ '@commitlint/rules@19.6.0':
+ dependencies:
+ '@commitlint/ensure': 19.5.0
+ '@commitlint/message': 19.5.0
+ '@commitlint/to-lines': 19.5.0
+ '@commitlint/types': 19.5.0
+
+ '@commitlint/to-lines@19.5.0': {}
+
+ '@commitlint/top-level@19.5.0':
+ dependencies:
+ find-up: 7.0.0
+
+ '@commitlint/types@19.5.0':
+ dependencies:
+ '@types/conventional-commits-parser': 5.0.1
+ chalk: 5.3.0
+
+ '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)':
+ dependencies:
+ '@csstools/css-tokenizer': 3.0.3
+
+ '@csstools/css-tokenizer@3.0.3': {}
+
+ '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+
+ '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)':
+ dependencies:
+ postcss-selector-parser: 7.1.0
+
+ '@ctrl/tinycolor@3.6.1': {}
+
+ '@dual-bundle/import-meta-resolve@4.1.0': {}
+
+ '@element-plus/icons-vue@2.3.1(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ vue: 3.5.15(typescript@5.6.3)
+
+ '@esbuild/aix-ppc64@0.24.2':
+ optional: true
+
+ '@esbuild/android-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/android-arm@0.24.2':
+ optional: true
+
+ '@esbuild/android-x64@0.24.2':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/darwin-x64@0.24.2':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-arm@0.24.2':
+ optional: true
+
+ '@esbuild/linux-ia32@0.24.2':
+ optional: true
+
+ '@esbuild/linux-loong64@0.14.54':
+ optional: true
+
+ '@esbuild/linux-loong64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.24.2':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.24.2':
+ optional: true
+
+ '@esbuild/linux-s390x@0.24.2':
+ optional: true
+
+ '@esbuild/linux-x64@0.24.2':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.24.2':
+ optional: true
+
+ '@esbuild/sunos-x64@0.24.2':
+ optional: true
+
+ '@esbuild/win32-arm64@0.24.2':
+ optional: true
+
+ '@esbuild/win32-ia32@0.24.2':
+ optional: true
+
+ '@esbuild/win32-x64@0.24.2':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.2))':
+ dependencies:
+ eslint: 9.15.0(jiti@2.4.2)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/config-array@0.19.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.4
+ debug: 4.3.7
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/core@0.9.0': {}
+
+ '@eslint/eslintrc@3.2.0':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.7
+ espree: 10.3.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.15.0': {}
+
+ '@eslint/object-schema@2.1.4': {}
+
+ '@eslint/plugin-kit@0.2.3':
+ dependencies:
+ levn: 0.4.1
+
+ '@floating-ui/core@1.6.8':
+ dependencies:
+ '@floating-ui/utils': 0.2.8
+
+ '@floating-ui/dom@1.6.12':
+ dependencies:
+ '@floating-ui/core': 1.6.8
+ '@floating-ui/utils': 0.2.8
+
+ '@floating-ui/utils@0.2.8': {}
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.1': {}
+
+ '@intlify/core-base@9.14.1':
+ dependencies:
+ '@intlify/message-compiler': 9.14.1
+ '@intlify/shared': 9.14.1
+
+ '@intlify/message-compiler@9.14.1':
+ dependencies:
+ '@intlify/shared': 9.14.1
+ source-map-js: 1.2.1
+
+ '@intlify/shared@9.14.1': {}
+
+ '@jridgewell/gen-mapping@0.3.5':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/source-map@0.3.6':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@keyv/serialize@1.0.3':
+ dependencies:
+ buffer: 6.0.3
+
+ '@lezer/common@1.2.3': {}
+
+ '@lezer/cpp@1.1.2':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/css@1.1.9':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/go@1.0.0':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/highlight@1.2.1':
+ dependencies:
+ '@lezer/common': 1.2.3
+
+ '@lezer/html@1.3.10':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/java@1.1.3':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/javascript@1.4.19':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/json@1.0.2':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/lr@1.4.2':
+ dependencies:
+ '@lezer/common': 1.2.3
+
+ '@lezer/markdown@1.3.2':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+
+ '@lezer/php@1.0.2':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/python@1.1.14':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/rust@1.0.2':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/sass@1.0.7':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/xml@1.0.5':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@lezer/yaml@1.0.3':
+ dependencies:
+ '@lezer/common': 1.2.3
+ '@lezer/highlight': 1.2.1
+ '@lezer/lr': 1.4.2
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+
+ '@nuxt/kit@3.17.4':
+ dependencies:
+ c12: 3.0.4
+ consola: 3.4.2
+ defu: 6.1.4
+ destr: 2.0.5
+ errx: 0.1.0
+ exsolve: 1.0.5
+ ignore: 7.0.4
+ jiti: 2.4.2
+ klona: 2.0.6
+ knitwork: 1.2.0
+ mlly: 1.7.4
+ ohash: 2.0.11
+ pathe: 2.0.3
+ pkg-types: 2.1.0
+ scule: 1.3.0
+ semver: 7.7.2
+ std-env: 3.9.0
+ tinyglobby: 0.2.14
+ ufo: 1.6.1
+ unctx: 2.4.1
+ unimport: 5.0.1
+ untyped: 2.0.0
+ transitivePeerDependencies:
+ - magicast
+
+ '@parcel/watcher-android-arm64@2.5.0':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.5.0':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.5.0':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.5.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.5.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.5.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.0':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.5.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.5.0':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.5.0':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.5.0':
+ optional: true
+
+ '@parcel/watcher-win32-ia32@2.5.0':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.5.0':
+ optional: true
+
+ '@parcel/watcher@2.5.0':
+ dependencies:
+ detect-libc: 1.0.3
+ is-glob: 4.0.3
+ micromatch: 4.0.8
+ node-addon-api: 7.1.1
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.5.0
+ '@parcel/watcher-darwin-arm64': 2.5.0
+ '@parcel/watcher-darwin-x64': 2.5.0
+ '@parcel/watcher-freebsd-x64': 2.5.0
+ '@parcel/watcher-linux-arm-glibc': 2.5.0
+ '@parcel/watcher-linux-arm-musl': 2.5.0
+ '@parcel/watcher-linux-arm64-glibc': 2.5.0
+ '@parcel/watcher-linux-arm64-musl': 2.5.0
+ '@parcel/watcher-linux-x64-glibc': 2.5.0
+ '@parcel/watcher-linux-x64-musl': 2.5.0
+ '@parcel/watcher-win32-arm64': 2.5.0
+ '@parcel/watcher-win32-ia32': 2.5.0
+ '@parcel/watcher-win32-x64': 2.5.0
+ optional: true
+
+ '@pkgr/core@0.1.1': {}
+
+ '@polka/url@1.0.0-next.29': {}
+
+ '@rollup/pluginutils@5.1.3(rollup@4.34.8)':
+ dependencies:
+ '@types/estree': 1.0.6
+ estree-walker: 2.0.2
+ picomatch: 4.0.2
+ optionalDependencies:
+ rollup: 4.34.8
+
+ '@rollup/rollup-android-arm-eabi@4.34.8':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.34.8':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.34.8':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.34.8':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.34.8':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.34.8':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.34.8':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.34.8':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.34.8':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.34.8':
+ optional: true
+
+ '@sec-ant/readable-stream@0.4.1': {}
+
+ '@sindresorhus/is@0.7.0': {}
+
+ '@sindresorhus/merge-streams@4.0.0': {}
+
+ '@sxzz/popperjs-es@2.11.7': {}
+
+ '@transloadit/prettier-bytes@0.0.7': {}
+
+ '@trysound/sax@0.2.0': {}
+
+ '@types/conventional-commits-parser@5.0.1':
+ dependencies:
+ '@types/node': 22.10.0
+
+ '@types/estree@1.0.6': {}
+
+ '@types/event-emitter@0.3.5': {}
+
+ '@types/glob@7.2.0':
+ dependencies:
+ '@types/minimatch': 5.1.2
+ '@types/node': 22.10.0
+
+ '@types/imagemin-gifsicle@7.0.4':
+ dependencies:
+ '@types/imagemin': 7.0.1
+
+ '@types/imagemin-jpegtran@5.0.4':
+ dependencies:
+ '@types/imagemin': 7.0.1
+
+ '@types/imagemin-mozjpeg@8.0.4':
+ dependencies:
+ '@types/imagemin': 7.0.1
+
+ '@types/imagemin-optipng@5.2.4':
+ dependencies:
+ '@types/imagemin': 7.0.1
+
+ '@types/imagemin-svgo@10.0.5':
+ dependencies:
+ '@types/imagemin': 7.0.1
+ '@types/svgo': 2.6.4
+
+ '@types/imagemin-webp@7.0.3':
+ dependencies:
+ '@types/imagemin': 7.0.1
+
+ '@types/imagemin@7.0.1':
+ dependencies:
+ '@types/node': 22.10.0
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/keyv@3.1.4':
+ dependencies:
+ '@types/node': 22.10.0
+
+ '@types/linkify-it@5.0.0': {}
+
+ '@types/lodash-es@4.17.12':
+ dependencies:
+ '@types/lodash': 4.17.13
+
+ '@types/lodash@4.17.13': {}
+
+ '@types/markdown-it@14.1.2':
+ dependencies:
+ '@types/linkify-it': 5.0.0
+ '@types/mdurl': 2.0.0
+
+ '@types/mdurl@2.0.0': {}
+
+ '@types/minimatch@5.1.2': {}
+
+ '@types/node@22.10.0':
+ dependencies:
+ undici-types: 6.20.0
+
+ '@types/responselike@1.0.3':
+ dependencies:
+ '@types/node': 22.10.0
+
+ '@types/sortablejs@1.15.8': {}
+
+ '@types/svgo@2.6.4':
+ dependencies:
+ '@types/node': 22.10.0
+
+ '@types/web-bluetooth@0.0.16': {}
+
+ '@types/web-bluetooth@0.0.20': {}
+
+ '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/scope-manager': 8.16.0
+ '@typescript-eslint/type-utils': 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/visitor-keys': 8.16.0
+ eslint: 9.15.0(jiti@2.4.2)
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare: 1.4.0
+ ts-api-utils: 1.4.2(typescript@5.6.3)
+ optionalDependencies:
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.16.0
+ '@typescript-eslint/types': 8.16.0
+ '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3)
+ '@typescript-eslint/visitor-keys': 8.16.0
+ debug: 4.3.7
+ eslint: 9.15.0(jiti@2.4.2)
+ optionalDependencies:
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@8.16.0':
+ dependencies:
+ '@typescript-eslint/types': 8.16.0
+ '@typescript-eslint/visitor-keys': 8.16.0
+
+ '@typescript-eslint/type-utils@8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ debug: 4.3.7
+ eslint: 9.15.0(jiti@2.4.2)
+ ts-api-utils: 1.4.2(typescript@5.6.3)
+ optionalDependencies:
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@8.16.0': {}
+
+ '@typescript-eslint/typescript-estree@8.16.0(typescript@5.6.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.16.0
+ '@typescript-eslint/visitor-keys': 8.16.0
+ debug: 4.3.7
+ fast-glob: 3.3.2
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.6.3
+ ts-api-utils: 1.4.2(typescript@5.6.3)
+ optionalDependencies:
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2))
+ '@typescript-eslint/scope-manager': 8.16.0
+ '@typescript-eslint/types': 8.16.0
+ '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3)
+ eslint: 9.15.0(jiti@2.4.2)
+ optionalDependencies:
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.16.0':
+ dependencies:
+ '@typescript-eslint/types': 8.16.0
+ eslint-visitor-keys: 4.2.0
+
+ '@uppy/companion-client@2.2.2':
+ dependencies:
+ '@uppy/utils': 4.1.3
+ namespace-emitter: 2.0.1
+
+ '@uppy/core@2.3.4':
+ dependencies:
+ '@transloadit/prettier-bytes': 0.0.7
+ '@uppy/store-default': 2.1.1
+ '@uppy/utils': 4.1.3
+ lodash.throttle: 4.1.1
+ mime-match: 1.0.2
+ namespace-emitter: 2.0.1
+ nanoid: 3.3.8
+ preact: 10.25.0
+
+ '@uppy/store-default@2.1.1': {}
+
+ '@uppy/utils@4.1.3':
+ dependencies:
+ lodash.throttle: 4.1.1
+
+ '@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4)':
+ dependencies:
+ '@uppy/companion-client': 2.2.2
+ '@uppy/core': 2.3.4
+ '@uppy/utils': 4.1.3
+ nanoid: 3.3.8
+
+ '@vavt/util@2.1.0': {}
+
+ '@vitejs/plugin-vue@5.2.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ vite: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+ vue: 3.5.15(typescript@5.6.3)
+
+ '@volar/language-core@2.4.10':
+ dependencies:
+ '@volar/source-map': 2.4.10
+
+ '@volar/source-map@2.4.10': {}
+
+ '@volar/typescript@2.4.10':
+ dependencies:
+ '@volar/language-core': 2.4.10
+ path-browserify: 1.0.1
+ vscode-uri: 3.0.8
+
+ '@vue/babel-helper-vue-transform-on@1.4.0': {}
+
+ '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4)
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.27.4
+ '@babel/types': 7.27.3
+ '@vue/babel-helper-vue-transform-on': 1.4.0
+ '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.27.4)
+ '@vue/shared': 3.5.15
+ optionalDependencies:
+ '@babel/core': 7.27.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.27.4)':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/core': 7.27.4
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/parser': 7.27.3
+ '@vue/compiler-sfc': 3.5.15
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/compiler-core@3.5.13':
+ dependencies:
+ '@babel/parser': 7.26.2
+ '@vue/shared': 3.5.13
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-core@3.5.15':
+ dependencies:
+ '@babel/parser': 7.27.3
+ '@vue/shared': 3.5.15
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.13':
+ dependencies:
+ '@vue/compiler-core': 3.5.13
+ '@vue/shared': 3.5.13
+
+ '@vue/compiler-dom@3.5.15':
+ dependencies:
+ '@vue/compiler-core': 3.5.15
+ '@vue/shared': 3.5.15
+
+ '@vue/compiler-sfc@3.5.13':
+ dependencies:
+ '@babel/parser': 7.26.2
+ '@vue/compiler-core': 3.5.13
+ '@vue/compiler-dom': 3.5.13
+ '@vue/compiler-ssr': 3.5.13
+ '@vue/shared': 3.5.13
+ estree-walker: 2.0.2
+ magic-string: 0.30.14
+ postcss: 8.4.49
+ source-map-js: 1.2.1
+
+ '@vue/compiler-sfc@3.5.15':
+ dependencies:
+ '@babel/parser': 7.27.3
+ '@vue/compiler-core': 3.5.15
+ '@vue/compiler-dom': 3.5.15
+ '@vue/compiler-ssr': 3.5.15
+ '@vue/shared': 3.5.15
+ estree-walker: 2.0.2
+ magic-string: 0.30.17
+ postcss: 8.5.3
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.5.13':
+ dependencies:
+ '@vue/compiler-dom': 3.5.13
+ '@vue/shared': 3.5.13
+
+ '@vue/compiler-ssr@3.5.15':
+ dependencies:
+ '@vue/compiler-dom': 3.5.15
+ '@vue/shared': 3.5.15
+
+ '@vue/compiler-vue2@2.7.16':
+ dependencies:
+ de-indent: 1.0.2
+ he: 1.2.0
+
+ '@vue/devtools-api@6.6.4': {}
+
+ '@vue/devtools-api@7.7.2':
+ dependencies:
+ '@vue/devtools-kit': 7.7.2
+
+ '@vue/devtools-core@7.7.6(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ '@vue/devtools-kit': 7.7.6
+ '@vue/devtools-shared': 7.7.6
+ mitt: 3.0.1
+ nanoid: 5.1.5
+ pathe: 2.0.3
+ vite-hot-client: 2.0.4(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))
+ vue: 3.5.15(typescript@5.6.3)
+ transitivePeerDependencies:
+ - vite
+
+ '@vue/devtools-kit@7.7.2':
+ dependencies:
+ '@vue/devtools-shared': 7.7.2
+ birpc: 0.2.19
+ hookable: 5.5.3
+ mitt: 3.0.1
+ perfect-debounce: 1.0.0
+ speakingurl: 14.0.1
+ superjson: 2.2.2
+
+ '@vue/devtools-kit@7.7.6':
+ dependencies:
+ '@vue/devtools-shared': 7.7.6
+ birpc: 2.3.0
+ hookable: 5.5.3
+ mitt: 3.0.1
+ perfect-debounce: 1.0.0
+ speakingurl: 14.0.1
+ superjson: 2.2.2
+
+ '@vue/devtools-shared@7.7.2':
+ dependencies:
+ rfdc: 1.4.1
+
+ '@vue/devtools-shared@7.7.6':
+ dependencies:
+ rfdc: 1.4.1
+
+ '@vue/language-core@2.1.10(typescript@5.6.3)':
+ dependencies:
+ '@volar/language-core': 2.4.10
+ '@vue/compiler-dom': 3.5.15
+ '@vue/compiler-vue2': 2.7.16
+ '@vue/shared': 3.5.15
+ alien-signals: 0.2.2
+ minimatch: 9.0.5
+ muggle-string: 0.4.1
+ path-browserify: 1.0.1
+ optionalDependencies:
+ typescript: 5.6.3
+
+ '@vue/reactivity@3.5.13':
+ dependencies:
+ '@vue/shared': 3.5.13
+
+ '@vue/reactivity@3.5.15':
+ dependencies:
+ '@vue/shared': 3.5.15
+
+ '@vue/runtime-core@3.5.15':
+ dependencies:
+ '@vue/reactivity': 3.5.15
+ '@vue/shared': 3.5.15
+
+ '@vue/runtime-dom@3.5.15':
+ dependencies:
+ '@vue/reactivity': 3.5.15
+ '@vue/runtime-core': 3.5.15
+ '@vue/shared': 3.5.15
+ csstype: 3.1.3
+
+ '@vue/server-renderer@3.5.15(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.15
+ '@vue/shared': 3.5.15
+ vue: 3.5.15(typescript@5.6.3)
+
+ '@vue/shared@3.5.13': {}
+
+ '@vue/shared@3.5.15': {}
+
+ '@vueuse/core@11.3.0(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ '@types/web-bluetooth': 0.0.20
+ '@vueuse/metadata': 11.3.0
+ '@vueuse/shared': 11.3.0(vue@3.5.15(typescript@5.6.3))
+ vue-demi: 0.14.10(vue@3.5.15(typescript@5.6.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@vueuse/core@9.13.0(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ '@types/web-bluetooth': 0.0.16
+ '@vueuse/metadata': 9.13.0
+ '@vueuse/shared': 9.13.0(vue@3.5.15(typescript@5.6.3))
+ vue-demi: 0.14.10(vue@3.5.15(typescript@5.6.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@vueuse/metadata@11.3.0': {}
+
+ '@vueuse/metadata@9.13.0': {}
+
+ '@vueuse/shared@11.3.0(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ vue-demi: 0.14.10(vue@3.5.15(typescript@5.6.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@vueuse/shared@9.13.0(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ vue-demi: 0.14.10(vue@3.5.15(typescript@5.6.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ dom7: 3.0.0
+ is-url: 1.2.4
+ lodash.throttle: 4.1.1
+ nanoid: 3.3.8
+ slate: 0.72.8
+ snabbdom: 3.6.2
+
+ '@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ dom7: 3.0.0
+ prismjs: 1.29.0
+ slate: 0.72.8
+ snabbdom: 3.6.2
+
+ '@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)':
+ dependencies:
+ '@types/event-emitter': 0.3.5
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ dom7: 3.0.0
+ event-emitter: 0.3.5
+ html-void-elements: 2.0.1
+ i18next: 20.6.1
+ is-hotkey: 0.2.0
+ lodash.camelcase: 4.3.0
+ lodash.clonedeep: 4.5.0
+ lodash.debounce: 4.0.8
+ lodash.foreach: 4.5.0
+ lodash.isequal: 4.5.0
+ lodash.throttle: 4.1.1
+ lodash.toarray: 4.4.0
+ nanoid: 3.3.8
+ scroll-into-view-if-needed: 2.2.31
+ slate: 0.72.8
+ slate-history: 0.66.0(slate@0.72.8)
+ snabbdom: 3.6.2
+
+ '@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.15(typescript@5.6.3))':
+ dependencies:
+ '@wangeditor/editor': 5.1.23
+ vue: 3.5.15(typescript@5.6.3)
+
+ '@wangeditor/editor@5.1.23':
+ dependencies:
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ dom7: 3.0.0
+ is-hotkey: 0.2.0
+ lodash.camelcase: 4.3.0
+ lodash.clonedeep: 4.5.0
+ lodash.debounce: 4.0.8
+ lodash.foreach: 4.5.0
+ lodash.isequal: 4.5.0
+ lodash.throttle: 4.1.1
+ lodash.toarray: 4.4.0
+ nanoid: 3.3.8
+ slate: 0.72.8
+ snabbdom: 3.6.2
+
+ '@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ dom7: 3.0.0
+ slate: 0.72.8
+ snabbdom: 3.6.2
+
+ '@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ dom7: 3.0.0
+ lodash.isequal: 4.5.0
+ lodash.throttle: 4.1.1
+ nanoid: 3.3.8
+ slate: 0.72.8
+ snabbdom: 3.6.2
+
+ '@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)':
+ dependencies:
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ dom7: 3.0.0
+ lodash.foreach: 4.5.0
+ slate: 0.72.8
+ snabbdom: 3.6.2
+
+ '@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)':
+ dependencies:
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
+ dom7: 3.0.0
+ nanoid: 3.3.8
+ slate: 0.72.8
+ snabbdom: 3.6.2
+
+ JSONStream@1.3.5:
+ dependencies:
+ jsonparse: 1.3.1
+ through: 2.3.8
+
+ acorn-jsx@5.3.2(acorn@8.14.0):
+ dependencies:
+ acorn: 8.14.0
+
+ acorn@8.14.0: {}
+
+ acorn@8.14.1: {}
+
+ adler-32@1.3.1: {}
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ajv@8.17.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.0.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
+ alien-signals@0.2.2: {}
+
+ ansi-escapes@4.3.2:
+ dependencies:
+ type-fest: 0.21.3
+
+ ansi-escapes@7.0.0:
+ dependencies:
+ environment: 1.1.0
+
+ ansi-regex@2.1.1: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.1.0: {}
+
+ ansi-styles@2.2.1: {}
+
+ ansi-styles@3.2.1:
+ dependencies:
+ color-convert: 1.9.3
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@6.2.1: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ arch@2.2.0: {}
+
+ archive-type@4.0.0:
+ dependencies:
+ file-type: 4.4.0
+
+ argparse@2.0.1: {}
+
+ array-find-index@1.0.2: {}
+
+ array-ify@1.0.0: {}
+
+ array-union@2.1.0: {}
+
+ astral-regex@2.0.0: {}
+
+ async-validator@4.2.5: {}
+
+ asynckit@0.4.0: {}
+
+ at-least-node@1.0.0: {}
+
+ axios@1.7.8:
+ dependencies:
+ follow-redirects: 1.15.9
+ form-data: 4.0.1
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ balanced-match@1.0.2: {}
+
+ balanced-match@2.0.0: {}
+
+ base64-js@1.5.1: {}
+
+ bin-build@3.0.0:
+ dependencies:
+ decompress: 4.2.1
+ download: 6.2.5
+ execa: 0.7.0
+ p-map-series: 1.0.0
+ tempfile: 2.0.0
+
+ bin-check@4.1.0:
+ dependencies:
+ execa: 0.7.0
+ executable: 4.1.1
+
+ bin-version-check@4.0.0:
+ dependencies:
+ bin-version: 3.1.0
+ semver: 5.7.2
+ semver-truncate: 1.1.2
+
+ bin-version@3.1.0:
+ dependencies:
+ execa: 1.0.0
+ find-versions: 3.2.0
+
+ bin-wrapper@4.1.0:
+ dependencies:
+ bin-check: 4.1.0
+ bin-version-check: 4.0.0
+ download: 7.1.0
+ import-lazy: 3.1.0
+ os-filter-obj: 2.0.0
+ pify: 4.0.1
+
+ binary-extensions@2.3.0: {}
+
+ birpc@0.2.19: {}
+
+ birpc@2.3.0: {}
+
+ bl@1.2.3:
+ dependencies:
+ readable-stream: 2.3.8
+ safe-buffer: 5.2.1
+
+ bl@4.1.0:
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ boolbase@1.0.0: {}
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.25.0:
+ dependencies:
+ caniuse-lite: 1.0.30001721
+ electron-to-chromium: 1.5.166
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.3(browserslist@4.25.0)
+
+ buffer-alloc-unsafe@1.1.0: {}
+
+ buffer-alloc@1.2.0:
+ dependencies:
+ buffer-alloc-unsafe: 1.1.0
+ buffer-fill: 1.0.0
+
+ buffer-crc32@0.2.13: {}
+
+ buffer-fill@1.0.0: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bundle-name@4.1.0:
+ dependencies:
+ run-applescript: 7.0.0
+
+ c12@3.0.4:
+ dependencies:
+ chokidar: 4.0.3
+ confbox: 0.2.2
+ defu: 6.1.4
+ dotenv: 16.5.0
+ exsolve: 1.0.5
+ giget: 2.0.0
+ jiti: 2.4.2
+ ohash: 2.0.11
+ pathe: 2.0.3
+ perfect-debounce: 1.0.0
+ pkg-types: 2.1.0
+ rc9: 2.1.2
+
+ cacheable-request@2.1.4:
+ dependencies:
+ clone-response: 1.0.2
+ get-stream: 3.0.0
+ http-cache-semantics: 3.8.1
+ keyv: 3.0.0
+ lowercase-keys: 1.0.0
+ normalize-url: 2.0.1
+ responselike: 1.0.2
+
+ cacheable@1.9.0:
+ dependencies:
+ hookified: 1.9.1
+ keyv: 5.3.3
+
+ cachedir@2.3.0: {}
+
+ callsites@3.1.0: {}
+
+ camelcase-keys@2.1.0:
+ dependencies:
+ camelcase: 2.1.1
+ map-obj: 1.0.1
+
+ camelcase@2.1.1: {}
+
+ caniuse-lite@1.0.30001721: {}
+
+ caw@2.0.1:
+ dependencies:
+ get-proxy: 2.1.0
+ isurl: 1.0.0
+ tunnel-agent: 0.6.0
+ url-to-options: 1.0.1
+
+ cfb@1.2.2:
+ dependencies:
+ adler-32: 1.3.1
+ crc-32: 1.2.2
+
+ chalk@1.1.3:
+ dependencies:
+ ansi-styles: 2.2.1
+ escape-string-regexp: 1.0.5
+ has-ansi: 2.0.0
+ strip-ansi: 3.0.1
+ supports-color: 2.0.0
+
+ chalk@2.4.2:
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.3.0: {}
+
+ chalk@5.4.1: {}
+
+ chardet@0.7.0: {}
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ chokidar@4.0.1:
+ dependencies:
+ readdirp: 4.0.2
+
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.0.2
+
+ citty@0.1.6:
+ dependencies:
+ consola: 3.4.2
+
+ cli-cursor@3.1.0:
+ dependencies:
+ restore-cursor: 3.1.0
+
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
+ cli-spinners@2.9.2: {}
+
+ cli-truncate@4.0.0:
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 7.2.0
+
+ cli-width@3.0.0: {}
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clone-response@1.0.2:
+ dependencies:
+ mimic-response: 1.0.1
+
+ clone@1.0.4: {}
+
+ codemirror@6.0.1(@lezer/common@1.2.3):
+ dependencies:
+ '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.4)(@codemirror/state@6.4.1)(@codemirror/view@6.35.0)(@lezer/common@1.2.3)
+ '@codemirror/commands': 6.7.1
+ '@codemirror/language': 6.10.4
+ '@codemirror/lint': 6.8.3
+ '@codemirror/search': 6.5.8
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.35.0
+ transitivePeerDependencies:
+ - '@lezer/common'
+
+ codepage@1.15.0: {}
+
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.3: {}
+
+ color-name@1.1.4: {}
+
+ colord@2.9.3: {}
+
+ colorette@2.0.20: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@13.1.0: {}
+
+ commander@2.20.3: {}
+
+ commander@7.2.0: {}
+
+ commitizen@4.3.1(@types/node@22.10.0)(typescript@5.6.3):
+ dependencies:
+ cachedir: 2.3.0
+ cz-conventional-changelog: 3.3.0(@types/node@22.10.0)(typescript@5.6.3)
+ dedent: 0.7.0
+ detect-indent: 6.1.0
+ find-node-modules: 2.1.3
+ find-root: 1.1.0
+ fs-extra: 9.1.0
+ glob: 7.2.3
+ inquirer: 8.2.5
+ is-utf8: 0.2.1
+ lodash: 4.17.21
+ minimist: 1.2.7
+ strip-bom: 4.0.0
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - '@types/node'
+ - typescript
+
+ compare-func@2.0.0:
+ dependencies:
+ array-ify: 1.0.0
+ dot-prop: 5.3.0
+
+ compute-scroll-into-view@1.0.20: {}
+
+ concat-map@0.0.1: {}
+
+ confbox@0.1.8: {}
+
+ confbox@0.2.2: {}
+
+ config-chain@1.1.13:
+ dependencies:
+ ini: 1.3.8
+ proto-list: 1.2.4
+
+ consola@3.4.2: {}
+
+ console-stream@0.1.1: {}
+
+ content-disposition@0.5.4:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ conventional-changelog-angular@7.0.0:
+ dependencies:
+ compare-func: 2.0.0
+
+ conventional-changelog-conventionalcommits@7.0.2:
+ dependencies:
+ compare-func: 2.0.0
+
+ conventional-commit-types@3.0.0: {}
+
+ conventional-commits-parser@5.0.0:
+ dependencies:
+ JSONStream: 1.3.5
+ is-text-path: 2.0.0
+ meow: 12.1.1
+ split2: 4.2.0
+
+ convert-source-map@2.0.0: {}
+
+ copy-anything@3.0.5:
+ dependencies:
+ is-what: 4.1.16
+
+ copy-to-clipboard@3.3.3:
+ dependencies:
+ toggle-selection: 1.0.6
+
+ core-js@3.39.0: {}
+
+ core-util-is@1.0.3: {}
+
+ cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.0)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3):
+ dependencies:
+ '@types/node': 22.10.0
+ cosmiconfig: 9.0.0(typescript@5.6.3)
+ jiti: 1.21.6
+ typescript: 5.6.3
+
+ cosmiconfig@9.0.0(typescript@5.6.3):
+ dependencies:
+ env-paths: 2.2.1
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ optionalDependencies:
+ typescript: 5.6.3
+
+ crc-32@1.2.2: {}
+
+ crelt@1.0.6: {}
+
+ cross-spawn@5.1.0:
+ dependencies:
+ lru-cache: 4.1.5
+ shebang-command: 1.2.0
+ which: 1.3.1
+
+ cross-spawn@6.0.6:
+ dependencies:
+ nice-try: 1.0.5
+ path-key: 2.0.1
+ semver: 5.7.2
+ shebang-command: 1.2.0
+ which: 1.3.1
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ crypto-js@4.2.0: {}
+
+ css-functions-list@3.2.3: {}
+
+ css-select@4.3.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ nth-check: 2.1.1
+
+ css-tree@1.1.3:
+ dependencies:
+ mdn-data: 2.0.14
+ source-map: 0.6.1
+
+ css-tree@3.0.1:
+ dependencies:
+ mdn-data: 2.12.1
+ source-map-js: 1.2.1
+
+ css-tree@3.1.0:
+ dependencies:
+ mdn-data: 2.12.2
+ source-map-js: 1.2.1
+
+ css-what@6.1.0: {}
+
+ cssesc@3.0.0: {}
+
+ cssfilter@0.0.10: {}
+
+ csso@4.2.0:
+ dependencies:
+ css-tree: 1.1.3
+
+ csstype@3.1.3: {}
+
+ currently-unhandled@0.4.1:
+ dependencies:
+ array-find-index: 1.0.2
+
+ cwebp-bin@6.1.2:
+ dependencies:
+ bin-build: 3.0.0
+ bin-wrapper: 4.1.0
+
+ cz-conventional-changelog@3.3.0(@types/node@22.10.0)(typescript@5.6.3):
+ dependencies:
+ chalk: 2.4.2
+ commitizen: 4.3.1(@types/node@22.10.0)(typescript@5.6.3)
+ conventional-commit-types: 3.0.0
+ lodash.map: 4.6.0
+ longest: 2.0.1
+ word-wrap: 1.2.5
+ optionalDependencies:
+ '@commitlint/load': 19.5.0(@types/node@22.10.0)(typescript@5.6.3)
+ transitivePeerDependencies:
+ - '@types/node'
+ - typescript
+
+ cz-git@1.11.1: {}
+
+ d@1.0.2:
+ dependencies:
+ es5-ext: 0.10.64
+ type: 2.7.3
+
+ danmu.js@1.1.13:
+ dependencies:
+ event-emitter: 0.3.5
+
+ dargs@8.1.0: {}
+
+ dayjs@1.11.13: {}
+
+ de-indent@1.0.2: {}
+
+ debug@4.3.7:
+ dependencies:
+ ms: 2.1.3
+
+ debug@4.4.1:
+ dependencies:
+ ms: 2.1.3
+
+ decamelize@1.2.0: {}
+
+ decode-uri-component@0.2.2: {}
+
+ decompress-response@3.3.0:
+ dependencies:
+ mimic-response: 1.0.1
+
+ decompress-tar@4.1.1:
+ dependencies:
+ file-type: 5.2.0
+ is-stream: 1.1.0
+ tar-stream: 1.6.2
+
+ decompress-tarbz2@4.1.1:
+ dependencies:
+ decompress-tar: 4.1.1
+ file-type: 6.2.0
+ is-stream: 1.1.0
+ seek-bzip: 1.0.6
+ unbzip2-stream: 1.4.3
+
+ decompress-targz@4.1.1:
+ dependencies:
+ decompress-tar: 4.1.1
+ file-type: 5.2.0
+ is-stream: 1.1.0
+
+ decompress-unzip@4.0.1:
+ dependencies:
+ file-type: 3.9.0
+ get-stream: 2.3.1
+ pify: 2.3.0
+ yauzl: 2.10.0
+
+ decompress@4.2.1:
+ dependencies:
+ decompress-tar: 4.1.1
+ decompress-tarbz2: 4.1.1
+ decompress-targz: 4.1.1
+ decompress-unzip: 4.0.1
+ graceful-fs: 4.2.11
+ make-dir: 1.3.0
+ pify: 2.3.0
+ strip-dirs: 2.1.0
+
+ dedent@0.7.0: {}
+
+ deep-is@0.1.4: {}
+
+ deep-pick-omit@1.2.1: {}
+
+ default-browser-id@5.0.0: {}
+
+ default-browser@5.2.1:
+ dependencies:
+ bundle-name: 4.1.0
+ default-browser-id: 5.0.0
+
+ defaults@1.0.4:
+ dependencies:
+ clone: 1.0.4
+
+ define-lazy-prop@2.0.0: {}
+
+ define-lazy-prop@3.0.0: {}
+
+ defu@6.1.4: {}
+
+ delayed-stream@1.0.0: {}
+
+ delegate@3.2.0: {}
+
+ destr@2.0.5: {}
+
+ detect-file@1.0.0: {}
+
+ detect-indent@6.1.0: {}
+
+ detect-libc@1.0.3:
+ optional: true
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ dom-serializer@1.4.1:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+
+ dom7@3.0.0:
+ dependencies:
+ ssr-window: 3.0.0
+
+ domelementtype@2.3.0: {}
+
+ domhandler@4.3.1:
+ dependencies:
+ domelementtype: 2.3.0
+
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
+
+ domutils@2.8.0:
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+
+ domutils@3.1.0:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
+ dot-prop@5.3.0:
+ dependencies:
+ is-obj: 2.0.0
+
+ dotenv@16.5.0: {}
+
+ download@6.2.5:
+ dependencies:
+ caw: 2.0.1
+ content-disposition: 0.5.4
+ decompress: 4.2.1
+ ext-name: 5.0.0
+ file-type: 5.2.0
+ filenamify: 2.1.0
+ get-stream: 3.0.0
+ got: 7.1.0
+ make-dir: 1.3.0
+ p-event: 1.3.0
+ pify: 3.0.0
+
+ download@7.1.0:
+ dependencies:
+ archive-type: 4.0.0
+ caw: 2.0.1
+ content-disposition: 0.5.4
+ decompress: 4.2.1
+ ext-name: 5.0.0
+ file-type: 8.1.0
+ filenamify: 2.1.0
+ get-stream: 3.0.0
+ got: 8.3.2
+ make-dir: 1.3.0
+ p-event: 2.3.1
+ pify: 3.0.0
+
+ downloadjs@1.4.7: {}
+
+ duplexer3@0.1.5: {}
+
+ echarts@5.5.1:
+ dependencies:
+ tslib: 2.3.0
+ zrender: 5.6.0
+
+ electron-to-chromium@1.5.166: {}
+
+ element-plus@2.9.11(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ '@ctrl/tinycolor': 3.6.1
+ '@element-plus/icons-vue': 2.3.1(vue@3.5.15(typescript@5.6.3))
+ '@floating-ui/dom': 1.6.12
+ '@popperjs/core': '@sxzz/popperjs-es@2.11.7'
+ '@types/lodash': 4.17.13
+ '@types/lodash-es': 4.17.12
+ '@vueuse/core': 9.13.0(vue@3.5.15(typescript@5.6.3))
+ async-validator: 4.2.5
+ dayjs: 1.11.13
+ escape-html: 1.0.3
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21)
+ memoize-one: 6.0.0
+ normalize-wheel-es: 1.2.0
+ vue: 3.5.15(typescript@5.6.3)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+
+ emoji-regex@10.4.0: {}
+
+ emoji-regex@8.0.0: {}
+
+ end-of-stream@1.4.4:
+ dependencies:
+ once: 1.4.0
+
+ entities@2.2.0: {}
+
+ entities@4.5.0: {}
+
+ env-paths@2.2.1: {}
+
+ environment@1.1.0: {}
+
+ error-ex@1.3.2:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ error-stack-parser-es@0.1.5: {}
+
+ errx@0.1.0: {}
+
+ es5-ext@0.10.64:
+ dependencies:
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.4
+ esniff: 2.0.1
+ next-tick: 1.1.0
+
+ es6-iterator@2.0.3:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ es6-symbol: 3.1.4
+
+ es6-symbol@3.1.4:
+ dependencies:
+ d: 1.0.2
+ ext: 1.7.0
+
+ esbuild-android-64@0.14.54:
+ optional: true
+
+ esbuild-android-arm64@0.14.54:
+ optional: true
+
+ esbuild-darwin-64@0.14.54:
+ optional: true
+
+ esbuild-darwin-arm64@0.14.54:
+ optional: true
+
+ esbuild-freebsd-64@0.14.54:
+ optional: true
+
+ esbuild-freebsd-arm64@0.14.54:
+ optional: true
+
+ esbuild-linux-32@0.14.54:
+ optional: true
+
+ esbuild-linux-64@0.14.54:
+ optional: true
+
+ esbuild-linux-arm64@0.14.54:
+ optional: true
+
+ esbuild-linux-arm@0.14.54:
+ optional: true
+
+ esbuild-linux-mips64le@0.14.54:
+ optional: true
+
+ esbuild-linux-ppc64le@0.14.54:
+ optional: true
+
+ esbuild-linux-riscv64@0.14.54:
+ optional: true
+
+ esbuild-linux-s390x@0.14.54:
+ optional: true
+
+ esbuild-netbsd-64@0.14.54:
+ optional: true
+
+ esbuild-openbsd-64@0.14.54:
+ optional: true
+
+ esbuild-sunos-64@0.14.54:
+ optional: true
+
+ esbuild-windows-32@0.14.54:
+ optional: true
+
+ esbuild-windows-64@0.14.54:
+ optional: true
+
+ esbuild-windows-arm64@0.14.54:
+ optional: true
+
+ esbuild@0.14.54:
+ optionalDependencies:
+ '@esbuild/linux-loong64': 0.14.54
+ esbuild-android-64: 0.14.54
+ esbuild-android-arm64: 0.14.54
+ esbuild-darwin-64: 0.14.54
+ esbuild-darwin-arm64: 0.14.54
+ esbuild-freebsd-64: 0.14.54
+ esbuild-freebsd-arm64: 0.14.54
+ esbuild-linux-32: 0.14.54
+ esbuild-linux-64: 0.14.54
+ esbuild-linux-arm: 0.14.54
+ esbuild-linux-arm64: 0.14.54
+ esbuild-linux-mips64le: 0.14.54
+ esbuild-linux-ppc64le: 0.14.54
+ esbuild-linux-riscv64: 0.14.54
+ esbuild-linux-s390x: 0.14.54
+ esbuild-netbsd-64: 0.14.54
+ esbuild-openbsd-64: 0.14.54
+ esbuild-sunos-64: 0.14.54
+ esbuild-windows-32: 0.14.54
+ esbuild-windows-64: 0.14.54
+ esbuild-windows-arm64: 0.14.54
+
+ esbuild@0.24.2:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.24.2
+ '@esbuild/android-arm': 0.24.2
+ '@esbuild/android-arm64': 0.24.2
+ '@esbuild/android-x64': 0.24.2
+ '@esbuild/darwin-arm64': 0.24.2
+ '@esbuild/darwin-x64': 0.24.2
+ '@esbuild/freebsd-arm64': 0.24.2
+ '@esbuild/freebsd-x64': 0.24.2
+ '@esbuild/linux-arm': 0.24.2
+ '@esbuild/linux-arm64': 0.24.2
+ '@esbuild/linux-ia32': 0.24.2
+ '@esbuild/linux-loong64': 0.24.2
+ '@esbuild/linux-mips64el': 0.24.2
+ '@esbuild/linux-ppc64': 0.24.2
+ '@esbuild/linux-riscv64': 0.24.2
+ '@esbuild/linux-s390x': 0.24.2
+ '@esbuild/linux-x64': 0.24.2
+ '@esbuild/netbsd-arm64': 0.24.2
+ '@esbuild/netbsd-x64': 0.24.2
+ '@esbuild/openbsd-arm64': 0.24.2
+ '@esbuild/openbsd-x64': 0.24.2
+ '@esbuild/sunos-x64': 0.24.2
+ '@esbuild/win32-arm64': 0.24.2
+ '@esbuild/win32-ia32': 0.24.2
+ '@esbuild/win32-x64': 0.24.2
+
+ escalade@3.2.0: {}
+
+ escape-html@1.0.3: {}
+
+ escape-string-regexp@1.0.5: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ escape-string-regexp@5.0.0: {}
+
+ eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.15.0(jiti@2.4.2)
+
+ eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.15.0(jiti@2.4.2)))(eslint@9.15.0(jiti@2.4.2))(prettier@3.5.3):
+ dependencies:
+ eslint: 9.15.0(jiti@2.4.2)
+ prettier: 3.5.3
+ prettier-linter-helpers: 1.0.0
+ synckit: 0.9.2
+ optionalDependencies:
+ eslint-config-prettier: 9.1.0(eslint@9.15.0(jiti@2.4.2))
+
+ eslint-plugin-vue@9.31.0(eslint@9.15.0(jiti@2.4.2)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2))
+ eslint: 9.15.0(jiti@2.4.2)
+ globals: 13.24.0
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.1.2
+ semver: 7.6.3
+ vue-eslint-parser: 9.4.3(eslint@9.15.0(jiti@2.4.2))
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-scope@8.2.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.0: {}
+
+ eslint@9.15.0(jiti@2.4.2):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2))
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/config-array': 0.19.0
+ '@eslint/core': 0.9.0
+ '@eslint/eslintrc': 3.2.0
+ '@eslint/js': 9.15.0
+ '@eslint/plugin-kit': 0.2.3
+ '@humanfs/node': 0.16.6
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.1
+ '@types/estree': 1.0.6
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.3.7
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.2.0
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ optionalDependencies:
+ jiti: 2.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ esniff@2.0.1:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ event-emitter: 0.3.5
+ type: 2.7.3
+
+ espree@10.3.0:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 4.2.0
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 3.4.3
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.6
+
+ esutils@2.0.3: {}
+
+ event-emitter@0.3.5:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+
+ eventemitter3@4.0.7: {}
+
+ eventemitter3@5.0.1: {}
+
+ exec-buffer@3.2.0:
+ dependencies:
+ execa: 0.7.0
+ p-finally: 1.0.0
+ pify: 3.0.0
+ rimraf: 2.7.1
+ tempfile: 2.0.0
+
+ execa@0.7.0:
+ dependencies:
+ cross-spawn: 5.1.0
+ get-stream: 3.0.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.7
+ strip-eof: 1.0.0
+
+ execa@1.0.0:
+ dependencies:
+ cross-spawn: 6.0.6
+ get-stream: 4.1.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.7
+ strip-eof: 1.0.0
+
+ execa@4.1.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 5.2.0
+ human-signals: 1.1.1
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ execa@8.0.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 8.0.1
+ human-signals: 5.0.0
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.3.0
+ onetime: 6.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 3.0.0
+
+ execa@9.6.0:
+ dependencies:
+ '@sindresorhus/merge-streams': 4.0.0
+ cross-spawn: 7.0.6
+ figures: 6.1.0
+ get-stream: 9.0.1
+ human-signals: 8.0.1
+ is-plain-obj: 4.1.0
+ is-stream: 4.0.1
+ npm-run-path: 6.0.0
+ pretty-ms: 9.2.0
+ signal-exit: 4.1.0
+ strip-final-newline: 4.0.0
+ yoctocolors: 2.1.1
+
+ executable@4.1.1:
+ dependencies:
+ pify: 2.3.0
+
+ expand-tilde@2.0.2:
+ dependencies:
+ homedir-polyfill: 1.0.3
+
+ exsolve@1.0.5: {}
+
+ ext-list@2.2.2:
+ dependencies:
+ mime-db: 1.52.0
+
+ ext-name@5.0.0:
+ dependencies:
+ ext-list: 2.2.2
+ sort-keys-length: 1.0.1
+
+ ext@1.7.0:
+ dependencies:
+ type: 2.7.3
+
+ external-editor@3.1.0:
+ dependencies:
+ chardet: 0.7.0
+ iconv-lite: 0.4.24
+ tmp: 0.0.33
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-glob@3.3.2:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-glob@3.3.3:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fast-uri@3.0.3: {}
+
+ fast-xml-parser@4.5.3:
+ dependencies:
+ strnum: 1.1.2
+
+ fastest-levenshtein@1.0.16: {}
+
+ fastq@1.17.1:
+ dependencies:
+ reusify: 1.0.4
+
+ fd-slicer@1.1.0:
+ dependencies:
+ pend: 1.2.0
+
+ fdir@6.4.5(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
+
+ figures@1.7.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+ object-assign: 4.1.1
+
+ figures@3.2.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ figures@6.1.0:
+ dependencies:
+ is-unicode-supported: 2.1.0
+
+ file-entry-cache@10.1.0:
+ dependencies:
+ flat-cache: 6.1.9
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ file-saver@2.0.5: {}
+
+ file-type@10.11.0: {}
+
+ file-type@12.4.2: {}
+
+ file-type@3.9.0: {}
+
+ file-type@4.4.0: {}
+
+ file-type@5.2.0: {}
+
+ file-type@6.2.0: {}
+
+ file-type@8.1.0: {}
+
+ filename-reserved-regex@2.0.0: {}
+
+ filenamify@2.1.0:
+ dependencies:
+ filename-reserved-regex: 2.0.0
+ strip-outer: 1.0.1
+ trim-repeated: 1.0.0
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-node-modules@2.1.3:
+ dependencies:
+ findup-sync: 4.0.0
+ merge: 2.1.1
+
+ find-root@1.1.0: {}
+
+ find-up@1.1.2:
+ dependencies:
+ path-exists: 2.1.0
+ pinkie-promise: 2.0.1
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ find-up@7.0.0:
+ dependencies:
+ locate-path: 7.2.0
+ path-exists: 5.0.0
+ unicorn-magic: 0.1.0
+
+ find-versions@3.2.0:
+ dependencies:
+ semver-regex: 2.0.0
+
+ findup-sync@4.0.0:
+ dependencies:
+ detect-file: 1.0.0
+ is-glob: 4.0.3
+ micromatch: 4.0.8
+ resolve-dir: 1.0.1
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.2
+ keyv: 4.5.4
+
+ flat-cache@6.1.9:
+ dependencies:
+ cacheable: 1.9.0
+ flatted: 3.3.3
+ hookified: 1.9.1
+
+ flatted@3.3.2: {}
+
+ flatted@3.3.3: {}
+
+ follow-redirects@1.15.9: {}
+
+ form-data@4.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ frac@1.1.2: {}
+
+ from2@2.3.0:
+ dependencies:
+ inherits: 2.0.4
+ readable-stream: 2.3.8
+
+ fs-constants@1.0.0: {}
+
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-extra@11.3.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-extra@9.1.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ gensync@1.0.0-beta.2: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-east-asian-width@1.3.0: {}
+
+ get-proxy@2.1.0:
+ dependencies:
+ npm-conf: 1.1.3
+
+ get-stdin@4.0.1: {}
+
+ get-stream@2.3.1:
+ dependencies:
+ object-assign: 4.1.1
+ pinkie-promise: 2.0.1
+
+ get-stream@3.0.0: {}
+
+ get-stream@4.1.0:
+ dependencies:
+ pump: 3.0.2
+
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.2
+
+ get-stream@6.0.1: {}
+
+ get-stream@8.0.1: {}
+
+ get-stream@9.0.1:
+ dependencies:
+ '@sec-ant/readable-stream': 0.4.1
+ is-stream: 4.0.1
+
+ gifsicle@5.2.0:
+ dependencies:
+ bin-build: 3.0.0
+ bin-wrapper: 4.1.0
+ execa: 5.1.1
+ logalot: 2.1.0
+
+ giget@2.0.0:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.4.2
+ defu: 6.1.4
+ node-fetch-native: 1.6.6
+ nypm: 0.6.0
+ pathe: 2.0.3
+
+ git-raw-commits@4.0.0:
+ dependencies:
+ dargs: 8.1.0
+ meow: 12.1.1
+ split2: 4.2.0
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ global-directory@4.0.1:
+ dependencies:
+ ini: 4.1.1
+
+ global-modules@1.0.0:
+ dependencies:
+ global-prefix: 1.0.2
+ is-windows: 1.0.2
+ resolve-dir: 1.0.1
+
+ global-modules@2.0.0:
+ dependencies:
+ global-prefix: 3.0.0
+
+ global-prefix@1.0.2:
+ dependencies:
+ expand-tilde: 2.0.2
+ homedir-polyfill: 1.0.3
+ ini: 1.3.8
+ is-windows: 1.0.2
+ which: 1.3.1
+
+ global-prefix@3.0.0:
+ dependencies:
+ ini: 1.3.8
+ kind-of: 6.0.3
+ which: 1.3.1
+
+ globals@11.12.0: {}
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ globals@14.0.0: {}
+
+ globals@15.12.0: {}
+
+ globby@10.0.2:
+ dependencies:
+ '@types/glob': 7.2.0
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.3
+ glob: 7.2.3
+ ignore: 5.3.2
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.3
+ ignore: 5.3.2
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ globjoin@0.1.4: {}
+
+ got@7.1.0:
+ dependencies:
+ '@types/keyv': 3.1.4
+ '@types/responselike': 1.0.3
+ decompress-response: 3.3.0
+ duplexer3: 0.1.5
+ get-stream: 3.0.0
+ is-plain-obj: 1.1.0
+ is-retry-allowed: 1.2.0
+ is-stream: 1.1.0
+ isurl: 1.0.0
+ lowercase-keys: 1.0.1
+ p-cancelable: 0.3.0
+ p-timeout: 1.2.1
+ safe-buffer: 5.2.1
+ timed-out: 4.0.1
+ url-parse-lax: 1.0.0
+ url-to-options: 1.0.1
+
+ got@8.3.2:
+ dependencies:
+ '@sindresorhus/is': 0.7.0
+ '@types/keyv': 3.1.4
+ '@types/responselike': 1.0.3
+ cacheable-request: 2.1.4
+ decompress-response: 3.3.0
+ duplexer3: 0.1.5
+ get-stream: 3.0.0
+ into-stream: 3.1.0
+ is-retry-allowed: 1.2.0
+ isurl: 1.0.0
+ lowercase-keys: 1.0.1
+ mimic-response: 1.0.1
+ p-cancelable: 0.4.1
+ p-timeout: 2.0.1
+ pify: 3.0.0
+ safe-buffer: 5.2.1
+ timed-out: 4.0.1
+ url-parse-lax: 3.0.0
+ url-to-options: 1.0.1
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ has-ansi@2.0.0:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ has-flag@3.0.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-symbol-support-x@1.4.2: {}
+
+ has-to-string-tag-x@1.4.1:
+ dependencies:
+ has-symbol-support-x: 1.4.2
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ he@1.2.0: {}
+
+ highlight.js@11.10.0: {}
+
+ homedir-polyfill@1.0.3:
+ dependencies:
+ parse-passwd: 1.0.0
+
+ hookable@5.5.3: {}
+
+ hookified@1.9.1: {}
+
+ hosted-git-info@2.8.9: {}
+
+ html-tags@3.3.1: {}
+
+ html-void-elements@2.0.1: {}
+
+ htmlparser2@8.0.2:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ entities: 4.5.0
+
+ http-cache-semantics@3.8.1: {}
+
+ human-signals@1.1.1: {}
+
+ human-signals@2.1.0: {}
+
+ human-signals@5.0.0: {}
+
+ human-signals@8.0.1: {}
+
+ husky@9.1.7: {}
+
+ i18next@20.6.1:
+ dependencies:
+ '@babel/runtime': 7.26.0
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ ignore@7.0.4: {}
+
+ imagemin-gifsicle@7.0.0:
+ dependencies:
+ execa: 1.0.0
+ gifsicle: 5.2.0
+ is-gif: 3.0.0
+
+ imagemin-jpegtran@7.0.0:
+ dependencies:
+ exec-buffer: 3.2.0
+ is-jpg: 2.0.0
+ jpegtran-bin: 5.0.2
+
+ imagemin-mozjpeg@9.0.0:
+ dependencies:
+ execa: 4.1.0
+ is-jpg: 2.0.0
+ mozjpeg: 7.1.1
+
+ imagemin-optipng@8.0.0:
+ dependencies:
+ exec-buffer: 3.2.0
+ is-png: 2.0.0
+ optipng-bin: 7.0.1
+
+ imagemin-pngquant@9.0.2:
+ dependencies:
+ execa: 4.1.0
+ is-png: 2.0.0
+ is-stream: 2.0.1
+ ow: 0.17.0
+ pngquant-bin: 6.0.1
+
+ imagemin-svgo@9.0.0:
+ dependencies:
+ is-svg: 4.4.0
+ svgo: 2.8.0
+
+ imagemin-webp@6.1.0:
+ dependencies:
+ cwebp-bin: 6.1.2
+ exec-buffer: 3.2.0
+ is-cwebp-readable: 3.0.0
+
+ imagemin@7.0.1:
+ dependencies:
+ file-type: 12.4.2
+ globby: 10.0.2
+ graceful-fs: 4.2.11
+ junk: 3.1.0
+ make-dir: 3.1.0
+ p-pipe: 3.1.0
+ replace-ext: 1.0.1
+
+ immer@9.0.21: {}
+
+ immutable@5.0.3: {}
+
+ import-fresh@3.3.0:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ import-lazy@3.1.0: {}
+
+ import-meta-resolve@4.1.0: {}
+
+ imurmurhash@0.1.4: {}
+
+ indent-string@2.1.0:
+ dependencies:
+ repeating: 2.0.1
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ ini@1.3.8: {}
+
+ ini@4.1.1: {}
+
+ inquirer@8.2.5:
+ dependencies:
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-width: 3.0.0
+ external-editor: 3.1.0
+ figures: 3.2.0
+ lodash: 4.17.21
+ mute-stream: 0.0.8
+ ora: 5.4.1
+ run-async: 2.4.1
+ rxjs: 7.8.1
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ through: 2.3.8
+ wrap-ansi: 7.0.0
+
+ into-stream@3.1.0:
+ dependencies:
+ from2: 2.3.0
+ p-is-promise: 1.1.0
+
+ is-arrayish@0.2.1: {}
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-cwebp-readable@3.0.0:
+ dependencies:
+ file-type: 10.11.0
+
+ is-docker@2.2.1: {}
+
+ is-docker@3.0.0: {}
+
+ is-extglob@2.1.1: {}
+
+ is-finite@1.1.0: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-fullwidth-code-point@4.0.0: {}
+
+ is-fullwidth-code-point@5.0.0:
+ dependencies:
+ get-east-asian-width: 1.3.0
+
+ is-gif@3.0.0:
+ dependencies:
+ file-type: 10.11.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-hotkey@0.2.0: {}
+
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
+ is-interactive@1.0.0: {}
+
+ is-jpg@2.0.0: {}
+
+ is-natural-number@4.0.1: {}
+
+ is-number@7.0.0: {}
+
+ is-obj@2.0.0: {}
+
+ is-object@1.0.2: {}
+
+ is-plain-obj@1.1.0: {}
+
+ is-plain-obj@4.1.0: {}
+
+ is-plain-object@5.0.0: {}
+
+ is-png@2.0.0: {}
+
+ is-retry-allowed@1.2.0: {}
+
+ is-stream@1.1.0: {}
+
+ is-stream@2.0.1: {}
+
+ is-stream@3.0.0: {}
+
+ is-stream@4.0.1: {}
+
+ is-svg@4.4.0:
+ dependencies:
+ fast-xml-parser: 4.5.3
+
+ is-text-path@2.0.0:
+ dependencies:
+ text-extensions: 2.4.0
+
+ is-unicode-supported@0.1.0: {}
+
+ is-unicode-supported@2.1.0: {}
+
+ is-url@1.2.4: {}
+
+ is-utf8@0.2.1: {}
+
+ is-what@4.1.16: {}
+
+ is-windows@1.0.2: {}
+
+ is-wsl@2.2.0:
+ dependencies:
+ is-docker: 2.2.1
+
+ is-wsl@3.1.0:
+ dependencies:
+ is-inside-container: 1.0.0
+
+ isarray@1.0.0: {}
+
+ isexe@2.0.0: {}
+
+ isurl@1.0.0:
+ dependencies:
+ has-to-string-tag-x: 1.4.1
+ is-object: 1.0.2
+
+ jiti@1.21.6: {}
+
+ jiti@2.4.2: {}
+
+ jpegtran-bin@5.0.2:
+ dependencies:
+ bin-build: 3.0.0
+ bin-wrapper: 4.1.0
+ logalot: 2.1.0
+
+ jpegtran-bin@6.0.1:
+ dependencies:
+ bin-build: 3.0.0
+ bin-wrapper: 4.1.0
+
+ js-tokens@4.0.0: {}
+
+ js-tokens@9.0.1: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-schema-traverse@1.0.0: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@2.2.3: {}
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonparse@1.3.1: {}
+
+ junk@3.1.0: {}
+
+ keyv@3.0.0:
+ dependencies:
+ json-buffer: 3.0.0
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ keyv@5.3.3:
+ dependencies:
+ '@keyv/serialize': 1.0.3
+
+ kind-of@6.0.3: {}
+
+ klona@2.0.6: {}
+
+ knitwork@1.2.0: {}
+
+ known-css-properties@0.35.0: {}
+
+ known-css-properties@0.36.0: {}
+
+ kolorist@1.8.0: {}
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lilconfig@3.1.3: {}
+
+ lines-and-columns@1.2.4: {}
+
+ linkify-it@5.0.0:
+ dependencies:
+ uc.micro: 2.1.0
+
+ lint-staged@15.5.2:
+ dependencies:
+ chalk: 5.4.1
+ commander: 13.1.0
+ debug: 4.4.1
+ execa: 8.0.1
+ lilconfig: 3.1.3
+ listr2: 8.2.5
+ micromatch: 4.0.8
+ pidtree: 0.6.0
+ string-argv: 0.3.2
+ yaml: 2.8.0
+ transitivePeerDependencies:
+ - supports-color
+
+ listr2@8.2.5:
+ dependencies:
+ cli-truncate: 4.0.0
+ colorette: 2.0.20
+ eventemitter3: 5.0.1
+ log-update: 6.1.0
+ rfdc: 1.4.1
+ wrap-ansi: 9.0.0
+
+ load-json-file@1.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ parse-json: 2.2.0
+ pify: 2.3.0
+ pinkie-promise: 2.0.1
+ strip-bom: 2.0.0
+
+ local-pkg@0.5.1:
+ dependencies:
+ mlly: 1.7.3
+ pkg-types: 1.2.1
+
+ local-pkg@1.1.1:
+ dependencies:
+ mlly: 1.7.4
+ pkg-types: 2.1.0
+ quansync: 0.2.10
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ locate-path@7.2.0:
+ dependencies:
+ p-locate: 6.0.0
+
+ lodash-es@4.17.21: {}
+
+ lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
+ dependencies:
+ '@types/lodash-es': 4.17.12
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+
+ lodash.camelcase@4.3.0: {}
+
+ lodash.clonedeep@4.5.0: {}
+
+ lodash.debounce@4.0.8: {}
+
+ lodash.foreach@4.5.0: {}
+
+ lodash.isequal@4.5.0: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.kebabcase@4.1.1: {}
+
+ lodash.map@4.6.0: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.mergewith@4.6.2: {}
+
+ lodash.snakecase@4.1.1: {}
+
+ lodash.startcase@4.4.0: {}
+
+ lodash.throttle@4.1.1: {}
+
+ lodash.toarray@4.4.0: {}
+
+ lodash.truncate@4.4.2: {}
+
+ lodash.uniq@4.5.0: {}
+
+ lodash.upperfirst@4.3.1: {}
+
+ lodash@4.17.21: {}
+
+ log-symbols@4.1.0:
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+
+ log-update@6.1.0:
+ dependencies:
+ ansi-escapes: 7.0.0
+ cli-cursor: 5.0.0
+ slice-ansi: 7.1.0
+ strip-ansi: 7.1.0
+ wrap-ansi: 9.0.0
+
+ logalot@2.1.0:
+ dependencies:
+ figures: 1.7.0
+ squeak: 1.3.0
+
+ longest@1.0.1: {}
+
+ longest@2.0.1: {}
+
+ loud-rejection@1.6.0:
+ dependencies:
+ currently-unhandled: 0.4.1
+ signal-exit: 3.0.7
+
+ lowercase-keys@1.0.0: {}
+
+ lowercase-keys@1.0.1: {}
+
+ lpad-align@1.1.2:
+ dependencies:
+ get-stdin: 4.0.1
+ indent-string: 2.1.0
+ longest: 1.0.1
+ meow: 3.7.0
+
+ lru-cache@10.4.3: {}
+
+ lru-cache@4.1.5:
+ dependencies:
+ pseudomap: 1.0.2
+ yallist: 2.1.2
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ magic-string@0.30.14:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ make-dir@1.3.0:
+ dependencies:
+ pify: 3.0.0
+
+ make-dir@3.1.0:
+ dependencies:
+ semver: 6.3.1
+
+ map-obj@1.0.1: {}
+
+ markdown-it-image-figures@2.1.1(markdown-it@14.1.0):
+ dependencies:
+ markdown-it: 14.1.0
+
+ markdown-it-sub@2.0.0: {}
+
+ markdown-it-sup@2.0.0: {}
+
+ markdown-it@14.1.0:
+ dependencies:
+ argparse: 2.0.1
+ entities: 4.5.0
+ linkify-it: 5.0.0
+ mdurl: 2.0.0
+ punycode.js: 2.3.1
+ uc.micro: 2.1.0
+
+ mathml-tag-names@2.1.3: {}
+
+ md-editor-v3@4.21.3(@codemirror/view@6.35.0)(@lezer/common@1.2.3)(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ '@codemirror/lang-markdown': 6.3.1
+ '@codemirror/language-data': 6.5.1(@codemirror/view@6.35.0)
+ '@types/markdown-it': 14.1.2
+ '@vavt/util': 2.1.0
+ codemirror: 6.0.1(@lezer/common@1.2.3)
+ copy-to-clipboard: 3.3.3
+ lru-cache: 10.4.3
+ markdown-it: 14.1.0
+ markdown-it-image-figures: 2.1.1(markdown-it@14.1.0)
+ markdown-it-sub: 2.0.0
+ markdown-it-sup: 2.0.0
+ medium-zoom: 1.1.0
+ vue: 3.5.15(typescript@5.6.3)
+ xss: 1.0.15
+ transitivePeerDependencies:
+ - '@codemirror/view'
+ - '@lezer/common'
+
+ mdn-data@2.0.14: {}
+
+ mdn-data@2.12.1: {}
+
+ mdn-data@2.12.2: {}
+
+ mdurl@2.0.0: {}
+
+ medium-zoom@1.1.0: {}
+
+ memoize-one@6.0.0: {}
+
+ meow@12.1.1: {}
+
+ meow@13.2.0: {}
+
+ meow@3.7.0:
+ dependencies:
+ camelcase-keys: 2.1.0
+ decamelize: 1.2.0
+ loud-rejection: 1.6.0
+ map-obj: 1.0.1
+ minimist: 1.2.8
+ normalize-package-data: 2.5.0
+ object-assign: 4.1.1
+ read-pkg-up: 1.0.1
+ redent: 1.0.0
+ trim-newlines: 1.0.0
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ merge@2.1.1: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-match@1.0.2:
+ dependencies:
+ wildcard: 1.1.2
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mimic-fn@2.1.0: {}
+
+ mimic-fn@4.0.0: {}
+
+ mimic-function@5.0.1: {}
+
+ mimic-response@1.0.1: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist@1.2.7: {}
+
+ minimist@1.2.8: {}
+
+ mitt@3.0.1: {}
+
+ mlly@1.7.3:
+ dependencies:
+ acorn: 8.14.0
+ pathe: 1.1.2
+ pkg-types: 1.2.1
+ ufo: 1.5.4
+
+ mlly@1.7.4:
+ dependencies:
+ acorn: 8.14.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.1
+
+ mozjpeg@7.1.1:
+ dependencies:
+ bin-build: 3.0.0
+ bin-wrapper: 4.1.0
+
+ mrmime@2.0.1: {}
+
+ ms@2.1.3: {}
+
+ muggle-string@0.4.1: {}
+
+ mute-stream@0.0.8: {}
+
+ namespace-emitter@2.0.1: {}
+
+ nanoid@3.3.8: {}
+
+ nanoid@5.1.5: {}
+
+ natural-compare@1.4.0: {}
+
+ next-tick@1.1.0: {}
+
+ nice-try@1.0.5: {}
+
+ node-addon-api@7.1.1:
+ optional: true
+
+ node-fetch-native@1.6.6: {}
+
+ node-releases@2.0.19: {}
+
+ normalize-package-data@2.5.0:
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.10
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+
+ normalize-path@3.0.0: {}
+
+ normalize-url@2.0.1:
+ dependencies:
+ prepend-http: 2.0.0
+ query-string: 5.1.1
+ sort-keys: 2.0.0
+
+ normalize-wheel-es@1.2.0: {}
+
+ npm-conf@1.1.3:
+ dependencies:
+ config-chain: 1.1.13
+ pify: 3.0.0
+
+ npm-run-path@2.0.2:
+ dependencies:
+ path-key: 2.0.1
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+
+ npm-run-path@6.0.0:
+ dependencies:
+ path-key: 4.0.0
+ unicorn-magic: 0.3.0
+
+ nprogress@0.2.0: {}
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ nypm@0.6.0:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.4.2
+ pathe: 2.0.3
+ pkg-types: 2.1.0
+ tinyexec: 0.3.2
+
+ object-assign@4.1.1: {}
+
+ ohash@2.0.11: {}
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ onetime@6.0.0:
+ dependencies:
+ mimic-fn: 4.0.0
+
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
+ open@10.1.2:
+ dependencies:
+ default-browser: 5.2.1
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ is-wsl: 3.1.0
+
+ open@8.4.2:
+ dependencies:
+ define-lazy-prop: 2.0.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ optipng-bin@7.0.1:
+ dependencies:
+ bin-build: 3.0.0
+ bin-wrapper: 4.1.0
+
+ ora@5.4.1:
+ dependencies:
+ bl: 4.1.0
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-spinners: 2.9.2
+ is-interactive: 1.0.0
+ is-unicode-supported: 0.1.0
+ log-symbols: 4.1.0
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+
+ os-filter-obj@2.0.0:
+ dependencies:
+ arch: 2.2.0
+
+ os-tmpdir@1.0.2: {}
+
+ ow@0.17.0:
+ dependencies:
+ type-fest: 0.11.0
+
+ p-cancelable@0.3.0: {}
+
+ p-cancelable@0.4.1: {}
+
+ p-event@1.3.0:
+ dependencies:
+ p-timeout: 1.2.1
+
+ p-event@2.3.1:
+ dependencies:
+ p-timeout: 2.0.1
+
+ p-finally@1.0.0: {}
+
+ p-is-promise@1.1.0: {}
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-limit@4.0.0:
+ dependencies:
+ yocto-queue: 1.1.1
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-locate@6.0.0:
+ dependencies:
+ p-limit: 4.0.0
+
+ p-map-series@1.0.0:
+ dependencies:
+ p-reduce: 1.0.0
+
+ p-pipe@3.1.0: {}
+
+ p-reduce@1.0.0: {}
+
+ p-timeout@1.2.1:
+ dependencies:
+ p-finally: 1.0.0
+
+ p-timeout@2.0.1:
+ dependencies:
+ p-finally: 1.0.0
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-json@2.2.0:
+ dependencies:
+ error-ex: 1.3.2
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parse-ms@4.0.0: {}
+
+ parse-passwd@1.0.0: {}
+
+ path-browserify@1.0.1: {}
+
+ path-exists@2.1.0:
+ dependencies:
+ pinkie-promise: 2.0.1
+
+ path-exists@4.0.0: {}
+
+ path-exists@5.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@2.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0: {}
+
+ path-parse@1.0.7: {}
+
+ path-type@1.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ pify: 2.3.0
+ pinkie-promise: 2.0.1
+
+ path-type@4.0.0: {}
+
+ pathe@0.2.0: {}
+
+ pathe@1.1.2: {}
+
+ pathe@2.0.3: {}
+
+ pend@1.2.0: {}
+
+ perfect-debounce@1.0.0: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@4.0.2: {}
+
+ pidtree@0.6.0: {}
+
+ pify@2.3.0: {}
+
+ pify@3.0.0: {}
+
+ pify@4.0.1: {}
+
+ pinia-plugin-persistedstate@4.3.0(pinia@3.0.2(typescript@5.6.3)(vue@3.5.15(typescript@5.6.3))):
+ dependencies:
+ '@nuxt/kit': 3.17.4
+ deep-pick-omit: 1.2.1
+ defu: 6.1.4
+ destr: 2.0.5
+ optionalDependencies:
+ pinia: 3.0.2(typescript@5.6.3)(vue@3.5.15(typescript@5.6.3))
+ transitivePeerDependencies:
+ - magicast
+
+ pinia@3.0.2(typescript@5.6.3)(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ '@vue/devtools-api': 7.7.2
+ vue: 3.5.15(typescript@5.6.3)
+ optionalDependencies:
+ typescript: 5.6.3
+
+ pinkie-promise@2.0.1:
+ dependencies:
+ pinkie: 2.0.4
+
+ pinkie@2.0.4: {}
+
+ pkg-types@1.2.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.7.3
+ pathe: 1.1.2
+
+ pkg-types@1.3.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.7.4
+ pathe: 2.0.3
+
+ pkg-types@2.1.0:
+ dependencies:
+ confbox: 0.2.2
+ exsolve: 1.0.5
+ pathe: 2.0.3
+
+ pngquant-bin@6.0.1:
+ dependencies:
+ bin-build: 3.0.0
+ bin-wrapper: 4.1.0
+ execa: 4.1.0
+
+ postcss-html@1.7.0:
+ dependencies:
+ htmlparser2: 8.0.2
+ js-tokens: 9.0.1
+ postcss: 8.5.3
+ postcss-safe-parser: 6.0.0(postcss@8.5.3)
+
+ postcss-media-query-parser@0.2.3: {}
+
+ postcss-resolve-nested-selector@0.1.6: {}
+
+ postcss-safe-parser@6.0.0(postcss@8.5.3):
+ dependencies:
+ postcss: 8.5.3
+
+ postcss-safe-parser@7.0.1(postcss@8.5.3):
+ dependencies:
+ postcss: 8.5.3
+
+ postcss-scss@4.0.9(postcss@8.4.49):
+ dependencies:
+ postcss: 8.4.49
+
+ postcss-selector-parser@6.1.2:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-selector-parser@7.0.0:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-selector-parser@7.1.0:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-sorting@8.0.2(postcss@8.4.49):
+ dependencies:
+ postcss: 8.4.49
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss@8.4.49:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ postcss@8.5.3:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ preact@10.25.0: {}
+
+ prelude-ls@1.2.1: {}
+
+ prepend-http@1.0.4: {}
+
+ prepend-http@2.0.0: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@3.5.3: {}
+
+ pretty-ms@9.2.0:
+ dependencies:
+ parse-ms: 4.0.0
+
+ prismjs@1.29.0: {}
+
+ process-nextick-args@2.0.1: {}
+
+ proto-list@1.2.4: {}
+
+ proxy-from-env@1.1.0: {}
+
+ pseudomap@1.0.2: {}
+
+ pump@3.0.2:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
+ punycode.js@2.3.1: {}
+
+ punycode@2.3.1: {}
+
+ qrcode.vue@3.6.0(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ vue: 3.5.15(typescript@5.6.3)
+
+ quansync@0.2.10: {}
+
+ query-string@5.1.1:
+ dependencies:
+ decode-uri-component: 0.2.2
+ object-assign: 4.1.1
+ strict-uri-encode: 1.1.0
+
+ queue-microtask@1.2.3: {}
+
+ rc9@2.1.2:
+ dependencies:
+ defu: 6.1.4
+ destr: 2.0.5
+
+ read-pkg-up@1.0.1:
+ dependencies:
+ find-up: 1.1.2
+ read-pkg: 1.1.0
+
+ read-pkg@1.1.0:
+ dependencies:
+ load-json-file: 1.1.0
+ normalize-package-data: 2.5.0
+ path-type: 1.1.0
+
+ readable-stream@2.3.8:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ readdirp@4.0.2: {}
+
+ redent@1.0.0:
+ dependencies:
+ indent-string: 2.1.0
+ strip-indent: 1.0.1
+
+ regenerator-runtime@0.14.1: {}
+
+ repeating@2.0.1:
+ dependencies:
+ is-finite: 1.1.0
+
+ replace-ext@1.0.1: {}
+
+ require-directory@2.1.1: {}
+
+ require-from-string@2.0.2: {}
+
+ resolve-dir@1.0.1:
+ dependencies:
+ expand-tilde: 2.0.2
+ global-modules: 1.0.0
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0: {}
+
+ resolve@1.22.10:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ responselike@1.0.2:
+ dependencies:
+ lowercase-keys: 1.0.1
+
+ restore-cursor@3.1.0:
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
+ reusify@1.0.4: {}
+
+ rfdc@1.4.1: {}
+
+ rimraf@2.7.1:
+ dependencies:
+ glob: 7.2.3
+
+ rollup-plugin-visualizer@5.12.0(rollup@4.34.8):
+ dependencies:
+ open: 8.4.2
+ picomatch: 2.3.1
+ source-map: 0.7.4
+ yargs: 17.7.2
+ optionalDependencies:
+ rollup: 4.34.8
+
+ rollup@4.34.8:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.34.8
+ '@rollup/rollup-android-arm64': 4.34.8
+ '@rollup/rollup-darwin-arm64': 4.34.8
+ '@rollup/rollup-darwin-x64': 4.34.8
+ '@rollup/rollup-freebsd-arm64': 4.34.8
+ '@rollup/rollup-freebsd-x64': 4.34.8
+ '@rollup/rollup-linux-arm-gnueabihf': 4.34.8
+ '@rollup/rollup-linux-arm-musleabihf': 4.34.8
+ '@rollup/rollup-linux-arm64-gnu': 4.34.8
+ '@rollup/rollup-linux-arm64-musl': 4.34.8
+ '@rollup/rollup-linux-loongarch64-gnu': 4.34.8
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8
+ '@rollup/rollup-linux-riscv64-gnu': 4.34.8
+ '@rollup/rollup-linux-s390x-gnu': 4.34.8
+ '@rollup/rollup-linux-x64-gnu': 4.34.8
+ '@rollup/rollup-linux-x64-musl': 4.34.8
+ '@rollup/rollup-win32-arm64-msvc': 4.34.8
+ '@rollup/rollup-win32-ia32-msvc': 4.34.8
+ '@rollup/rollup-win32-x64-msvc': 4.34.8
+ fsevents: 2.3.3
+
+ run-applescript@7.0.0: {}
+
+ run-async@2.4.1: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ rxjs@7.8.1:
+ dependencies:
+ tslib: 2.8.1
+
+ safe-buffer@5.1.2: {}
+
+ safe-buffer@5.2.1: {}
+
+ safer-buffer@2.1.2: {}
+
+ sass@1.81.0:
+ dependencies:
+ chokidar: 4.0.1
+ immutable: 5.0.3
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.5.0
+
+ scroll-into-view-if-needed@2.2.31:
+ dependencies:
+ compute-scroll-into-view: 1.0.20
+
+ scule@1.3.0: {}
+
+ seek-bzip@1.0.6:
+ dependencies:
+ commander: 2.20.3
+
+ semver-regex@2.0.0: {}
+
+ semver-truncate@1.1.2:
+ dependencies:
+ semver: 5.7.2
+
+ semver@5.7.2: {}
+
+ semver@6.3.1: {}
+
+ semver@7.6.3: {}
+
+ semver@7.7.2: {}
+
+ shebang-command@1.2.0:
+ dependencies:
+ shebang-regex: 1.0.0
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@1.0.0: {}
+
+ shebang-regex@3.0.0: {}
+
+ signal-exit@3.0.7: {}
+
+ signal-exit@4.1.0: {}
+
+ sirv@3.0.1:
+ dependencies:
+ '@polka/url': 1.0.0-next.29
+ mrmime: 2.0.1
+ totalist: 3.0.1
+
+ slash@3.0.0: {}
+
+ slate-history@0.66.0(slate@0.72.8):
+ dependencies:
+ is-plain-object: 5.0.0
+ slate: 0.72.8
+
+ slate@0.72.8:
+ dependencies:
+ immer: 9.0.21
+ is-plain-object: 5.0.0
+ tiny-warning: 1.0.3
+
+ slice-ansi@4.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+
+ slice-ansi@5.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+
+ slice-ansi@7.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 5.0.0
+
+ snabbdom@3.6.2: {}
+
+ sort-keys-length@1.0.1:
+ dependencies:
+ sort-keys: 1.1.2
+
+ sort-keys@1.1.2:
+ dependencies:
+ is-plain-obj: 1.1.0
+
+ sort-keys@2.0.0:
+ dependencies:
+ is-plain-obj: 1.1.0
+
+ source-map-js@1.2.1: {}
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ source-map@0.7.4: {}
+
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.21
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.21
+
+ spdx-license-ids@3.0.21: {}
+
+ speakingurl@14.0.1: {}
+
+ split2@4.2.0: {}
+
+ squeak@1.3.0:
+ dependencies:
+ chalk: 1.1.3
+ console-stream: 0.1.1
+ lpad-align: 1.1.2
+
+ ssf@0.11.2:
+ dependencies:
+ frac: 1.1.2
+
+ ssr-window@3.0.0: {}
+
+ stable@0.1.8: {}
+
+ std-env@3.9.0: {}
+
+ strict-uri-encode@1.1.0: {}
+
+ string-argv@0.3.2: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@7.2.0:
+ dependencies:
+ emoji-regex: 10.4.0
+ get-east-asian-width: 1.3.0
+ strip-ansi: 7.1.0
+
+ string_decoder@1.1.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@3.0.1:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
+ strip-bom@2.0.0:
+ dependencies:
+ is-utf8: 0.2.1
+
+ strip-bom@4.0.0: {}
+
+ strip-dirs@2.1.0:
+ dependencies:
+ is-natural-number: 4.0.1
+
+ strip-eof@1.0.0: {}
+
+ strip-final-newline@2.0.0: {}
+
+ strip-final-newline@3.0.0: {}
+
+ strip-final-newline@4.0.0: {}
+
+ strip-indent@1.0.1:
+ dependencies:
+ get-stdin: 4.0.1
+
+ strip-json-comments@3.1.1: {}
+
+ strip-literal@2.1.1:
+ dependencies:
+ js-tokens: 9.0.1
+
+ strip-literal@3.0.0:
+ dependencies:
+ js-tokens: 9.0.1
+
+ strip-outer@1.0.1:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ strnum@1.1.2: {}
+
+ style-mod@4.1.2: {}
+
+ stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ postcss-html: 1.7.0
+ stylelint: 16.20.0(typescript@5.6.3)
+
+ stylelint-config-recess-order@4.6.0(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ stylelint: 16.20.0(typescript@5.6.3)
+ stylelint-order: 6.0.4(stylelint@16.20.0(typescript@5.6.3))
+
+ stylelint-config-recommended-scss@14.1.0(postcss@8.4.49)(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ postcss-scss: 4.0.9(postcss@8.4.49)
+ stylelint: 16.20.0(typescript@5.6.3)
+ stylelint-config-recommended: 14.0.1(stylelint@16.20.0(typescript@5.6.3))
+ stylelint-scss: 6.10.0(stylelint@16.20.0(typescript@5.6.3))
+ optionalDependencies:
+ postcss: 8.4.49
+
+ stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ postcss-html: 1.7.0
+ semver: 7.6.3
+ stylelint: 16.20.0(typescript@5.6.3)
+ stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@16.20.0(typescript@5.6.3))
+ stylelint-config-recommended: 14.0.1(stylelint@16.20.0(typescript@5.6.3))
+
+ stylelint-config-recommended@14.0.1(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ stylelint: 16.20.0(typescript@5.6.3)
+
+ stylelint-config-standard@36.0.1(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ stylelint: 16.20.0(typescript@5.6.3)
+ stylelint-config-recommended: 14.0.1(stylelint@16.20.0(typescript@5.6.3))
+
+ stylelint-order@6.0.4(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ postcss: 8.4.49
+ postcss-sorting: 8.0.2(postcss@8.4.49)
+ stylelint: 16.20.0(typescript@5.6.3)
+
+ stylelint-scss@6.10.0(stylelint@16.20.0(typescript@5.6.3)):
+ dependencies:
+ css-tree: 3.0.1
+ is-plain-object: 5.0.0
+ known-css-properties: 0.35.0
+ mdn-data: 2.12.2
+ postcss-media-query-parser: 0.2.3
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-selector-parser: 7.0.0
+ postcss-value-parser: 4.2.0
+ stylelint: 16.20.0(typescript@5.6.3)
+
+ stylelint@16.20.0(typescript@5.6.3):
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+ '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0)
+ '@dual-bundle/import-meta-resolve': 4.1.0
+ balanced-match: 2.0.0
+ colord: 2.9.3
+ cosmiconfig: 9.0.0(typescript@5.6.3)
+ css-functions-list: 3.2.3
+ css-tree: 3.1.0
+ debug: 4.4.1
+ fast-glob: 3.3.3
+ fastest-levenshtein: 1.0.16
+ file-entry-cache: 10.1.0
+ global-modules: 2.0.0
+ globby: 11.1.0
+ globjoin: 0.1.4
+ html-tags: 3.3.1
+ ignore: 7.0.4
+ imurmurhash: 0.1.4
+ is-plain-object: 5.0.0
+ known-css-properties: 0.36.0
+ mathml-tag-names: 2.1.3
+ meow: 13.2.0
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.5.3
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-safe-parser: 7.0.1(postcss@8.5.3)
+ postcss-selector-parser: 7.1.0
+ postcss-value-parser: 4.2.0
+ resolve-from: 5.0.0
+ string-width: 4.2.3
+ supports-hyperlinks: 3.2.0
+ svg-tags: 1.0.0
+ table: 6.9.0
+ write-file-atomic: 5.0.1
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ superjson@2.2.2:
+ dependencies:
+ copy-anything: 3.0.5
+
+ supports-color@2.0.0: {}
+
+ supports-color@5.5.0:
+ dependencies:
+ has-flag: 3.0.0
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-hyperlinks@3.2.0:
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ svg-tags@1.0.0: {}
+
+ svgo@2.8.0:
+ dependencies:
+ '@trysound/sax': 0.2.0
+ commander: 7.2.0
+ css-select: 4.3.0
+ css-tree: 1.1.3
+ csso: 4.2.0
+ picocolors: 1.1.1
+ stable: 0.1.8
+
+ synckit@0.9.2:
+ dependencies:
+ '@pkgr/core': 0.1.1
+ tslib: 2.8.1
+
+ table@6.9.0:
+ dependencies:
+ ajv: 8.17.1
+ lodash.truncate: 4.4.2
+ slice-ansi: 4.0.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ tar-stream@1.6.2:
+ dependencies:
+ bl: 1.2.3
+ buffer-alloc: 1.2.0
+ end-of-stream: 1.4.4
+ fs-constants: 1.0.0
+ readable-stream: 2.3.8
+ to-buffer: 1.1.1
+ xtend: 4.0.2
+
+ temp-dir@1.0.0: {}
+
+ tempfile@2.0.0:
+ dependencies:
+ temp-dir: 1.0.0
+ uuid: 3.4.0
+
+ terser@5.36.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.6
+ acorn: 8.14.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ text-extensions@2.4.0: {}
+
+ through@2.3.8: {}
+
+ timed-out@4.0.1: {}
+
+ tiny-warning@1.0.3: {}
+
+ tinyexec@0.3.1: {}
+
+ tinyexec@0.3.2: {}
+
+ tinyglobby@0.2.14:
+ dependencies:
+ fdir: 6.4.5(picomatch@4.0.2)
+ picomatch: 4.0.2
+
+ tmp@0.0.33:
+ dependencies:
+ os-tmpdir: 1.0.2
+
+ to-buffer@1.1.1: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toggle-selection@1.0.6: {}
+
+ totalist@3.0.1: {}
+
+ trim-newlines@1.0.0: {}
+
+ trim-repeated@1.0.0:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ ts-api-utils@1.4.2(typescript@5.6.3):
+ dependencies:
+ typescript: 5.6.3
+
+ tslib@2.3.0: {}
+
+ tslib@2.8.1: {}
+
+ tunnel-agent@0.6.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-fest@0.11.0: {}
+
+ type-fest@0.20.2: {}
+
+ type-fest@0.21.3: {}
+
+ type@2.7.3: {}
+
+ typescript-eslint@8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.6.3)
+ eslint: 9.15.0(jiti@2.4.2)
+ optionalDependencies:
+ typescript: 5.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ typescript@5.6.3: {}
+
+ uc.micro@2.1.0: {}
+
+ ufo@1.5.4: {}
+
+ ufo@1.6.1: {}
+
+ unbzip2-stream@1.4.3:
+ dependencies:
+ buffer: 5.7.1
+ through: 2.3.8
+
+ unctx@2.4.1:
+ dependencies:
+ acorn: 8.14.0
+ estree-walker: 3.0.3
+ magic-string: 0.30.17
+ unplugin: 2.3.5
+
+ undici-types@6.20.0: {}
+
+ unicorn-magic@0.1.0: {}
+
+ unicorn-magic@0.3.0: {}
+
+ unimport@3.13.3(rollup@4.34.8):
+ dependencies:
+ '@rollup/pluginutils': 5.1.3(rollup@4.34.8)
+ acorn: 8.14.0
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ fast-glob: 3.3.2
+ local-pkg: 0.5.1
+ magic-string: 0.30.17
+ mlly: 1.7.3
+ pathe: 1.1.2
+ pkg-types: 1.2.1
+ scule: 1.3.0
+ strip-literal: 2.1.1
+ unplugin: 1.16.0
+ transitivePeerDependencies:
+ - rollup
+
+ unimport@5.0.1:
+ dependencies:
+ acorn: 8.14.1
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ local-pkg: 1.1.1
+ magic-string: 0.30.17
+ mlly: 1.7.4
+ pathe: 2.0.3
+ picomatch: 4.0.2
+ pkg-types: 2.1.0
+ scule: 1.3.0
+ strip-literal: 3.0.0
+ tinyglobby: 0.2.14
+ unplugin: 2.3.5
+ unplugin-utils: 0.2.4
+
+ universalify@2.0.1: {}
+
+ unplugin-auto-import@0.18.5(@nuxt/kit@3.17.4)(@vueuse/core@11.3.0(vue@3.5.15(typescript@5.6.3)))(rollup@4.34.8):
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@rollup/pluginutils': 5.1.3(rollup@4.34.8)
+ fast-glob: 3.3.2
+ local-pkg: 0.5.1
+ magic-string: 0.30.14
+ minimatch: 9.0.5
+ unimport: 3.13.3(rollup@4.34.8)
+ unplugin: 1.16.0
+ optionalDependencies:
+ '@nuxt/kit': 3.17.4
+ '@vueuse/core': 11.3.0(vue@3.5.15(typescript@5.6.3))
+ transitivePeerDependencies:
+ - rollup
+
+ unplugin-utils@0.2.4:
+ dependencies:
+ pathe: 2.0.3
+ picomatch: 4.0.2
+
+ unplugin-vue-components@0.27.4(@babel/parser@7.27.5)(@nuxt/kit@3.17.4)(rollup@4.34.8)(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@rollup/pluginutils': 5.1.3(rollup@4.34.8)
+ chokidar: 3.6.0
+ debug: 4.3.7
+ fast-glob: 3.3.2
+ local-pkg: 0.5.1
+ magic-string: 0.30.14
+ minimatch: 9.0.5
+ mlly: 1.7.3
+ unplugin: 1.16.0
+ vue: 3.5.15(typescript@5.6.3)
+ optionalDependencies:
+ '@babel/parser': 7.27.5
+ '@nuxt/kit': 3.17.4
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ unplugin@1.16.0:
+ dependencies:
+ acorn: 8.14.0
+ webpack-virtual-modules: 0.6.2
+
+ unplugin@2.3.5:
+ dependencies:
+ acorn: 8.14.1
+ picomatch: 4.0.2
+ webpack-virtual-modules: 0.6.2
+
+ untyped@2.0.0:
+ dependencies:
+ citty: 0.1.6
+ defu: 6.1.4
+ jiti: 2.4.2
+ knitwork: 1.2.0
+ scule: 1.3.0
+
+ update-browserslist-db@1.1.3(browserslist@4.25.0):
+ dependencies:
+ browserslist: 4.25.0
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ url-parse-lax@1.0.0:
+ dependencies:
+ prepend-http: 1.0.4
+
+ url-parse-lax@3.0.0:
+ dependencies:
+ prepend-http: 2.0.0
+
+ url-to-options@1.0.1: {}
+
+ util-deprecate@1.0.2: {}
+
+ uuid@3.4.0: {}
+
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
+ vite-hot-client@2.0.4(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)):
+ dependencies:
+ vite: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+
+ vite-plugin-compression@0.5.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)):
+ dependencies:
+ chalk: 4.1.2
+ debug: 4.3.7
+ fs-extra: 10.1.0
+ vite: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ vite-plugin-imagemin@0.6.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)):
+ dependencies:
+ '@types/imagemin': 7.0.1
+ '@types/imagemin-gifsicle': 7.0.4
+ '@types/imagemin-jpegtran': 5.0.4
+ '@types/imagemin-mozjpeg': 8.0.4
+ '@types/imagemin-optipng': 5.2.4
+ '@types/imagemin-svgo': 10.0.5
+ '@types/imagemin-webp': 7.0.3
+ '@types/svgo': 2.6.4
+ chalk: 4.1.2
+ debug: 4.4.1
+ esbuild: 0.14.54
+ fs-extra: 10.1.0
+ gifsicle: 5.2.0
+ imagemin: 7.0.1
+ imagemin-gifsicle: 7.0.0
+ imagemin-jpegtran: 7.0.0
+ imagemin-mozjpeg: 9.0.0
+ imagemin-optipng: 8.0.0
+ imagemin-pngquant: 9.0.2
+ imagemin-svgo: 9.0.0
+ imagemin-webp: 6.1.0
+ jpegtran-bin: 6.0.1
+ pathe: 0.2.0
+ vite: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ vite-plugin-inspect@0.8.9(@nuxt/kit@3.17.4)(rollup@4.34.8)(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)):
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@rollup/pluginutils': 5.1.3(rollup@4.34.8)
+ debug: 4.4.1
+ error-stack-parser-es: 0.1.5
+ fs-extra: 11.3.0
+ open: 10.1.2
+ perfect-debounce: 1.0.0
+ picocolors: 1.1.1
+ sirv: 3.0.1
+ vite: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+ optionalDependencies:
+ '@nuxt/kit': 3.17.4
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ vite-plugin-vue-devtools@7.7.6(@nuxt/kit@3.17.4)(rollup@4.34.8)(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ '@vue/devtools-core': 7.7.6(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))(vue@3.5.15(typescript@5.6.3))
+ '@vue/devtools-kit': 7.7.6
+ '@vue/devtools-shared': 7.7.6
+ execa: 9.6.0
+ sirv: 3.0.1
+ vite: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+ vite-plugin-inspect: 0.8.9(@nuxt/kit@3.17.4)(rollup@4.34.8)(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))
+ vite-plugin-vue-inspector: 5.3.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0))
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - rollup
+ - supports-color
+ - vue
+
+ vite-plugin-vue-inspector@5.3.1(vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)):
+ dependencies:
+ '@babel/core': 7.27.4
+ '@babel/plugin-proposal-decorators': 7.27.1(@babel/core@7.27.4)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.4)
+ '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4)
+ '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.4)
+ '@vue/compiler-dom': 3.5.15
+ kolorist: 1.8.0
+ magic-string: 0.30.17
+ vite: 6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ vite@6.1.1(@types/node@22.10.0)(jiti@2.4.2)(sass@1.81.0)(terser@5.36.0)(yaml@2.8.0):
+ dependencies:
+ esbuild: 0.24.2
+ postcss: 8.5.3
+ rollup: 4.34.8
+ optionalDependencies:
+ '@types/node': 22.10.0
+ fsevents: 2.3.3
+ jiti: 2.4.2
+ sass: 1.81.0
+ terser: 5.36.0
+ yaml: 2.8.0
+
+ vscode-uri@3.0.8: {}
+
+ vue-count-to@1.0.13: {}
+
+ vue-demi@0.14.10(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ vue: 3.5.15(typescript@5.6.3)
+
+ vue-draggable-plus@0.6.0(@types/sortablejs@1.15.8):
+ dependencies:
+ '@types/sortablejs': 1.15.8
+
+ vue-eslint-parser@9.4.3(eslint@9.15.0(jiti@2.4.2)):
+ dependencies:
+ debug: 4.3.7
+ eslint: 9.15.0(jiti@2.4.2)
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.6.0
+ lodash: 4.17.21
+ semver: 7.6.3
+ transitivePeerDependencies:
+ - supports-color
+
+ vue-i18n@9.14.1(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ '@intlify/core-base': 9.14.1
+ '@intlify/shared': 9.14.1
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.15(typescript@5.6.3)
+
+ vue-img-cutter@3.0.7(typescript@5.6.3):
+ dependencies:
+ core-js: 3.39.0
+ vue: 3.5.15(typescript@5.6.3)
+ vue-i18n: 9.14.1(vue@3.5.15(typescript@5.6.3))
+ transitivePeerDependencies:
+ - typescript
+
+ vue-router@4.5.0(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.15(typescript@5.6.3)
+
+ vue-tsc@2.1.10(typescript@5.6.3):
+ dependencies:
+ '@volar/typescript': 2.4.10
+ '@vue/language-core': 2.1.10(typescript@5.6.3)
+ semver: 7.6.3
+ typescript: 5.6.3
+
+ vue3-count-to@1.1.2(vue@3.5.15(typescript@5.6.3)):
+ dependencies:
+ core-js: 3.39.0
+ vue: 3.5.15(typescript@5.6.3)
+ vue-count-to: 1.0.13
+
+ vue@3.5.15(typescript@5.6.3):
+ dependencies:
+ '@vue/compiler-dom': 3.5.15
+ '@vue/compiler-sfc': 3.5.15
+ '@vue/runtime-dom': 3.5.15
+ '@vue/server-renderer': 3.5.15(vue@3.5.15(typescript@5.6.3))
+ '@vue/shared': 3.5.15
+ optionalDependencies:
+ typescript: 5.6.3
+
+ w3c-keyname@2.2.8: {}
+
+ wcwidth@1.0.1:
+ dependencies:
+ defaults: 1.0.4
+
+ webpack-virtual-modules@0.6.2: {}
+
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ wildcard@1.1.2: {}
+
+ wmf@1.0.2: {}
+
+ word-wrap@1.2.5: {}
+
+ word@0.3.0: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@9.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 7.2.0
+ strip-ansi: 7.1.0
+
+ wrappy@1.0.2: {}
+
+ write-file-atomic@5.0.1:
+ dependencies:
+ imurmurhash: 0.1.4
+ signal-exit: 4.1.0
+
+ xgplayer-subtitles@3.0.20(core-js@3.39.0):
+ dependencies:
+ core-js: 3.39.0
+ eventemitter3: 4.0.7
+
+ xgplayer@3.0.20(core-js@3.39.0):
+ dependencies:
+ core-js: 3.39.0
+ danmu.js: 1.1.13
+ delegate: 3.2.0
+ downloadjs: 1.4.7
+ eventemitter3: 4.0.7
+ xgplayer-subtitles: 3.0.20(core-js@3.39.0)
+
+ xlsx@0.18.5:
+ dependencies:
+ adler-32: 1.3.1
+ cfb: 1.2.2
+ codepage: 1.15.0
+ crc-32: 1.2.2
+ ssf: 0.11.2
+ wmf: 1.0.2
+ word: 0.3.0
+
+ xml-name-validator@4.0.0: {}
+
+ xss@1.0.15:
+ dependencies:
+ commander: 2.20.3
+ cssfilter: 0.0.10
+
+ xtend@4.0.2: {}
+
+ y18n@5.0.8: {}
+
+ yallist@2.1.2: {}
+
+ yallist@3.1.1: {}
+
+ yaml@2.8.0: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yauzl@2.10.0:
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+
+ yocto-queue@0.1.0: {}
+
+ yocto-queue@1.1.1: {}
+
+ yoctocolors@2.1.1: {}
+
+ zrender@5.6.0:
+ dependencies:
+ tslib: 2.3.0
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..df36fcf
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..c1d43aa
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
diff --git a/src/api/menuApi.ts b/src/api/menuApi.ts
new file mode 100644
index 0000000..b0a458b
--- /dev/null
+++ b/src/api/menuApi.ts
@@ -0,0 +1,25 @@
+import { asyncRoutes } from '@/router/routes/asyncRoutes'
+import { menuDataToRouter } from '@/router/utils/menuToRouter'
+import { AppRouteRecord } from '@/types/router'
+
+interface MenuResponse {
+ menuList: AppRouteRecord[]
+}
+
+// 菜单接口
+export const menuService = {
+ async getMenuList(delay = 300): Promise {
+ try {
+ // 模拟接口返回的菜单数据
+ const menuData = asyncRoutes
+ // 处理菜单数据
+ const menuList = menuData.map((route) => menuDataToRouter(route))
+ // 模拟接口延迟
+ await new Promise((resolve) => setTimeout(resolve, delay))
+
+ return { menuList }
+ } catch (error) {
+ throw error instanceof Error ? error : new Error('获取菜单失败')
+ }
+ }
+}
diff --git a/src/api/usersApi.ts b/src/api/usersApi.ts
new file mode 100644
index 0000000..155451a
--- /dev/null
+++ b/src/api/usersApi.ts
@@ -0,0 +1,27 @@
+import request from '@/utils/http'
+
+export class UserService {
+ // 登录
+ static login(params: Api.Auth.LoginParams) {
+ return request.post({
+ url: '/api/auth/login',
+ params
+ // showErrorMessage: false // 不显示错误消息
+ })
+ }
+
+ // 获取用户信息
+ static getUserInfo() {
+ return request.get({
+ url: '/api/user/info'
+ })
+ }
+
+ // 获取用户列表
+ static getUserList(params: Api.Common.PaginatingParams) {
+ return request.get({
+ url: '/api/user/list',
+ params
+ })
+ }
+}
diff --git a/src/assets/fonts/DMSans.woff2 b/src/assets/fonts/DMSans.woff2
new file mode 100644
index 0000000..a358ff3
Binary files /dev/null and b/src/assets/fonts/DMSans.woff2 differ
diff --git a/src/assets/fonts/Montserrat.woff2 b/src/assets/fonts/Montserrat.woff2
new file mode 100644
index 0000000..6db06d1
Binary files /dev/null and b/src/assets/fonts/Montserrat.woff2 differ
diff --git a/src/assets/icons/system/iconfont.css b/src/assets/icons/system/iconfont.css
new file mode 100644
index 0000000..6d86acc
--- /dev/null
+++ b/src/assets/icons/system/iconfont.css
@@ -0,0 +1,2663 @@
+@font-face {
+ font-family: 'iconfont-sys'; /* Project id 3682552 */
+ src:
+ url('iconfont.woff2?t=1748252913866') format('woff2'),
+ url('iconfont.woff?t=1748252913866') format('woff'),
+ url('iconfont.ttf?t=1748252913866') format('truetype');
+}
+
+.iconfont-sys {
+ font-family: 'iconfont-sys' !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.iconsys-arrow-sfixed:before {
+ content: '\e644';
+}
+
+.iconsys-gaodu1:before {
+ content: '\e63d';
+}
+
+.iconsys-jiantouyoushang:before {
+ content: '\e8d5';
+}
+
+.iconsys-jiantouzuoxia:before {
+ content: '\e8d9';
+}
+
+.iconsys-zidongkuandu-01:before {
+ content: '\e694';
+}
+
+.iconsys-gudingkuandu:before {
+ content: '\e6de';
+}
+
+.iconsys-bilibili-s:before {
+ content: '\e6b4';
+}
+
+.iconsys-anheimoshi3:before {
+ content: '\e725';
+}
+
+.iconsys-baitianmoshi3:before {
+ content: '\e6b5';
+}
+
+.iconsys-suo:before {
+ content: '\e817';
+}
+
+.iconsys-gou:before {
+ content: '\e621';
+}
+
+.iconsys-double-arrow-right-full:before {
+ content: '\ea50';
+}
+
+.iconsys-Ctrl-copy:before {
+ content: '\eeac';
+}
+
+.iconsys-No-data:before {
+ content: '\e692';
+}
+
+.iconsys-zanwushuju1:before {
+ content: '\e60c';
+}
+
+.iconsys-zanwushuju:before {
+ content: '\e6da';
+}
+
+.iconsys-zanwushuju5:before {
+ content: '\e693';
+}
+
+.iconsys-zanwushuju7:before {
+ content: '\e8d7';
+}
+
+.iconsys-zanwushuju10:before {
+ content: '\e695';
+}
+
+.iconsys-zanwushujuxian:before {
+ content: '\e8d8';
+}
+
+.iconsys-github:before {
+ content: '\e8d6';
+}
+
+.iconsys-github1:before {
+ content: '\e603';
+}
+
+.iconsys-huiche1:before {
+ content: '\e6e6';
+}
+
+.iconsys-command1:before {
+ content: '\e9ab';
+}
+
+.iconsys-beijingsetianchong:before {
+ content: '\e691';
+}
+
+.iconsys-biaoqing1:before {
+ content: '\e690';
+}
+
+.iconsys-add-plus:before {
+ content: '\e602';
+}
+
+.iconsys-add-plus-circle:before {
+ content: '\e604';
+}
+
+.iconsys-close-circle:before {
+ content: '\e619';
+}
+
+.iconsys-combine-cells:before {
+ content: '\e61a';
+}
+
+.iconsys-double-quotes-left:before {
+ content: '\e61c';
+}
+
+.iconsys-columns:before {
+ content: '\e620';
+}
+
+.iconsys-add-row:before {
+ content: '\e622';
+}
+
+.iconsys-add-column:before {
+ content: '\e623';
+}
+
+.iconsys-copy:before {
+ content: '\e624';
+}
+
+.iconsys-add-plus-square:before {
+ content: '\e625';
+}
+
+.iconsys-edit-pencil-line-02:before {
+ content: '\e626';
+}
+
+.iconsys-add-minus-square:before {
+ content: '\e627';
+}
+
+.iconsys-heading-h1:before {
+ content: '\e628';
+}
+
+.iconsys-clean:before {
+ content: '\e629';
+}
+
+.iconsys-crop:before {
+ content: '\e62b';
+}
+
+.iconsys-clock-in:before {
+ content: '\e62c';
+}
+
+.iconsys-heading-h2:before {
+ content: '\e62e';
+}
+
+.iconsys-delete-row:before {
+ content: '\e62f';
+}
+
+.iconsys-bold:before {
+ content: '\e630';
+}
+
+.iconsys-heading-h4:before {
+ content: '\e631';
+}
+
+.iconsys-expand1:before {
+ content: '\e633';
+}
+
+.iconsys-image:before {
+ content: '\e634';
+}
+
+.iconsys-italic:before {
+ content: '\e638';
+}
+
+.iconsys-link-break:before {
+ content: '\e63a';
+}
+
+.iconsys-list-remove:before {
+ content: '\e63e';
+}
+
+.iconsys-delete-column:before {
+ content: '\e63f';
+}
+
+.iconsys-edit-pencil-02:before {
+ content: '\e640';
+}
+
+.iconsys-select-multi:before {
+ content: '\e641';
+}
+
+.iconsys-edit-pencil-01:before {
+ content: '\e642';
+}
+
+.iconsys-mention-at:before {
+ content: '\e643';
+}
+
+.iconsys-component:before {
+ content: '\e646';
+}
+
+.iconsys-heading-h6:before {
+ content: '\e647';
+}
+
+.iconsys-more-grid-big:before {
+ content: '\e648';
+}
+
+.iconsys-paragraph:before {
+ content: '\e649';
+}
+
+.iconsys-undo-circle:before {
+ content: '\e64b';
+}
+
+.iconsys-single-quotes-right:before {
+ content: '\e64d';
+}
+
+.iconsys-list-disorder:before {
+ content: '\e64e';
+}
+
+.iconsys-paperclip-attechment-tilt:before {
+ content: '\e64f';
+}
+
+.iconsys-ruler:before {
+ content: '\e650';
+}
+
+.iconsys-move-vertical:before {
+ content: '\e652';
+}
+
+.iconsys-redo-circle:before {
+ content: '\e653';
+}
+
+.iconsys-code-block:before {
+ content: '\e654';
+}
+
+.iconsys-more-grid-small:before {
+ content: '\e655';
+}
+
+.iconsys-text-align-center:before {
+ content: '\e656';
+}
+
+.iconsys-redo:before {
+ content: '\e659';
+}
+
+.iconsys-underline:before {
+ content: '\e65a';
+}
+
+.iconsys-undo:before {
+ content: '\e65e';
+}
+
+.iconsys-edit-pencil-line-01:before {
+ content: '\e65f';
+}
+
+.iconsys-list-check:before {
+ content: '\e660';
+}
+
+.iconsys-rows:before {
+ content: '\e661';
+}
+
+.iconsys-font:before {
+ content: '\e663';
+}
+
+.iconsys-swatches-palette:before {
+ content: '\e666';
+}
+
+.iconsys-vote:before {
+ content: '\e667';
+}
+
+.iconsys-hide:before {
+ content: '\e668';
+}
+
+.iconsys-double-quotes-right:before {
+ content: '\e669';
+}
+
+.iconsys-heading:before {
+ content: '\e66a';
+}
+
+.iconsys-list-order:before {
+ content: '\e66c';
+}
+
+.iconsys-remove-minus:before {
+ content: '\e66d';
+}
+
+.iconsys-table-add:before {
+ content: '\e66e';
+}
+
+.iconsys-text:before {
+ content: '\e66f';
+}
+
+.iconsys-strikethrough:before {
+ content: '\e670';
+}
+
+.iconsys-heading-h3:before {
+ content: '\e671';
+}
+
+.iconsys-layer:before {
+ content: '\e672';
+}
+
+.iconsys-paperclip-attechment-horizontal:before {
+ content: '\e673';
+}
+
+.iconsys-list-add:before {
+ content: '\e674';
+}
+
+.iconsys-layers:before {
+ content: '\e675';
+}
+
+.iconsys-text-align-justify:before {
+ content: '\e676';
+}
+
+.iconsys-path:before {
+ content: '\e677';
+}
+
+.iconsys-move:before {
+ content: '\e679';
+}
+
+.iconsys-link:before {
+ content: '\e67a';
+}
+
+.iconsys-table:before {
+ content: '\e67b';
+}
+
+.iconsys-sort-descending:before {
+ content: '\e67c';
+}
+
+.iconsys-table-remove:before {
+ content: '\e67d';
+}
+
+.iconsys-text-align-left:before {
+ content: '\e67e';
+}
+
+.iconsys-heading-h5:before {
+ content: '\e67f';
+}
+
+.iconsys-sort-ascending:before {
+ content: '\e680';
+}
+
+.iconsys-single-quotes-left:before {
+ content: '\e681';
+}
+
+.iconsys-list-checked:before {
+ content: '\e682';
+}
+
+.iconsys-move-horizontal:before {
+ content: '\e683';
+}
+
+.iconsys-remove-minus-circle:before {
+ content: '\e684';
+}
+
+.iconsys-shrink:before {
+ content: '\e685';
+}
+
+.iconsys-text-align-right:before {
+ content: '\e686';
+}
+
+.iconsys-bg-color:before {
+ content: '\e687';
+}
+
+.iconsys-checkbox-check-fill:before {
+ content: '\e688';
+}
+
+.iconsys-show:before {
+ content: '\e689';
+}
+
+.iconsys-painter:before {
+ content: '\e68a';
+}
+
+.iconsys-code-inline:before {
+ content: '\e68b';
+}
+
+.iconsys-font-color:before {
+ content: '\e68c';
+}
+
+.iconsys-select-multi1:before {
+ content: '\e68e';
+}
+
+.iconsys-zhifushibai:before {
+ content: '\e665';
+}
+
+.iconsys-chenggong1:before {
+ content: '\e617';
+}
+
+.iconsys-duihao:before {
+ content: '\e616';
+}
+
+.iconsys-xiaochengxu:before {
+ content: '\e7ef';
+}
+
+.iconsys-jiangbei:before {
+ content: '\e7f0';
+}
+
+.iconsys-maikefeng:before {
+ content: '\e7f1';
+}
+
+.iconsys-shexiangtou:before {
+ content: '\e7f2';
+}
+
+.iconsys-weixin:before {
+ content: '\e7f3';
+}
+
+.iconsys-lanche:before {
+ content: '\e7f4';
+}
+
+.iconsys-ditie:before {
+ content: '\e7f5';
+}
+
+.iconsys-bofang:before {
+ content: '\e6e8';
+}
+
+.iconsys-lieche:before {
+ content: '\e7f6';
+}
+
+.iconsys-pinglun1:before {
+ content: '\e6e9';
+}
+
+.iconsys-gongjiao:before {
+ content: '\e7f7';
+}
+
+.iconsys-huatong:before {
+ content: '\e6ea';
+}
+
+.iconsys-guanguangche:before {
+ content: '\e7f8';
+}
+
+.iconsys-dianzan:before {
+ content: '\e6eb';
+}
+
+.iconsys-zihangche_2:before {
+ content: '\e7f9';
+}
+
+.iconsys-fuli:before {
+ content: '\e6ec';
+}
+
+.iconsys-che:before {
+ content: '\e7fa';
+}
+
+.iconsys-jiudian:before {
+ content: '\e6ed';
+}
+
+.iconsys-huoche:before {
+ content: '\e7fb';
+}
+
+.iconsys-tupian:before {
+ content: '\e6ee';
+}
+
+.iconsys-kuaiting:before {
+ content: '\e7fc';
+}
+
+.iconsys-dingwei:before {
+ content: '\e6ef';
+}
+
+.iconsys-qiche_3:before {
+ content: '\e7fd';
+}
+
+.iconsys-vip:before {
+ content: '\e6f0';
+}
+
+.iconsys-motuoche:before {
+ content: '\e7fe';
+}
+
+.iconsys-yunduan:before {
+ content: '\e6f2';
+}
+
+.iconsys-xiaoche:before {
+ content: '\e7ff';
+}
+
+.iconsys-naozhong:before {
+ content: '\e6f3';
+}
+
+.iconsys-huojian_2:before {
+ content: '\e800';
+}
+
+.iconsys-jiaoliu:before {
+ content: '\e6f4';
+}
+
+.iconsys-lunchuan:before {
+ content: '\e801';
+}
+
+.iconsys-shouru:before {
+ content: '\e6f5';
+}
+
+.iconsys-feiji_2:before {
+ content: '\e802';
+}
+
+.iconsys-zhichu:before {
+ content: '\e6f6';
+}
+
+.iconsys-wajueji:before {
+ content: '\e803';
+}
+
+.iconsys-shijian1:before {
+ content: '\e6f7';
+}
+
+.iconsys-malu:before {
+ content: '\e804';
+}
+
+.iconsys-paizhao:before {
+ content: '\e6f8';
+}
+
+.iconsys-zhishengji:before {
+ content: '\e805';
+}
+
+.iconsys-qiche:before {
+ content: '\e6f9';
+}
+
+.iconsys-fanchuan:before {
+ content: '\e806';
+}
+
+.iconsys-shuipiao:before {
+ content: '\e6fa';
+}
+
+.iconsys-honglvdeng:before {
+ content: '\e807';
+}
+
+.iconsys-dingyue:before {
+ content: '\e6fb';
+}
+
+.iconsys-xinhao1:before {
+ content: '\e808';
+}
+
+.iconsys-kefu_2:before {
+ content: '\e6fc';
+}
+
+.iconsys-biaoqing_3:before {
+ content: '\e809';
+}
+
+.iconsys-tuichudenglu:before {
+ content: '\e6fd';
+}
+
+.iconsys-jinzhi:before {
+ content: '\e80a';
+}
+
+.iconsys-pinglun_2:before {
+ content: '\e6fe';
+}
+
+.iconsys-biaoqing_2:before {
+ content: '\e80b';
+}
+
+.iconsys-qianbao:before {
+ content: '\e6ff';
+}
+
+.iconsys-shuben_3:before {
+ content: '\e80c';
+}
+
+.iconsys-sousuo_2:before {
+ content: '\e700';
+}
+
+.iconsys-zhiwu:before {
+ content: '\e80d';
+}
+
+.iconsys-kanjia:before {
+ content: '\e701';
+}
+
+.iconsys-tongzhuangshui:before {
+ content: '\e80e';
+}
+
+.iconsys-jiaojuan:before {
+ content: '\e702';
+}
+
+.iconsys-quanzi_2:before {
+ content: '\e80f';
+}
+
+.iconsys-kefu:before {
+ content: '\e704';
+}
+
+.iconsys-zhibiao1:before {
+ content: '\e810';
+}
+
+.iconsys-bianji_2:before {
+ content: '\e705';
+}
+
+.iconsys-xingqiu:before {
+ content: '\e811';
+}
+
+.iconsys-bianji2:before {
+ content: '\e706';
+}
+
+.iconsys-shuju_3:before {
+ content: '\e812';
+}
+
+.iconsys-wancheng_2:before {
+ content: '\e708';
+}
+
+.iconsys-xiangji_2:before {
+ content: '\e813';
+}
+
+.iconsys-wode:before {
+ content: '\e70a';
+}
+
+.iconsys-biji:before {
+ content: '\e814';
+}
+
+.iconsys-biaoqian:before {
+ content: '\e70b';
+}
+
+.iconsys-qianbi:before {
+ content: '\e815';
+}
+
+.iconsys-fuwu:before {
+ content: '\e70c';
+}
+
+.iconsys-weixiu_2:before {
+ content: '\e816';
+}
+
+.iconsys-zhanghao:before {
+ content: '\e70d';
+}
+
+.iconsys-fuzhuang:before {
+ content: '\e818';
+}
+
+.iconsys-youhuiquan:before {
+ content: '\e70e';
+}
+
+.iconsys-jiqiren:before {
+ content: '\e819';
+}
+
+.iconsys-dingdan:before {
+ content: '\e70f';
+}
+
+.iconsys-kapianxingshi:before {
+ content: '\e81a';
+}
+
+.iconsys-sousuo1:before {
+ content: '\e710';
+}
+
+.iconsys-shuqian:before {
+ content: '\e81b';
+}
+
+.iconsys-fankui:before {
+ content: '\e711';
+}
+
+.iconsys-shandian_2:before {
+ content: '\e81c';
+}
+
+.iconsys-wancheng_3:before {
+ content: '\e712';
+}
+
+.iconsys-jiankong:before {
+ content: '\e81d';
+}
+
+.iconsys-shoucang:before {
+ content: '\e714';
+}
+
+.iconsys-nv:before {
+ content: '\e81e';
+}
+
+.iconsys-wancheng1:before {
+ content: '\e715';
+}
+
+.iconsys-nan:before {
+ content: '\e81f';
+}
+
+.iconsys-mima:before {
+ content: '\e716';
+}
+
+.iconsys-jingbao:before {
+ content: '\e820';
+}
+
+.iconsys-tianjia:before {
+ content: '\e717';
+}
+
+.iconsys-wendu:before {
+ content: '\e821';
+}
+
+.iconsys-chongzhi:before {
+ content: '\e718';
+}
+
+.iconsys-yinger:before {
+ content: '\e822';
+}
+
+.iconsys-bangzhu1:before {
+ content: '\e719';
+}
+
+.iconsys-tangguo:before {
+ content: '\e823';
+}
+
+.iconsys-shibai1:before {
+ content: '\e71a';
+}
+
+.iconsys-shuye:before {
+ content: '\e824';
+}
+
+.iconsys-tishi1:before {
+ content: '\e71b';
+}
+
+.iconsys-zuanshi:before {
+ content: '\e825';
+}
+
+.iconsys-shanchu:before {
+ content: '\e71c';
+}
+
+.iconsys-wendu_2:before {
+ content: '\e826';
+}
+
+.iconsys-dengpao:before {
+ content: '\e71d';
+}
+
+.iconsys-shandian:before {
+ content: '\e827';
+}
+
+.iconsys-bianji_3:before {
+ content: '\e71e';
+}
+
+.iconsys-shuben:before {
+ content: '\e828';
+}
+
+.iconsys-youhuiquan_2:before {
+ content: '\e71f';
+}
+
+.iconsys-shixian:before {
+ content: '\e829';
+}
+
+.iconsys-faming:before {
+ content: '\e720';
+}
+
+.iconsys-shuju2:before {
+ content: '\e82a';
+}
+
+.iconsys-tongji:before {
+ content: '\e721';
+}
+
+.iconsys-huangguan:before {
+ content: '\e82b';
+}
+
+.iconsys-jiudian_2:before {
+ content: '\e722';
+}
+
+.iconsys-meishu:before {
+ content: '\e82c';
+}
+
+.iconsys-fenlei:before {
+ content: '\e723';
+}
+
+.iconsys-gengduo21:before {
+ content: '\e82d';
+}
+
+.iconsys-tuandui:before {
+ content: '\e724';
+}
+
+.iconsys-yaoqingren2:before {
+ content: '\e82e';
+}
+
+.iconsys-wenjian:before {
+ content: '\e726';
+}
+
+.iconsys-yaoqingren:before {
+ content: '\e82f';
+}
+
+.iconsys-weixiu:before {
+ content: '\e727';
+}
+
+.iconsys-tuandui4:before {
+ content: '\e830';
+}
+
+.iconsys-ziyuan1:before {
+ content: '\e728';
+}
+
+.iconsys-tuandui3:before {
+ content: '\e831';
+}
+
+.iconsys-shouye1:before {
+ content: '\e729';
+}
+
+.iconsys-wancheng2:before {
+ content: '\e832';
+}
+
+.iconsys-wenjian_2:before {
+ content: '\e72a';
+}
+
+.iconsys-yushou:before {
+ content: '\e833';
+}
+
+.iconsys-shezhi3:before {
+ content: '\e72b';
+}
+
+.iconsys-shouhuo:before {
+ content: '\e834';
+}
+
+.iconsys-zhuanfa:before {
+ content: '\e72d';
+}
+
+.iconsys-weixuanzhong2:before {
+ content: '\e835';
+}
+
+.iconsys-youjian:before {
+ content: '\e72e';
+}
+
+.iconsys-xuanzhong2:before {
+ content: '\e836';
+}
+
+.iconsys-dingwei1:before {
+ content: '\e72f';
+}
+
+.iconsys-jian:before {
+ content: '\e837';
+}
+
+.iconsys-yinhangka:before {
+ content: '\e730';
+}
+
+.iconsys-dui:before {
+ content: '\e838';
+}
+
+.iconsys-shouye_3:before {
+ content: '\e731';
+}
+
+.iconsys-gengduo:before {
+ content: '\e839';
+}
+
+.iconsys-shoucang_2:before {
+ content: '\e732';
+}
+
+.iconsys-cuo:before {
+ content: '\e83a';
+}
+
+.iconsys-shouye_2:before {
+ content: '\e733';
+}
+
+.iconsys-gengduo11:before {
+ content: '\e83b';
+}
+
+.iconsys-geren:before {
+ content: '\e734';
+}
+
+.iconsys-menpiao:before {
+ content: '\e83c';
+}
+
+.iconsys-zhuanfa_2:before {
+ content: '\e735';
+}
+
+.iconsys-liebiaoxingshi:before {
+ content: '\e83d';
+}
+
+.iconsys-weizhi:before {
+ content: '\e736';
+}
+
+.iconsys-jia:before {
+ content: '\e83e';
+}
+
+.iconsys-dianpu:before {
+ content: '\e737';
+}
+
+.iconsys-weixuanzhong:before {
+ content: '\e83f';
+}
+
+.iconsys-saoma:before {
+ content: '\e738';
+}
+
+.iconsys-xuanzhong:before {
+ content: '\e840';
+}
+
+.iconsys-fenlei_3:before {
+ content: '\e739';
+}
+
+.iconsys-bianqian:before {
+ content: '\e841';
+}
+
+.iconsys-tianjiahaoyou:before {
+ content: '\e73a';
+}
+
+.iconsys-gongyi:before {
+ content: '\e842';
+}
+
+.iconsys-fenxiang1:before {
+ content: '\e73b';
+}
+
+.iconsys-erweima3:before {
+ content: '\e843';
+}
+
+.iconsys-liulan:before {
+ content: '\e73c';
+}
+
+.iconsys-erweima2:before {
+ content: '\e844';
+}
+
+.iconsys-bukejian:before {
+ content: '\e73d';
+}
+
+.iconsys-shalou3:before {
+ content: '\e845';
+}
+
+.iconsys-wendang:before {
+ content: '\e73e';
+}
+
+.iconsys-shalou2:before {
+ content: '\e846';
+}
+
+.iconsys-saoma_2:before {
+ content: '\e73f';
+}
+
+.iconsys-qingchu2:before {
+ content: '\e847';
+}
+
+.iconsys-fenlei_2:before {
+ content: '\e740';
+}
+
+.iconsys-buganxingqu:before {
+ content: '\e848';
+}
+
+.iconsys-dingyue_2:before {
+ content: '\e741';
+}
+
+.iconsys-bianji6:before {
+ content: '\e849';
+}
+
+.iconsys-shuju:before {
+ content: '\e742';
+}
+
+.iconsys-wenjian3:before {
+ content: '\e84a';
+}
+
+.iconsys-ziyuan_2:before {
+ content: '\e743';
+}
+
+.iconsys-fapiao2:before {
+ content: '\e84b';
+}
+
+.iconsys-dingyue_3:before {
+ content: '\e744';
+}
+
+.iconsys-jiayou2:before {
+ content: '\e84c';
+}
+
+.iconsys-huiyuan:before {
+ content: '\e745';
+}
+
+.iconsys-zhi:before {
+ content: '\e84d';
+}
+
+.iconsys-tianxie:before {
+ content: '\e746';
+}
+
+.iconsys-geren3:before {
+ content: '\e84e';
+}
+
+.iconsys-gonggao:before {
+ content: '\e747';
+}
+
+.iconsys-geren2:before {
+ content: '\e84f';
+}
+
+.iconsys-wancheng_4:before {
+ content: '\e748';
+}
+
+.iconsys-lajitong2:before {
+ content: '\e850';
+}
+
+.iconsys-daka:before {
+ content: '\e749';
+}
+
+.iconsys-shebei:before {
+ content: '\e851';
+}
+
+.iconsys-wode_2:before {
+ content: '\e74a';
+}
+
+.iconsys-fapiao:before {
+ content: '\e852';
+}
+
+.iconsys-shaixuan_2:before {
+ content: '\e74c';
+}
+
+.iconsys-jiandu:before {
+ content: '\e853';
+}
+
+.iconsys-daohang:before {
+ content: '\e74d';
+}
+
+.iconsys-falvsusong:before {
+ content: '\e854';
+}
+
+.iconsys-shaixuan:before {
+ content: '\e74e';
+}
+
+.iconsys-geren4:before {
+ content: '\e855';
+}
+
+.iconsys-xiaoshou:before {
+ content: '\e74f';
+}
+
+.iconsys-falvsusong2:before {
+ content: '\e856';
+}
+
+.iconsys-qingchu:before {
+ content: '\e750';
+}
+
+.iconsys-jubao2:before {
+ content: '\e857';
+}
+
+.iconsys-rili:before {
+ content: '\e751';
+}
+
+.iconsys-jubao:before {
+ content: '\e858';
+}
+
+.iconsys-fanhui:before {
+ content: '\e752';
+}
+
+.iconsys-huodong_1:before {
+ content: '\e859';
+}
+
+.iconsys-tuandui_2:before {
+ content: '\e753';
+}
+
+.iconsys-yaopin_1:before {
+ content: '\e85a';
+}
+
+.iconsys-kuaidiyuan:before {
+ content: '\e754';
+}
+
+.iconsys-huodong_2:before {
+ content: '\e85b';
+}
+
+.iconsys-shezhi_2:before {
+ content: '\e755';
+}
+
+.iconsys-jiameng_1:before {
+ content: '\e85c';
+}
+
+.iconsys-jingyin:before {
+ content: '\e756';
+}
+
+.iconsys-jindian:before {
+ content: '\e85d';
+}
+
+.iconsys-lianjie:before {
+ content: '\e757';
+}
+
+.iconsys-faxian:before {
+ content: '\e85e';
+}
+
+.iconsys-pinglun_3:before {
+ content: '\e758';
+}
+
+.iconsys-chongzhijilu:before {
+ content: '\e85f';
+}
+
+.iconsys-gouwu:before {
+ content: '\e759';
+}
+
+.iconsys-fenlei_4:before {
+ content: '\e860';
+}
+
+.iconsys-naozhong1:before {
+ content: '\e75a';
+}
+
+.iconsys-jiameng_2:before {
+ content: '\e861';
+}
+
+.iconsys-tianjia_2:before {
+ content: '\e75b';
+}
+
+.iconsys-jiameng:before {
+ content: '\e862';
+}
+
+.iconsys-tixing:before {
+ content: '\e75c';
+}
+
+.iconsys-jiezhen:before {
+ content: '\e863';
+}
+
+.iconsys-anquan:before {
+ content: '\e75d';
+}
+
+.iconsys-shang2:before {
+ content: '\e864';
+}
+
+.iconsys-yiliao:before {
+ content: '\e75f';
+}
+
+.iconsys-you2:before {
+ content: '\e865';
+}
+
+.iconsys-yingpin:before {
+ content: '\e761';
+}
+
+.iconsys-zuo2:before {
+ content: '\e866';
+}
+
+.iconsys-huopinxinxi:before {
+ content: '\e762';
+}
+
+.iconsys-xia2:before {
+ content: '\e867';
+}
+
+.iconsys-shanchuwenjian:before {
+ content: '\e763';
+}
+
+.iconsys-dianzan2:before {
+ content: '\e868';
+}
+
+.iconsys-gouwuche:before {
+ content: '\e764';
+}
+
+.iconsys-dianzan21:before {
+ content: '\e869';
+}
+
+.iconsys-youxi:before {
+ content: '\e765';
+}
+
+.iconsys-gouxuan:before {
+ content: '\e86a';
+}
+
+.iconsys-bianji_5:before {
+ content: '\e766';
+}
+
+.iconsys-fuwu3:before {
+ content: '\e86b';
+}
+
+.iconsys-baocun:before {
+ content: '\e767';
+}
+
+.iconsys-fuwu2:before {
+ content: '\e86c';
+}
+
+.iconsys-tianjiawenjian1:before {
+ content: '\e768';
+}
+
+.iconsys-qiehuan:before {
+ content: '\e86d';
+}
+
+.iconsys-yaopin:before {
+ content: '\e769';
+}
+
+.iconsys-tuandui2:before {
+ content: '\e86e';
+}
+
+.iconsys-riqi2:before {
+ content: '\e76a';
+}
+
+.iconsys-wenzhen:before {
+ content: '\e86f';
+}
+
+.iconsys-butixing:before {
+ content: '\e76b';
+}
+
+.iconsys-hongbao3:before {
+ content: '\e870';
+}
+
+.iconsys-dingdanliebiao:before {
+ content: '\e76c';
+}
+
+.iconsys-gongyingshang:before {
+ content: '\e871';
+}
+
+.iconsys-xiangji:before {
+ content: '\e76d';
+}
+
+.iconsys-fuwu4:before {
+ content: '\e872';
+}
+
+.iconsys-xuexiao:before {
+ content: '\e76e';
+}
+
+.iconsys-gongsijieshao:before {
+ content: '\e873';
+}
+
+.iconsys-bianji_4:before {
+ content: '\e76f';
+}
+
+.iconsys-tongzhiguanli:before {
+ content: '\e874';
+}
+
+.iconsys-boda:before {
+ content: '\e770';
+}
+
+.iconsys-xianshi:before {
+ content: '\e875';
+}
+
+.iconsys-gouwudai:before {
+ content: '\e771';
+}
+
+.iconsys-yincang:before {
+ content: '\e876';
+}
+
+.iconsys-zhuanfa_3:before {
+ content: '\e772';
+}
+
+.iconsys-tianxie1:before {
+ content: '\e877';
+}
+
+.iconsys-yinle:before {
+ content: '\e773';
+}
+
+.iconsys-jingli:before {
+ content: '\e878';
+}
+
+.iconsys-huodaofukuan:before {
+ content: '\e774';
+}
+
+.iconsys-gouwuche3:before {
+ content: '\e879';
+}
+
+.iconsys-shangpin:before {
+ content: '\e775';
+}
+
+.iconsys-qiehuanyuyan:before {
+ content: '\e87a';
+}
+
+.iconsys-dianhua:before {
+ content: '\e776';
+}
+
+.iconsys-fabu:before {
+ content: '\e87b';
+}
+
+.iconsys-dangqianweizhi:before {
+ content: '\e777';
+}
+
+.iconsys-yaofang:before {
+ content: '\e87c';
+}
+
+.iconsys-shipin:before {
+ content: '\e778';
+}
+
+.iconsys-shouye_8:before {
+ content: '\e87d';
+}
+
+.iconsys-yuyin:before {
+ content: '\e779';
+}
+
+.iconsys-diancifa:before {
+ content: '\e87e';
+}
+
+.iconsys-wanchengdingdan:before {
+ content: '\e77a';
+}
+
+.iconsys-xiazai_3:before {
+ content: '\e87f';
+}
+
+.iconsys-guanbiyuyin:before {
+ content: '\e77b';
+}
+
+.iconsys-jilu_2:before {
+ content: '\e880';
+}
+
+.iconsys-jifen:before {
+ content: '\e77c';
+}
+
+.iconsys-yaodian:before {
+ content: '\e881';
+}
+
+.iconsys-wupin:before {
+ content: '\e77d';
+}
+
+.iconsys-chongwu:before {
+ content: '\e882';
+}
+
+.iconsys-shequ:before {
+ content: '\e77e';
+}
+
+.iconsys-shangpin_2:before {
+ content: '\e883';
+}
+
+.iconsys-gouwu_2:before {
+ content: '\e77f';
+}
+
+.iconsys-shouye_7:before {
+ content: '\e884';
+}
+
+.iconsys-guanji1:before {
+ content: '\e780';
+}
+
+.iconsys-gouwuche_3:before {
+ content: '\e885';
+}
+
+.iconsys-lianjie_2:before {
+ content: '\e781';
+}
+
+.iconsys-fenlei_5:before {
+ content: '\e886';
+}
+
+.iconsys-dayin_2:before {
+ content: '\e782';
+}
+
+.iconsys-wode_4:before {
+ content: '\e887';
+}
+
+.iconsys-lajitong:before {
+ content: '\e783';
+}
+
+.iconsys-jiesuo1:before {
+ content: '\e888';
+}
+
+.iconsys-huowu:before {
+ content: '\e784';
+}
+
+.iconsys-yuechi:before {
+ content: '\e889';
+}
+
+.iconsys-dayin:before {
+ content: '\e785';
+}
+
+.iconsys-gouwuche_2-fill:before {
+ content: '\e88a';
+}
+
+.iconsys-zhibo:before {
+ content: '\e786';
+}
+
+.iconsys-shenhe:before {
+ content: '\e88b';
+}
+
+.iconsys-tianjiawendang1:before {
+ content: '\e787';
+}
+
+.iconsys-shenhe_2:before {
+ content: '\e88c';
+}
+
+.iconsys-shanchuwendang:before {
+ content: '\e788';
+}
+
+.iconsys-bendiquan:before {
+ content: '\e88d';
+}
+
+.iconsys-tianjia_3:before {
+ content: '\e789';
+}
+
+.iconsys-qushui:before {
+ content: '\e88e';
+}
+
+.iconsys-shanchu_2:before {
+ content: '\e78a';
+}
+
+.iconsys-xiaofei:before {
+ content: '\e88f';
+}
+
+.iconsys-shang:before {
+ content: '\e78b';
+}
+
+.iconsys-mubiao:before {
+ content: '\e890';
+}
+
+.iconsys-fangda1:before {
+ content: '\e78c';
+}
+
+.iconsys-chuan:before {
+ content: '\e891';
+}
+
+.iconsys-suoxiao1:before {
+ content: '\e78d';
+}
+
+.iconsys-wode_5:before {
+ content: '\e892';
+}
+
+.iconsys-xia:before {
+ content: '\e78e';
+}
+
+.iconsys-pintuan:before {
+ content: '\e893';
+}
+
+.iconsys-zuo:before {
+ content: '\e78f';
+}
+
+.iconsys-gouwuche_5:before {
+ content: '\e894';
+}
+
+.iconsys-lianjie1:before {
+ content: '\e790';
+}
+
+.iconsys-shouye_9:before {
+ content: '\e895';
+}
+
+.iconsys-quanping1:before {
+ content: '\e791';
+}
+
+.iconsys-dianpu_3:before {
+ content: '\e896';
+}
+
+.iconsys-you:before {
+ content: '\e792';
+}
+
+.iconsys-jilu1:before {
+ content: '\e897';
+}
+
+.iconsys-shuaxin1:before {
+ content: '\e793';
+}
+
+.iconsys-jiankang:before {
+ content: '\e898';
+}
+
+.iconsys-shuaxin_2:before {
+ content: '\e794';
+}
+
+.iconsys-gailan:before {
+ content: '\e899';
+}
+
+.iconsys-shuaxin_3:before {
+ content: '\e795';
+}
+
+.iconsys-fankui_2:before {
+ content: '\e89a';
+}
+
+.iconsys-jiaoji:before {
+ content: '\e796';
+}
+
+.iconsys-anquan_2:before {
+ content: '\e89b';
+}
+
+.iconsys-jiantou_2:before {
+ content: '\e797';
+}
+
+.iconsys-anquan_3:before {
+ content: '\e89c';
+}
+
+.iconsys-zhongxinshouquan:before {
+ content: '\e798';
+}
+
+.iconsys-zhibo_2:before {
+ content: '\e89d';
+}
+
+.iconsys-shangchuan1:before {
+ content: '\e79b';
+}
+
+.iconsys-dingbu:before {
+ content: '\e89e';
+}
+
+.iconsys-xiazai:before {
+ content: '\e79c';
+}
+
+.iconsys-dibu:before {
+ content: '\e89f';
+}
+
+.iconsys-xiangxia:before {
+ content: '\e79d';
+}
+
+.iconsys-you_2:before {
+ content: '\e8a0';
+}
+
+.iconsys-zhuanfa_4:before {
+ content: '\e79e';
+}
+
+.iconsys-shang_2:before {
+ content: '\e8a1';
+}
+
+.iconsys-dianzan_2:before {
+ content: '\e79f';
+}
+
+.iconsys-zuo_2:before {
+ content: '\e8a2';
+}
+
+.iconsys-xiazai_2:before {
+ content: '\e7a0';
+}
+
+.iconsys-xia_2:before {
+ content: '\e8a3';
+}
+
+.iconsys-dianpu_2:before {
+ content: '\e7a1';
+}
+
+.iconsys-fenlei_6:before {
+ content: '\e8a4';
+}
+
+.iconsys-xiangshang:before {
+ content: '\e7a2';
+}
+
+.iconsys-zhuanfa_5:before {
+ content: '\e8a5';
+}
+
+.iconsys-faming-2:before {
+ content: '\e7a3';
+}
+
+.iconsys-gongchang:before {
+ content: '\e8a6';
+}
+
+.iconsys-Wi-Fi:before {
+ content: '\e7a4';
+}
+
+.iconsys-jianzhu_5:before {
+ content: '\e8a7';
+}
+
+.iconsys-miaosha:before {
+ content: '\e7a5';
+}
+
+.iconsys-jianzhu_4:before {
+ content: '\e8a8';
+}
+
+.iconsys-huizhang:before {
+ content: '\e7a6';
+}
+
+.iconsys-jianzhu_6:before {
+ content: '\e8a9';
+}
+
+.iconsys-dianshi:before {
+ content: '\e7a7';
+}
+
+.iconsys-jianzhu_3:before {
+ content: '\e8aa';
+}
+
+.iconsys-huodong:before {
+ content: '\e7a8';
+}
+
+.iconsys-jiaotang:before {
+ content: '\e8ab';
+}
+
+.iconsys-shenfenzheng:before {
+ content: '\e7a9';
+}
+
+.iconsys-jianzhu_2:before {
+ content: '\e8ac';
+}
+
+.iconsys-remen:before {
+ content: '\e7aa';
+}
+
+.iconsys-bowuguan:before {
+ content: '\e8ad';
+}
+
+.iconsys-touyingyi:before {
+ content: '\e7ab';
+}
+
+.iconsys-chengshi_2:before {
+ content: '\e8ae';
+}
+
+.iconsys-miaobiao:before {
+ content: '\e7ac';
+}
+
+.iconsys-chengshi_3:before {
+ content: '\e8af';
+}
+
+.iconsys-hongbao:before {
+ content: '\e7ad';
+}
+
+.iconsys-yiyuan:before {
+ content: '\e8b0';
+}
+
+.iconsys-wenzhang_2:before {
+ content: '\e7ae';
+}
+
+.iconsys-jianzhu:before {
+ content: '\e8b1';
+}
+
+.iconsys-miaobiao_2:before {
+ content: '\e7af';
+}
+
+.iconsys-xuexiao_2:before {
+ content: '\e8b2';
+}
+
+.iconsys-qianbao_2:before {
+ content: '\e7b0';
+}
+
+.iconsys-chengshi:before {
+ content: '\e8b3';
+}
+
+.iconsys-dingshi1:before {
+ content: '\e7b1';
+}
+
+.iconsys-yaodian_2:before {
+ content: '\e8b4';
+}
+
+.iconsys-fuzhi:before {
+ content: '\e7b2';
+}
+
+.iconsys-jinianbei:before {
+ content: '\e8b5';
+}
+
+.iconsys-lanya:before {
+ content: '\e7b3';
+}
+
+.iconsys-jinianbei_2:before {
+ content: '\e8b6';
+}
+
+.iconsys-caijian:before {
+ content: '\e7b4';
+}
+
+.iconsys-dianti_4:before {
+ content: '\e8b7';
+}
+
+.iconsys-songhuo:before {
+ content: '\e7b5';
+}
+
+.iconsys-dianti_2:before {
+ content: '\e8b8';
+}
+
+.iconsys-erweima_2:before {
+ content: '\e7b6';
+}
+
+.iconsys-dianti_5:before {
+ content: '\e8b9';
+}
+
+.iconsys-fenxiao:before {
+ content: '\e7b7';
+}
+
+.iconsys-dianti_6:before {
+ content: '\e8ba';
+}
+
+.iconsys-jiandao:before {
+ content: '\e7b8';
+}
+
+.iconsys-dianti:before {
+ content: '\e8bb';
+}
+
+.iconsys-shezhi_3:before {
+ content: '\e7b9';
+}
+
+.iconsys-dianti_3:before {
+ content: '\e8bc';
+}
+
+.iconsys-guanli:before {
+ content: '\e7ba';
+}
+
+.iconsys-shafa:before {
+ content: '\e8bd';
+}
+
+.iconsys-shouye_4:before {
+ content: '\e7bb';
+}
+
+.iconsys-guizi:before {
+ content: '\e8be';
+}
+
+.iconsys-shuben_2:before {
+ content: '\e7bc';
+}
+
+.iconsys-biangui:before {
+ content: '\e8bf';
+}
+
+.iconsys-dianhua_2:before {
+ content: '\e7bd';
+}
+
+.iconsys-bingxiang:before {
+ content: '\e8c0';
+}
+
+.iconsys-huiyuan_2:before {
+ content: '\e7be';
+}
+
+.iconsys-shuangrenchuang:before {
+ content: '\e8c1';
+}
+
+.iconsys-qifei:before {
+ content: '\e7bf';
+}
+
+.iconsys-danrenchuang:before {
+ content: '\e8c2';
+}
+
+.iconsys-shouye_5:before {
+ content: '\e7c0';
+}
+
+.iconsys-shuangrenchuang_2:before {
+ content: '\e8c3';
+}
+
+.iconsys-erweima:before {
+ content: '\e7c1';
+}
+
+.iconsys-danrenchuang_2:before {
+ content: '\e8c4';
+}
+
+.iconsys-daohang_2:before {
+ content: '\e7c2';
+}
+
+.iconsys-beizi:before {
+ content: '\e8c5';
+}
+
+.iconsys-weizhi_2:before {
+ content: '\e7c3';
+}
+
+.iconsys-chuanglian:before {
+ content: '\e8c6';
+}
+
+.iconsys-quanzi:before {
+ content: '\e7c4';
+}
+
+.iconsys-chuanglian_2:before {
+ content: '\e8c7';
+}
+
+.iconsys-qifei_2:before {
+ content: '\e7c5';
+}
+
+.iconsys-chuanglian_3:before {
+ content: '\e8c8';
+}
+
+.iconsys-jifen_2:before {
+ content: '\e7c6';
+}
+
+.iconsys-taideng:before {
+ content: '\e8c9';
+}
+
+.iconsys-feiji:before {
+ content: '\e7c7';
+}
+
+.iconsys-taideng_2:before {
+ content: '\e8ca';
+}
+
+.iconsys-zihangche:before {
+ content: '\e7c8';
+}
+
+.iconsys-yijia:before {
+ content: '\e8cb';
+}
+
+.iconsys-qiche1:before {
+ content: '\e7c9';
+}
+
+.iconsys-liangyijia:before {
+ content: '\e8cc';
+}
+
+.iconsys-zhaoche:before {
+ content: '\e7ca';
+}
+
+.iconsys-QQ:before {
+ content: '\e8cd';
+}
+
+.iconsys-gongshi:before {
+ content: '\e7cb';
+}
+
+.iconsys-jisuanqi:before {
+ content: '\e8cf';
+}
+
+.iconsys-lanqiu:before {
+ content: '\e7cc';
+}
+
+.iconsys-jisuanqi_2:before {
+ content: '\e8d0';
+}
+
+.iconsys-jiegou:before {
+ content: '\e7cd';
+}
+
+.iconsys-jisuanqi_3:before {
+ content: '\e8d1';
+}
+
+.iconsys-shouyi:before {
+ content: '\e7ce';
+}
+
+.iconsys-jisuanqi_4:before {
+ content: '\e8d2';
+}
+
+.iconsys-qiche_2:before {
+ content: '\e7cf';
+}
+
+.iconsys-xinpian:before {
+ content: '\e8d3';
+}
+
+.iconsys-shui:before {
+ content: '\e7d0';
+}
+
+.iconsys-yanfa:before {
+ content: '\e8d4';
+}
+
+.iconsys-shezhi_4:before {
+ content: '\e7d1';
+}
+
+.iconsys-yanjing-fang:before {
+ content: '\e7d2';
+}
+
+.iconsys-shuaka:before {
+ content: '\e7d3';
+}
+
+.iconsys-shoushi:before {
+ content: '\e7d4';
+}
+
+.iconsys-wenzhang:before {
+ content: '\e7d5';
+}
+
+.iconsys-jiayou:before {
+ content: '\e7d6';
+}
+
+.iconsys-shoubiao:before {
+ content: '\e7d7';
+}
+
+.iconsys-jiqi:before {
+ content: '\e7d8';
+}
+
+.iconsys-shuju_2:before {
+ content: '\e7d9';
+}
+
+.iconsys-qiandai:before {
+ content: '\e7da';
+}
+
+.iconsys-biaoqing:before {
+ content: '\e7db';
+}
+
+.iconsys-huati:before {
+ content: '\e7de';
+}
+
+.iconsys-jingji:before {
+ content: '\e7df';
+}
+
+.iconsys-yanjing-yuan:before {
+ content: '\e7e0';
+}
+
+.iconsys-qushi:before {
+ content: '\e7e1';
+}
+
+.iconsys-shangchuan_2:before {
+ content: '\e7e2';
+}
+
+.iconsys-shoudiantong:before {
+ content: '\e7e3';
+}
+
+.iconsys-kafei:before {
+ content: '\e7e4';
+}
+
+.iconsys-canju:before {
+ content: '\e7e5';
+}
+
+.iconsys-shalou1:before {
+ content: '\e7e6';
+}
+
+.iconsys-canyin:before {
+ content: '\e7e7';
+}
+
+.iconsys-huojian:before {
+ content: '\e7e8';
+}
+
+.iconsys-shouyinji:before {
+ content: '\e7e9';
+}
+
+.iconsys-guanjun:before {
+ content: '\e7ea';
+}
+
+.iconsys-piaoliuping:before {
+ content: '\e7eb';
+}
+
+.iconsys-yinle_2:before {
+ content: '\e7ec';
+}
+
+.iconsys-mofa:before {
+ content: '\e7ed';
+}
+
+.iconsys-wangye:before {
+ content: '\e7ee';
+}
+
+.iconsys-shuaxin9:before {
+ content: '\e613';
+}
+
+.iconsys-refresh:before {
+ content: '\e614';
+}
+
+.iconsys-a-huaban2fuben32:before {
+ content: '\e615';
+}
+
+.iconsys-shuaxin12:before {
+ content: '\e6b3';
+}
+
+.iconsys-diqiu-:before {
+ content: '\e611';
+}
+
+.iconsys-icon_diqiu:before {
+ content: '\e607';
+}
+
+.iconsys-fanyi1:before {
+ content: '\e60f';
+}
+
+.iconsys-shuyi_fanyi-36:before {
+ content: '\e65c';
+}
+
+.iconsys-quanpingsuoxiao:before {
+ content: '\e62d';
+}
+
+.iconsys-expand:before {
+ content: '\e8ce';
+}
+
+.iconsys-dingshi:before {
+ content: '\e6e4';
+}
+
+.iconsys-dianliang:before {
+ content: '\e6e5';
+}
+
+.iconsys-zuoduiqi:before {
+ content: '\e6ba';
+}
+
+.iconsys-yiwen:before {
+ content: '\e6bb';
+}
+
+.iconsys-xuanzewendang:before {
+ content: '\e6bc';
+}
+
+.iconsys-youduiqi:before {
+ content: '\e6bd';
+}
+
+.iconsys-xunhuan:before {
+ content: '\e6be';
+}
+
+.iconsys-bianji1:before {
+ content: '\e6bf';
+}
+
+.iconsys-xiugai:before {
+ content: '\e6c0';
+}
+
+.iconsys-xinhao:before {
+ content: '\e6c1';
+}
+
+.iconsys-xiaoxi:before {
+ content: '\e6c2';
+}
+
+.iconsys-xiazai2:before {
+ content: '\e6c3';
+}
+
+.iconsys-tianjiawenjian:before {
+ content: '\e6c4';
+}
+
+.iconsys-tianjiawendang:before {
+ content: '\e6c5';
+}
+
+.iconsys-tianjia2:before {
+ content: '\e6c6';
+}
+
+.iconsys-tianjia1:before {
+ content: '\e6c7';
+}
+
+.iconsys-tixing1:before {
+ content: '\e6c8';
+}
+
+.iconsys-tishi:before {
+ content: '\e6c9';
+}
+
+.iconsys-suoxiao:before {
+ content: '\e6ca';
+}
+
+.iconsys-sousuo:before {
+ content: '\e6cb';
+}
+
+.iconsys-shouye:before {
+ content: '\e6cc';
+}
+
+.iconsys-shouqi:before {
+ content: '\e6cd';
+}
+
+.iconsys-shijian:before {
+ content: '\e6ce';
+}
+
+.iconsys-shenpi:before {
+ content: '\e6cf';
+}
+
+.iconsys-shezhi2:before {
+ content: '\e6d0';
+}
+
+.iconsys-shangchuan:before {
+ content: '\e6d1';
+}
+
+.iconsys-shanjianwenjian:before {
+ content: '\e6d2';
+}
+
+.iconsys-shanjianwendang:before {
+ content: '\e6d3';
+}
+
+.iconsys-shanchu2:before {
+ content: '\e6d4';
+}
+
+.iconsys-quanping:before {
+ content: '\e6d5';
+}
+
+.iconsys-liebiao:before {
+ content: '\e6d6';
+}
+
+.iconsys-jiesuo:before {
+ content: '\e6d7';
+}
+
+.iconsys-jietu:before {
+ content: '\e6d8';
+}
+
+.iconsys-jilu:before {
+ content: '\e6d9';
+}
+
+.iconsys-guanbi1:before {
+ content: '\e6db';
+}
+
+.iconsys-gengduo3:before {
+ content: '\e6dc';
+}
+
+.iconsys-gengduo2:before {
+ content: '\e6dd';
+}
+
+.iconsys-gengduo1:before {
+ content: '\e6df';
+}
+
+.iconsys-fuxuan:before {
+ content: '\e6e0';
+}
+
+.iconsys-fenxiang:before {
+ content: '\e6e1';
+}
+
+.iconsys-fenbuduiqi:before {
+ content: '\e6e2';
+}
+
+.iconsys-fangda:before {
+ content: '\e6e3';
+}
+
+.iconsys-guanbi:before {
+ content: '\e7dc';
+}
+
+.iconsys-sidebar:before {
+ content: '\e6af';
+}
+
+.iconsys-cebian-fanhui:before {
+ content: '\e703';
+}
+
+.iconsys-xuanzekuang-jiantou:before {
+ content: '\e709';
+}
+
+.iconsys-pinglun:before {
+ content: '\e60d';
+}
+
+.iconsys-shenglvehao:before {
+ content: '\e6b1';
+}
+
+.iconsys-caidan1:before {
+ content: '\e662';
+}
+
+.iconsys-xianshiqi:before {
+ content: '\e6b2';
+}
+
+.iconsys-bang2:before {
+ content: '\e600';
+}
+
+.iconsys-jihuagongzuo:before {
+ content: '\e651';
+}
+
+.iconsys-user:before {
+ content: '\e608';
+}
+
+.iconsys-zhaopian-copy:before {
+ content: '\e7dd';
+}
+
+.iconsys-kongzhuangtai:before {
+ content: '\e707';
+}
+
+.iconsys-tongzhi1:before {
+ content: '\e64a';
+}
+
+.iconsys-bangzhu:before {
+ content: '\e636';
+}
diff --git a/src/assets/icons/system/iconfont.js b/src/assets/icons/system/iconfont.js
new file mode 100644
index 0000000..0237c99
--- /dev/null
+++ b/src/assets/icons/system/iconfont.js
@@ -0,0 +1,67 @@
+;(window._iconfont_svg_string_3682552 =
+ ''),
+ ((h) => {
+ var c = (l = (l = document.getElementsByTagName('script'))[l.length - 1]).getAttribute(
+ 'data-injectcss'
+ ),
+ l = l.getAttribute('data-disable-injectsvg')
+ if (!l) {
+ var a,
+ s,
+ i,
+ z,
+ t,
+ o = function (c, l) {
+ l.parentNode.insertBefore(c, l)
+ }
+ if (c && !h.__iconfont__svg__cssinject__) {
+ h.__iconfont__svg__cssinject__ = !0
+ try {
+ document.write(
+ ''
+ )
+ } catch (c) {
+ console && console.log(c)
+ }
+ }
+ ;(a = function () {
+ var c,
+ l = document.createElement('div')
+ ;(l.innerHTML = h._iconfont_svg_string_3682552),
+ (l = l.getElementsByTagName('svg')[0]) &&
+ (l.setAttribute('aria-hidden', 'true'),
+ (l.style.position = 'absolute'),
+ (l.style.width = 0),
+ (l.style.height = 0),
+ (l.style.overflow = 'hidden'),
+ (l = l),
+ (c = document.body).firstChild ? o(l, c.firstChild) : c.appendChild(l))
+ }),
+ document.addEventListener
+ ? ~['complete', 'loaded', 'interactive'].indexOf(document.readyState)
+ ? setTimeout(a, 0)
+ : ((s = function () {
+ document.removeEventListener('DOMContentLoaded', s, !1), a()
+ }),
+ document.addEventListener('DOMContentLoaded', s, !1))
+ : document.attachEvent &&
+ ((i = a),
+ (z = h.document),
+ (t = !1),
+ v(),
+ (z.onreadystatechange = function () {
+ 'complete' == z.readyState && ((z.onreadystatechange = null), p())
+ }))
+ }
+ function p() {
+ t || ((t = !0), i())
+ }
+ function v() {
+ try {
+ z.documentElement.doScroll('left')
+ } catch (c) {
+ return void setTimeout(v, 50)
+ }
+ p()
+ }
+ })(window)
diff --git a/src/assets/icons/system/iconfont.json b/src/assets/icons/system/iconfont.json
new file mode 100644
index 0000000..7f71691
--- /dev/null
+++ b/src/assets/icons/system/iconfont.json
@@ -0,0 +1,4643 @@
+{
+ "id": "3682552",
+ "name": "Art Design Pro-System",
+ "font_family": "iconfont-sys",
+ "css_prefix_text": "iconsys-",
+ "description": "",
+ "glyphs": [
+ {
+ "icon_id": "34292270",
+ "name": "arrow-sfixed",
+ "font_class": "arrow-sfixed",
+ "unicode": "e644",
+ "unicode_decimal": 58948
+ },
+ {
+ "icon_id": "33747206",
+ "name": "高度",
+ "font_class": "gaodu1",
+ "unicode": "e63d",
+ "unicode_decimal": 58941
+ },
+ {
+ "icon_id": "43453700",
+ "name": "箭头右上",
+ "font_class": "jiantouyoushang",
+ "unicode": "e8d5",
+ "unicode_decimal": 59605
+ },
+ {
+ "icon_id": "43453705",
+ "name": "箭头左下",
+ "font_class": "jiantouzuoxia",
+ "unicode": "e8d9",
+ "unicode_decimal": 59609
+ },
+ {
+ "icon_id": "31075625",
+ "name": "自动宽度-01",
+ "font_class": "zidongkuandu-01",
+ "unicode": "e694",
+ "unicode_decimal": 59028
+ },
+ {
+ "icon_id": "41769101",
+ "name": "固定宽度",
+ "font_class": "gudingkuandu",
+ "unicode": "e6de",
+ "unicode_decimal": 59102
+ },
+ {
+ "icon_id": "7381405",
+ "name": "bilibili-s",
+ "font_class": "bilibili-s",
+ "unicode": "e6b4",
+ "unicode_decimal": 59060
+ },
+ {
+ "icon_id": "42510079",
+ "name": "暗黑模式",
+ "font_class": "anheimoshi3",
+ "unicode": "e725",
+ "unicode_decimal": 59173
+ },
+ {
+ "icon_id": "34314475",
+ "name": "白天模式",
+ "font_class": "baitianmoshi3",
+ "unicode": "e6b5",
+ "unicode_decimal": 59061
+ },
+ {
+ "icon_id": "25562744",
+ "name": "锁",
+ "font_class": "suo",
+ "unicode": "e817",
+ "unicode_decimal": 59415
+ },
+ {
+ "icon_id": "11855550",
+ "name": "勾",
+ "font_class": "gou",
+ "unicode": "e621",
+ "unicode_decimal": 58913
+ },
+ {
+ "icon_id": "18174963",
+ "name": "双箭头,双角符,右",
+ "font_class": "double-arrow-right-full",
+ "unicode": "ea50",
+ "unicode_decimal": 59984
+ },
+ {
+ "icon_id": "41850062",
+ "name": "Ctrl-copy",
+ "font_class": "Ctrl-copy",
+ "unicode": "eeac",
+ "unicode_decimal": 61100
+ },
+ {
+ "icon_id": "2698993",
+ "name": "No data",
+ "font_class": "No-data",
+ "unicode": "e692",
+ "unicode_decimal": 59026
+ },
+ {
+ "icon_id": "2986854",
+ "name": "暂无数据",
+ "font_class": "zanwushuju1",
+ "unicode": "e60c",
+ "unicode_decimal": 58892
+ },
+ {
+ "icon_id": "7700160",
+ "name": "暂无数据",
+ "font_class": "zanwushuju",
+ "unicode": "e6da",
+ "unicode_decimal": 59098
+ },
+ {
+ "icon_id": "9897578",
+ "name": "暂无数据",
+ "font_class": "zanwushuju5",
+ "unicode": "e693",
+ "unicode_decimal": 59027
+ },
+ {
+ "icon_id": "11363720",
+ "name": "暂无数据",
+ "font_class": "zanwushuju7",
+ "unicode": "e8d7",
+ "unicode_decimal": 59607
+ },
+ {
+ "icon_id": "15812601",
+ "name": "暂无数据",
+ "font_class": "zanwushuju10",
+ "unicode": "e695",
+ "unicode_decimal": 59029
+ },
+ {
+ "icon_id": "37985387",
+ "name": "暂无数据线",
+ "font_class": "zanwushujuxian",
+ "unicode": "e8d8",
+ "unicode_decimal": 59608
+ },
+ {
+ "icon_id": "5127345",
+ "name": "github",
+ "font_class": "github",
+ "unicode": "e8d6",
+ "unicode_decimal": 59606
+ },
+ {
+ "icon_id": "7617119",
+ "name": "github",
+ "font_class": "github1",
+ "unicode": "e603",
+ "unicode_decimal": 58883
+ },
+ {
+ "icon_id": "36847909",
+ "name": "回车",
+ "font_class": "huiche1",
+ "unicode": "e6e6",
+ "unicode_decimal": 59110
+ },
+ {
+ "icon_id": "25498978",
+ "name": "command",
+ "font_class": "command1",
+ "unicode": "e9ab",
+ "unicode_decimal": 59819
+ },
+ {
+ "icon_id": "27757905",
+ "name": "背景色填充",
+ "font_class": "beijingsetianchong",
+ "unicode": "e691",
+ "unicode_decimal": 59025
+ },
+ {
+ "icon_id": "36235628",
+ "name": "表情",
+ "font_class": "biaoqing1",
+ "unicode": "e690",
+ "unicode_decimal": 59024
+ },
+ {
+ "icon_id": "27468980",
+ "name": "add-plus",
+ "font_class": "add-plus",
+ "unicode": "e602",
+ "unicode_decimal": 58882
+ },
+ {
+ "icon_id": "27468982",
+ "name": "add-plus-circle",
+ "font_class": "add-plus-circle",
+ "unicode": "e604",
+ "unicode_decimal": 58884
+ },
+ {
+ "icon_id": "27468984",
+ "name": "close-circle",
+ "font_class": "close-circle",
+ "unicode": "e619",
+ "unicode_decimal": 58905
+ },
+ {
+ "icon_id": "27468985",
+ "name": "combine-cells",
+ "font_class": "combine-cells",
+ "unicode": "e61a",
+ "unicode_decimal": 58906
+ },
+ {
+ "icon_id": "27468986",
+ "name": "double-quotes-left",
+ "font_class": "double-quotes-left",
+ "unicode": "e61c",
+ "unicode_decimal": 58908
+ },
+ {
+ "icon_id": "27468987",
+ "name": "columns",
+ "font_class": "columns",
+ "unicode": "e620",
+ "unicode_decimal": 58912
+ },
+ {
+ "icon_id": "27468989",
+ "name": "add-row",
+ "font_class": "add-row",
+ "unicode": "e622",
+ "unicode_decimal": 58914
+ },
+ {
+ "icon_id": "27468990",
+ "name": "add-column",
+ "font_class": "add-column",
+ "unicode": "e623",
+ "unicode_decimal": 58915
+ },
+ {
+ "icon_id": "27468991",
+ "name": "copy",
+ "font_class": "copy",
+ "unicode": "e624",
+ "unicode_decimal": 58916
+ },
+ {
+ "icon_id": "27468992",
+ "name": "add-plus-square",
+ "font_class": "add-plus-square",
+ "unicode": "e625",
+ "unicode_decimal": 58917
+ },
+ {
+ "icon_id": "27468993",
+ "name": "edit-pencil-line-02",
+ "font_class": "edit-pencil-line-02",
+ "unicode": "e626",
+ "unicode_decimal": 58918
+ },
+ {
+ "icon_id": "27468995",
+ "name": "add-minus-square",
+ "font_class": "add-minus-square",
+ "unicode": "e627",
+ "unicode_decimal": 58919
+ },
+ {
+ "icon_id": "27468996",
+ "name": "heading-h1",
+ "font_class": "heading-h1",
+ "unicode": "e628",
+ "unicode_decimal": 58920
+ },
+ {
+ "icon_id": "27468997",
+ "name": "clean",
+ "font_class": "clean",
+ "unicode": "e629",
+ "unicode_decimal": 58921
+ },
+ {
+ "icon_id": "27468998",
+ "name": "crop",
+ "font_class": "crop",
+ "unicode": "e62b",
+ "unicode_decimal": 58923
+ },
+ {
+ "icon_id": "27468999",
+ "name": "clock-in",
+ "font_class": "clock-in",
+ "unicode": "e62c",
+ "unicode_decimal": 58924
+ },
+ {
+ "icon_id": "27469001",
+ "name": "heading-h2",
+ "font_class": "heading-h2",
+ "unicode": "e62e",
+ "unicode_decimal": 58926
+ },
+ {
+ "icon_id": "27469002",
+ "name": "delete-row",
+ "font_class": "delete-row",
+ "unicode": "e62f",
+ "unicode_decimal": 58927
+ },
+ {
+ "icon_id": "27469003",
+ "name": "bold",
+ "font_class": "bold",
+ "unicode": "e630",
+ "unicode_decimal": 58928
+ },
+ {
+ "icon_id": "27469004",
+ "name": "heading-h4",
+ "font_class": "heading-h4",
+ "unicode": "e631",
+ "unicode_decimal": 58929
+ },
+ {
+ "icon_id": "27469005",
+ "name": "expand",
+ "font_class": "expand1",
+ "unicode": "e633",
+ "unicode_decimal": 58931
+ },
+ {
+ "icon_id": "27469006",
+ "name": "image",
+ "font_class": "image",
+ "unicode": "e634",
+ "unicode_decimal": 58932
+ },
+ {
+ "icon_id": "27469007",
+ "name": "italic",
+ "font_class": "italic",
+ "unicode": "e638",
+ "unicode_decimal": 58936
+ },
+ {
+ "icon_id": "27469008",
+ "name": "link-break",
+ "font_class": "link-break",
+ "unicode": "e63a",
+ "unicode_decimal": 58938
+ },
+ {
+ "icon_id": "27469009",
+ "name": "list-remove",
+ "font_class": "list-remove",
+ "unicode": "e63e",
+ "unicode_decimal": 58942
+ },
+ {
+ "icon_id": "27469010",
+ "name": "delete-column",
+ "font_class": "delete-column",
+ "unicode": "e63f",
+ "unicode_decimal": 58943
+ },
+ {
+ "icon_id": "27469011",
+ "name": "edit-pencil-02",
+ "font_class": "edit-pencil-02",
+ "unicode": "e640",
+ "unicode_decimal": 58944
+ },
+ {
+ "icon_id": "27469012",
+ "name": "select-multi",
+ "font_class": "select-multi",
+ "unicode": "e641",
+ "unicode_decimal": 58945
+ },
+ {
+ "icon_id": "27469013",
+ "name": "edit-pencil-01",
+ "font_class": "edit-pencil-01",
+ "unicode": "e642",
+ "unicode_decimal": 58946
+ },
+ {
+ "icon_id": "27469014",
+ "name": "mention-at",
+ "font_class": "mention-at",
+ "unicode": "e643",
+ "unicode_decimal": 58947
+ },
+ {
+ "icon_id": "27469015",
+ "name": "component",
+ "font_class": "component",
+ "unicode": "e646",
+ "unicode_decimal": 58950
+ },
+ {
+ "icon_id": "27469016",
+ "name": "heading-h6",
+ "font_class": "heading-h6",
+ "unicode": "e647",
+ "unicode_decimal": 58951
+ },
+ {
+ "icon_id": "27469017",
+ "name": "more-grid-big",
+ "font_class": "more-grid-big",
+ "unicode": "e648",
+ "unicode_decimal": 58952
+ },
+ {
+ "icon_id": "27469019",
+ "name": "paragraph",
+ "font_class": "paragraph",
+ "unicode": "e649",
+ "unicode_decimal": 58953
+ },
+ {
+ "icon_id": "27469020",
+ "name": "undo-circle",
+ "font_class": "undo-circle",
+ "unicode": "e64b",
+ "unicode_decimal": 58955
+ },
+ {
+ "icon_id": "27469021",
+ "name": "single-quotes-right",
+ "font_class": "single-quotes-right",
+ "unicode": "e64d",
+ "unicode_decimal": 58957
+ },
+ {
+ "icon_id": "27469022",
+ "name": "list-disorder",
+ "font_class": "list-disorder",
+ "unicode": "e64e",
+ "unicode_decimal": 58958
+ },
+ {
+ "icon_id": "27469023",
+ "name": "paperclip-attechment-tilt",
+ "font_class": "paperclip-attechment-tilt",
+ "unicode": "e64f",
+ "unicode_decimal": 58959
+ },
+ {
+ "icon_id": "27469024",
+ "name": "ruler",
+ "font_class": "ruler",
+ "unicode": "e650",
+ "unicode_decimal": 58960
+ },
+ {
+ "icon_id": "27469025",
+ "name": "move-vertical",
+ "font_class": "move-vertical",
+ "unicode": "e652",
+ "unicode_decimal": 58962
+ },
+ {
+ "icon_id": "27469026",
+ "name": "redo-circle",
+ "font_class": "redo-circle",
+ "unicode": "e653",
+ "unicode_decimal": 58963
+ },
+ {
+ "icon_id": "27469027",
+ "name": "code-block",
+ "font_class": "code-block",
+ "unicode": "e654",
+ "unicode_decimal": 58964
+ },
+ {
+ "icon_id": "27469028",
+ "name": "more-grid-small",
+ "font_class": "more-grid-small",
+ "unicode": "e655",
+ "unicode_decimal": 58965
+ },
+ {
+ "icon_id": "27469029",
+ "name": "text-align-center",
+ "font_class": "text-align-center",
+ "unicode": "e656",
+ "unicode_decimal": 58966
+ },
+ {
+ "icon_id": "27469030",
+ "name": "redo",
+ "font_class": "redo",
+ "unicode": "e659",
+ "unicode_decimal": 58969
+ },
+ {
+ "icon_id": "27469031",
+ "name": "underline",
+ "font_class": "underline",
+ "unicode": "e65a",
+ "unicode_decimal": 58970
+ },
+ {
+ "icon_id": "27469032",
+ "name": "undo",
+ "font_class": "undo",
+ "unicode": "e65e",
+ "unicode_decimal": 58974
+ },
+ {
+ "icon_id": "27469035",
+ "name": "edit-pencil-line-01",
+ "font_class": "edit-pencil-line-01",
+ "unicode": "e65f",
+ "unicode_decimal": 58975
+ },
+ {
+ "icon_id": "27469036",
+ "name": "list-check",
+ "font_class": "list-check",
+ "unicode": "e660",
+ "unicode_decimal": 58976
+ },
+ {
+ "icon_id": "27469037",
+ "name": "rows",
+ "font_class": "rows",
+ "unicode": "e661",
+ "unicode_decimal": 58977
+ },
+ {
+ "icon_id": "27469038",
+ "name": "font",
+ "font_class": "font",
+ "unicode": "e663",
+ "unicode_decimal": 58979
+ },
+ {
+ "icon_id": "27469039",
+ "name": "swatches-palette",
+ "font_class": "swatches-palette",
+ "unicode": "e666",
+ "unicode_decimal": 58982
+ },
+ {
+ "icon_id": "27469040",
+ "name": "vote",
+ "font_class": "vote",
+ "unicode": "e667",
+ "unicode_decimal": 58983
+ },
+ {
+ "icon_id": "27469041",
+ "name": "hide",
+ "font_class": "hide",
+ "unicode": "e668",
+ "unicode_decimal": 58984
+ },
+ {
+ "icon_id": "27469042",
+ "name": "double-quotes-right",
+ "font_class": "double-quotes-right",
+ "unicode": "e669",
+ "unicode_decimal": 58985
+ },
+ {
+ "icon_id": "27469044",
+ "name": "heading",
+ "font_class": "heading",
+ "unicode": "e66a",
+ "unicode_decimal": 58986
+ },
+ {
+ "icon_id": "27469045",
+ "name": "list-order",
+ "font_class": "list-order",
+ "unicode": "e66c",
+ "unicode_decimal": 58988
+ },
+ {
+ "icon_id": "27469046",
+ "name": "remove-minus",
+ "font_class": "remove-minus",
+ "unicode": "e66d",
+ "unicode_decimal": 58989
+ },
+ {
+ "icon_id": "27469047",
+ "name": "table-add",
+ "font_class": "table-add",
+ "unicode": "e66e",
+ "unicode_decimal": 58990
+ },
+ {
+ "icon_id": "27469048",
+ "name": "text",
+ "font_class": "text",
+ "unicode": "e66f",
+ "unicode_decimal": 58991
+ },
+ {
+ "icon_id": "27469049",
+ "name": "strikethrough",
+ "font_class": "strikethrough",
+ "unicode": "e670",
+ "unicode_decimal": 58992
+ },
+ {
+ "icon_id": "27469050",
+ "name": "heading-h3",
+ "font_class": "heading-h3",
+ "unicode": "e671",
+ "unicode_decimal": 58993
+ },
+ {
+ "icon_id": "27469051",
+ "name": "layer",
+ "font_class": "layer",
+ "unicode": "e672",
+ "unicode_decimal": 58994
+ },
+ {
+ "icon_id": "27469052",
+ "name": "paperclip-attechment-horizontal",
+ "font_class": "paperclip-attechment-horizontal",
+ "unicode": "e673",
+ "unicode_decimal": 58995
+ },
+ {
+ "icon_id": "27469053",
+ "name": "list-add",
+ "font_class": "list-add",
+ "unicode": "e674",
+ "unicode_decimal": 58996
+ },
+ {
+ "icon_id": "27469054",
+ "name": "layers",
+ "font_class": "layers",
+ "unicode": "e675",
+ "unicode_decimal": 58997
+ },
+ {
+ "icon_id": "27469055",
+ "name": "text-align-justify",
+ "font_class": "text-align-justify",
+ "unicode": "e676",
+ "unicode_decimal": 58998
+ },
+ {
+ "icon_id": "27469056",
+ "name": "path",
+ "font_class": "path",
+ "unicode": "e677",
+ "unicode_decimal": 58999
+ },
+ {
+ "icon_id": "27469057",
+ "name": "move",
+ "font_class": "move",
+ "unicode": "e679",
+ "unicode_decimal": 59001
+ },
+ {
+ "icon_id": "27469058",
+ "name": "link",
+ "font_class": "link",
+ "unicode": "e67a",
+ "unicode_decimal": 59002
+ },
+ {
+ "icon_id": "27469059",
+ "name": "table",
+ "font_class": "table",
+ "unicode": "e67b",
+ "unicode_decimal": 59003
+ },
+ {
+ "icon_id": "27469060",
+ "name": "sort-descending",
+ "font_class": "sort-descending",
+ "unicode": "e67c",
+ "unicode_decimal": 59004
+ },
+ {
+ "icon_id": "27469061",
+ "name": "table-remove",
+ "font_class": "table-remove",
+ "unicode": "e67d",
+ "unicode_decimal": 59005
+ },
+ {
+ "icon_id": "27469062",
+ "name": "text-align-left",
+ "font_class": "text-align-left",
+ "unicode": "e67e",
+ "unicode_decimal": 59006
+ },
+ {
+ "icon_id": "27469063",
+ "name": "heading-h5",
+ "font_class": "heading-h5",
+ "unicode": "e67f",
+ "unicode_decimal": 59007
+ },
+ {
+ "icon_id": "27469064",
+ "name": "sort-ascending",
+ "font_class": "sort-ascending",
+ "unicode": "e680",
+ "unicode_decimal": 59008
+ },
+ {
+ "icon_id": "27469065",
+ "name": "single-quotes-left",
+ "font_class": "single-quotes-left",
+ "unicode": "e681",
+ "unicode_decimal": 59009
+ },
+ {
+ "icon_id": "27469066",
+ "name": "list-checked",
+ "font_class": "list-checked",
+ "unicode": "e682",
+ "unicode_decimal": 59010
+ },
+ {
+ "icon_id": "27469067",
+ "name": "move-horizontal",
+ "font_class": "move-horizontal",
+ "unicode": "e683",
+ "unicode_decimal": 59011
+ },
+ {
+ "icon_id": "27469068",
+ "name": "remove-minus-circle",
+ "font_class": "remove-minus-circle",
+ "unicode": "e684",
+ "unicode_decimal": 59012
+ },
+ {
+ "icon_id": "27469069",
+ "name": "shrink",
+ "font_class": "shrink",
+ "unicode": "e685",
+ "unicode_decimal": 59013
+ },
+ {
+ "icon_id": "27469070",
+ "name": "text-align-right",
+ "font_class": "text-align-right",
+ "unicode": "e686",
+ "unicode_decimal": 59014
+ },
+ {
+ "icon_id": "27469082",
+ "name": "bg-color",
+ "font_class": "bg-color",
+ "unicode": "e687",
+ "unicode_decimal": 59015
+ },
+ {
+ "icon_id": "27469085",
+ "name": "checkbox-check-fill",
+ "font_class": "checkbox-check-fill",
+ "unicode": "e688",
+ "unicode_decimal": 59016
+ },
+ {
+ "icon_id": "27469086",
+ "name": "show",
+ "font_class": "show",
+ "unicode": "e689",
+ "unicode_decimal": 59017
+ },
+ {
+ "icon_id": "27469087",
+ "name": "painter",
+ "font_class": "painter",
+ "unicode": "e68a",
+ "unicode_decimal": 59018
+ },
+ {
+ "icon_id": "27469088",
+ "name": "code-inline",
+ "font_class": "code-inline",
+ "unicode": "e68b",
+ "unicode_decimal": 59019
+ },
+ {
+ "icon_id": "27469094",
+ "name": "font-color",
+ "font_class": "font-color",
+ "unicode": "e68c",
+ "unicode_decimal": 59020
+ },
+ {
+ "icon_id": "27469095",
+ "name": "select-multi",
+ "font_class": "select-multi1",
+ "unicode": "e68e",
+ "unicode_decimal": 59022
+ },
+ {
+ "icon_id": "8875682",
+ "name": "支付失败",
+ "font_class": "zhifushibai",
+ "unicode": "e665",
+ "unicode_decimal": 58981
+ },
+ {
+ "icon_id": "9752794",
+ "name": "成功",
+ "font_class": "chenggong1",
+ "unicode": "e617",
+ "unicode_decimal": 58903
+ },
+ {
+ "icon_id": "10995994",
+ "name": "对号",
+ "font_class": "duihao",
+ "unicode": "e616",
+ "unicode_decimal": 58902
+ },
+ {
+ "icon_id": "16322953",
+ "name": "小程序",
+ "font_class": "xiaochengxu",
+ "unicode": "e7ef",
+ "unicode_decimal": 59375
+ },
+ {
+ "icon_id": "16322954",
+ "name": "奖杯",
+ "font_class": "jiangbei",
+ "unicode": "e7f0",
+ "unicode_decimal": 59376
+ },
+ {
+ "icon_id": "16322955",
+ "name": "麦克风",
+ "font_class": "maikefeng",
+ "unicode": "e7f1",
+ "unicode_decimal": 59377
+ },
+ {
+ "icon_id": "16322956",
+ "name": "摄像头",
+ "font_class": "shexiangtou",
+ "unicode": "e7f2",
+ "unicode_decimal": 59378
+ },
+ {
+ "icon_id": "16322957",
+ "name": "微信",
+ "font_class": "weixin",
+ "unicode": "e7f3",
+ "unicode_decimal": 59379
+ },
+ {
+ "icon_id": "16323017",
+ "name": "缆车",
+ "font_class": "lanche",
+ "unicode": "e7f4",
+ "unicode_decimal": 59380
+ },
+ {
+ "icon_id": "16323018",
+ "name": "地铁",
+ "font_class": "ditie",
+ "unicode": "e7f5",
+ "unicode_decimal": 59381
+ },
+ {
+ "icon_id": "16322109",
+ "name": "播放",
+ "font_class": "bofang",
+ "unicode": "e6e8",
+ "unicode_decimal": 59112
+ },
+ {
+ "icon_id": "16323019",
+ "name": "列车",
+ "font_class": "lieche",
+ "unicode": "e7f6",
+ "unicode_decimal": 59382
+ },
+ {
+ "icon_id": "16322122",
+ "name": "评论",
+ "font_class": "pinglun1",
+ "unicode": "e6e9",
+ "unicode_decimal": 59113
+ },
+ {
+ "icon_id": "16323020",
+ "name": "公交",
+ "font_class": "gongjiao",
+ "unicode": "e7f7",
+ "unicode_decimal": 59383
+ },
+ {
+ "icon_id": "16322137",
+ "name": "话筒",
+ "font_class": "huatong",
+ "unicode": "e6ea",
+ "unicode_decimal": 59114
+ },
+ {
+ "icon_id": "16323021",
+ "name": "观光车",
+ "font_class": "guanguangche",
+ "unicode": "e7f8",
+ "unicode_decimal": 59384
+ },
+ {
+ "icon_id": "16322141",
+ "name": "点赞",
+ "font_class": "dianzan",
+ "unicode": "e6eb",
+ "unicode_decimal": 59115
+ },
+ {
+ "icon_id": "16323022",
+ "name": "自行车",
+ "font_class": "zihangche_2",
+ "unicode": "e7f9",
+ "unicode_decimal": 59385
+ },
+ {
+ "icon_id": "16322146",
+ "name": "福利",
+ "font_class": "fuli",
+ "unicode": "e6ec",
+ "unicode_decimal": 59116
+ },
+ {
+ "icon_id": "16323023",
+ "name": "车",
+ "font_class": "che",
+ "unicode": "e7fa",
+ "unicode_decimal": 59386
+ },
+ {
+ "icon_id": "16322147",
+ "name": "酒店",
+ "font_class": "jiudian",
+ "unicode": "e6ed",
+ "unicode_decimal": 59117
+ },
+ {
+ "icon_id": "16323024",
+ "name": "火车",
+ "font_class": "huoche",
+ "unicode": "e7fb",
+ "unicode_decimal": 59387
+ },
+ {
+ "icon_id": "16322152",
+ "name": "图片",
+ "font_class": "tupian",
+ "unicode": "e6ee",
+ "unicode_decimal": 59118
+ },
+ {
+ "icon_id": "16323025",
+ "name": "快艇",
+ "font_class": "kuaiting",
+ "unicode": "e7fc",
+ "unicode_decimal": 59388
+ },
+ {
+ "icon_id": "16322156",
+ "name": "定位",
+ "font_class": "dingwei",
+ "unicode": "e6ef",
+ "unicode_decimal": 59119
+ },
+ {
+ "icon_id": "16323026",
+ "name": "汽车",
+ "font_class": "qiche_3",
+ "unicode": "e7fd",
+ "unicode_decimal": 59389
+ },
+ {
+ "icon_id": "16322220",
+ "name": "vip",
+ "font_class": "vip",
+ "unicode": "e6f0",
+ "unicode_decimal": 59120
+ },
+ {
+ "icon_id": "16323027",
+ "name": "摩托车",
+ "font_class": "motuoche",
+ "unicode": "e7fe",
+ "unicode_decimal": 59390
+ },
+ {
+ "icon_id": "16322224",
+ "name": "云端",
+ "font_class": "yunduan",
+ "unicode": "e6f2",
+ "unicode_decimal": 59122
+ },
+ {
+ "icon_id": "16323028",
+ "name": "小车",
+ "font_class": "xiaoche",
+ "unicode": "e7ff",
+ "unicode_decimal": 59391
+ },
+ {
+ "icon_id": "16322238",
+ "name": "闹钟",
+ "font_class": "naozhong",
+ "unicode": "e6f3",
+ "unicode_decimal": 59123
+ },
+ {
+ "icon_id": "16323029",
+ "name": "火箭",
+ "font_class": "huojian_2",
+ "unicode": "e800",
+ "unicode_decimal": 59392
+ },
+ {
+ "icon_id": "16322262",
+ "name": "交流",
+ "font_class": "jiaoliu",
+ "unicode": "e6f4",
+ "unicode_decimal": 59124
+ },
+ {
+ "icon_id": "16323030",
+ "name": "轮船",
+ "font_class": "lunchuan",
+ "unicode": "e801",
+ "unicode_decimal": 59393
+ },
+ {
+ "icon_id": "16322265",
+ "name": "收入",
+ "font_class": "shouru",
+ "unicode": "e6f5",
+ "unicode_decimal": 59125
+ },
+ {
+ "icon_id": "16323031",
+ "name": "飞机",
+ "font_class": "feiji_2",
+ "unicode": "e802",
+ "unicode_decimal": 59394
+ },
+ {
+ "icon_id": "16322269",
+ "name": "支出",
+ "font_class": "zhichu",
+ "unicode": "e6f6",
+ "unicode_decimal": 59126
+ },
+ {
+ "icon_id": "16323032",
+ "name": "挖掘机",
+ "font_class": "wajueji",
+ "unicode": "e803",
+ "unicode_decimal": 59395
+ },
+ {
+ "icon_id": "16322277",
+ "name": "时间",
+ "font_class": "shijian1",
+ "unicode": "e6f7",
+ "unicode_decimal": 59127
+ },
+ {
+ "icon_id": "16323033",
+ "name": "马路",
+ "font_class": "malu",
+ "unicode": "e804",
+ "unicode_decimal": 59396
+ },
+ {
+ "icon_id": "16322300",
+ "name": "拍照",
+ "font_class": "paizhao",
+ "unicode": "e6f8",
+ "unicode_decimal": 59128
+ },
+ {
+ "icon_id": "16323035",
+ "name": "直升机",
+ "font_class": "zhishengji",
+ "unicode": "e805",
+ "unicode_decimal": 59397
+ },
+ {
+ "icon_id": "16322312",
+ "name": "汽车",
+ "font_class": "qiche",
+ "unicode": "e6f9",
+ "unicode_decimal": 59129
+ },
+ {
+ "icon_id": "16323036",
+ "name": "帆船",
+ "font_class": "fanchuan",
+ "unicode": "e806",
+ "unicode_decimal": 59398
+ },
+ {
+ "icon_id": "16322372",
+ "name": "水票",
+ "font_class": "shuipiao",
+ "unicode": "e6fa",
+ "unicode_decimal": 59130
+ },
+ {
+ "icon_id": "16323037",
+ "name": "红绿灯",
+ "font_class": "honglvdeng",
+ "unicode": "e807",
+ "unicode_decimal": 59399
+ },
+ {
+ "icon_id": "16322373",
+ "name": "订阅",
+ "font_class": "dingyue",
+ "unicode": "e6fb",
+ "unicode_decimal": 59131
+ },
+ {
+ "icon_id": "16323125",
+ "name": "信号",
+ "font_class": "xinhao1",
+ "unicode": "e808",
+ "unicode_decimal": 59400
+ },
+ {
+ "icon_id": "16322374",
+ "name": "客服",
+ "font_class": "kefu_2",
+ "unicode": "e6fc",
+ "unicode_decimal": 59132
+ },
+ {
+ "icon_id": "16323126",
+ "name": "表情",
+ "font_class": "biaoqing_3",
+ "unicode": "e809",
+ "unicode_decimal": 59401
+ },
+ {
+ "icon_id": "16322375",
+ "name": "注销",
+ "font_class": "tuichudenglu",
+ "unicode": "e6fd",
+ "unicode_decimal": 59133
+ },
+ {
+ "icon_id": "16323127",
+ "name": "禁止",
+ "font_class": "jinzhi",
+ "unicode": "e80a",
+ "unicode_decimal": 59402
+ },
+ {
+ "icon_id": "16322377",
+ "name": "评论",
+ "font_class": "pinglun_2",
+ "unicode": "e6fe",
+ "unicode_decimal": 59134
+ },
+ {
+ "icon_id": "16323128",
+ "name": "表情",
+ "font_class": "biaoqing_2",
+ "unicode": "e80b",
+ "unicode_decimal": 59403
+ },
+ {
+ "icon_id": "16322378",
+ "name": "钱包",
+ "font_class": "qianbao",
+ "unicode": "e6ff",
+ "unicode_decimal": 59135
+ },
+ {
+ "icon_id": "16323129",
+ "name": "书本",
+ "font_class": "shuben_3",
+ "unicode": "e80c",
+ "unicode_decimal": 59404
+ },
+ {
+ "icon_id": "16322379",
+ "name": "搜索",
+ "font_class": "sousuo_2",
+ "unicode": "e700",
+ "unicode_decimal": 59136
+ },
+ {
+ "icon_id": "16323130",
+ "name": "植物",
+ "font_class": "zhiwu",
+ "unicode": "e80d",
+ "unicode_decimal": 59405
+ },
+ {
+ "icon_id": "16322380",
+ "name": "砍价",
+ "font_class": "kanjia",
+ "unicode": "e701",
+ "unicode_decimal": 59137
+ },
+ {
+ "icon_id": "16323131",
+ "name": "桶装水",
+ "font_class": "tongzhuangshui",
+ "unicode": "e80e",
+ "unicode_decimal": 59406
+ },
+ {
+ "icon_id": "16322381",
+ "name": "胶卷",
+ "font_class": "jiaojuan",
+ "unicode": "e702",
+ "unicode_decimal": 59138
+ },
+ {
+ "icon_id": "16323132",
+ "name": "圈子",
+ "font_class": "quanzi_2",
+ "unicode": "e80f",
+ "unicode_decimal": 59407
+ },
+ {
+ "icon_id": "16322382",
+ "name": "客服",
+ "font_class": "kefu",
+ "unicode": "e704",
+ "unicode_decimal": 59140
+ },
+ {
+ "icon_id": "16323133",
+ "name": "指标",
+ "font_class": "zhibiao1",
+ "unicode": "e810",
+ "unicode_decimal": 59408
+ },
+ {
+ "icon_id": "16322383",
+ "name": "编辑",
+ "font_class": "bianji_2",
+ "unicode": "e705",
+ "unicode_decimal": 59141
+ },
+ {
+ "icon_id": "16323134",
+ "name": "星球",
+ "font_class": "xingqiu",
+ "unicode": "e811",
+ "unicode_decimal": 59409
+ },
+ {
+ "icon_id": "16322384",
+ "name": "编辑",
+ "font_class": "bianji2",
+ "unicode": "e706",
+ "unicode_decimal": 59142
+ },
+ {
+ "icon_id": "16323135",
+ "name": "数据",
+ "font_class": "shuju_3",
+ "unicode": "e812",
+ "unicode_decimal": 59410
+ },
+ {
+ "icon_id": "16322385",
+ "name": "完成",
+ "font_class": "wancheng_2",
+ "unicode": "e708",
+ "unicode_decimal": 59144
+ },
+ {
+ "icon_id": "16323136",
+ "name": "相机",
+ "font_class": "xiangji_2",
+ "unicode": "e813",
+ "unicode_decimal": 59411
+ },
+ {
+ "icon_id": "16322386",
+ "name": "我的",
+ "font_class": "wode",
+ "unicode": "e70a",
+ "unicode_decimal": 59146
+ },
+ {
+ "icon_id": "16323137",
+ "name": "笔记",
+ "font_class": "biji",
+ "unicode": "e814",
+ "unicode_decimal": 59412
+ },
+ {
+ "icon_id": "16322387",
+ "name": "标签",
+ "font_class": "biaoqian",
+ "unicode": "e70b",
+ "unicode_decimal": 59147
+ },
+ {
+ "icon_id": "16323138",
+ "name": "钱币",
+ "font_class": "qianbi",
+ "unicode": "e815",
+ "unicode_decimal": 59413
+ },
+ {
+ "icon_id": "16322388",
+ "name": "服务",
+ "font_class": "fuwu",
+ "unicode": "e70c",
+ "unicode_decimal": 59148
+ },
+ {
+ "icon_id": "16323140",
+ "name": "维修",
+ "font_class": "weixiu_2",
+ "unicode": "e816",
+ "unicode_decimal": 59414
+ },
+ {
+ "icon_id": "16322389",
+ "name": "账号",
+ "font_class": "zhanghao",
+ "unicode": "e70d",
+ "unicode_decimal": 59149
+ },
+ {
+ "icon_id": "16323141",
+ "name": "服装",
+ "font_class": "fuzhuang",
+ "unicode": "e818",
+ "unicode_decimal": 59416
+ },
+ {
+ "icon_id": "16322390",
+ "name": "优惠券",
+ "font_class": "youhuiquan",
+ "unicode": "e70e",
+ "unicode_decimal": 59150
+ },
+ {
+ "icon_id": "16323142",
+ "name": "机器人",
+ "font_class": "jiqiren",
+ "unicode": "e819",
+ "unicode_decimal": 59417
+ },
+ {
+ "icon_id": "16322391",
+ "name": "订单",
+ "font_class": "dingdan",
+ "unicode": "e70f",
+ "unicode_decimal": 59151
+ },
+ {
+ "icon_id": "16323143",
+ "name": "卡片形式",
+ "font_class": "kapianxingshi",
+ "unicode": "e81a",
+ "unicode_decimal": 59418
+ },
+ {
+ "icon_id": "16322392",
+ "name": "搜索",
+ "font_class": "sousuo1",
+ "unicode": "e710",
+ "unicode_decimal": 59152
+ },
+ {
+ "icon_id": "16323144",
+ "name": "书签",
+ "font_class": "shuqian",
+ "unicode": "e81b",
+ "unicode_decimal": 59419
+ },
+ {
+ "icon_id": "16322396",
+ "name": "反馈",
+ "font_class": "fankui",
+ "unicode": "e711",
+ "unicode_decimal": 59153
+ },
+ {
+ "icon_id": "16323145",
+ "name": "闪电",
+ "font_class": "shandian_2",
+ "unicode": "e81c",
+ "unicode_decimal": 59420
+ },
+ {
+ "icon_id": "16322397",
+ "name": "完成",
+ "font_class": "wancheng_3",
+ "unicode": "e712",
+ "unicode_decimal": 59154
+ },
+ {
+ "icon_id": "16323146",
+ "name": "监控",
+ "font_class": "jiankong",
+ "unicode": "e81d",
+ "unicode_decimal": 59421
+ },
+ {
+ "icon_id": "16322399",
+ "name": "收藏",
+ "font_class": "shoucang",
+ "unicode": "e714",
+ "unicode_decimal": 59156
+ },
+ {
+ "icon_id": "16323148",
+ "name": "女",
+ "font_class": "nv",
+ "unicode": "e81e",
+ "unicode_decimal": 59422
+ },
+ {
+ "icon_id": "16322400",
+ "name": "完成",
+ "font_class": "wancheng1",
+ "unicode": "e715",
+ "unicode_decimal": 59157
+ },
+ {
+ "icon_id": "16323149",
+ "name": "男",
+ "font_class": "nan",
+ "unicode": "e81f",
+ "unicode_decimal": 59423
+ },
+ {
+ "icon_id": "16322401",
+ "name": "密码",
+ "font_class": "mima",
+ "unicode": "e716",
+ "unicode_decimal": 59158
+ },
+ {
+ "icon_id": "16323150",
+ "name": "警报",
+ "font_class": "jingbao",
+ "unicode": "e820",
+ "unicode_decimal": 59424
+ },
+ {
+ "icon_id": "16322402",
+ "name": "添加",
+ "font_class": "tianjia",
+ "unicode": "e717",
+ "unicode_decimal": 59159
+ },
+ {
+ "icon_id": "16323151",
+ "name": "温度",
+ "font_class": "wendu",
+ "unicode": "e821",
+ "unicode_decimal": 59425
+ },
+ {
+ "icon_id": "16322404",
+ "name": "充值",
+ "font_class": "chongzhi",
+ "unicode": "e718",
+ "unicode_decimal": 59160
+ },
+ {
+ "icon_id": "16323152",
+ "name": "婴儿",
+ "font_class": "yinger",
+ "unicode": "e822",
+ "unicode_decimal": 59426
+ },
+ {
+ "icon_id": "16322405",
+ "name": "帮助",
+ "font_class": "bangzhu1",
+ "unicode": "e719",
+ "unicode_decimal": 59161
+ },
+ {
+ "icon_id": "16323153",
+ "name": "糖果",
+ "font_class": "tangguo",
+ "unicode": "e823",
+ "unicode_decimal": 59427
+ },
+ {
+ "icon_id": "16322407",
+ "name": "失败",
+ "font_class": "shibai1",
+ "unicode": "e71a",
+ "unicode_decimal": 59162
+ },
+ {
+ "icon_id": "16323154",
+ "name": "树叶",
+ "font_class": "shuye",
+ "unicode": "e824",
+ "unicode_decimal": 59428
+ },
+ {
+ "icon_id": "16322408",
+ "name": "提示",
+ "font_class": "tishi1",
+ "unicode": "e71b",
+ "unicode_decimal": 59163
+ },
+ {
+ "icon_id": "16323155",
+ "name": "钻石",
+ "font_class": "zuanshi",
+ "unicode": "e825",
+ "unicode_decimal": 59429
+ },
+ {
+ "icon_id": "16322409",
+ "name": "删除",
+ "font_class": "shanchu",
+ "unicode": "e71c",
+ "unicode_decimal": 59164
+ },
+ {
+ "icon_id": "16323157",
+ "name": "温度",
+ "font_class": "wendu_2",
+ "unicode": "e826",
+ "unicode_decimal": 59430
+ },
+ {
+ "icon_id": "16322442",
+ "name": "灯泡",
+ "font_class": "dengpao",
+ "unicode": "e71d",
+ "unicode_decimal": 59165
+ },
+ {
+ "icon_id": "16323158",
+ "name": "速度",
+ "font_class": "shandian",
+ "unicode": "e827",
+ "unicode_decimal": 59431
+ },
+ {
+ "icon_id": "16322443",
+ "name": "编辑",
+ "font_class": "bianji_3",
+ "unicode": "e71e",
+ "unicode_decimal": 59166
+ },
+ {
+ "icon_id": "16323160",
+ "name": "书本",
+ "font_class": "shuben",
+ "unicode": "e828",
+ "unicode_decimal": 59432
+ },
+ {
+ "icon_id": "16322444",
+ "name": "优惠券",
+ "font_class": "youhuiquan_2",
+ "unicode": "e71f",
+ "unicode_decimal": 59167
+ },
+ {
+ "icon_id": "16350216",
+ "name": "时限",
+ "font_class": "shixian",
+ "unicode": "e829",
+ "unicode_decimal": 59433
+ },
+ {
+ "icon_id": "16322445",
+ "name": "发明",
+ "font_class": "faming",
+ "unicode": "e720",
+ "unicode_decimal": 59168
+ },
+ {
+ "icon_id": "16350217",
+ "name": "数据2",
+ "font_class": "shuju2",
+ "unicode": "e82a",
+ "unicode_decimal": 59434
+ },
+ {
+ "icon_id": "16322447",
+ "name": "统计",
+ "font_class": "tongji",
+ "unicode": "e721",
+ "unicode_decimal": 59169
+ },
+ {
+ "icon_id": "16350218",
+ "name": "皇冠",
+ "font_class": "huangguan",
+ "unicode": "e82b",
+ "unicode_decimal": 59435
+ },
+ {
+ "icon_id": "16322448",
+ "name": "酒店",
+ "font_class": "jiudian_2",
+ "unicode": "e722",
+ "unicode_decimal": 59170
+ },
+ {
+ "icon_id": "16350219",
+ "name": "美术",
+ "font_class": "meishu",
+ "unicode": "e82c",
+ "unicode_decimal": 59436
+ },
+ {
+ "icon_id": "16322449",
+ "name": "分类",
+ "font_class": "fenlei",
+ "unicode": "e723",
+ "unicode_decimal": 59171
+ },
+ {
+ "icon_id": "16350220",
+ "name": "更多2",
+ "font_class": "gengduo21",
+ "unicode": "e82d",
+ "unicode_decimal": 59437
+ },
+ {
+ "icon_id": "16322450",
+ "name": "团队",
+ "font_class": "tuandui",
+ "unicode": "e724",
+ "unicode_decimal": 59172
+ },
+ {
+ "icon_id": "16350221",
+ "name": "邀请人2",
+ "font_class": "yaoqingren2",
+ "unicode": "e82e",
+ "unicode_decimal": 59438
+ },
+ {
+ "icon_id": "16322452",
+ "name": "文件",
+ "font_class": "wenjian",
+ "unicode": "e726",
+ "unicode_decimal": 59174
+ },
+ {
+ "icon_id": "16350222",
+ "name": "邀请人",
+ "font_class": "yaoqingren",
+ "unicode": "e82f",
+ "unicode_decimal": 59439
+ },
+ {
+ "icon_id": "16322453",
+ "name": "维修",
+ "font_class": "weixiu",
+ "unicode": "e727",
+ "unicode_decimal": 59175
+ },
+ {
+ "icon_id": "16350223",
+ "name": "团队4",
+ "font_class": "tuandui4",
+ "unicode": "e830",
+ "unicode_decimal": 59440
+ },
+ {
+ "icon_id": "16322454",
+ "name": "资源",
+ "font_class": "ziyuan1",
+ "unicode": "e728",
+ "unicode_decimal": 59176
+ },
+ {
+ "icon_id": "16350224",
+ "name": "团队3",
+ "font_class": "tuandui3",
+ "unicode": "e831",
+ "unicode_decimal": 59441
+ },
+ {
+ "icon_id": "16322455",
+ "name": "首页",
+ "font_class": "shouye1",
+ "unicode": "e729",
+ "unicode_decimal": 59177
+ },
+ {
+ "icon_id": "16350225",
+ "name": "完成2",
+ "font_class": "wancheng2",
+ "unicode": "e832",
+ "unicode_decimal": 59442
+ },
+ {
+ "icon_id": "16322456",
+ "name": "文件",
+ "font_class": "wenjian_2",
+ "unicode": "e72a",
+ "unicode_decimal": 59178
+ },
+ {
+ "icon_id": "16350227",
+ "name": "预售",
+ "font_class": "yushou",
+ "unicode": "e833",
+ "unicode_decimal": 59443
+ },
+ {
+ "icon_id": "16322457",
+ "name": "设置",
+ "font_class": "shezhi3",
+ "unicode": "e72b",
+ "unicode_decimal": 59179
+ },
+ {
+ "icon_id": "16350228",
+ "name": "收货",
+ "font_class": "shouhuo",
+ "unicode": "e834",
+ "unicode_decimal": 59444
+ },
+ {
+ "icon_id": "16322458",
+ "name": "转发",
+ "font_class": "zhuanfa",
+ "unicode": "e72d",
+ "unicode_decimal": 59181
+ },
+ {
+ "icon_id": "16350229",
+ "name": "未选中2",
+ "font_class": "weixuanzhong2",
+ "unicode": "e835",
+ "unicode_decimal": 59445
+ },
+ {
+ "icon_id": "16322459",
+ "name": "邮件",
+ "font_class": "youjian",
+ "unicode": "e72e",
+ "unicode_decimal": 59182
+ },
+ {
+ "icon_id": "16350230",
+ "name": "选中2",
+ "font_class": "xuanzhong2",
+ "unicode": "e836",
+ "unicode_decimal": 59446
+ },
+ {
+ "icon_id": "16322460",
+ "name": "定位",
+ "font_class": "dingwei1",
+ "unicode": "e72f",
+ "unicode_decimal": 59183
+ },
+ {
+ "icon_id": "16350231",
+ "name": "减",
+ "font_class": "jian",
+ "unicode": "e837",
+ "unicode_decimal": 59447
+ },
+ {
+ "icon_id": "16322461",
+ "name": "银行卡",
+ "font_class": "yinhangka",
+ "unicode": "e730",
+ "unicode_decimal": 59184
+ },
+ {
+ "icon_id": "16350233",
+ "name": "对",
+ "font_class": "dui",
+ "unicode": "e838",
+ "unicode_decimal": 59448
+ },
+ {
+ "icon_id": "16322462",
+ "name": "首页",
+ "font_class": "shouye_3",
+ "unicode": "e731",
+ "unicode_decimal": 59185
+ },
+ {
+ "icon_id": "16350234",
+ "name": "更多",
+ "font_class": "gengduo",
+ "unicode": "e839",
+ "unicode_decimal": 59449
+ },
+ {
+ "icon_id": "16322463",
+ "name": "收藏",
+ "font_class": "shoucang_2",
+ "unicode": "e732",
+ "unicode_decimal": 59186
+ },
+ {
+ "icon_id": "16350235",
+ "name": "错",
+ "font_class": "cuo",
+ "unicode": "e83a",
+ "unicode_decimal": 59450
+ },
+ {
+ "icon_id": "16322464",
+ "name": "首页",
+ "font_class": "shouye_2",
+ "unicode": "e733",
+ "unicode_decimal": 59187
+ },
+ {
+ "icon_id": "16350236",
+ "name": "更多1",
+ "font_class": "gengduo11",
+ "unicode": "e83b",
+ "unicode_decimal": 59451
+ },
+ {
+ "icon_id": "16322465",
+ "name": "个人",
+ "font_class": "geren",
+ "unicode": "e734",
+ "unicode_decimal": 59188
+ },
+ {
+ "icon_id": "16350237",
+ "name": "门票",
+ "font_class": "menpiao",
+ "unicode": "e83c",
+ "unicode_decimal": 59452
+ },
+ {
+ "icon_id": "16322466",
+ "name": "转发",
+ "font_class": "zhuanfa_2",
+ "unicode": "e735",
+ "unicode_decimal": 59189
+ },
+ {
+ "icon_id": "16350238",
+ "name": "列表形式",
+ "font_class": "liebiaoxingshi",
+ "unicode": "e83d",
+ "unicode_decimal": 59453
+ },
+ {
+ "icon_id": "16322467",
+ "name": "位置",
+ "font_class": "weizhi",
+ "unicode": "e736",
+ "unicode_decimal": 59190
+ },
+ {
+ "icon_id": "16350239",
+ "name": "加",
+ "font_class": "jia",
+ "unicode": "e83e",
+ "unicode_decimal": 59454
+ },
+ {
+ "icon_id": "16322468",
+ "name": "店铺",
+ "font_class": "dianpu",
+ "unicode": "e737",
+ "unicode_decimal": 59191
+ },
+ {
+ "icon_id": "16350303",
+ "name": "未选中",
+ "font_class": "weixuanzhong",
+ "unicode": "e83f",
+ "unicode_decimal": 59455
+ },
+ {
+ "icon_id": "16322469",
+ "name": "扫码",
+ "font_class": "saoma",
+ "unicode": "e738",
+ "unicode_decimal": 59192
+ },
+ {
+ "icon_id": "16350321",
+ "name": "选中",
+ "font_class": "xuanzhong",
+ "unicode": "e840",
+ "unicode_decimal": 59456
+ },
+ {
+ "icon_id": "16322470",
+ "name": "分类",
+ "font_class": "fenlei_3",
+ "unicode": "e739",
+ "unicode_decimal": 59193
+ },
+ {
+ "icon_id": "16352379",
+ "name": "便签",
+ "font_class": "bianqian",
+ "unicode": "e841",
+ "unicode_decimal": 59457
+ },
+ {
+ "icon_id": "16322471",
+ "name": "添加好友",
+ "font_class": "tianjiahaoyou",
+ "unicode": "e73a",
+ "unicode_decimal": 59194
+ },
+ {
+ "icon_id": "16352380",
+ "name": "公益",
+ "font_class": "gongyi",
+ "unicode": "e842",
+ "unicode_decimal": 59458
+ },
+ {
+ "icon_id": "16322472",
+ "name": "分享",
+ "font_class": "fenxiang1",
+ "unicode": "e73b",
+ "unicode_decimal": 59195
+ },
+ {
+ "icon_id": "16352381",
+ "name": "二维码3",
+ "font_class": "erweima3",
+ "unicode": "e843",
+ "unicode_decimal": 59459
+ },
+ {
+ "icon_id": "16322473",
+ "name": "浏览",
+ "font_class": "liulan",
+ "unicode": "e73c",
+ "unicode_decimal": 59196
+ },
+ {
+ "icon_id": "16352382",
+ "name": "二维码2",
+ "font_class": "erweima2",
+ "unicode": "e844",
+ "unicode_decimal": 59460
+ },
+ {
+ "icon_id": "16322474",
+ "name": "不可见",
+ "font_class": "bukejian",
+ "unicode": "e73d",
+ "unicode_decimal": 59197
+ },
+ {
+ "icon_id": "17562597",
+ "name": "沙漏3",
+ "font_class": "shalou3",
+ "unicode": "e845",
+ "unicode_decimal": 59461
+ },
+ {
+ "icon_id": "16322475",
+ "name": "文档",
+ "font_class": "wendang",
+ "unicode": "e73e",
+ "unicode_decimal": 59198
+ },
+ {
+ "icon_id": "17562598",
+ "name": "沙漏2",
+ "font_class": "shalou2",
+ "unicode": "e846",
+ "unicode_decimal": 59462
+ },
+ {
+ "icon_id": "16322476",
+ "name": "扫码",
+ "font_class": "saoma_2",
+ "unicode": "e73f",
+ "unicode_decimal": 59199
+ },
+ {
+ "icon_id": "17562599",
+ "name": "清除2",
+ "font_class": "qingchu2",
+ "unicode": "e847",
+ "unicode_decimal": 59463
+ },
+ {
+ "icon_id": "16322477",
+ "name": "分类",
+ "font_class": "fenlei_2",
+ "unicode": "e740",
+ "unicode_decimal": 59200
+ },
+ {
+ "icon_id": "17562600",
+ "name": "不感兴趣",
+ "font_class": "buganxingqu",
+ "unicode": "e848",
+ "unicode_decimal": 59464
+ },
+ {
+ "icon_id": "16322478",
+ "name": "订阅",
+ "font_class": "dingyue_2",
+ "unicode": "e741",
+ "unicode_decimal": 59201
+ },
+ {
+ "icon_id": "17562601",
+ "name": "编辑6",
+ "font_class": "bianji6",
+ "unicode": "e849",
+ "unicode_decimal": 59465
+ },
+ {
+ "icon_id": "16322479",
+ "name": "数据",
+ "font_class": "shuju",
+ "unicode": "e742",
+ "unicode_decimal": 59202
+ },
+ {
+ "icon_id": "17562602",
+ "name": "文件3",
+ "font_class": "wenjian3",
+ "unicode": "e84a",
+ "unicode_decimal": 59466
+ },
+ {
+ "icon_id": "16322519",
+ "name": "资源",
+ "font_class": "ziyuan_2",
+ "unicode": "e743",
+ "unicode_decimal": 59203
+ },
+ {
+ "icon_id": "17562604",
+ "name": "发票2",
+ "font_class": "fapiao2",
+ "unicode": "e84b",
+ "unicode_decimal": 59467
+ },
+ {
+ "icon_id": "16322520",
+ "name": "订阅",
+ "font_class": "dingyue_3",
+ "unicode": "e744",
+ "unicode_decimal": 59204
+ },
+ {
+ "icon_id": "17562605",
+ "name": "加油2",
+ "font_class": "jiayou2",
+ "unicode": "e84c",
+ "unicode_decimal": 59468
+ },
+ {
+ "icon_id": "16322521",
+ "name": "会员",
+ "font_class": "huiyuan",
+ "unicode": "e745",
+ "unicode_decimal": 59205
+ },
+ {
+ "icon_id": "17562606",
+ "name": "纸",
+ "font_class": "zhi",
+ "unicode": "e84d",
+ "unicode_decimal": 59469
+ },
+ {
+ "icon_id": "16322522",
+ "name": "填写",
+ "font_class": "tianxie",
+ "unicode": "e746",
+ "unicode_decimal": 59206
+ },
+ {
+ "icon_id": "17562607",
+ "name": "个人3",
+ "font_class": "geren3",
+ "unicode": "e84e",
+ "unicode_decimal": 59470
+ },
+ {
+ "icon_id": "16322523",
+ "name": "公告",
+ "font_class": "gonggao",
+ "unicode": "e747",
+ "unicode_decimal": 59207
+ },
+ {
+ "icon_id": "17562608",
+ "name": "个人2",
+ "font_class": "geren2",
+ "unicode": "e84f",
+ "unicode_decimal": 59471
+ },
+ {
+ "icon_id": "16322524",
+ "name": "完成",
+ "font_class": "wancheng_4",
+ "unicode": "e748",
+ "unicode_decimal": 59208
+ },
+ {
+ "icon_id": "17562609",
+ "name": "垃圾桶2",
+ "font_class": "lajitong2",
+ "unicode": "e850",
+ "unicode_decimal": 59472
+ },
+ {
+ "icon_id": "16322525",
+ "name": "打卡",
+ "font_class": "daka",
+ "unicode": "e749",
+ "unicode_decimal": 59209
+ },
+ {
+ "icon_id": "17562610",
+ "name": "设备",
+ "font_class": "shebei",
+ "unicode": "e851",
+ "unicode_decimal": 59473
+ },
+ {
+ "icon_id": "16322526",
+ "name": "我的",
+ "font_class": "wode_2",
+ "unicode": "e74a",
+ "unicode_decimal": 59210
+ },
+ {
+ "icon_id": "17562611",
+ "name": "发票",
+ "font_class": "fapiao",
+ "unicode": "e852",
+ "unicode_decimal": 59474
+ },
+ {
+ "icon_id": "16322527",
+ "name": "筛选",
+ "font_class": "shaixuan_2",
+ "unicode": "e74c",
+ "unicode_decimal": 59212
+ },
+ {
+ "icon_id": "17562612",
+ "name": "监督",
+ "font_class": "jiandu",
+ "unicode": "e853",
+ "unicode_decimal": 59475
+ },
+ {
+ "icon_id": "16322528",
+ "name": "导航",
+ "font_class": "daohang",
+ "unicode": "e74d",
+ "unicode_decimal": 59213
+ },
+ {
+ "icon_id": "17562613",
+ "name": "法律诉讼",
+ "font_class": "falvsusong",
+ "unicode": "e854",
+ "unicode_decimal": 59476
+ },
+ {
+ "icon_id": "16322529",
+ "name": "筛选",
+ "font_class": "shaixuan",
+ "unicode": "e74e",
+ "unicode_decimal": 59214
+ },
+ {
+ "icon_id": "17562614",
+ "name": "个人4",
+ "font_class": "geren4",
+ "unicode": "e855",
+ "unicode_decimal": 59477
+ },
+ {
+ "icon_id": "16322530",
+ "name": "销售",
+ "font_class": "xiaoshou",
+ "unicode": "e74f",
+ "unicode_decimal": 59215
+ },
+ {
+ "icon_id": "17562615",
+ "name": "法律诉讼2",
+ "font_class": "falvsusong2",
+ "unicode": "e856",
+ "unicode_decimal": 59478
+ },
+ {
+ "icon_id": "16322531",
+ "name": "清除",
+ "font_class": "qingchu",
+ "unicode": "e750",
+ "unicode_decimal": 59216
+ },
+ {
+ "icon_id": "17562699",
+ "name": "举报2",
+ "font_class": "jubao2",
+ "unicode": "e857",
+ "unicode_decimal": 59479
+ },
+ {
+ "icon_id": "16322532",
+ "name": "日历",
+ "font_class": "rili",
+ "unicode": "e751",
+ "unicode_decimal": 59217
+ },
+ {
+ "icon_id": "17562700",
+ "name": "举报",
+ "font_class": "jubao",
+ "unicode": "e858",
+ "unicode_decimal": 59480
+ },
+ {
+ "icon_id": "16322533",
+ "name": "返回",
+ "font_class": "fanhui",
+ "unicode": "e752",
+ "unicode_decimal": 59218
+ },
+ {
+ "icon_id": "19267808",
+ "name": "活动_1",
+ "font_class": "huodong_1",
+ "unicode": "e859",
+ "unicode_decimal": 59481
+ },
+ {
+ "icon_id": "16322534",
+ "name": "团队",
+ "font_class": "tuandui_2",
+ "unicode": "e753",
+ "unicode_decimal": 59219
+ },
+ {
+ "icon_id": "19267809",
+ "name": "药品_1",
+ "font_class": "yaopin_1",
+ "unicode": "e85a",
+ "unicode_decimal": 59482
+ },
+ {
+ "icon_id": "16322535",
+ "name": "快递员",
+ "font_class": "kuaidiyuan",
+ "unicode": "e754",
+ "unicode_decimal": 59220
+ },
+ {
+ "icon_id": "19267810",
+ "name": "活动_2",
+ "font_class": "huodong_2",
+ "unicode": "e85b",
+ "unicode_decimal": 59483
+ },
+ {
+ "icon_id": "16322536",
+ "name": "设置",
+ "font_class": "shezhi_2",
+ "unicode": "e755",
+ "unicode_decimal": 59221
+ },
+ {
+ "icon_id": "19267811",
+ "name": "加盟_1",
+ "font_class": "jiameng_1",
+ "unicode": "e85c",
+ "unicode_decimal": 59484
+ },
+ {
+ "icon_id": "16322537",
+ "name": "静音",
+ "font_class": "jingyin",
+ "unicode": "e756",
+ "unicode_decimal": 59222
+ },
+ {
+ "icon_id": "19267812",
+ "name": "进店",
+ "font_class": "jindian",
+ "unicode": "e85d",
+ "unicode_decimal": 59485
+ },
+ {
+ "icon_id": "16322538",
+ "name": "链接",
+ "font_class": "lianjie",
+ "unicode": "e757",
+ "unicode_decimal": 59223
+ },
+ {
+ "icon_id": "19267813",
+ "name": "发现",
+ "font_class": "faxian",
+ "unicode": "e85e",
+ "unicode_decimal": 59486
+ },
+ {
+ "icon_id": "16322539",
+ "name": "评论",
+ "font_class": "pinglun_3",
+ "unicode": "e758",
+ "unicode_decimal": 59224
+ },
+ {
+ "icon_id": "19267814",
+ "name": "充值记录",
+ "font_class": "chongzhijilu",
+ "unicode": "e85f",
+ "unicode_decimal": 59487
+ },
+ {
+ "icon_id": "16322540",
+ "name": "购物",
+ "font_class": "gouwu",
+ "unicode": "e759",
+ "unicode_decimal": 59225
+ },
+ {
+ "icon_id": "19267815",
+ "name": "分类_4",
+ "font_class": "fenlei_4",
+ "unicode": "e860",
+ "unicode_decimal": 59488
+ },
+ {
+ "icon_id": "16322541",
+ "name": "闹钟",
+ "font_class": "naozhong1",
+ "unicode": "e75a",
+ "unicode_decimal": 59226
+ },
+ {
+ "icon_id": "19267816",
+ "name": "加盟_2",
+ "font_class": "jiameng_2",
+ "unicode": "e861",
+ "unicode_decimal": 59489
+ },
+ {
+ "icon_id": "16322542",
+ "name": "添加",
+ "font_class": "tianjia_2",
+ "unicode": "e75b",
+ "unicode_decimal": 59227
+ },
+ {
+ "icon_id": "19267817",
+ "name": "加盟",
+ "font_class": "jiameng",
+ "unicode": "e862",
+ "unicode_decimal": 59490
+ },
+ {
+ "icon_id": "16322543",
+ "name": "提醒",
+ "font_class": "tixing",
+ "unicode": "e75c",
+ "unicode_decimal": 59228
+ },
+ {
+ "icon_id": "19367930",
+ "name": "接诊",
+ "font_class": "jiezhen",
+ "unicode": "e863",
+ "unicode_decimal": 59491
+ },
+ {
+ "icon_id": "16322544",
+ "name": "安全",
+ "font_class": "anquan",
+ "unicode": "e75d",
+ "unicode_decimal": 59229
+ },
+ {
+ "icon_id": "19777817",
+ "name": "上2",
+ "font_class": "shang2",
+ "unicode": "e864",
+ "unicode_decimal": 59492
+ },
+ {
+ "icon_id": "16322545",
+ "name": "医疗",
+ "font_class": "yiliao",
+ "unicode": "e75f",
+ "unicode_decimal": 59231
+ },
+ {
+ "icon_id": "19777818",
+ "name": "右2",
+ "font_class": "you2",
+ "unicode": "e865",
+ "unicode_decimal": 59493
+ },
+ {
+ "icon_id": "16322546",
+ "name": "应聘",
+ "font_class": "yingpin",
+ "unicode": "e761",
+ "unicode_decimal": 59233
+ },
+ {
+ "icon_id": "19777819",
+ "name": "左2",
+ "font_class": "zuo2",
+ "unicode": "e866",
+ "unicode_decimal": 59494
+ },
+ {
+ "icon_id": "16322547",
+ "name": "货品信息",
+ "font_class": "huopinxinxi",
+ "unicode": "e762",
+ "unicode_decimal": 59234
+ },
+ {
+ "icon_id": "19777820",
+ "name": "下2",
+ "font_class": "xia2",
+ "unicode": "e867",
+ "unicode_decimal": 59495
+ },
+ {
+ "icon_id": "16322548",
+ "name": "删除文件",
+ "font_class": "shanchuwenjian",
+ "unicode": "e763",
+ "unicode_decimal": 59235
+ },
+ {
+ "icon_id": "19780622",
+ "name": "点赞2",
+ "font_class": "dianzan2",
+ "unicode": "e868",
+ "unicode_decimal": 59496
+ },
+ {
+ "icon_id": "16322549",
+ "name": "购物车",
+ "font_class": "gouwuche",
+ "unicode": "e764",
+ "unicode_decimal": 59236
+ },
+ {
+ "icon_id": "19780668",
+ "name": "点赞2",
+ "font_class": "dianzan21",
+ "unicode": "e869",
+ "unicode_decimal": 59497
+ },
+ {
+ "icon_id": "16322550",
+ "name": "游戏",
+ "font_class": "youxi",
+ "unicode": "e765",
+ "unicode_decimal": 59237
+ },
+ {
+ "icon_id": "19783202",
+ "name": "勾选",
+ "font_class": "gouxuan",
+ "unicode": "e86a",
+ "unicode_decimal": 59498
+ },
+ {
+ "icon_id": "16322551",
+ "name": "编辑",
+ "font_class": "bianji_5",
+ "unicode": "e766",
+ "unicode_decimal": 59238
+ },
+ {
+ "icon_id": "19784062",
+ "name": "服务3",
+ "font_class": "fuwu3",
+ "unicode": "e86b",
+ "unicode_decimal": 59499
+ },
+ {
+ "icon_id": "16322552",
+ "name": "保存",
+ "font_class": "baocun",
+ "unicode": "e767",
+ "unicode_decimal": 59239
+ },
+ {
+ "icon_id": "19784064",
+ "name": "服务2",
+ "font_class": "fuwu2",
+ "unicode": "e86c",
+ "unicode_decimal": 59500
+ },
+ {
+ "icon_id": "16322554",
+ "name": "添加文件",
+ "font_class": "tianjiawenjian1",
+ "unicode": "e768",
+ "unicode_decimal": 59240
+ },
+ {
+ "icon_id": "19784066",
+ "name": "切换",
+ "font_class": "qiehuan",
+ "unicode": "e86d",
+ "unicode_decimal": 59501
+ },
+ {
+ "icon_id": "16322555",
+ "name": "药品",
+ "font_class": "yaopin",
+ "unicode": "e769",
+ "unicode_decimal": 59241
+ },
+ {
+ "icon_id": "19784067",
+ "name": "团队2",
+ "font_class": "tuandui2",
+ "unicode": "e86e",
+ "unicode_decimal": 59502
+ },
+ {
+ "icon_id": "16322556",
+ "name": "日期",
+ "font_class": "riqi2",
+ "unicode": "e76a",
+ "unicode_decimal": 59242
+ },
+ {
+ "icon_id": "19827832",
+ "name": "问诊",
+ "font_class": "wenzhen",
+ "unicode": "e86f",
+ "unicode_decimal": 59503
+ },
+ {
+ "icon_id": "16322557",
+ "name": "不提醒",
+ "font_class": "butixing",
+ "unicode": "e76b",
+ "unicode_decimal": 59243
+ },
+ {
+ "icon_id": "19827833",
+ "name": "红包3",
+ "font_class": "hongbao3",
+ "unicode": "e870",
+ "unicode_decimal": 59504
+ },
+ {
+ "icon_id": "16322558",
+ "name": "订单列表",
+ "font_class": "dingdanliebiao",
+ "unicode": "e76c",
+ "unicode_decimal": 59244
+ },
+ {
+ "icon_id": "19828073",
+ "name": "供应商",
+ "font_class": "gongyingshang",
+ "unicode": "e871",
+ "unicode_decimal": 59505
+ },
+ {
+ "icon_id": "16322560",
+ "name": "相机",
+ "font_class": "xiangji",
+ "unicode": "e76d",
+ "unicode_decimal": 59245
+ },
+ {
+ "icon_id": "19828074",
+ "name": "服务4",
+ "font_class": "fuwu4",
+ "unicode": "e872",
+ "unicode_decimal": 59506
+ },
+ {
+ "icon_id": "16322561",
+ "name": "学校",
+ "font_class": "xuexiao",
+ "unicode": "e76e",
+ "unicode_decimal": 59246
+ },
+ {
+ "icon_id": "19828075",
+ "name": "公司介绍",
+ "font_class": "gongsijieshao",
+ "unicode": "e873",
+ "unicode_decimal": 59507
+ },
+ {
+ "icon_id": "16322562",
+ "name": "编辑",
+ "font_class": "bianji_4",
+ "unicode": "e76f",
+ "unicode_decimal": 59247
+ },
+ {
+ "icon_id": "19828076",
+ "name": "通知管理",
+ "font_class": "tongzhiguanli",
+ "unicode": "e874",
+ "unicode_decimal": 59508
+ },
+ {
+ "icon_id": "16322563",
+ "name": "拨打",
+ "font_class": "boda",
+ "unicode": "e770",
+ "unicode_decimal": 59248
+ },
+ {
+ "icon_id": "19864049",
+ "name": "显示",
+ "font_class": "xianshi",
+ "unicode": "e875",
+ "unicode_decimal": 59509
+ },
+ {
+ "icon_id": "16322564",
+ "name": "购物袋",
+ "font_class": "gouwudai",
+ "unicode": "e771",
+ "unicode_decimal": 59249
+ },
+ {
+ "icon_id": "19864050",
+ "name": "隐藏",
+ "font_class": "yincang",
+ "unicode": "e876",
+ "unicode_decimal": 59510
+ },
+ {
+ "icon_id": "16322565",
+ "name": "转发",
+ "font_class": "zhuanfa_3",
+ "unicode": "e772",
+ "unicode_decimal": 59250
+ },
+ {
+ "icon_id": "20305042",
+ "name": "填写",
+ "font_class": "tianxie1",
+ "unicode": "e877",
+ "unicode_decimal": 59511
+ },
+ {
+ "icon_id": "16322566",
+ "name": "音乐",
+ "font_class": "yinle",
+ "unicode": "e773",
+ "unicode_decimal": 59251
+ },
+ {
+ "icon_id": "20544891",
+ "name": "精力",
+ "font_class": "jingli",
+ "unicode": "e878",
+ "unicode_decimal": 59512
+ },
+ {
+ "icon_id": "16322567",
+ "name": "收货",
+ "font_class": "huodaofukuan",
+ "unicode": "e774",
+ "unicode_decimal": 59252
+ },
+ {
+ "icon_id": "20885023",
+ "name": "购物车3",
+ "font_class": "gouwuche3",
+ "unicode": "e879",
+ "unicode_decimal": 59513
+ },
+ {
+ "icon_id": "16322568",
+ "name": "商品",
+ "font_class": "shangpin",
+ "unicode": "e775",
+ "unicode_decimal": 59253
+ },
+ {
+ "icon_id": "20885024",
+ "name": "切换语言",
+ "font_class": "qiehuanyuyan",
+ "unicode": "e87a",
+ "unicode_decimal": 59514
+ },
+ {
+ "icon_id": "16322569",
+ "name": "电话",
+ "font_class": "dianhua",
+ "unicode": "e776",
+ "unicode_decimal": 59254
+ },
+ {
+ "icon_id": "21777643",
+ "name": "发布",
+ "font_class": "fabu",
+ "unicode": "e87b",
+ "unicode_decimal": 59515
+ },
+ {
+ "icon_id": "16322570",
+ "name": "当前位置",
+ "font_class": "dangqianweizhi",
+ "unicode": "e777",
+ "unicode_decimal": 59255
+ },
+ {
+ "icon_id": "21777645",
+ "name": "药房",
+ "font_class": "yaofang",
+ "unicode": "e87c",
+ "unicode_decimal": 59516
+ },
+ {
+ "icon_id": "16322571",
+ "name": "视频",
+ "font_class": "shipin",
+ "unicode": "e778",
+ "unicode_decimal": 59256
+ },
+ {
+ "icon_id": "21777647",
+ "name": "首页_8",
+ "font_class": "shouye_8",
+ "unicode": "e87d",
+ "unicode_decimal": 59517
+ },
+ {
+ "icon_id": "16322572",
+ "name": "语音",
+ "font_class": "yuyin",
+ "unicode": "e779",
+ "unicode_decimal": 59257
+ },
+ {
+ "icon_id": "21777648",
+ "name": "电磁阀",
+ "font_class": "diancifa",
+ "unicode": "e87e",
+ "unicode_decimal": 59518
+ },
+ {
+ "icon_id": "16322573",
+ "name": "完成订单",
+ "font_class": "wanchengdingdan",
+ "unicode": "e77a",
+ "unicode_decimal": 59258
+ },
+ {
+ "icon_id": "21777652",
+ "name": "下载_3",
+ "font_class": "xiazai_3",
+ "unicode": "e87f",
+ "unicode_decimal": 59519
+ },
+ {
+ "icon_id": "16322574",
+ "name": "关闭语音",
+ "font_class": "guanbiyuyin",
+ "unicode": "e77b",
+ "unicode_decimal": 59259
+ },
+ {
+ "icon_id": "21777653",
+ "name": "记录_2",
+ "font_class": "jilu_2",
+ "unicode": "e880",
+ "unicode_decimal": 59520
+ },
+ {
+ "icon_id": "16322575",
+ "name": "积分",
+ "font_class": "jifen",
+ "unicode": "e77c",
+ "unicode_decimal": 59260
+ },
+ {
+ "icon_id": "21777655",
+ "name": "药店",
+ "font_class": "yaodian",
+ "unicode": "e881",
+ "unicode_decimal": 59521
+ },
+ {
+ "icon_id": "16322577",
+ "name": "物品",
+ "font_class": "wupin",
+ "unicode": "e77d",
+ "unicode_decimal": 59261
+ },
+ {
+ "icon_id": "21777656",
+ "name": "宠物",
+ "font_class": "chongwu",
+ "unicode": "e882",
+ "unicode_decimal": 59522
+ },
+ {
+ "icon_id": "16322578",
+ "name": "社区",
+ "font_class": "shequ",
+ "unicode": "e77e",
+ "unicode_decimal": 59262
+ },
+ {
+ "icon_id": "21777658",
+ "name": "商品_2",
+ "font_class": "shangpin_2",
+ "unicode": "e883",
+ "unicode_decimal": 59523
+ },
+ {
+ "icon_id": "16322579",
+ "name": "购物",
+ "font_class": "gouwu_2",
+ "unicode": "e77f",
+ "unicode_decimal": 59263
+ },
+ {
+ "icon_id": "21777699",
+ "name": "首页_7",
+ "font_class": "shouye_7",
+ "unicode": "e884",
+ "unicode_decimal": 59524
+ },
+ {
+ "icon_id": "16322580",
+ "name": "关机",
+ "font_class": "guanji1",
+ "unicode": "e780",
+ "unicode_decimal": 59264
+ },
+ {
+ "icon_id": "21777700",
+ "name": "购物车_3",
+ "font_class": "gouwuche_3",
+ "unicode": "e885",
+ "unicode_decimal": 59525
+ },
+ {
+ "icon_id": "16322581",
+ "name": "链接",
+ "font_class": "lianjie_2",
+ "unicode": "e781",
+ "unicode_decimal": 59265
+ },
+ {
+ "icon_id": "21777701",
+ "name": "分类_5",
+ "font_class": "fenlei_5",
+ "unicode": "e886",
+ "unicode_decimal": 59526
+ },
+ {
+ "icon_id": "16322582",
+ "name": "打印",
+ "font_class": "dayin_2",
+ "unicode": "e782",
+ "unicode_decimal": 59266
+ },
+ {
+ "icon_id": "21777702",
+ "name": "我的_4",
+ "font_class": "wode_4",
+ "unicode": "e887",
+ "unicode_decimal": 59527
+ },
+ {
+ "icon_id": "16322583",
+ "name": "垃圾桶",
+ "font_class": "lajitong",
+ "unicode": "e783",
+ "unicode_decimal": 59267
+ },
+ {
+ "icon_id": "21777705",
+ "name": "解锁",
+ "font_class": "jiesuo1",
+ "unicode": "e888",
+ "unicode_decimal": 59528
+ },
+ {
+ "icon_id": "16322584",
+ "name": "货物",
+ "font_class": "huowu",
+ "unicode": "e784",
+ "unicode_decimal": 59268
+ },
+ {
+ "icon_id": "21777706",
+ "name": "钥匙",
+ "font_class": "yuechi",
+ "unicode": "e889",
+ "unicode_decimal": 59529
+ },
+ {
+ "icon_id": "16322585",
+ "name": "打印",
+ "font_class": "dayin",
+ "unicode": "e785",
+ "unicode_decimal": 59269
+ },
+ {
+ "icon_id": "21850514",
+ "name": "购物车_2-fill",
+ "font_class": "gouwuche_2-fill",
+ "unicode": "e88a",
+ "unicode_decimal": 59530
+ },
+ {
+ "icon_id": "16322586",
+ "name": "直播",
+ "font_class": "zhibo",
+ "unicode": "e786",
+ "unicode_decimal": 59270
+ },
+ {
+ "icon_id": "25331663",
+ "name": "审核",
+ "font_class": "shenhe",
+ "unicode": "e88b",
+ "unicode_decimal": 59531
+ },
+ {
+ "icon_id": "16322643",
+ "name": "添加文档",
+ "font_class": "tianjiawendang1",
+ "unicode": "e787",
+ "unicode_decimal": 59271
+ },
+ {
+ "icon_id": "25331664",
+ "name": "审核_2",
+ "font_class": "shenhe_2",
+ "unicode": "e88c",
+ "unicode_decimal": 59532
+ },
+ {
+ "icon_id": "16322664",
+ "name": "删除文档",
+ "font_class": "shanchuwendang",
+ "unicode": "e788",
+ "unicode_decimal": 59272
+ },
+ {
+ "icon_id": "25331689",
+ "name": "本地圈",
+ "font_class": "bendiquan",
+ "unicode": "e88d",
+ "unicode_decimal": 59533
+ },
+ {
+ "icon_id": "16322724",
+ "name": "添加",
+ "font_class": "tianjia_3",
+ "unicode": "e789",
+ "unicode_decimal": 59273
+ },
+ {
+ "icon_id": "25331690",
+ "name": "取水",
+ "font_class": "qushui",
+ "unicode": "e88e",
+ "unicode_decimal": 59534
+ },
+ {
+ "icon_id": "16322727",
+ "name": "删除",
+ "font_class": "shanchu_2",
+ "unicode": "e78a",
+ "unicode_decimal": 59274
+ },
+ {
+ "icon_id": "25331691",
+ "name": "消费",
+ "font_class": "xiaofei",
+ "unicode": "e88f",
+ "unicode_decimal": 59535
+ },
+ {
+ "icon_id": "16322771",
+ "name": "上",
+ "font_class": "shang",
+ "unicode": "e78b",
+ "unicode_decimal": 59275
+ },
+ {
+ "icon_id": "25331692",
+ "name": "目标",
+ "font_class": "mubiao",
+ "unicode": "e890",
+ "unicode_decimal": 59536
+ },
+ {
+ "icon_id": "16322772",
+ "name": "放大",
+ "font_class": "fangda1",
+ "unicode": "e78c",
+ "unicode_decimal": 59276
+ },
+ {
+ "icon_id": "25331693",
+ "name": "船",
+ "font_class": "chuan",
+ "unicode": "e891",
+ "unicode_decimal": 59537
+ },
+ {
+ "icon_id": "16322773",
+ "name": "缩小",
+ "font_class": "suoxiao1",
+ "unicode": "e78d",
+ "unicode_decimal": 59277
+ },
+ {
+ "icon_id": "25331710",
+ "name": "我的_5",
+ "font_class": "wode_5",
+ "unicode": "e892",
+ "unicode_decimal": 59538
+ },
+ {
+ "icon_id": "16322774",
+ "name": "下",
+ "font_class": "xia",
+ "unicode": "e78e",
+ "unicode_decimal": 59278
+ },
+ {
+ "icon_id": "25331711",
+ "name": "拼团",
+ "font_class": "pintuan",
+ "unicode": "e893",
+ "unicode_decimal": 59539
+ },
+ {
+ "icon_id": "16322775",
+ "name": "左",
+ "font_class": "zuo",
+ "unicode": "e78f",
+ "unicode_decimal": 59279
+ },
+ {
+ "icon_id": "25331712",
+ "name": "购物车_5",
+ "font_class": "gouwuche_5",
+ "unicode": "e894",
+ "unicode_decimal": 59540
+ },
+ {
+ "icon_id": "16322776",
+ "name": "连接",
+ "font_class": "lianjie1",
+ "unicode": "e790",
+ "unicode_decimal": 59280
+ },
+ {
+ "icon_id": "25331713",
+ "name": "首页_9",
+ "font_class": "shouye_9",
+ "unicode": "e895",
+ "unicode_decimal": 59541
+ },
+ {
+ "icon_id": "16322777",
+ "name": "全屏",
+ "font_class": "quanping1",
+ "unicode": "e791",
+ "unicode_decimal": 59281
+ },
+ {
+ "icon_id": "25331729",
+ "name": "店铺_3",
+ "font_class": "dianpu_3",
+ "unicode": "e896",
+ "unicode_decimal": 59542
+ },
+ {
+ "icon_id": "16322778",
+ "name": "右",
+ "font_class": "you",
+ "unicode": "e792",
+ "unicode_decimal": 59282
+ },
+ {
+ "icon_id": "25331730",
+ "name": "记录",
+ "font_class": "jilu1",
+ "unicode": "e897",
+ "unicode_decimal": 59543
+ },
+ {
+ "icon_id": "16322779",
+ "name": "刷新",
+ "font_class": "shuaxin1",
+ "unicode": "e793",
+ "unicode_decimal": 59283
+ },
+ {
+ "icon_id": "25331731",
+ "name": "健康",
+ "font_class": "jiankang",
+ "unicode": "e898",
+ "unicode_decimal": 59544
+ },
+ {
+ "icon_id": "16322781",
+ "name": "刷新",
+ "font_class": "shuaxin_2",
+ "unicode": "e794",
+ "unicode_decimal": 59284
+ },
+ {
+ "icon_id": "25331732",
+ "name": "概览",
+ "font_class": "gailan",
+ "unicode": "e899",
+ "unicode_decimal": 59545
+ },
+ {
+ "icon_id": "16322782",
+ "name": "刷新",
+ "font_class": "shuaxin_3",
+ "unicode": "e795",
+ "unicode_decimal": 59285
+ },
+ {
+ "icon_id": "25331754",
+ "name": "反馈_2",
+ "font_class": "fankui_2",
+ "unicode": "e89a",
+ "unicode_decimal": 59546
+ },
+ {
+ "icon_id": "16322783",
+ "name": "交集",
+ "font_class": "jiaoji",
+ "unicode": "e796",
+ "unicode_decimal": 59286
+ },
+ {
+ "icon_id": "25331755",
+ "name": "安全_2",
+ "font_class": "anquan_2",
+ "unicode": "e89b",
+ "unicode_decimal": 59547
+ },
+ {
+ "icon_id": "16322784",
+ "name": "箭头",
+ "font_class": "jiantou_2",
+ "unicode": "e797",
+ "unicode_decimal": 59287
+ },
+ {
+ "icon_id": "25331756",
+ "name": "安全_3",
+ "font_class": "anquan_3",
+ "unicode": "e89c",
+ "unicode_decimal": 59548
+ },
+ {
+ "icon_id": "16322793",
+ "name": "重新授权",
+ "font_class": "zhongxinshouquan",
+ "unicode": "e798",
+ "unicode_decimal": 59288
+ },
+ {
+ "icon_id": "25331766",
+ "name": "直播_2",
+ "font_class": "zhibo_2",
+ "unicode": "e89d",
+ "unicode_decimal": 59549
+ },
+ {
+ "icon_id": "16322850",
+ "name": "上传",
+ "font_class": "shangchuan1",
+ "unicode": "e79b",
+ "unicode_decimal": 59291
+ },
+ {
+ "icon_id": "25331767",
+ "name": "顶部",
+ "font_class": "dingbu",
+ "unicode": "e89e",
+ "unicode_decimal": 59550
+ },
+ {
+ "icon_id": "16322851",
+ "name": "下载",
+ "font_class": "xiazai",
+ "unicode": "e79c",
+ "unicode_decimal": 59292
+ },
+ {
+ "icon_id": "25331768",
+ "name": "底部",
+ "font_class": "dibu",
+ "unicode": "e89f",
+ "unicode_decimal": 59551
+ },
+ {
+ "icon_id": "16322873",
+ "name": "向下",
+ "font_class": "xiangxia",
+ "unicode": "e79d",
+ "unicode_decimal": 59293
+ },
+ {
+ "icon_id": "25331773",
+ "name": "右_2",
+ "font_class": "you_2",
+ "unicode": "e8a0",
+ "unicode_decimal": 59552
+ },
+ {
+ "icon_id": "16322874",
+ "name": "转发",
+ "font_class": "zhuanfa_4",
+ "unicode": "e79e",
+ "unicode_decimal": 59294
+ },
+ {
+ "icon_id": "25331774",
+ "name": "上_2",
+ "font_class": "shang_2",
+ "unicode": "e8a1",
+ "unicode_decimal": 59553
+ },
+ {
+ "icon_id": "16322875",
+ "name": "点赞",
+ "font_class": "dianzan_2",
+ "unicode": "e79f",
+ "unicode_decimal": 59295
+ },
+ {
+ "icon_id": "25331775",
+ "name": "左_2",
+ "font_class": "zuo_2",
+ "unicode": "e8a2",
+ "unicode_decimal": 59554
+ },
+ {
+ "icon_id": "16322876",
+ "name": "下载",
+ "font_class": "xiazai_2",
+ "unicode": "e7a0",
+ "unicode_decimal": 59296
+ },
+ {
+ "icon_id": "25331776",
+ "name": "下_2",
+ "font_class": "xia_2",
+ "unicode": "e8a3",
+ "unicode_decimal": 59555
+ },
+ {
+ "icon_id": "16322877",
+ "name": "店铺",
+ "font_class": "dianpu_2",
+ "unicode": "e7a1",
+ "unicode_decimal": 59297
+ },
+ {
+ "icon_id": "25331787",
+ "name": "分类_6",
+ "font_class": "fenlei_6",
+ "unicode": "e8a4",
+ "unicode_decimal": 59556
+ },
+ {
+ "icon_id": "16322878",
+ "name": "向上",
+ "font_class": "xiangshang",
+ "unicode": "e7a2",
+ "unicode_decimal": 59298
+ },
+ {
+ "icon_id": "25331788",
+ "name": "转发_5",
+ "font_class": "zhuanfa_5",
+ "unicode": "e8a5",
+ "unicode_decimal": 59557
+ },
+ {
+ "icon_id": "16322879",
+ "name": "发明",
+ "font_class": "faming-2",
+ "unicode": "e7a3",
+ "unicode_decimal": 59299
+ },
+ {
+ "icon_id": "25331805",
+ "name": "工厂",
+ "font_class": "gongchang",
+ "unicode": "e8a6",
+ "unicode_decimal": 59558
+ },
+ {
+ "icon_id": "16322880",
+ "name": "Wi-Fi",
+ "font_class": "Wi-Fi",
+ "unicode": "e7a4",
+ "unicode_decimal": 59300
+ },
+ {
+ "icon_id": "25331806",
+ "name": "建筑_5",
+ "font_class": "jianzhu_5",
+ "unicode": "e8a7",
+ "unicode_decimal": 59559
+ },
+ {
+ "icon_id": "16322881",
+ "name": "秒杀",
+ "font_class": "miaosha",
+ "unicode": "e7a5",
+ "unicode_decimal": 59301
+ },
+ {
+ "icon_id": "25331807",
+ "name": "建筑_4",
+ "font_class": "jianzhu_4",
+ "unicode": "e8a8",
+ "unicode_decimal": 59560
+ },
+ {
+ "icon_id": "16322882",
+ "name": "徽章",
+ "font_class": "huizhang",
+ "unicode": "e7a6",
+ "unicode_decimal": 59302
+ },
+ {
+ "icon_id": "25331808",
+ "name": "建筑_6",
+ "font_class": "jianzhu_6",
+ "unicode": "e8a9",
+ "unicode_decimal": 59561
+ },
+ {
+ "icon_id": "16322883",
+ "name": "电视",
+ "font_class": "dianshi",
+ "unicode": "e7a7",
+ "unicode_decimal": 59303
+ },
+ {
+ "icon_id": "25331809",
+ "name": "建筑_3",
+ "font_class": "jianzhu_3",
+ "unicode": "e8aa",
+ "unicode_decimal": 59562
+ },
+ {
+ "icon_id": "16322884",
+ "name": "活动",
+ "font_class": "huodong",
+ "unicode": "e7a8",
+ "unicode_decimal": 59304
+ },
+ {
+ "icon_id": "25331810",
+ "name": "教堂",
+ "font_class": "jiaotang",
+ "unicode": "e8ab",
+ "unicode_decimal": 59563
+ },
+ {
+ "icon_id": "16322885",
+ "name": "身份证",
+ "font_class": "shenfenzheng",
+ "unicode": "e7a9",
+ "unicode_decimal": 59305
+ },
+ {
+ "icon_id": "25331811",
+ "name": "建筑_2",
+ "font_class": "jianzhu_2",
+ "unicode": "e8ac",
+ "unicode_decimal": 59564
+ },
+ {
+ "icon_id": "16322886",
+ "name": "热门",
+ "font_class": "remen",
+ "unicode": "e7aa",
+ "unicode_decimal": 59306
+ },
+ {
+ "icon_id": "25331812",
+ "name": "博物馆",
+ "font_class": "bowuguan",
+ "unicode": "e8ad",
+ "unicode_decimal": 59565
+ },
+ {
+ "icon_id": "16322887",
+ "name": "投影仪",
+ "font_class": "touyingyi",
+ "unicode": "e7ab",
+ "unicode_decimal": 59307
+ },
+ {
+ "icon_id": "25331813",
+ "name": "城市_2",
+ "font_class": "chengshi_2",
+ "unicode": "e8ae",
+ "unicode_decimal": 59566
+ },
+ {
+ "icon_id": "16322888",
+ "name": "秒表",
+ "font_class": "miaobiao",
+ "unicode": "e7ac",
+ "unicode_decimal": 59308
+ },
+ {
+ "icon_id": "25331814",
+ "name": "城市_3",
+ "font_class": "chengshi_3",
+ "unicode": "e8af",
+ "unicode_decimal": 59567
+ },
+ {
+ "icon_id": "16322889",
+ "name": "红包",
+ "font_class": "hongbao",
+ "unicode": "e7ad",
+ "unicode_decimal": 59309
+ },
+ {
+ "icon_id": "25331815",
+ "name": "医院",
+ "font_class": "yiyuan",
+ "unicode": "e8b0",
+ "unicode_decimal": 59568
+ },
+ {
+ "icon_id": "16322890",
+ "name": "文章",
+ "font_class": "wenzhang_2",
+ "unicode": "e7ae",
+ "unicode_decimal": 59310
+ },
+ {
+ "icon_id": "25331816",
+ "name": "建筑",
+ "font_class": "jianzhu",
+ "unicode": "e8b1",
+ "unicode_decimal": 59569
+ },
+ {
+ "icon_id": "16322891",
+ "name": "秒表",
+ "font_class": "miaobiao_2",
+ "unicode": "e7af",
+ "unicode_decimal": 59311
+ },
+ {
+ "icon_id": "25331817",
+ "name": "学校_2",
+ "font_class": "xuexiao_2",
+ "unicode": "e8b2",
+ "unicode_decimal": 59570
+ },
+ {
+ "icon_id": "16322892",
+ "name": "钱包",
+ "font_class": "qianbao_2",
+ "unicode": "e7b0",
+ "unicode_decimal": 59312
+ },
+ {
+ "icon_id": "25331818",
+ "name": "城市",
+ "font_class": "chengshi",
+ "unicode": "e8b3",
+ "unicode_decimal": 59571
+ },
+ {
+ "icon_id": "16322893",
+ "name": "定时",
+ "font_class": "dingshi1",
+ "unicode": "e7b1",
+ "unicode_decimal": 59313
+ },
+ {
+ "icon_id": "25331819",
+ "name": "药店_2",
+ "font_class": "yaodian_2",
+ "unicode": "e8b4",
+ "unicode_decimal": 59572
+ },
+ {
+ "icon_id": "16322894",
+ "name": "复制",
+ "font_class": "fuzhi",
+ "unicode": "e7b2",
+ "unicode_decimal": 59314
+ },
+ {
+ "icon_id": "25331827",
+ "name": "纪念碑",
+ "font_class": "jinianbei",
+ "unicode": "e8b5",
+ "unicode_decimal": 59573
+ },
+ {
+ "icon_id": "16322895",
+ "name": "蓝牙",
+ "font_class": "lanya",
+ "unicode": "e7b3",
+ "unicode_decimal": 59315
+ },
+ {
+ "icon_id": "25331841",
+ "name": "纪念碑_2",
+ "font_class": "jinianbei_2",
+ "unicode": "e8b6",
+ "unicode_decimal": 59574
+ },
+ {
+ "icon_id": "16322896",
+ "name": "裁剪",
+ "font_class": "caijian",
+ "unicode": "e7b4",
+ "unicode_decimal": 59316
+ },
+ {
+ "icon_id": "25331851",
+ "name": "电梯_4",
+ "font_class": "dianti_4",
+ "unicode": "e8b7",
+ "unicode_decimal": 59575
+ },
+ {
+ "icon_id": "16322897",
+ "name": "送货",
+ "font_class": "songhuo",
+ "unicode": "e7b5",
+ "unicode_decimal": 59317
+ },
+ {
+ "icon_id": "25331852",
+ "name": "电梯_2",
+ "font_class": "dianti_2",
+ "unicode": "e8b8",
+ "unicode_decimal": 59576
+ },
+ {
+ "icon_id": "16322898",
+ "name": "二维码",
+ "font_class": "erweima_2",
+ "unicode": "e7b6",
+ "unicode_decimal": 59318
+ },
+ {
+ "icon_id": "25331853",
+ "name": "电梯_5",
+ "font_class": "dianti_5",
+ "unicode": "e8b9",
+ "unicode_decimal": 59577
+ },
+ {
+ "icon_id": "16322899",
+ "name": "分销",
+ "font_class": "fenxiao",
+ "unicode": "e7b7",
+ "unicode_decimal": 59319
+ },
+ {
+ "icon_id": "25331854",
+ "name": "电梯_6",
+ "font_class": "dianti_6",
+ "unicode": "e8ba",
+ "unicode_decimal": 59578
+ },
+ {
+ "icon_id": "16322900",
+ "name": "剪刀",
+ "font_class": "jiandao",
+ "unicode": "e7b8",
+ "unicode_decimal": 59320
+ },
+ {
+ "icon_id": "25331855",
+ "name": "电梯",
+ "font_class": "dianti",
+ "unicode": "e8bb",
+ "unicode_decimal": 59579
+ },
+ {
+ "icon_id": "16322901",
+ "name": "设置",
+ "font_class": "shezhi_3",
+ "unicode": "e7b9",
+ "unicode_decimal": 59321
+ },
+ {
+ "icon_id": "25331856",
+ "name": "电梯_3",
+ "font_class": "dianti_3",
+ "unicode": "e8bc",
+ "unicode_decimal": 59580
+ },
+ {
+ "icon_id": "16322902",
+ "name": "管理",
+ "font_class": "guanli",
+ "unicode": "e7ba",
+ "unicode_decimal": 59322
+ },
+ {
+ "icon_id": "25331890",
+ "name": "沙发",
+ "font_class": "shafa",
+ "unicode": "e8bd",
+ "unicode_decimal": 59581
+ },
+ {
+ "icon_id": "16322903",
+ "name": "首页",
+ "font_class": "shouye_4",
+ "unicode": "e7bb",
+ "unicode_decimal": 59323
+ },
+ {
+ "icon_id": "25331895",
+ "name": "柜子",
+ "font_class": "guizi",
+ "unicode": "e8be",
+ "unicode_decimal": 59582
+ },
+ {
+ "icon_id": "16322904",
+ "name": "书本",
+ "font_class": "shuben_2",
+ "unicode": "e7bc",
+ "unicode_decimal": 59324
+ },
+ {
+ "icon_id": "25331965",
+ "name": "边柜",
+ "font_class": "biangui",
+ "unicode": "e8bf",
+ "unicode_decimal": 59583
+ },
+ {
+ "icon_id": "16322905",
+ "name": "电话",
+ "font_class": "dianhua_2",
+ "unicode": "e7bd",
+ "unicode_decimal": 59325
+ },
+ {
+ "icon_id": "25331966",
+ "name": "冰箱",
+ "font_class": "bingxiang",
+ "unicode": "e8c0",
+ "unicode_decimal": 59584
+ },
+ {
+ "icon_id": "16322906",
+ "name": "会员",
+ "font_class": "huiyuan_2",
+ "unicode": "e7be",
+ "unicode_decimal": 59326
+ },
+ {
+ "icon_id": "25331999",
+ "name": "双人床",
+ "font_class": "shuangrenchuang",
+ "unicode": "e8c1",
+ "unicode_decimal": 59585
+ },
+ {
+ "icon_id": "16322907",
+ "name": "起飞",
+ "font_class": "qifei",
+ "unicode": "e7bf",
+ "unicode_decimal": 59327
+ },
+ {
+ "icon_id": "25332002",
+ "name": "单人床",
+ "font_class": "danrenchuang",
+ "unicode": "e8c2",
+ "unicode_decimal": 59586
+ },
+ {
+ "icon_id": "16322908",
+ "name": "首页",
+ "font_class": "shouye_5",
+ "unicode": "e7c0",
+ "unicode_decimal": 59328
+ },
+ {
+ "icon_id": "25332003",
+ "name": "双人床_2",
+ "font_class": "shuangrenchuang_2",
+ "unicode": "e8c3",
+ "unicode_decimal": 59587
+ },
+ {
+ "icon_id": "16322909",
+ "name": "二维码",
+ "font_class": "erweima",
+ "unicode": "e7c1",
+ "unicode_decimal": 59329
+ },
+ {
+ "icon_id": "25332006",
+ "name": "单人床_2",
+ "font_class": "danrenchuang_2",
+ "unicode": "e8c4",
+ "unicode_decimal": 59588
+ },
+ {
+ "icon_id": "16322910",
+ "name": "导航",
+ "font_class": "daohang_2",
+ "unicode": "e7c2",
+ "unicode_decimal": 59330
+ },
+ {
+ "icon_id": "25332007",
+ "name": "被子",
+ "font_class": "beizi",
+ "unicode": "e8c5",
+ "unicode_decimal": 59589
+ },
+ {
+ "icon_id": "16322911",
+ "name": "位置",
+ "font_class": "weizhi_2",
+ "unicode": "e7c3",
+ "unicode_decimal": 59331
+ },
+ {
+ "icon_id": "25332010",
+ "name": "窗帘",
+ "font_class": "chuanglian",
+ "unicode": "e8c6",
+ "unicode_decimal": 59590
+ },
+ {
+ "icon_id": "16322912",
+ "name": "圈子",
+ "font_class": "quanzi",
+ "unicode": "e7c4",
+ "unicode_decimal": 59332
+ },
+ {
+ "icon_id": "25332013",
+ "name": "窗帘_2",
+ "font_class": "chuanglian_2",
+ "unicode": "e8c7",
+ "unicode_decimal": 59591
+ },
+ {
+ "icon_id": "16322913",
+ "name": "起飞",
+ "font_class": "qifei_2",
+ "unicode": "e7c5",
+ "unicode_decimal": 59333
+ },
+ {
+ "icon_id": "25332015",
+ "name": "窗帘_3",
+ "font_class": "chuanglian_3",
+ "unicode": "e8c8",
+ "unicode_decimal": 59592
+ },
+ {
+ "icon_id": "16322914",
+ "name": "积分",
+ "font_class": "jifen_2",
+ "unicode": "e7c6",
+ "unicode_decimal": 59334
+ },
+ {
+ "icon_id": "25332017",
+ "name": "台灯",
+ "font_class": "taideng",
+ "unicode": "e8c9",
+ "unicode_decimal": 59593
+ },
+ {
+ "icon_id": "16322915",
+ "name": "飞机",
+ "font_class": "feiji",
+ "unicode": "e7c7",
+ "unicode_decimal": 59335
+ },
+ {
+ "icon_id": "25332018",
+ "name": "台灯_2",
+ "font_class": "taideng_2",
+ "unicode": "e8ca",
+ "unicode_decimal": 59594
+ },
+ {
+ "icon_id": "16322916",
+ "name": "自行车",
+ "font_class": "zihangche",
+ "unicode": "e7c8",
+ "unicode_decimal": 59336
+ },
+ {
+ "icon_id": "25332023",
+ "name": "衣架",
+ "font_class": "yijia",
+ "unicode": "e8cb",
+ "unicode_decimal": 59595
+ },
+ {
+ "icon_id": "16322917",
+ "name": "骑车",
+ "font_class": "qiche1",
+ "unicode": "e7c9",
+ "unicode_decimal": 59337
+ },
+ {
+ "icon_id": "25332025",
+ "name": "晾衣架",
+ "font_class": "liangyijia",
+ "unicode": "e8cc",
+ "unicode_decimal": 59596
+ },
+ {
+ "icon_id": "16322918",
+ "name": "找车",
+ "font_class": "zhaoche",
+ "unicode": "e7ca",
+ "unicode_decimal": 59338
+ },
+ {
+ "icon_id": "25333402",
+ "name": "QQ",
+ "font_class": "QQ",
+ "unicode": "e8cd",
+ "unicode_decimal": 59597
+ },
+ {
+ "icon_id": "16322919",
+ "name": "公式",
+ "font_class": "gongshi",
+ "unicode": "e7cb",
+ "unicode_decimal": 59339
+ },
+ {
+ "icon_id": "25333403",
+ "name": "计算器",
+ "font_class": "jisuanqi",
+ "unicode": "e8cf",
+ "unicode_decimal": 59599
+ },
+ {
+ "icon_id": "16322920",
+ "name": "篮球",
+ "font_class": "lanqiu",
+ "unicode": "e7cc",
+ "unicode_decimal": 59340
+ },
+ {
+ "icon_id": "25333404",
+ "name": "计算器_2",
+ "font_class": "jisuanqi_2",
+ "unicode": "e8d0",
+ "unicode_decimal": 59600
+ },
+ {
+ "icon_id": "16322921",
+ "name": "结构",
+ "font_class": "jiegou",
+ "unicode": "e7cd",
+ "unicode_decimal": 59341
+ },
+ {
+ "icon_id": "25333406",
+ "name": "计算器_3",
+ "font_class": "jisuanqi_3",
+ "unicode": "e8d1",
+ "unicode_decimal": 59601
+ },
+ {
+ "icon_id": "16322922",
+ "name": "收益",
+ "font_class": "shouyi",
+ "unicode": "e7ce",
+ "unicode_decimal": 59342
+ },
+ {
+ "icon_id": "25333408",
+ "name": "计算器_4",
+ "font_class": "jisuanqi_4",
+ "unicode": "e8d2",
+ "unicode_decimal": 59602
+ },
+ {
+ "icon_id": "16322923",
+ "name": "汽车",
+ "font_class": "qiche_2",
+ "unicode": "e7cf",
+ "unicode_decimal": 59343
+ },
+ {
+ "icon_id": "25334951",
+ "name": "芯片",
+ "font_class": "xinpian",
+ "unicode": "e8d3",
+ "unicode_decimal": 59603
+ },
+ {
+ "icon_id": "16322924",
+ "name": "水",
+ "font_class": "shui",
+ "unicode": "e7d0",
+ "unicode_decimal": 59344
+ },
+ {
+ "icon_id": "25334955",
+ "name": "研发",
+ "font_class": "yanfa",
+ "unicode": "e8d4",
+ "unicode_decimal": 59604
+ },
+ {
+ "icon_id": "16322925",
+ "name": "设置",
+ "font_class": "shezhi_4",
+ "unicode": "e7d1",
+ "unicode_decimal": 59345
+ },
+ {
+ "icon_id": "16322926",
+ "name": "眼睛-方",
+ "font_class": "yanjing-fang",
+ "unicode": "e7d2",
+ "unicode_decimal": 59346
+ },
+ {
+ "icon_id": "16322927",
+ "name": "刷卡",
+ "font_class": "shuaka",
+ "unicode": "e7d3",
+ "unicode_decimal": 59347
+ },
+ {
+ "icon_id": "16322928",
+ "name": "手势",
+ "font_class": "shoushi",
+ "unicode": "e7d4",
+ "unicode_decimal": 59348
+ },
+ {
+ "icon_id": "16322929",
+ "name": "文章",
+ "font_class": "wenzhang",
+ "unicode": "e7d5",
+ "unicode_decimal": 59349
+ },
+ {
+ "icon_id": "16322930",
+ "name": "加油",
+ "font_class": "jiayou",
+ "unicode": "e7d6",
+ "unicode_decimal": 59350
+ },
+ {
+ "icon_id": "16322931",
+ "name": "手表",
+ "font_class": "shoubiao",
+ "unicode": "e7d7",
+ "unicode_decimal": 59351
+ },
+ {
+ "icon_id": "16322932",
+ "name": "机器",
+ "font_class": "jiqi",
+ "unicode": "e7d8",
+ "unicode_decimal": 59352
+ },
+ {
+ "icon_id": "16322933",
+ "name": "数据",
+ "font_class": "shuju_2",
+ "unicode": "e7d9",
+ "unicode_decimal": 59353
+ },
+ {
+ "icon_id": "16322934",
+ "name": "钱袋",
+ "font_class": "qiandai",
+ "unicode": "e7da",
+ "unicode_decimal": 59354
+ },
+ {
+ "icon_id": "16322935",
+ "name": "表情",
+ "font_class": "biaoqing",
+ "unicode": "e7db",
+ "unicode_decimal": 59355
+ },
+ {
+ "icon_id": "16322936",
+ "name": "话题",
+ "font_class": "huati",
+ "unicode": "e7de",
+ "unicode_decimal": 59358
+ },
+ {
+ "icon_id": "16322937",
+ "name": "经济",
+ "font_class": "jingji",
+ "unicode": "e7df",
+ "unicode_decimal": 59359
+ },
+ {
+ "icon_id": "16322938",
+ "name": "眼镜-圆",
+ "font_class": "yanjing-yuan",
+ "unicode": "e7e0",
+ "unicode_decimal": 59360
+ },
+ {
+ "icon_id": "16322939",
+ "name": "趋势",
+ "font_class": "qushi",
+ "unicode": "e7e1",
+ "unicode_decimal": 59361
+ },
+ {
+ "icon_id": "16322940",
+ "name": "上传",
+ "font_class": "shangchuan_2",
+ "unicode": "e7e2",
+ "unicode_decimal": 59362
+ },
+ {
+ "icon_id": "16322941",
+ "name": "手电筒",
+ "font_class": "shoudiantong",
+ "unicode": "e7e3",
+ "unicode_decimal": 59363
+ },
+ {
+ "icon_id": "16322942",
+ "name": "咖啡",
+ "font_class": "kafei",
+ "unicode": "e7e4",
+ "unicode_decimal": 59364
+ },
+ {
+ "icon_id": "16322943",
+ "name": "餐具",
+ "font_class": "canju",
+ "unicode": "e7e5",
+ "unicode_decimal": 59365
+ },
+ {
+ "icon_id": "16322944",
+ "name": "沙漏",
+ "font_class": "shalou1",
+ "unicode": "e7e6",
+ "unicode_decimal": 59366
+ },
+ {
+ "icon_id": "16322945",
+ "name": "餐饮",
+ "font_class": "canyin",
+ "unicode": "e7e7",
+ "unicode_decimal": 59367
+ },
+ {
+ "icon_id": "16322946",
+ "name": "火箭",
+ "font_class": "huojian",
+ "unicode": "e7e8",
+ "unicode_decimal": 59368
+ },
+ {
+ "icon_id": "16322947",
+ "name": "收音机",
+ "font_class": "shouyinji",
+ "unicode": "e7e9",
+ "unicode_decimal": 59369
+ },
+ {
+ "icon_id": "16322948",
+ "name": "冠军",
+ "font_class": "guanjun",
+ "unicode": "e7ea",
+ "unicode_decimal": 59370
+ },
+ {
+ "icon_id": "16322949",
+ "name": "漂流瓶",
+ "font_class": "piaoliuping",
+ "unicode": "e7eb",
+ "unicode_decimal": 59371
+ },
+ {
+ "icon_id": "16322950",
+ "name": "音乐",
+ "font_class": "yinle_2",
+ "unicode": "e7ec",
+ "unicode_decimal": 59372
+ },
+ {
+ "icon_id": "16322951",
+ "name": "魔法",
+ "font_class": "mofa",
+ "unicode": "e7ed",
+ "unicode_decimal": 59373
+ },
+ {
+ "icon_id": "16322952",
+ "name": "网页",
+ "font_class": "wangye",
+ "unicode": "e7ee",
+ "unicode_decimal": 59374
+ },
+ {
+ "icon_id": "11893494",
+ "name": "刷新",
+ "font_class": "shuaxin9",
+ "unicode": "e613",
+ "unicode_decimal": 58899
+ },
+ {
+ "icon_id": "18828423",
+ "name": "刷新",
+ "font_class": "refresh",
+ "unicode": "e614",
+ "unicode_decimal": 58900
+ },
+ {
+ "icon_id": "28715050",
+ "name": "刷新",
+ "font_class": "a-huaban2fuben32",
+ "unicode": "e615",
+ "unicode_decimal": 58901
+ },
+ {
+ "icon_id": "29570623",
+ "name": "刷新",
+ "font_class": "shuaxin12",
+ "unicode": "e6b3",
+ "unicode_decimal": 59059
+ },
+ {
+ "icon_id": "8821265",
+ "name": "地球-01",
+ "font_class": "diqiu-",
+ "unicode": "e611",
+ "unicode_decimal": 58897
+ },
+ {
+ "icon_id": "9220192",
+ "name": "icon_地球",
+ "font_class": "icon_diqiu",
+ "unicode": "e607",
+ "unicode_decimal": 58887
+ },
+ {
+ "icon_id": "10108966",
+ "name": "翻译",
+ "font_class": "fanyi1",
+ "unicode": "e60f",
+ "unicode_decimal": 58895
+ },
+ {
+ "icon_id": "22779598",
+ "name": "翻译",
+ "font_class": "shuyi_fanyi-36",
+ "unicode": "e65c",
+ "unicode_decimal": 58972
+ },
+ {
+ "icon_id": "5698509",
+ "name": "全屏缩小",
+ "font_class": "quanpingsuoxiao",
+ "unicode": "e62d",
+ "unicode_decimal": 58925
+ },
+ {
+ "icon_id": "13693781",
+ "name": "全屏",
+ "font_class": "expand",
+ "unicode": "e8ce",
+ "unicode_decimal": 59598
+ },
+ {
+ "icon_id": "32102712",
+ "name": "定时",
+ "font_class": "dingshi",
+ "unicode": "e6e4",
+ "unicode_decimal": 59108
+ },
+ {
+ "icon_id": "32102715",
+ "name": "电量",
+ "font_class": "dianliang",
+ "unicode": "e6e5",
+ "unicode_decimal": 59109
+ },
+ {
+ "icon_id": "32101964",
+ "name": "左对齐",
+ "font_class": "zuoduiqi",
+ "unicode": "e6ba",
+ "unicode_decimal": 59066
+ },
+ {
+ "icon_id": "32102039",
+ "name": "疑问",
+ "font_class": "yiwen",
+ "unicode": "e6bb",
+ "unicode_decimal": 59067
+ },
+ {
+ "icon_id": "32102040",
+ "name": "选择文档",
+ "font_class": "xuanzewendang",
+ "unicode": "e6bc",
+ "unicode_decimal": 59068
+ },
+ {
+ "icon_id": "32102041",
+ "name": "右对齐",
+ "font_class": "youduiqi",
+ "unicode": "e6bd",
+ "unicode_decimal": 59069
+ },
+ {
+ "icon_id": "32102043",
+ "name": "循环",
+ "font_class": "xunhuan",
+ "unicode": "e6be",
+ "unicode_decimal": 59070
+ },
+ {
+ "icon_id": "32102163",
+ "name": "编辑",
+ "font_class": "bianji1",
+ "unicode": "e6bf",
+ "unicode_decimal": 59071
+ },
+ {
+ "icon_id": "32102208",
+ "name": "修改",
+ "font_class": "xiugai",
+ "unicode": "e6c0",
+ "unicode_decimal": 59072
+ },
+ {
+ "icon_id": "32102211",
+ "name": "信号",
+ "font_class": "xinhao",
+ "unicode": "e6c1",
+ "unicode_decimal": 59073
+ },
+ {
+ "icon_id": "32102230",
+ "name": "消息",
+ "font_class": "xiaoxi",
+ "unicode": "e6c2",
+ "unicode_decimal": 59074
+ },
+ {
+ "icon_id": "32102250",
+ "name": "下载2",
+ "font_class": "xiazai2",
+ "unicode": "e6c3",
+ "unicode_decimal": 59075
+ },
+ {
+ "icon_id": "32102294",
+ "name": "添加文件",
+ "font_class": "tianjiawenjian",
+ "unicode": "e6c4",
+ "unicode_decimal": 59076
+ },
+ {
+ "icon_id": "32102296",
+ "name": "添加文档",
+ "font_class": "tianjiawendang",
+ "unicode": "e6c5",
+ "unicode_decimal": 59077
+ },
+ {
+ "icon_id": "32102301",
+ "name": "添加2",
+ "font_class": "tianjia2",
+ "unicode": "e6c6",
+ "unicode_decimal": 59078
+ },
+ {
+ "icon_id": "32102303",
+ "name": "添加1",
+ "font_class": "tianjia1",
+ "unicode": "e6c7",
+ "unicode_decimal": 59079
+ },
+ {
+ "icon_id": "32102307",
+ "name": "提醒1",
+ "font_class": "tixing1",
+ "unicode": "e6c8",
+ "unicode_decimal": 59080
+ },
+ {
+ "icon_id": "32102393",
+ "name": "提示",
+ "font_class": "tishi",
+ "unicode": "e6c9",
+ "unicode_decimal": 59081
+ },
+ {
+ "icon_id": "32102395",
+ "name": "缩小",
+ "font_class": "suoxiao",
+ "unicode": "e6ca",
+ "unicode_decimal": 59082
+ },
+ {
+ "icon_id": "32102397",
+ "name": "搜索",
+ "font_class": "sousuo",
+ "unicode": "e6cb",
+ "unicode_decimal": 59083
+ },
+ {
+ "icon_id": "32102403",
+ "name": "首页",
+ "font_class": "shouye",
+ "unicode": "e6cc",
+ "unicode_decimal": 59084
+ },
+ {
+ "icon_id": "32102422",
+ "name": "收起",
+ "font_class": "shouqi",
+ "unicode": "e6cd",
+ "unicode_decimal": 59085
+ },
+ {
+ "icon_id": "32102429",
+ "name": "时间",
+ "font_class": "shijian",
+ "unicode": "e6ce",
+ "unicode_decimal": 59086
+ },
+ {
+ "icon_id": "32102433",
+ "name": "审批",
+ "font_class": "shenpi",
+ "unicode": "e6cf",
+ "unicode_decimal": 59087
+ },
+ {
+ "icon_id": "32102436",
+ "name": "设置",
+ "font_class": "shezhi2",
+ "unicode": "e6d0",
+ "unicode_decimal": 59088
+ },
+ {
+ "icon_id": "32102450",
+ "name": "上传",
+ "font_class": "shangchuan",
+ "unicode": "e6d1",
+ "unicode_decimal": 59089
+ },
+ {
+ "icon_id": "32102458",
+ "name": "删减文件",
+ "font_class": "shanjianwenjian",
+ "unicode": "e6d2",
+ "unicode_decimal": 59090
+ },
+ {
+ "icon_id": "32102470",
+ "name": "删减文档",
+ "font_class": "shanjianwendang",
+ "unicode": "e6d3",
+ "unicode_decimal": 59091
+ },
+ {
+ "icon_id": "32102515",
+ "name": "删除2",
+ "font_class": "shanchu2",
+ "unicode": "e6d4",
+ "unicode_decimal": 59092
+ },
+ {
+ "icon_id": "32102527",
+ "name": "全屏",
+ "font_class": "quanping",
+ "unicode": "e6d5",
+ "unicode_decimal": 59093
+ },
+ {
+ "icon_id": "32102531",
+ "name": "列表",
+ "font_class": "liebiao",
+ "unicode": "e6d6",
+ "unicode_decimal": 59094
+ },
+ {
+ "icon_id": "32102562",
+ "name": "解锁",
+ "font_class": "jiesuo",
+ "unicode": "e6d7",
+ "unicode_decimal": 59095
+ },
+ {
+ "icon_id": "32102571",
+ "name": "截图",
+ "font_class": "jietu",
+ "unicode": "e6d8",
+ "unicode_decimal": 59096
+ },
+ {
+ "icon_id": "32102624",
+ "name": "记录",
+ "font_class": "jilu",
+ "unicode": "e6d9",
+ "unicode_decimal": 59097
+ },
+ {
+ "icon_id": "32102626",
+ "name": "关闭1",
+ "font_class": "guanbi1",
+ "unicode": "e6db",
+ "unicode_decimal": 59099
+ },
+ {
+ "icon_id": "32102629",
+ "name": "更多3",
+ "font_class": "gengduo3",
+ "unicode": "e6dc",
+ "unicode_decimal": 59100
+ },
+ {
+ "icon_id": "32102639",
+ "name": "更多2",
+ "font_class": "gengduo2",
+ "unicode": "e6dd",
+ "unicode_decimal": 59101
+ },
+ {
+ "icon_id": "32102643",
+ "name": "更多1",
+ "font_class": "gengduo1",
+ "unicode": "e6df",
+ "unicode_decimal": 59103
+ },
+ {
+ "icon_id": "32102680",
+ "name": "复选",
+ "font_class": "fuxuan",
+ "unicode": "e6e0",
+ "unicode_decimal": 59104
+ },
+ {
+ "icon_id": "32102684",
+ "name": "分享",
+ "font_class": "fenxiang",
+ "unicode": "e6e1",
+ "unicode_decimal": 59105
+ },
+ {
+ "icon_id": "32102688",
+ "name": "分布对齐",
+ "font_class": "fenbuduiqi",
+ "unicode": "e6e2",
+ "unicode_decimal": 59106
+ },
+ {
+ "icon_id": "32102690",
+ "name": "放大",
+ "font_class": "fangda",
+ "unicode": "e6e3",
+ "unicode_decimal": 59107
+ },
+ {
+ "icon_id": "13453308",
+ "name": "关 闭",
+ "font_class": "guanbi",
+ "unicode": "e7dc",
+ "unicode_decimal": 59356
+ },
+ {
+ "icon_id": "13893088",
+ "name": "sidebar",
+ "font_class": "sidebar",
+ "unicode": "e6af",
+ "unicode_decimal": 59055
+ },
+ {
+ "icon_id": "15690649",
+ "name": "侧边-返回",
+ "font_class": "cebian-fanhui",
+ "unicode": "e703",
+ "unicode_decimal": 59139
+ },
+ {
+ "icon_id": "15690888",
+ "name": "选择框-箭头",
+ "font_class": "xuanzekuang-jiantou",
+ "unicode": "e709",
+ "unicode_decimal": 59145
+ },
+ {
+ "icon_id": "485760",
+ "name": "评 论",
+ "font_class": "pinglun",
+ "unicode": "e60d",
+ "unicode_decimal": 58893
+ },
+ {
+ "icon_id": "13953226",
+ "name": "shenglvehao",
+ "font_class": "shenglvehao",
+ "unicode": "e6b1",
+ "unicode_decimal": 59057
+ },
+ {
+ "icon_id": "1793595",
+ "name": "菜单",
+ "font_class": "caidan1",
+ "unicode": "e662",
+ "unicode_decimal": 58978
+ },
+ {
+ "icon_id": "2166872",
+ "name": "显示器",
+ "font_class": "xianshiqi",
+ "unicode": "e6b2",
+ "unicode_decimal": 59058
+ },
+ {
+ "icon_id": "88032",
+ "name": "严重警告",
+ "font_class": "bang2",
+ "unicode": "e600",
+ "unicode_decimal": 58880
+ },
+ {
+ "icon_id": "8651691",
+ "name": "计划工作",
+ "font_class": "jihuagongzuo",
+ "unicode": "e651",
+ "unicode_decimal": 58961
+ },
+ {
+ "icon_id": "1239085",
+ "name": "用户",
+ "font_class": "user",
+ "unicode": "e608",
+ "unicode_decimal": 58888
+ },
+ {
+ "icon_id": "15798135",
+ "name": "照片",
+ "font_class": "zhaopian-copy",
+ "unicode": "e7dd",
+ "unicode_decimal": 59357
+ },
+ {
+ "icon_id": "17692251",
+ "name": "空状态",
+ "font_class": "kongzhuangtai",
+ "unicode": "e707",
+ "unicode_decimal": 59143
+ },
+ {
+ "icon_id": "8652825",
+ "name": "通知",
+ "font_class": "tongzhi1",
+ "unicode": "e64a",
+ "unicode_decimal": 58954
+ },
+ {
+ "icon_id": "11391492",
+ "name": "帮助",
+ "font_class": "bangzhu",
+ "unicode": "e636",
+ "unicode_decimal": 58934
+ }
+ ]
+}
diff --git a/src/assets/icons/system/iconfont.ttf b/src/assets/icons/system/iconfont.ttf
new file mode 100644
index 0000000..f02c2aa
Binary files /dev/null and b/src/assets/icons/system/iconfont.ttf differ
diff --git a/src/assets/icons/system/iconfont.woff b/src/assets/icons/system/iconfont.woff
new file mode 100644
index 0000000..bae5e5c
Binary files /dev/null and b/src/assets/icons/system/iconfont.woff differ
diff --git a/src/assets/icons/system/iconfont.woff2 b/src/assets/icons/system/iconfont.woff2
new file mode 100644
index 0000000..f175b3a
Binary files /dev/null and b/src/assets/icons/system/iconfont.woff2 differ
diff --git a/src/assets/img/3d/icon1.webp b/src/assets/img/3d/icon1.webp
new file mode 100644
index 0000000..631094c
Binary files /dev/null and b/src/assets/img/3d/icon1.webp differ
diff --git a/src/assets/img/3d/icon2.webp b/src/assets/img/3d/icon2.webp
new file mode 100644
index 0000000..a9e4742
Binary files /dev/null and b/src/assets/img/3d/icon2.webp differ
diff --git a/src/assets/img/3d/icon3.webp b/src/assets/img/3d/icon3.webp
new file mode 100644
index 0000000..5e5994d
Binary files /dev/null and b/src/assets/img/3d/icon3.webp differ
diff --git a/src/assets/img/3d/icon4.webp b/src/assets/img/3d/icon4.webp
new file mode 100644
index 0000000..522108f
Binary files /dev/null and b/src/assets/img/3d/icon4.webp differ
diff --git a/src/assets/img/3d/icon5.webp b/src/assets/img/3d/icon5.webp
new file mode 100644
index 0000000..b8f794d
Binary files /dev/null and b/src/assets/img/3d/icon5.webp differ
diff --git a/src/assets/img/3d/icon6.webp b/src/assets/img/3d/icon6.webp
new file mode 100644
index 0000000..c955494
Binary files /dev/null and b/src/assets/img/3d/icon6.webp differ
diff --git a/src/assets/img/3d/icon7.webp b/src/assets/img/3d/icon7.webp
new file mode 100644
index 0000000..8aa26ee
Binary files /dev/null and b/src/assets/img/3d/icon7.webp differ
diff --git a/src/assets/img/3d/icon8.webp b/src/assets/img/3d/icon8.webp
new file mode 100644
index 0000000..609c4ee
Binary files /dev/null and b/src/assets/img/3d/icon8.webp differ
diff --git a/src/assets/img/avatar/avatar.webp b/src/assets/img/avatar/avatar.webp
new file mode 100644
index 0000000..bea307b
Binary files /dev/null and b/src/assets/img/avatar/avatar.webp differ
diff --git a/src/assets/img/avatar/avatar1.webp b/src/assets/img/avatar/avatar1.webp
new file mode 100644
index 0000000..68e256c
Binary files /dev/null and b/src/assets/img/avatar/avatar1.webp differ
diff --git a/src/assets/img/avatar/avatar10.webp b/src/assets/img/avatar/avatar10.webp
new file mode 100644
index 0000000..a813d4c
Binary files /dev/null and b/src/assets/img/avatar/avatar10.webp differ
diff --git a/src/assets/img/avatar/avatar2.webp b/src/assets/img/avatar/avatar2.webp
new file mode 100644
index 0000000..6716e3f
Binary files /dev/null and b/src/assets/img/avatar/avatar2.webp differ
diff --git a/src/assets/img/avatar/avatar3.webp b/src/assets/img/avatar/avatar3.webp
new file mode 100644
index 0000000..7355ad4
Binary files /dev/null and b/src/assets/img/avatar/avatar3.webp differ
diff --git a/src/assets/img/avatar/avatar4.webp b/src/assets/img/avatar/avatar4.webp
new file mode 100644
index 0000000..56a9549
Binary files /dev/null and b/src/assets/img/avatar/avatar4.webp differ
diff --git a/src/assets/img/avatar/avatar5.webp b/src/assets/img/avatar/avatar5.webp
new file mode 100644
index 0000000..f78400c
Binary files /dev/null and b/src/assets/img/avatar/avatar5.webp differ
diff --git a/src/assets/img/avatar/avatar6.webp b/src/assets/img/avatar/avatar6.webp
new file mode 100644
index 0000000..9771b78
Binary files /dev/null and b/src/assets/img/avatar/avatar6.webp differ
diff --git a/src/assets/img/avatar/avatar7.webp b/src/assets/img/avatar/avatar7.webp
new file mode 100644
index 0000000..e5ef6fe
Binary files /dev/null and b/src/assets/img/avatar/avatar7.webp differ
diff --git a/src/assets/img/avatar/avatar8.webp b/src/assets/img/avatar/avatar8.webp
new file mode 100644
index 0000000..b66e48f
Binary files /dev/null and b/src/assets/img/avatar/avatar8.webp differ
diff --git a/src/assets/img/avatar/avatar9.webp b/src/assets/img/avatar/avatar9.webp
new file mode 100644
index 0000000..7974139
Binary files /dev/null and b/src/assets/img/avatar/avatar9.webp differ
diff --git a/src/assets/img/ceremony/hb.png b/src/assets/img/ceremony/hb.png
new file mode 100644
index 0000000..4103324
Binary files /dev/null and b/src/assets/img/ceremony/hb.png differ
diff --git a/src/assets/img/ceremony/sd.png b/src/assets/img/ceremony/sd.png
new file mode 100644
index 0000000..75ec838
Binary files /dev/null and b/src/assets/img/ceremony/sd.png differ
diff --git a/src/assets/img/ceremony/xc.png b/src/assets/img/ceremony/xc.png
new file mode 100644
index 0000000..9c7ab67
Binary files /dev/null and b/src/assets/img/ceremony/xc.png differ
diff --git a/src/assets/img/ceremony/yd.png b/src/assets/img/ceremony/yd.png
new file mode 100644
index 0000000..426912d
Binary files /dev/null and b/src/assets/img/ceremony/yd.png differ
diff --git a/src/assets/img/common/logo.webp b/src/assets/img/common/logo.webp
new file mode 100644
index 0000000..71542b5
Binary files /dev/null and b/src/assets/img/common/logo.webp differ
diff --git a/src/assets/img/cover/img1.webp b/src/assets/img/cover/img1.webp
new file mode 100644
index 0000000..ebcd0c5
Binary files /dev/null and b/src/assets/img/cover/img1.webp differ
diff --git a/src/assets/img/cover/img10.webp b/src/assets/img/cover/img10.webp
new file mode 100644
index 0000000..c6f53e3
Binary files /dev/null and b/src/assets/img/cover/img10.webp differ
diff --git a/src/assets/img/cover/img2.webp b/src/assets/img/cover/img2.webp
new file mode 100644
index 0000000..747580f
Binary files /dev/null and b/src/assets/img/cover/img2.webp differ
diff --git a/src/assets/img/cover/img3.webp b/src/assets/img/cover/img3.webp
new file mode 100644
index 0000000..4fbe638
Binary files /dev/null and b/src/assets/img/cover/img3.webp differ
diff --git a/src/assets/img/cover/img4.webp b/src/assets/img/cover/img4.webp
new file mode 100644
index 0000000..2dd1139
Binary files /dev/null and b/src/assets/img/cover/img4.webp differ
diff --git a/src/assets/img/cover/img5.webp b/src/assets/img/cover/img5.webp
new file mode 100644
index 0000000..392f0bd
Binary files /dev/null and b/src/assets/img/cover/img5.webp differ
diff --git a/src/assets/img/cover/img6.webp b/src/assets/img/cover/img6.webp
new file mode 100644
index 0000000..bf3537a
Binary files /dev/null and b/src/assets/img/cover/img6.webp differ
diff --git a/src/assets/img/cover/img7.webp b/src/assets/img/cover/img7.webp
new file mode 100644
index 0000000..bebbade
Binary files /dev/null and b/src/assets/img/cover/img7.webp differ
diff --git a/src/assets/img/cover/img8.webp b/src/assets/img/cover/img8.webp
new file mode 100644
index 0000000..0b38bfc
Binary files /dev/null and b/src/assets/img/cover/img8.webp differ
diff --git a/src/assets/img/cover/img9.webp b/src/assets/img/cover/img9.webp
new file mode 100644
index 0000000..b87cca6
Binary files /dev/null and b/src/assets/img/cover/img9.webp differ
diff --git a/src/assets/img/draw/draw1.png b/src/assets/img/draw/draw1.png
new file mode 100644
index 0000000..da5d87a
Binary files /dev/null and b/src/assets/img/draw/draw1.png differ
diff --git a/src/assets/img/favicon.ico b/src/assets/img/favicon.ico
new file mode 100644
index 0000000..21e7063
Binary files /dev/null and b/src/assets/img/favicon.ico differ
diff --git a/src/assets/img/lock/lock_screen_1.webp b/src/assets/img/lock/lock_screen_1.webp
new file mode 100644
index 0000000..95a3c36
Binary files /dev/null and b/src/assets/img/lock/lock_screen_1.webp differ
diff --git a/src/assets/img/login/lf_bg.webp b/src/assets/img/login/lf_bg.webp
new file mode 100644
index 0000000..9832d24
Binary files /dev/null and b/src/assets/img/login/lf_bg.webp differ
diff --git a/src/assets/img/login/lf_icon1.webp b/src/assets/img/login/lf_icon1.webp
new file mode 100644
index 0000000..c0fdfff
Binary files /dev/null and b/src/assets/img/login/lf_icon1.webp differ
diff --git a/src/assets/img/login/lf_icon2.webp b/src/assets/img/login/lf_icon2.webp
new file mode 100644
index 0000000..5e4f3fd
Binary files /dev/null and b/src/assets/img/login/lf_icon2.webp differ
diff --git a/src/assets/img/safeguard/server.png b/src/assets/img/safeguard/server.png
new file mode 100644
index 0000000..d7eee9d
Binary files /dev/null and b/src/assets/img/safeguard/server.png differ
diff --git a/src/assets/img/settings/menu_layouts/dual_column.png b/src/assets/img/settings/menu_layouts/dual_column.png
new file mode 100644
index 0000000..9b868ca
Binary files /dev/null and b/src/assets/img/settings/menu_layouts/dual_column.png differ
diff --git a/src/assets/img/settings/menu_layouts/horizontal.png b/src/assets/img/settings/menu_layouts/horizontal.png
new file mode 100644
index 0000000..ca779bc
Binary files /dev/null and b/src/assets/img/settings/menu_layouts/horizontal.png differ
diff --git a/src/assets/img/settings/menu_layouts/mixed.png b/src/assets/img/settings/menu_layouts/mixed.png
new file mode 100644
index 0000000..c82b580
Binary files /dev/null and b/src/assets/img/settings/menu_layouts/mixed.png differ
diff --git a/src/assets/img/settings/menu_layouts/vertical.png b/src/assets/img/settings/menu_layouts/vertical.png
new file mode 100644
index 0000000..16e942b
Binary files /dev/null and b/src/assets/img/settings/menu_layouts/vertical.png differ
diff --git a/src/assets/img/settings/menu_styles/dark.png b/src/assets/img/settings/menu_styles/dark.png
new file mode 100644
index 0000000..e1653b7
Binary files /dev/null and b/src/assets/img/settings/menu_styles/dark.png differ
diff --git a/src/assets/img/settings/menu_styles/design.png b/src/assets/img/settings/menu_styles/design.png
new file mode 100644
index 0000000..7681aa8
Binary files /dev/null and b/src/assets/img/settings/menu_styles/design.png differ
diff --git a/src/assets/img/settings/menu_styles/light.png b/src/assets/img/settings/menu_styles/light.png
new file mode 100644
index 0000000..3007b99
Binary files /dev/null and b/src/assets/img/settings/menu_styles/light.png differ
diff --git a/src/assets/img/settings/theme_styles/dark.png b/src/assets/img/settings/theme_styles/dark.png
new file mode 100644
index 0000000..e8c6e44
Binary files /dev/null and b/src/assets/img/settings/theme_styles/dark.png differ
diff --git a/src/assets/img/settings/theme_styles/light.png b/src/assets/img/settings/theme_styles/light.png
new file mode 100644
index 0000000..6754238
Binary files /dev/null and b/src/assets/img/settings/theme_styles/light.png differ
diff --git a/src/assets/img/settings/theme_styles/system.png b/src/assets/img/settings/theme_styles/system.png
new file mode 100644
index 0000000..6a6baa9
Binary files /dev/null and b/src/assets/img/settings/theme_styles/system.png differ
diff --git a/src/assets/img/state/403.png b/src/assets/img/state/403.png
new file mode 100644
index 0000000..a7e0b40
Binary files /dev/null and b/src/assets/img/state/403.png differ
diff --git a/src/assets/img/state/404.png b/src/assets/img/state/404.png
new file mode 100644
index 0000000..8006171
Binary files /dev/null and b/src/assets/img/state/404.png differ
diff --git a/src/assets/img/state/500.png b/src/assets/img/state/500.png
new file mode 100644
index 0000000..24e3f03
Binary files /dev/null and b/src/assets/img/state/500.png differ
diff --git a/src/assets/img/user/avatar.webp b/src/assets/img/user/avatar.webp
new file mode 100644
index 0000000..6d7234b
Binary files /dev/null and b/src/assets/img/user/avatar.webp differ
diff --git a/src/assets/img/user/bg.webp b/src/assets/img/user/bg.webp
new file mode 100644
index 0000000..762b22d
Binary files /dev/null and b/src/assets/img/user/bg.webp differ
diff --git a/src/assets/styles/app.scss b/src/assets/styles/app.scss
new file mode 100644
index 0000000..7599506
--- /dev/null
+++ b/src/assets/styles/app.scss
@@ -0,0 +1,167 @@
+// 全局样式
+
+@font-face {
+ font-family: 'DMSans';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/DMSans.woff2) format('woff2');
+}
+
+@font-face {
+ font-family: 'Montserrat';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/Montserrat.woff2) format('woff2');
+}
+
+.btn-icon {
+ font-size: 10px;
+}
+
+.el-btn-red {
+ color: #fa6962 !important;
+
+ &:hover {
+ opacity: 0.9;
+ }
+
+ &:active {
+ opacity: 0.7;
+ }
+}
+
+// 顶部进度条颜色
+#nprogress .bar {
+ background-color: color-mix(in srgb, var(--main-color) 65%, white);
+}
+
+// 处理移动端组件兼容性
+@media screen and (max-width: $device-phone) {
+ * {
+ cursor: default !important;
+ }
+}
+
+// 背景滤镜
+*,
+::before,
+::after {
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+}
+
+// 色弱模式
+.color-weak {
+ filter: invert(80%);
+ -webkit-filter: invert(80%);
+}
+
+#noop {
+ display: none;
+}
+
+// 语言切换选中样式
+.langDropDownStyle {
+ // 选中项背景颜色
+ .is-selected {
+ background-color: rgba(var(--art-gray-200-rgb), 0.8) !important;
+ }
+
+ // 语言切换按钮菜单样式优化
+ .lang-btn-item {
+ .el-dropdown-menu__item {
+ padding-left: 13px !important;
+ padding-right: 6px !important;
+ margin-bottom: 3px !important;
+ }
+
+ &:last-child {
+ .el-dropdown-menu__item {
+ margin-bottom: 0 !important;
+ }
+ }
+
+ .menu-txt {
+ min-width: 60px;
+ display: block;
+ }
+
+ i {
+ font-size: 10px;
+ margin-left: 10px;
+ }
+ }
+}
+
+// 盒子默认边框
+.page-content,
+.art-custom-card {
+ border: 1px solid var(--art-card-border) !important;
+}
+
+// 盒子边框
+[data-box-mode='border-mode'] {
+ .page-content,
+ .art-custom-card,
+ .art-table-card {
+ border: 1px solid var(--art-card-border) !important;
+ }
+
+ .layout-sidebar {
+ border-right: 1px solid var(--art-card-border) !important;
+ }
+}
+
+// 盒子阴影
+[data-box-mode='shadow-mode'] {
+ .page-content,
+ .art-custom-card,
+ .art-table-card {
+ box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.04) !important;
+ border: 1px solid rgba(var(--art-gray-300-rgb), 0.3) !important;
+ }
+
+ .layout-sidebar {
+ border-right: 1px solid rgba(var(--art-gray-300-rgb), 0.4) !important;
+ }
+}
+
+// 元素全屏
+.el-full-screen {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ width: 100vw !important;
+ height: 100vh !important;
+ z-index: 500;
+ margin-top: 0;
+ padding: 15px;
+ box-sizing: border-box;
+ background-color: var(--art-main-bg-color);
+
+ .art-table-full-screen {
+ height: 100% !important;
+ }
+}
+
+// 表格卡片
+.art-table-card {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ margin-top: 15px;
+ border-radius: calc(var(--custom-radius) / 2 + 2px) !important;
+
+ .el-card__body {
+ height: 100%;
+ overflow: hidden;
+ }
+}
diff --git a/src/assets/styles/change.scss b/src/assets/styles/change.scss
new file mode 100644
index 0000000..7ea4bbd
--- /dev/null
+++ b/src/assets/styles/change.scss
@@ -0,0 +1,11 @@
+// 主题切换过渡优化,去除不适感
+.theme-change {
+ * {
+ transition: 0s !important;
+ }
+
+ .el-switch__core,
+ .el-switch__action {
+ transition: all 0.3s !important;
+ }
+}
diff --git a/src/assets/styles/dark.scss b/src/assets/styles/dark.scss
new file mode 100644
index 0000000..bf97bed
--- /dev/null
+++ b/src/assets/styles/dark.scss
@@ -0,0 +1,215 @@
+/*
+* 深色主题
+* 单页面移除深色主题 document.getElementsByTagName("html")[0].removeAttribute('class')
+*/
+
+$font-color: rgba(#ffffff, 0.7);
+$background-color: #070707;
+
+/* 覆盖element-plus默认深色背景色 */
+html.dark {
+ // ✅ element-plus
+ // --el-bg-color: $background-color;
+ --el-text-color-regular: $font-color;
+
+ // ✅ 富文本编辑器
+ // 工具栏背景颜色
+ --w-e-toolbar-bg-color: var(--art-main-bg-color);
+ // 输入区域背景颜色
+ --w-e-textarea-bg-color: var(--art-main-bg-color);
+ // 工具栏文字颜色
+ --w-e-toolbar-color: var(--art-text-gray-600);
+ // 选中菜单颜色
+ --w-e-toolbar-active-bg-color: rgba(var(--art-gray-100-rgb), 0.8);
+ // 弹窗边框颜色
+ --w-e-toolbar-border-color: var(--art-border-dashed-color);
+ // 分割线颜色
+ --w-e-textarea-border-color: var(--art-border-dashed-color);
+ // 链接输入框边框颜色
+ --w-e-modal-button-border-color: var(--art-border-dashed-color);
+ // 表格头颜色
+ --w-e-textarea-slight-bg-color: var(--art-color);
+ // 按钮背景颜色
+ --w-e-modal-button-bg-color: var(--art-color);
+}
+
+.dark {
+ color: $font-color !important;
+ background: $background-color !important;
+
+ /* 全局文字颜色 */
+ body {
+ color: $font-color;
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ .lang .btn,
+ .layout-top-bar .user .name,
+ .dark-text {
+ color: $font-color !important;
+ }
+ }
+
+ // 图片降低亮度
+ img {
+ filter: brightness(0.92) saturate(1.25);
+ }
+
+ .editor-wrapper {
+ *:not(pre code *) {
+ color: inherit !important;
+ }
+ }
+
+ .img-cutter {
+ *:not([class^='el-']) {
+ color: inherit !important;
+ }
+ }
+
+ // ✅ 左侧菜单样式
+ .layout-sidebar,
+ .dual-menu {
+ .el-menu-dark {
+ // 选中颜色
+ .el-menu-item.is-active {
+ background: transparent;
+ }
+
+ .el-sub-menu__title {
+ .el-icon {
+ color: var(--art-gray-800) !important;
+ }
+ }
+
+ // 鼠标移入背景色
+ .el-sub-menu__title:hover,
+ .el-menu-item:not(.is-active):hover {
+ background: rgba(var(--art-gray-200-rgb), 0.6) !important;
+ }
+
+ [level-item='2'].is-active:not(.el-menu--collapse) {
+ &.is-active {
+ &:before {
+ margin-left: -10px !important;
+ }
+ }
+ }
+
+ .el-menu:not(.el-menu--collapse) {
+ // 选中颜色
+ .el-menu-item.is-active {
+ &:before {
+ content: '';
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ margin: auto;
+ background: var(--main-color) !important;
+ transition: all 0.2s;
+ margin-left: -18px;
+ }
+ }
+ }
+ }
+ }
+
+ .page-content .article-list .item .left .outer > div {
+ border-right-color: var(--dark-border-color) !important;
+ }
+
+ // ✅ 富文本编辑器
+ // 分隔线
+ .w-e-bar-divider {
+ background-color: var(--art-gray-300) !important;
+ }
+
+ // 下拉选择框
+ .w-e-select-list {
+ background-color: var(--art-main-bg-color) !important;
+ border: 1px solid var(--art-border-dashed-color) !important;
+ }
+
+ /* 弹出框 */
+ .w-e-drop-panel {
+ border: 1px solid var(--art-border-dashed-color) !important;
+ }
+
+ /* 工具栏菜单 */
+ .w-e-bar-item-group .w-e-bar-item-menus-container {
+ background-color: var(--art-main-bg-color) !important;
+ border: 1px solid var(--art-border-dashed-color) !important;
+ }
+
+ /* 下拉选择框 hover 样式调整 */
+ .w-e-select-list ul li:hover,
+ /* 工具栏 hover 按钮背景颜色 */
+ .w-e-bar-item button:hover {
+ background-color: var(--art-color) !important;
+ }
+
+ /* 代码块 */
+ .w-e-text-container [data-slate-editor] pre > code {
+ background-color: var(--art-gray-100) !important;
+ border: 1px solid var(--art-border-dashed-color) !important;
+ text-shadow: none !important;
+ }
+
+ /* 引用 */
+ .w-e-text-container [data-slate-editor] blockquote {
+ border-left: 4px solid var(--art-gray-200) !important;
+ background-color: var(--art-color);
+ }
+
+ .editor-wrapper {
+ .w-e-text-container [data-slate-editor] .table-container th:last-of-type {
+ border-right: 1px solid var(--art-gray-200) !important;
+ }
+
+ .w-e-modal {
+ background-color: var(--art-color);
+ }
+ }
+
+ // 工作台标签文字颜色
+ .worktab .scroll-view .tabs li {
+ color: var(--art-text-gray-800) !important;
+ }
+
+ // 顶部按钮文字颜色
+ .layout-top-bar .btn-box .btn i,
+ .fast-enter-trigger .btn i {
+ color: var(--art-text-gray-700) !important;
+ }
+}
+
+// 移动端文字颜色
+@media screen and (max-width: $device-phone) {
+ .dark {
+ $font-color: rgba(#ffffff, 0.8);
+ --el-text-color-regular: $font-color !important;
+ color: $font-color !important;
+
+ body {
+ color: $font-color !important;
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ .lang .btn,
+ .layout-top-bar .user .name {
+ color: $font-color !important;
+ }
+ }
+ }
+}
diff --git a/src/assets/styles/el-dark.scss b/src/assets/styles/el-dark.scss
new file mode 100644
index 0000000..2a968a9
--- /dev/null
+++ b/src/assets/styles/el-dark.scss
@@ -0,0 +1,16 @@
+// 自定义Element 暗黑主题
+
+@forward 'element-plus/theme-chalk/src/dark/var.scss' //
+ with (
+ $colors: (
+ //
+ 'white': #ffffff,
+ 'black': #000000,
+ 'success': ('base': #13deb9),
+ 'warning': ('base': #ffae1f),
+ 'danger': ('base': #ff4d4f),
+ 'error': ('base': #fa896b)
+ )
+);
+
+@use 'element-plus/theme-chalk/src/dark/css-vars.scss' as *;
diff --git a/src/assets/styles/el-light.scss b/src/assets/styles/el-light.scss
new file mode 100644
index 0000000..11452ac
--- /dev/null
+++ b/src/assets/styles/el-light.scss
@@ -0,0 +1,34 @@
+// https://github.com/element-plus/element-plus/blob/dev/packages/theme-chalk/src/common/var.scss
+// 自定义Element 亮色主题
+
+@forward 'element-plus/theme-chalk/src/common/var.scss' //
+ with (
+ //
+ $colors: (
+ //
+ 'white': #ffffff,
+ 'black': #000000,
+ 'success': ('base': #13deb9),
+ 'warning': ('base': #ffae1f),
+ 'danger': ('base': #ff4d4f),
+ 'error': ('base': #fa896b)
+ ),
+ $button: (
+ //
+ 'hover-bg-color': var(--el-color-primary-light-9),
+ 'hover-border-color': var(--el-color-primary),
+ 'border-color': var(--el-color-primary),
+ 'text-color': var(--el-color-primary)
+ ),
+ $messagebox: (
+ //
+ 'border-radius': '12px'
+ ),
+ $popover: (
+ //
+ 'padding': '14px',
+ 'border-radius': '10px'
+ )
+);
+
+@use 'element-plus/theme-chalk/src/index.scss' as *;
diff --git a/src/assets/styles/el-ui.scss b/src/assets/styles/el-ui.scss
new file mode 100644
index 0000000..88ceab5
--- /dev/null
+++ b/src/assets/styles/el-ui.scss
@@ -0,0 +1,402 @@
+// 优化 Element Plus 组件库默认样式
+
+:root {
+ // 系统主色
+ --main-color: var(--el-color-primary);
+ --el-color-white: white !important;
+ --el-color-black: white !important;
+ // 输入框边框颜色
+ // --el-border-color: #E4E4E7 !important; // DCDFE6
+ // 按钮粗度
+ --el-font-weight-primary: 400 !important;
+
+ --el-component-custom-height: 36px !important;
+
+ --el-component-size: var(--el-component-custom-height) !important;
+
+ // 边框、按钮圆角...
+ --el-border-radius-base: calc(var(--custom-radius) / 3 + 2px) !important;
+
+ --el-border-radius-small: 10px !important;
+ --el-messagebox-border-radius: 10px !important;
+
+ .region .el-radio-button__original-radio:checked + .el-radio-button__inner {
+ color: var(--main-color);
+ }
+}
+
+// 优化菜单折叠展开动画(提升动画流畅度)
+.el-menu.el-menu--inline {
+ transition: max-height 0.26s cubic-bezier(0.4, 0, 0.2, 1) !important;
+}
+
+// 优化菜单 item hover 动画(提升鼠标跟手感)
+.el-sub-menu__title,
+.el-menu-item {
+ transition: background-color 0s !important;
+}
+
+// -------------------------------- 修改 el-size=default 组件默认高度 start --------------------------------
+// 修改 el-button 高度
+.el-button--default {
+ height: var(--el-component-custom-height) !important;
+}
+
+// 修改 el-select 高度
+.el-select--default {
+ .el-select__wrapper {
+ min-height: var(--el-component-custom-height) !important;
+ }
+}
+
+// 修改 el-checkbox-button 高度
+.el-checkbox-button--default .el-checkbox-button__inner,
+// 修改 el-radio-button 高度
+.el-radio-button--default .el-radio-button__inner {
+ padding: 10px 15px !important;
+}
+// -------------------------------- 修改 el-size=default 组件默认高度 end --------------------------------
+
+.el-pagination.is-background .btn-next,
+.el-pagination.is-background .btn-prev,
+.el-pagination.is-background .el-pager li {
+ border-radius: 6px;
+}
+
+.el-popover {
+ min-width: 80px;
+}
+
+.el-dialog {
+ border-radius: 100px !important;
+ border-radius: calc(var(--custom-radius) / 1.2 + 2px) !important;
+ overflow: hidden;
+}
+
+.el-dialog__header {
+ .el-dialog__title {
+ font-size: 16px;
+ }
+}
+
+.el-dialog__body {
+ padding: 25px 0 !important;
+ position: relative; // 为了兼容 el-pagination 样式,需要设置 relative,不然会影响 el-pagination 的样式,比如 el-pagination__jump--small 会被影响,导致 el-pagination__jump--small 按钮无法点击,详见 URL_ADDRESS.com/element-plus/element-plus/issues/5684#issuecomment-1176299275;
+}
+
+.el-dialog.el-dialog-border {
+ .el-dialog__body {
+ // 上边框
+ &::before,
+ // 下边框
+ &::after {
+ content: '';
+ position: absolute;
+ left: -16px;
+ width: calc(100% + 32px);
+ height: 1px;
+ background-color: rgba(var(--art-gray-300-rgb), 0.56);
+ }
+
+ &::before {
+ top: 0;
+ }
+
+ &::after {
+ bottom: 0;
+ }
+ }
+}
+
+// ✅ el-message 样式优化
+.el-message {
+ background-color: var(--art-main-bg-color) !important;
+ border: 0 !important;
+ box-shadow:
+ 0 6px 16px 0 rgba(0, 0, 0, 0.08),
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05) !important;
+
+ p {
+ color: #515a6e !important;
+ font-size: 13px;
+ }
+}
+
+// 修改 el-dropdown 样式
+.el-dropdown-menu {
+ padding: 6px !important;
+ border-radius: 10px !important;
+ border: none !important;
+
+ .el-dropdown-menu__item {
+ padding: 6px 16px !important;
+ border-radius: 6px !important;
+
+ &:hover:not(.is-disabled) {
+ color: var(--art-gray-900) !important;
+ background-color: var(--art-gray-200) !important;
+ }
+ }
+}
+
+// 隐藏 select、dropdown 的三角
+.el-select__popper,
+.el-dropdown__popper {
+ margin-top: -6px !important;
+
+ .el-popper__arrow {
+ display: none;
+ }
+}
+
+.el-dropdown-selfdefine:focus {
+ outline: none !important;
+}
+
+// 处理移动端组件兼容性
+@media screen and (max-width: $device-phone) {
+ .el-message-box,
+ .el-message,
+ .el-dialog {
+ width: calc(100% - 24px) !important;
+ }
+
+ .el-date-picker.has-sidebar.has-time {
+ width: calc(100% - 24px);
+ left: 12px !important;
+ }
+
+ .el-picker-panel *[slot='sidebar'],
+ .el-picker-panel__sidebar {
+ display: none;
+ }
+
+ .el-picker-panel *[slot='sidebar'] + .el-picker-panel__body,
+ .el-picker-panel__sidebar + .el-picker-panel__body {
+ margin-left: 0;
+ }
+}
+
+// 修改el-button样式
+.el-button {
+ &.el-button--text {
+ background-color: transparent !important;
+ padding: 0 !important;
+
+ span {
+ margin-left: 0 !important;
+ }
+ }
+}
+
+// 修改el-tag样式
+.el-tag {
+ height: 26px !important;
+ line-height: 26px !important;
+ border: 0 !important;
+ border-radius: 6px !important;
+ font-weight: bold;
+ transition: all 0s !important;
+}
+
+.el-checkbox-group {
+ &.el-table-filter__checkbox-group label.el-checkbox {
+ height: 17px !important;
+
+ .el-checkbox__label {
+ font-weight: 400 !important;
+ }
+ }
+}
+
+.el-checkbox {
+ .el-checkbox__inner {
+ width: 18px !important;
+ height: 18px !important;
+ border-radius: 4px !important;
+
+ &::before {
+ content: '';
+ height: 3px !important;
+ top: 6px !important;
+ background-color: #fff !important;
+ transform: scale(0.6) !important;
+ }
+
+ &::after {
+ width: 4px;
+ height: 8px;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 4px;
+ margin: auto;
+ border: 2px solid var(--el-checkbox-checked-icon-color);
+ border-left: 0;
+ border-top: 0;
+ }
+ }
+}
+
+.el-notification .el-notification__icon {
+ font-size: 22px !important;
+}
+
+// 修改 el-message-box 样式
+.el-message-box__headerbtn .el-message-box__close,
+.el-dialog__headerbtn .el-dialog__close {
+ color: var(--art-gray-500) !important;
+ top: 7px !important;
+ right: 7px !important;
+ padding: 7px !important;
+ border-radius: 5px !important;
+ transition: all 0.3s !important;
+
+ &:hover {
+ background-color: var(--art-gray-200) !important;
+ color: var(--art-gray-800) !important;
+ }
+}
+
+.el-message-box {
+ padding: 25px 20px !important;
+}
+
+.el-message-box__title {
+ font-weight: 500 !important;
+}
+
+.el-table__column-filter-trigger i {
+ color: var(--main-color) !important;
+ margin: -3px 0 0 2px;
+}
+
+// 去除 el-dropdown 鼠标放上去出现的边框
+.el-tooltip__trigger:focus-visible {
+ outline: unset;
+}
+
+// ipad 表单右侧按钮优化
+@media screen and (max-width: $device-ipad-pro) {
+ .el-table-fixed-column--right {
+ padding-right: 0 !important;
+
+ .el-button {
+ margin: 5px 10px 5px 0 !important;
+ }
+ }
+}
+
+.login-out-dialog {
+ padding: 30px 20px !important;
+ border-radius: 10px !important;
+}
+
+// 修改 dialog 动画
+.dialog-fade-enter-active {
+ .el-dialog:not(.is-draggable) {
+ animation: dialog-open 0.3s cubic-bezier(0.32, 0.14, 0.15, 0.86);
+
+ // 修复 el-dialog 动画后宽度不自适应问题
+ .el-select__selected-item {
+ display: inline-block;
+ }
+ }
+}
+
+.dialog-fade-leave-active {
+ animation: fade-out 0.2s linear;
+
+ .el-dialog:not(.is-draggable) {
+ animation: dialog-close 0.5s;
+ }
+}
+
+@keyframes dialog-open {
+ 0% {
+ opacity: 0;
+ transform: scale(0.2);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ }
+}
+
+@keyframes dialog-close {
+ 0% {
+ opacity: 1;
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: scale(0.2);
+ }
+}
+
+// 遮罩层动画
+@keyframes fade-out {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+// 修改 el-select 样式
+.el-select__popper:not(.el-tree-select__popper) {
+ .el-select-dropdown__list {
+ padding: 5px !important;
+
+ .el-select-dropdown__item {
+ height: 34px !important;
+ line-height: 34px !important;
+ border-radius: 6px !important;
+
+ &.is-selected {
+ color: var(--art-gray-900) !important;
+ font-weight: 400 !important;
+ background-color: var(--art-gray-200) !important;
+ margin-bottom: 4px !important;
+ }
+
+ &:hover {
+ background-color: var(--art-gray-200) !important;
+ }
+ }
+
+ .el-select-dropdown__item:hover ~ .is-selected,
+ .el-select-dropdown__item.is-selected:has(~ .el-select-dropdown__item:hover) {
+ background-color: transparent !important;
+ }
+ }
+}
+
+// 修改 el-tree-select 样式
+.el-tree-select__popper {
+ .el-select-dropdown__list {
+ padding: 5px !important;
+
+ .el-tree-node {
+ .el-tree-node__content {
+ height: 36px !important;
+ border-radius: 6px !important;
+
+ &:hover {
+ background-color: var(--art-gray-200) !important;
+ }
+ }
+ }
+ }
+}
+
+// 实现水波纹在文字下面效果
+.el-button > span {
+ position: relative;
+ z-index: 10;
+}
diff --git a/src/assets/styles/markdown.scss b/src/assets/styles/markdown.scss
new file mode 100644
index 0000000..b22fdc2
--- /dev/null
+++ b/src/assets/styles/markdown.scss
@@ -0,0 +1,1036 @@
+/* 文章标题设置(h1-h6)*/
+/* ------------------------------------------------ */
+$font-color: #24292e;
+
+.markdown-body h1,
+.markdown-body h2,
+.markdown-body h3,
+.markdown-body h4,
+.markdown-body h5,
+.markdown-body h6 {
+ color: var(--art-gray-800) !important;
+ margin: 30px 0 10px 0;
+ font-weight: 600;
+}
+
+.markdown-body h1 {
+ font-size: 30px;
+}
+
+@media only screen and (max-width: 550px) {
+ .markdown-body h1 {
+ font-size: 26px;
+ }
+
+ .markdown-body h2 {
+ font-size: 22px;
+ }
+
+ .markdown-body h3 {
+ font-size: 18px;
+ }
+}
+
+/* 块引用 */
+/* ------------------------------------------------ */
+.markdown-body blockquote {
+ color: rgba(60, 60, 67, 0.7);
+ font-size: 15px !important;
+ border-left: 0.18em solid #e7e7e8;
+ background: #f8f8f8;
+ padding: 15px 1em;
+ font-weight: 400 !important;
+}
+
+/* 详情页文章字体颜色 */
+/* ------------------------------------------------ */
+.markdown-body p {
+ line-height: 28px;
+ margin-bottom: 10px;
+}
+
+.markdown-body li,
+.markdown-body p {
+ color: var(--art-gray-800) !important;
+ font-size: 16px !important;
+}
+
+.dark .markdown-body li span {
+ color: var(--art-gray-800) !important;
+ background-color: transparent !important;
+}
+
+.dark .markdown-body p span {
+ color: var(--art-gray-800) !important;
+ background-color: transparent !important;
+}
+
+.line-numbers-mode {
+ background-color: var(--art-code-bg);
+ border-radius: 8px;
+ position: relative;
+ padding-left: 32px;
+ box-sizing: border-box;
+}
+
+.line-numbers-mode pre {
+ flex: 1;
+ border-radius: 0 8px 8px 0;
+ background-color: var(--art-code-bg);
+}
+
+.line-numbers-mode .line-numbers-wrapper {
+ width: 32px;
+ height: 100%;
+ text-align: center;
+ padding: 16px 0;
+ box-sizing: border-box;
+ border-right: 1px solid #000000;
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+
+.line-numbers-mode .line-numbers-wrapper span {
+ height: 23.6px;
+ line-height: 23.6px;
+ display: block;
+ color: #72747b;
+ font-size: 13px;
+ box-sizing: border-box;
+}
+
+.line-numbers-mode .copy-btn {
+ display: inline-block;
+ display: flex;
+ position: absolute;
+ right: 10px;
+ top: 10px;
+ cursor: pointer;
+ opacity: 0;
+ background-color: #000;
+ border-radius: 5px;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.6);
+ transition: opacity 0.3s;
+}
+
+.line-numbers-mode .copy-btn div {
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ cursor: pointer;
+ text-align: center;
+ font-size: 20px;
+}
+
+.line-numbers-mode:hover .copy-btn {
+ opacity: 1;
+}
+
+.line-numbers-mode .copy-btn span {
+ height: 34px;
+ line-height: 34px;
+ font-size: 13px;
+ padding-left: 10px;
+ display: none;
+}
+
+.line-numbers-mode .copy-btn .show-copy {
+ opacity: 1;
+ display: block;
+}
+
+.line-numbers-mode ::-webkit-scrollbar-track {
+ background-color: #292b30 !important;
+}
+
+.markdown-body .anchor {
+ float: left;
+ line-height: 1;
+ margin-left: -20px;
+ padding-right: 4px;
+}
+
+.markdown-body .anchor:focus {
+ outline: none;
+}
+
+.markdown-body h1 .octicon-link,
+.markdown-body h2 .octicon-link,
+.markdown-body h3 .octicon-link,
+.markdown-body h4 .octicon-link,
+.markdown-body h5 .octicon-link,
+.markdown-body h6 .octicon-link {
+ color: #1b1f23;
+ vertical-align: middle;
+ visibility: hidden;
+}
+
+.markdown-body h1:hover .anchor,
+.markdown-body h2:hover .anchor,
+.markdown-body h3:hover .anchor,
+.markdown-body h4:hover .anchor,
+.markdown-body h5:hover .anchor,
+.markdown-body h6:hover .anchor {
+ text-decoration: none;
+}
+
+.markdown-body h1:hover .anchor .octicon-link,
+.markdown-body h2:hover .anchor .octicon-link,
+.markdown-body h3:hover .anchor .octicon-link,
+.markdown-body h4:hover .anchor .octicon-link,
+.markdown-body h5:hover .anchor .octicon-link,
+.markdown-body h6:hover .anchor .octicon-link {
+ visibility: visible;
+}
+
+.markdown-body h1:hover .anchor .octicon-link:before,
+.markdown-body h2:hover .anchor .octicon-link:before,
+.markdown-body h3:hover .anchor .octicon-link:before,
+.markdown-body h4:hover .anchor .octicon-link:before,
+.markdown-body h5:hover .anchor .octicon-link:before,
+.markdown-body h6:hover .anchor .octicon-link:before {
+ width: 16px;
+ height: 16px;
+ content: ' ';
+ display: inline-block;
+}
+
+.markdown-body {
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+ line-height: 1.5;
+ color: $font-color;
+ font-size: 16px;
+ line-height: 1.5;
+ word-wrap: break-word;
+}
+
+.markdown-body details {
+ display: block;
+}
+
+.markdown-body summary {
+ display: list-item;
+}
+
+.markdown-body a {
+ background-color: initial;
+}
+
+.markdown-body a:active,
+.markdown-body a:hover {
+ outline-width: 0;
+}
+
+.markdown-body strong {
+ font-weight: inherit;
+ font-weight: bolder;
+}
+
+.markdown-body p br {
+ display: inline;
+ line-height: 11px;
+}
+
+.markdown-body img {
+ border-style: none;
+}
+
+.markdown-body hr {
+ box-sizing: initial;
+ height: 0;
+ overflow: visible;
+}
+
+.markdown-body input {
+ font: inherit;
+ margin: 0;
+}
+
+.markdown-body input {
+ overflow: visible;
+}
+
+.markdown-body [type='checkbox'] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+.markdown-body * {
+ box-sizing: border-box;
+}
+
+.markdown-body input {
+ font-size: inherit;
+ line-height: inherit;
+}
+
+.markdown-body a {
+ color: #0366d6;
+ text-decoration: none;
+}
+
+.markdown-body a:hover {
+ text-decoration: underline;
+}
+
+.markdown-body strong {
+ font-weight: 600;
+}
+
+.markdown-body hr {
+ height: 0;
+ margin: 15px 0;
+ overflow: hidden;
+ background: transparent;
+ border: 0;
+ border-bottom: 1px solid #dfe2e5;
+}
+
+.markdown-body hr:after,
+.markdown-body hr:before {
+ display: table;
+ content: '';
+}
+
+.markdown-body hr:after {
+ clear: both;
+}
+
+.markdown-body table {
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+
+.markdown-body td,
+.markdown-body th {
+ padding: 0;
+}
+
+.markdown-body details summary {
+ cursor: pointer;
+}
+
+.markdown-body kbd {
+ display: inline-block;
+ padding: 3px 5px;
+ font:
+ 11px SFMono-Regular,
+ Consolas,
+ Liberation Mono,
+ Menlo,
+ monospace;
+ line-height: 10px;
+ color: #444d56;
+ vertical-align: middle;
+ background-color: #fafbfc;
+ border: 1px solid #d1d5da;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 #d1d5da;
+}
+
+.markdown-body blockquote {
+ margin: 0;
+}
+
+.markdown-body ol,
+.markdown-body ul {
+ padding-left: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.markdown-body ol ol,
+.markdown-body ul ol {
+ list-style-type: lower-roman;
+}
+
+.markdown-body ol ol ol,
+.markdown-body ol ul ol,
+.markdown-body ul ol ol,
+.markdown-body ul ul ol {
+ list-style-type: lower-alpha;
+}
+
+.markdown-body dd {
+ margin-left: 0;
+}
+
+.markdown-body code,
+.markdown-body pre,
+.markdown-body .line-number {
+ font-size: 14px !important;
+ border-radius: 8px;
+ background-color: #282c34;
+}
+
+.dark {
+ .markdown-body code,
+ .markdown-body pre,
+ .markdown-body .line-number {
+ background-color: #252525;
+ }
+}
+
+.markdown-body pre {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.markdown-body input::-webkit-inner-spin-button,
+.markdown-body input::-webkit-outer-spin-button {
+ margin: 0;
+ -webkit-appearance: none;
+ appearance: none;
+}
+
+.markdown-body :checked + .radio-label {
+ position: relative;
+ z-index: 1;
+ border-color: #0366d6;
+}
+
+.markdown-body .border {
+ border: 1px solid #e1e4e8 !important;
+}
+
+.markdown-body .border-0 {
+ border: 0 !important;
+}
+
+.markdown-body .border-bottom {
+ border-bottom: 1px solid #e1e4e8 !important;
+}
+
+.markdown-body .rounded-1 {
+ border-radius: 3px !important;
+}
+
+.markdown-body .bg-white {
+ background-color: #fff !important;
+}
+
+.markdown-body .bg-gray-light {
+ background-color: #fafbfc !important;
+}
+
+.markdown-body .text-gray-light {
+ color: #6a737d !important;
+}
+
+.markdown-body .mb-0 {
+ margin-bottom: 0 !important;
+}
+
+.markdown-body .my-2 {
+ margin-top: 8px !important;
+ margin-bottom: 8px !important;
+}
+
+.markdown-body .pl-0 {
+ padding-left: 0 !important;
+}
+
+.markdown-body .py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.markdown-body .pl-1 {
+ padding-left: 4px !important;
+}
+
+.markdown-body .pl-2 {
+ padding-left: 8px !important;
+}
+
+.markdown-body .py-2 {
+ padding-top: 8px !important;
+ padding-bottom: 8px !important;
+}
+
+.markdown-body .pl-3,
+.markdown-body .px-3 {
+ padding-left: 16px !important;
+}
+
+.markdown-body .px-3 {
+ padding-right: 16px !important;
+}
+
+.markdown-body .pl-4 {
+ padding-left: 24px !important;
+}
+
+.markdown-body .pl-5 {
+ padding-left: 32px !important;
+}
+
+.markdown-body .pl-6 {
+ padding-left: 40px !important;
+}
+
+.markdown-body .f6 {
+ font-size: 12px !important;
+}
+
+.markdown-body .lh-condensed {
+ line-height: 1.25 !important;
+}
+
+.markdown-body .text-bold {
+ font-weight: 600 !important;
+}
+
+.markdown-body .pl-c {
+ color: #6a737d;
+}
+
+.markdown-body .pl-c1,
+.markdown-body .pl-s .pl-v {
+ color: #005cc5;
+}
+
+.markdown-body .pl-e,
+.markdown-body .pl-en {
+ color: #6f42c1;
+}
+
+.markdown-body .pl-s .pl-s1,
+.markdown-body .pl-smi {
+ color: $font-color;
+}
+
+.markdown-body .pl-ent {
+ color: #22863a;
+}
+
+.markdown-body .pl-k {
+ color: #d73a49;
+}
+
+.markdown-body .pl-pds,
+.markdown-body .pl-s,
+.markdown-body .pl-s .pl-pse .pl-s1,
+.markdown-body .pl-sr,
+.markdown-body .pl-sr .pl-cce,
+.markdown-body .pl-sr .pl-sra,
+.markdown-body .pl-sr .pl-sre {
+ color: #032f62;
+}
+
+.markdown-body .pl-smw,
+.markdown-body .pl-v {
+ color: #e36209;
+}
+
+.markdown-body .pl-bu {
+ color: #b31d28;
+}
+
+.markdown-body .pl-ii {
+ color: #fafbfc;
+ background-color: #b31d28;
+}
+
+.markdown-body .pl-c2 {
+ color: #fafbfc;
+ background-color: #d73a49;
+}
+
+.markdown-body .pl-c2:before {
+ content: '^M';
+}
+
+.markdown-body .pl-sr .pl-cce {
+ font-weight: 700;
+ color: #22863a;
+}
+
+.markdown-body .pl-ml {
+ color: #735c0f;
+}
+
+.markdown-body .pl-mh,
+.markdown-body .pl-mh .pl-en,
+.markdown-body .pl-ms {
+ font-weight: 700;
+ color: #005cc5;
+}
+
+.markdown-body .pl-mi {
+ font-style: italic;
+ color: $font-color;
+}
+
+.markdown-body .pl-mb {
+ font-weight: 700;
+ color: $font-color;
+}
+
+.markdown-body .pl-md {
+ color: #b31d28;
+ background-color: #ffeef0;
+}
+
+.markdown-body .pl-mi1 {
+ color: #22863a;
+ background-color: #f0fff4;
+}
+
+.markdown-body .pl-mc {
+ color: #e36209;
+ background-color: #ffebda;
+}
+
+.markdown-body .pl-mi2 {
+ color: #f6f8fa;
+ background-color: #005cc5;
+}
+
+.markdown-body .pl-mdr {
+ font-weight: 700;
+ color: #6f42c1;
+}
+
+.markdown-body .pl-ba {
+ color: #586069;
+}
+
+.markdown-body .pl-sg {
+ color: #959da5;
+}
+
+.markdown-body .pl-corl {
+ text-decoration: underline;
+ color: #032f62;
+}
+
+.markdown-body .mb-0 {
+ margin-bottom: 0 !important;
+}
+
+.markdown-body .my-2 {
+ margin-bottom: 8px !important;
+}
+
+.markdown-body .my-2 {
+ margin-top: 8px !important;
+}
+
+.markdown-body .pl-0 {
+ padding-left: 0 !important;
+}
+
+.markdown-body .py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.markdown-body .pl-1 {
+ padding-left: 4px !important;
+}
+
+.markdown-body .pl-2 {
+ padding-left: 8px !important;
+}
+
+.markdown-body .py-2 {
+ padding-top: 8px !important;
+ padding-bottom: 8px !important;
+}
+
+.markdown-body .pl-3 {
+ padding-left: 16px !important;
+}
+
+.markdown-body .pl-4 {
+ padding-left: 24px !important;
+}
+
+.markdown-body .pl-5 {
+ padding-left: 32px !important;
+}
+
+.markdown-body .pl-6 {
+ padding-left: 40px !important;
+}
+
+.markdown-body .pl-7 {
+ padding-left: 48px !important;
+}
+
+.markdown-body .pl-8 {
+ padding-left: 64px !important;
+}
+
+.markdown-body .pl-9 {
+ padding-left: 80px !important;
+}
+
+.markdown-body .pl-10 {
+ padding-left: 96px !important;
+}
+
+.markdown-body .pl-11 {
+ padding-left: 112px !important;
+}
+
+.markdown-body .pl-12 {
+ padding-left: 128px !important;
+}
+
+.markdown-body hr {
+ border-bottom-color: #eee;
+}
+
+.markdown-body kbd {
+ display: inline-block;
+ padding: 3px 5px;
+ font:
+ 11px SFMono-Regular,
+ Consolas,
+ Liberation Mono,
+ Menlo,
+ monospace;
+ line-height: 10px;
+ color: #444d56;
+ vertical-align: middle;
+ background-color: #fafbfc;
+ border: 1px solid #d1d5da;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 #d1d5da;
+}
+
+.markdown-body:after,
+.markdown-body:before {
+ display: table;
+ content: '';
+}
+
+.markdown-body:after {
+ clear: both;
+}
+
+.markdown-body > :first-child {
+ margin-top: 0 !important;
+}
+
+.markdown-body > :last-child {
+ margin-bottom: 0 !important;
+}
+
+.markdown-body a:not([href]) {
+ color: inherit;
+ text-decoration: none;
+}
+
+.markdown-body blockquote,
+.markdown-body details,
+.markdown-body dl,
+.markdown-body ol,
+.markdown-body pre,
+.markdown-body table,
+.markdown-body ul {
+ margin-top: 0;
+ margin-bottom: 16px;
+}
+
+.markdown-body hr {
+ height: 0.25em;
+ padding: 0;
+ margin: 24px 0;
+ background-color: #e1e4e8;
+ border: 0;
+}
+
+.markdown-body blockquote > :first-child {
+ margin-top: 0;
+}
+
+.markdown-body blockquote > :last-child {
+ margin-bottom: 0;
+}
+
+.markdown-body ol,
+.markdown-body ul {
+ padding-left: 1em;
+}
+
+.markdown-body ol ol,
+.markdown-body ol ul,
+.markdown-body ul ol,
+.markdown-body ul ul {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.markdown-body li {
+ line-height: 28px;
+ font-size: 14px;
+ word-wrap: break-all;
+ list-style: disc;
+ margin-left: 10px;
+}
+
+.markdown-body li > p {
+ margin-top: 16px;
+}
+
+.markdown-body li + li {
+ margin-top: 0.25em;
+}
+
+.markdown-body dl {
+ padding: 0;
+}
+
+.markdown-body dl dt {
+ padding: 0;
+ margin-top: 16px;
+ font-size: 1em;
+ font-style: italic;
+ font-weight: 600;
+}
+
+.markdown-body dl dd {
+ padding: 0 16px;
+ margin-bottom: 16px;
+}
+
+.markdown-body table {
+ display: block;
+ width: 100%;
+ overflow: auto;
+}
+
+.markdown-body table th {
+ font-weight: 600;
+}
+
+.markdown-body table td,
+.markdown-body table th {
+ padding: 6px 13px;
+ border: 1px solid #dfe2e5;
+}
+
+.markdown-body table tr {
+ background-color: #fff;
+ border-top: 1px solid #c6cbd1;
+}
+
+.markdown-body table tr:nth-child(2n) {
+ background-color: #f6f8fa;
+}
+
+.markdown-body img {
+ max-width: 100%;
+ box-sizing: initial;
+ background-color: #fff;
+ border: 1px solid #eee;
+ border: 1px solid var(--art-c-border-2);
+ cursor: zoom-in;
+}
+
+.markdown-body img[align='right'] {
+ padding-left: 20px;
+}
+
+.markdown-body img[align='left'] {
+ padding-right: 20px;
+}
+
+.markdown-body code {
+ padding: 0.2em 0.4em;
+ margin: 0;
+ font-size: 85%;
+ background-color: rgba(27, 31, 35, 0.05);
+ border-radius: 3px;
+}
+
+.markdown-body pre {
+ word-wrap: normal;
+}
+
+.markdown-body pre > code {
+ padding: 0;
+ margin: 0;
+ font-size: 100%;
+ word-break: normal;
+ white-space: pre;
+ background: transparent;
+ border: 0;
+}
+
+.markdown-body .highlight {
+ margin-bottom: 16px;
+}
+
+.markdown-body .highlight pre {
+ margin-bottom: 0;
+ word-break: normal;
+}
+
+.markdown-body .highlight pre,
+.markdown-body pre {
+ padding: 15px 20px 15px 0;
+ overflow: auto;
+ font-size: 92%;
+ line-height: 1.6;
+}
+
+.markdown-body pre code {
+ display: inline;
+ max-width: auto;
+ padding: 0;
+ margin: 0;
+ overflow: visible;
+ line-height: inherit;
+ word-wrap: normal;
+ background-color: initial;
+ border: 0;
+}
+
+.markdown-body .commit-tease-sha {
+ display: inline-block;
+ font-size: 90%;
+ color: #444d56;
+}
+
+.markdown-body .full-commit .btn-outline:not(:disabled):hover {
+ color: #005cc5;
+ border-color: #005cc5;
+}
+
+.markdown-body .blob-wrapper {
+ overflow-x: auto;
+ overflow-y: hidden;
+}
+
+.markdown-body .blob-wrapper-embedded {
+ max-height: 240px;
+ overflow-y: auto;
+}
+
+.markdown-body .blob-num {
+ width: 1%;
+ min-width: 50px;
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 12px;
+ line-height: 20px;
+ color: rgba(27, 31, 35, 0.3);
+ text-align: right;
+ white-space: nowrap;
+ vertical-align: top;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.markdown-body .blob-num:hover {
+ color: rgba(27, 31, 35, 0.6);
+}
+
+.markdown-body .blob-num:before {
+ content: attr(data-line-number);
+}
+
+.markdown-body .blob-code {
+ position: relative;
+ padding-right: 10px;
+ padding-left: 10px;
+ line-height: 20px;
+ vertical-align: top;
+}
+
+.markdown-body .blob-code-inner {
+ overflow: visible;
+ font-size: 12px;
+ color: $font-color;
+ word-wrap: normal;
+ white-space: pre;
+}
+
+.markdown-body .pl-token.active,
+.markdown-body .pl-token:hover {
+ cursor: pointer;
+ background: #ffea7f;
+}
+
+.markdown-body .tab-size[data-tab-size='1'] {
+ -moz-tab-size: 1;
+ tab-size: 1;
+}
+
+.markdown-body .tab-size[data-tab-size='2'] {
+ -moz-tab-size: 2;
+ tab-size: 2;
+}
+
+.markdown-body .tab-size[data-tab-size='3'] {
+ -moz-tab-size: 3;
+ tab-size: 3;
+}
+
+.markdown-body .tab-size[data-tab-size='4'] {
+ -moz-tab-size: 4;
+ tab-size: 4;
+}
+
+.markdown-body .tab-size[data-tab-size='5'] {
+ -moz-tab-size: 5;
+ tab-size: 5;
+}
+
+.markdown-body .tab-size[data-tab-size='6'] {
+ -moz-tab-size: 6;
+ tab-size: 6;
+}
+
+.markdown-body .tab-size[data-tab-size='7'] {
+ -moz-tab-size: 7;
+ tab-size: 7;
+}
+
+.markdown-body .tab-size[data-tab-size='8'] {
+ -moz-tab-size: 8;
+ tab-size: 8;
+}
+
+.markdown-body .tab-size[data-tab-size='9'] {
+ -moz-tab-size: 9;
+ tab-size: 9;
+}
+
+.markdown-body .tab-size[data-tab-size='10'] {
+ -moz-tab-size: 10;
+ tab-size: 10;
+}
+
+.markdown-body .tab-size[data-tab-size='11'] {
+ -moz-tab-size: 11;
+ tab-size: 11;
+}
+
+.markdown-body .tab-size[data-tab-size='12'] {
+ -moz-tab-size: 12;
+ tab-size: 12;
+}
+
+.markdown-body .task-list-item {
+ list-style-type: none;
+}
+
+.markdown-body .task-list-item + .task-list-item {
+ margin-top: 3px;
+}
+
+.markdown-body .task-list-item input {
+ margin: 0 0.2em 0.25em -1.6em;
+ vertical-align: middle;
+}
diff --git a/src/assets/styles/mixin.scss b/src/assets/styles/mixin.scss
new file mode 100644
index 0000000..db36888
--- /dev/null
+++ b/src/assets/styles/mixin.scss
@@ -0,0 +1,157 @@
+// sass 混合宏(函数)
+
+/**
+* 溢出省略号
+* @param {Number} 行数
+*/
+@mixin ellipsis($rowCount: 1) {
+ @if $rowCount <=1 {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ } @else {
+ min-width: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: $rowCount;
+ -webkit-box-orient: vertical;
+ }
+}
+
+/**
+* 控制用户能否选中文本
+* @param {String} 类型
+*/
+@mixin userSelect($value: none) {
+ user-select: $value;
+ -moz-user-select: $value;
+ -ms-user-select: $value;
+ -webkit-user-select: $value;
+}
+
+// 绝对定位居中
+@mixin absoluteCenter() {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ margin: auto;
+}
+
+/**
+* css3动画
+*
+*/
+@mixin animation(
+ $from: (
+ width: 0px
+ ),
+ $to: (
+ width: 100px
+ ),
+ $name: mymove,
+ $animate: mymove 2s 1 linear infinite
+) {
+ -webkit-animation: $animate;
+ -o-animation: $animate;
+ animation: $animate;
+
+ @keyframes #{$name} {
+ from {
+ @each $key, $value in $from {
+ #{$key}: #{$value};
+ }
+ }
+
+ to {
+ @each $key, $value in $to {
+ #{$key}: #{$value};
+ }
+ }
+ }
+
+ @-webkit-keyframes #{$name} {
+ from {
+ @each $key, $value in $from {
+ $key: $value;
+ }
+ }
+
+ to {
+ @each $key, $value in $to {
+ $key: $value;
+ }
+ }
+ }
+}
+
+// 圆形盒子
+@mixin circle($size: 11px, $bg: #fff) {
+ border-radius: 50%;
+ width: $size;
+ height: $size;
+ line-height: $size;
+ text-align: center;
+ background: $bg;
+}
+
+// placeholder
+@mixin placeholder($color: #bbb) {
+ // Firefox
+ &::-moz-placeholder {
+ color: $color;
+ opacity: 1;
+ }
+
+ // Internet Explorer 10+
+ &:-ms-input-placeholder {
+ color: $color;
+ }
+
+ // Safari and Chrome
+ &::-webkit-input-placeholder {
+ color: $color;
+ }
+
+ &:placeholder-shown {
+ text-overflow: ellipsis;
+ }
+}
+
+//背景透明,文字不透明。兼容IE8
+@mixin betterTransparentize($color, $alpha) {
+ $c: rgba($color, $alpha);
+ $ie_c: ie_hex_str($c);
+ background: rgba($color, 1);
+ background: $c;
+ background: transparent \9;
+ zoom: 1;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#{$ie_c}, endColorstr=#{$ie_c});
+ -ms-filter: 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#{$ie_c}, endColorstr=#{$ie_c})';
+}
+
+//添加浏览器前缀
+@mixin browserPrefix($propertyName, $value) {
+ @each $prefix in -webkit-, -moz-, -ms-, -o-, '' {
+ #{$prefix}#{$propertyName}: $value;
+ }
+}
+
+// 边框
+@mixin border($color: red) {
+ border: 1px solid $color;
+}
+
+// 背景滤镜
+@mixin backdropBlur() {
+ --tw-backdrop-blur: blur(30px);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
+ var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
+ var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
+ var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
+ var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
+ var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+}
diff --git a/src/assets/styles/mobile.scss b/src/assets/styles/mobile.scss
new file mode 100644
index 0000000..1a6b1ea
--- /dev/null
+++ b/src/assets/styles/mobile.scss
@@ -0,0 +1,8 @@
+// 移动端样式处理
+
+// 去除移动端点击背景色
+@media screen and (max-width: $device-ipad-pro) {
+ * {
+ -webkit-tap-highlight-color: transparent;
+ }
+}
diff --git a/src/assets/styles/one-dark-pro.scss b/src/assets/styles/one-dark-pro.scss
new file mode 100644
index 0000000..010eef7
--- /dev/null
+++ b/src/assets/styles/one-dark-pro.scss
@@ -0,0 +1,117 @@
+/*
+Atom One Dark by Daniel Gamage
+Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
+base: #282c34
+mono-1: #abb2bf
+mono-2: #818896
+mono-3: #5c6370
+hue-1: #56b6c2
+hue-2: #61aeee
+hue-3: #c678dd
+hue-4: #98c379
+hue-5: #e06c75
+hue-5-2: #be5046
+hue-6: #d19a66
+hue-6-2: #e6c07b
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ // color: #abb2bf;
+ // background: #282c34;
+
+ color: #a6accd;
+}
+
+.hljs-string,
+.hljs-section,
+.hljs-selector-class,
+.hljs-template-variable,
+.hljs-deletion {
+ color: #aed07e !important;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #6f747d;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-formula {
+ color: #c792ea;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-selector-tag,
+.hljs-deletion,
+.hljs-subst {
+ color: #c86068;
+}
+
+.hljs-literal {
+ color: #56b6c2;
+}
+
+.hljs-string,
+.hljs-regexp,
+.hljs-addition,
+.hljs-attribute,
+.hljs-meta-string {
+ color: #abb2bf;
+}
+
+.hljs-attribute {
+ color: #c792ea;
+}
+
+.hljs-function {
+ color: #c792ea;
+}
+
+.hljs-type {
+ color: #f07178;
+}
+
+.hljs-title {
+ color: #82aaff !important;
+}
+
+.hljs-built_in,
+.hljs-class {
+ color: #82aaff;
+}
+
+// 括号
+.hljs-params {
+ color: #a6accd;
+}
+
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-number {
+ color: #de7e61;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-meta,
+.hljs-selector-id {
+ color: #61aeee;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-link {
+ text-decoration: underline;
+}
diff --git a/src/assets/styles/reset.scss b/src/assets/styles/reset.scss
new file mode 100644
index 0000000..9f0235e
--- /dev/null
+++ b/src/assets/styles/reset.scss
@@ -0,0 +1,149 @@
+@charset "UTF-8";
+
+body,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+pre,
+form,
+fieldset,
+input,
+p,
+blockquote,
+th,
+td {
+ font-weight: 400;
+ margin: 0;
+ padding: 0;
+}
+
+h1,
+h2,
+h3,
+h4,
+h4,
+h5 {
+ margin: 0;
+ padding: 0;
+ color: var(--art-text-gray-800);
+}
+
+body {
+ color: var(--art-text-gray-700);
+ text-align: left;
+ font-family: Inter, 'Helvetica Neue', Helvetica, 'PingFang SC',
+ 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
+}
+
+select {
+ font-size: 12px;
+}
+
+table {
+ border-collapse: collapse;
+}
+
+fieldset,
+img {
+ border: 0none;
+}
+
+fieldset {
+ margin: 0;
+ padding: 0;
+}
+
+fieldset p {
+ margin: 0;
+ padding: 0008px;
+}
+
+legend {
+ display: none;
+}
+
+address,
+caption,
+em,
+strong,
+th,
+i {
+ font-style: normal;
+ font-weight: 400;
+}
+
+table caption {
+ margin-left: -1px;
+}
+
+hr {
+ border-bottom: 1pxsolid #ffffff;
+ border-top: 1pxsolid #e4e4e4;
+ border-width: 1px0;
+ clear: both;
+ height: 2px;
+ margin: 5px0;
+ overflow: hidden;
+}
+
+ol,
+ul {
+ list-style-image: none;
+ list-style-position: outside;
+ list-style-type: none;
+}
+
+caption,
+th {
+ text-align: left;
+}
+
+q:before,
+q:after,
+blockquote:before,
+blockquote:after {
+ content: ””;
+}
+
+/*滚动条*/
+/*滚动条整体部分,必须要设置*/
+::-webkit-scrollbar {
+ width: 8px !important;
+ height: 0 !important;
+}
+
+/*滚动条的轨道*/
+::-webkit-scrollbar-track {
+ background-color: var(--art-text-gray-100);
+}
+
+/*滚动条的滑块按钮*/
+::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ background-color: #cccccc !important;
+ transition: all 0.2s;
+ -webkit-transition: all 0.2s;
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background-color: #b0abab !important;
+}
+
+/*滚动条的上下两端的按钮*/
+::-webkit-scrollbar-button {
+ height: 0px;
+ width: 0;
+}
+
+.dark {
+ ::-webkit-scrollbar-track {
+ background-color: var(--art-bg-color);
+ }
+
+ ::-webkit-scrollbar-thumb {
+ background-color: rgba(var(--art-gray-300-rgb), 0.8) !important;
+ }
+}
diff --git a/src/assets/styles/theme-animation.scss b/src/assets/styles/theme-animation.scss
new file mode 100644
index 0000000..c93623b
--- /dev/null
+++ b/src/assets/styles/theme-animation.scss
@@ -0,0 +1,63 @@
+// 定义基础变量
+$bg-animation-color-light: #000;
+$bg-animation-color-dark: #fff;
+$bg-animation-duration: 0.5s;
+
+html {
+ --bg-animation-color: $bg-animation-color-light;
+
+ &.dark {
+ --bg-animation-color: $bg-animation-color-dark;
+ }
+
+ // View transition styles
+ &::view-transition-old(*) {
+ animation: none;
+ }
+
+ &::view-transition-new(*) {
+ animation: clip $bg-animation-duration ease-in;
+ }
+
+ &::view-transition-old(root) {
+ z-index: 1;
+ }
+
+ &::view-transition-new(root) {
+ z-index: 9999;
+ }
+
+ &.dark {
+ &::view-transition-old(*) {
+ animation: clip $bg-animation-duration ease-in reverse;
+ }
+
+ &::view-transition-new(*) {
+ animation: none;
+ }
+
+ &::view-transition-old(root) {
+ z-index: 9999;
+ }
+
+ &::view-transition-new(root) {
+ z-index: 1;
+ }
+ }
+}
+
+// 定义动画
+@keyframes clip {
+ from {
+ clip-path: circle(0% at var(--x) var(--y));
+ }
+
+ to {
+ clip-path: circle(var(--r) at var(--x) var(--y));
+ }
+}
+
+// body 相关样式
+body {
+ background-color: var(--bg-animation-color);
+}
diff --git a/src/assets/styles/transition.scss b/src/assets/styles/transition.scss
new file mode 100644
index 0000000..c2fe8c4
--- /dev/null
+++ b/src/assets/styles/transition.scss
@@ -0,0 +1,97 @@
+@use 'sass:map';
+
+// === 变量区域 ===
+$transition: (
+ duration: 0.26s,
+ // 动画持续时间
+ distance: 20px,
+ // 滑动动画的移动距离
+ easing: cubic-bezier(0.4, 0, 0.2, 1),
+ // 默认缓动函数
+ fade-easing: ease // 淡入淡出专用的缓动函数
+);
+
+// 抽取配置值函数,提高可复用性
+@function transition-config($key) {
+ @return map.get($transition, $key);
+}
+
+// 变量简写
+$duration: transition-config('duration');
+$distance: transition-config('distance');
+$easing: transition-config('easing');
+$fade-easing: transition-config('fade-easing');
+
+// === 动画类 ===
+
+// 淡入淡出动画
+.fade {
+ &-enter-active,
+ &-leave-active {
+ transition: opacity $duration $fade-easing;
+ will-change: opacity;
+ }
+
+ &-enter-from,
+ &-leave-to {
+ opacity: 0;
+ }
+
+ &-enter-to,
+ &-leave-from {
+ opacity: 1;
+ }
+}
+
+// 滑动动画通用样式
+@mixin slide-transition($direction) {
+ $distance-x: 0;
+ $distance-y: 0;
+
+ @if $direction == 'left' {
+ $distance-x: -$distance;
+ } @else if $direction == 'right' {
+ $distance-x: $distance;
+ } @else if $direction == 'top' {
+ $distance-y: -$distance;
+ } @else if $direction == 'bottom' {
+ $distance-y: $distance;
+ }
+
+ &-enter-active,
+ &-leave-active {
+ transition:
+ opacity $duration $easing,
+ transform $duration $easing;
+ will-change: opacity, transform;
+ }
+
+ &-enter-from {
+ opacity: 0;
+ transform: translate3d($distance-x, $distance-y, 0);
+ }
+
+ &-enter-to {
+ opacity: 1;
+ transform: translate3d(0, 0, 0);
+ }
+
+ &-leave-to {
+ opacity: 0;
+ transform: translate3d(-$distance-x, -$distance-y, 0);
+ }
+}
+
+// 滑动动画方向类
+.slide-left {
+ @include slide-transition('left');
+}
+.slide-right {
+ @include slide-transition('right');
+}
+.slide-top {
+ @include slide-transition('top');
+}
+.slide-bottom {
+ @include slide-transition('bottom');
+}
diff --git a/src/assets/styles/tree.scss b/src/assets/styles/tree.scss
new file mode 100644
index 0000000..2e531a9
--- /dev/null
+++ b/src/assets/styles/tree.scss
@@ -0,0 +1,150 @@
+// 自定义Element树形结构组件样式
+
+.tree .custom-tree-node {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ font-size: 14px;
+ padding-right: 8px;
+}
+
+.tree .tree .el-tree-node__content {
+ height: 38px;
+ line-height: 38px;
+}
+
+.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
+ background-color: #409eff;
+ color: #fff;
+}
+
+.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content i {
+ color: #fff;
+}
+
+.tree .custom-tree-node .icon {
+ font-size: 13px;
+ color: #409eff;
+}
+
+.tree .custom-tree-node .btn {
+ font-size: 13px;
+ display: none;
+ padding: 6px;
+ position: relative;
+}
+
+.tree .custom-tree-node:hover .icon {
+ color: #409eff;
+}
+
+.tree .el-tree-node__content:hover {
+ color: #606060;
+ // background: #409EFF;
+ background: #f0f7ff;
+}
+
+.tree .custom-tree-node:hover .btn {
+ display: inline;
+}
+
+.tree .custom-tree-node .btn:hover ul {
+ display: inline;
+}
+
+.tree .custom-tree-node .btn ul {
+ width: 120px;
+ background: #fff;
+ position: absolute;
+ top: 26px;
+ right: 0;
+ display: none;
+ z-index: 999;
+ border: 1px solid #f0f0f0;
+ // box-shadow: 0 4px 4px 2px #f2f2f2;
+}
+
+.tree .custom-tree-node .btn ul li {
+ padding: 10px 15px;
+ color: #666666;
+ box-sizing: border-box;
+}
+
+.tree .custom-tree-node .btn ul li:hover {
+ color: #333;
+ background: #f5f5f5;
+}
+
+.tree .el-tree-node.is-expanded > .el-tree-node__children {
+ overflow: inherit;
+}
+
+.tree .el-tree > .el-tree-node:after {
+ border-top: none;
+}
+
+.tree .el-tree-node {
+ position: relative;
+}
+
+.tree .el-tree-node__expand-icon.is-leaf {
+ display: none;
+}
+
+.tree .el-tree-node__children {
+ padding-left: 16px;
+}
+
+.tree .el-tree-node :last-child:before {
+ height: 38px;
+}
+
+.tree .el-tree-node :last-child:before {
+ height: 17px;
+}
+
+.tree .el-tree > .el-tree-node:before {
+ border-left: none;
+}
+
+.tree .el-tree > .el-tree-node:after {
+ border-top: none;
+}
+
+.tree .el-tree-node:before {
+ content: '';
+ position: absolute;
+ left: -4px;
+ right: auto;
+ border-width: 1px;
+}
+
+.tree .el-tree-node:after {
+ content: '';
+ left: -4px;
+ position: absolute;
+ right: auto;
+ border-width: 1px;
+}
+
+.tree .el-tree-node:before {
+ border-left: 1px dashed #dcdfe6;
+ bottom: 0px;
+ height: 100%;
+ top: -3px;
+ width: 1px;
+ left: 14px;
+}
+
+.tree .el-tree-node:after {
+ border-top: 1px dashed #dcdfe6;
+ height: 20px;
+ top: 13px;
+ left: 15px;
+ width: 12px;
+}
+
+.tree-color {
+ background: #f7fafe;
+}
diff --git a/src/assets/styles/variables.scss b/src/assets/styles/variables.scss
new file mode 100644
index 0000000..7ddbc86
--- /dev/null
+++ b/src/assets/styles/variables.scss
@@ -0,0 +1,251 @@
+// Light 主题变量 | Dark 主题变量
+
+:root {
+ // Theme color
+ --art-primary: 93, 135, 255;
+ --art-secondary: 73, 190, 255;
+ --art-error: 250, 137, 107;
+ --art-info: 83, 155, 255;
+ --art-success: 19, 222, 185;
+ --art-warning: 255, 174, 31;
+ --art-danger: 255, 77, 79;
+
+ // Theme background color
+ --art-bg-primary: 236, 242, 255;
+ --art-bg-secondary: 232, 247, 255;
+ --art-bg-success: 230, 255, 250;
+ --art-bg-error: 253, 237, 232;
+ --art-bg-info: 235, 243, 254;
+ --art-bg-warning: 254, 245, 229;
+ --art-bg-danger: 253, 237, 232;
+
+ --art-hoverColor: 246, 249, 252;
+ --art-grey100: 242, 246, 250;
+ --art-grey200: 234, 239, 244;
+
+ --art-color: #ffffff;
+ --art-light: #f9f9f9;
+ --art-dark: #1e2129;
+
+ // Background color | Hover color
+ --art-text-muted: #99a1b7;
+ --art-gray-100: #f9f9f9;
+ --art-gray-100-rgb: 249, 249, 249;
+ --art-gray-200: #f1f1f4;
+ --art-gray-200-rgb: 241, 241, 244;
+ --art-gray-300: #dbdfe9;
+ --art-gray-300-rgb: 219, 223, 233;
+ --art-gray-400: #c4cada;
+ --art-gray-400-rgb: 196, 202, 218;
+ --art-gray-500: #99a1b7;
+ --art-gray-500-rgb: 153, 161, 183;
+ --art-gray-600: #78829d;
+ --art-gray-600-rgb: 120, 130, 157;
+ --art-gray-700: #4b5675;
+ --art-gray-700-rgb: 75, 86, 117;
+ --art-gray-800: #252f4a;
+ --art-gray-800-rgb: 37, 47, 74;
+ --art-gray-900: #071437;
+ --art-gray-900-rgb: 7, 20, 55;
+
+ // Text color
+ --art-text-muted: #99a1b7;
+ --art-text-gray-100: #f9f9f9;
+ --art-text-gray-200: #f1f1f4;
+ --art-text-gray-300: #dbdfe9;
+ --art-text-gray-400: #c4cada;
+ --art-text-gray-500: #99a1b7;
+ --art-text-gray-600: #78829d;
+ --art-text-gray-700: #4b5675;
+ --art-text-gray-800: #252f4a;
+ --art-text-gray-900: #071437;
+
+ // Border
+ --art-border-color: #eaebf1;
+ --art-border-dashed-color: #dbdfe9;
+ --art-root-card-border-color: #f1f1f4;
+
+ // Shadow
+ --art-box-shadow-xs: 0 0.1rem 0.75rem 0.25rem rgba(0, 0, 0, 0.05);
+ --art-box-shadow-sm: 0 0.1rem 1rem 0.25rem rgba(0, 0, 0, 0.05);
+ --art-box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075);
+ --art-box-shadow-lg: 0 1rem 2rem 1rem rgba(0, 0, 0, 0.1);
+
+ // Root card box、shadow
+ --art-root-card-box-shadow: 0px 3px 4px 0px rgba(0, 0, 0, 0.03);
+ --art-root-card-border-color: #f1f1f4;
+
+ // Theme background color
+ --art-bg-color: #fafbfc; // 最底部背景颜色
+ --art-main-bg-color: #ffffff;
+}
+
+// Dark 主题变量
+html.dark {
+ // Theme color
+ --art-primary: 93, 135, 255;
+ --art-secondary: 73, 190, 255;
+ --art-error: 250, 137, 107;
+ --art-info: 83, 155, 255;
+ --art-success: 19, 222, 185;
+ --art-warning: 255, 174, 31;
+ --art-danger: 255, 77, 79;
+
+ // Theme background color
+ --art-bg-primary: 37, 54, 98;
+ --art-bg-secondary: 28, 69, 93;
+ --art-bg-success: 27, 60, 72;
+ --art-bg-error: 75, 49, 61;
+ --art-bg-info: 34, 54, 98;
+ --art-bg-warning: 77, 58, 42;
+ --art-bg-danger: 100, 49, 61;
+
+ --art-hoverColor: 51, 63, 85;
+ --art-grey100: 51, 63, 85;
+ --art-grey200: 70, 86, 112;
+
+ --art-color: #000000;
+ --art-light: #1b1c22;
+ --art-dark: #272a34;
+
+ // Background color | Hover color
+ --art-text-muted: #636674;
+ --art-gray-100: #1b1c22;
+ --art-gray-100-rgb: 27, 28, 34;
+ --art-gray-200: #26272f;
+ --art-gray-200-rgb: 38, 39, 47;
+ --art-gray-300: #363843;
+ --art-gray-300-rgb: 54, 56, 67;
+ --art-gray-400: #464852;
+ --art-gray-400-rgb: 70, 72, 82;
+ --art-gray-500: #636674;
+ --art-gray-500-rgb: 99, 102, 116;
+ --art-gray-600: #808290;
+ --art-gray-600-rgb: 128, 130, 144;
+ --art-gray-700: #9a9cae;
+ --art-gray-700-rgb: 154, 156, 174;
+ --art-gray-800: #b5b7c8;
+ --art-gray-800-rgb: 181, 183, 200;
+ --art-gray-900: #f5f5f5;
+ --art-gray-900-rgb: 245, 245, 245;
+
+ // Text color
+ --art-text-muted: #636674;
+ --art-text-gray-100: #1b1c22;
+ --art-text-gray-200: #26272f;
+ --art-text-gray-300: #363843;
+ --art-text-gray-400: #464852;
+ --art-text-gray-500: #636674;
+ --art-text-gray-600: #808290;
+ --art-text-gray-700: #9a9cae;
+ --art-text-gray-800: #b5b7c8;
+ --art-text-gray-900: #f5f5f5;
+
+ // Border
+ --art-border-color: #26272f;
+ --art-border-dashed-color: #363843;
+ --art-root-card-border-color: #1e2027;
+
+ // Shadow
+ --art-box-shadow-xs: 0 0.1rem 0.75rem 0.25rem rgba(0, 0, 0, 0.05);
+ --art-box-shadow-sm: 0 0.1rem 1rem 0.25rem rgba(0, 0, 0, 0.05);
+ --art-box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075);
+ --art-box-shadow-lg: 0 1rem 2rem 1rem rgba(0, 0, 0, 0.1);
+
+ // Root card box、shadow
+ --art-root-card-box-shadow: none;
+ --art-root-card-border-color: #1e2027;
+
+ // Theme background color
+ --art-bg-color: #070707;
+ --art-main-bg-color: #161618;
+}
+
+// CSS 全局变量
+:root {
+ --art-card-border: rgba(var(--art-gray-300-rgb), 0.6); // 卡片边框颜色
+ --art-card-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.04); // 卡片阴影
+}
+
+// 媒体查询-设备尺寸
+// notebook
+$device-notebook: 1600px;
+// ipad pro
+$device-ipad-pro: 1180px;
+// ipad
+$device-ipad: 800px;
+// ipad-竖屏
+$device-ipad-vertical: 900px;
+// mobile
+$device-phone: 500px;
+
+.bg-primary {
+ background-color: rgb(var(--art-bg-primary)) !important;
+ color: rgb(var(--art-primary)) !important;
+}
+
+.bg-secondary {
+ background-color: rgb(var(--art-bg-secondary)) !important;
+ color: rgb(var(--art-secondary)) !important;
+ border: 1px solid var(--art-secondary);
+}
+
+.bg-warning {
+ background-color: rgb(var(--art-bg-warning)) !important;
+ color: rgb(var(--art-warning)) !important;
+}
+
+.bg-error {
+ background-color: rgb(var(--art-bg-error)) !important;
+ color: rgb(var(--art-error)) !important;
+}
+
+.bg-success {
+ background-color: rgb(var(--art-bg-success)) !important;
+ color: rgb(var(--art-success)) !important;
+}
+
+.bg-danger {
+ background-color: rgb(var(--art-bg-danger)) !important;
+ color: rgb(var(--art-danger)) !important;
+}
+
+.bg-grey100 {
+ background-color: rgb(var(--art-grey100)) !important;
+}
+
+.bg-grey200 {
+ background-color: rgb(var(--art-grey200)) !important;
+}
+
+.bg-hoverColor {
+ background-color: rgb(var(--art-hoverColor)) !important;
+}
+
+.text-primary {
+ color: rgb(var(--art-primary)) !important;
+}
+
+.text-secondary {
+ color: rgb(var(--art-secondary)) !important;
+}
+
+.text-error {
+ color: rgb(var(--art-error)) !important;
+}
+
+.text-danger {
+ color: rgb(var(--art-danger)) !important;
+}
+
+.text-info {
+ color: rgb(var(--art-info)) !important;
+}
+
+.text-success {
+ color: rgb(var(--art-success)) !important;
+}
+
+.text-warning {
+ color: rgb(var(--art-warning)) !important;
+}
diff --git a/src/assets/svg/loading.ts b/src/assets/svg/loading.ts
new file mode 100644
index 0000000..1a42a84
--- /dev/null
+++ b/src/assets/svg/loading.ts
@@ -0,0 +1,32 @@
+// 自定义四点旋转SVG
+export const fourDotsSpinnerSvg = `
+
+`
diff --git a/src/components/core/banners/art-basic-banner/index.vue b/src/components/core/banners/art-basic-banner/index.vue
new file mode 100644
index 0000000..ecd3f74
--- /dev/null
+++ b/src/components/core/banners/art-basic-banner/index.vue
@@ -0,0 +1,343 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+ {{
+ subtitle
+ }}
+
+
+
+
+
+ {{ buttonConfig?.text }}
+
+
+
+
+
+
+
+
![背景图片]()
+
+
+
+
+
+
+
diff --git a/src/components/core/banners/art-card-banner/index.vue b/src/components/core/banners/art-card-banner/index.vue
new file mode 100644
index 0000000..b679113
--- /dev/null
+++ b/src/components/core/banners/art-card-banner/index.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
![]()
+
+
+
{{ props.title }}
+
{{ props.description }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/base/art-back-to-top/index.vue b/src/components/core/base/art-back-to-top/index.vue
new file mode 100644
index 0000000..5da9076
--- /dev/null
+++ b/src/components/core/base/art-back-to-top/index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/base/art-chart-empty/index.vue b/src/components/core/base/art-chart-empty/index.vue
new file mode 100644
index 0000000..982423f
--- /dev/null
+++ b/src/components/core/base/art-chart-empty/index.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/base/art-icon-selector/index.vue b/src/components/core/base/art-icon-selector/index.vue
new file mode 100644
index 0000000..e6454ce
--- /dev/null
+++ b/src/components/core/base/art-icon-selector/index.vue
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+
{{ props.text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/base/art-logo/index.vue b/src/components/core/base/art-logo/index.vue
new file mode 100644
index 0000000..176d359
--- /dev/null
+++ b/src/components/core/base/art-logo/index.vue
@@ -0,0 +1,34 @@
+
+
+
+

+
+
+
+
+
+
diff --git a/src/components/core/cards/art-bar-chart-card/index.vue b/src/components/core/cards/art-bar-chart-card/index.vue
new file mode 100644
index 0000000..193334c
--- /dev/null
+++ b/src/components/core/cards/art-bar-chart-card/index.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/cards/art-data-list-card/index.vue b/src/components/core/cards/art-data-list-card/index.vue
new file mode 100644
index 0000000..4cd3651
--- /dev/null
+++ b/src/components/core/cards/art-data-list-card/index.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.status }}
+
+
{{ item.time }}
+
+
+
查看更多
+
+
+
+
+
+
+
diff --git a/src/components/core/cards/art-donut-chart-card/index.vue b/src/components/core/cards/art-donut-chart-card/index.vue
new file mode 100644
index 0000000..70604b5
--- /dev/null
+++ b/src/components/core/cards/art-donut-chart-card/index.vue
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
{{ title }}
+
+
{{ formatNumber(value) }}
+
+ {{ percentage > 0 ? '+' : '' }}{{ percentage }}%
+ {{ percentageLabel }}
+
+
+
+ {{ currentValue }}
+ {{ previousValue }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/cards/art-image-card/index.vue b/src/components/core/cards/art-image-card/index.vue
new file mode 100644
index 0000000..b29655a
--- /dev/null
+++ b/src/components/core/cards/art-image-card/index.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+
+
+
+
{{ props.readTime }} 阅读
+
+
+
+
+ {{ props.category }}
+
+
{{ props.title }}
+
+
+
+ {{ props.views }}
+
+
+ {{ props.date }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/cards/art-line-chart-card/index.vue b/src/components/core/cards/art-line-chart-card/index.vue
new file mode 100644
index 0000000..b780611
--- /dev/null
+++ b/src/components/core/cards/art-line-chart-card/index.vue
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/cards/art-progress-card/index.vue b/src/components/core/cards/art-progress-card/index.vue
new file mode 100644
index 0000000..46ad193
--- /dev/null
+++ b/src/components/core/cards/art-progress-card/index.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/cards/art-stats-card/index.vue b/src/components/core/cards/art-stats-card/index.vue
new file mode 100644
index 0000000..b0981c5
--- /dev/null
+++ b/src/components/core/cards/art-stats-card/index.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
{{
+ description
+ }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/cards/art-timeline-list-card/index.vue b/src/components/core/cards/art-timeline-list-card/index.vue
new file mode 100644
index 0000000..97c0b5f
--- /dev/null
+++ b/src/components/core/cards/art-timeline-list-card/index.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item.content }}
+ #{{ item.code }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-bar-chart/index.vue b/src/components/core/charts/art-bar-chart/index.vue
new file mode 100644
index 0000000..8a12ac8
--- /dev/null
+++ b/src/components/core/charts/art-bar-chart/index.vue
@@ -0,0 +1,205 @@
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-dual-bar-compare-chart/index.vue b/src/components/core/charts/art-dual-bar-compare-chart/index.vue
new file mode 100644
index 0000000..33abca1
--- /dev/null
+++ b/src/components/core/charts/art-dual-bar-compare-chart/index.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-h-bar-chart/index.vue b/src/components/core/charts/art-h-bar-chart/index.vue
new file mode 100644
index 0000000..330fb57
--- /dev/null
+++ b/src/components/core/charts/art-h-bar-chart/index.vue
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-k-line-chart/index.vue b/src/components/core/charts/art-k-line-chart/index.vue
new file mode 100644
index 0000000..dcb95ba
--- /dev/null
+++ b/src/components/core/charts/art-k-line-chart/index.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-line-chart/index.vue b/src/components/core/charts/art-line-chart/index.vue
new file mode 100644
index 0000000..2f3326f
--- /dev/null
+++ b/src/components/core/charts/art-line-chart/index.vue
@@ -0,0 +1,420 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-map-chart/index.vue b/src/components/core/charts/art-map-chart/index.vue
new file mode 100644
index 0000000..26b9b1e
--- /dev/null
+++ b/src/components/core/charts/art-map-chart/index.vue
@@ -0,0 +1,310 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-radar-chart/index.vue b/src/components/core/charts/art-radar-chart/index.vue
new file mode 100644
index 0000000..403dc87
--- /dev/null
+++ b/src/components/core/charts/art-radar-chart/index.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-ring-chart/index.vue b/src/components/core/charts/art-ring-chart/index.vue
new file mode 100644
index 0000000..12988bf
--- /dev/null
+++ b/src/components/core/charts/art-ring-chart/index.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/charts/art-scatter-chart/index.vue b/src/components/core/charts/art-scatter-chart/index.vue
new file mode 100644
index 0000000..6307771
--- /dev/null
+++ b/src/components/core/charts/art-scatter-chart/index.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-button-more/index.vue b/src/components/core/forms/art-button-more/index.vue
new file mode 100644
index 0000000..83ba120
--- /dev/null
+++ b/src/components/core/forms/art-button-more/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-button-table/index.vue b/src/components/core/forms/art-button-table/index.vue
new file mode 100644
index 0000000..4b57173
--- /dev/null
+++ b/src/components/core/forms/art-button-table/index.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-drag-verify/index.vue b/src/components/core/forms/art-drag-verify/index.vue
new file mode 100644
index 0000000..8b73996
--- /dev/null
+++ b/src/components/core/forms/art-drag-verify/index.vue
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+
+
+
+
+ {{ message }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-excel-export/index.vue b/src/components/core/forms/art-excel-export/index.vue
new file mode 100644
index 0000000..9c555c2
--- /dev/null
+++ b/src/components/core/forms/art-excel-export/index.vue
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+ {{ loadingText }}
+
+ {{ buttonText }}
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-excel-import/index.vue b/src/components/core/forms/art-excel-import/index.vue
new file mode 100644
index 0000000..d76fb4a
--- /dev/null
+++ b/src/components/core/forms/art-excel-import/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+ 导入 Excel
+
+
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-search-bar/index.vue b/src/components/core/forms/art-search-bar/index.vue
new file mode 100644
index 0000000..ce368b2
--- /dev/null
+++ b/src/components/core/forms/art-search-bar/index.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-search-bar/widget/art-search-date/README.md b/src/components/core/forms/art-search-bar/widget/art-search-date/README.md
new file mode 100644
index 0000000..53f4c32
--- /dev/null
+++ b/src/components/core/forms/art-search-bar/widget/art-search-date/README.md
@@ -0,0 +1,286 @@
+# ArtSearchDate 日期选择器组件
+
+一个功能丰富的日期选择器组件,支持多种日期选择类型。
+
+## 功能特性
+
+- ✅ **单日期选择** - 选择单个日期
+- ✅ **日期时间选择** - 选择日期和时间
+- ✅ **日期范围选择** - 选择日期范围
+- ✅ **日期时间范围选择** - 选择日期时间范围
+- ✅ **月份选择** - 选择月份
+- ✅ **月份范围选择** - 选择月份范围
+- ✅ **年份选择** - 选择年份
+- ✅ **年份范围选择** - 选择年份范围
+- ✅ **周选择** - 选择周
+- ✅ **快捷选项** - 内置常用快捷选项
+- ✅ **自定义配置** - 支持全面的自定义配置
+
+## 使用示例
+
+### 1. 单日期选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'date',
+ label: '日期',
+ type: 'date',
+ config: {
+ type: 'date',
+ placeholder: '请选择日期'
+ }
+ }
+]
+```
+
+### 2. 日期时间选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'datetime',
+ label: '日期时间',
+ type: 'datetime',
+ config: {
+ type: 'datetime',
+ placeholder: '请选择日期时间'
+ }
+ }
+]
+```
+
+### 3. 日期范围选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'daterange',
+ label: '日期范围',
+ type: 'daterange',
+ config: {
+ type: 'daterange',
+ startPlaceholder: '开始日期',
+ endPlaceholder: '结束日期',
+ rangeSeparator: '至'
+ }
+ }
+]
+```
+
+### 4. 日期时间范围选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'datetimerange',
+ label: '日期时间范围',
+ type: 'datetimerange',
+ config: {
+ type: 'datetimerange',
+ startPlaceholder: '开始时间',
+ endPlaceholder: '结束时间'
+ }
+ }
+]
+```
+
+### 5. 月份选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'month',
+ label: '月份',
+ type: 'month',
+ config: {
+ type: 'month',
+ placeholder: '请选择月份'
+ }
+ }
+]
+```
+
+### 6. 月份范围选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'monthrange',
+ label: '月份范围',
+ type: 'monthrange',
+ config: {
+ type: 'monthrange',
+ startPlaceholder: '开始月份',
+ endPlaceholder: '结束月份'
+ }
+ }
+]
+```
+
+### 7. 年份选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'year',
+ label: '年份',
+ type: 'year',
+ config: {
+ type: 'year',
+ placeholder: '请选择年份'
+ }
+ }
+]
+```
+
+### 8. 年份范围选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'yearrange',
+ label: '年份范围',
+ type: 'yearrange',
+ config: {
+ type: 'yearrange',
+ startPlaceholder: '开始年份',
+ endPlaceholder: '结束年份'
+ }
+ }
+]
+```
+
+### 9. 周选择
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'week',
+ label: '周',
+ type: 'week',
+ config: {
+ type: 'week',
+ placeholder: '请选择周'
+ }
+ }
+]
+```
+
+## 高级配置
+
+### 自定义快捷选项
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'daterange',
+ label: '日期范围',
+ type: 'daterange',
+ config: {
+ type: 'daterange',
+ shortcuts: [
+ {
+ text: '今天',
+ value: () => {
+ const today = new Date()
+ return [today, today]
+ }
+ },
+ {
+ text: '最近一周',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setDate(start.getDate() - 6)
+ return [start, end]
+ }
+ },
+ {
+ text: '最近一个月',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setMonth(start.getMonth() - 1)
+ return [start, end]
+ }
+ }
+ ]
+ }
+ }
+]
+```
+
+### 禁用特定日期
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'date',
+ label: '日期',
+ type: 'date',
+ config: {
+ type: 'date',
+ disabledDate: (time: Date) => {
+ // 禁用今天之前的日期
+ return time.getTime() < Date.now() - 8.64e7
+ }
+ }
+ }
+]
+```
+
+### 自定义格式
+
+```typescript
+const searchItems: SearchFormItem[] = [
+ {
+ prop: 'date',
+ label: '日期',
+ type: 'date',
+ config: {
+ type: 'date',
+ format: 'DD/MM/YYYY',
+ valueFormat: 'YYYY-MM-DD',
+ placeholder: '请选择日期 (DD/MM/YYYY)'
+ }
+ }
+]
+```
+
+## 配置选项
+
+| 参数 | 说明 | 类型 | 默认值 |
+| ---------------- | -------------- | --------------------------------- | ---------------- |
+| type | 日期选择器类型 | `DatePickerType` | `'date'` |
+| format | 显示格式 | `string` | 根据类型自动设置 |
+| valueFormat | 值格式 | `string` | 根据类型自动设置 |
+| placeholder | 占位符 | `string` | 自动生成 |
+| startPlaceholder | 开始日期占位符 | `string` | 根据类型自动设置 |
+| endPlaceholder | 结束日期占位符 | `string` | 根据类型自动设置 |
+| rangeSeparator | 范围分隔符 | `string` | `'至'` |
+| clearable | 是否可清空 | `boolean` | `true` |
+| disabled | 是否禁用 | `boolean` | `false` |
+| readonly | 是否只读 | `boolean` | `false` |
+| size | 尺寸 | `'large' \| 'default' \| 'small'` | `'default'` |
+| shortcuts | 快捷选项 | `Array` | 范围类型自动添加 |
+| disabledDate | 禁用日期函数 | `(time: Date) => boolean` | - |
+
+## 内置快捷选项
+
+对于日期范围和日期时间范围选择,组件会自动添加以下快捷选项:
+
+- 今天
+- 昨天
+- 最近7天
+- 最近30天
+- 本月
+- 上月
+
+## 返回值类型
+
+根据不同的选择器类型,组件会返回不同格式的值:
+
+- **单日期/时间类型**: `string | Date | null`
+- **范围类型**: `[string, string] | [Date, Date] | null`
+- **周类型**: `string` (格式: YYYY-MM-DD,表示该周的第一天)
diff --git a/src/components/core/forms/art-search-bar/widget/art-search-date/index.vue b/src/components/core/forms/art-search-bar/widget/art-search-date/index.vue
new file mode 100644
index 0000000..fff70d3
--- /dev/null
+++ b/src/components/core/forms/art-search-bar/widget/art-search-date/index.vue
@@ -0,0 +1,271 @@
+
+
+
+
+
diff --git a/src/components/core/forms/art-search-bar/widget/art-search-input/index.vue b/src/components/core/forms/art-search-bar/widget/art-search-input/index.vue
new file mode 100644
index 0000000..1f3e4f7
--- /dev/null
+++ b/src/components/core/forms/art-search-bar/widget/art-search-input/index.vue
@@ -0,0 +1,44 @@
+
+ changeValue(val)" />
+
+
+
diff --git a/src/components/core/forms/art-search-bar/widget/art-search-radio/index.vue b/src/components/core/forms/art-search-bar/widget/art-search-radio/index.vue
new file mode 100644
index 0000000..a4015ed
--- /dev/null
+++ b/src/components/core/forms/art-search-bar/widget/art-search-radio/index.vue
@@ -0,0 +1,57 @@
+
+ changeValue(val)">
+ {{ v.label }}
+
+
+
+
diff --git a/src/components/core/forms/art-search-bar/widget/art-search-select/index.vue b/src/components/core/forms/art-search-bar/widget/art-search-select/index.vue
new file mode 100644
index 0000000..81adead
--- /dev/null
+++ b/src/components/core/forms/art-search-bar/widget/art-search-select/index.vue
@@ -0,0 +1,69 @@
+
+ changeValue(val)">
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-wang-editor/index.vue b/src/components/core/forms/art-wang-editor/index.vue
new file mode 100644
index 0000000..3368274
--- /dev/null
+++ b/src/components/core/forms/art-wang-editor/index.vue
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/forms/art-wang-editor/style.scss b/src/components/core/forms/art-wang-editor/style.scss
new file mode 100644
index 0000000..36be8a5
--- /dev/null
+++ b/src/components/core/forms/art-wang-editor/style.scss
@@ -0,0 +1,186 @@
+$box-radius: calc(var(--custom-radius) / 2 + 2px);
+
+/* 编辑器容器 */
+.editor-wrapper {
+ z-index: 5000;
+ width: 100%;
+ height: 100%;
+ border: 1px solid rgba(var(--art-gray-300-rgb), 0.8);
+ border-radius: $box-radius !important;
+
+ .iconfont-sys {
+ font-size: 20px !important;
+ }
+
+ .w-e-bar {
+ border-radius: $box-radius $box-radius 0 0 !important;
+ }
+
+ .menu-item {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+
+ i {
+ margin-right: 5px;
+ }
+ }
+
+ /* 工具栏 */
+ .editor-toolbar {
+ border-bottom: 1px solid var(--art-border-color);
+ }
+
+ /* 下拉选择框配置 */
+ .w-e-select-list {
+ min-width: 140px;
+ padding: 5px 10px 10px;
+ border: none;
+ border-radius: 12px;
+ }
+
+ /* 下拉选择框元素配置 */
+ .w-e-select-list ul li {
+ margin-top: 5px;
+ font-size: 15px !important;
+ border-radius: 10px;
+ }
+
+ /* 下拉选择框 正文文字大小调整 */
+ .w-e-select-list ul li:last-of-type {
+ font-size: 16px !important;
+ }
+
+ /* 下拉选择框 hover 样式调整 */
+ .w-e-select-list ul li:hover {
+ background-color: var(--art-gray-200);
+ }
+
+ :root {
+ /* 激活颜色 */
+ --w-e-toolbar-active-bg-color: var(--art-gray-200);
+
+ /* toolbar 图标和文字颜色 */
+ --w-e-toolbar-color: #000;
+
+ /* 表格选中时候的边框颜色 */
+ --w-e-textarea-selected-border-color: #ddd;
+
+ /* 表格头背景颜色 */
+ --w-e-textarea-slight-bg-color: var(--art-gray-200);
+ }
+
+ /* 工具栏按钮样式 */
+ .w-e-bar-item button {
+ border-radius: 8px;
+ }
+
+ /* 工具栏 hover 按钮背景颜色 */
+ .w-e-bar-item button:hover {
+ background-color: var(--art-gray-200);
+ }
+
+ /* 工具栏分割线 */
+ .w-e-bar-divider {
+ height: 20px;
+ margin-top: 10px;
+ background-color: #ccc;
+ }
+
+ /* 工具栏菜单 */
+ .w-e-bar-item-group .w-e-bar-item-menus-container {
+ min-width: 120px;
+ padding: 10px 0;
+ border: none;
+ border-radius: 12px;
+ }
+
+ /* 代码块 */
+ .w-e-text-container [data-slate-editor] pre > code {
+ padding: 0.6rem 1rem;
+ background-color: var(--art-gray-100);
+ border-radius: 6px;
+ }
+
+ /* 弹出框 */
+ .w-e-drop-panel {
+ border: 0;
+ border-radius: 12px;
+ }
+
+ a {
+ color: #318ef4;
+ }
+
+ /* 表格样式优化 */
+ .w-e-text-container [data-slate-editor] .table-container th {
+ border-right: none;
+ }
+
+ .w-e-text-container [data-slate-editor] .table-container th:last-of-type {
+ border-right: 1px solid #ccc !important;
+ }
+
+ /* 引用 */
+ .w-e-text-container [data-slate-editor] blockquote {
+ background-color: rgba(var(--art-gray-300-rgb), 0.25);
+ border-left: 4px solid var(--art-gray-300);
+ }
+
+ /* 输入区域弹出 bar */
+ .w-e-hover-bar {
+ border-radius: 10px;
+ }
+
+ /* 超链接弹窗 */
+ .w-e-modal {
+ border: none;
+ border-radius: 12px;
+ }
+
+ /* 图片样式调整 */
+ .w-e-text-container [data-slate-editor] .w-e-selected-image-container {
+ overflow: inherit;
+
+ &:hover {
+ border: 0;
+ }
+
+ img {
+ border: 1px solid transparent;
+ transition: border 0.3s;
+
+ &:hover {
+ border: 1px solid #318ef4 !important;
+ }
+ }
+
+ .w-e-image-dragger {
+ width: 12px;
+ height: 12px;
+ background-color: #318ef4;
+ border: 2px solid #fff;
+ border-radius: 12px;
+ }
+
+ .left-top {
+ top: -6px;
+ left: -6px;
+ }
+
+ .right-top {
+ top: -6px;
+ right: -6px;
+ }
+
+ .left-bottom {
+ bottom: -6px;
+ left: -6px;
+ }
+
+ .right-bottom {
+ right: -6px;
+ bottom: -6px;
+ }
+ }
+}
diff --git a/src/components/core/layouts/art-breadcrumb/index.vue b/src/components/core/layouts/art-breadcrumb/index.vue
new file mode 100644
index 0000000..ca2271a
--- /dev/null
+++ b/src/components/core/layouts/art-breadcrumb/index.vue
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-breadcrumb/style.scss b/src/components/core/layouts/art-breadcrumb/style.scss
new file mode 100644
index 0000000..b75b7f4
--- /dev/null
+++ b/src/components/core/layouts/art-breadcrumb/style.scss
@@ -0,0 +1,29 @@
+@use '@styles/variables.scss' as *;
+
+.breadcrumb {
+ margin-left: 10px;
+
+ ul {
+ display: flex;
+
+ li {
+ font-size: 13px;
+ color: var(--art-text-gray-700) !important;
+
+ span {
+ font-size: 13px;
+ }
+
+ i {
+ margin: 0 7px;
+ font-size: 13px;
+ }
+ }
+ }
+}
+
+@media only screen and (max-width: $device-ipad) {
+ .breadcrumb {
+ display: none;
+ }
+}
diff --git a/src/components/core/layouts/art-chat-window/index.vue b/src/components/core/layouts/art-chat-window/index.vue
new file mode 100644
index 0000000..a028266
--- /dev/null
+++ b/src/components/core/layouts/art-chat-window/index.vue
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ message.sender }}
+ {{ message.time }}
+
+
{{ message.content }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-chat-window/style.scss b/src/components/core/layouts/art-chat-window/style.scss
new file mode 100644
index 0000000..2c0dacd
--- /dev/null
+++ b/src/components/core/layouts/art-chat-window/style.scss
@@ -0,0 +1,193 @@
+.header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+
+ .header-left {
+ .name {
+ font-size: 16px;
+ font-weight: 500;
+ }
+
+ .status {
+ display: flex;
+ gap: 4px;
+ align-items: center;
+ margin-top: 6px;
+
+ .dot {
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+
+ &.online {
+ background-color: var(--el-color-success);
+ }
+
+ &.offline {
+ background-color: var(--el-color-danger);
+ }
+ }
+
+ .status-text {
+ font-size: 12px;
+ color: var(--art-gray-500);
+ }
+ }
+ }
+
+ .header-right {
+ .icon-close {
+ cursor: pointer;
+ }
+ }
+}
+
+.chat-container {
+ display: flex;
+ flex-direction: column;
+ height: calc(100% - 70px);
+
+ .chat-messages {
+ flex: 1;
+ padding: 30px 16px;
+ overflow-y: auto;
+ border-top: 1px solid var(--el-border-color-lighter);
+
+ &::-webkit-scrollbar {
+ width: 5px !important;
+ }
+
+ .message-item {
+ display: flex;
+ flex-direction: row;
+ gap: 8px;
+ align-items: flex-start;
+ width: 100%;
+ margin-bottom: 30px;
+
+ .message-text {
+ font-size: 14px;
+ color: var(--art-gray-900);
+ border-radius: 6px;
+ }
+
+ &.message-left {
+ justify-content: flex-start;
+
+ .message-content {
+ align-items: flex-start;
+
+ .message-info {
+ flex-direction: row;
+ }
+
+ .message-text {
+ background-color: #f8f5ff;
+ }
+ }
+ }
+
+ &.message-right {
+ flex-direction: row-reverse;
+
+ .message-content {
+ align-items: flex-end;
+
+ .message-info {
+ flex-direction: row-reverse;
+ }
+
+ .message-text {
+ background-color: #e9f3ff;
+ }
+ }
+ }
+
+ .message-avatar {
+ flex-shrink: 0;
+ }
+
+ .message-content {
+ display: flex;
+ flex-direction: column;
+ max-width: 70%;
+
+ .message-info {
+ display: flex;
+ gap: 8px;
+ margin-bottom: 4px;
+ font-size: 12px;
+
+ .message-time {
+ color: var(--el-text-color-secondary);
+ }
+
+ .sender-name {
+ font-weight: 500;
+ }
+ }
+
+ .message-text {
+ padding: 10px 14px;
+ line-height: 1.4;
+ }
+ }
+ }
+ }
+
+ .chat-input {
+ padding: 16px 16px 0;
+
+ .input-actions {
+ display: flex;
+ gap: 8px;
+ padding: 8px 0;
+ }
+
+ .chat-input-actions {
+ display: flex;
+ align-items: center; // 修正为单数
+ justify-content: space-between;
+ margin-top: 12px;
+
+ .left {
+ display: flex;
+ align-items: center;
+
+ i {
+ margin-right: 20px;
+ font-size: 16px;
+ color: var(--art-gray-500);
+ cursor: pointer;
+ }
+ }
+
+ // 确保发送按钮与输入框对齐
+ el-button {
+ min-width: 80px;
+ }
+ }
+ }
+}
+
+.dark {
+ .chat-container {
+ .chat-messages {
+ .message-item {
+ &.message-left {
+ .message-text {
+ background-color: #232323 !important;
+ }
+ }
+
+ &.message-right {
+ .message-text {
+ background-color: #182331 !important;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/components/core/layouts/art-fast-enter/index.vue b/src/components/core/layouts/art-fast-enter/index.vue
new file mode 100644
index 0000000..746e5fc
--- /dev/null
+++ b/src/components/core/layouts/art-fast-enter/index.vue
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ application.name }}
+
{{ application.description }}
+
+
+
+
+
+
+
快速链接
+
+ -
+ {{ quickLink.name }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-fast-enter/style.scss b/src/components/core/layouts/art-fast-enter/style.scss
new file mode 100644
index 0000000..1964691
--- /dev/null
+++ b/src/components/core/layouts/art-fast-enter/style.scss
@@ -0,0 +1,128 @@
+.fast-enter-trigger {
+ display: flex;
+ gap: 8px;
+ align-items: center;
+
+ .btn {
+ position: relative;
+ display: block;
+ width: 38px;
+ height: 38px;
+ line-height: 38px;
+ text-align: center;
+ cursor: pointer;
+ border-radius: 6px;
+ transition: all 0.2s;
+
+ i {
+ display: block;
+ font-size: 19px;
+ color: var(--art-gray-600);
+ }
+
+ &:hover {
+ color: var(--main-color);
+ background-color: rgba(var(--art-gray-200-rgb), 0.7);
+ }
+
+ .red-dot {
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ width: 6px;
+ height: 6px;
+ background-color: var(--el-color-danger);
+ border-radius: 50%;
+ }
+ }
+}
+
+.fast-enter {
+ display: grid;
+ grid-template-columns: 2fr 0.8fr;
+
+ .apps-section {
+ .apps-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 6px;
+ }
+
+ .app-item {
+ display: flex;
+ gap: 12px;
+ align-items: center;
+ padding: 8px 12px;
+ margin-right: 12px;
+ cursor: pointer;
+ border-radius: 8px;
+
+ &:hover {
+ background-color: rgba(var(--art-gray-200-rgb), 0.7);
+
+ .app-icon {
+ background-color: transparent !important;
+ }
+ }
+
+ .app-icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 46px;
+ height: 46px;
+ background-color: rgba(var(--art-gray-200-rgb), 0.7);
+ border-radius: 8px;
+
+ i {
+ font-size: 20px;
+ }
+ }
+
+ .app-info {
+ h3 {
+ margin: 0;
+ font-size: 14px;
+ font-weight: 500;
+ color: var(--art-text-gray-800);
+ }
+
+ p {
+ margin: 4px 0 0;
+ font-size: 12px;
+ color: var(--art-text-gray-500);
+ }
+ }
+ }
+ }
+
+ .quick-links {
+ padding: 8px 0 0 24px;
+ border-left: 1px solid var(--el-border-color-lighter);
+
+ h3 {
+ margin: 0 0 10px;
+ font-size: 16px;
+ font-weight: 500;
+ color: var(--art-text-gray-800);
+ }
+
+ ul {
+ li {
+ padding: 8px 0;
+ cursor: pointer;
+
+ &:hover {
+ span {
+ color: var(--el-color-primary);
+ }
+ }
+
+ span {
+ color: var(--art-text-gray-600);
+ text-decoration: none;
+ }
+ }
+ }
+ }
+}
diff --git a/src/components/core/layouts/art-fireworks-effect/index.vue b/src/components/core/layouts/art-fireworks-effect/index.vue
new file mode 100644
index 0000000..45605d9
--- /dev/null
+++ b/src/components/core/layouts/art-fireworks-effect/index.vue
@@ -0,0 +1,656 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-global-search/index.vue b/src/components/core/layouts/art-global-search/index.vue
new file mode 100644
index 0000000..4612212
--- /dev/null
+++ b/src/components/core/layouts/art-global-search/index.vue
@@ -0,0 +1,348 @@
+
+
+
+
+
+
+
+ ESC
+
+
+
+
+
+
+
+ {{ formatMenuTitle(item.meta.title) }}
+
+
+
+
+
+
+
{{ $t('search.historyTitle') }}
+
+
+ {{ formatMenuTitle(item.meta.title) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-global-search/style.scss b/src/components/core/layouts/art-global-search/style.scss
new file mode 100644
index 0000000..5a89bcb
--- /dev/null
+++ b/src/components/core/layouts/art-global-search/style.scss
@@ -0,0 +1,243 @@
+@use '@styles/variables.scss' as *;
+
+.layout-search {
+ :deep(.search-modal) {
+ background-color: rgba($color: #000, $alpha: 20%);
+ }
+
+ :deep(.el-dialog__header) {
+ padding: 5px 0;
+ }
+
+ :deep(.el-dialog) {
+ padding: 0 15px;
+ border-radius: calc(var(--custom-radius) / 2 + 8px) !important;
+ }
+
+ .el-input {
+ height: 48px;
+
+ :deep(.el-input__wrapper) {
+ background-color: rgba(var(--art-gray-200-rgb), 0.8);
+ border: 1px solid var(--art-border-dashed-color);
+ border-radius: calc(var(--custom-radius) / 2 + 2px) !important;
+ box-shadow: none;
+ }
+
+ :deep(.el-input__inner) {
+ color: var(--art-gray-600) !important;
+ }
+
+ .search-keydown {
+ display: flex;
+ align-items: center;
+ height: 20px;
+ padding: 0 4px;
+ color: var(--art-gray-500);
+ background-color: var(--art-bg-color);
+ border-radius: 4px;
+
+ i {
+ font-size: 12px;
+ }
+
+ span {
+ margin-left: 2px;
+ font-size: 12px;
+ }
+ }
+ }
+
+ .search-scrollbar {
+ margin-top: 20px;
+
+ .result {
+ width: 100%;
+ background: var(--rt-main-bg-color);
+
+ .box {
+ margin-top: 0 !important;
+ font-size: 16px;
+ font-weight: 500;
+ line-height: 1;
+ cursor: pointer;
+
+ .menu-icon {
+ margin-right: 5px;
+ font-size: 18px;
+ }
+
+ div {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: 50px;
+ padding: 0 16px;
+ margin-top: 8px;
+ font-size: 15px;
+ font-weight: 400;
+ color: var(--art-gray-700);
+ background: var(--art-gray-100);
+ border-radius: calc(var(--custom-radius) / 2 + 2px) !important;
+
+ &.highlighted {
+ color: #fff !important;
+ background-color: var(--el-color-primary-light-3) !important;
+ }
+
+ .selected-icon {
+ font-size: 15px;
+ }
+ }
+ }
+ }
+
+ .history-box {
+ .title {
+ font-size: 13px;
+ color: var(--art-gray-600);
+ }
+
+ .history-result {
+ width: 100%;
+ margin-top: 5px;
+ background: var(--rt-main-bg-color);
+
+ .box {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ height: 50px;
+ padding: 0 16px;
+ margin-top: 8px;
+ font-size: 15px;
+ font-weight: 400;
+ color: var(--art-gray-800);
+ cursor: pointer;
+ background: var(--art-gray-100);
+ border-radius: calc(var(--custom-radius) / 2 + 2px) !important;
+
+ &.highlighted {
+ color: #fff !important;
+ background-color: var(--el-color-primary-light-3) !important;
+
+ .selected-icon {
+ color: #fff !important;
+ }
+ }
+
+ .selected-icon {
+ width: 20px;
+ height: 20px;
+ font-size: 15px;
+ line-height: 20px;
+ color: var(--art-gray-500);
+ text-align: center;
+ user-select: none;
+ border-radius: 50%;
+ transition: background-color 0.3s;
+
+ &:hover {
+ background-color: rgba($color: #000, $alpha: 20%);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .dialog-footer {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ padding: 5px 0 7px;
+ border-top: 1px solid rgba(var(--art-gray-300-rgb), 0.6);
+
+ > div {
+ display: flex;
+ align-items: center;
+ height: 40px;
+
+ i {
+ top: 6px;
+ left: 117px;
+ box-sizing: border-box;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: center;
+ width: 22px;
+ height: 20px;
+ padding: 6px;
+ margin-right: 8px;
+ font-size: 12px;
+ color: var(--art-gray-500);
+ background: var(--art-bg-color);
+ border: 1px solid var(--art-border-dashed-color);
+ border-radius: 3px;
+ box-shadow: 0 2px 0 var(--art-border-dashed-color);
+
+ &:last-of-type {
+ margin-right: 6px;
+ }
+ }
+
+ span {
+ margin-right: 15px;
+ font-size: 12px;
+ }
+ }
+ }
+}
+
+.dark {
+ .layout-search {
+ .el-input {
+ :deep(.el-input__wrapper) {
+ background-color: #252526;
+ border: 1px solid #4c4d50;
+ }
+
+ .search-keydown {
+ background-color: #252526;
+ border: 1px solid #4c4d50;
+ }
+ }
+
+ :deep(.search-modal) {
+ background-color: rgb(23 23 26 / 60%);
+ backdrop-filter: none;
+ }
+
+ :deep(.el-dialog) {
+ background-color: #252526;
+ }
+
+ .result {
+ .box {
+ div {
+ color: rgba($color: #fff, $alpha: 60%) !important;
+
+ &.highlighted {
+ color: #fff !important;
+ }
+ }
+ }
+ }
+
+ .dialog-footer {
+ > div {
+ color: var(--art-gray-600) !important;
+
+ i {
+ background-color: var(--art-gray-100);
+ }
+
+ span {
+ margin-right: 15px;
+ font-size: 12px;
+ }
+ }
+ }
+ }
+}
diff --git a/src/components/core/layouts/art-header-bar/index.vue b/src/components/core/layouts/art-header-bar/index.vue
new file mode 100644
index 0000000..1b70c52
--- /dev/null
+++ b/src/components/core/layouts/art-header-bar/index.vue
@@ -0,0 +1,375 @@
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-header-bar/mobile.scss b/src/components/core/layouts/art-header-bar/mobile.scss
new file mode 100644
index 0000000..264498c
--- /dev/null
+++ b/src/components/core/layouts/art-header-bar/mobile.scss
@@ -0,0 +1,59 @@
+@use '@styles/variables.scss' as *;
+
+@media screen and (max-width: $device-ipad-pro) {
+ .layout-top-bar {
+ .menu {
+ .right {
+ .search-wrap {
+ display: none;
+ }
+
+ .screen {
+ display: none;
+ }
+ }
+ }
+ }
+}
+
+@media screen and (max-width: $device-ipad) {
+ .layout-top-bar {
+ left: 0;
+ z-index: 100;
+ width: 100% !important;
+
+ .refresh-btn,
+ .screen-box {
+ display: none !important;
+ }
+
+ .logo {
+ display: block !important;
+ }
+ }
+}
+
+@media screen and (max-width: $device-phone) {
+ .layout-top-bar {
+ .btn-box {
+ width: 40px;
+ }
+
+ .menu {
+ .left {
+ .logo {
+ padding: 0 10px 0 18px;
+ }
+ }
+
+ .right {
+ .user {
+ .cover {
+ width: 26px;
+ height: 26px;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/components/core/layouts/art-header-bar/style.scss b/src/components/core/layouts/art-header-bar/style.scss
new file mode 100644
index 0000000..311fa92
--- /dev/null
+++ b/src/components/core/layouts/art-header-bar/style.scss
@@ -0,0 +1,462 @@
+@use '@styles/variables.scss' as *;
+@use '@styles/mixin.scss' as *;
+
+.user-menu-popover {
+ padding: 0 !important;
+
+ .user-menu-box {
+ padding-top: 10px;
+
+ .user-head {
+ display: flex;
+ align-items: center;
+ padding: 0 0 4px;
+
+ .cover {
+ width: 40px;
+ height: 40px;
+ margin: 0 10px 0 0;
+ overflow: hidden;
+ background: #eee;
+ border-radius: 50%;
+ }
+
+ .user-wrap {
+ width: calc(100% - 60px);
+ height: 100%;
+
+ span {
+ display: block;
+ }
+
+ .name {
+ font-size: 14px;
+ font-weight: 500;
+ color: var(--art-gray-800);
+
+ @include ellipsis();
+ }
+
+ .email {
+ margin-top: 3px;
+ font-size: 12px;
+ color: var(--art-gray-500);
+
+ @include ellipsis();
+ }
+ }
+ }
+
+ .user-menu {
+ padding: 16px 0;
+ margin-top: 10px;
+ border-top: 1px solid var(--art-border-color);
+
+ li {
+ display: flex;
+ align-items: center;
+ padding: 8px;
+ margin-bottom: 10px;
+ cursor: pointer;
+ user-select: none;
+ border-radius: 6px;
+
+ &:last-of-type {
+ margin-bottom: 0;
+ }
+
+ i {
+ display: block;
+ width: 25px;
+ font-size: 16px;
+ color: var(--art-text-gray-800);
+ }
+
+ span {
+ font-size: 14px;
+ color: var(--art-text-gray-800);
+ }
+
+ &:hover {
+ background-color: rgb(var(--art-gray-200-rgb), 0.7);
+ }
+ }
+
+ .line {
+ width: 100%;
+ height: 1px;
+ margin: 10px 0;
+ background-color: var(--art-border-color);
+ }
+
+ .logout-btn {
+ box-sizing: border-box;
+ width: 100%;
+ padding: 7px 0;
+ margin-top: 20px;
+ font-size: 13px;
+ color: var(--art-text-gray-800);
+ text-align: center;
+ cursor: pointer;
+ border: 1px solid var(--art-border-dashed-color);
+ border-radius: 7px;
+ transition: all 0.2s;
+
+ &:hover {
+ box-shadow: 0 0 10px rgb(var(--art-gray-300-rgb), 0.7);
+ }
+ }
+ }
+ }
+}
+
+.layout-top-bar {
+ position: fixed;
+ top: 0;
+ right: 0;
+ z-index: 100;
+ // background: transparent !important;
+ background-color: var(--art-bg-color) !important;
+ transition: all 0.3s ease-in-out;
+
+ &.tab-card {
+ background-color: var(--art-main-bg-color) !important;
+
+ .menu {
+ border-bottom: 1px solid var(--art-border-color);
+ }
+ }
+
+ &.tab-google {
+ background-color: var(--art-main-bg-color) !important;
+
+ .menu {
+ border-bottom: 1px solid var(--art-border-color);
+ }
+ }
+
+ .btn-box {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 46px;
+ height: 60px;
+
+ .btn {
+ display: block;
+ width: 38px;
+ height: 38px;
+ line-height: 38px;
+ text-align: center;
+ cursor: pointer;
+ border-radius: 6px;
+ transition: all 0.2s;
+
+ i {
+ display: block;
+ font-size: 19px;
+ color: var(--art-gray-600);
+ }
+
+ &.refresh-btn:hover {
+ i {
+ animation: rotate180 0.5s;
+ }
+ }
+
+ &.language-btn:hover {
+ i {
+ animation: moveUp 0.4s;
+ }
+ }
+
+ &.setting-btn:hover {
+ i {
+ animation: rotate180 0.5s;
+ }
+ }
+
+ &.full-screen-btn:hover {
+ i {
+ animation: expand 0.6s forwards;
+ }
+ }
+
+ &.exit-full-screen-btn:hover {
+ i {
+ animation: shrink 0.6s forwards;
+ }
+ }
+
+ &.notice-button:hover {
+ i {
+ animation: shake 0.5s ease-in-out;
+ }
+ }
+
+ &.chat-button:hover {
+ i {
+ animation: shake 0.5s ease-in-out;
+ }
+ }
+
+ &:hover {
+ color: var(--main-color);
+ background-color: rgba(var(--art-gray-200-rgb), 0.7);
+ }
+
+ &.menu-btn {
+ margin-left: 10px;
+ }
+ }
+
+ &.chat-btn {
+ .btn {
+ position: relative;
+
+ .dot {
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ display: block;
+ width: 6px;
+ height: 6px;
+ background: var(--el-color-success) !important;
+ border-radius: 50%;
+ animation: breathing 1.5s ease-in-out infinite;
+ }
+ }
+ }
+ }
+
+ .menu {
+ position: relative;
+ box-sizing: border-box;
+ display: flex;
+ justify-content: space-between;
+ height: 60px;
+ line-height: 60px;
+ user-select: none;
+ // background: var(--art-bg-color);
+
+ > .left {
+ line-height: 60px;
+
+ .top-header {
+ display: flex;
+ align-items: center;
+ cursor: pointer;
+
+ .logo {
+ padding-left: 18px;
+ }
+
+ p {
+ margin: 0 10px 0 15px;
+ font-size: 18px;
+ }
+ }
+
+ .logo2 {
+ display: none;
+ padding-left: 15px;
+ overflow: hidden;
+ vertical-align: -0.15em;
+ fill: currentcolor;
+ }
+
+ .el-route {
+ margin-left: 10px;
+ line-height: 60px;
+ }
+ }
+
+ .right {
+ display: flex;
+
+ .search-wrap {
+ position: relative;
+ display: flex;
+ align-items: center;
+ margin-right: 12px;
+
+ .search-input {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 160px;
+ height: 36px;
+ padding: 0 10px;
+ cursor: pointer;
+ border: 1px solid var(--art-border-dashed-color);
+ border-radius: calc(var(--custom-radius) / 2 + 2px) !important;
+
+ .left {
+ > i {
+ font-size: 14px;
+ }
+
+ span {
+ margin-left: 10px;
+ font-size: 13px;
+ font-weight: 400;
+ color: var(--art-gray-500);
+ }
+ }
+
+ .search-keydown {
+ display: flex;
+ align-items: center;
+ height: 20px;
+ padding: 0 6px;
+ color: var(--art-gray-500);
+ background-color: var(--art-bg-color);
+ border: 1px solid var(--art-border-dashed-color);
+ border-radius: 4px;
+
+ i {
+ font-size: 12px;
+ }
+
+ span {
+ margin-left: 2px;
+ font-size: 12px;
+ }
+ }
+ }
+ }
+
+ .btn-box {
+ position: relative;
+ cursor: pointer;
+ transition: background-color 0.3s;
+
+ .count {
+ position: absolute;
+ top: 19px;
+ right: 17px;
+ display: block;
+ width: 6px;
+ height: 6px;
+ background: var(--el-color-danger) !important;
+ border-radius: 50%;
+ }
+ }
+
+ .user {
+ display: flex;
+ align-items: center;
+ height: 60px;
+ padding: 0 10px;
+ line-height: 60px;
+ transition: background-color 0.3s;
+
+ &:hover ul {
+ height: 80px;
+ }
+
+ .cover {
+ width: 34px;
+ height: 34px;
+ margin: 0 10px 0 0;
+ overflow: hidden;
+ cursor: pointer;
+ background: #eee;
+ border-radius: 50%;
+ }
+ }
+ }
+ }
+}
+
+@keyframes rotate180 {
+ 0% {
+ transform: rotate(0);
+ }
+
+ 100% {
+ transform: rotate(180deg);
+ }
+}
+
+@keyframes shake {
+ 0% {
+ transform: rotate(0);
+ }
+
+ 25% {
+ transform: rotate(-5deg);
+ }
+
+ 50% {
+ transform: rotate(5deg);
+ }
+
+ 75% {
+ transform: rotate(-5deg);
+ }
+
+ 100% {
+ transform: rotate(0);
+ }
+}
+
+@keyframes expand {
+ 0% {
+ transform: scale(1);
+ }
+
+ 50% {
+ transform: scale(1.1);
+ }
+
+ 100% {
+ transform: scale(1);
+ }
+}
+
+@keyframes shrink {
+ 0% {
+ transform: scale(1);
+ }
+
+ 50% {
+ transform: scale(0.9);
+ }
+
+ 100% {
+ transform: scale(1);
+ }
+}
+
+@keyframes moveUp {
+ 0% {
+ transform: translateY(0);
+ }
+
+ 50% {
+ transform: translateY(-3px);
+ }
+
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@keyframes breathing {
+ 0% {
+ opacity: 0.4;
+ transform: scale(0.9);
+ }
+
+ 50% {
+ opacity: 1;
+ transform: scale(1.1);
+ }
+
+ 100% {
+ opacity: 0.4;
+ transform: scale(0.9);
+ }
+}
diff --git a/src/components/core/layouts/art-layouts/index.vue b/src/components/core/layouts/art-layouts/index.vue
new file mode 100644
index 0000000..4d7aeda
--- /dev/null
+++ b/src/components/core/layouts/art-layouts/index.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-menus/art-horizontal-menu/index.vue b/src/components/core/layouts/art-menus/art-horizontal-menu/index.vue
new file mode 100644
index 0000000..86856f9
--- /dev/null
+++ b/src/components/core/layouts/art-menus/art-horizontal-menu/index.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-menus/art-horizontal-menu/widget/HorizontalSubmenu.vue b/src/components/core/layouts/art-menus/art-horizontal-menu/widget/HorizontalSubmenu.vue
new file mode 100644
index 0000000..74bfb76
--- /dev/null
+++ b/src/components/core/layouts/art-menus/art-horizontal-menu/widget/HorizontalSubmenu.vue
@@ -0,0 +1,100 @@
+
+
+
+
+ {{ formatMenuTitle(item.meta.title) }}
+
+
+
+
+
+
+
+
+ {{ formatMenuTitle(item.meta.title) }}
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-menus/art-mixed-menu/index.vue b/src/components/core/layouts/art-menus/art-mixed-menu/index.vue
new file mode 100644
index 0000000..5e7fe5d
--- /dev/null
+++ b/src/components/core/layouts/art-menus/art-mixed-menu/index.vue
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-menus/art-sidebar-menu/index.vue b/src/components/core/layouts/art-menus/art-sidebar-menu/index.vue
new file mode 100644
index 0000000..91e12ed
--- /dev/null
+++ b/src/components/core/layouts/art-menus/art-sidebar-menu/index.vue
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-menus/art-sidebar-menu/style.scss b/src/components/core/layouts/art-menus/art-sidebar-menu/style.scss
new file mode 100644
index 0000000..873753a
--- /dev/null
+++ b/src/components/core/layouts/art-menus/art-sidebar-menu/style.scss
@@ -0,0 +1,229 @@
+@use '@styles/variables.scss' as *;
+
+.layout-sidebar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 101;
+ display: flex;
+ height: 100vh;
+ user-select: none;
+ scrollbar-width: none;
+
+ &.no-border {
+ border-right: none !important;
+ }
+
+ .dual-menu-left {
+ position: relative;
+ width: 80px;
+ height: 100%;
+ border-right: 1px solid var(--art-card-border) !important;
+
+ // 隐藏滚动条
+ :deep(.el-scrollbar__bar.is-vertical) {
+ display: none;
+ }
+
+ .logo {
+ margin: auto;
+ margin-top: 15px;
+ cursor: pointer;
+ }
+
+ ul {
+ li {
+ > div {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ text-align: center;
+ cursor: pointer;
+ border-radius: 5px;
+
+ i {
+ display: block;
+ font-size: 20px;
+ }
+
+ span {
+ display: block;
+ width: 100%;
+ font-size: 12px;
+ }
+
+ &.is-active {
+ background: var(--main-color);
+
+ i,
+ span {
+ color: #fff !important;
+ }
+ }
+ }
+ }
+ }
+
+ .switch-btn {
+ position: absolute;
+ right: 0;
+ bottom: 15px;
+ left: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ i {
+ display: block;
+ align-items: center;
+ width: 40px;
+ height: 40px;
+ font-size: 20px;
+ line-height: 40px;
+ text-align: center;
+ cursor: pointer;
+ border-radius: 5px;
+ transition: all 0.1s;
+
+ &:hover {
+ background-color: var(--art-gray-200);
+ }
+ }
+ }
+ }
+
+ :deep(.badge) {
+ position: absolute;
+ top: 0;
+ right: 20px;
+ bottom: 0;
+ width: 6px;
+ height: 6px;
+ margin: auto;
+ background: #ff3860;
+ border-radius: 50%;
+ animation: breathe 1.5s ease-in-out infinite;
+ }
+
+ :deep(.text-badge) {
+ position: absolute;
+ top: 0;
+ right: 12px;
+ bottom: 0;
+ min-width: 20px;
+ height: 20px;
+ padding: 0 5px;
+ margin: auto;
+ font-size: 12px;
+ line-height: 20px;
+ color: #fff;
+ text-align: center;
+ background: #fd4e4e;
+ border-radius: 5px;
+ }
+
+ .header {
+ position: relative;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ height: 60px;
+ overflow: hidden;
+ line-height: 60px;
+ cursor: pointer;
+
+ .logo {
+ margin-left: 28px;
+ }
+
+ p {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 64px;
+ box-sizing: border-box;
+ margin-left: 10px;
+ font-size: 18px;
+
+ &.is-dual-menu-name {
+ right: 0;
+ left: 0;
+ margin: auto;
+ text-align: center;
+ }
+ }
+ }
+
+ .el-menu {
+ box-sizing: border-box;
+ height: calc(100vh - 60px);
+ overflow-y: auto;
+ // 防止菜单内的滚动影响整个页面滚动
+ overscroll-behavior: contain;
+ border-right: 0;
+ scrollbar-width: none;
+ -ms-scroll-chaining: contain;
+
+ &::-webkit-scrollbar {
+ width: 0 !important;
+ }
+ }
+
+ .menu-model {
+ display: none;
+ }
+}
+
+@media only screen and (max-width: $device-ipad) {
+ .layout-sidebar {
+ .header {
+ display: none;
+ }
+
+ .el-menu {
+ height: 100vh;
+ }
+
+ .el-menu--collapse {
+ width: 0;
+ }
+ }
+}
+
+@media only screen and (max-width: $device-ipad) {
+ .layout-sidebar {
+ width: 0;
+
+ .menu-model {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ display: block;
+ width: 100%;
+ height: 100vh;
+ background: rgba($color: #000, $alpha: 50%);
+ transition: opacity 0.2s ease-in-out;
+ }
+ }
+}
+
+@keyframes breathe {
+ 0% {
+ opacity: 0.7;
+ transform: scale(1);
+ }
+
+ 50% {
+ opacity: 1;
+ transform: scale(1.1);
+ }
+
+ 100% {
+ opacity: 0.7;
+ transform: scale(1);
+ }
+}
diff --git a/src/components/core/layouts/art-menus/art-sidebar-menu/theme.scss b/src/components/core/layouts/art-menus/art-sidebar-menu/theme.scss
new file mode 100644
index 0000000..aa3d54d
--- /dev/null
+++ b/src/components/core/layouts/art-menus/art-sidebar-menu/theme.scss
@@ -0,0 +1,262 @@
+@use '@styles/variables.scss' as *;
+@use '@styles/mixin.scss' as *;
+
+// 重新修改菜单样式
+$menu-height: 46px; // 菜单高度
+$menu-icon-size: 20px; // 菜单图标大小
+$menu-font-size: 14px; // 菜单字体大小
+$hover-bg-color: rgba(var(--art-gray-200-rgb), 0.8); // 鼠标移入背景色
+
+.layout-sidebar {
+ // ---------------------- Modify default style ----------------------
+
+ // 菜单折叠样式
+ .menu-left-close {
+ .header {
+ .logo {
+ margin: 0 auto;
+ }
+ }
+ }
+
+ // 菜单图标
+ .menu-icon {
+ margin-right: 10px;
+ font-size: $menu-icon-size;
+ }
+
+ // 菜单高度
+ .el-sub-menu__title,
+ .el-menu-item {
+ height: $menu-height !important;
+ margin-bottom: 4px;
+ line-height: $menu-height !important;
+
+ span {
+ font-size: $menu-font-size !important;
+
+ @include ellipsis();
+ }
+
+ &.is-active {
+ .menu-icon {
+ // 选中菜单图标颜色
+ color: var(--main-color) !important;
+ }
+ }
+ }
+
+ // 右侧箭头
+ .el-sub-menu__icon-arrow {
+ width: 13px !important;
+ font-size: 13px !important;
+ }
+
+ // 菜单折叠
+ .el-menu--collapse {
+ .el-sub-menu.is-active {
+ .el-sub-menu__title {
+ .iconfont-sys {
+ // 选中菜单图标颜色
+ color: var(--main-color) !important;
+ }
+ }
+ }
+ }
+
+ // ---------------------- Design theme menu ----------------------
+
+ .el-menu-design {
+ .el-sub-menu__title,
+ .el-menu-item {
+ width: calc(100% - 16px);
+ margin-left: 8px;
+ border-radius: 6px;
+
+ .menu-icon {
+ margin-left: -4px;
+ }
+ }
+
+ // 选中颜色
+ .el-menu-item.is-active {
+ color: var(--main-color) !important;
+ background-color: var(--el-color-primary-light-9);
+ }
+
+ // 鼠标移入背景色
+ .el-sub-menu__title:hover,
+ .el-menu-item:not(.is-active):hover {
+ background: $hover-bg-color !important;
+ }
+
+ // 右侧箭头
+ .el-sub-menu__icon-arrow {
+ color: var(--art-gray-600);
+ }
+ }
+
+ // ---------------------- Dark theme menu ----------------------
+ .el-menu-dark {
+ .el-sub-menu__title,
+ .el-menu-item {
+ width: calc(100% - 16px);
+ margin-left: 8px;
+ border-radius: 6px;
+
+ .menu-icon {
+ margin-left: -4px;
+ }
+ }
+
+ // 选中颜色
+ .el-menu-item.is-active {
+ background-color: var(--el-color-primary-light-1);
+
+ .menu-icon {
+ color: #fff !important;
+ }
+ }
+
+ // 鼠标移入背景色
+ .el-sub-menu__title:hover,
+ .el-menu-item:not(.is-active):hover {
+ background: #0f1015 !important;
+ }
+
+ // 右侧箭头
+ .el-sub-menu__icon-arrow {
+ color: var(--art-gray-400);
+ }
+ }
+
+ // ---------------------- Light theme menu ----------------------
+ .el-menu-light {
+ .el-sub-menu__title,
+ .el-menu-item {
+ .menu-icon {
+ margin-left: 4px;
+ }
+ }
+
+ // 选中颜色
+ .el-menu-item.is-active {
+ background-color: var(--el-color-primary-light-9);
+
+ &::before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 4px;
+ height: 100%;
+ content: '';
+ background: var(--main-color);
+ }
+ }
+
+ // 鼠标移入背景色
+ .el-sub-menu__title:hover,
+ .el-menu-item:not(.is-active):hover {
+ background: $hover-bg-color !important;
+ }
+
+ .el-sub-menu__icon-arrow {
+ color: var(--art-gray-600);
+ }
+ }
+}
+
+.dark {
+ .layout-sidebar {
+ .el-menu-item.is-active {
+ span {
+ // 暗黑主题模式,选中菜单文字颜色
+ color: var(--main-color) !important;
+ }
+
+ .menu-icon {
+ color: var(--main-color) !important;
+ }
+ }
+ }
+}
+
+@media only screen and (max-width: $device-phone) {
+ .layout-sidebar {
+ .el-menu-design {
+ > .el-sub-menu {
+ margin-left: 0;
+ }
+
+ .el-sub-menu {
+ width: 100% !important;
+ }
+ }
+ }
+}
+
+.el-popper.is-pure {
+ border: 0.5px solid var(--art-border-dashed-color) !important;
+ border-radius: 12px;
+}
+
+// 菜单折叠 hover 弹窗样式
+.el-menu--vertical,
+.el-menu--popup-container {
+ .el-menu--popup {
+ padding: 8px;
+
+ .el-sub-menu__title:hover,
+ .el-menu-item:hover {
+ background-color: var(--art-gray-200) !important;
+ border-radius: 6px;
+ }
+
+ .el-menu-item {
+ height: 40px;
+ margin-bottom: 5px;
+ border-radius: 6px;
+
+ &:last-of-type {
+ margin-bottom: 0;
+ }
+ }
+
+ .el-sub-menu {
+ height: 40px !important;
+ margin-bottom: 5px;
+
+ .el-sub-menu__title {
+ height: 40px !important;
+ border-radius: 6px;
+ }
+
+ &:last-of-type {
+ margin-bottom: 0;
+ }
+ }
+
+ .el-menu-item.is-active {
+ color: var(--art-gray-900) !important;
+ background-color: var(--art-gray-200) !important;
+ }
+ }
+}
+
+// 菜单折叠 hover 弹窗样式(黑色菜单)
+.menu-left-dark-popper {
+ .el-menu--vertical,
+ .el-menu--popup-container {
+ .el-menu--popup {
+ .el-sub-menu__title:hover,
+ .el-menu-item:hover {
+ background-color: rgb(255 255 255 / 8%) !important;
+ }
+
+ .el-menu-item.is-active {
+ color: #eee !important;
+ background-color: rgb(255 255 255 / 8%) !important;
+ }
+ }
+ }
+}
diff --git a/src/components/core/layouts/art-menus/art-sidebar-menu/widget/SidebarSubmenu.vue b/src/components/core/layouts/art-menus/art-sidebar-menu/widget/SidebarSubmenu.vue
new file mode 100644
index 0000000..305ad62
--- /dev/null
+++ b/src/components/core/layouts/art-menus/art-sidebar-menu/widget/SidebarSubmenu.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.meta.showTextBadge }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-notification/index.vue b/src/components/core/layouts/art-notification/index.vue
new file mode 100644
index 0000000..25ad045
--- /dev/null
+++ b/src/components/core/layouts/art-notification/index.vue
@@ -0,0 +1,290 @@
+
+
+
+
+ -
+ {{ item.name }} ({{ item.num }})
+
+
+
+
+
+
+ {{ $t('notice.viewAll') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-notification/style.scss b/src/components/core/layouts/art-notification/style.scss
new file mode 100644
index 0000000..6ca4882
--- /dev/null
+++ b/src/components/core/layouts/art-notification/style.scss
@@ -0,0 +1,262 @@
+@use '@styles/variables.scss' as *;
+@use '@styles/mixin.scss' as *;
+
+.notice {
+ position: absolute;
+ top: 60px;
+ right: 20px;
+ width: 360px;
+ height: 500px;
+ overflow: hidden;
+ background: var(--art-main-bg-color);
+ border: 1px solid var(--art-border-color);
+ border-radius: calc(var(--custom-radius) / 2 + 6px) !important;
+ box-shadow:
+ 0 8px 26px -4px hsl(0deg 0% 8% / 15%),
+ 0 8px 9px -5px hsl(0deg 0% 8% / 6%);
+ transition: all 0.2s;
+ transform-origin: center top 0;
+ will-change: top, left;
+
+ .header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 15px;
+ margin-top: 15px;
+
+ span {
+ font-size: 12px;
+ }
+
+ .text {
+ font-size: 16px;
+ font-weight: 500;
+ color: var(--art-gray-800);
+ }
+
+ .btn {
+ padding: 4px 6px;
+ cursor: pointer;
+ user-select: none;
+ border-radius: 6px;
+
+ &:hover {
+ background-color: var(--art-gray-200);
+ }
+ }
+ }
+
+ .bar {
+ box-sizing: border-box;
+ display: flex;
+ width: 100%;
+ height: 50px;
+ padding: 0 15px;
+ line-height: 50px;
+ border-bottom: 1px solid var(--art-border-color);
+
+ li {
+ height: 48px;
+ margin-right: 20px;
+ overflow: hidden;
+ font-size: 13px;
+ color: var(--art-gray-700);
+ cursor: pointer;
+ transition: color 0.3s;
+
+ @include userSelect;
+
+ &:last-of-type {
+ margin-right: 0;
+ }
+
+ &:hover {
+ color: var(--art-gray-900);
+ }
+
+ &.active {
+ color: var(--main-color) !important;
+ border-bottom: 2px solid var(--main-color);
+ }
+ }
+ }
+
+ .content {
+ width: 100%;
+ height: calc(100% - 95px);
+
+ .scroll {
+ height: calc(100% - 60px);
+ overflow-y: scroll;
+
+ &::-webkit-scrollbar {
+ width: 5px !important;
+ }
+
+ .notice-list {
+ li {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ padding: 15px;
+ cursor: pointer;
+
+ &:hover {
+ background-color: var(--art-gray-100);
+ }
+
+ &:last-of-type {
+ border-bottom: 0;
+ }
+
+ .icon {
+ width: 36px;
+ height: 36px;
+ line-height: 36px;
+ text-align: center;
+ border-radius: 8px;
+
+ i {
+ font-size: 18px;
+ background: transparent !important;
+ }
+ }
+
+ .text {
+ width: calc(100% - 45px);
+ margin-left: 15px;
+
+ h4 {
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 22px;
+ color: var(--art-gray-900);
+ }
+
+ p {
+ margin-top: 5px;
+ font-size: 12px;
+ color: var(--art-gray-500);
+ }
+ }
+ }
+ }
+
+ .user-list {
+ li {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ padding: 15px;
+ cursor: pointer;
+
+ &:hover {
+ background-color: var(--art-gray-100);
+ }
+
+ &:last-of-type {
+ border-bottom: 0;
+ }
+
+ .avatar {
+ width: 36px;
+ height: 36px;
+
+ img {
+ width: 100%;
+ height: 100%;
+ border-radius: 8px;
+ }
+ }
+
+ .text {
+ width: calc(100% - 45px);
+ margin-left: 15px;
+
+ h4 {
+ font-size: 13px;
+ font-weight: 400;
+ line-height: 22px;
+ color: var(--art-gray-900);
+ }
+
+ p {
+ margin-top: 5px;
+ font-size: 12px;
+ color: var(--art-gray-500);
+ }
+ }
+ }
+ }
+
+ .base {
+ li {
+ box-sizing: border-box;
+ padding: 15px 20px;
+
+ &:last-of-type {
+ border-bottom: 0;
+ }
+
+ p {
+ font-size: 12px;
+ color: var(--art-gray-500);
+ }
+ }
+ }
+
+ .empty-tips {
+ position: relative;
+ top: 100px;
+ height: 100%;
+ color: var(--art-gray-500);
+ text-align: center;
+ background: transparent !important;
+
+ i {
+ font-size: 60px;
+ }
+
+ p {
+ margin-top: 15px;
+ font-size: 12px;
+ background: transparent !important;
+ }
+ }
+ }
+
+ .btn-wrapper {
+ position: relative;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0 15px;
+
+ .view-all {
+ width: 100%;
+ margin-top: 12px;
+ }
+ }
+ }
+}
+
+.dark {
+ .notice {
+ ::-webkit-scrollbar-track {
+ background-color: var(--art-main-bg-color);
+ }
+
+ ::-webkit-scrollbar-thumb {
+ background-color: #222 !important;
+ }
+ }
+}
+
+@media only screen and (max-width: $device-phone) {
+ .notice {
+ top: 65px;
+ right: 0;
+ width: 100%;
+ height: 80vh;
+ }
+}
diff --git a/src/components/core/layouts/art-page-content/index.vue b/src/components/core/layouts/art-page-content/index.vue
new file mode 100644
index 0000000..3c03413
--- /dev/null
+++ b/src/components/core/layouts/art-page-content/index.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+ router meta:{{ route.meta }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-screen-lock/index.vue b/src/components/core/layouts/art-screen-lock/index.vue
new file mode 100644
index 0000000..f7d3f57
--- /dev/null
+++ b/src/components/core/layouts/art-screen-lock/index.vue
@@ -0,0 +1,486 @@
+
+
+
+
+
+

+
{{ userInfo.userName }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t(`lockScreen.lock.btnText`) }}
+
+
+
+
+
+
+
+
+

+
{{ userInfo.userName }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t(`lockScreen.unlock.btnText`) }}
+
+
+ {{ $t(`lockScreen.unlock.backBtnText`) }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/composables/useSettingsConfig.ts b/src/components/core/layouts/art-settings-panel/composables/useSettingsConfig.ts
new file mode 100644
index 0000000..8c29f83
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/composables/useSettingsConfig.ts
@@ -0,0 +1,207 @@
+import { computed } from 'vue'
+import { useI18n } from 'vue-i18n'
+import { ContainerWidthEnum } from '@/enums/appEnum'
+import AppConfig from '@/config'
+
+/**
+ * 设置项配置选项管理
+ */
+export function useSettingsConfig() {
+ const { t } = useI18n()
+
+ // 标签页风格选项
+ const tabStyleOptions = computed(() => [
+ {
+ value: 'tab-default',
+ label: t('setting.tabStyle.default')
+ },
+ {
+ value: 'tab-card',
+ label: t('setting.tabStyle.card')
+ },
+ {
+ value: 'tab-google',
+ label: t('setting.tabStyle.google')
+ }
+ ])
+
+ // 页面切换动画选项
+ const pageTransitionOptions = computed(() => [
+ {
+ value: '',
+ label: t('setting.transition.list.none')
+ },
+ {
+ value: 'fade',
+ label: t('setting.transition.list.fade')
+ },
+ {
+ value: 'slide-left',
+ label: t('setting.transition.list.slideLeft')
+ },
+ {
+ value: 'slide-bottom',
+ label: t('setting.transition.list.slideBottom')
+ },
+ {
+ value: 'slide-top',
+ label: t('setting.transition.list.slideTop')
+ }
+ ])
+
+ // 圆角大小选项
+ const customRadiusOptions = [
+ { value: '0', label: '0' },
+ { value: '0.25', label: '0.25' },
+ { value: '0.5', label: '0.5' },
+ { value: '0.75', label: '0.75' },
+ { value: '1', label: '1' }
+ ]
+
+ // 容器宽度选项
+ const containerWidthOptions = computed(() => [
+ {
+ value: ContainerWidthEnum.FULL,
+ label: t('setting.container.list[0]'),
+ icon: ''
+ },
+ {
+ value: ContainerWidthEnum.BOXED,
+ label: t('setting.container.list[1]'),
+ icon: ''
+ }
+ ])
+
+ // 盒子样式选项
+ const boxStyleOptions = computed(() => [
+ {
+ value: 'border-mode',
+ label: t('setting.box.list[0]'),
+ type: 'border-mode' as const
+ },
+ {
+ value: 'shadow-mode',
+ label: t('setting.box.list[1]'),
+ type: 'shadow-mode' as const
+ }
+ ])
+
+ // 从配置文件获取的选项
+ const configOptions = {
+ // 主题色彩选项
+ mainColors: AppConfig.systemMainColor,
+
+ // 主题风格选项
+ themeList: AppConfig.settingThemeList,
+
+ // 菜单布局选项
+ menuLayoutList: AppConfig.menuLayoutList
+ }
+
+ // 基础设置项配置
+ const basicSettingsConfig = computed(() => [
+ {
+ key: 'showWorkTab',
+ label: t('setting.basics.list.multiTab'),
+ type: 'switch' as const,
+ handler: 'workTab'
+ },
+ {
+ key: 'uniqueOpened',
+ label: t('setting.basics.list.accordion'),
+ type: 'switch' as const,
+ handler: 'uniqueOpened'
+ },
+ {
+ key: 'showMenuButton',
+ label: t('setting.basics.list.collapseSidebar'),
+ type: 'switch' as const,
+ handler: 'menuButton'
+ },
+ {
+ key: 'showRefreshButton',
+ label: t('setting.basics.list.reloadPage'),
+ type: 'switch' as const,
+ handler: 'refreshButton'
+ },
+ {
+ key: 'showCrumbs',
+ label: t('setting.basics.list.breadcrumb'),
+ type: 'switch' as const,
+ handler: 'crumbs',
+ mobileHide: true
+ },
+ {
+ key: 'showLanguage',
+ label: t('setting.basics.list.language'),
+ type: 'switch' as const,
+ handler: 'language'
+ },
+ {
+ key: 'showNprogress',
+ label: t('setting.basics.list.progressBar'),
+ type: 'switch' as const,
+ handler: 'nprogress'
+ },
+ {
+ key: 'colorWeak',
+ label: t('setting.basics.list.weakMode'),
+ type: 'switch' as const,
+ handler: 'colorWeak'
+ },
+ {
+ key: 'watermarkVisible',
+ label: t('setting.basics.list.watermark'),
+ type: 'switch' as const,
+ handler: 'watermark'
+ },
+ {
+ key: 'menuOpenWidth',
+ label: t('setting.basics.list.menuWidth'),
+ type: 'input-number' as const,
+ handler: 'menuOpenWidth',
+ min: 180,
+ max: 320,
+ step: 10,
+ style: { width: '120px' },
+ controlsPosition: 'right' as const
+ },
+ {
+ key: 'tabStyle',
+ label: t('setting.basics.list.tabStyle'),
+ type: 'select' as const,
+ handler: 'tabStyle',
+ options: tabStyleOptions.value,
+ style: { width: '120px' }
+ },
+ {
+ key: 'pageTransition',
+ label: t('setting.basics.list.pageTransition'),
+ type: 'select' as const,
+ handler: 'pageTransition',
+ options: pageTransitionOptions.value,
+ style: { width: '120px' }
+ },
+ {
+ key: 'customRadius',
+ label: t('setting.basics.list.borderRadius'),
+ type: 'select' as const,
+ handler: 'customRadius',
+ options: customRadiusOptions,
+ style: { width: '120px' }
+ }
+ ])
+
+ return {
+ // 选项配置
+ tabStyleOptions,
+ pageTransitionOptions,
+ customRadiusOptions,
+ containerWidthOptions,
+ boxStyleOptions,
+ configOptions,
+
+ // 设置项配置
+ basicSettingsConfig
+ }
+}
diff --git a/src/components/core/layouts/art-settings-panel/composables/useSettingsHandlers.ts b/src/components/core/layouts/art-settings-panel/composables/useSettingsHandlers.ts
new file mode 100644
index 0000000..b4e15e0
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/composables/useSettingsHandlers.ts
@@ -0,0 +1,164 @@
+import { useSettingStore } from '@/store/modules/setting'
+import { storeToRefs } from 'pinia'
+import type { ContainerWidthEnum } from '@/enums/appEnum'
+
+/**
+ * 设置项通用处理逻辑
+ */
+export function useSettingsHandlers() {
+ const settingStore = useSettingStore()
+
+ // DOM 操作相关
+ const domOperations = {
+ // 设置HTML类名
+ setHtmlClass: (className: string, add: boolean) => {
+ const el = document.getElementsByTagName('html')[0]
+ if (add) {
+ el.classList.add(className)
+ } else {
+ el.classList.remove(className)
+ }
+ },
+
+ // 设置根元素属性
+ setRootAttribute: (attribute: string, value: string) => {
+ const el = document.documentElement
+ el.setAttribute(attribute, value)
+ },
+
+ // 设置body类名
+ setBodyClass: (className: string, add: boolean) => {
+ const el = document.getElementsByTagName('body')[0]
+ if (add) {
+ el.setAttribute('class', className)
+ } else {
+ el.removeAttribute('class')
+ }
+ }
+ }
+
+ // 通用切换处理器
+ const createToggleHandler = (storeMethod: () => void, callback?: () => void) => {
+ return () => {
+ storeMethod()
+ callback?.()
+ }
+ }
+
+ // 通用值变更处理器
+ const createValueHandler = (
+ storeMethod: (value: T) => void,
+ callback?: (value: T) => void
+ ) => {
+ return (value: T) => {
+ if (value !== undefined && value !== null) {
+ storeMethod(value)
+ callback?.(value)
+ }
+ }
+ }
+
+ // 基础设置处理器
+ const basicHandlers = {
+ // 工作台标签页
+ workTab: createToggleHandler(() => settingStore.setWorkTab(!settingStore.showWorkTab)),
+
+ // 菜单手风琴
+ uniqueOpened: createToggleHandler(() => settingStore.setUniqueOpened()),
+
+ // 显示菜单按钮
+ menuButton: createToggleHandler(() => settingStore.setButton()),
+
+ // 显示刷新按钮
+ refreshButton: createToggleHandler(() => settingStore.setShowRefreshButton()),
+
+ // 显示面包屑
+ crumbs: createToggleHandler(() => settingStore.setCrumbs()),
+
+ // 显示语言切换
+ language: createToggleHandler(() => settingStore.setLanguage()),
+
+ // 显示进度条
+ nprogress: createToggleHandler(() => settingStore.setNprogress()),
+
+ // 色弱模式
+ colorWeak: createToggleHandler(
+ () => settingStore.setColorWeak(),
+ () => {
+ domOperations.setHtmlClass('color-weak', settingStore.colorWeak)
+ }
+ ),
+
+ // 水印显示
+ watermark: createToggleHandler(() =>
+ settingStore.setWatermarkVisible(!settingStore.watermarkVisible)
+ ),
+
+ // 菜单展开宽度
+ menuOpenWidth: createValueHandler((width: number) =>
+ settingStore.setMenuOpenWidth(width)
+ ),
+
+ // 标签页风格
+ tabStyle: createValueHandler((style: string) => settingStore.setTabStyle(style)),
+
+ // 页面切换动画
+ pageTransition: createValueHandler((transition: string) =>
+ settingStore.setPageTransition(transition)
+ ),
+
+ // 圆角大小
+ customRadius: createValueHandler((radius: string) =>
+ settingStore.setCustomRadius(radius)
+ )
+ }
+
+ // 盒子样式处理器
+ const boxStyleHandlers = {
+ // 设置盒子模式
+ setBoxMode: (type: 'border-mode' | 'shadow-mode') => {
+ const { boxBorderMode } = storeToRefs(settingStore)
+
+ // 防止重复设置
+ if (
+ (type === 'shadow-mode' && boxBorderMode.value === false) ||
+ (type === 'border-mode' && boxBorderMode.value === true)
+ ) {
+ return
+ }
+
+ setTimeout(() => {
+ domOperations.setRootAttribute('data-box-mode', type)
+ settingStore.setBorderMode()
+ }, 50)
+ }
+ }
+
+ // 颜色设置处理器
+ const colorHandlers = {
+ // 选择主题色
+ selectColor: (theme: string) => {
+ settingStore.setElementTheme(theme)
+ settingStore.reload()
+ }
+ }
+
+ // 容器设置处理器
+ const containerHandlers = {
+ // 设置容器宽度
+ setWidth: (type: ContainerWidthEnum) => {
+ settingStore.setContainerWidth(type)
+ settingStore.reload()
+ }
+ }
+
+ return {
+ domOperations,
+ basicHandlers,
+ boxStyleHandlers,
+ colorHandlers,
+ containerHandlers,
+ createToggleHandler,
+ createValueHandler
+ }
+}
diff --git a/src/components/core/layouts/art-settings-panel/composables/useSettingsPanel.ts b/src/components/core/layouts/art-settings-panel/composables/useSettingsPanel.ts
new file mode 100644
index 0000000..eb8eeea
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/composables/useSettingsPanel.ts
@@ -0,0 +1,184 @@
+import { ref, computed, watch } from 'vue'
+import { useSettingStore } from '@/store/modules/setting'
+import { storeToRefs } from 'pinia'
+import { useWindowSize } from '@vueuse/core'
+import AppConfig from '@/config'
+import { SystemThemeEnum, MenuTypeEnum } from '@/enums/appEnum'
+import { mittBus } from '@/utils/sys'
+import { useTheme } from '@/composables/useTheme'
+import { useCeremony } from '@/composables/useCeremony'
+import { useSettingsState } from './useSettingsState'
+import { useSettingsHandlers } from './useSettingsHandlers'
+
+/**
+ * 设置面板核心逻辑管理
+ */
+export function useSettingsPanel() {
+ const settingStore = useSettingStore()
+ const { systemThemeType, systemThemeMode, menuType } = storeToRefs(settingStore)
+
+ // Composables
+ const { openFestival, cleanup } = useCeremony()
+ const { setSystemTheme, setSystemAutoTheme } = useTheme()
+ const { initColorWeak } = useSettingsState()
+ const { domOperations } = useSettingsHandlers()
+
+ // 响应式状态
+ const showDrawer = ref(false)
+ const { width } = useWindowSize()
+
+ // 记录窗口宽度变化前的菜单类型
+ const beforeMenuType = ref()
+ const hasChangedMenu = ref(false)
+
+ // 计算属性
+ const systemThemeColor = computed(() => settingStore.systemThemeColor as string)
+
+ // 主题相关处理
+ const useThemeHandlers = () => {
+ // 初始化系统颜色
+ const initSystemColor = () => {
+ if (!AppConfig.systemMainColor.includes(systemThemeColor.value)) {
+ settingStore.setElementTheme(AppConfig.systemMainColor[0])
+ settingStore.reload()
+ }
+ }
+
+ // 初始化系统主题
+ const initSystemTheme = () => {
+ if (systemThemeMode.value === SystemThemeEnum.AUTO) {
+ setSystemAutoTheme()
+ } else {
+ setSystemTheme(systemThemeType.value)
+ }
+ }
+
+ // 监听系统主题变化
+ const listenerSystemTheme = () => {
+ const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')
+ mediaQuery.addEventListener('change', initSystemTheme)
+ return () => {
+ mediaQuery.removeEventListener('change', initSystemTheme)
+ }
+ }
+
+ return {
+ initSystemColor,
+ initSystemTheme,
+ listenerSystemTheme
+ }
+ }
+
+ // 响应式布局处理
+ const useResponsiveLayout = () => {
+ const handleWindowResize = () => {
+ watch(width, (newWidth: number) => {
+ if (newWidth < 1000) {
+ if (!hasChangedMenu.value) {
+ beforeMenuType.value = menuType.value
+ useSettingsState().switchMenuLayouts(MenuTypeEnum.LEFT)
+ settingStore.setMenuOpen(false)
+ hasChangedMenu.value = true
+ }
+ } else {
+ if (hasChangedMenu.value && beforeMenuType.value) {
+ useSettingsState().switchMenuLayouts(beforeMenuType.value)
+ settingStore.setMenuOpen(true)
+ hasChangedMenu.value = false
+ }
+ }
+ })
+ }
+
+ return { handleWindowResize }
+ }
+
+ // 抽屉控制
+ const useDrawerControl = () => {
+ // 打开抽屉
+ const handleOpen = () => {
+ setTimeout(() => {
+ domOperations.setBodyClass('theme-change', true)
+ }, 500)
+ }
+
+ // 关闭抽屉
+ const handleClose = () => {
+ domOperations.setBodyClass('theme-change', false)
+ }
+
+ // 打开设置
+ const openSetting = () => {
+ showDrawer.value = true
+ }
+
+ // 关闭设置
+ const closeDrawer = () => {
+ showDrawer.value = false
+ }
+
+ return {
+ handleOpen,
+ handleClose,
+ openSetting,
+ closeDrawer
+ }
+ }
+
+ // Props 变化监听
+ const usePropsWatcher = (props: { open?: boolean }) => {
+ watch(
+ () => props.open,
+ (val: boolean | undefined) => {
+ if (val !== undefined) {
+ showDrawer.value = val
+ }
+ }
+ )
+ }
+
+ // 初始化设置
+ const useSettingsInitializer = () => {
+ const themeHandlers = useThemeHandlers()
+ const { openSetting } = useDrawerControl()
+ let themeCleanup: (() => void) | null = null
+
+ const initializeSettings = () => {
+ mittBus.on('openSetting', openSetting)
+ themeHandlers.initSystemColor()
+ themeCleanup = themeHandlers.listenerSystemTheme()
+ initColorWeak()
+
+ // 设置盒子模式
+ const boxMode = settingStore.boxBorderMode ? 'border-mode' : 'shadow-mode'
+ setTimeout(() => {
+ domOperations.setRootAttribute('data-box-mode', boxMode)
+ }, 50)
+
+ themeHandlers.initSystemTheme()
+ openFestival()
+ }
+
+ const cleanupSettings = () => {
+ themeCleanup?.()
+ cleanup()
+ }
+
+ return {
+ initializeSettings,
+ cleanupSettings
+ }
+ }
+
+ return {
+ // 状态
+ showDrawer,
+
+ // 方法组合
+ useThemeHandlers,
+ useResponsiveLayout,
+ useDrawerControl,
+ usePropsWatcher,
+ useSettingsInitializer
+ }
+}
diff --git a/src/components/core/layouts/art-settings-panel/composables/useSettingsState.ts b/src/components/core/layouts/art-settings-panel/composables/useSettingsState.ts
new file mode 100644
index 0000000..65352d2
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/composables/useSettingsState.ts
@@ -0,0 +1,37 @@
+import { useSettingStore } from '@/store/modules/setting'
+import { MenuThemeEnum, MenuTypeEnum } from '@/enums/appEnum'
+
+/**
+ * 设置状态管理
+ */
+export function useSettingsState() {
+ const settingStore = useSettingStore()
+
+ // 色弱模式初始化
+ const initColorWeak = () => {
+ if (settingStore.colorWeak) {
+ const el = document.getElementsByTagName('html')[0]
+ setTimeout(() => {
+ el.classList.add('color-weak')
+ }, 100)
+ }
+ }
+
+ // 菜单布局切换
+ const switchMenuLayouts = (type: MenuTypeEnum) => {
+ if (type === MenuTypeEnum.LEFT || type === MenuTypeEnum.TOP_LEFT) {
+ settingStore.setMenuOpen(true)
+ }
+ settingStore.switchMenuLayouts(type)
+ if (type === MenuTypeEnum.DUAL_MENU) {
+ settingStore.switchMenuStyles(MenuThemeEnum.DESIGN)
+ settingStore.setMenuOpen(true)
+ }
+ }
+
+ return {
+ // 方法
+ initColorWeak,
+ switchMenuLayouts
+ }
+}
diff --git a/src/components/core/layouts/art-settings-panel/index.vue b/src/components/core/layouts/art-settings-panel/index.vue
new file mode 100644
index 0000000..61a8a32
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/index.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/style.scss b/src/components/core/layouts/art-settings-panel/style.scss
new file mode 100644
index 0000000..59fdb6d
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/style.scss
@@ -0,0 +1,150 @@
+@use '@styles/variables.scss' as *;
+@use '@styles/mixin.scss' as *;
+
+// 设置抽屉模态框样式
+.setting-modal {
+ background: transparent !important;
+
+ .el-drawer {
+ // 背景滤镜效果
+ background: rgba($color: #fff, $alpha: 50%) !important;
+ box-shadow: 0 0 30px rgb(0 0 0 / 10%) !important;
+
+ @include backdropBlur();
+
+ .setting-box-wrap {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ width: calc(100% + 15px);
+ margin-bottom: 10px;
+
+ .setting-item {
+ box-sizing: border-box;
+ width: calc(33.333% - 15px);
+ margin-right: 15px;
+ text-align: center;
+
+ .box {
+ position: relative;
+ box-sizing: border-box;
+ display: flex;
+ height: 52px;
+ overflow: hidden;
+ cursor: pointer;
+ border: 2px solid var(--art-gray-100);
+ border-radius: 8px;
+ box-shadow: 0 2px 8px 0 rgb(0 0 0 / 20%);
+ transition: box-shadow 0.1s;
+
+ &.mt-16 {
+ margin-top: 16px;
+ }
+
+ &.is-active {
+ border: 2px solid var(--main-color);
+ }
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ .name {
+ margin-top: 6px;
+ font-size: 14px;
+ text-align: center;
+ }
+ }
+ }
+ }
+
+ // 去除滚动条
+ .el-drawer__body::-webkit-scrollbar {
+ width: 0 !important;
+ }
+}
+
+.dark {
+ .setting-modal {
+ .el-drawer {
+ background: rgba($color: #000, $alpha: 50%) !important;
+ }
+ }
+
+ .drawer-con {
+ .box-style {
+ .button {
+ &.is-active {
+ color: #fff !important;
+ background-color: rgba(var(--art-gray-400-rgb), 0.7);
+ }
+
+ &:hover:not(.is-active) {
+ background-color: rgba($color: #000, $alpha: 20%);
+ }
+ }
+ }
+ }
+}
+
+// 去除火狐浏览器滚动条
+:deep(.el-drawer__body) {
+ scrollbar-width: none;
+}
+
+// 移动端隐藏
+@media screen and (max-width: $device-ipad) {
+ .mobile-hide {
+ display: none !important;
+ }
+
+ .drawer-con {
+ .style-item {
+ width: calc(50% - 10px);
+ margin-right: 10px;
+
+ &:nth-child(2n) {
+ margin-right: 0;
+ }
+ }
+
+ .container-width {
+ flex-direction: column;
+ gap: 10px;
+
+ .item {
+ height: 50px;
+ }
+ }
+
+ .basic-box {
+ .item {
+ padding: 6px 0;
+ margin-top: 15px;
+
+ span {
+ font-size: 13px;
+ }
+ }
+ }
+ }
+}
+
+// 小屏幕适配
+@media screen and (width <= 480px) {
+ .drawer-con {
+ padding: 0 8px 20px;
+
+ .main-color-wrap {
+ .offset {
+ justify-content: center;
+
+ > div {
+ margin: 0 8px 8px 0;
+ }
+ }
+ }
+ }
+}
diff --git a/src/components/core/layouts/art-settings-panel/widget/BasicSettings.vue b/src/components/core/layouts/art-settings-panel/widget/BasicSettings.vue
new file mode 100644
index 0000000..7c65546
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/BasicSettings.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/BoxStyleSettings.vue b/src/components/core/layouts/art-settings-panel/widget/BoxStyleSettings.vue
new file mode 100644
index 0000000..968dd14
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/BoxStyleSettings.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+ {{ option.label }}
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/ColorSettings.vue b/src/components/core/layouts/art-settings-panel/widget/ColorSettings.vue
new file mode 100644
index 0000000..1170106
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/ColorSettings.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/ContainerSettings.vue b/src/components/core/layouts/art-settings-panel/widget/ContainerSettings.vue
new file mode 100644
index 0000000..00c7da8
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/ContainerSettings.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ {{ option.label }}
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/MenuLayoutSettings.vue b/src/components/core/layouts/art-settings-panel/widget/MenuLayoutSettings.vue
new file mode 100644
index 0000000..dbcae46
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/MenuLayoutSettings.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
![]()
+
+
{{ $t(`setting.menuType.list[${index}]`) }}
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/MenuStyleSettings.vue b/src/components/core/layouts/art-settings-panel/widget/MenuStyleSettings.vue
new file mode 100644
index 0000000..61237eb
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/MenuStyleSettings.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
![]()
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/SectionTitle.vue b/src/components/core/layouts/art-settings-panel/widget/SectionTitle.vue
new file mode 100644
index 0000000..c6b623e
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/SectionTitle.vue
@@ -0,0 +1,42 @@
+
+
+ {{ title }}
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/SettingDrawer.vue b/src/components/core/layouts/art-settings-panel/widget/SettingDrawer.vue
new file mode 100644
index 0000000..0f8c60b
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/SettingDrawer.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/SettingHeader.vue b/src/components/core/layouts/art-settings-panel/widget/SettingHeader.vue
new file mode 100644
index 0000000..3a6dd21
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/SettingHeader.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/SettingItem.vue b/src/components/core/layouts/art-settings-panel/widget/SettingItem.vue
new file mode 100644
index 0000000..b9e1282
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/SettingItem.vue
@@ -0,0 +1,115 @@
+
+
+ {{ config.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-settings-panel/widget/ThemeSettings.vue b/src/components/core/layouts/art-settings-panel/widget/ThemeSettings.vue
new file mode 100644
index 0000000..0a4f3dc
--- /dev/null
+++ b/src/components/core/layouts/art-settings-panel/widget/ThemeSettings.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
![]()
+
+
{{ $t(`setting.theme.list[${index}]`) }}
+
+
+
+
+
diff --git a/src/components/core/layouts/art-work-tab/index.vue b/src/components/core/layouts/art-work-tab/index.vue
new file mode 100644
index 0000000..4af6796
--- /dev/null
+++ b/src/components/core/layouts/art-work-tab/index.vue
@@ -0,0 +1,379 @@
+
+
+
+
+
+
showMenu(e, activeTab)"
+ >
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/layouts/art-work-tab/style.scss b/src/components/core/layouts/art-work-tab/style.scss
new file mode 100644
index 0000000..3305eb6
--- /dev/null
+++ b/src/components/core/layouts/art-work-tab/style.scss
@@ -0,0 +1,215 @@
+@use '@styles/variables.scss' as *;
+
+.worktab {
+ box-sizing: border-box;
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ padding: 0 20px 10px;
+ user-select: none;
+
+ .scroll-view {
+ width: 100%;
+ overflow: hidden;
+
+ .tabs {
+ float: left;
+ white-space: nowrap;
+ background: transparent !important;
+
+ li {
+ display: inline-block;
+ height: 32px;
+ margin-right: 6px;
+ font-size: 13px;
+ line-height: 32px;
+ color: var(--art-text-gray-600);
+ text-align: center;
+ cursor: pointer;
+ background: var(--art-main-bg-color);
+ border: 1px solid transparent;
+ border-radius: calc(var(--custom-radius) / 2.5 + 2px) !important;
+ transition: color 0.1s;
+
+ &:hover {
+ color: var(--main-color) !important;
+ transition: color 0.2s;
+ }
+
+ i {
+ position: relative;
+ top: 2px;
+ padding: 2px;
+ margin-left: 5px;
+ border-radius: 50%;
+ transition: all 0.2s;
+
+ &:hover {
+ background: rgb(238 238 238 / 100%);
+ }
+ }
+ }
+
+ .activ-tab {
+ color: var(--main-color) !important;
+ }
+ }
+ }
+
+ &.tab-card {
+ padding: 4px 20px;
+ border-bottom: 1px solid var(--art-border-color);
+ }
+
+ &.tab-google {
+ padding: 5px 20px 0;
+ border-bottom: 1px solid var(--art-border-color);
+
+ .tabs {
+ padding-left: 5px;
+
+ li {
+ position: relative;
+ height: 37px !important;
+ line-height: 37px !important;
+ border: none !important;
+ border-radius: calc(var(--custom-radius) / 2.5 + 4px) !important;
+
+ .line {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 1px;
+ height: 16px;
+ margin: auto;
+ background: var(--art-border-dashed-color);
+ transition: opacity 0.15s;
+ }
+
+ &:first-child {
+ .line {
+ opacity: 0;
+ }
+ }
+
+ $tab-radius-size: 20px;
+
+ &::before,
+ &::after {
+ position: absolute;
+ bottom: 0;
+ width: $tab-radius-size;
+ height: $tab-radius-size;
+ content: '';
+ border-radius: 50%;
+ box-shadow: 0 0 0 30px transparent;
+ }
+
+ &::before {
+ left: -$tab-radius-size;
+ clip-path: inset(50% -10px 0 50%);
+ }
+
+ &::after {
+ right: -$tab-radius-size;
+ clip-path: inset(50% 50% 0 -10px);
+ }
+
+ &:hover {
+ box-sizing: border-box;
+ color: var(--art-text-gray-600) !important;
+ background-color: var(--art-gray-200) !important;
+ border-bottom: 1px solid var(--art-main-bg-color) !important;
+ border-radius: calc(var(--custom-radius) / 2.5 + 4px) !important;
+
+ .line {
+ opacity: 0;
+ }
+ }
+
+ &:hover + li .line {
+ opacity: 0;
+ }
+
+ &.activ-tab {
+ color: var(--main-color) !important;
+ background-color: var(--el-color-primary-light-9) !important;
+ border-bottom: 0 !important;
+ border-bottom-right-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+
+ &::before,
+ &::after {
+ box-shadow: 0 0 0 30px var(--el-color-primary-light-9);
+ }
+
+ .line {
+ opacity: 0;
+ }
+ }
+
+ &.activ-tab + li .line {
+ opacity: 0;
+ }
+
+ i {
+ &:hover {
+ color: var(--art-text-gray-700);
+ background: var(--art-gray-300);
+ }
+ }
+ }
+ }
+ }
+
+ .right {
+ display: flex;
+
+ .btn {
+ position: relative;
+ top: 0;
+ box-sizing: border-box;
+ width: 32px;
+ height: 32px;
+ font-size: 16px;
+ line-height: 32px;
+ text-align: center;
+ cursor: pointer;
+ background: var(--art-main-bg-color);
+ border-radius: 3px;
+
+ &:hover ul {
+ display: inline;
+ }
+
+ &.history {
+ color: #666;
+ }
+ }
+ }
+}
+
+.dark {
+ .tabs {
+ li {
+ i {
+ &:hover {
+ background: rgb(238 238 238 / 10%) !important;
+ }
+ }
+ }
+ }
+}
+
+@media only screen and (max-width: $device-ipad) {
+ .worktab {
+ padding: 6px 10px;
+ }
+}
+
+@media only screen and (max-width: $device-phone) {
+ .worktab {
+ padding: 0 15px;
+ }
+}
diff --git a/src/components/core/media/art-cutter-img/index.vue b/src/components/core/media/art-cutter-img/index.vue
new file mode 100644
index 0000000..240b0bf
--- /dev/null
+++ b/src/components/core/media/art-cutter-img/index.vue
@@ -0,0 +1,350 @@
+
+
+
+
+
{{ title }}
+
+
+ 选择图片
+
+
+ 清除
+
+
+
+
+
+
+
+
+
+
{{ previewTitle }}
+
+
![预览图]()
+
+
下载图片
+
+
+
+
+
+
+
diff --git a/src/components/core/media/art-video-player/index.vue b/src/components/core/media/art-video-player/index.vue
new file mode 100644
index 0000000..4f681ea
--- /dev/null
+++ b/src/components/core/media/art-video-player/index.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
diff --git a/src/components/core/others/art-menu-right/index.vue b/src/components/core/others/art-menu-right/index.vue
new file mode 100644
index 0000000..781b3e7
--- /dev/null
+++ b/src/components/core/others/art-menu-right/index.vue
@@ -0,0 +1,514 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/others/art-watermark/index.vue b/src/components/core/others/art-watermark/index.vue
new file mode 100644
index 0000000..eb385f0
--- /dev/null
+++ b/src/components/core/others/art-watermark/index.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/tables/ArtTable.vue b/src/components/core/tables/ArtTable.vue
new file mode 100644
index 0000000..b2c7f18
--- /dev/null
+++ b/src/components/core/tables/ArtTable.vue
@@ -0,0 +1,369 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/tables/ArtTableFullScreen.vue b/src/components/core/tables/ArtTableFullScreen.vue
new file mode 100644
index 0000000..28d13e0
--- /dev/null
+++ b/src/components/core/tables/ArtTableFullScreen.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/core/tables/ArtTableHeader.vue b/src/components/core/tables/ArtTableHeader.vue
new file mode 100644
index 0000000..74e235d
--- /dev/null
+++ b/src/components/core/tables/ArtTableHeader.vue
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
diff --git a/src/components/core/text-effect/art-festival-text-scroll/index.vue b/src/components/core/text-effect/art-festival-text-scroll/index.vue
new file mode 100644
index 0000000..1892778
--- /dev/null
+++ b/src/components/core/text-effect/art-festival-text-scroll/index.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/text-effect/art-text-scroll/index.vue b/src/components/core/text-effect/art-text-scroll/index.vue
new file mode 100644
index 0000000..f23978e
--- /dev/null
+++ b/src/components/core/text-effect/art-text-scroll/index.vue
@@ -0,0 +1,293 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/core/views/exception/ArtException.vue b/src/components/core/views/exception/ArtException.vue
new file mode 100644
index 0000000..21a5e72
--- /dev/null
+++ b/src/components/core/views/exception/ArtException.vue
@@ -0,0 +1,98 @@
+
+
+
+
![]()
+
+
{{ data.desc }}
+
{{ data.btnText }}
+
+
+
+
+
+
+
+
diff --git a/src/components/core/views/login/LoginLeftView.vue b/src/components/core/views/login/LoginLeftView.vue
new file mode 100644
index 0000000..08831ef
--- /dev/null
+++ b/src/components/core/views/login/LoginLeftView.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
{{ AppConfig.systemInfo.name }}
+
+

+

+
+
+
{{ $t('login.leftView.title') }}
+
{{ $t('login.leftView.subTitle') }}
+
+
+
+
+
+
+
diff --git a/src/components/core/views/result/ArtResultPage.vue b/src/components/core/views/result/ArtResultPage.vue
new file mode 100644
index 0000000..d494716
--- /dev/null
+++ b/src/components/core/views/result/ArtResultPage.vue
@@ -0,0 +1,134 @@
+
+
+
+
{{ title }}
+
{{ message }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/custom/comment-widget/index.vue b/src/components/custom/comment-widget/index.vue
new file mode 100644
index 0000000..1864ffe
--- /dev/null
+++ b/src/components/custom/comment-widget/index.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
diff --git a/src/components/custom/comment-widget/widget/CommentItem.vue b/src/components/custom/comment-widget/widget/CommentItem.vue
new file mode 100644
index 0000000..8ce38a3
--- /dev/null
+++ b/src/components/custom/comment-widget/widget/CommentItem.vue
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
diff --git a/src/composables/useAuth.ts b/src/composables/useAuth.ts
new file mode 100644
index 0000000..f5abec1
--- /dev/null
+++ b/src/composables/useAuth.ts
@@ -0,0 +1,48 @@
+import { useRoute } from 'vue-router'
+import { storeToRefs } from 'pinia'
+import { useUserStore } from '@/store/modules/user'
+import { useCommon } from '@/composables/useCommon'
+import type { AppRouteRecord } from '@/types/router'
+
+type AuthItem = NonNullable[number]
+
+const userStore = useUserStore()
+
+/**
+ * 按钮权限(前后端模式通用)
+ * 用法:
+ * const { hasAuth } = useAuth()
+ * hasAuth('add') // 检查是否拥有新增权限
+ */
+export const useAuth = () => {
+ const route = useRoute()
+ const { isFrontendMode } = useCommon()
+ const { info } = storeToRefs(userStore)
+
+ // 前端按钮权限(例如:['add', 'edit'])
+ const frontendAuthList = info.value?.buttons ?? []
+
+ // 后端路由 meta 配置的权限列表(例如:[{ auth_mark: 'add' }])
+ const backendAuthList: AuthItem[] = Array.isArray(route.meta.authList)
+ ? (route.meta.authList as AuthItem[])
+ : []
+
+ /**
+ * 检查是否拥有某权限标识(前后端模式通用)
+ * @param auth 权限标识
+ * @returns 是否有权限
+ */
+ const hasAuth = (auth: string): boolean => {
+ // 前端模式
+ if (isFrontendMode.value) {
+ return frontendAuthList.includes(auth)
+ }
+
+ // 后端模式
+ return backendAuthList.some((item) => item?.auth_mark === auth)
+ }
+
+ return {
+ hasAuth
+ }
+}
diff --git a/src/composables/useCeremony.ts b/src/composables/useCeremony.ts
new file mode 100644
index 0000000..a56562b
--- /dev/null
+++ b/src/composables/useCeremony.ts
@@ -0,0 +1,85 @@
+import { useTimeoutFn, useIntervalFn } from '@vueuse/core'
+import { useDateFormat } from '@vueuse/core'
+import { useSettingStore } from '@/store/modules/setting'
+import { storeToRefs } from 'pinia'
+import { computed } from 'vue'
+import { mittBus } from '@/utils/sys'
+import { festivalConfigList } from '@/config/festival'
+
+// 节日庆祝相关配置
+export function useCeremony() {
+ const settingStore = useSettingStore()
+ const { holidayFireworksLoaded, isShowFireworks } = storeToRefs(settingStore)
+
+ // 烟花间隔引用,用于清理
+ let fireworksInterval: { pause: () => void } | null = null
+
+ // 判断当前日期是否是节日
+ const currentFestivalData = computed(() => {
+ const currentDate = useDateFormat(new Date(), 'YYYY-MM-DD').value
+ return festivalConfigList.find((item) => item.date === currentDate)
+ })
+
+ // 节日庆祝相关配置
+ const FESTIVAL_CONFIG = {
+ INITIAL_DELAY: 300, // 初始延迟时间,单位毫秒
+ FIREWORK_INTERVAL: 1000, // 烟花效果触发间隔,单位毫秒
+ TEXT_DELAY: 2000, // 文本显示延迟时间,单位毫秒
+ MAX_TRIGGERS: 6 // 最大触发次数
+ } as const
+
+ // 根据节日列表显示节日祝福
+ const openFestival = () => {
+ // 没有节日数据,不显示
+ if (!currentFestivalData.value) return
+ // 礼花效果结束,不显示
+ if (!isShowFireworks.value) return
+
+ let triggers = 0
+
+ const { start: startFireworks } = useTimeoutFn(() => {
+ const { pause } = useIntervalFn(() => {
+ // console.log(currentFestivalData.value?.image)
+ mittBus.emit('triggerFireworks', currentFestivalData.value?.image)
+ triggers++
+
+ if (triggers >= FESTIVAL_CONFIG.MAX_TRIGGERS) {
+ pause()
+ settingStore.setholidayFireworksLoaded(true)
+
+ // 主页显示节日文本
+ useTimeoutFn(() => {
+ settingStore.setShowFestivalText(true)
+ setFestivalDate()
+ }, FESTIVAL_CONFIG.TEXT_DELAY)
+ }
+ }, FESTIVAL_CONFIG.FIREWORK_INTERVAL)
+
+ fireworksInterval = { pause }
+ }, FESTIVAL_CONFIG.INITIAL_DELAY)
+
+ startFireworks()
+ }
+
+ // 清理函数
+ const cleanup = () => {
+ if (fireworksInterval) {
+ fireworksInterval.pause()
+ settingStore.setShowFestivalText(false)
+ setFestivalDate()
+ }
+ }
+
+ // 设置节日日期
+ const setFestivalDate = () => {
+ settingStore.setFestivalDate(currentFestivalData.value?.date || '')
+ }
+
+ return {
+ openFestival,
+ cleanup,
+ holidayFireworksLoaded,
+ currentFestivalData,
+ isShowFireworks
+ }
+}
diff --git a/src/composables/useChart.ts b/src/composables/useChart.ts
new file mode 100644
index 0000000..640c224
--- /dev/null
+++ b/src/composables/useChart.ts
@@ -0,0 +1,538 @@
+import * as echarts from 'echarts'
+import type { EChartsOption } from 'echarts'
+import { storeToRefs } from 'pinia'
+import { useSettingStore } from '@/store/modules/setting'
+import { getCssVar } from '@/utils/ui'
+import type { BaseChartProps, ChartThemeConfig, UseChartOptions } from '@/types/component/chart'
+
+// 图表主题配置
+export const useChartOps = (): ChartThemeConfig => ({
+ /** */
+ chartHeight: '16rem',
+ /** 字体大小 */
+ fontSize: 13,
+ /** 字体颜色 */
+ fontColor: '#999',
+ /** 主题颜色 */
+ themeColor: getCssVar('--el-color-primary-light-1'),
+ /** 颜色组 */
+ colors: [
+ getCssVar('--el-color-primary-light-1'),
+ '#4ABEFF',
+ '#EDF2FF',
+ '#14DEBA',
+ '#FFAF20',
+ '#FA8A6C',
+ '#FFAF20'
+ ]
+})
+
+// 常量定义
+const RESIZE_DELAYS = [50, 100, 200, 350] as const
+const MENU_RESIZE_DELAYS = [50, 100, 200] as const
+const RESIZE_DEBOUNCE_DELAY = 100
+
+export function useChart(options: UseChartOptions = {}) {
+ const { initOptions, initDelay = 0, threshold = 0.1, autoTheme = true } = options
+
+ const settingStore = useSettingStore()
+ const { isDark, menuOpen, menuType } = storeToRefs(settingStore)
+
+ const chartRef = ref()
+ let chart: echarts.ECharts | null = null
+ let intersectionObserver: IntersectionObserver | null = null
+ let pendingOptions: EChartsOption | null = null
+ let resizeTimeoutId: number | null = null
+ let resizeFrameId: number | null = null
+ let isDestroyed = false
+
+ // 清理定时器的统一方法
+ const clearTimers = () => {
+ if (resizeTimeoutId) {
+ clearTimeout(resizeTimeoutId)
+ resizeTimeoutId = null
+ }
+ if (resizeFrameId) {
+ cancelAnimationFrame(resizeFrameId)
+ resizeFrameId = null
+ }
+ }
+
+ // 使用 requestAnimationFrame 优化 resize 处理
+ const requestAnimationResize = () => {
+ if (resizeFrameId) {
+ cancelAnimationFrame(resizeFrameId)
+ }
+ resizeFrameId = requestAnimationFrame(() => {
+ handleResize()
+ resizeFrameId = null
+ })
+ }
+
+ // 防抖的resize处理(用于窗口resize事件)
+ const debouncedResize = () => {
+ if (resizeTimeoutId) {
+ clearTimeout(resizeTimeoutId)
+ }
+ resizeTimeoutId = window.setTimeout(() => {
+ requestAnimationResize()
+ resizeTimeoutId = null
+ }, RESIZE_DEBOUNCE_DELAY)
+ }
+
+ // 多延迟resize处理 - 统一方法
+ const multiDelayResize = (delays: readonly number[]) => {
+ // 立即调用一次,快速响应
+ nextTick(requestAnimationResize)
+
+ // 使用延迟时间,确保图表正确适应变化
+ delays.forEach((delay) => {
+ setTimeout(requestAnimationResize, delay)
+ })
+ }
+
+ // 收缩菜单时,重新计算图表大小
+ watch(menuOpen, () => multiDelayResize(RESIZE_DELAYS))
+
+ // 菜单类型变化触发
+ watch(menuType, () => {
+ nextTick(requestAnimationResize)
+ setTimeout(() => multiDelayResize(MENU_RESIZE_DELAYS), 0)
+ })
+
+ // 主题变化时重新设置图表选项
+ if (autoTheme) {
+ watch(isDark, () => {
+ if (chart && !isDestroyed) {
+ // 使用 requestAnimationFrame 优化主题更新
+ requestAnimationFrame(() => {
+ if (chart && !isDestroyed) {
+ const currentOptions = chart.getOption()
+ if (currentOptions) {
+ updateChart(currentOptions as EChartsOption)
+ }
+ }
+ })
+ }
+ })
+ }
+
+ // 样式生成器 - 统一的样式配置
+ const createLineStyle = (color: string, width = 1, type?: 'solid' | 'dashed') => ({
+ color,
+ width,
+ ...(type && { type })
+ })
+
+ // 坐标轴线样式
+ const getAxisLineStyle = (show: boolean = true) => ({
+ show,
+ lineStyle: createLineStyle(isDark.value ? '#444' : '#EDEDED')
+ })
+
+ // 分割线样式
+ const getSplitLineStyle = (show: boolean = true) => ({
+ show,
+ lineStyle: createLineStyle(isDark.value ? '#444' : '#EDEDED', 1, 'dashed')
+ })
+
+ // 坐标轴标签样式
+ const getAxisLabelStyle = (show: boolean = true) => {
+ const { fontColor, fontSize } = useChartOps()
+ return {
+ show,
+ color: fontColor,
+ fontSize
+ }
+ }
+
+ // 坐标轴刻度样式
+ const getAxisTickStyle = () => ({
+ show: false
+ })
+
+ // 获取动画配置
+ const getAnimationConfig = (animationDelay: number = 50, animationDuration: number = 1500) => ({
+ animationDelay: (idx: number) => idx * animationDelay + 200,
+ animationDuration: (idx: number) => animationDuration - idx * 50,
+ animationEasing: 'quarticOut' as const
+ })
+
+ // 获取统一的 tooltip 配置
+ const getTooltipStyle = (trigger: 'item' | 'axis' = 'axis', customOptions: any = {}) => ({
+ trigger,
+ backgroundColor: isDark.value ? 'rgba(0, 0, 0, 0.8)' : 'rgba(255, 255, 255, 0.9)',
+ borderColor: isDark.value ? '#333' : '#ddd',
+ borderWidth: 1,
+ textStyle: {
+ color: isDark.value ? '#fff' : '#333'
+ },
+ ...customOptions
+ })
+
+ // 获取统一的图例配置
+ const getLegendStyle = (
+ position: 'bottom' | 'top' | 'left' | 'right' = 'bottom',
+ customOptions: any = {}
+ ) => {
+ const baseConfig = {
+ textStyle: {
+ color: isDark.value ? '#fff' : '#333'
+ },
+ itemWidth: 12,
+ itemHeight: 12,
+ itemGap: 20,
+ ...customOptions
+ }
+
+ // 根据位置设置不同的配置
+ switch (position) {
+ case 'bottom':
+ return {
+ ...baseConfig,
+ bottom: 0,
+ left: 'center',
+ orient: 'horizontal',
+ icon: 'roundRect'
+ }
+ case 'top':
+ return {
+ ...baseConfig,
+ top: 0,
+ left: 'center',
+ orient: 'horizontal',
+ icon: 'roundRect'
+ }
+ case 'left':
+ return {
+ ...baseConfig,
+ left: 0,
+ top: 'center',
+ orient: 'vertical',
+ icon: 'roundRect'
+ }
+ case 'right':
+ return {
+ ...baseConfig,
+ right: 0,
+ top: 'center',
+ orient: 'vertical',
+ icon: 'roundRect'
+ }
+ default:
+ return baseConfig
+ }
+ }
+
+ // 根据图例位置计算 grid 配置
+ const getGridWithLegend = (
+ showLegend: boolean,
+ legendPosition: 'bottom' | 'top' | 'left' | 'right' = 'bottom',
+ baseGrid: any = {}
+ ) => {
+ const defaultGrid = {
+ top: 15,
+ right: 15,
+ bottom: 8,
+ left: 0,
+ containLabel: true,
+ ...baseGrid
+ }
+
+ if (!showLegend) {
+ return defaultGrid
+ }
+
+ // 根据图例位置调整 grid
+ switch (legendPosition) {
+ case 'bottom':
+ return {
+ ...defaultGrid,
+ bottom: 40
+ }
+ case 'top':
+ return {
+ ...defaultGrid,
+ top: 40
+ }
+ case 'left':
+ return {
+ ...defaultGrid,
+ left: 120
+ }
+ case 'right':
+ return {
+ ...defaultGrid,
+ right: 120
+ }
+ default:
+ return defaultGrid
+ }
+ }
+
+ // 创建IntersectionObserver
+ const createIntersectionObserver = () => {
+ if (intersectionObserver || !chartRef.value) return
+
+ intersectionObserver = new IntersectionObserver(
+ (entries) => {
+ entries.forEach((entry) => {
+ if (entry.isIntersecting && pendingOptions && !isDestroyed) {
+ // 使用 requestAnimationFrame 确保在下一帧初始化图表
+ requestAnimationFrame(() => {
+ if (!isDestroyed && pendingOptions) {
+ try {
+ // 元素变为可见,初始化图表
+ if (!chart) {
+ chart = echarts.init(entry.target as HTMLElement)
+ }
+
+ // 触发自定义事件,让组件处理动画逻辑
+ const event = new CustomEvent('chartVisible', {
+ detail: { options: pendingOptions }
+ })
+ entry.target.dispatchEvent(event)
+
+ pendingOptions = null
+ cleanupIntersectionObserver()
+ } catch (error) {
+ console.error('图表初始化失败:', error)
+ }
+ }
+ })
+ }
+ })
+ },
+ { threshold }
+ )
+
+ intersectionObserver.observe(chartRef.value)
+ }
+
+ // 清理IntersectionObserver
+ const cleanupIntersectionObserver = () => {
+ if (intersectionObserver) {
+ intersectionObserver.disconnect()
+ intersectionObserver = null
+ }
+ }
+
+ // 检查容器是否可见
+ const isContainerVisible = (element: HTMLElement): boolean => {
+ const rect = element.getBoundingClientRect()
+ return rect.width > 0 && rect.height > 0 && rect.top < window.innerHeight && rect.bottom > 0
+ }
+
+ // 图表初始化核心逻辑
+ const performChartInit = (options: EChartsOption) => {
+ if (!chart && chartRef.value && !isDestroyed) {
+ chart = echarts.init(chartRef.value)
+ }
+ if (chart && !isDestroyed) {
+ chart.setOption(options)
+ pendingOptions = null
+ }
+ }
+
+ // 初始化图表
+ const initChart = (options: EChartsOption = {}) => {
+ if (!chartRef.value || isDestroyed) return
+
+ const mergedOptions = { ...initOptions, ...options }
+
+ try {
+ if (isContainerVisible(chartRef.value)) {
+ // 容器可见,正常初始化
+ if (initDelay > 0) {
+ setTimeout(() => performChartInit(mergedOptions), initDelay)
+ } else {
+ performChartInit(mergedOptions)
+ }
+ } else {
+ // 容器不可见,保存选项并设置监听器
+ pendingOptions = mergedOptions
+ createIntersectionObserver()
+ }
+ } catch (error) {
+ console.error('图表初始化失败:', error)
+ }
+ }
+
+ // 更新图表
+ const updateChart = (options: EChartsOption) => {
+ if (isDestroyed) return
+
+ try {
+ if (!chart) {
+ // 如果图表不存在,先初始化
+ initChart(options)
+ return
+ }
+ chart.setOption(options)
+ } catch (error) {
+ console.error('图表更新失败:', error)
+ }
+ }
+
+ // 处理窗口大小变化
+ const handleResize = () => {
+ if (chart && !isDestroyed) {
+ try {
+ chart.resize()
+ } catch (error) {
+ console.error('图表resize失败:', error)
+ }
+ }
+ }
+
+ // 销毁图表
+ const destroyChart = () => {
+ isDestroyed = true
+
+ if (chart) {
+ try {
+ chart.dispose()
+ } catch (error) {
+ console.error('图表销毁失败:', error)
+ } finally {
+ chart = null
+ }
+ }
+
+ cleanupIntersectionObserver()
+ clearTimers()
+ pendingOptions = null
+ }
+
+ // 获取图表实例
+ const getChartInstance = () => chart
+
+ // 获取图表是否已初始化
+ const isChartInitialized = () => chart !== null
+
+ onMounted(() => {
+ window.addEventListener('resize', debouncedResize)
+ })
+
+ onBeforeUnmount(() => {
+ window.removeEventListener('resize', debouncedResize)
+ })
+
+ onUnmounted(() => {
+ destroyChart()
+ })
+
+ return {
+ isDark,
+ chartRef,
+ initChart,
+ updateChart,
+ handleResize,
+ destroyChart,
+ getChartInstance,
+ isChartInitialized,
+ getAxisLineStyle,
+ getSplitLineStyle,
+ getAxisLabelStyle,
+ getAxisTickStyle,
+ getAnimationConfig,
+ getTooltipStyle,
+ getLegendStyle,
+ useChartOps,
+ getGridWithLegend
+ }
+}
+
+// 高级图表组件抽象
+interface UseChartComponentOptions {
+ /** Props响应式对象 */
+ props: T
+ /** 图表配置生成函数 */
+ generateOptions: () => EChartsOption
+ /** 空数据检查函数 */
+ checkEmpty?: () => boolean
+ /** 自定义监听的响应式数据 */
+ watchSources?: (() => any)[]
+ /** 自定义可视事件处理 */
+ onVisible?: () => void
+ /** useChart选项 */
+ chartOptions?: UseChartOptions
+}
+
+export function useChartComponent(options: UseChartComponentOptions) {
+ const {
+ props,
+ generateOptions,
+ checkEmpty,
+ watchSources = [],
+ onVisible,
+ chartOptions = {}
+ } = options
+
+ const chart = useChart(chartOptions)
+ const { chartRef, initChart, isDark } = chart
+
+ // 检查是否为空数据
+ const isEmpty = computed(() => {
+ if (props.isEmpty) return true
+ if (checkEmpty) return checkEmpty()
+ return false
+ })
+
+ // 更新图表
+ const updateChart = () => {
+ if (!isEmpty.value) {
+ initChart(generateOptions())
+ }
+ }
+
+ // 处理图表进入可视区域时的逻辑
+ const handleChartVisible = () => {
+ if (onVisible) {
+ onVisible()
+ } else {
+ updateChart()
+ }
+ }
+
+ // 设置数据监听
+ const setupWatchers = () => {
+ // 监听自定义数据源
+ if (watchSources.length > 0) {
+ watch(watchSources, updateChart, { deep: true })
+ }
+
+ // 监听主题变化
+ watch(isDark, updateChart)
+ }
+
+ // 设置生命周期
+ const setupLifecycle = () => {
+ onMounted(() => {
+ updateChart()
+
+ // 监听图表可见事件
+ if (chartRef.value) {
+ chartRef.value.addEventListener('chartVisible', handleChartVisible)
+ }
+ })
+
+ onBeforeUnmount(() => {
+ // 清理事件监听器
+ if (chartRef.value) {
+ chartRef.value.removeEventListener('chartVisible', handleChartVisible)
+ }
+ })
+ }
+
+ // 初始化
+ setupWatchers()
+ setupLifecycle()
+
+ return {
+ ...chart,
+ isEmpty,
+ updateChart,
+ handleChartVisible
+ }
+}
diff --git a/src/composables/useCheckedColumns.ts b/src/composables/useCheckedColumns.ts
new file mode 100644
index 0000000..0781993
--- /dev/null
+++ b/src/composables/useCheckedColumns.ts
@@ -0,0 +1,100 @@
+// 动态列配置
+
+import { ref, computed } from 'vue'
+import { $t } from '@/locales'
+
+// 定义列配置接口
+export interface ColumnOption {
+ type?: 'selection' | 'expand' | 'index'
+ prop?: string
+ label?: string
+ width?: number | string
+ minWidth?: number | string
+ fixed?: boolean | 'left' | 'right'
+ sortable?: boolean
+ disabled?: boolean
+ formatter?: (row: any) => any
+ [key: string]: any
+}
+
+// 定义列选择状态接口
+export interface ColumnCheck {
+ prop: string
+ label: string
+ checked: boolean
+}
+
+// 特殊列类型常量
+const SELECTION_KEY = '__selection__'
+const EXPAND_KEY = '__expand__'
+const INDEX_KEY = '__index__'
+
+// 工具函数:根据列配置生成列选择状态
+const getColumnChecks = (columns: ColumnOption[]): ColumnCheck[] => {
+ const checks: ColumnCheck[] = []
+
+ columns.forEach((column) => {
+ if (column.type === 'selection') {
+ checks.push({
+ prop: SELECTION_KEY,
+ label: $t('table.column.selection'),
+ checked: true
+ })
+ } else if (column.type === 'expand') {
+ checks.push({
+ prop: EXPAND_KEY,
+ label: $t('table.column.expand'),
+ checked: true
+ })
+ } else if (column.type === 'index') {
+ checks.push({
+ prop: INDEX_KEY,
+ label: $t('table.column.index'),
+ checked: true
+ })
+ } else {
+ checks.push({
+ prop: column.prop as string,
+ label: column.label as string,
+ checked: true
+ })
+ }
+ })
+
+ return checks
+}
+
+export function useCheckedColumns(columnsFactory: () => ColumnOption[]) {
+ // 获取所有列定义
+ const allColumns = columnsFactory()
+
+ // 列选中状态,初始包含所有普通列和特殊类型列
+ const columnChecks = ref(getColumnChecks(allColumns))
+
+ // 当前显示的列
+ const columns = computed(() => {
+ const cols = allColumns
+ const columnMap = new Map()
+
+ cols.forEach((column) => {
+ if (column.type === 'selection') {
+ columnMap.set(SELECTION_KEY, column)
+ } else if (column.type === 'expand') {
+ columnMap.set(EXPAND_KEY, column)
+ } else if (column.type === 'index') {
+ columnMap.set(INDEX_KEY, column)
+ } else {
+ columnMap.set(column.prop as string, column)
+ }
+ })
+
+ return columnChecks.value
+ .filter((item) => item.checked)
+ .map((check) => columnMap.get(check.prop) as ColumnOption)
+ })
+
+ return {
+ columns,
+ columnChecks
+ }
+}
diff --git a/src/composables/useCommon.ts b/src/composables/useCommon.ts
new file mode 100644
index 0000000..091837a
--- /dev/null
+++ b/src/composables/useCommon.ts
@@ -0,0 +1,41 @@
+import { getTabConfig } from '@/utils/ui'
+import { useSettingStore } from '@/store/modules/setting'
+import { useMenuStore } from '@/store/modules/menu'
+
+// 通用函数
+export function useCommon() {
+ const settingStore = useSettingStore()
+ const { showWorkTab, tabStyle } = storeToRefs(settingStore)
+
+ // 是否是前端控制模式
+ const isFrontendMode = computed(() => {
+ return import.meta.env.VITE_ACCESS_MODE === 'frontend'
+ })
+
+ // 首页路径
+ const homePath = computed(() => useMenuStore().getHomePath())
+
+ // 刷新页面
+ const refresh = () => {
+ settingStore.reload()
+ }
+
+ // 回到顶部
+ const scrollToTop = () => {
+ window.scrollTo({ top: 0 })
+ }
+
+ // 页面最小高度
+ const containerMinHeight = computed(() => {
+ const { openHeight, closeHeight } = getTabConfig(tabStyle.value)
+ return `calc(100vh - ${showWorkTab.value ? openHeight : closeHeight}px)`
+ })
+
+ return {
+ isFrontendMode,
+ homePath,
+ refresh,
+ scrollToTop,
+ containerMinHeight
+ }
+}
diff --git a/src/composables/useSystemInfo.ts b/src/composables/useSystemInfo.ts
new file mode 100644
index 0000000..71df31f
--- /dev/null
+++ b/src/composables/useSystemInfo.ts
@@ -0,0 +1,9 @@
+import AppConfig from '@/config'
+
+export function useSystemInfo() {
+ const getSystemName = () => AppConfig.systemInfo.name
+
+ return {
+ getSystemName
+ }
+}
diff --git a/src/composables/useTheme.ts b/src/composables/useTheme.ts
new file mode 100644
index 0000000..7fbd4c3
--- /dev/null
+++ b/src/composables/useTheme.ts
@@ -0,0 +1,88 @@
+import { useSettingStore } from '@/store/modules/setting'
+import { SystemThemeEnum } from '@/enums/appEnum'
+import AppConfig from '@/config'
+import { SystemThemeTypes } from '@/types/store'
+import { getDarkColor, getLightColor } from '@/utils/ui'
+
+export function useTheme() {
+ const settingStore = useSettingStore()
+
+ // 禁用过渡效果
+ const disableTransitions = () => {
+ const style = document.createElement('style')
+ style.setAttribute('id', 'disable-transitions')
+ style.textContent = '* { transition: none !important; }'
+ document.head.appendChild(style)
+ }
+
+ // 启用过渡效果
+ const enableTransitions = () => {
+ const style = document.getElementById('disable-transitions')
+ if (style) {
+ style.remove()
+ }
+ }
+
+ // 设置系统主题
+ const setSystemTheme = (theme: SystemThemeEnum, themeMode?: SystemThemeEnum) => {
+ // 临时禁用过渡效果
+ disableTransitions()
+
+ const el = document.getElementsByTagName('html')[0]
+ const isDark = theme === SystemThemeEnum.DARK
+
+ if (!themeMode) {
+ themeMode = theme
+ }
+
+ const currentTheme = AppConfig.systemThemeStyles[theme as keyof SystemThemeTypes]
+
+ if (currentTheme) {
+ el.setAttribute('class', currentTheme.className)
+ }
+
+ // 设置按钮颜色加深或变浅
+ const primary = settingStore.systemThemeColor
+
+ for (let i = 1; i <= 9; i++) {
+ document.documentElement.style.setProperty(
+ `--el-color-primary-light-${i}`,
+ isDark ? `${getDarkColor(primary, i / 10)}` : `${getLightColor(primary, i / 10)}`
+ )
+ }
+
+ // 更新store中的主题设置
+ settingStore.setGlopTheme(theme, themeMode)
+
+ // 使用 requestAnimationFrame 确保在下一帧恢复过渡效果
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => {
+ enableTransitions()
+ })
+ })
+ }
+
+ // 自动设置系统主题
+ const setSystemAutoTheme = () => {
+ if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
+ setSystemTheme(SystemThemeEnum.DARK, SystemThemeEnum.AUTO)
+ } else {
+ setSystemTheme(SystemThemeEnum.LIGHT, SystemThemeEnum.AUTO)
+ }
+ }
+
+ // 切换主题
+ const switchThemeStyles = (theme: SystemThemeEnum) => {
+ if (theme === SystemThemeEnum.AUTO) {
+ setSystemAutoTheme()
+ } else {
+ setSystemTheme(theme)
+ }
+ }
+
+ return {
+ setSystemTheme,
+ setSystemAutoTheme,
+ switchThemeStyles
+ }
+}
diff --git a/src/config/assets/images.ts b/src/config/assets/images.ts
new file mode 100644
index 0000000..71a544a
--- /dev/null
+++ b/src/config/assets/images.ts
@@ -0,0 +1,30 @@
+import lightTheme from '@imgs/settings/theme_styles/light.png'
+import darkTheme from '@imgs/settings/theme_styles/dark.png'
+import systemTheme from '@imgs/settings/theme_styles/system.png'
+import verticalLayout from '@imgs/settings/menu_layouts/vertical.png'
+import horizontalLayout from '@imgs/settings/menu_layouts/horizontal.png'
+import mixedLayout from '@imgs/settings/menu_layouts/mixed.png'
+import dualColumnLayout from '@imgs/settings/menu_layouts/dual_column.png'
+import designStyle from '@imgs/settings/menu_styles/design.png'
+import darkStyle from '@imgs/settings/menu_styles/dark.png'
+import lightStyle from '@imgs/settings/menu_styles/light.png'
+
+// 配置设置中心图片
+export const configImages = {
+ themeStyles: {
+ light: lightTheme,
+ dark: darkTheme,
+ system: systemTheme
+ },
+ menuLayouts: {
+ vertical: verticalLayout,
+ horizontal: horizontalLayout,
+ mixed: mixedLayout,
+ dualColumn: dualColumnLayout
+ },
+ menuStyles: {
+ design: designStyle,
+ dark: darkStyle,
+ light: lightStyle
+ }
+}
diff --git a/src/config/festival.ts b/src/config/festival.ts
new file mode 100644
index 0000000..d7c29e0
--- /dev/null
+++ b/src/config/festival.ts
@@ -0,0 +1,23 @@
+/**
+ * 节日配置
+ * 包含:礼花效果、滚动文字
+ */
+// 图片需要在 components/Ceremony/Fireworks 文件预先定义
+import { FestivalConfig } from '@/types/config'
+import sd from '@imgs/ceremony/sd.png'
+import yd from '@imgs/ceremony/yd.png'
+
+export const festivalConfigList: FestivalConfig[] = [
+ {
+ date: '2025-01-01',
+ name: '元旦',
+ image: yd,
+ scrollText: '新年快乐!Art Design Pro 祝您在2025年万事如意,事业腾飞,阖家幸福,好运连连!'
+ },
+ {
+ date: '2024-12-25',
+ name: '圣诞节',
+ image: sd,
+ scrollText: 'Merry Christmas!Art Design Pro 祝您圣诞快乐,愿节日的欢乐与祝福如雪花般纷至沓来!'
+ }
+]
diff --git a/src/config/index.ts b/src/config/index.ts
new file mode 100644
index 0000000..d3c33ab
--- /dev/null
+++ b/src/config/index.ts
@@ -0,0 +1,136 @@
+/**
+ * 系统配置
+ * 包含:系统信息、系统主题、菜单主题、菜单布局、系统主色、系统主色列表、系统主色、系统其他项默认配置
+ */
+import { MenuThemeEnum, MenuTypeEnum, SystemThemeEnum } from '@/enums/appEnum'
+import { SystemConfig } from '@/types/config'
+import { configImages } from './assets/images'
+
+const appConfig: SystemConfig = {
+ // 系统信息
+ systemInfo: {
+ name: 'Art Design Pro' // 系统名称
+ },
+ // Element Plus 主题
+ elementPlusTheme: {
+ primary: '#5D87FF'
+ },
+ // 系统主题
+ systemThemeStyles: {
+ [SystemThemeEnum.LIGHT]: { className: '' },
+ [SystemThemeEnum.DARK]: { className: SystemThemeEnum.DARK }
+ },
+ // 系统主题列表
+ settingThemeList: [
+ {
+ name: 'Light',
+ theme: SystemThemeEnum.LIGHT,
+ color: ['#fff', '#fff'],
+ leftLineColor: '#EDEEF0',
+ rightLineColor: '#EDEEF0',
+ img: configImages.themeStyles.light
+ },
+ {
+ name: 'Dark',
+ theme: SystemThemeEnum.DARK,
+ color: ['#22252A'],
+ leftLineColor: '#3F4257',
+ rightLineColor: '#3F4257',
+ img: configImages.themeStyles.dark
+ },
+ {
+ name: 'System',
+ theme: SystemThemeEnum.AUTO,
+ color: ['#fff', '#22252A'],
+ leftLineColor: '#EDEEF0',
+ rightLineColor: '#3F4257',
+ img: configImages.themeStyles.system
+ }
+ ],
+ // 菜单布局列表
+ menuLayoutList: [
+ { name: 'Left', value: MenuTypeEnum.LEFT, img: configImages.menuLayouts.vertical },
+ { name: 'Top', value: MenuTypeEnum.TOP, img: configImages.menuLayouts.horizontal },
+ { name: 'Mixed', value: MenuTypeEnum.TOP_LEFT, img: configImages.menuLayouts.mixed },
+ { name: 'Dual Column', value: MenuTypeEnum.DUAL_MENU, img: configImages.menuLayouts.dualColumn }
+ ],
+ // 菜单主题列表
+ themeList: [
+ {
+ theme: MenuThemeEnum.DESIGN,
+ background: '#FFFFFF',
+ systemNameColor: 'var(--art-text-gray-800)',
+ iconColor: '#6B6B6B',
+ textColor: '#29343D',
+ textActiveColor: '#3F8CFF',
+ iconActiveColor: '#333333',
+ tabBarBackground: '#FAFBFC',
+ systemBackground: '#FAFBFC',
+ leftLineColor: '#EDEEF0',
+ rightLineColor: '#EDEEF0',
+ img: configImages.menuStyles.design
+ },
+ {
+ theme: MenuThemeEnum.DARK,
+ background: '#191A23',
+ systemNameColor: '#BABBBD',
+ iconColor: '#BABBBD',
+ textColor: '#BABBBD',
+ textActiveColor: '#FFFFFF',
+ iconActiveColor: '#FFFFFF',
+ tabBarBackground: '#FFFFFF',
+ systemBackground: '#F8F8F8',
+ leftLineColor: '#3F4257',
+ rightLineColor: '#EDEEF0',
+ img: configImages.menuStyles.dark
+ },
+ {
+ theme: MenuThemeEnum.LIGHT,
+ background: '#ffffff',
+ systemNameColor: '#68758E',
+ iconColor: '#6B6B6B',
+ textColor: '#29343D',
+ textActiveColor: '#3F8CFF',
+ iconActiveColor: '#333333',
+ tabBarBackground: '#FFFFFF',
+ systemBackground: '#F8F8F8',
+ leftLineColor: '#EDEEF0',
+ rightLineColor: '#EDEEF0',
+ img: configImages.menuStyles.light
+ }
+ ],
+
+ darkMenuStyles: [
+ {
+ theme: MenuThemeEnum.DARK,
+ background: '#161618',
+ systemNameColor: '#DDDDDD',
+ iconColor: '#BABBBD',
+ textColor: 'rgba(#FFFFFF, 0.7)',
+ textActiveColor: '',
+ iconActiveColor: '#FFFFFF',
+ tabBarBackground: '#FFFFFF',
+ systemBackground: '#F8F8F8',
+ leftLineColor: '#3F4257',
+ rightLineColor: '#EDEEF0'
+ }
+ ],
+ // 系统主色
+ systemMainColor: [
+ '#5D87FF',
+ '#B48DF3',
+ '#1D84FF',
+ '#60C041',
+ '#38C0FC',
+ '#F9901F',
+ '#FF80C8'
+ ] as const,
+ // 系统其他项默认配置
+ systemSetting: {
+ defaultMenuWidth: 240, // 菜单宽度
+ defaultCustomRadius: '0.75', // 自定义圆角
+ defaultTabStyle: 'tab-default' // 标签样式
+ }
+}
+
+export default Object.freeze(appConfig)
diff --git a/src/directives/auth.ts b/src/directives/auth.ts
new file mode 100644
index 0000000..5e537ab
--- /dev/null
+++ b/src/directives/auth.ts
@@ -0,0 +1,40 @@
+import { router } from '@/router'
+import { App, Directive, DirectiveBinding } from 'vue'
+
+/**
+ * 权限指令(后端控制模式可用)
+ * 用法:
+ * 按钮
+ */
+
+interface AuthBinding extends DirectiveBinding {
+ value: string
+}
+
+function checkAuthPermission(el: HTMLElement, binding: AuthBinding): void {
+ // 获取当前路由的权限列表
+ const authList = (router.currentRoute.value.meta.authList as Array<{ auth_mark: string }>) || []
+
+ // 检查是否有对应的权限标识
+ const hasPermission = authList.some((item) => item.auth_mark === binding.value)
+
+ // 如果没有权限,移除元素
+ if (!hasPermission) {
+ removeElement(el)
+ }
+}
+
+function removeElement(el: HTMLElement): void {
+ if (el.parentNode) {
+ el.parentNode.removeChild(el)
+ }
+}
+
+const authDirective: Directive = {
+ mounted: checkAuthPermission,
+ updated: checkAuthPermission
+}
+
+export function setupAuthDirective(app: App): void {
+ app.directive('auth', authDirective)
+}
diff --git a/src/directives/highlight.ts b/src/directives/highlight.ts
new file mode 100644
index 0000000..ac497b5
--- /dev/null
+++ b/src/directives/highlight.ts
@@ -0,0 +1,211 @@
+import { App, Directive } from 'vue'
+import hljs from 'highlight.js'
+import { ElMessage } from 'element-plus'
+
+/**
+ * 高亮代码
+ * 插入行号、添加复制按钮、分片处理代码块,解决大数据量一次写入卡顿问题
+ * 支持动态内容监听,确保所有代码块都能被正确处理
+ */
+
+// 高亮代码
+function highlightCode(block: HTMLElement) {
+ hljs.highlightElement(block)
+}
+
+// 插入行号
+function insertLineNumbers(block: HTMLElement) {
+ const lines = block.innerHTML.split('\n')
+ const numberedLines = lines
+ .map((line, index) => {
+ return `${index + 1} ${line}`
+ })
+ .join('\n')
+ block.innerHTML = numberedLines
+}
+
+// 添加复制按钮:调整 DOM 结构,将代码部分包裹在 .code-wrapper 内
+function addCopyButton(block: HTMLElement) {
+ const copyButton = document.createElement('i')
+ copyButton.className = 'copy-button iconfont-sys'
+ copyButton.innerHTML = ''
+ copyButton.onclick = () => {
+ // 过滤掉行号,只复制代码内容
+ const codeContent = block.innerText.replace(/^\d+\s+/gm, '')
+ navigator.clipboard.writeText(codeContent).then(() => {
+ ElMessage.success('复制成功')
+ })
+ }
+
+ const preElement = block.parentElement
+ if (preElement) {
+ let codeWrapper: HTMLElement
+ // 如果代码块还没有被包裹,则创建包裹容器
+ if (!block.parentElement.classList.contains('code-wrapper')) {
+ codeWrapper = document.createElement('div')
+ codeWrapper.className = 'code-wrapper'
+ preElement.replaceChild(codeWrapper, block)
+ codeWrapper.appendChild(block)
+ } else {
+ codeWrapper = block.parentElement
+ }
+ // 将复制按钮添加到 pre 元素(而非 codeWrapper 内),这样它不会随滚动条滚动
+ preElement.appendChild(copyButton)
+ }
+}
+
+// 检查代码块是否已经被处理过
+function isBlockProcessed(block: HTMLElement): boolean {
+ return (
+ block.hasAttribute('data-highlighted') ||
+ !!block.querySelector('.line-number') ||
+ !!block.parentElement?.querySelector('.copy-button')
+ )
+}
+
+// 标记代码块为已处理
+function markBlockAsProcessed(block: HTMLElement) {
+ block.setAttribute('data-highlighted', 'true')
+}
+
+// 处理单个代码块
+function processBlock(block: HTMLElement) {
+ if (isBlockProcessed(block)) {
+ return
+ }
+
+ try {
+ highlightCode(block)
+ insertLineNumbers(block)
+ addCopyButton(block)
+ markBlockAsProcessed(block)
+ } catch (error) {
+ console.warn('处理代码块时出错:', error)
+ }
+}
+
+// 查找并处理所有代码块
+function processAllCodeBlocks(el: HTMLElement) {
+ const blocks = Array.from(el.querySelectorAll('pre code'))
+ const unprocessedBlocks = blocks.filter((block) => !isBlockProcessed(block))
+
+ if (unprocessedBlocks.length === 0) {
+ return
+ }
+
+ if (unprocessedBlocks.length <= 10) {
+ // 如果代码块数量少于等于10,直接处理所有代码块
+ unprocessedBlocks.forEach((block) => processBlock(block))
+ } else {
+ // 定义每次处理的代码块数
+ const batchSize = 10
+ let currentIndex = 0
+
+ const processBatch = () => {
+ const batch = unprocessedBlocks.slice(currentIndex, currentIndex + batchSize)
+
+ batch.forEach((block) => {
+ processBlock(block)
+ })
+
+ // 更新索引并继续处理下一批
+ currentIndex += batchSize
+ if (currentIndex < unprocessedBlocks.length) {
+ // 使用 requestAnimationFrame 确保下一帧再处理
+ requestAnimationFrame(processBatch)
+ }
+ }
+
+ // 开始处理第一批代码块
+ processBatch()
+ }
+}
+
+// 重试处理函数
+function retryProcessing(el: HTMLElement, maxRetries: number = 3, delay: number = 200) {
+ let retryCount = 0
+
+ const tryProcess = () => {
+ processAllCodeBlocks(el)
+
+ // 检查是否还有未处理的代码块
+ const remainingBlocks = Array.from(el.querySelectorAll('pre code')).filter(
+ (block) => !isBlockProcessed(block)
+ )
+
+ if (remainingBlocks.length > 0 && retryCount < maxRetries) {
+ retryCount++
+ setTimeout(tryProcess, delay * retryCount) // 递增延迟
+ }
+ }
+
+ tryProcess()
+}
+
+// 代码高亮、插入行号、复制按钮
+const highlightDirective: Directive = {
+ mounted(el: HTMLElement) {
+ // 立即尝试处理一次
+ processAllCodeBlocks(el)
+
+ // 延迟处理,确保 v-html 内容已经渲染
+ setTimeout(() => {
+ retryProcessing(el)
+ }, 100)
+
+ // 使用 MutationObserver 监听 DOM 变化
+ const observer = new MutationObserver((mutations) => {
+ let hasNewCodeBlocks = false
+
+ mutations.forEach((mutation) => {
+ if (mutation.type === 'childList') {
+ mutation.addedNodes.forEach((node) => {
+ if (node.nodeType === Node.ELEMENT_NODE) {
+ const element = node as HTMLElement
+ // 检查新添加的节点是否包含代码块
+ if (element.tagName === 'PRE' || element.querySelector('pre code')) {
+ hasNewCodeBlocks = true
+ }
+ }
+ })
+ }
+ })
+
+ if (hasNewCodeBlocks) {
+ // 延迟处理新添加的代码块
+ setTimeout(() => {
+ processAllCodeBlocks(el)
+ }, 50)
+ }
+ })
+
+ // 开始观察
+ observer.observe(el, {
+ childList: true,
+ subtree: true
+ })
+
+ // 将 observer 存储到元素上,以便在 unmounted 时清理
+ ;(el as any)._highlightObserver = observer
+ },
+
+ updated(el: HTMLElement) {
+ // 当组件更新时,重新处理代码块
+ setTimeout(() => {
+ processAllCodeBlocks(el)
+ }, 50)
+ },
+
+ unmounted(el: HTMLElement) {
+ // 清理 MutationObserver
+ const observer = (el as any)._highlightObserver
+ if (observer) {
+ observer.disconnect()
+ delete (el as any)._highlightObserver
+ }
+ }
+}
+
+export function setupHighlightDirective(app: App) {
+ app.directive('highlight', highlightDirective)
+}
diff --git a/src/directives/index.ts b/src/directives/index.ts
new file mode 100644
index 0000000..cc7d871
--- /dev/null
+++ b/src/directives/index.ts
@@ -0,0 +1,12 @@
+import type { App } from 'vue'
+import { setupAuthDirective } from './auth'
+import { setupHighlightDirective } from './highlight'
+import { setupRippleDirective } from './ripple'
+import { setupRolesDirective } from './roles'
+
+export function setupGlobDirectives(app: App) {
+ setupAuthDirective(app) // 权限指令
+ setupRolesDirective(app) // 角色权限指令
+ setupHighlightDirective(app) // 高亮指令
+ setupRippleDirective(app) // 水波纹指令
+}
diff --git a/src/directives/ripple.ts b/src/directives/ripple.ts
new file mode 100644
index 0000000..9fb985a
--- /dev/null
+++ b/src/directives/ripple.ts
@@ -0,0 +1,85 @@
+import type { App, Directive, DirectiveBinding } from 'vue'
+
+/**
+ * 水波纹指令
+ * 用法:
+ *
+ * 点击查看水波纹效果
+ *
+ *
+ *
+ * 自定义水波纹颜色
+ *
+ */
+export interface RippleOptions {
+ color?: string
+}
+
+export const vRipple: Directive = {
+ mounted(el: HTMLElement, binding: DirectiveBinding) {
+ // 获取指令的配置参数
+ const options: RippleOptions = binding.value || {}
+
+ // 设置元素为相对定位,并隐藏溢出部分
+ el.style.position = 'relative'
+ el.style.overflow = 'hidden'
+
+ // 点击事件处理
+ el.addEventListener('mousedown', (e: MouseEvent) => {
+ const rect = el.getBoundingClientRect()
+ const left = e.clientX - rect.left
+ const top = e.clientY - rect.top
+
+ // 创建水波纹元素
+ const ripple = document.createElement('div')
+ const diameter = Math.max(el.clientWidth, el.clientHeight)
+ const radius = diameter / 2
+
+ // 根据直径计算动画时间(直径越大,动画时间越长)
+ const baseTime = 600 // 基础动画时间(毫秒)
+ const scaleFactor = 0.5 // 缩放因子
+ const animationDuration = baseTime + diameter * scaleFactor
+
+ // 设置水波纹的尺寸和位置
+ ripple.style.width = ripple.style.height = `${diameter}px`
+ ripple.style.left = `${left - radius}px`
+ ripple.style.top = `${top - radius}px`
+ ripple.style.position = 'absolute'
+ ripple.style.borderRadius = '50%'
+ ripple.style.pointerEvents = 'none'
+
+ // 判断是否为有色按钮(Element Plus 按钮类型)
+ const buttonTypes = ['primary', 'info', 'warning', 'danger', 'success'].map(
+ (type) => `el-button--${type}`
+ )
+ const isColoredButton = buttonTypes.some((type) => el.classList.contains(type))
+ const defaultColor = isColoredButton
+ ? 'rgba(255, 255, 255, 0.35)' // 有色按钮使用白色水波纹
+ : 'var(--el-color-primary-light-7)' // 默认按钮使用主题色水波纹
+
+ // 设置水波纹颜色、初始状态和过渡效果
+ ripple.style.backgroundColor = options.color || defaultColor
+ ripple.style.transform = 'scale(0)'
+ ripple.style.transition = `transform ${animationDuration}ms cubic-bezier(0.3, 0, 0.2, 1), opacity ${animationDuration}ms cubic-bezier(0.3, 0, 0.5, 1)`
+ ripple.style.zIndex = '1'
+
+ // 添加水波纹元素到DOM中
+ el.appendChild(ripple)
+
+ // 触发动画
+ requestAnimationFrame(() => {
+ ripple.style.transform = 'scale(2)'
+ ripple.style.opacity = '0'
+ })
+
+ // 动画结束后移除水波纹元素
+ setTimeout(() => {
+ ripple.remove()
+ }, animationDuration + 500) // 增加500ms缓冲时间
+ })
+ }
+}
+
+export function setupRippleDirective(app: App) {
+ app.directive('ripple', vRipple)
+}
diff --git a/src/directives/roles.ts b/src/directives/roles.ts
new file mode 100644
index 0000000..a2daead
--- /dev/null
+++ b/src/directives/roles.ts
@@ -0,0 +1,51 @@
+import { useUserStore } from '@/store/modules/user'
+import { App, Directive, DirectiveBinding } from 'vue'
+
+/**
+ * 角色权限指令
+ * 只要用户角色包含指令值中的任意一个角色,则显示元素
+ * 用法:
+ * 按钮
+ * 按钮
+ */
+
+interface RolesBinding extends DirectiveBinding {
+ value: string | string[]
+}
+
+function checkRolePermission(el: HTMLElement, binding: RolesBinding): void {
+ const userStore = useUserStore()
+ const userRoles = userStore.getUserInfo.roles
+
+ // 如果用户角色为空或未定义,移除元素
+ if (!userRoles?.length) {
+ removeElement(el)
+ return
+ }
+
+ // 确保指令值为数组格式
+ const requiredRoles = Array.isArray(binding.value) ? binding.value : [binding.value]
+
+ // 检查用户是否具有所需角色之一
+ const hasPermission = requiredRoles.some((role: string) => userRoles.includes(role))
+
+ // 如果没有权限,安全地移除元素
+ if (!hasPermission) {
+ removeElement(el)
+ }
+}
+
+function removeElement(el: HTMLElement): void {
+ if (el.parentNode) {
+ el.parentNode.removeChild(el)
+ }
+}
+
+const rolesDirective: Directive = {
+ mounted: checkRolePermission,
+ updated: checkRolePermission
+}
+
+export function setupRolesDirective(app: App): void {
+ app.directive('roles', rolesDirective)
+}
diff --git a/src/enums/appEnum.ts b/src/enums/appEnum.ts
new file mode 100644
index 0000000..5f31231
--- /dev/null
+++ b/src/enums/appEnum.ts
@@ -0,0 +1,56 @@
+// 系统级别枚举
+
+// 菜单类型
+export enum MenuTypeEnum {
+ LEFT = 'left',
+ TOP = 'top',
+ TOP_LEFT = 'top-left',
+ DUAL_MENU = 'dual-menu'
+}
+
+// App theme enum
+export enum SystemThemeEnum {
+ DARK = 'dark',
+ LIGHT = 'light',
+ AUTO = 'auto'
+}
+
+// Menu theme enum
+export enum MenuThemeEnum {
+ DARK = 'dark',
+ LIGHT = 'light',
+ DESIGN = 'design'
+}
+
+// Menu close width
+export enum MenuWidth {
+ CLOSE = '70px'
+}
+
+// Language
+export enum LanguageEnum {
+ ZH = 'zh',
+ EN = 'en'
+}
+
+// Icon type
+export enum IconTypeEnum {
+ CLASS_NAME = 'className',
+ UNICODE = 'unicode'
+}
+
+// Container width
+export enum ContainerWidthEnum {
+ FULL = '100%',
+ BOXED = '1200px'
+}
+
+// Background color enum
+export enum BgColorEnum {
+ PRIMARY = 'bg-primary',
+ SECONDARY = 'bg-secondary',
+ WARNING = 'bg-warning',
+ ERROR = 'bg-error',
+ SUCCESS = 'bg-success',
+ DANGER = 'bg-danger'
+}
diff --git a/src/enums/formEnum.ts b/src/enums/formEnum.ts
new file mode 100644
index 0000000..d85d4cf
--- /dev/null
+++ b/src/enums/formEnum.ts
@@ -0,0 +1,14 @@
+// 表单枚举
+
+// 页面类型
+export enum PageModeEnum {
+ Add, // 新增
+ Edit // 编辑
+}
+
+// 表格大小
+export enum TableSizeEnum {
+ DEFAULT = 'default',
+ SMALL = 'small',
+ LARGE = 'large'
+}
diff --git a/src/env.d.ts b/src/env.d.ts
new file mode 100644
index 0000000..43f3a25
--- /dev/null
+++ b/src/env.d.ts
@@ -0,0 +1,54 @@
+///
+
+declare module '*.vue' {
+ import { DefineComponent } from 'vue'
+ const component: DefineComponent
+评论 {{ comments.length }}
+
+
+