From c5e280307e9ea652fd7b5e8771283e23a6b5ba5b Mon Sep 17 00:00:00 2001 From: otis <33190365+o-cc@users.noreply.github.com> Date: Mon, 22 Jan 2024 21:37:30 +0800 Subject: [PATCH 001/102] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96`iframe`?= =?UTF-8?q?=E7=BC=93=E5=AD=98=20(#879)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/frameView.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/layout/frameView.vue b/src/layout/frameView.vue index c7c9719d8..7e7725c05 100644 --- a/src/layout/frameView.vue +++ b/src/layout/frameView.vue @@ -48,14 +48,17 @@ function init() { watch( () => currentRoute.fullPath, path => { + if ( + currentRoute.name === "Redirect" && + path.includes(props.frameInfo?.fullPath) + ) { + frameSrc.value = path; // redirect时,置换成任意值,待重定向后 重新赋值 + loading.value = true; + } + // 重新赋值 if (props.frameInfo?.fullPath === path) { frameSrc.value = props.frameInfo?.frameSrc; } - // 重新加载 - if (path.indexOf("/redirect/") > -1) { - frameSrc.value = props.frameInfo?.fullPath; - loading.value = true; - } } ); From c1eaeeb3096d323a3845db8862cc6b2b18dba434 Mon Sep 17 00:00:00 2001 From: Rhh-Z <106086215+Rhh-Z@users.noreply.github.com> Date: Tue, 23 Jan 2024 10:27:01 +0800 Subject: [PATCH 002/102] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=93=8D=E4=BD=9C=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=9C=A8?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E8=BE=83=E6=85=A2=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E8=A7=A6=E5=8F=91=E7=99=BB=E5=BD=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=20(#880)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(function): 修复点击登录后再连续敲击回车会不断触发onLogin函数的问题 --- src/views/login/index.vue | 45 +++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 6fe4bd23a..fa8f353a4 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,13 +1,4 @@ diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 0be17a3e5..20ff66fe3 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -166,7 +166,9 @@ watch(loginDay, value => {

- +

From c314b0cd1cba2e141da3239d0d152de9d0838881 Mon Sep 17 00:00:00 2001 From: xiaoming <1923740402@qq.com> Date: Mon, 26 Feb 2024 22:17:40 +0800 Subject: [PATCH 013/102] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=AE=A1=E7=90=86-=E8=8F=9C=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20(#929)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 添加系统管理-菜单管理 * chore: update * chore: add Copyright in login page * chore: 将页脚放在一屏可视区 * chore: 依赖更新 * chore: update * chore: update * chore: 更新依赖 * chore: update `husky v9` * style: 适配`el-dialog`样式的更新 * style: update `src/layout/components/search/components/SearchResult.vue` * chore: update * style: update * fix: 修复`ReDialog`中点击取消和确定按钮会触发两次关闭回调 * chore: update * chore: update src/views/system/menu/README.md * chore: update * chore: update * chore: done * chore: update --- .nvmrc | 2 +- .prettierignore | 1 + locales/en.yaml | 1 + locales/zh-CN.yaml | 1 + mock/asyncRoutes.ts | 29 +- mock/system.ts | 614 +++++ package.json | 74 +- pnpm-lock.yaml | 2008 +++++++++-------- public/platform-config.json | 2 +- src/api/system.ts | 5 + src/assets/login/illustration.svg | 2 +- .../ReAnimateSelector/src/index.vue | 11 +- src/components/ReDialog/index.vue | 2 +- src/components/ReDialog/type.ts | 6 +- src/components/ReIcon/src/Select.vue | 2 +- src/components/ReIcon/src/offlineIcon.ts | 16 +- src/components/RePureTableBar/src/bar.tsx | 6 +- src/components/ReSegmented/src/type.ts | 2 +- src/layout/components/footer/index.vue | 12 +- src/layout/components/notice/data.ts | 2 +- .../search/components/SearchResult.vue | 2 +- .../components/sidebar/leftCollapse.vue | 31 +- src/layout/components/sidebar/sidebarItem.vue | 6 +- src/router/enums.ts | 2 +- src/router/modules/components.ts | 2 +- src/style/element-plus.scss | 27 +- src/style/login.css | 1 + src/views/components/animatecss.vue | 8 +- src/views/components/dialog/index.vue | 6 +- src/views/components/tag.vue | 4 +- src/views/login/index.vue | 12 + src/views/permission/button/index.vue | 55 +- src/views/pure-table/base/filters.vue | 5 +- src/views/system/dept/index.vue | 22 +- src/views/system/menu/README.md | 27 + src/views/system/menu/form.vue | 326 +++ src/views/system/menu/index.vue | 157 ++ src/views/system/menu/utils/enums.ts | 94 + src/views/system/menu/utils/hook.tsx | 223 ++ src/views/system/menu/utils/rule.ts | 10 + src/views/system/menu/utils/types.ts | 29 + src/views/system/role/index.vue | 5 + src/views/system/user/index.vue | 5 + src/views/system/user/tree.vue | 2 +- src/views/system/user/utils/hook.tsx | 2 +- 45 files changed, 2743 insertions(+), 1118 deletions(-) create mode 100644 .prettierignore create mode 100644 src/views/system/menu/README.md create mode 100644 src/views/system/menu/form.vue create mode 100644 src/views/system/menu/index.vue create mode 100644 src/views/system/menu/utils/enums.ts create mode 100644 src/views/system/menu/utils/hook.tsx create mode 100644 src/views/system/menu/utils/rule.ts create mode 100644 src/views/system/menu/utils/types.ts diff --git a/.nvmrc b/.nvmrc index df9385826..2efc7e111 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.11.0 \ No newline at end of file +v20.11.1 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..1667337a6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +src/views/system/menu/README.md \ No newline at end of file diff --git a/locales/en.yaml b/locales/en.yaml index 7d0284641..ce91b53cc 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -29,6 +29,7 @@ menus: hssysManagement: System Manage hsUser: User Manage hsRole: Role Manage + hsSystemMenu: Menu Manage hsDept: Dept Manage hseditor: Editor hsabnormal: Abnormal Page diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index f5c14d08d..2875bb638 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -29,6 +29,7 @@ menus: hssysManagement: 系统管理 hsUser: 用户管理 hsRole: 角色管理 + hsSystemMenu: 菜单管理 hsDept: 部门管理 hseditor: 编辑器 hsabnormal: 异常页面 diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts index af626514a..043886777 100644 --- a/mock/asyncRoutes.ts +++ b/mock/asyncRoutes.ts @@ -11,7 +11,7 @@ import { system, permission, frame, tabs } from "@/router/enums"; const systemRouter = { path: "/system", meta: { - icon: "setting", + icon: "ri:settings-3-line", title: "menus.hssysManagement", rank: system }, @@ -20,7 +20,7 @@ const systemRouter = { path: "/system/user/index", name: "SystemUser", meta: { - icon: "flUser", + icon: "ri:admin-line", title: "menus.hsUser", roles: ["admin"] } @@ -29,16 +29,25 @@ const systemRouter = { path: "/system/role/index", name: "SystemRole", meta: { - icon: "role", + icon: "ri:admin-fill", title: "menus.hsRole", roles: ["admin"] } }, + { + path: "/system/menu/index", + name: "SystemMenu", + meta: { + icon: "ep:menu", + title: "menus.hsSystemMenu", + roles: ["admin"] + } + }, { path: "/system/dept/index", name: "SystemDept", meta: { - icon: "dept", + icon: "ri:git-branch-line", title: "menus.hsDept", roles: ["admin"] } @@ -50,7 +59,7 @@ const permissionRouter = { path: "/permission", meta: { title: "menus.permission", - icon: "lollipop", + icon: "ep:lollipop", rank: permission }, children: [ @@ -68,7 +77,11 @@ const permissionRouter = { meta: { title: "menus.permissionButton", roles: ["admin", "common"], - auths: ["btn_add", "btn_edit", "btn_delete"] + auths: [ + "permission:btn:add", + "permission:btn:edit", + "permission:btn:delete" + ] } } ] @@ -77,7 +90,7 @@ const permissionRouter = { const frameRouter = { path: "/iframe", meta: { - icon: "monitor", + icon: "ep:monitor", title: "menus.hsExternalPage", rank: frame }, @@ -180,7 +193,7 @@ const frameRouter = { const tabsRouter = { path: "/tabs", meta: { - icon: "tag", + icon: "ri:bookmark-2-line", title: "menus.hstabs", rank: tabs }, diff --git a/mock/system.ts b/mock/system.ts index ff7b884fe..30d84d1b5 100644 --- a/mock/system.ts +++ b/mock/system.ts @@ -140,6 +140,620 @@ export default defineFakeRoute([ }; } }, + // 菜单管理 + { + url: "/menu", + method: "post", + response: () => { + return { + success: true, + data: [ + // 外部页面 + { + parentId: 0, + id: 100, + menuType: 0, // 菜单类型(0代表菜单、1代表iframe、2代表外链、3代表按钮) + title: "menus.hsExternalPage", + name: "PureIframe", + path: "/iframe", + component: "", + rank: 7, + redirect: "", + icon: "ep:monitor", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 100, + id: 101, + menuType: 0, + title: "menus.hsExternalDoc", + name: "PureIframeExternal", + path: "/iframe/external", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 101, + id: 102, + menuType: 2, + title: "menus.externalLink", + name: "https://yiming_chang.gitee.io/pure-admin-doc", + path: "/external", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 101, + id: 103, + menuType: 2, + title: "menus.pureutilsLink", + name: "https://pure-admin-utils.netlify.app/", + path: "/pureutilsLink", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 100, + id: 104, + menuType: 1, + title: "menus.hsEmbeddedDoc", + name: "PureIframeEmbedded", + path: "/iframe/embedded", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 104, + id: 105, + menuType: 1, + title: "menus.hsEpDocument", + name: "FrameEp", + path: "/iframe/ep", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "https://element-plus.org/zh-CN/", + frameLoading: true, + keepAlive: true, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 104, + id: 106, + menuType: 1, + title: "menus.hsTailwindcssDocument", + name: "FrameTailwindcss", + path: "/iframe/tailwindcss", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "https://tailwindcss.com/docs/installation", + frameLoading: true, + keepAlive: true, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 104, + id: 107, + menuType: 1, + title: "menus.hsVueDocument", + name: "FrameVue", + path: "/iframe/vue3", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "https://cn.vuejs.org/", + frameLoading: true, + keepAlive: true, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 104, + id: 108, + menuType: 1, + title: "menus.hsViteDocument", + name: "FrameVite", + path: "/iframe/vite", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "https://cn.vitejs.dev/", + frameLoading: true, + keepAlive: true, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 104, + id: 109, + menuType: 1, + title: "menus.hsPiniaDocument", + name: "FramePinia", + path: "/iframe/pinia", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "https://pinia.vuejs.org/zh/index.html", + frameLoading: true, + keepAlive: true, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 104, + id: 110, + menuType: 1, + title: "menus.hsRouterDocument", + name: "FrameRouter", + path: "/iframe/vue-router", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "https://router.vuejs.org/zh/", + frameLoading: true, + keepAlive: true, + hiddenTag: false, + showLink: true, + showParent: false + }, + // 权限管理 + { + parentId: 0, + id: 200, + menuType: 0, + title: "menus.permission", + name: "PurePermission", + path: "/permission", + component: "", + rank: 9, + redirect: "", + icon: "ep:lollipop", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 200, + id: 201, + menuType: 0, + title: "menus.permissionPage", + name: "PermissionPage", + path: "/permission/page/index", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 200, + id: 202, + menuType: 0, + title: "menus.permissionButton", + name: "PermissionButton", + path: "/permission/button/index", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 202, + id: 203, + menuType: 3, + title: "添加", + name: "", + path: "", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "permission:btn:add", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 202, + id: 204, + menuType: 3, + title: "修改", + name: "", + path: "", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "permission:btn:edit", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 202, + id: 205, + menuType: 3, + title: "删除", + name: "", + path: "", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "permission:btn:delete", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + // 系统管理 + { + parentId: 0, + id: 300, + menuType: 0, + title: "menus.hssysManagement", + name: "PureSystem", + path: "/system", + component: "", + rank: 10, + redirect: "", + icon: "ri:settings-3-line", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 300, + id: 301, + menuType: 0, + title: "menus.hsUser", + name: "SystemUser", + path: "/system/user/index", + component: "", + rank: null, + redirect: "", + icon: "ri:admin-line", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 300, + id: 302, + menuType: 0, + title: "menus.hsRole", + name: "SystemRole", + path: "/system/role/index", + component: "", + rank: null, + redirect: "", + icon: "ri:admin-fill", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 300, + id: 303, + menuType: 0, + title: "menus.hsSystemMenu", + name: "SystemMenu", + path: "/system/menu/index", + component: "", + rank: null, + redirect: "", + icon: "ep:menu", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 300, + id: 304, + menuType: 0, + title: "menus.hsDept", + name: "SystemDept", + path: "/system/dept/index", + component: "", + rank: null, + redirect: "", + icon: "ri:git-branch-line", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + // 标签页操作 + { + parentId: 0, + id: 400, + menuType: 0, + title: "menus.hstabs", + name: "PureTabs", + path: "/tabs", + component: "", + rank: 11, + redirect: "", + icon: "ri:bookmark-2-line", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 400, + id: 401, + menuType: 0, + title: "menus.hstabs", + name: "Tabs", + path: "/tabs/index", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: true, + showParent: false + }, + { + parentId: 400, + id: 402, + menuType: 0, + title: "query传参模式", + name: "TabQueryDetail", + path: "/tabs/query-detail", + component: "", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "/tabs/index", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: false, + showParent: false + }, + { + parentId: 400, + id: 403, + menuType: 0, + title: "params传参模式", + name: "TabParamsDetail", + path: "/tabs/params-detail/:id", + component: "params-detail", + rank: null, + redirect: "", + icon: "", + extraIcon: "", + enterTransition: "", + leaveTransition: "", + activePath: "/tabs/index", + auths: "", + frameSrc: "", + frameLoading: true, + keepAlive: false, + hiddenTag: false, + showLink: false, + showParent: false + } + ] + }; + } + }, // 部门管理 { url: "/dept", diff --git a/package.json b/package.json index 06526ac9c..b6000d9da 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "lint:prettier": "prettier --write \"src/**/*.{js,ts,json,tsx,css,scss,vue,html,md}\"", "lint:stylelint": "stylelint --cache --fix \"**/*.{html,vue,css,scss}\" --cache-location node_modules/.cache/stylelint/", "lint": "pnpm lint:eslint && pnpm lint:prettier && pnpm lint:stylelint", - "prepare": "husky install", + "prepare": "husky", "preinstall": "npx only-allow pnpm" }, "keywords": [ @@ -50,13 +50,13 @@ "dependencies": { "@amap/amap-jsapi-loader": "^1.0.1", "@howdyjs/mouse-menu": "2.0.9", - "@logicflow/core": "^1.2.18", - "@logicflow/extension": "^1.2.19", + "@logicflow/core": "^1.2.22", + "@logicflow/extension": "^1.2.22", "@pureadmin/descriptions": "^1.2.0", "@pureadmin/table": "^3.0.2", "@pureadmin/utils": "^2.4.4", - "@vueuse/core": "^10.7.2", - "@vueuse/motion": "^2.0.0", + "@vueuse/core": "^10.8.0", + "@vueuse/motion": "^2.1.0", "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.12", "@zxcvbn-ts/core": "^3.0.4", @@ -65,9 +65,9 @@ "china-area-data": "^5.0.1", "cropperjs": "^1.6.1", "dayjs": "^1.11.10", - "echarts": "^5.4.3", + "echarts": "^5.5.0", "el-table-infinite-scroll": "^3.0.3", - "element-plus": "^2.5.3", + "element-plus": "^2.5.6", "intro.js": "^7.2.0", "js-cookie": "^3.0.5", "jsbarcode": "^3.11.6", @@ -77,37 +77,37 @@ "nprogress": "^0.2.0", "path": "^0.12.7", "pinia": "^2.1.7", - "pinyin-pro": "^3.19.3", + "pinyin-pro": "^3.19.6", "qrcode": "^1.5.3", "qs": "^6.11.2", "responsive-storage": "^2.2.0", "sortablejs": "^1.15.2", - "swiper": "^11.0.5", + "swiper": "^11.0.6", "typeit": "8.7.1", - "v-contextmenu": "3.0.0", + "v-contextmenu": "^3.2.0", "v3-infinite-loading": "^1.3.1", "version-rocket": "^1.7.1", "vue": "3.4.14", - "vue-i18n": "^9.9.0", + "vue-i18n": "^9.9.1", "vue-json-pretty": "^2.3.0", "vue-pdf-embed": "1.2.1", - "vue-router": "^4.2.5", + "vue-router": "^4.3.0", "vue-tippy": "^6.4.1", "vue-types": "^5.1.1", "vue-virtual-scroller": "2.0.0-beta.8", "vue-waterfall-plugin-next": "^2.3.1", "vue3-danmaku": "^1.6.0", "vuedraggable": "^4.1.0", - "wavesurfer.js": "^7.7.1", - "xgplayer": "^3.0.11", + "wavesurfer.js": "^7.7.3", + "xgplayer": "^3.0.13", "xlsx": "^0.18.5" }, "devDependencies": { - "@commitlint/cli": "^18.6.0", - "@commitlint/config-conventional": "^18.6.0", - "@commitlint/types": "^18.6.0", - "@eslint/js": "^8.56.0", - "@faker-js/faker": "^8.4.0", + "@commitlint/cli": "^18.6.1", + "@commitlint/config-conventional": "^18.6.2", + "@commitlint/types": "^18.6.1", + "@eslint/js": "^8.57.0", + "@faker-js/faker": "^8.4.1", "@iconify-icons/ep": "^1.2.12", "@iconify-icons/ri": "^1.2.10", "@iconify/vue": "^4.1.1", @@ -116,44 +116,44 @@ "@types/gradient-string": "^1.1.5", "@types/intro.js": "^5.1.5", "@types/js-cookie": "^3.0.6", - "@types/node": "^20.11.7", + "@types/node": "^20.11.20", "@types/nprogress": "^0.2.3", "@types/qrcode": "^1.5.5", "@types/qs": "^6.9.11", - "@types/sortablejs": "^1.15.7", - "@typescript-eslint/eslint-plugin": "^6.19.1", - "@typescript-eslint/parser": "^6.19.1", - "@vitejs/plugin-vue": "^5.0.3", + "@types/sortablejs": "^1.15.8", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", + "@vitejs/plugin-vue": "^5.0.4", "@vitejs/plugin-vue-jsx": "^3.1.0", "autoprefixer": "^10.4.17", "boxen": "^7.1.1", "cloc": "^2.11.0", - "cssnano": "^6.0.3", - "eslint": "^8.56.0", + "cssnano": "^6.0.5", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-define-config": "^2.1.0", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-vue": "^9.20.1", + "eslint-plugin-vue": "^9.22.0", "gradient-string": "^2.0.2", - "husky": "^8.0.3", - "lint-staged": "^15.2.0", - "postcss": "^8.4.33", + "husky": "^9.0.11", + "lint-staged": "^15.2.2", + "postcss": "^8.4.35", "postcss-html": "^1.6.0", - "postcss-import": "^15.1.0", + "postcss-import": "^16.0.1", "postcss-scss": "^4.0.9", - "prettier": "^3.2.4", + "prettier": "^3.2.5", "rimraf": "^5.0.5", "rollup-plugin-visualizer": "^5.12.0", - "sass": "^1.70.0", - "stylelint": "^16.2.0", - "stylelint-config-recess-order": "^4.4.0", + "sass": "^1.71.1", + "stylelint": "^16.2.1", + "stylelint-config-recess-order": "^4.6.0", "stylelint-config-recommended-vue": "^1.5.0", - "stylelint-config-standard-scss": "^12.0.0", + "stylelint-config-standard-scss": "^13.0.0", "stylelint-prettier": "^5.0.0", "svgo": "^3.2.0", "tailwindcss": "^3.4.1", "typescript": "^5.3.3", - "vite": "^5.0.12", + "vite": "^5.1.4", "vite-plugin-cdn-import": "^0.3.5", "vite-plugin-compression": "^0.5.1", "vite-plugin-fake-server": "^2.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0998bae56..85a10a2e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,26 +12,26 @@ dependencies: specifier: 2.0.9 version: 2.0.9(vue@3.4.14) '@logicflow/core': - specifier: ^1.2.18 - version: 1.2.18 + specifier: ^1.2.22 + version: 1.2.22 '@logicflow/extension': - specifier: ^1.2.19 - version: 1.2.19 + specifier: ^1.2.22 + version: 1.2.22 '@pureadmin/descriptions': specifier: ^1.2.0 - version: 1.2.0(element-plus@2.5.3)(typescript@5.3.3) + version: 1.2.0(element-plus@2.5.6)(typescript@5.3.3) '@pureadmin/table': specifier: ^3.0.2 - version: 3.0.2(element-plus@2.5.3)(typescript@5.3.3) + version: 3.0.2(element-plus@2.5.6)(typescript@5.3.3) '@pureadmin/utils': specifier: ^2.4.4 - version: 2.4.4(echarts@5.4.3)(vue@3.4.14) + version: 2.4.4(echarts@5.5.0)(vue@3.4.14) '@vueuse/core': - specifier: ^10.7.2 - version: 10.7.2(vue@3.4.14) + specifier: ^10.8.0 + version: 10.8.0(vue@3.4.14) '@vueuse/motion': - specifier: ^2.0.0 - version: 2.0.0(rollup@2.79.1)(vue@3.4.14) + specifier: ^2.1.0 + version: 2.1.0(rollup@2.79.1)(vue@3.4.14) '@wangeditor/editor': specifier: ^5.1.23 version: 5.1.23 @@ -57,14 +57,14 @@ dependencies: specifier: ^1.11.10 version: 1.11.10 echarts: - specifier: ^5.4.3 - version: 5.4.3 + specifier: ^5.5.0 + version: 5.5.0 el-table-infinite-scroll: specifier: ^3.0.3 version: 3.0.3(typescript@5.3.3) element-plus: - specifier: ^2.5.3 - version: 2.5.3(vue@3.4.14) + specifier: ^2.5.6 + version: 2.5.6(vue@3.4.14) intro.js: specifier: ^7.2.0 version: 7.2.0 @@ -93,8 +93,8 @@ dependencies: specifier: ^2.1.7 version: 2.1.7(typescript@5.3.3)(vue@3.4.14) pinyin-pro: - specifier: ^3.19.3 - version: 3.19.3 + specifier: ^3.19.6 + version: 3.19.6 qrcode: specifier: ^1.5.3 version: 1.5.3 @@ -108,14 +108,14 @@ dependencies: specifier: ^1.15.2 version: 1.15.2 swiper: - specifier: ^11.0.5 - version: 11.0.5 + specifier: ^11.0.6 + version: 11.0.6 typeit: specifier: 8.7.1 version: 8.7.1 v-contextmenu: - specifier: 3.0.0 - version: 3.0.0(vue@3.4.14) + specifier: ^3.2.0 + version: 3.2.0(vue@3.4.14) v3-infinite-loading: specifier: ^1.3.1 version: 1.3.1 @@ -126,8 +126,8 @@ dependencies: specifier: 3.4.14 version: 3.4.14(typescript@5.3.3) vue-i18n: - specifier: ^9.9.0 - version: 9.9.0(vue@3.4.14) + specifier: ^9.9.1 + version: 9.9.1(vue@3.4.14) vue-json-pretty: specifier: ^2.3.0 version: 2.3.0(vue@3.4.14) @@ -135,8 +135,8 @@ dependencies: specifier: 1.2.1 version: 1.2.1(vue@3.4.14) vue-router: - specifier: ^4.2.5 - version: 4.2.5(vue@3.4.14) + specifier: ^4.3.0 + version: 4.3.0(vue@3.4.14) vue-tippy: specifier: ^6.4.1 version: 6.4.1(vue@3.4.14) @@ -156,31 +156,31 @@ dependencies: specifier: ^4.1.0 version: 4.1.0(vue@3.4.14) wavesurfer.js: - specifier: ^7.7.1 - version: 7.7.1 + specifier: ^7.7.3 + version: 7.7.3 xgplayer: - specifier: ^3.0.11 - version: 3.0.11(core-js@3.35.1) + specifier: ^3.0.13 + version: 3.0.13(core-js@3.36.0) xlsx: specifier: ^0.18.5 version: 0.18.5 devDependencies: '@commitlint/cli': - specifier: ^18.6.0 - version: 18.6.0(@types/node@20.11.7)(typescript@5.3.3) + specifier: ^18.6.1 + version: 18.6.1(@types/node@20.11.20)(typescript@5.3.3) '@commitlint/config-conventional': - specifier: ^18.6.0 - version: 18.6.0 + specifier: ^18.6.2 + version: 18.6.2 '@commitlint/types': - specifier: ^18.6.0 - version: 18.6.0 + specifier: ^18.6.1 + version: 18.6.1 '@eslint/js': - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^8.57.0 + version: 8.57.0 '@faker-js/faker': - specifier: ^8.4.0 - version: 8.4.0 + specifier: ^8.4.1 + version: 8.4.1 '@iconify-icons/ep': specifier: ^1.2.12 version: 1.2.12 @@ -192,7 +192,7 @@ devDependencies: version: 4.1.1(vue@3.4.14) '@intlify/unplugin-vue-i18n': specifier: ^2.0.0 - version: 2.0.0(rollup@2.79.1)(vue-i18n@9.9.0) + version: 2.0.0(rollup@2.79.1)(vue-i18n@9.9.1) '@pureadmin/theme': specifier: ^3.2.0 version: 3.2.0 @@ -206,8 +206,8 @@ devDependencies: specifier: ^3.0.6 version: 3.0.6 '@types/node': - specifier: ^20.11.7 - version: 20.11.7 + specifier: ^20.11.20 + version: 20.11.20 '@types/nprogress': specifier: ^0.2.3 version: 0.2.3 @@ -218,23 +218,23 @@ devDependencies: specifier: ^6.9.11 version: 6.9.11 '@types/sortablejs': - specifier: ^1.15.7 - version: 1.15.7 + specifier: ^1.15.8 + version: 1.15.8 '@typescript-eslint/eslint-plugin': - specifier: ^6.19.1 - version: 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^7.0.2 + version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.19.1 - version: 6.19.1(eslint@8.56.0)(typescript@5.3.3) + specifier: ^7.0.2 + version: 7.0.2(eslint@8.57.0)(typescript@5.3.3) '@vitejs/plugin-vue': - specifier: ^5.0.3 - version: 5.0.3(vite@5.0.12)(vue@3.4.14) + specifier: ^5.0.4 + version: 5.0.4(vite@5.1.4)(vue@3.4.14) '@vitejs/plugin-vue-jsx': specifier: ^3.1.0 - version: 3.1.0(vite@5.0.12)(vue@3.4.14) + version: 3.1.0(vite@5.1.4)(vue@3.4.14) autoprefixer: specifier: ^10.4.17 - version: 10.4.17(postcss@8.4.33) + version: 10.4.17(postcss@8.4.35) boxen: specifier: ^7.1.1 version: 7.1.1 @@ -242,47 +242,47 @@ devDependencies: specifier: ^2.11.0 version: 2.11.0 cssnano: - specifier: ^6.0.3 - version: 6.0.3(postcss@8.4.33) + specifier: ^6.0.5 + version: 6.0.5(postcss@8.4.35) eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^8.57.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-define-config: specifier: ^2.1.0 version: 2.1.0 eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-vue: - specifier: ^9.20.1 - version: 9.20.1(eslint@8.56.0) + specifier: ^9.22.0 + version: 9.22.0(eslint@8.57.0) gradient-string: specifier: ^2.0.2 version: 2.0.2 husky: - specifier: ^8.0.3 - version: 8.0.3 + specifier: ^9.0.11 + version: 9.0.11 lint-staged: - specifier: ^15.2.0 - version: 15.2.0 + specifier: ^15.2.2 + version: 15.2.2 postcss: - specifier: ^8.4.33 - version: 8.4.33 + specifier: ^8.4.35 + version: 8.4.35 postcss-html: specifier: ^1.6.0 version: 1.6.0 postcss-import: - specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.33) + specifier: ^16.0.1 + version: 16.0.1(postcss@8.4.35) postcss-scss: specifier: ^4.0.9 - version: 4.0.9(postcss@8.4.33) + version: 4.0.9(postcss@8.4.35) prettier: - specifier: ^3.2.4 - version: 3.2.4 + specifier: ^3.2.5 + version: 3.2.5 rimraf: specifier: ^5.0.5 version: 5.0.5 @@ -290,23 +290,23 @@ devDependencies: specifier: ^5.12.0 version: 5.12.0(rollup@2.79.1) sass: - specifier: ^1.70.0 - version: 1.70.0 + specifier: ^1.71.1 + version: 1.71.1 stylelint: - specifier: ^16.2.0 - version: 16.2.0(typescript@5.3.3) + specifier: ^16.2.1 + version: 16.2.1(typescript@5.3.3) stylelint-config-recess-order: - specifier: ^4.4.0 - version: 4.4.0(stylelint@16.2.0) + specifier: ^4.6.0 + version: 4.6.0(stylelint@16.2.1) stylelint-config-recommended-vue: specifier: ^1.5.0 - version: 1.5.0(postcss-html@1.6.0)(stylelint@16.2.0) + version: 1.5.0(postcss-html@1.6.0)(stylelint@16.2.1) stylelint-config-standard-scss: - specifier: ^12.0.0 - version: 12.0.0(postcss@8.4.33)(stylelint@16.2.0) + specifier: ^13.0.0 + version: 13.0.0(postcss@8.4.35)(stylelint@16.2.1) stylelint-prettier: specifier: ^5.0.0 - version: 5.0.0(prettier@3.2.4)(stylelint@16.2.0) + version: 5.0.0(prettier@3.2.5)(stylelint@16.2.1) svgo: specifier: ^3.2.0 version: 3.2.0 @@ -317,14 +317,14 @@ devDependencies: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.0.12 - version: 5.0.12(@types/node@20.11.7)(sass@1.70.0) + specifier: ^5.1.4 + version: 5.1.4(@types/node@20.11.20)(sass@1.71.1) vite-plugin-cdn-import: specifier: ^0.3.5 version: 0.3.5(rollup@2.79.1) vite-plugin-compression: specifier: ^0.5.1 - version: 0.5.1(vite@5.0.12) + version: 0.5.1(vite@5.1.4) vite-plugin-fake-server: specifier: ^2.1.1 version: 2.1.1 @@ -339,7 +339,7 @@ devDependencies: version: 5.1.0(vue@3.4.14) vue-eslint-parser: specifier: ^9.4.2 - version: 9.4.2(eslint@8.56.0) + version: 9.4.2(eslint@8.57.0) vue-tsc: specifier: ^1.8.27 version: 1.8.27(typescript@5.3.3) @@ -364,8 +364,8 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.4 + '@jridgewell/trace-mapping': 0.3.23 /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} @@ -405,8 +405,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.9 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.4 + '@jridgewell/trace-mapping': 0.3.23 jsesc: 2.5.2 /@babel/helper-annotate-as-pure@7.22.5: @@ -422,12 +422,12 @@ packages: dependencies: '@babel/compat-data': 7.23.5 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.3 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.23.9(@babel/core@7.23.9): - resolution: {integrity: sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw==} + /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): + resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -702,7 +702,7 @@ packages: dependencies: '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.9(@babel/core@7.23.9) + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) dev: true @@ -714,8 +714,8 @@ packages: regenerator-runtime: 0.14.1 dev: false - /@babel/standalone@7.23.9: - resolution: {integrity: sha512-89NGhVfgKDqDQrtNPxqfnhIReKvp2CR80ofPNEAUpbtnouFelq33hQFURLralD9I+eFS7s5zVK61JRg/D1nLWg==} + /@babel/standalone@7.23.10: + resolution: {integrity: sha512-xqWviI/pt1Zb/d+6ilWa5IDL2mkDzsBnlHbreqnfyP3/QB/ofQ1bNVcHj8YQX154Rf/xZKR6y0s1ydVF3nAS8g==} engines: {node: '>=6.9.0'} requiresBuild: true dev: false @@ -758,16 +758,16 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: false - /@commitlint/cli@18.6.0(@types/node@20.11.7)(typescript@5.3.3): - resolution: {integrity: sha512-FiH23cr9QG8VdfbmvJJZmdfHGVMCouOOAzoXZ3Cd7czGC52RbycwNt8YCI7SA69pAl+t30vh8LMaO/N+kcel6w==} + /@commitlint/cli@18.6.1(@types/node@20.11.20)(typescript@5.3.3): + resolution: {integrity: sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==} engines: {node: '>=v18'} hasBin: true dependencies: - '@commitlint/format': 18.6.0 - '@commitlint/lint': 18.6.0 - '@commitlint/load': 18.6.0(@types/node@20.11.7)(typescript@5.3.3) - '@commitlint/read': 18.6.0 - '@commitlint/types': 18.6.0 + '@commitlint/format': 18.6.1 + '@commitlint/lint': 18.6.1 + '@commitlint/load': 18.6.1(@types/node@20.11.20)(typescript@5.3.3) + '@commitlint/read': 18.6.1 + '@commitlint/types': 18.6.1 execa: 5.1.1 lodash.isfunction: 3.0.9 resolve-from: 5.0.0 @@ -778,26 +778,27 @@ packages: - typescript dev: true - /@commitlint/config-conventional@18.6.0: - resolution: {integrity: sha512-CDCOf2eJz9D/TL44IBks0stM9TmdLCNE2B48owIU3YCadwzts/bobXPScagIgPQF6hhKYMEdj5zpUDlmbwuqwQ==} + /@commitlint/config-conventional@18.6.2: + resolution: {integrity: sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==} engines: {node: '>=v18'} dependencies: + '@commitlint/types': 18.6.1 conventional-changelog-conventionalcommits: 7.0.2 dev: true - /@commitlint/config-validator@18.6.0: - resolution: {integrity: sha512-Ptfa865arNozlkjxrYG3qt6wT9AlhNUHeuDyKEZiTL/l0ftncFhK/KN0t/EAMV2tec+0Mwxo0FmhbESj/bI+1g==} + /@commitlint/config-validator@18.6.1: + resolution: {integrity: sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.0 + '@commitlint/types': 18.6.1 ajv: 8.12.0 dev: true - /@commitlint/ensure@18.6.0: - resolution: {integrity: sha512-xY07NmOBJ7JuhX3tic021PaeLepZARIQyqpAQoNQZoml1keBFfB6MbA7XlWZv0ebbarUFE4yhKxOPw+WFv7/qw==} + /@commitlint/ensure@18.6.1: + resolution: {integrity: sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.0 + '@commitlint/types': 18.6.1 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -805,48 +806,48 @@ packages: lodash.upperfirst: 4.3.1 dev: true - /@commitlint/execute-rule@18.4.4: - resolution: {integrity: sha512-a37Nd3bDQydtg9PCLLWM9ZC+GO7X5i4zJvrggJv5jBhaHsXeQ9ZWdO6ODYR+f0LxBXXNYK3geYXJrCWUCP8JEg==} + /@commitlint/execute-rule@18.6.1: + resolution: {integrity: sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==} engines: {node: '>=v18'} dev: true - /@commitlint/format@18.6.0: - resolution: {integrity: sha512-8UNWfs2slPPSQiiVpLGJTnPHv7Jkd5KYxfbNXbmLL583bjom4RrylvyrCVnmZReA8nNad7pPXq6mDH4FNVj6xg==} + /@commitlint/format@18.6.1: + resolution: {integrity: sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.0 + '@commitlint/types': 18.6.1 chalk: 4.1.2 dev: true - /@commitlint/is-ignored@18.6.0: - resolution: {integrity: sha512-Xjx/ZyyJ4FdLuz0FcOvqiqSFgiO2yYj3QN9XlvyrxqbXTxPVC7QFEXJYBVPulUSN/gR7WXH1Udw+HYYfD17xog==} + /@commitlint/is-ignored@18.6.1: + resolution: {integrity: sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.0 - semver: 7.5.4 + '@commitlint/types': 18.6.1 + semver: 7.6.0 dev: true - /@commitlint/lint@18.6.0: - resolution: {integrity: sha512-ycbuDWfyykPmslgiHzhz8dL6F0BJYltXLVfc+M49z0c+FNITM0v+r0Vd2+Tdtq06VTc894p2+YSmZhulY8Jn3Q==} + /@commitlint/lint@18.6.1: + resolution: {integrity: sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/is-ignored': 18.6.0 - '@commitlint/parse': 18.6.0 - '@commitlint/rules': 18.6.0 - '@commitlint/types': 18.6.0 + '@commitlint/is-ignored': 18.6.1 + '@commitlint/parse': 18.6.1 + '@commitlint/rules': 18.6.1 + '@commitlint/types': 18.6.1 dev: true - /@commitlint/load@18.6.0(@types/node@20.11.7)(typescript@5.3.3): - resolution: {integrity: sha512-RRssj7TmzT0bowoEKlgwg8uQ7ORXWkw7lYLsZZBMi9aInsJuGNLNWcMxJxRZbwxG3jkCidGUg85WmqJvRjsaDA==} + /@commitlint/load@18.6.1(@types/node@20.11.20)(typescript@5.3.3): + resolution: {integrity: sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==} engines: {node: '>=v18'} dependencies: - '@commitlint/config-validator': 18.6.0 - '@commitlint/execute-rule': 18.4.4 - '@commitlint/resolve-extends': 18.6.0 - '@commitlint/types': 18.6.0 + '@commitlint/config-validator': 18.6.1 + '@commitlint/execute-rule': 18.6.1 + '@commitlint/resolve-extends': 18.6.1 + '@commitlint/types': 18.6.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.3.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.7)(cosmiconfig@8.3.6)(typescript@5.3.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.20)(cosmiconfig@8.3.6)(typescript@5.3.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -856,74 +857,74 @@ packages: - typescript dev: true - /@commitlint/message@18.4.4: - resolution: {integrity: sha512-lHF95mMDYgAI1LBXveJUyg4eLaMXyOqJccCK3v55ZOEUsMPrDi8upqDjd/NmzWmESYihaOMBTAnxm+6oD1WoDQ==} + /@commitlint/message@18.6.1: + resolution: {integrity: sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==} engines: {node: '>=v18'} dev: true - /@commitlint/parse@18.6.0: - resolution: {integrity: sha512-Y/G++GJpATFw54O0jikc/h2ibyGHgghtPnwsOk3O/aU092ydJ5XEHYcd7xGNQYuLweLzQis2uEwRNk9AVIPbQQ==} + /@commitlint/parse@18.6.1: + resolution: {integrity: sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/types': 18.6.0 + '@commitlint/types': 18.6.1 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 dev: true - /@commitlint/read@18.6.0: - resolution: {integrity: sha512-w39ji8VfWhPKRquPhRHB3Yd8XIHwaNHgOh28YI1QEmZ59qVpuVUQo6h/NsVb+uoC6LbXZiofTZv2iFR084jKEA==} + /@commitlint/read@18.6.1: + resolution: {integrity: sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==} engines: {node: '>=v18'} dependencies: - '@commitlint/top-level': 18.4.4 - '@commitlint/types': 18.6.0 + '@commitlint/top-level': 18.6.1 + '@commitlint/types': 18.6.1 git-raw-commits: 2.0.11 minimist: 1.2.8 dev: true - /@commitlint/resolve-extends@18.6.0: - resolution: {integrity: sha512-k2Xp+Fxeggki2i90vGrbiLDMefPius3zGSTFFlRAPKce/SWLbZtI+uqE9Mne23mHO5lmcSV8z5m6ziiJwGpOcg==} + /@commitlint/resolve-extends@18.6.1: + resolution: {integrity: sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==} engines: {node: '>=v18'} dependencies: - '@commitlint/config-validator': 18.6.0 - '@commitlint/types': 18.6.0 + '@commitlint/config-validator': 18.6.1 + '@commitlint/types': 18.6.1 import-fresh: 3.3.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 resolve-global: 1.0.0 dev: true - /@commitlint/rules@18.6.0: - resolution: {integrity: sha512-pTalvCEvuCWrBWZA/YqO/3B3nZnY3Ncc+TmQsRajBdC1tkQIm5Iovdo4Ec7f2Dw1tVvpYMUUNAgcWqsY0WckWg==} + /@commitlint/rules@18.6.1: + resolution: {integrity: sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==} engines: {node: '>=v18'} dependencies: - '@commitlint/ensure': 18.6.0 - '@commitlint/message': 18.4.4 - '@commitlint/to-lines': 18.4.4 - '@commitlint/types': 18.6.0 + '@commitlint/ensure': 18.6.1 + '@commitlint/message': 18.6.1 + '@commitlint/to-lines': 18.6.1 + '@commitlint/types': 18.6.1 execa: 5.1.1 dev: true - /@commitlint/to-lines@18.4.4: - resolution: {integrity: sha512-mwe2Roa59NCz/krniAdCygFabg7+fQCkIhXqBHw00XQ8Y7lw4poZLLxeGI3p3bLpcEOXdqIDrEGLwHmG5lBdwQ==} + /@commitlint/to-lines@18.6.1: + resolution: {integrity: sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==} engines: {node: '>=v18'} dev: true - /@commitlint/top-level@18.4.4: - resolution: {integrity: sha512-PBwW1drgeavl9CadB7IPRUk6rkUP/O8jEkxjlC+ofuh3pw0bzJdAT+Kw7M1Yc9KtTb9xTaqUB8uvRtaybHa/tQ==} + /@commitlint/top-level@18.6.1: + resolution: {integrity: sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==} engines: {node: '>=v18'} dependencies: find-up: 5.0.0 dev: true - /@commitlint/types@18.6.0: - resolution: {integrity: sha512-oavoKLML/eJa2rJeyYSbyGAYzTxQ6voG5oeX3OrxpfrkRWhJfm4ACnhoRf5tgiybx2MZ+EVFqC1Lw3W8/uwpZA==} + /@commitlint/types@18.6.1: + resolution: {integrity: sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==} engines: {node: '>=v18'} dependencies: chalk: 4.1.2 dev: true - /@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==} + /@csstools/css-parser-algorithms@2.6.0(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-YfEHq0eRH98ffb5/EsrrDspVWAuph6gDggAE74ZtjecsmyyWpW768hOyiONa8zwWGbIWYfa2Xp4tRTrpQQ00CQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: '@csstools/css-tokenizer': ^2.2.3 @@ -936,19 +937,19 @@ packages: engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/media-query-list-parser@2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==} + /@csstools/media-query-list-parser@2.1.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3): + resolution: {integrity: sha512-DiD3vG5ciNzeuTEoh74S+JMjQDs50R3zlxHnBnfd04YYfA/kh2KiBCGhzqLxlJcNq+7yNQ3stuZZYLX6wK/U2g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.5.0 + '@csstools/css-parser-algorithms': ^2.6.0 '@csstools/css-tokenizer': ^2.2.3 dependencies: - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) '@csstools/css-tokenizer': 2.2.3 dev: true - /@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.15): - resolution: {integrity: sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==} + /@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.15): + resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 @@ -1184,13 +1185,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1207,7 +1208,7 @@ packages: debug: 4.3.4 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1216,13 +1217,13 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@faker-js/faker@8.4.0: - resolution: {integrity: sha512-htW87352wzUCdX1jyUQocUcmAaFqcR/w082EC8iP/gtkF0K+aKcBp0hR5Arb7dzR8tQ1TrhE9DNa5EbJELm84w==} + /@faker-js/faker@8.4.1: + resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} dev: true @@ -1232,8 +1233,8 @@ packages: '@floating-ui/utils': 0.2.1 dev: false - /@floating-ui/dom@1.6.0: - resolution: {integrity: sha512-SZ0BEXzsaaS6THZfZJUcAobbZTD+MvfGM42bxgeg0Tnkp4/an/avqwAXiVLsFtIBZtfsx3Ymvwx0+KnnhdA/9g==} + /@floating-ui/dom@1.6.3: + resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} dependencies: '@floating-ui/core': 1.6.0 '@floating-ui/utils': 0.2.1 @@ -1297,7 +1298,7 @@ packages: vue: 3.4.14(typescript@5.3.3) dev: true - /@intlify/bundle-utils@7.5.0(vue-i18n@9.9.0): + /@intlify/bundle-utils@7.5.0(vue-i18n@9.9.1): resolution: {integrity: sha512-6DymqusddBQ8kVtVBsVFFF7arNfIhuLacOmmsqayT2vl427j9m0VX12mMC+cgoVIodSpRfzYPaPTdPuJq7mK0Q==} engines: {node: '>= 14.16'} peerDependencies: @@ -1309,38 +1310,38 @@ packages: vue-i18n: optional: true dependencies: - '@intlify/message-compiler': 9.9.0 - '@intlify/shared': 9.9.0 + '@intlify/message-compiler': 9.9.1 + '@intlify/shared': 9.9.1 acorn: 8.11.3 escodegen: 2.1.0 estree-walker: 2.0.2 jsonc-eslint-parser: 2.4.0 - magic-string: 0.30.5 - mlly: 1.5.0 + magic-string: 0.30.7 + mlly: 1.6.1 source-map-js: 1.0.2 - vue-i18n: 9.9.0(vue@3.4.14) + vue-i18n: 9.9.1(vue@3.4.14) yaml-eslint-parser: 1.2.2 dev: true - /@intlify/core-base@9.9.0: - resolution: {integrity: sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA==} + /@intlify/core-base@9.9.1: + resolution: {integrity: sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==} engines: {node: '>= 16'} dependencies: - '@intlify/message-compiler': 9.9.0 - '@intlify/shared': 9.9.0 + '@intlify/message-compiler': 9.9.1 + '@intlify/shared': 9.9.1 - /@intlify/message-compiler@9.9.0: - resolution: {integrity: sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA==} + /@intlify/message-compiler@9.9.1: + resolution: {integrity: sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==} engines: {node: '>= 16'} dependencies: - '@intlify/shared': 9.9.0 + '@intlify/shared': 9.9.1 source-map-js: 1.0.2 - /@intlify/shared@9.9.0: - resolution: {integrity: sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g==} + /@intlify/shared@9.9.1: + resolution: {integrity: sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA==} engines: {node: '>= 16'} - /@intlify/unplugin-vue-i18n@2.0.0(rollup@2.79.1)(vue-i18n@9.9.0): + /@intlify/unplugin-vue-i18n@2.0.0(rollup@2.79.1)(vue-i18n@9.9.1): resolution: {integrity: sha512-1oKvm92L9l2od2H9wKx2ZvR4tzn7gUtd7bPLI7AWUmm7U9H1iEypndt5d985ypxGsEs0gToDaKTrytbBIJwwSg==} engines: {node: '>= 14.16'} peerDependencies: @@ -1355,10 +1356,10 @@ packages: vue-i18n-bridge: optional: true dependencies: - '@intlify/bundle-utils': 7.5.0(vue-i18n@9.9.0) - '@intlify/shared': 9.9.0 + '@intlify/bundle-utils': 7.5.0(vue-i18n@9.9.1) + '@intlify/shared': 9.9.1 '@rollup/pluginutils': 5.1.0(rollup@2.79.1) - '@vue/compiler-sfc': 3.4.15 + '@vue/compiler-sfc': 3.4.19 debug: 4.3.4 fast-glob: 3.3.2 js-yaml: 4.1.0 @@ -1366,8 +1367,8 @@ packages: pathe: 1.1.2 picocolors: 1.0.0 source-map-js: 1.0.2 - unplugin: 1.6.0 - vue-i18n: 9.9.0(vue@3.4.14) + unplugin: 1.7.1 + vue-i18n: 9.9.1(vue@3.4.14) transitivePeerDependencies: - rollup - supports-color @@ -1406,7 +1407,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -1427,7 +1428,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -1464,7 +1465,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 jest-mock: 27.5.1 dev: false @@ -1474,7 +1475,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 20.11.7 + '@types/node': 20.11.20 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -1503,7 +1504,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -1513,7 +1514,7 @@ packages: istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.1.7 jest-haste-map: 27.5.1 jest-resolve: 27.5.1 jest-util: 27.5.1 @@ -1587,21 +1588,21 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.7 + '@types/node': 20.11.20 '@types/yargs': 16.0.9 chalk: 4.1.2 dev: false - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.4: + resolution: {integrity: sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.23 - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} /@jridgewell/set-array@1.1.2: @@ -1611,27 +1612,27 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.23: + resolution: {integrity: sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - /@logicflow/core@1.2.18: - resolution: {integrity: sha512-TjN+gPfoSBmdgTE7FL5k5jgzkNTM0EyEuZOuLfSrBeglnT+Wm2g1GOdxcXtV7zzvtAnLV5wXf5k505i9XhyxyA==} + /@logicflow/core@1.2.22: + resolution: {integrity: sha512-AzcMA7iikzgZ5uTJrszGYWN8tXu9Bm3dVAeU2XcfYKuYb2B5f02YxP5EPBifhcuZ7aZavolfuCbQgXK9rK+IzA==} dependencies: '@types/mousetrap': 1.6.15 mousetrap: 1.6.5 - preact: 10.19.3 + preact: 10.19.6 dev: false - /@logicflow/extension@1.2.19: - resolution: {integrity: sha512-7cP5RRCyCoiy7cJThugS/z6vQzezcZdEClmb0FNjlAt9v4xyQZtuanRakGfJ/oojbO7tl5voRTzuYhmVGSmBfg==} + /@logicflow/extension@1.2.22: + resolution: {integrity: sha512-/FUn6Myz6YUGK1mshuvTT+yQa/CKphQIyrAwI+fjYtraWLwZkbQxBuCs8FqTnK2WKgLQW6lpujHutwOBsvgICg==} dependencies: - '@logicflow/core': 1.2.18 + '@logicflow/core': 1.2.22 jest: 27.5.1 lodash-es: 4.17.21 - preact: 10.19.3 + preact: 10.19.6 transitivePeerDependencies: - bufferutil - canvas @@ -1657,28 +1658,28 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.0 + fastq: 1.17.1 - /@nuxt/kit@3.9.3(rollup@2.79.1): - resolution: {integrity: sha512-bHGXpTB6E+YJCC1L9tTwrP7txgLZzyuFes/tgy1ZM4dlfrCsGqLK/K4mddROMdC3D81scnH84u7yQsN0JRgoTg==} + /@nuxt/kit@3.10.3(rollup@2.79.1): + resolution: {integrity: sha512-PUjYB9Mvx0qD9H1QZBwwtY4fLlCLET+Mm9BVqUOtXCaGoXd6u6BE4e/dGFPk2UEKkIcDGrUMSbqkHYvsEuK9NQ==} engines: {node: ^14.18.0 || >=16.10.0} requiresBuild: true dependencies: - '@nuxt/schema': 3.9.3(rollup@2.79.1) - c12: 1.6.1 + '@nuxt/schema': 3.10.3(rollup@2.79.1) + c12: 1.9.0 consola: 3.2.3 defu: 6.1.4 - globby: 14.0.0 + globby: 14.0.1 hash-sum: 2.0.0 - ignore: 5.3.0 + ignore: 5.3.1 jiti: 1.21.0 knitwork: 1.0.0 - mlly: 1.5.0 + mlly: 1.6.1 pathe: 1.1.2 pkg-types: 1.0.3 - scule: 1.2.0 - semver: 7.5.4 - ufo: 1.3.2 + scule: 1.3.0 + semver: 7.6.0 + ufo: 1.4.0 unctx: 2.3.1 unimport: 3.7.1(rollup@2.79.1) untyped: 1.4.2 @@ -1688,8 +1689,8 @@ packages: dev: false optional: true - /@nuxt/schema@3.9.3(rollup@2.79.1): - resolution: {integrity: sha512-pchkGBYdEJ9TAOoC5DKnLuAaFPjzgn2k0OUTr31QwbtHdTR3Q2Ua/oKsS1g9CPU7KRzSE5Vkf7ECE8zVydqF5A==} + /@nuxt/schema@3.10.3(rollup@2.79.1): + resolution: {integrity: sha512-a4cYbeskEVBPazgAhvUGkL/j7ho/iPWMK3vCEm6dRMjSqHVEITRosrj0aMfLbRrDpTrMjlRs0ZitxiaUfE/p5Q==} engines: {node: ^14.18.0 || >=16.10.0} requiresBuild: true dependencies: @@ -1699,9 +1700,9 @@ packages: hookable: 5.5.3 pathe: 1.1.2 pkg-types: 1.0.3 - scule: 1.2.0 + scule: 1.3.0 std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.4.0 unimport: 3.7.1(rollup@2.79.1) untyped: 1.4.2 transitivePeerDependencies: @@ -1732,24 +1733,24 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false - /@pureadmin/descriptions@1.2.0(element-plus@2.5.3)(typescript@5.3.3): + /@pureadmin/descriptions@1.2.0(element-plus@2.5.6)(typescript@5.3.3): resolution: {integrity: sha512-k2A3SGGKf0eKrSQB3hXzgGlAz7DKSM31WN/QGBn37UCIHfQlIVrvSPEAF2omHlukQT2Artap6veCqBcJ9dGAKQ==} peerDependencies: element-plus: ^2.0.0 dependencies: '@element-plus/icons-vue': 2.3.1(vue@3.4.14) - element-plus: 2.5.3(vue@3.4.14) + element-plus: 2.5.6(vue@3.4.14) vue: 3.4.14(typescript@5.3.3) transitivePeerDependencies: - typescript dev: false - /@pureadmin/table@3.0.2(element-plus@2.5.3)(typescript@5.3.3): + /@pureadmin/table@3.0.2(element-plus@2.5.6)(typescript@5.3.3): resolution: {integrity: sha512-VrtpuzKm4t2KS81MWBy2G1xayjvYIM5s3EUs91mZxmA+qLb8FdF2k4QdCufVA8ZZG85AeM2HA7Z0SvqMAwy0dA==} peerDependencies: element-plus: ^2.0.0 dependencies: - element-plus: 2.5.3(vue@3.4.14) + element-plus: 2.5.6(vue@3.4.14) vue: 3.4.14(typescript@5.3.3) transitivePeerDependencies: - typescript @@ -1763,7 +1764,7 @@ packages: string-hash: 1.1.3 dev: true - /@pureadmin/utils@2.4.4(echarts@5.4.3)(vue@3.4.14): + /@pureadmin/utils@2.4.4(echarts@5.5.0)(vue@3.4.14): resolution: {integrity: sha512-dH1ml+/U50Te7KlZX8pkA08/o+XKYx8aFyds9aTBC34JDyn0GQSyhe0zFIfGwnFztWMToWn/cyitpXmDEcq3NA==} peerDependencies: echarts: '*' @@ -1774,7 +1775,7 @@ packages: vue: optional: true dependencies: - echarts: 5.4.3 + echarts: 5.5.0 vue: 3.4.14(typescript@5.3.3) dev: false @@ -1800,48 +1801,48 @@ packages: picomatch: 2.3.1 rollup: 2.79.1 - /@rollup/rollup-android-arm-eabi@4.9.6: - resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + /@rollup/rollup-android-arm-eabi@4.12.0: + resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.6: - resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + /@rollup/rollup-android-arm64@4.12.0: + resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.6: - resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + /@rollup/rollup-darwin-arm64@4.12.0: + resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.6: - resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + /@rollup/rollup-darwin-x64@4.12.0: + resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.6: - resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.12.0: + resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.6: - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + /@rollup/rollup-linux-arm64-gnu@4.12.0: + resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} cpu: [arm64] os: [linux] libc: [glibc] @@ -1849,8 +1850,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.6: - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + /@rollup/rollup-linux-arm64-musl@4.12.0: + resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} cpu: [arm64] os: [linux] libc: [musl] @@ -1858,8 +1859,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.6: - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + /@rollup/rollup-linux-riscv64-gnu@4.12.0: + resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} cpu: [riscv64] os: [linux] libc: [glibc] @@ -1867,8 +1868,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.6: - resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + /@rollup/rollup-linux-x64-gnu@4.12.0: + resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} cpu: [x64] os: [linux] libc: [glibc] @@ -1876,8 +1877,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.6: - resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + /@rollup/rollup-linux-x64-musl@4.12.0: + resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} cpu: [x64] os: [linux] libc: [musl] @@ -1885,32 +1886,32 @@ packages: dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.6: - resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + /@rollup/rollup-win32-arm64-msvc@4.12.0: + resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.6: - resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + /@rollup/rollup-win32-ia32-msvc@4.12.0: + resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.6: - resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + /@rollup/rollup-win32-x64-msvc@4.12.0: + resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@sindresorhus/merge-streams@1.0.0: - resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} requiresBuild: true dev: false @@ -1985,7 +1986,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.20 dev: false /@types/gradient-string@1.1.5: @@ -2040,8 +2041,8 @@ packages: resolution: {integrity: sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==} dev: false - /@types/node@20.11.7: - resolution: {integrity: sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==} + /@types/node@20.11.20: + resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==} dependencies: undici-types: 5.26.5 @@ -2060,19 +2061,19 @@ packages: /@types/qrcode@1.5.5: resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.20 dev: true /@types/qs@6.9.11: resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} dev: true - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true - /@types/sortablejs@1.15.7: - resolution: {integrity: sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==} + /@types/sortablejs@1.15.8: + resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} dev: true /@types/stack-utils@2.0.3: @@ -2105,91 +2106,91 @@ packages: '@types/yargs-parser': 21.0.3 dev: false - /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==} + /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/type-utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/parser': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/type-utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==} + /@typescript-eslint/parser@7.0.2(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.19.1: - resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} + /@typescript-eslint/scope-manager@7.0.2: + resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/visitor-keys': 7.0.2 dev: true - /@typescript-eslint/type-utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==} + /@typescript-eslint/type-utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + '@typescript-eslint/utils': 7.0.2(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + eslint: 8.57.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.19.1: - resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==} + /@typescript-eslint/types@7.0.2: + resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.19.1(typescript@5.3.3): - resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==} + /@typescript-eslint/typescript-estree@7.0.2(typescript@5.3.3): + resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2197,43 +2198,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/visitor-keys': 6.19.1 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/visitor-keys': 7.0.2 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.19.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==} + /@typescript-eslint/utils@7.0.2(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.19.1 - '@typescript-eslint/types': 6.19.1 - '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.3.3) - eslint: 8.56.0 - semver: 7.5.4 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.0.2 + '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3) + eslint: 8.57.0 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.19.1: - resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} + /@typescript-eslint/visitor-keys@7.0.2: + resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.19.1 + '@typescript-eslint/types': 7.0.2 eslint-visitor-keys: 3.4.3 dev: true @@ -2258,7 +2259,7 @@ packages: mime-match: 1.0.2 namespace-emitter: 2.0.1 nanoid: 3.3.7 - preact: 10.19.3 + preact: 10.19.6 dev: false /@uppy/store-default@2.1.1: @@ -2282,7 +2283,7 @@ packages: nanoid: 3.3.7 dev: false - /@vitejs/plugin-vue-jsx@3.1.0(vite@5.0.12)(vue@3.4.14): + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.14): resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2292,20 +2293,20 @@ packages: '@babel/core': 7.23.9 '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) '@vue/babel-plugin-jsx': 1.2.1(@babel/core@7.23.9) - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0) + vite: 5.1.4(@types/node@20.11.20)(sass@1.71.1) vue: 3.4.14(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue@5.0.3(vite@5.0.12)(vue@3.4.14): - resolution: {integrity: sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==} + /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.14): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0) + vite: 5.1.4(@types/node@20.11.20)(sass@1.71.1) vue: 3.4.14(typescript@5.3.3) dev: true @@ -2366,7 +2367,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/parser': 7.23.9 - '@vue/compiler-sfc': 3.4.15 + '@vue/compiler-sfc': 3.4.19 dev: true /@vue/compiler-core@3.4.14: @@ -2378,11 +2379,11 @@ packages: estree-walker: 2.0.2 source-map-js: 1.0.2 - /@vue/compiler-core@3.4.15: - resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} + /@vue/compiler-core@3.4.19: + resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} dependencies: '@babel/parser': 7.23.9 - '@vue/shared': 3.4.15 + '@vue/shared': 3.4.19 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 @@ -2394,11 +2395,11 @@ packages: '@vue/compiler-core': 3.4.14 '@vue/shared': 3.4.14 - /@vue/compiler-dom@3.4.15: - resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} + /@vue/compiler-dom@3.4.19: + resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} dependencies: - '@vue/compiler-core': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/compiler-core': 3.4.19 + '@vue/shared': 3.4.19 dev: true /@vue/compiler-sfc@3.4.14: @@ -2410,21 +2411,21 @@ packages: '@vue/compiler-ssr': 3.4.14 '@vue/shared': 3.4.14 estree-walker: 2.0.2 - magic-string: 0.30.5 - postcss: 8.4.33 + magic-string: 0.30.7 + postcss: 8.4.35 source-map-js: 1.0.2 - /@vue/compiler-sfc@3.4.15: - resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==} + /@vue/compiler-sfc@3.4.19: + resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} dependencies: '@babel/parser': 7.23.9 - '@vue/compiler-core': 3.4.15 - '@vue/compiler-dom': 3.4.15 - '@vue/compiler-ssr': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/compiler-core': 3.4.19 + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 estree-walker: 2.0.2 - magic-string: 0.30.5 - postcss: 8.4.33 + magic-string: 0.30.7 + postcss: 8.4.35 source-map-js: 1.0.2 dev: true @@ -2434,15 +2435,15 @@ packages: '@vue/compiler-dom': 3.4.14 '@vue/shared': 3.4.14 - /@vue/compiler-ssr@3.4.15: - resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==} + /@vue/compiler-ssr@3.4.19: + resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} dependencies: - '@vue/compiler-dom': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 dev: true - /@vue/devtools-api@6.5.1: - resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} + /@vue/devtools-api@6.6.1: + resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} /@vue/language-core@1.8.27(typescript@5.3.3): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} @@ -2454,8 +2455,8 @@ packages: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 computeds: 0.0.1 minimatch: 9.0.3 muggle-string: 0.3.1 @@ -2494,17 +2495,17 @@ packages: /@vue/shared@3.4.14: resolution: {integrity: sha512-nmi3BtLpvqXAWoRZ6HQ+pFJOHBU4UnH3vD3opgmwXac7vhaHKA9nj1VeGjMggdB9eLtW83eHyPCmOU1qzdsC7Q==} - /@vue/shared@3.4.15: - resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} + /@vue/shared@3.4.19: + resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} dev: true - /@vueuse/core@10.7.2(vue@3.4.14): - resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==} + /@vueuse/core@10.8.0(vue@3.4.14): + resolution: {integrity: sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==} dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.7.2 - '@vueuse/shared': 10.7.2(vue@3.4.14) - vue-demi: 0.14.6(vue@3.4.14) + '@vueuse/metadata': 10.8.0 + '@vueuse/shared': 10.8.0(vue@3.4.14) + vue-demi: 0.14.7(vue@3.4.14) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -2525,7 +2526,7 @@ packages: '@vueuse/metadata': 8.9.4 '@vueuse/shared': 8.9.4(vue@3.4.14) vue: 3.4.14(typescript@5.3.3) - vue-demi: 0.14.6(vue@3.4.14) + vue-demi: 0.14.7(vue@3.4.14) dev: false /@vueuse/core@9.13.0(vue@3.4.14): @@ -2534,14 +2535,14 @@ packages: '@types/web-bluetooth': 0.0.16 '@vueuse/metadata': 9.13.0 '@vueuse/shared': 9.13.0(vue@3.4.14) - vue-demi: 0.14.6(vue@3.4.14) + vue-demi: 0.14.7(vue@3.4.14) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/metadata@10.7.2: - resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==} + /@vueuse/metadata@10.8.0: + resolution: {integrity: sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==} dev: false /@vueuse/metadata@8.9.4: @@ -2552,30 +2553,30 @@ packages: resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} dev: false - /@vueuse/motion@2.0.0(rollup@2.79.1)(vue@3.4.14): - resolution: {integrity: sha512-V3TAlbt1OPmb9DZFoFCz9WC3Oue54t9VHlavSWm+VU1JNimYcd+pc6aGR/hgaHUAU9tOPRHoDTleSrv2zrdIsw==} + /@vueuse/motion@2.1.0(rollup@2.79.1)(vue@3.4.14): + resolution: {integrity: sha512-n8RtzTQa22kt2OPOQxjHteD+3rnjoAqCd6xiYdQMgFW4HcYMSdemiKcUwRx+hVUFe0zOyLDaTrySYVcHb5HgHA==} peerDependencies: vue: '>=3.0.0' dependencies: - '@vueuse/core': 10.7.2(vue@3.4.14) - '@vueuse/shared': 10.7.2(vue@3.4.14) + '@vueuse/core': 10.8.0(vue@3.4.14) + '@vueuse/shared': 10.8.0(vue@3.4.14) csstype: 3.1.3 framesync: 6.1.2 popmotion: 11.0.5 style-value-types: 5.1.2 vue: 3.4.14(typescript@5.3.3) optionalDependencies: - '@nuxt/kit': 3.9.3(rollup@2.79.1) + '@nuxt/kit': 3.10.3(rollup@2.79.1) transitivePeerDependencies: - '@vue/composition-api' - rollup - supports-color dev: false - /@vueuse/shared@10.7.2(vue@3.4.14): - resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==} + /@vueuse/shared@10.8.0(vue@3.4.14): + resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==} dependencies: - vue-demi: 0.14.6(vue@3.4.14) + vue-demi: 0.14.7(vue@3.4.14) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -2593,19 +2594,19 @@ packages: optional: true dependencies: vue: 3.4.14(typescript@5.3.3) - vue-demi: 0.14.6(vue@3.4.14) + vue-demi: 0.14.7(vue@3.4.14) dev: false /@vueuse/shared@9.13.0(vue@3.4.14): resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} dependencies: - vue-demi: 0.14.6(vue@3.4.14) + vue-demi: 0.14.7(vue@3.4.14) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.0): + /@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2): resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==} peerDependencies: '@wangeditor/core': 1.x @@ -2615,16 +2616,16 @@ packages: slate: ^0.72.0 snabbdom: ^3.1.0 dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.0) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(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.7 slate: 0.72.8 - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false - /@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.0): + /@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2): resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==} peerDependencies: '@wangeditor/core': 1.x @@ -2632,14 +2633,14 @@ packages: slate: ^0.72.0 snabbdom: ^3.1.0 dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.0) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.2) dom7: 3.0.0 prismjs: 1.29.0 slate: 0.72.8 - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false - /@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.0): + /@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.2): resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==} peerDependencies: '@uppy/core': ^2.1.1 @@ -2676,7 +2677,7 @@ packages: scroll-into-view-if-needed: 2.2.31 slate: 0.72.8 slate-history: 0.66.0(slate@0.72.8) - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false /@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.4.14): @@ -2694,13 +2695,13 @@ packages: 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)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.0) - '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.0) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.0) - '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.0) - '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.0) - '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.0) - '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.0) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(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)(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.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(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)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(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)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) dom7: 3.0.0 is-hotkey: 0.2.0 lodash.camelcase: 4.3.0 @@ -2712,10 +2713,10 @@ packages: lodash.toarray: 4.4.0 nanoid: 3.3.7 slate: 0.72.8 - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false - /@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.0): + /@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2): resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==} peerDependencies: '@wangeditor/core': 1.x @@ -2723,13 +2724,13 @@ packages: slate: ^0.72.0 snabbdom: ^3.1.0 dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.0) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.2) dom7: 3.0.0 slate: 0.72.8 - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false - /@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.0): + /@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2): resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==} peerDependencies: '@wangeditor/core': 1.x @@ -2740,16 +2741,16 @@ packages: slate: ^0.72.0 snabbdom: ^3.1.0 dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.0) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(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.7 slate: 0.72.8 - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false - /@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.0): + /@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2): resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==} peerDependencies: '@uppy/core': ^2.0.3 @@ -2763,15 +2764,15 @@ packages: 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)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.0) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.0) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.2) dom7: 3.0.0 lodash.foreach: 4.5.0 slate: 0.72.8 - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false - /@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.0): + /@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2): resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==} peerDependencies: '@uppy/core': ^2.1.4 @@ -2784,11 +2785,11 @@ packages: 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)(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.7)(slate@0.72.8)(snabbdom@3.6.0) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.7)(slate@0.72.8)(snabbdom@3.6.2) dom7: 3.0.0 nanoid: 3.3.7 slate: 0.72.8 - snabbdom: 3.6.0 + snabbdom: 3.6.2 dev: false /@zougt/some-loader-utils@1.4.3: @@ -2798,10 +2799,10 @@ packages: dependencies: cac: 6.7.14 color: 4.2.3 - cssnano: 5.1.15(postcss@8.4.33) - cssnano-preset-lite: 2.1.3(postcss@8.4.33) + cssnano: 5.1.15(postcss@8.4.35) + cssnano-preset-lite: 2.1.3(postcss@8.4.35) fs-extra: 10.1.0 - postcss: 8.4.33 + postcss: 8.4.35 prettier: 2.8.8 uuid: 8.3.2 dev: true @@ -2995,19 +2996,19 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false - /autoprefixer@10.4.17(postcss@8.4.33): + /autoprefixer@10.4.17(postcss@8.4.35): resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.22.3 - caniuse-lite: 1.0.30001580 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001589 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true @@ -3154,15 +3155,15 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: false - /browserslist@4.22.3: - resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001580 - electron-to-chromium: 1.4.648 + caniuse-lite: 1.0.30001589 + electron-to-chromium: 1.4.681 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.3) + update-browserslist-db: 1.0.13(browserslist@4.23.0) /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -3181,16 +3182,17 @@ packages: import-from-string: 0.0.4 dev: true - /c12@1.6.1: - resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==} + /c12@1.9.0: + resolution: {integrity: sha512-7KTCZXdIbOA2hLRQ+1KzJ15Qp9Wn58one74dkihMVp2H6EzKTa3OYBy0BSfS1CCcmxYyqeX8L02m40zjQ+dstg==} requiresBuild: true dependencies: - chokidar: 3.5.3 + chokidar: 3.6.0 + confbox: 0.1.3 defu: 6.1.4 - dotenv: 16.4.1 + dotenv: 16.4.5 giget: 1.2.1 jiti: 1.21.0 - mlly: 1.5.0 + mlly: 1.6.1 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 @@ -3204,12 +3206,15 @@ packages: engines: {node: '>=8'} dev: true - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.2.0 + get-intrinsic: 1.2.4 + set-function-length: 1.2.1 dev: false /callsites@3.1.0: @@ -3246,14 +3251,14 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.22.3 - caniuse-lite: 1.0.30001580 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001589 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001580: - resolution: {integrity: sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==} + /caniuse-lite@1.0.30001589: + resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==} /cfb@1.2.2: resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} @@ -3292,8 +3297,8 @@ packages: resolution: {integrity: sha512-BQDPpiv5Nn+018ekcJK2oSD9PAD+E1bvXB0wgabc//dFVS/KvRqCgg0QOEUt3vBkx9XzB5a9BmkJCEZDBxVjVw==} dev: false - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -3318,8 +3323,8 @@ packages: engines: {node: '>=8'} dev: false - /citty@0.1.5: - resolution: {integrity: sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==} + /citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} requiresBuild: true dependencies: consola: 3.2.3 @@ -3474,6 +3479,12 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /confbox@0.1.3: + resolution: {integrity: sha512-eH3ZxAihl1PhKfpr4VfEN6/vUd87fmgb6JkldHgg/YR6aEBhW63qUDgzP2Y6WM0UumdsYp5H3kibalXAdHfbgg==} + requiresBuild: true + dev: false + optional: true + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -3513,12 +3524,12 @@ packages: /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - /core-js@3.35.1: - resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} + /core-js@3.36.0: + resolution: {integrity: sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==} requiresBuild: true dev: false - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.7)(cosmiconfig@8.3.6)(typescript@5.3.3): + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.20)(cosmiconfig@8.3.6)(typescript@5.3.3): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -3526,7 +3537,7 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.20 cosmiconfig: 8.3.6(typescript@5.3.3) jiti: 1.21.0 typescript: 5.3.3 @@ -3582,22 +3593,22 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-declaration-sorter@6.4.1(postcss@8.4.33): + /css-declaration-sorter@6.4.1(postcss@8.4.35): resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /css-declaration-sorter@7.1.1(postcss@8.4.33): + /css-declaration-sorter@7.1.1(postcss@8.4.35): resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true /css-functions-list@3.2.1: @@ -3660,134 +3671,134 @@ packages: hasBin: true dev: true - /cssnano-preset-default@5.2.14(postcss@8.4.33): + /cssnano-preset-default@5.2.14(postcss@8.4.35): resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.33) - cssnano-utils: 3.1.0(postcss@8.4.33) - postcss: 8.4.33 - postcss-calc: 8.2.4(postcss@8.4.33) - postcss-colormin: 5.3.1(postcss@8.4.33) - postcss-convert-values: 5.1.3(postcss@8.4.33) - postcss-discard-comments: 5.1.2(postcss@8.4.33) - postcss-discard-duplicates: 5.1.0(postcss@8.4.33) - postcss-discard-empty: 5.1.1(postcss@8.4.33) - postcss-discard-overridden: 5.1.0(postcss@8.4.33) - postcss-merge-longhand: 5.1.7(postcss@8.4.33) - postcss-merge-rules: 5.1.4(postcss@8.4.33) - postcss-minify-font-values: 5.1.0(postcss@8.4.33) - postcss-minify-gradients: 5.1.1(postcss@8.4.33) - postcss-minify-params: 5.1.4(postcss@8.4.33) - postcss-minify-selectors: 5.2.1(postcss@8.4.33) - postcss-normalize-charset: 5.1.0(postcss@8.4.33) - postcss-normalize-display-values: 5.1.0(postcss@8.4.33) - postcss-normalize-positions: 5.1.1(postcss@8.4.33) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.33) - postcss-normalize-string: 5.1.0(postcss@8.4.33) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.33) - postcss-normalize-unicode: 5.1.1(postcss@8.4.33) - postcss-normalize-url: 5.1.0(postcss@8.4.33) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.33) - postcss-ordered-values: 5.1.3(postcss@8.4.33) - postcss-reduce-initial: 5.1.2(postcss@8.4.33) - postcss-reduce-transforms: 5.1.0(postcss@8.4.33) - postcss-svgo: 5.1.0(postcss@8.4.33) - postcss-unique-selectors: 5.1.1(postcss@8.4.33) + css-declaration-sorter: 6.4.1(postcss@8.4.35) + cssnano-utils: 3.1.0(postcss@8.4.35) + postcss: 8.4.35 + postcss-calc: 8.2.4(postcss@8.4.35) + postcss-colormin: 5.3.1(postcss@8.4.35) + postcss-convert-values: 5.1.3(postcss@8.4.35) + postcss-discard-comments: 5.1.2(postcss@8.4.35) + postcss-discard-duplicates: 5.1.0(postcss@8.4.35) + postcss-discard-empty: 5.1.1(postcss@8.4.35) + postcss-discard-overridden: 5.1.0(postcss@8.4.35) + postcss-merge-longhand: 5.1.7(postcss@8.4.35) + postcss-merge-rules: 5.1.4(postcss@8.4.35) + postcss-minify-font-values: 5.1.0(postcss@8.4.35) + postcss-minify-gradients: 5.1.1(postcss@8.4.35) + postcss-minify-params: 5.1.4(postcss@8.4.35) + postcss-minify-selectors: 5.2.1(postcss@8.4.35) + postcss-normalize-charset: 5.1.0(postcss@8.4.35) + postcss-normalize-display-values: 5.1.0(postcss@8.4.35) + postcss-normalize-positions: 5.1.1(postcss@8.4.35) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.35) + postcss-normalize-string: 5.1.0(postcss@8.4.35) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.35) + postcss-normalize-unicode: 5.1.1(postcss@8.4.35) + postcss-normalize-url: 5.1.0(postcss@8.4.35) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.35) + postcss-ordered-values: 5.1.3(postcss@8.4.35) + postcss-reduce-initial: 5.1.2(postcss@8.4.35) + postcss-reduce-transforms: 5.1.0(postcss@8.4.35) + postcss-svgo: 5.1.0(postcss@8.4.35) + postcss-unique-selectors: 5.1.1(postcss@8.4.35) dev: true - /cssnano-preset-default@6.0.3(postcss@8.4.33): - resolution: {integrity: sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==} + /cssnano-preset-default@6.0.5(postcss@8.4.35): + resolution: {integrity: sha512-M+qRDEr5QZrfNl0B2ySdbTLGyNb8kBcSjuwR7WBamYBOEREH9t2efnB/nblekqhdGLZdkf4oZNetykG2JWRdZQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - css-declaration-sorter: 7.1.1(postcss@8.4.33) - cssnano-utils: 4.0.1(postcss@8.4.33) - postcss: 8.4.33 - postcss-calc: 9.0.1(postcss@8.4.33) - postcss-colormin: 6.0.2(postcss@8.4.33) - postcss-convert-values: 6.0.2(postcss@8.4.33) - postcss-discard-comments: 6.0.1(postcss@8.4.33) - postcss-discard-duplicates: 6.0.1(postcss@8.4.33) - postcss-discard-empty: 6.0.1(postcss@8.4.33) - postcss-discard-overridden: 6.0.1(postcss@8.4.33) - postcss-merge-longhand: 6.0.2(postcss@8.4.33) - postcss-merge-rules: 6.0.3(postcss@8.4.33) - postcss-minify-font-values: 6.0.1(postcss@8.4.33) - postcss-minify-gradients: 6.0.1(postcss@8.4.33) - postcss-minify-params: 6.0.2(postcss@8.4.33) - postcss-minify-selectors: 6.0.2(postcss@8.4.33) - postcss-normalize-charset: 6.0.1(postcss@8.4.33) - postcss-normalize-display-values: 6.0.1(postcss@8.4.33) - postcss-normalize-positions: 6.0.1(postcss@8.4.33) - postcss-normalize-repeat-style: 6.0.1(postcss@8.4.33) - postcss-normalize-string: 6.0.1(postcss@8.4.33) - postcss-normalize-timing-functions: 6.0.1(postcss@8.4.33) - postcss-normalize-unicode: 6.0.2(postcss@8.4.33) - postcss-normalize-url: 6.0.1(postcss@8.4.33) - postcss-normalize-whitespace: 6.0.1(postcss@8.4.33) - postcss-ordered-values: 6.0.1(postcss@8.4.33) - postcss-reduce-initial: 6.0.2(postcss@8.4.33) - postcss-reduce-transforms: 6.0.1(postcss@8.4.33) - postcss-svgo: 6.0.2(postcss@8.4.33) - postcss-unique-selectors: 6.0.2(postcss@8.4.33) + css-declaration-sorter: 7.1.1(postcss@8.4.35) + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 + postcss-calc: 9.0.1(postcss@8.4.35) + postcss-colormin: 6.0.3(postcss@8.4.35) + postcss-convert-values: 6.0.4(postcss@8.4.35) + postcss-discard-comments: 6.0.1(postcss@8.4.35) + postcss-discard-duplicates: 6.0.2(postcss@8.4.35) + postcss-discard-empty: 6.0.2(postcss@8.4.35) + postcss-discard-overridden: 6.0.1(postcss@8.4.35) + postcss-merge-longhand: 6.0.3(postcss@8.4.35) + postcss-merge-rules: 6.0.4(postcss@8.4.35) + postcss-minify-font-values: 6.0.2(postcss@8.4.35) + postcss-minify-gradients: 6.0.2(postcss@8.4.35) + postcss-minify-params: 6.0.3(postcss@8.4.35) + postcss-minify-selectors: 6.0.2(postcss@8.4.35) + postcss-normalize-charset: 6.0.1(postcss@8.4.35) + postcss-normalize-display-values: 6.0.1(postcss@8.4.35) + postcss-normalize-positions: 6.0.1(postcss@8.4.35) + postcss-normalize-repeat-style: 6.0.1(postcss@8.4.35) + postcss-normalize-string: 6.0.1(postcss@8.4.35) + postcss-normalize-timing-functions: 6.0.1(postcss@8.4.35) + postcss-normalize-unicode: 6.0.3(postcss@8.4.35) + postcss-normalize-url: 6.0.1(postcss@8.4.35) + postcss-normalize-whitespace: 6.0.1(postcss@8.4.35) + postcss-ordered-values: 6.0.1(postcss@8.4.35) + postcss-reduce-initial: 6.0.3(postcss@8.4.35) + postcss-reduce-transforms: 6.0.1(postcss@8.4.35) + postcss-svgo: 6.0.2(postcss@8.4.35) + postcss-unique-selectors: 6.0.2(postcss@8.4.35) dev: true - /cssnano-preset-lite@2.1.3(postcss@8.4.33): + /cssnano-preset-lite@2.1.3(postcss@8.4.35): resolution: {integrity: sha512-samvnCll/DUVZu0Qc+JH36nt7dlaOT7WjOgg8SbLJ78sp51JZ12s2hyerxrarjPBG4O53rErUtOY2IYLYgBGEQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.33) - postcss: 8.4.33 - postcss-discard-comments: 5.1.2(postcss@8.4.33) - postcss-discard-empty: 5.1.1(postcss@8.4.33) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.33) + cssnano-utils: 3.1.0(postcss@8.4.35) + postcss: 8.4.35 + postcss-discard-comments: 5.1.2(postcss@8.4.35) + postcss-discard-empty: 5.1.1(postcss@8.4.35) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.35) dev: true - /cssnano-utils@3.1.0(postcss@8.4.33): + /cssnano-utils@3.1.0(postcss@8.4.35): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /cssnano-utils@4.0.1(postcss@8.4.33): + /cssnano-utils@4.0.1(postcss@8.4.35): resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /cssnano@5.1.15(postcss@8.4.33): + /cssnano@5.1.15(postcss@8.4.35): resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.33) + cssnano-preset-default: 5.2.14(postcss@8.4.35) lilconfig: 2.1.0 - postcss: 8.4.33 + postcss: 8.4.35 yaml: 1.10.2 dev: true - /cssnano@6.0.3(postcss@8.4.33): - resolution: {integrity: sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==} + /cssnano@6.0.5(postcss@8.4.35): + resolution: {integrity: sha512-tpTp/ukgrElwu3ESFY4IvWnGn8eTt8cJhC2aAbtA3lvUlxp6t6UPv8YCLjNnEGiFreT1O0LiOM1U3QyTBVFl2A==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-preset-default: 6.0.3(postcss@8.4.33) - lilconfig: 3.0.0 - postcss: 8.4.33 + cssnano-preset-default: 6.0.5(postcss@8.4.35) + lilconfig: 3.1.1 + postcss: 8.4.35 dev: true /csso@4.2.0: @@ -3825,7 +3836,7 @@ packages: /d@1.0.1: resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} dependencies: - es5-ext: 0.10.62 + es5-ext: 0.10.63 type: 1.2.0 dev: false @@ -3897,13 +3908,13 @@ packages: engines: {node: '>=0.10.0'} dev: false - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + es-errors: 1.3.0 gopd: 1.0.1 - has-property-descriptors: 1.0.1 dev: false /define-lazy-prop@2.0.0: @@ -3926,8 +3937,8 @@ packages: resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==} dev: false - /destr@2.0.2: - resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} + /destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} requiresBuild: true dev: false optional: true @@ -4039,8 +4050,8 @@ packages: is-obj: 2.0.0 dev: true - /dotenv@16.4.1: - resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} requiresBuild: true dev: false @@ -4054,26 +4065,26 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /echarts@5.4.3: - resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==} + /echarts@5.5.0: + resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==} dependencies: tslib: 2.3.0 - zrender: 5.4.4 + zrender: 5.5.0 dev: false /el-table-infinite-scroll@3.0.3(typescript@5.3.3): resolution: {integrity: sha512-cmMHg4MxrNOV2dFziV3ISRo+rM/3tAH8TE3wWMGKd4ucjvk21Bfb6MJfPuNAicLOkq4fYZm+J+mr0NmDPnvolQ==} dependencies: - core-js: 3.35.1 - element-plus: 2.5.3(vue@3.4.14) + core-js: 3.36.0 + element-plus: 2.5.6(vue@3.4.14) vue: 3.4.14(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - typescript dev: false - /electron-to-chromium@1.4.648: - resolution: {integrity: sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==} + /electron-to-chromium@1.4.681: + resolution: {integrity: sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==} /element-plus@2.1.4(@types/lodash-es@4.17.12)(vue@3.4.14): resolution: {integrity: sha512-pcwgDbKUrzyWbixYB/zIbLPLBQ/NPGPJnGXJ+jYozUSthPW4SuriaUGJKgbAE6PDBAtw3IodiT2E2GbiaZLxww==} @@ -4098,14 +4109,14 @@ packages: - '@vue/composition-api' dev: false - /element-plus@2.5.3(vue@3.4.14): - resolution: {integrity: sha512-wmtstxaMkD6UinIgD+45CjrhbRh4u0vt+/GgxfPeMLt5pDpIVwZFjkUaVcWqqxcxd5a80HP3XlDF74fW7wim9A==} + /element-plus@2.5.6(vue@3.4.14): + resolution: {integrity: sha512-zctKTiyIDmcnMp3K5WG1hglgraW9EbiCLiIDVtaMCS5mPMl2fRKdS0vOFGnECIq9taFoxnyoDwxHD81nv0B4RA==} peerDependencies: vue: ^3.2.0 dependencies: '@ctrl/tinycolor': 3.6.1 '@element-plus/icons-vue': 2.3.1(vue@3.4.14) - '@floating-ui/dom': 1.6.0 + '@floating-ui/dom': 1.6.3 '@popperjs/core': /@sxzz/popperjs-es@2.11.7 '@types/lodash': 4.14.202 '@types/lodash-es': 4.17.12 @@ -4161,13 +4172,26 @@ packages: dependencies: is-arrayish: 0.2.1 - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: false + + /es5-ext@0.10.63: + resolution: {integrity: sha512-hUCZd2Byj/mNKjfP9jXrdVZ62B8KuA/VoK7X8nUh5qT+AxDmcbvZz041oDVZdbIN1qW6XY9VDNwzkvKnZvK2TQ==} engines: {node: '>=0.10'} requiresBuild: true dependencies: es6-iterator: 2.0.3 es6-symbol: 3.1.3 + esniff: 2.0.1 next-tick: 1.1.0 dev: false @@ -4175,7 +4199,7 @@ packages: resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: d: 1.0.1 - es5-ext: 0.10.62 + es5-ext: 0.10.63 es6-symbol: 3.1.3 dev: false @@ -4217,8 +4241,8 @@ packages: '@esbuild/win32-x64': 0.19.12 dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} /escape-html@1.0.3: @@ -4257,13 +4281,13 @@ packages: optionalDependencies: source-map: 0.6.1 - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true /eslint-define-config@2.1.0: @@ -4271,7 +4295,7 @@ packages: engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>=8.6.0'} dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4285,26 +4309,26 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) - prettier: 3.2.4 + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-vue@9.20.1(eslint@8.56.0): - resolution: {integrity: sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ==} + /eslint-plugin-vue@9.22.0(eslint@8.57.0): + resolution: {integrity: sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - eslint: 8.56.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.15 - semver: 7.5.4 - vue-eslint-parser: 9.4.2(eslint@8.56.0) + semver: 7.6.0 + vue-eslint-parser: 9.4.2(eslint@8.57.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -4323,15 +4347,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 + '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -4353,7 +4377,7 @@ packages: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -4370,6 +4394,16 @@ packages: - supports-color dev: true + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.1 + es5-ext: 0.10.63 + event-emitter: 0.3.5 + type: 2.7.2 + dev: false + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4421,7 +4455,7 @@ packages: resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: d: 1.0.1 - es5-ext: 0.10.62 + es5-ext: 0.10.63 dev: false /eventemitter3@4.0.7: @@ -4455,7 +4489,7 @@ packages: human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.2.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 @@ -4510,8 +4544,8 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - /fastq@1.17.0: - resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 @@ -4560,7 +4594,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -4569,7 +4603,7 @@ packages: resolution: {integrity: sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==} engines: {node: '>=16'} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 5.0.5 dev: true @@ -4581,8 +4615,8 @@ packages: dev: false optional: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true /follow-redirects@1.15.5: @@ -4689,13 +4723,15 @@ packages: engines: {node: '>=18'} dev: true - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.1 dev: false /get-package-type@0.1.0: @@ -4722,10 +4758,10 @@ packages: hasBin: true requiresBuild: true dependencies: - citty: 0.1.5 + citty: 0.1.6 consola: 3.2.3 defu: 6.1.4 - node-fetch-native: 1.6.1 + node-fetch-native: 1.6.2 nypm: 0.3.6 ohash: 1.1.3 pathe: 1.1.2 @@ -4821,19 +4857,19 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true - /globby@14.0.0: - resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} + /globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} engines: {node: '>=18'} requiresBuild: true dependencies: - '@sindresorhus/merge-streams': 1.0.0 + '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -4847,7 +4883,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: false /graceful-fs@4.2.11: @@ -4878,14 +4914,14 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 dev: false - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} dev: false @@ -4900,8 +4936,8 @@ packages: dev: false optional: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -4990,9 +5026,9 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - /husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} + /husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} hasBin: true dev: true @@ -5009,8 +5045,8 @@ packages: safer-buffer: 2.1.2 dev: false - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} /immediate@3.0.6: @@ -5099,7 +5135,7 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} @@ -5246,8 +5282,8 @@ packages: - supports-color dev: false - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -5279,7 +5315,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -5404,7 +5440,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -5422,7 +5458,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 jest-mock: 27.5.1 jest-util: 27.5.1 dev: false @@ -5438,7 +5474,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.9 - '@types/node': 20.11.7 + '@types/node': 20.11.20 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -5460,7 +5496,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -5515,7 +5551,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 dev: false /jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): @@ -5571,7 +5607,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -5628,7 +5664,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.20 graceful-fs: 4.2.11 dev: false @@ -5657,7 +5693,7 @@ packages: jest-util: 27.5.1 natural-compare: 1.4.0 pretty-format: 27.5.1 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: false @@ -5667,7 +5703,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -5692,7 +5728,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.11.7 + '@types/node': 20.11.20 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -5703,7 +5739,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.20 merge-stream: 2.0.0 supports-color: 8.1.1 dev: false @@ -5741,8 +5777,8 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-tokens@8.0.2: - resolution: {integrity: sha512-Olnt+V7xYdvGze9YTbGFZIfQXuGV4R3nQwwl8BrtgaPE/wq8UFpUHWuTNc05saowhSr1ZO6tx+V6RjE9D5YQog==} + /js-tokens@8.0.3: + resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} dev: true /js-yaml@3.14.1: @@ -5842,7 +5878,7 @@ packages: acorn: 8.11.3 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.5.4 + semver: 7.6.0 dev: true /jsonc-parser@3.2.1: @@ -5917,11 +5953,16 @@ packages: engines: {node: '>=14'} dev: true + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + dev: true + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /lint-staged@15.2.0: - resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==} + /lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} engines: {node: '>=18.12.0'} hasBin: true dependencies: @@ -5930,7 +5971,7 @@ packages: debug: 4.3.4 execa: 8.0.1 lilconfig: 3.0.0 - listr2: 8.0.0 + listr2: 8.0.1 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 @@ -5939,8 +5980,8 @@ packages: - supports-color dev: true - /listr2@8.0.0: - resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} + /listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} engines: {node: '>=18.0.0'} dependencies: cli-truncate: 4.0.0 @@ -5956,7 +5997,7 @@ packages: engines: {node: '>=14'} requiresBuild: true dependencies: - mlly: 1.5.0 + mlly: 1.6.1 pkg-types: 1.0.3 dev: false optional: true @@ -6103,8 +6144,8 @@ packages: sourcemap-codec: 1.4.8 dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -6113,7 +6154,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: false /makeerror@1.0.12: @@ -6157,8 +6198,8 @@ packages: engines: {node: '>=16.10'} dev: true - /meow@13.1.0: - resolution: {integrity: sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==} + /meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} dev: true @@ -6300,13 +6341,13 @@ packages: dev: false optional: true - /mlly@1.5.0: - resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 - ufo: 1.3.2 + ufo: 1.4.0 /mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} @@ -6350,8 +6391,8 @@ packages: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: false - /node-fetch-native@1.6.1: - resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==} + /node-fetch-native@1.6.2: + resolution: {integrity: sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==} requiresBuild: true dev: false optional: true @@ -6378,7 +6419,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 - semver: 7.5.4 + semver: 7.6.0 validate-npm-package-license: 3.0.4 dev: true @@ -6406,8 +6447,8 @@ packages: dependencies: path-key: 3.1.1 - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -6432,10 +6473,10 @@ packages: hasBin: true requiresBuild: true dependencies: - citty: 0.1.5 + citty: 0.1.6 execa: 8.0.1 pathe: 1.1.2 - ufo: 1.3.2 + ufo: 1.4.0 dev: false optional: true @@ -6640,14 +6681,14 @@ packages: typescript: optional: true dependencies: - '@vue/devtools-api': 6.5.1 + '@vue/devtools-api': 6.6.1 typescript: 5.3.3 vue: 3.4.14(typescript@5.3.3) - vue-demi: 0.14.6(vue@3.4.14) + vue-demi: 0.14.7(vue@3.4.14) dev: false - /pinyin-pro@3.19.3: - resolution: {integrity: sha512-tIBL4ibq3P+MFbSwOTTi42Xf6jau726swgKqEmSkkiZiE1iUMhQdguR9aavLt9nqnRDpcBSIanNV8tPuKPSmvw==} + /pinyin-pro@3.19.6: + resolution: {integrity: sha512-oWb34orr12+DjXf6gtGMB+gIpjRi7DZzyJE66ultbmNzVhpimM/utGtMI8GcbOy/lb26Ph/nogwNYriRPu+SGQ==} dev: false /pirates@4.0.6: @@ -6665,7 +6706,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.1 - mlly: 1.5.0 + mlly: 1.6.1 pathe: 1.1.2 /pngjs@5.0.0: @@ -6682,145 +6723,145 @@ packages: tslib: 2.4.0 dev: false - /postcss-calc@8.2.4(postcss@8.4.33): + /postcss-calc@8.2.4(postcss@8.4.35): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true - /postcss-calc@9.0.1(postcss@8.4.33): + /postcss-calc@9.0.1(postcss@8.4.35): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@5.3.1(postcss@8.4.33): + /postcss-colormin@5.3.1(postcss@8.4.35): resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.22.3 + browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==} + /postcss-colormin@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-ECpkS+UZRyAtu/kjive2/1mihP+GNtgC8kcdU8ueWZi1ZVxMNnRziCLdhrWECJhEtSWijfX2Cl9XTTCK/hjGaA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.22.3 + browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@5.1.3(postcss@8.4.33): + /postcss-convert-values@5.1.3(postcss@8.4.35): resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.22.3 - postcss: 8.4.33 + browserslist: 4.23.0 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==} + /postcss-convert-values@6.0.4(postcss@8.4.35): + resolution: {integrity: sha512-YT2yrGzPXoQD3YeA2kBo/696qNwn7vI+15AOS2puXWEvSWqdCqlOyDWRy5GNnOc9ACRGOkuQ4ESQEqPJBWt/GA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.22.3 - postcss: 8.4.33 + browserslist: 4.23.0 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments@5.1.2(postcss@8.4.33): + /postcss-discard-comments@5.1.2(postcss@8.4.35): resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-discard-comments@6.0.1(postcss@8.4.33): + /postcss-discard-comments@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-discard-duplicates@5.1.0(postcss@8.4.33): + /postcss-discard-duplicates@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-discard-duplicates@6.0.1(postcss@8.4.33): - resolution: {integrity: sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==} + /postcss-discard-duplicates@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-U2rsj4w6pAGROCCcD13LP2eBIi1whUsXs4kgE6xkIuGfkbxCBSKhkCTWyowFd66WdVlLv0uM1euJKIgmdmZObg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-discard-empty@5.1.1(postcss@8.4.33): + /postcss-discard-empty@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-discard-empty@6.0.1(postcss@8.4.33): - resolution: {integrity: sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==} + /postcss-discard-empty@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-rj6pVC2dVCJrP0Y2RkYTQEbYaCf4HEm+R/2StQgJqGHxAa3+KcYslNQhcRqjLHtl/4wpzipJluaJLqBj6d5eDQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-discard-overridden@5.1.0(postcss@8.4.33): + /postcss-discard-overridden@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-discard-overridden@6.0.1(postcss@8.4.33): + /postcss-discard-overridden@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true /postcss-html@1.6.0: @@ -6828,34 +6869,46 @@ packages: engines: {node: ^12 || >=14} dependencies: htmlparser2: 8.0.2 - js-tokens: 8.0.2 - postcss: 8.4.33 - postcss-safe-parser: 6.0.0(postcss@8.4.33) + js-tokens: 8.0.3 + postcss: 8.4.35 + postcss-safe-parser: 6.0.0(postcss@8.4.35) dev: true - /postcss-import@15.1.0(postcss@8.4.33): + /postcss-import@15.1.0(postcss@8.4.35): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.33): + /postcss-import@16.0.1(postcss@8.4.35): + resolution: {integrity: sha512-i2Pci0310NaLHr/5JUFSw1j/8hf1CzwMY13g6ZDxgOavmRHQi2ba3PmUHoihO+sjaum+KmCNzskNsw7JDrg03g==} + engines: {node: '>=18.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.35): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-load-config@4.0.2(postcss@8.4.33): + /postcss-load-config@4.0.2(postcss@8.4.35): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -6867,8 +6920,8 @@ packages: ts-node: optional: true dependencies: - lilconfig: 3.0.0 - postcss: 8.4.33 + lilconfig: 3.1.1 + postcss: 8.4.35 yaml: 2.3.4 dev: true @@ -6876,394 +6929,394 @@ packages: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true - /postcss-merge-longhand@5.1.7(postcss@8.4.33): + /postcss-merge-longhand@5.1.7(postcss@8.4.35): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.33) + stylehacks: 5.1.1(postcss@8.4.35) dev: true - /postcss-merge-longhand@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==} + /postcss-merge-longhand@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-kF/y3DU8CRt+SX3tP/aG+2gkZI2Z7OXDsPU7FgxIJmuyhQQ1EHceIYcsp/alvzCm2P4c37Sfdu8nNrHc+YeyLg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 - stylehacks: 6.0.2(postcss@8.4.33) + stylehacks: 6.0.3(postcss@8.4.35) dev: true - /postcss-merge-rules@5.1.4(postcss@8.4.33): + /postcss-merge-rules@5.1.4(postcss@8.4.35): resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.22.3 + browserslist: 4.23.0 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.33) - postcss: 8.4.33 + cssnano-utils: 3.1.0(postcss@8.4.35) + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /postcss-merge-rules@6.0.3(postcss@8.4.33): - resolution: {integrity: sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==} + /postcss-merge-rules@6.0.4(postcss@8.4.35): + resolution: {integrity: sha512-97iF3UJ5v8N1BWy38y+0l+Z8o5/9uGlEgtWic2PJPzoRrLB6Gxg8TVG93O0EK52jcLeMsywre26AUlX1YAYeHA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.22.3 + browserslist: 4.23.0 caniuse-api: 3.0.0 - cssnano-utils: 4.0.1(postcss@8.4.33) - postcss: 8.4.33 + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /postcss-minify-font-values@5.1.0(postcss@8.4.33): + /postcss-minify-font-values@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-font-values@6.0.1(postcss@8.4.33): - resolution: {integrity: sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==} + /postcss-minify-font-values@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-IedzbVMoX0a7VZWjSYr5qJ6C37rws8kl8diPBeMZLJfWKkgXuMFY5R/OxPegn/q9tK9ztd0XRH3aR0u2t+A7uQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@5.1.1(postcss@8.4.33): + /postcss-minify-gradients@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.33) - postcss: 8.4.33 + cssnano-utils: 3.1.0(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@6.0.1(postcss@8.4.33): - resolution: {integrity: sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==} + /postcss-minify-gradients@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-vP5mF7iI6/5fcpv+rSfwWQekOE+8I1i7/7RjZPGuIjj6eUaZVeG4XZYZrroFuw1WQd51u2V32wyQFZ+oYdE7CA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.1(postcss@8.4.33) - postcss: 8.4.33 + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@5.1.4(postcss@8.4.33): + /postcss-minify-params@5.1.4(postcss@8.4.35): resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.22.3 - cssnano-utils: 3.1.0(postcss@8.4.33) - postcss: 8.4.33 + browserslist: 4.23.0 + cssnano-utils: 3.1.0(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==} + /postcss-minify-params@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-j4S74d3AAeCK5eGdQndXSrkxusV2ekOxbXGnlnZthMyZBBvSDiU34CihTASbJxuVB3bugudmwolS7+Dgs5OyOQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.22.3 - cssnano-utils: 4.0.1(postcss@8.4.33) - postcss: 8.4.33 + browserslist: 4.23.0 + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@5.2.1(postcss@8.4.33): + /postcss-minify-selectors@5.2.1(postcss@8.4.35): resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /postcss-minify-selectors@6.0.2(postcss@8.4.33): + /postcss-minify-selectors@6.0.2(postcss@8.4.35): resolution: {integrity: sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /postcss-nested@6.0.1(postcss@8.4.33): + /postcss-nested@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.33): + /postcss-normalize-charset@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-normalize-charset@6.0.1(postcss@8.4.33): + /postcss-normalize-charset@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-normalize-display-values@5.1.0(postcss@8.4.33): + /postcss-normalize-display-values@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-display-values@6.0.1(postcss@8.4.33): + /postcss-normalize-display-values@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@5.1.1(postcss@8.4.33): + /postcss-normalize-positions@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@6.0.1(postcss@8.4.33): + /postcss-normalize-positions@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.33): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@6.0.1(postcss@8.4.33): + /postcss-normalize-repeat-style@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@5.1.0(postcss@8.4.33): + /postcss-normalize-string@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@6.0.1(postcss@8.4.33): + /postcss-normalize-string@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.33): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@6.0.1(postcss@8.4.33): + /postcss-normalize-timing-functions@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@5.1.1(postcss@8.4.33): + /postcss-normalize-unicode@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.22.3 - postcss: 8.4.33 + browserslist: 4.23.0 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==} + /postcss-normalize-unicode@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-T2Bb3gXz0ASgc3ori2dzjv6j/P2IantreaC6fT8tWjqYUiqMAh5jGIkdPwEV2FaucjQlCLeFJDJh2BeSugE1ig==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.22.3 - postcss: 8.4.33 + browserslist: 4.23.0 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@5.1.0(postcss@8.4.33): + /postcss-normalize-url@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@6.0.1(postcss@8.4.33): + /postcss-normalize-url@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@5.1.1(postcss@8.4.33): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@6.0.1(postcss@8.4.33): + /postcss-normalize-whitespace@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@5.1.3(postcss@8.4.33): + /postcss-ordered-values@5.1.3(postcss@8.4.35): resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.33) - postcss: 8.4.33 + cssnano-utils: 3.1.0(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@6.0.1(postcss@8.4.33): + /postcss-ordered-values@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-utils: 4.0.1(postcss@8.4.33) - postcss: 8.4.33 + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial@5.1.2(postcss@8.4.33): + /postcss-reduce-initial@5.1.2(postcss@8.4.35): resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.22.3 + browserslist: 4.23.0 caniuse-api: 3.0.0 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-reduce-initial@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==} + /postcss-reduce-initial@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-w4QIR9pEa1N4xMx3k30T1vLZl6udVK2RmNqrDXhBXX9L0mBj2a8ADs8zkbaEH7eUy1m30Wyr5EBgHN31Yq1JvA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.22.3 + browserslist: 4.23.0 caniuse-api: 3.0.0 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-reduce-transforms@5.1.0(postcss@8.4.33): + /postcss-reduce-transforms@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-transforms@6.0.1(postcss@8.4.33): + /postcss-reduce-transforms@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true @@ -7271,31 +7324,31 @@ packages: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.33): + /postcss-safe-parser@6.0.0(postcss@8.4.35): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-safe-parser@7.0.0(postcss@8.4.33): + /postcss-safe-parser@7.0.0(postcss@8.4.35): resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} engines: {node: '>=18.0'} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-scss@4.0.9(postcss@8.4.33): + /postcss-scss@4.0.9(postcss@8.4.35): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true /postcss-selector-parser@6.0.15: @@ -7306,53 +7359,53 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-sorting@8.0.2(postcss@8.4.33): + /postcss-sorting@8.0.2(postcss@8.4.35): resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} peerDependencies: postcss: ^8.4.20 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-svgo@5.1.0(postcss@8.4.33): + /postcss-svgo@5.1.0(postcss@8.4.35): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-svgo@6.0.2(postcss@8.4.33): + /postcss-svgo@6.0.2(postcss@8.4.35): resolution: {integrity: sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 svgo: 3.2.0 dev: true - /postcss-unique-selectors@5.1.1(postcss@8.4.33): + /postcss-unique-selectors@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /postcss-unique-selectors@6.0.2(postcss@8.4.33): + /postcss-unique-selectors@6.0.2(postcss@8.4.35): resolution: {integrity: sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true @@ -7360,16 +7413,16 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - /preact@10.19.3: - resolution: {integrity: sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==} + /preact@10.19.6: + resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==} dev: false /prelude-ls@1.2.1: @@ -7390,8 +7443,8 @@ packages: hasBin: true dev: true - /prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true @@ -7450,7 +7503,7 @@ packages: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.5 dev: false /querystringify@2.2.0: @@ -7470,7 +7523,7 @@ packages: requiresBuild: true dependencies: defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 flat: 5.0.2 dev: false optional: true @@ -7658,26 +7711,26 @@ packages: optionalDependencies: fsevents: 2.3.3 - /rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + /rollup@4.12.0: + resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.6 - '@rollup/rollup-android-arm64': 4.9.6 - '@rollup/rollup-darwin-arm64': 4.9.6 - '@rollup/rollup-darwin-x64': 4.9.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 - '@rollup/rollup-linux-arm64-gnu': 4.9.6 - '@rollup/rollup-linux-arm64-musl': 4.9.6 - '@rollup/rollup-linux-riscv64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-musl': 4.9.6 - '@rollup/rollup-win32-arm64-msvc': 4.9.6 - '@rollup/rollup-win32-ia32-msvc': 4.9.6 - '@rollup/rollup-win32-x64-msvc': 4.9.6 + '@rollup/rollup-android-arm-eabi': 4.12.0 + '@rollup/rollup-android-arm64': 4.12.0 + '@rollup/rollup-darwin-arm64': 4.12.0 + '@rollup/rollup-darwin-x64': 4.12.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 + '@rollup/rollup-linux-arm64-gnu': 4.12.0 + '@rollup/rollup-linux-arm64-musl': 4.12.0 + '@rollup/rollup-linux-riscv64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-musl': 4.12.0 + '@rollup/rollup-win32-arm64-msvc': 4.12.0 + '@rollup/rollup-win32-ia32-msvc': 4.12.0 + '@rollup/rollup-win32-x64-msvc': 4.12.0 fsevents: 2.3.3 dev: true @@ -7694,12 +7747,12 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false - /sass@1.70.0: - resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==} + /sass@1.71.1: + resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.5.3 + chokidar: 3.6.0 immutable: 4.3.5 source-map-js: 1.0.2 dev: true @@ -7717,8 +7770,8 @@ packages: compute-scroll-into-view: 1.0.20 dev: false - /scule@1.2.0: - resolution: {integrity: sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==} + /scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} requiresBuild: true dev: false optional: true @@ -7732,8 +7785,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -7743,15 +7796,16 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false - /set-function-length@1.2.0: - resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 dev: false /shebang-command@2.0.0: @@ -7764,11 +7818,13 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + /side-channel@1.0.5: + resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 object-inspect: 1.13.1 dev: false @@ -7842,8 +7898,8 @@ packages: is-fullwidth-code-point: 5.0.0 dev: true - /snabbdom@3.6.0: - resolution: {integrity: sha512-JFEKcxO7fSDZdREbFSdUqh/ozRYhSbJq2yJt4QMkIykOy7z/+r0nHF8olX1q+J9YkaaNw/bftzcBhFdIKcygWw==} + /snabbdom@3.6.2: + resolution: {integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==} engines: {node: '>=12.17.0'} dev: false @@ -7883,22 +7939,22 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 + spdx-license-ids: 3.0.17 dev: true - /spdx-exceptions@2.4.0: - resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - spdx-exceptions: 2.4.0 - spdx-license-ids: 3.0.16 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 dev: true - /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + /spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} dev: true /split2@3.2.2: @@ -8046,29 +8102,29 @@ packages: tslib: 2.4.0 dev: false - /stylehacks@5.1.1(postcss@8.4.33): + /stylehacks@5.1.1(postcss@8.4.35): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.22.3 - postcss: 8.4.33 + browserslist: 4.23.0 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /stylehacks@6.0.2(postcss@8.4.33): - resolution: {integrity: sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==} + /stylehacks@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-KzBqjnqktc8/I0ERCb+lGq06giF/JxDbw2r9kEVhen9noHeIDRtMWUp9r62sOk+/2bbX6sFG1GhsS7ToXG0PEg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.22.3 - postcss: 8.4.33 + browserslist: 4.23.0 + postcss: 8.4.35 postcss-selector-parser: 6.0.15 dev: true - /stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.2.0): + /stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.2.1): resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} engines: {node: ^12 || >=14} peerDependencies: @@ -8076,19 +8132,19 @@ packages: stylelint: '>=14.0.0' dependencies: postcss-html: 1.6.0 - stylelint: 16.2.0(typescript@5.3.3) + stylelint: 16.2.1(typescript@5.3.3) dev: true - /stylelint-config-recess-order@4.4.0(stylelint@16.2.0): - resolution: {integrity: sha512-Q99kvZyIM/aoPEV4dRDkzD3fZLzH0LXi+pawCf1r700uUeF/PHQ5PZXjwFUuGrWhOzd1N+cuVm+OUGsY2fRN5A==} + /stylelint-config-recess-order@4.6.0(stylelint@16.2.1): + resolution: {integrity: sha512-V76fhv3YtcNXh/hyAuAdSzi5FmcrG54Mp2AThJ3D/PTMTSYzUPd7GIhP6z9mTqnRhmkk6YTfcu/JWB8h+Yrcaw==} peerDependencies: stylelint: '>=15' dependencies: - stylelint: 16.2.0(typescript@5.3.3) - stylelint-order: 6.0.4(stylelint@16.2.0) + stylelint: 16.2.1(typescript@5.3.3) + stylelint-order: 6.0.4(stylelint@16.2.1) dev: true - /stylelint-config-recommended-scss@14.0.0(postcss@8.4.33)(stylelint@16.2.0): + /stylelint-config-recommended-scss@14.0.0(postcss@8.4.35)(stylelint@16.2.1): resolution: {integrity: sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==} engines: {node: '>=18.12.0'} peerDependencies: @@ -8098,14 +8154,14 @@ packages: postcss: optional: true dependencies: - postcss: 8.4.33 - postcss-scss: 4.0.9(postcss@8.4.33) - stylelint: 16.2.0(typescript@5.3.3) - stylelint-config-recommended: 14.0.0(stylelint@16.2.0) - stylelint-scss: 6.1.0(stylelint@16.2.0) + postcss: 8.4.35 + postcss-scss: 4.0.9(postcss@8.4.35) + stylelint: 16.2.1(typescript@5.3.3) + stylelint-config-recommended: 14.0.0(stylelint@16.2.1) + stylelint-scss: 6.1.0(stylelint@16.2.1) dev: true - /stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.2.0): + /stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.2.1): resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==} engines: {node: ^12 || >=14} peerDependencies: @@ -8113,70 +8169,70 @@ packages: stylelint: '>=14.0.0' dependencies: postcss-html: 1.6.0 - semver: 7.5.4 - stylelint: 16.2.0(typescript@5.3.3) - stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.2.0) - stylelint-config-recommended: 14.0.0(stylelint@16.2.0) + semver: 7.6.0 + stylelint: 16.2.1(typescript@5.3.3) + stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.2.1) + stylelint-config-recommended: 14.0.0(stylelint@16.2.1) dev: true - /stylelint-config-recommended@14.0.0(stylelint@16.2.0): + /stylelint-config-recommended@14.0.0(stylelint@16.2.1): resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.0 dependencies: - stylelint: 16.2.0(typescript@5.3.3) + stylelint: 16.2.1(typescript@5.3.3) dev: true - /stylelint-config-standard-scss@12.0.0(postcss@8.4.33)(stylelint@16.2.0): - resolution: {integrity: sha512-ATh3EcEOLZq0iwlFaBdIsSavrla0lNtJ7mO7hdE7DgVT6imozRggFSqd4cFcjzVnOLKv/uJT63MmqA1acIflbw==} + /stylelint-config-standard-scss@13.0.0(postcss@8.4.35)(stylelint@16.2.1): + resolution: {integrity: sha512-WaLvkP689qSYUpJQPCo30TFJSSc3VzvvoWnrgp+7PpVby5o8fRUY1cZcP0sePZfjrFl9T8caGhcKg0GO34VDiQ==} engines: {node: '>=18.12.0'} peerDependencies: postcss: ^8.3.3 - stylelint: ^16.0.2 + stylelint: ^16.1.0 peerDependenciesMeta: postcss: optional: true dependencies: - postcss: 8.4.33 - stylelint: 16.2.0(typescript@5.3.3) - stylelint-config-recommended-scss: 14.0.0(postcss@8.4.33)(stylelint@16.2.0) - stylelint-config-standard: 35.0.0(stylelint@16.2.0) + postcss: 8.4.35 + stylelint: 16.2.1(typescript@5.3.3) + stylelint-config-recommended-scss: 14.0.0(postcss@8.4.35)(stylelint@16.2.1) + stylelint-config-standard: 36.0.0(stylelint@16.2.1) dev: true - /stylelint-config-standard@35.0.0(stylelint@16.2.0): - resolution: {integrity: sha512-JyQrNZk2BZwVKFauGGxW2U6RuhIfQ4XoHHo+rBzMHcAkLnwI/knpszwXjzxiMgSfcxbZBckM7Vq4LHoANTR85g==} + /stylelint-config-standard@36.0.0(stylelint@16.2.1): + resolution: {integrity: sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==} engines: {node: '>=18.12.0'} peerDependencies: - stylelint: ^16.0.0 + stylelint: ^16.1.0 dependencies: - stylelint: 16.2.0(typescript@5.3.3) - stylelint-config-recommended: 14.0.0(stylelint@16.2.0) + stylelint: 16.2.1(typescript@5.3.3) + stylelint-config-recommended: 14.0.0(stylelint@16.2.1) dev: true - /stylelint-order@6.0.4(stylelint@16.2.0): + /stylelint-order@6.0.4(stylelint@16.2.1): resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} peerDependencies: stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 dependencies: - postcss: 8.4.33 - postcss-sorting: 8.0.2(postcss@8.4.33) - stylelint: 16.2.0(typescript@5.3.3) + postcss: 8.4.35 + postcss-sorting: 8.0.2(postcss@8.4.35) + stylelint: 16.2.1(typescript@5.3.3) dev: true - /stylelint-prettier@5.0.0(prettier@3.2.4)(stylelint@16.2.0): + /stylelint-prettier@5.0.0(prettier@3.2.5)(stylelint@16.2.1): resolution: {integrity: sha512-RHfSlRJIsaVg5Br94gZVdWlz/rBTyQzZflNE6dXvSxt/GthWMY3gEHsWZEBaVGg7GM+XrtVSp4RznFlB7i0oyw==} engines: {node: '>=18.12.0'} peerDependencies: prettier: '>=3.0.0' stylelint: '>=16.0.0' dependencies: - prettier: 3.2.4 + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 - stylelint: 16.2.0(typescript@5.3.3) + stylelint: 16.2.1(typescript@5.3.3) dev: true - /stylelint-scss@6.1.0(stylelint@16.2.0): + /stylelint-scss@6.1.0(stylelint@16.2.1): resolution: {integrity: sha512-kCfK8TQzthGwb4vaZniZgxRsVbCM4ZckmT1b/H5m4FU3I8Dz0id9llKsy1NMp3XXqC8+OPD4rVKtUbSxXlJb5g==} engines: {node: '>=18.12.0'} peerDependencies: @@ -8187,18 +8243,18 @@ packages: postcss-resolve-nested-selector: 0.1.1 postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 - stylelint: 16.2.0(typescript@5.3.3) + stylelint: 16.2.1(typescript@5.3.3) dev: true - /stylelint@16.2.0(typescript@5.3.3): - resolution: {integrity: sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==} + /stylelint@16.2.1(typescript@5.3.3): + resolution: {integrity: sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==} engines: {node: '>=18.12.0'} hasBin: true dependencies: - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) + '@csstools/css-parser-algorithms': 2.6.0(@csstools/css-tokenizer@2.2.3) '@csstools/css-tokenizer': 2.2.3 - '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) + '@csstools/media-query-list-parser': 2.1.8(@csstools/css-parser-algorithms@2.6.0)(@csstools/css-tokenizer@2.2.3) + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15) balanced-match: 2.0.0 colord: 2.9.3 cosmiconfig: 9.0.0(typescript@5.3.3) @@ -8212,18 +8268,18 @@ packages: globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 5.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-plain-object: 5.0.0 known-css-properties: 0.29.0 mathml-tag-names: 2.1.3 - meow: 13.1.0 + meow: 13.2.0 micromatch: 4.0.5 normalize-path: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.33 + postcss: 8.4.35 postcss-resolve-nested-selector: 0.1.1 - postcss-safe-parser: 7.0.0(postcss@8.4.33) + postcss-safe-parser: 7.0.0(postcss@8.4.35) postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 @@ -8243,7 +8299,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/gen-mapping': 0.3.4 commander: 4.1.1 glob: 10.3.10 lines-and-columns: 1.2.4 @@ -8323,8 +8379,8 @@ packages: picocolors: 1.0.0 dev: true - /swiper@11.0.5: - resolution: {integrity: sha512-rhCwupqSyRnWrtNzWzemnBLMoyYuoDgGgspAm/8iBD3jCvAWycPLH4Z3TB0O5520DHLzMx94yUMH/B9Efpa48w==} + /swiper@11.0.6: + resolution: {integrity: sha512-W/Me7MQl5rNgdM5x9i3Gll76WsyVpnHn91GhBOyL7RCFUeg62aVnflzlVfIpXzZ/87FtJOfAoDH79ZH2Yq76zA==} engines: {node: '>= 4.7.0'} dev: false @@ -8358,7 +8414,7 @@ packages: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.5.3 + chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.3.2 @@ -8370,11 +8426,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.33 - postcss-import: 15.1.0(postcss@8.4.33) - postcss-js: 4.0.1(postcss@8.4.33) - postcss-load-config: 4.0.2(postcss@8.4.33) - postcss-nested: 6.0.1(postcss@8.4.33) + postcss: 8.4.35 + postcss-import: 15.1.0(postcss@8.4.35) + postcss-js: 4.0.1(postcss@8.4.35) + postcss-load-config: 4.0.2(postcss@8.4.35) + postcss-nested: 6.0.1(postcss@8.4.35) postcss-selector-parser: 6.0.15 resolve: 1.22.8 sucrase: 3.35.0 @@ -8506,9 +8562,9 @@ packages: engines: {node: '>=8'} dev: true - /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.2.1(typescript@5.3.3): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: @@ -8606,8 +8662,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + /ufo@1.4.0: + resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} /unctx@2.3.1: resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} @@ -8615,8 +8671,8 @@ packages: dependencies: acorn: 8.11.3 estree-walker: 3.0.3 - magic-string: 0.30.5 - unplugin: 1.6.0 + magic-string: 0.30.7 + unplugin: 1.7.1 dev: false optional: true @@ -8640,13 +8696,13 @@ packages: estree-walker: 3.0.3 fast-glob: 3.3.2 local-pkg: 0.5.0 - magic-string: 0.30.5 - mlly: 1.5.0 + magic-string: 0.30.7 + mlly: 1.6.1 pathe: 1.1.2 pkg-types: 1.0.3 - scule: 1.2.0 + scule: 1.3.0 strip-literal: 1.3.0 - unplugin: 1.6.0 + unplugin: 1.7.1 transitivePeerDependencies: - rollup dev: false @@ -8662,11 +8718,11 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unplugin@1.6.0: - resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} + /unplugin@1.7.1: + resolution: {integrity: sha512-JqzORDAPxxs8ErLV4x+LL7bk5pk3YlcWqpSNsIkAZj972KzFZLClc/ekppahKkOczGkwIG6ElFgdOgOlK4tXZw==} dependencies: acorn: 8.11.3 - chokidar: 3.5.3 + chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 @@ -8676,25 +8732,25 @@ packages: requiresBuild: true dependencies: '@babel/core': 7.23.9 - '@babel/standalone': 7.23.9 + '@babel/standalone': 7.23.10 '@babel/types': 7.23.9 defu: 6.1.4 jiti: 1.21.0 mri: 1.2.0 - scule: 1.2.0 + scule: 1.3.0 transitivePeerDependencies: - supports-color dev: false optional: true - /update-browserslist-db@1.0.13(browserslist@4.22.3): + /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.3 - escalade: 3.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 picocolors: 1.0.0 /uri-js@4.4.1: @@ -8725,8 +8781,8 @@ packages: hasBin: true dev: true - /v-contextmenu@3.0.0(vue@3.4.14): - resolution: {integrity: sha512-zi38JxmTt66TmljgV1JbfEa9WvoQkpzRuEwZK7Tjb2XoRejbWLozQtkyTWXJa6x6Y3FrVDfgT36w01gpTpo41A==} + /v-contextmenu@3.2.0(vue@3.4.14): + resolution: {integrity: sha512-6UemjAZkm6IXDH1XwIJrZj/uqSKnwnGDR+hfJnUvh66LRL5hk5bxgkgwto1lP3xFyjC8hzpQxnbzC6d1x1vXNg==} engines: {node: '>=10.16.0'} peerDependencies: vue: ^3.0.0 @@ -8772,7 +8828,7 @@ packages: - rollup dev: true - /vite-plugin-compression@0.5.1(vite@5.0.12): + /vite-plugin-compression@0.5.1(vite@5.1.4): resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} peerDependencies: vite: '>=2.0.0' @@ -8780,7 +8836,7 @@ packages: chalk: 4.1.2 debug: 4.3.4 fs-extra: 10.1.0 - vite: 5.0.12(@types/node@20.11.7)(sass@1.70.0) + vite: 5.1.4(@types/node@20.11.20)(sass@1.71.1) transitivePeerDependencies: - supports-color dev: true @@ -8789,7 +8845,7 @@ packages: resolution: {integrity: sha512-QUgssvE7jI9XU1WuDZ3gkzzi9GzVeapELIlFNMvmE2swDKL7O2y2nV0kRZ9VYOsD+hV312uSJyzHBJvcmBw7UQ==} dependencies: bundle-import: 0.0.1 - chokidar: 3.5.3 + chokidar: 3.6.0 fast-glob: 3.3.2 path-to-regexp: 6.2.1 picocolors: 1.0.0 @@ -8812,8 +8868,8 @@ packages: vue: 3.4.14(typescript@5.3.3) dev: true - /vite@5.0.12(@types/node@20.11.7)(sass@1.70.0): - resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + /vite@5.1.4(@types/node@20.11.20)(sass@1.71.1): + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -8840,17 +8896,17 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.7 + '@types/node': 20.11.20 esbuild: 0.19.12 - postcss: 8.4.33 - rollup: 4.9.6 - sass: 1.70.0 + postcss: 8.4.35 + rollup: 4.12.0 + sass: 1.71.1 optionalDependencies: fsevents: 2.3.3 dev: true - /vue-demi@0.14.6(vue@3.4.14): - resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} + /vue-demi@0.14.7(vue@3.4.14): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -8864,33 +8920,33 @@ packages: vue: 3.4.14(typescript@5.3.3) dev: false - /vue-eslint-parser@9.4.2(eslint@8.56.0): + /vue-eslint-parser@9.4.2(eslint@8.57.0): resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true - /vue-i18n@9.9.0(vue@3.4.14): - resolution: {integrity: sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA==} + /vue-i18n@9.9.1(vue@3.4.14): + resolution: {integrity: sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==} engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 dependencies: - '@intlify/core-base': 9.9.0 - '@intlify/shared': 9.9.0 - '@vue/devtools-api': 6.5.1 + '@intlify/core-base': 9.9.1 + '@intlify/shared': 9.9.1 + '@vue/devtools-api': 6.6.1 vue: 3.4.14(typescript@5.3.3) /vue-json-pretty@2.3.0(vue@3.4.14): @@ -8926,12 +8982,12 @@ packages: vue: 3.4.14(typescript@5.3.3) dev: false - /vue-router@4.2.5(vue@3.4.14): - resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} + /vue-router@4.3.0(vue@3.4.14): + resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} peerDependencies: vue: ^3.2.0 dependencies: - '@vue/devtools-api': 6.5.1 + '@vue/devtools-api': 6.6.1 vue: 3.4.14(typescript@5.3.3) dev: false @@ -8959,7 +9015,7 @@ packages: dependencies: '@volar/typescript': 1.11.1 '@vue/language-core': 1.8.27(typescript@5.3.3) - semver: 7.5.4 + semver: 7.6.0 typescript: 5.3.3 dev: true @@ -8992,7 +9048,7 @@ packages: dependencies: animate.css: 4.1.1 element-plus: 2.1.4(@types/lodash-es@4.17.12)(vue@3.4.14) - vue-router: 4.2.5(vue@3.4.14) + vue-router: 4.3.0(vue@3.4.14) transitivePeerDependencies: - '@types/lodash-es' - '@vue/composition-api' @@ -9051,8 +9107,8 @@ packages: makeerror: 1.0.12 dev: false - /wavesurfer.js@7.7.1: - resolution: {integrity: sha512-2HFBnTgxtz2e2XMpoPVDxDjxJH6CQLj+Q1TO6U3K2ngtQ4svgymDb4fhK++qTZlL4GTMmUuqxDHEi6wK/8gGtg==} + /wavesurfer.js@7.7.3: + resolution: {integrity: sha512-TC7cQb0RVggtNC+Dl05gcnhSFL5U+fww3ZYJUuqgfR+r9oY+bh/hChCipDFDjs5cWtuek3GEtsPXWa93a9XYxw==} dev: false /webidl-conversions@5.0.0: @@ -9198,26 +9254,26 @@ packages: optional: true dev: false - /xgplayer-subtitles@3.0.11(core-js@3.35.1): - resolution: {integrity: sha512-m/fk9TeeLuwqnryHTqo5SVVS3w9A27hHe7R1HxWQlk5ZZ5H2CxAXn4dv/PU+gI61DWG3sNkjftlq5duHJtdz2g==} + /xgplayer-subtitles@3.0.13(core-js@3.36.0): + resolution: {integrity: sha512-VlcPg6Ne66mwB6uIlE6gT28WG9u2vugMuho0mVMsB/uQ+XOin5xtH3Jpf2Ewx5CTf3SRfg4VmqUCuuMT7Z1qJg==} peerDependencies: core-js: '>=3.12.1' dependencies: - core-js: 3.35.1 + core-js: 3.36.0 eventemitter3: 4.0.7 dev: false - /xgplayer@3.0.11(core-js@3.35.1): - resolution: {integrity: sha512-n7qpUG46IVjcYWCFq9WLe4OQpIZvtT67lObu6RPgxbMm8IMGCscTVdbWQjRbgrlsvTVfes3zTfjyaymuS5g17g==} + /xgplayer@3.0.13(core-js@3.36.0): + resolution: {integrity: sha512-tHmwsB49J5mYuGd+JjaILoJB/m+M7F5BxwjBaAWJ/PIEtYuhN69rOkkdph2/pzAg4to1rhwMPVTklIoXYd6xKw==} peerDependencies: core-js: '>=3.12.1' dependencies: - core-js: 3.35.1 + core-js: 3.36.0 danmu.js: 1.1.13 delegate: 3.2.0 downloadjs: 1.4.7 eventemitter3: 4.0.7 - xgplayer-subtitles: 3.0.11(core-js@3.35.1) + xgplayer-subtitles: 3.0.13(core-js@3.36.0) dev: false /xlsx@0.18.5: @@ -9319,7 +9375,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -9332,7 +9388,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -9345,8 +9401,8 @@ packages: engines: {node: '>=10'} dev: true - /zrender@5.4.4: - resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==} + /zrender@5.5.0: + resolution: {integrity: sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==} dependencies: tslib: 2.3.0 dev: false diff --git a/public/platform-config.json b/public/platform-config.json index fd89ee1c0..b9f859d7a 100644 --- a/public/platform-config.json +++ b/public/platform-config.json @@ -13,7 +13,7 @@ "Grey": false, "Weak": false, "HideTabs": false, - "HideFooter": true, + "HideFooter": false, "SidebarStatus": true, "EpThemeColor": "#409EFF", "ShowLogo": true, diff --git a/src/api/system.ts b/src/api/system.ts index d7b4cce6b..1518ae060 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -43,3 +43,8 @@ export const getRoleList = (data?: object) => { export const getDeptList = (data?: object) => { return http.request("post", "/dept", { data }); }; + +/** 获取菜单管理列表 */ +export const getMenuList = (data?: object) => { + return http.request("post", "/menu", { data }); +}; diff --git a/src/assets/login/illustration.svg b/src/assets/login/illustration.svg index 288d22a8c..b58ffd08e 100644 --- a/src/assets/login/illustration.svg +++ b/src/assets/login/illustration.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/components/ReAnimateSelector/src/index.vue b/src/components/ReAnimateSelector/src/index.vue index ed39fd2a1..2a5ce617d 100644 --- a/src/components/ReAnimateSelector/src/index.vue +++ b/src/components/ReAnimateSelector/src/index.vue @@ -1,12 +1,19 @@ @@ -24,6 +26,6 @@ const TITLE = getConfig("Title"); justify-content: center; width: 100%; padding: 0 0 8px; - color: #c0c4cc; + font-size: 14px; } diff --git a/src/layout/components/notice/data.ts b/src/layout/components/notice/data.ts index 047f65ae7..0fbb6be56 100644 --- a/src/layout/components/notice/data.ts +++ b/src/layout/components/notice/data.ts @@ -4,7 +4,7 @@ export interface ListItem { datetime: string; type: string; description: string; - status?: "" | "success" | "warning" | "info" | "danger"; + status?: "primary" | "success" | "warning" | "info" | "danger"; extra?: string; } diff --git a/src/layout/components/search/components/SearchResult.vue b/src/layout/components/search/components/SearchResult.vue index fd63c1a9c..46bd9ee0c 100644 --- a/src/layout/components/search/components/SearchResult.vue +++ b/src/layout/components/search/components/SearchResult.vue @@ -115,7 +115,7 @@ defineExpose({ handleScroll }); cursor: pointer; border: 0.1px solid #ccc; border-radius: 4px; - transition: all 0.3s; + transition: font-size 0.16s; &-title { display: flex; diff --git a/src/layout/components/sidebar/leftCollapse.vue b/src/layout/components/sidebar/leftCollapse.vue index f72be40b2..2f1dad33d 100644 --- a/src/layout/components/sidebar/leftCollapse.vue +++ b/src/layout/components/sidebar/leftCollapse.vue @@ -1,7 +1,8 @@ @@ -29,6 +29,6 @@ watch(icon, () => { - + diff --git a/src/views/components/dialog/index.vue b/src/views/components/dialog/index.vue index ea35b73d9..15086a964 100644 --- a/src/views/components/dialog/index.vue +++ b/src/views/components/dialog/index.vue @@ -203,7 +203,7 @@ function onCloseCallBackClick() { } else if (args?.command === "sure") { text = "您点击了确定按钮"; } else { - text = "您点击了右上角关闭按钮或者空白页"; + text = "您点击了右上角关闭按钮或空白页或按下了esc键"; } message(text); }, @@ -301,7 +301,9 @@ function onFormOneClick() { } else if (args?.command === "sure") { message(`您点击了确定按钮,当前表单数据为 ${text}`); } else { - message(`您点击了右上角关闭按钮或者空白页,当前表单数据为 ${text}`); + message( + `您点击了右上角关闭按钮或空白页或按下了esc键,当前表单数据为 ${text}` + ); } } }); diff --git a/src/views/components/tag.vue b/src/views/components/tag.vue index d098f9277..07927e988 100644 --- a/src/views/components/tag.vue +++ b/src/views/components/tag.vue @@ -12,8 +12,8 @@ const checked2 = ref(false); const baseTag = ref("dark"); const tagList = ref([ { - type: "", - text: "Default" + type: "primary", + text: "Primary" }, { type: "success", diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 20ff66fe3..59b9f3187 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -323,6 +323,18 @@ watch(loginDay, value => { +
+ Copyright © 2020-present + +  {{ title }} + +
diff --git a/src/views/permission/button/index.vue b/src/views/permission/button/index.vue index 5b7ca259f..e71fc4278 100644 --- a/src/views/permission/button/index.vue +++ b/src/views/permission/button/index.vue @@ -15,19 +15,26 @@ defineOptions({
组件方式判断权限
- + - 拥有code:'btn_add' 权限可见 + 拥有code:'permission:btn:add' 权限可见 - + - 拥有code:['btn_edit'] 权限可见 + 拥有code:['permission:btn:edit'] 权限可见 - + - 拥有code:['btn_add', 'btn_edit', 'btn_delete'] 权限可见 + 拥有code:['permission:btn:add', 'permission:btn:edit', + 'permission:btn:delete'] 权限可见 @@ -38,18 +45,25 @@ defineOptions({
函数方式判断权限
- - 拥有code:'btn_add' 权限可见 + + 拥有code:'permission:btn:add' 权限可见 - - 拥有code:['btn_edit'] 权限可见 + + 拥有code:['permission:btn:edit'] 权限可见 - 拥有code:['btn_add', 'btn_edit', 'btn_delete'] 权限可见 + 拥有code:['permission:btn:add', 'permission:btn:edit', + 'permission:btn:delete'] 权限可见 @@ -61,18 +75,23 @@ defineOptions({ - - 拥有code:'btn_add' 权限可见 + + 拥有code:'permission:btn:add' 权限可见 - - 拥有code:['btn_edit'] 权限可见 + + 拥有code:['permission:btn:edit'] 权限可见 - 拥有code:['btn_add', 'btn_edit', 'btn_delete'] 权限可见 + 拥有code:['permission:btn:add', 'permission:btn:edit', + 'permission:btn:delete'] 权限可见 diff --git a/src/views/pure-table/base/filters.vue b/src/views/pure-table/base/filters.vue index 6c1765857..a24f0a141 100644 --- a/src/views/pure-table/base/filters.vue +++ b/src/views/pure-table/base/filters.vue @@ -95,7 +95,10 @@ const tableData = [ :columns="columns" > diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 91946b7ae..1df7d9115 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -89,7 +89,7 @@ const { - 新增 + 修改 - 修改 + 新增 diff --git a/src/views/system/menu/utils/enums.ts b/src/views/system/menu/utils/enums.ts new file mode 100644 index 000000000..6eb3d5d6f --- /dev/null +++ b/src/views/system/menu/utils/enums.ts @@ -0,0 +1,94 @@ +import type { OptionsType } from "@/components/ReSegmented"; + +const menuTypeOptions: Array = [ + { + label: "菜单", + value: 0 + }, + { + label: "iframe", + value: 1 + }, + { + label: "外链", + value: 2 + }, + { + label: "按钮", + value: 3 + } +]; + +const showLinkOptions: Array = [ + { + label: "显示", + tip: "会在菜单中显示", + value: true + }, + { + label: "隐藏", + tip: "不会在菜单中显示", + value: false + } +]; + +const keepAliveOptions: Array = [ + { + label: "缓存", + tip: "会保存该页面的整体状态,刷新后会清空状态", + value: true + }, + { + label: "不缓存", + tip: "不会保存该页面的整体状态", + value: false + } +]; + +const hiddenTagOptions: Array = [ + { + label: "允许", + tip: "当前菜单名称或自定义信息允许添加到标签页", + value: false + }, + { + label: "禁止", + tip: "当前菜单名称或自定义信息禁止添加到标签页", + value: true + } +]; + +const showParentOptions: Array = [ + { + label: "显示", + tip: "会显示父级菜单", + value: true + }, + { + label: "隐藏", + tip: "不会显示父级菜单", + value: false + } +]; + +const frameLoadingOptions: Array = [ + { + label: "开启", + tip: "有首次加载动画", + value: true + }, + { + label: "关闭", + tip: "无首次加载动画", + value: false + } +]; + +export { + menuTypeOptions, + showLinkOptions, + keepAliveOptions, + hiddenTagOptions, + showParentOptions, + frameLoadingOptions +}; diff --git a/src/views/system/menu/utils/hook.tsx b/src/views/system/menu/utils/hook.tsx new file mode 100644 index 000000000..bf6820ce8 --- /dev/null +++ b/src/views/system/menu/utils/hook.tsx @@ -0,0 +1,223 @@ +import editForm from "../form.vue"; +import { handleTree } from "@/utils/tree"; +import { message } from "@/utils/message"; +import { getMenuList } from "@/api/system"; +import { transformI18n } from "@/plugins/i18n"; +import { addDialog } from "@/components/ReDialog"; +import { reactive, ref, onMounted, h } from "vue"; +import type { FormItemProps } from "../utils/types"; +import { cloneDeep, isAllEmpty } from "@pureadmin/utils"; +import { useRenderIcon } from "@/components/ReIcon/src/hooks"; + +export function useMenu() { + const form = reactive({ + title: "" + }); + + const formRef = ref(); + const dataList = ref([]); + const loading = ref(true); + + const getMenuType = (type, text = false) => { + switch (type) { + case 0: + return text ? "菜单" : "primary"; + case 1: + return text ? "iframe" : "warning"; + case 2: + return text ? "外链" : "danger"; + case 3: + return text ? "按钮" : "info"; + } + }; + + const columns: TableColumnList = [ + { + label: "菜单名称", + prop: "title", + align: "left", + cellRenderer: ({ row }) => ( + <> + + {h(useRenderIcon(row.icon), { + style: { paddingTop: "1px" } + })} + + {transformI18n(row.title)} + + ) + }, + { + label: "菜单类型", + prop: "menuType", + width: 100, + cellRenderer: ({ row, props }) => ( + + {getMenuType(row.menuType, true)} + + ) + }, + { + label: "路由路径", + prop: "path" + }, + { + label: "组件路径", + prop: "component", + formatter: ({ path, component }) => + isAllEmpty(component) ? path : component + }, + { + label: "权限标识", + prop: "auths" + }, + { + label: "排序", + prop: "rank", + width: 100 + }, + { + label: "隐藏", + prop: "showLink", + formatter: ({ showLink }) => (showLink ? "否" : "是"), + width: 100 + }, + { + label: "操作", + fixed: "right", + width: 210, + slot: "operation" + } + ]; + + function handleSelectionChange(val) { + console.log("handleSelectionChange", val); + } + + function resetForm(formEl) { + if (!formEl) return; + formEl.resetFields(); + onSearch(); + } + + async function onSearch() { + loading.value = true; + const { data } = await getMenuList(); // 这里是返回一维数组结构,前端自行处理成树结构,返回格式要求:唯一id加父节点parentId,parentId取父节点id + let newData = data; + if (!isAllEmpty(form.title)) { + // 前端搜索菜单名称 + newData = newData.filter(item => + transformI18n(item.title).includes(form.title) + ); + } + dataList.value = handleTree(newData); // 处理成树结构 + setTimeout(() => { + loading.value = false; + }, 500); + } + + function formatHigherMenuOptions(treeList) { + if (!treeList || !treeList.length) return; + const newTreeList = []; + for (let i = 0; i < treeList.length; i++) { + treeList[i].title = transformI18n(treeList[i].title); + formatHigherMenuOptions(treeList[i].children); + newTreeList.push(treeList[i]); + } + return newTreeList; + } + + function openDialog(title = "新增", row?: FormItemProps) { + addDialog({ + title: `${title}菜单`, + props: { + formInline: { + menuType: row?.menuType ?? 0, + higherMenuOptions: formatHigherMenuOptions(cloneDeep(dataList.value)), + parentId: row?.parentId ?? 0, + title: row?.title ?? "", + name: row?.name ?? "", + path: row?.path ?? "", + component: row?.component ?? "", + rank: row?.rank ?? 99, + redirect: row?.redirect ?? "", + icon: row?.icon ?? "", + extraIcon: row?.extraIcon ?? "", + enterTransition: row?.enterTransition ?? "", + leaveTransition: row?.leaveTransition ?? "", + activePath: row?.activePath ?? "", + auths: row?.auths ?? "", + frameSrc: row?.frameSrc ?? "", + frameLoading: row?.frameLoading ?? true, + keepAlive: row?.keepAlive ?? false, + hiddenTag: row?.hiddenTag ?? false, + showLink: row?.showLink ?? true, + showParent: row?.showParent ?? false + } + }, + width: "45%", + draggable: true, + fullscreenIcon: true, + closeOnClickModal: false, + contentRenderer: () => h(editForm, { ref: formRef }), + beforeSure: (done, { options }) => { + const FormRef = formRef.value.getRef(); + const curData = options.props.formInline as FormItemProps; + function chores() { + message( + `您${title}了菜单名称为${transformI18n(curData.title)}的这条数据`, + { + type: "success" + } + ); + done(); // 关闭弹框 + onSearch(); // 刷新表格数据 + } + FormRef.validate(valid => { + if (valid) { + console.log("curData", curData); + // 表单规则校验通过 + if (title === "新增") { + // 实际开发先调用新增接口,再进行下面操作 + chores(); + } else { + // 实际开发先调用修改接口,再进行下面操作 + chores(); + } + } + }); + } + }); + } + + function handleDelete(row) { + message(`您删除了菜单名称为${transformI18n(row.title)}的这条数据`, { + type: "success" + }); + onSearch(); + } + + onMounted(() => { + onSearch(); + }); + + return { + form, + loading, + columns, + dataList, + /** 搜索 */ + onSearch, + /** 重置 */ + resetForm, + /** 新增、修改菜单 */ + openDialog, + /** 删除菜单 */ + handleDelete, + handleSelectionChange + }; +} diff --git a/src/views/system/menu/utils/rule.ts b/src/views/system/menu/utils/rule.ts new file mode 100644 index 000000000..90b354893 --- /dev/null +++ b/src/views/system/menu/utils/rule.ts @@ -0,0 +1,10 @@ +import { reactive } from "vue"; +import type { FormRules } from "element-plus"; + +/** 自定义表单规则校验 */ +export const formRules = reactive({ + title: [{ required: true, message: "菜单名称为必填项", trigger: "blur" }], + name: [{ required: true, message: "路由名称为必填项", trigger: "blur" }], + path: [{ required: true, message: "路由路径为必填项", trigger: "blur" }], + auths: [{ required: true, message: "权限标识为必填项", trigger: "blur" }] +}); diff --git a/src/views/system/menu/utils/types.ts b/src/views/system/menu/utils/types.ts new file mode 100644 index 000000000..7259825c5 --- /dev/null +++ b/src/views/system/menu/utils/types.ts @@ -0,0 +1,29 @@ +interface FormItemProps { + /** 菜单类型(0代表菜单、1代表iframe、2代表外链、3代表按钮)*/ + menuType: number; + higherMenuOptions: Record[]; + parentId: number; + title: string; + name: string; + path: string; + component: string; + rank: number; + redirect: string; + icon: string; + extraIcon: string; + enterTransition: string; + leaveTransition: string; + activePath: string; + auths: string; + frameSrc: string; + frameLoading: boolean; + keepAlive: boolean; + hiddenTag: boolean; + showLink: boolean; + showParent: boolean; +} +interface FormProps { + formInline: FormItemProps; +} + +export type { FormItemProps, FormProps }; diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 3195bd8ad..f9baf102f 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -108,6 +108,7 @@ const { :loading="loading" :size="size" adaptive + :adaptiveConfig="{ offsetBottom: 108 }" :data="dataList" :columns="dynamicColumns" :pagination="pagination" @@ -206,6 +207,10 @@ const { margin: 0; } +.main-content { + margin: 24px 24px 0 !important; +} + .search-form { :deep(.el-form-item) { margin-bottom: 12px; diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 556f0cecd..9b2786ee9 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -150,6 +150,7 @@ const { ref="tableRef" row-key="id" adaptive + :adaptiveConfig="{ offsetBottom: 108 }" align-whole="center" table-layout="auto" :loading="loading" @@ -260,6 +261,10 @@ const { outline: none; } +.main-content { + margin: 24px 24px 0 !important; +} + .search-form { :deep(.el-form-item) { margin-bottom: 12px; diff --git a/src/views/system/user/tree.vue b/src/views/system/user/tree.vue index 48384c750..78c3b7cf8 100644 --- a/src/views/system/user/tree.vue +++ b/src/views/system/user/tree.vue @@ -96,7 +96,7 @@ defineExpose({ onTreeReset });
( {row.sex === 1 ? "女" : "男"} From 816c2fa539f1fe276390bc6d171440e40f7cede1 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Mon, 26 Feb 2024 23:02:43 +0800 Subject: [PATCH 014/102] release: update `5.0.0` --- CHANGELOG.en_US.md | 93 +++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 93 +++++++++++++++++++++++++++++++++++++ CHANGELOG.zh_CN.md | 93 +++++++++++++++++++++++++++++++++++++ package.json | 2 +- public/platform-config.json | 2 +- 5 files changed, 281 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.en_US.md b/CHANGELOG.en_US.md index 283cce141..bdc924b64 100644 --- a/CHANGELOG.en_US.md +++ b/CHANGELOG.en_US.md @@ -1,3 +1,96 @@ +# 5.0.0 (2024-02-26) + +Totally `ESM` version + +### ✔️refactor + +- Upgrade `vite` to `v5` version, specify `node` version `>18.18.0`, `pnpm` version `>=8.6.10` +- Use [vite-plugin-fake-server](https://www.npmjs.com/package/vite-plugin-fake-server) to replace [vite-plugin-mock](https://www.npmjs.com/package/vite-plugin-mock), use [@faker-js/faker](https://www.npmjs.com/package/@faker-js/faker) to replace [mockjs](https://www.npmjs.com/package/mockjs) +- Rename `tailwind.config.js` to `tailwind.config.ts` and update its file to `esm` syntax +- Updated `.prettierrc.js` file to `esm` syntax +- Updated `postcss.config.js` file to `esm` syntax +- Updated `commitlint.config.js` file to `esm` syntax +- Use `eslint.config.js` to replace `.eslintrc.js` and follow `esm` syntax +- Upgrade `stylelint` to `16` version and follow `esm` syntax +- All `search` search icons are uniformly replaced with `@iconify-icons/ri/search-line` which is more commonly used and put into the global offline icon +- Removed the filter effect of `iframe` in dark mode +- Bring a more beautiful and refined homepage +- Cleaner and neater pop-up panel on the right side of project configuration +- Restructure the About page to make it more compact and key information more prominent + +### 🎫Feat + +- Add system management-menu management +- Improve system management-user management +- Embedded `iframe` pages support setting `keepAlive` to maintain page status +- Optimized navigation, the pop-up menu is adaptive and scrollable beyond the content area +- Added file upload example +- Added overall style adaptive operating system light, dark, and automatic theme functions +- Add footer +- Supports multi-tab pages to open systems that have already been logged in without logging in again and adds an internal login-free function (users can choose the number of days without login) +- Terminal command line that brings a high-level feel +- Add audio visualization function example +- Added video frame interception - `WebAssembly` version, supports `MP4`, `MOV`, `AVI`, `WebM`, `MKV` and other mainstream formats +- Added methods to block keyboard `F12`, browser default right-click menu, page element selection, and picture default draggability +- The secondary package `localforage` supports setting expiration time and provides complete type prompts +- Add `AnimateCss` selector component `ReAnimateSelector` +- Added `ReText` component, supports automatic omission and display of `Tooltip` function, supports multi-line omission, high reusability +- Add an art drawing board function, which can be used to draw some design idea architecture diagrams, for example +- New component - optional button example +- Add common button examples +- Added color picker component example +- Add date picker component example +- Added datetime picker example +- Added time selector example +- Added statistics component example +- Add label component example +- Added accordion panel component example +- Add progress bar component example +- Upgrade `Swiper 11` +- Add [vite-plugin-router-warn](https://www.npmjs.com/package/vite-plugin-router-warn) plug-in to eliminate unnecessary `vue-router` dynamic routing warning`No match found for location with path` + +### 🐞 Bug fixes + +- Fixed the problem that in `query` routing parameter passing mode, two `router` jumps will be triggered when clicking the tab page to switch operations. +- Fixed an issue in card tab mode, when passing parameters through the `query` route, the `card-active` attribute still exists after leaving the active tab, resulting in the font color not changing when the mouse `hover` +- Fixed the error in reading and parsing the same name in the `src/layout/components/appMain.vue` file +- Fixed the issue where the height of the embedded page `frameView` does not adapt after hiding the tab page. +- Fixed the problem of invalid routing `meta.transition.name` configuration +- Fixed the problem that the right-click tab page panel cannot be closed when clicking on the `iframe` page and the right-click tab page panel is blocked when on the `iframe` page +- Fixed the problem of missing parameters when clicking on breadcrumbs to jump to the page in routing `query` and `params` modes + +### 🍏Perf + +- Optimize theme color +- Tabs can be slid left or right according to the sliding force +- The interface naming rules are unified into `kebab-case` string naming method +- The `label` of `el-form` is consistent with the global `label` style +- `VITE_PUBLIC_PATH` defaults to `/`, which is more friendly to `VITE_ROUTER_HISTORY` in `h5` mode +- Optimize the `transformI18n` function and support unlimited nesting levels for internationalization (of course, the platform still recommends that the fewer nesting levels, the better) +- When initializing the page, load `pinia` first and then `router`, which is compatible with more usage scenarios. +- Optimize the judgment logic of request whitelist +- The navigation style of the left menu has been adjusted to optimize the different display methods on PC and mobile when there is no logo. +- Upgrade code specification style related libraries to the latest +- Optimize login page `loading` judgment +- Optimize the `IconSelect` icon selector component to improve user experience +- Optimize the segmented controller component and add `v-model` support +- Optimize the method of obtaining platform `logo` +- Upgraded `@pureadmin/theme`, bringing more friendly `esm` support +- Optimize some functions in the `build/info.ts` file to make it friendly and support `esm` +- Optimize the column setting pop-up box of the `PureTableBar` component, set the maximum height, and scroll beyond it +- Optimize the functional pop-up component `ReDialog` to retain the closing animation +- Test the Chinese path and delete the `sass-loader` dependency +- The packaged code is changed to the browser that natively supports [ES2015](https://caniuse.com/es6) by default +- Remove the `stylelint` plug-in dependency that will be automatically installed +- Enhance the way `useRenderIcon` uses local `svg` +- Optimize the style of the expand and collapse buttons in the lower left corner of the left menu under the bright white theme color scheme +- Optimize all `description` contents of `el-empty`. Add `el-empty` when the icon selector content is empty +- The `tooltip` theme after the left menu is collapsed is consistent with the overall menu +- Update `svgo` command to `svgo -f . -r` (compress all `SVG` files in the current directory) +- Optimize project construction related functions +- Enhanced `ReTypeit` component to support slots and all `typeit` configuration items +- Optimize internationalization-related processing logic and add cache during initialization to avoid unnecessary performance consumption + # 4.5.0 (2023-06-26) ### ✔️ refactor diff --git a/CHANGELOG.md b/CHANGELOG.md index 283cce141..bdc924b64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,96 @@ +# 5.0.0 (2024-02-26) + +Totally `ESM` version + +### ✔️refactor + +- Upgrade `vite` to `v5` version, specify `node` version `>18.18.0`, `pnpm` version `>=8.6.10` +- Use [vite-plugin-fake-server](https://www.npmjs.com/package/vite-plugin-fake-server) to replace [vite-plugin-mock](https://www.npmjs.com/package/vite-plugin-mock), use [@faker-js/faker](https://www.npmjs.com/package/@faker-js/faker) to replace [mockjs](https://www.npmjs.com/package/mockjs) +- Rename `tailwind.config.js` to `tailwind.config.ts` and update its file to `esm` syntax +- Updated `.prettierrc.js` file to `esm` syntax +- Updated `postcss.config.js` file to `esm` syntax +- Updated `commitlint.config.js` file to `esm` syntax +- Use `eslint.config.js` to replace `.eslintrc.js` and follow `esm` syntax +- Upgrade `stylelint` to `16` version and follow `esm` syntax +- All `search` search icons are uniformly replaced with `@iconify-icons/ri/search-line` which is more commonly used and put into the global offline icon +- Removed the filter effect of `iframe` in dark mode +- Bring a more beautiful and refined homepage +- Cleaner and neater pop-up panel on the right side of project configuration +- Restructure the About page to make it more compact and key information more prominent + +### 🎫Feat + +- Add system management-menu management +- Improve system management-user management +- Embedded `iframe` pages support setting `keepAlive` to maintain page status +- Optimized navigation, the pop-up menu is adaptive and scrollable beyond the content area +- Added file upload example +- Added overall style adaptive operating system light, dark, and automatic theme functions +- Add footer +- Supports multi-tab pages to open systems that have already been logged in without logging in again and adds an internal login-free function (users can choose the number of days without login) +- Terminal command line that brings a high-level feel +- Add audio visualization function example +- Added video frame interception - `WebAssembly` version, supports `MP4`, `MOV`, `AVI`, `WebM`, `MKV` and other mainstream formats +- Added methods to block keyboard `F12`, browser default right-click menu, page element selection, and picture default draggability +- The secondary package `localforage` supports setting expiration time and provides complete type prompts +- Add `AnimateCss` selector component `ReAnimateSelector` +- Added `ReText` component, supports automatic omission and display of `Tooltip` function, supports multi-line omission, high reusability +- Add an art drawing board function, which can be used to draw some design idea architecture diagrams, for example +- New component - optional button example +- Add common button examples +- Added color picker component example +- Add date picker component example +- Added datetime picker example +- Added time selector example +- Added statistics component example +- Add label component example +- Added accordion panel component example +- Add progress bar component example +- Upgrade `Swiper 11` +- Add [vite-plugin-router-warn](https://www.npmjs.com/package/vite-plugin-router-warn) plug-in to eliminate unnecessary `vue-router` dynamic routing warning`No match found for location with path` + +### 🐞 Bug fixes + +- Fixed the problem that in `query` routing parameter passing mode, two `router` jumps will be triggered when clicking the tab page to switch operations. +- Fixed an issue in card tab mode, when passing parameters through the `query` route, the `card-active` attribute still exists after leaving the active tab, resulting in the font color not changing when the mouse `hover` +- Fixed the error in reading and parsing the same name in the `src/layout/components/appMain.vue` file +- Fixed the issue where the height of the embedded page `frameView` does not adapt after hiding the tab page. +- Fixed the problem of invalid routing `meta.transition.name` configuration +- Fixed the problem that the right-click tab page panel cannot be closed when clicking on the `iframe` page and the right-click tab page panel is blocked when on the `iframe` page +- Fixed the problem of missing parameters when clicking on breadcrumbs to jump to the page in routing `query` and `params` modes + +### 🍏Perf + +- Optimize theme color +- Tabs can be slid left or right according to the sliding force +- The interface naming rules are unified into `kebab-case` string naming method +- The `label` of `el-form` is consistent with the global `label` style +- `VITE_PUBLIC_PATH` defaults to `/`, which is more friendly to `VITE_ROUTER_HISTORY` in `h5` mode +- Optimize the `transformI18n` function and support unlimited nesting levels for internationalization (of course, the platform still recommends that the fewer nesting levels, the better) +- When initializing the page, load `pinia` first and then `router`, which is compatible with more usage scenarios. +- Optimize the judgment logic of request whitelist +- The navigation style of the left menu has been adjusted to optimize the different display methods on PC and mobile when there is no logo. +- Upgrade code specification style related libraries to the latest +- Optimize login page `loading` judgment +- Optimize the `IconSelect` icon selector component to improve user experience +- Optimize the segmented controller component and add `v-model` support +- Optimize the method of obtaining platform `logo` +- Upgraded `@pureadmin/theme`, bringing more friendly `esm` support +- Optimize some functions in the `build/info.ts` file to make it friendly and support `esm` +- Optimize the column setting pop-up box of the `PureTableBar` component, set the maximum height, and scroll beyond it +- Optimize the functional pop-up component `ReDialog` to retain the closing animation +- Test the Chinese path and delete the `sass-loader` dependency +- The packaged code is changed to the browser that natively supports [ES2015](https://caniuse.com/es6) by default +- Remove the `stylelint` plug-in dependency that will be automatically installed +- Enhance the way `useRenderIcon` uses local `svg` +- Optimize the style of the expand and collapse buttons in the lower left corner of the left menu under the bright white theme color scheme +- Optimize all `description` contents of `el-empty`. Add `el-empty` when the icon selector content is empty +- The `tooltip` theme after the left menu is collapsed is consistent with the overall menu +- Update `svgo` command to `svgo -f . -r` (compress all `SVG` files in the current directory) +- Optimize project construction related functions +- Enhanced `ReTypeit` component to support slots and all `typeit` configuration items +- Optimize internationalization-related processing logic and add cache during initialization to avoid unnecessary performance consumption + # 4.5.0 (2023-06-26) ### ✔️ refactor diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index fbf1c6b1e..5276ca7a9 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,3 +1,96 @@ +# 5.0.0 (2024-02-26) + +全面`ESM`版本 + +### ✔️ refactor + +- 升级`vite`至`v5`版本,规定`node`版本`>18.18.0`,`pnpm`版本`>=8.6.10` +- 使用 [vite-plugin-fake-server](https://www.npmjs.com/package/vite-plugin-fake-server) 替换 [vite-plugin-mock](https://www.npmjs.com/package/vite-plugin-mock),使用 [@faker-js/faker](https://www.npmjs.com/package/@faker-js/faker) 替换 [mockjs](https://www.npmjs.com/package/mockjs) +- 重命名`tailwind.config.js`为`tailwind.config.ts`并更新其文件为`esm`语法 +- 更新`.prettierrc.js`文件为`esm`语法 +- 更新`postcss.config.js`文件为`esm`语法 +- 更新`commitlint.config.js`文件为`esm`语法 +- 使用`eslint.config.js`替换`.eslintrc.js`并遵循`esm`语法 +- 升级`stylelint`至`16`版本并遵循`esm`语法 +- 所有`search`搜索图标统一替换为`@iconify-icons/ri/search-line`它比较常用将其放入全局离线图标中 +- 移除`iframe`在暗模式下的滤镜效果 +- 带来更美观精致的首页 +- 更干净整洁的项目配置右侧弹出面板 +- 重构关于页面,整体更紧致,关键信息更突出 + +### 🎫 Feat + +- 添加系统管理-菜单管理 +- 完善系统管理-用户管理 +- 内嵌`iframe`页支持设置`keepAlive`,保持页面状态 +- 优化导航,弹出的菜单超出内容区自适应且可滚动 +- 添加文件上传示例 +- 添加整体风格自适应操作系统浅色、深色、自动主题功能 +- 添加页脚 +- 支持多标签页打开已经登录的系统后无需再登录并添加内免登录功能(用户可选择免登录的天数) +- 带来高级感的终端命令行 +- 添加音频可视化功能示例 +- 添加视频帧截取-`WebAssembly`版,支持`MP4`、`MOV`、`AVI`、`WebM`、`MKV`等主流格式 +- 添加阻止键盘`F12`、浏览器默认右键菜单、页面元素选中、图片默认可拖动方法 +- 二次封装`localforage`支持设置过期时间,提供完整的类型提示 +- 添加`AnimateCss`选择器组件`ReAnimateSelector` +- 添加`ReText`组件,支持自动省略显示`Tooltip`功能, 支持多行省略, 高可复用性 +- 添加艺术画板功能,比如可以用来绘制一些设计思想架构图 +- 新增组件-可选按钮示例 +- 添加常用按钮示例 +- 添加颜色选择器组件示例 +- 添加日期选择器组件示例 +- 添加日期时间选择器示例 +- 添加时间选择(器)示例 +- 添加统计组件示例 +- 添加标签组件示例 +- 添加折叠面板组件示例 +- 添加进度条组件示例 +- 升级`Swiper 11` +- 添加 [vite-plugin-router-warn](https://www.npmjs.com/package/vite-plugin-router-warn) 插件,根治非必要的`vue-router`动态路由警告`No match found for location with path` + +### 🐞 Bug fixes + +- 修复`query`路由传参模式下,点击标签页进行切换操作时会触发两次`router`跳转问题 +- 修复卡片标签页模式下,通过`query`路由传参时,离开激活的标签后仍存在`card-active`属性,导致鼠标`hover`时字体颜色未改变 +- 修复`src/layout/components/appMain.vue`文件中同名词读取解析错误 +- 修复内嵌页面`frameView`在隐藏标签页后高度没有自适应 +- 修复路由`meta.transition.name`配置无效的问题 +- 修复点击`iframe`页面无法关闭右键标签页面板以及在`iframe`页面时右键标签页面板被遮挡的问题 +- 修复在路由`query`、`params`模式下点击面包屑跳转页面少参问题 + +### 🍏 Perf + +- 优化主题色 +- 标签页可按滑动力度进行左右滑动 +- 接口命名规则统一为`kebab-case`串式命名法 +- `el-form`的`label`和全局的`label`样式保持一致 +- `VITE_PUBLIC_PATH`默认还原为 `/` 对`VITE_ROUTER_HISTORY`为`h5`模式更友好 +- 优化`transformI18n`函数,国际化支持无限嵌套级别(当然平台还是推荐嵌套层级越少越好) +- 页面初始化时先加载`pinia`再加载`router`,兼容更多使用场景 +- 优化请求白名单的判断逻辑 +- 左侧菜单导航样式调整,优化有无`logo`时`pc`端和移动端不同的展示方式 +- 升级代码规范风格相关库至最新 +- 优化登录页`loading`判断 +- 优化`IconSelect`图标选择器组件,提升用户体验 +- 优化分段控制器组件,添加`v-model`支持 +- 优化平台`logo`获取方式 +- 升级`@pureadmin/theme`,带来了更友好的`esm`支持 +- 优化`build/info.ts`文件中的一些函数,使其友好支持`esm` +- 优化`PureTableBar`组件的列设置弹出框,设置最大高度,超出可滚动 +- 优化函数式弹框组件`ReDialog`保留关闭动画 +- 对中文路径做测试,删除`sass-loader`依赖 +- 打包后的代码改为默认原生支持 [ES2015](https://caniuse.com/es6) 的浏览器 +- 删除会自动安装的`stylelint`插件依赖 +- 增强`useRenderIcon`使用本地`svg`的方式 +- 优化左侧菜单最左下角的展开、折叠按钮在亮白主题配色下的样式 +- 优化所有`el-empty`的`description`内容。图标选择器内容为空时加上`el-empty` +- 左侧菜单折叠后的`tooltip`主题与整体菜单保持统一 +- 更新`svgo`命令为`svgo -f . -r`(压缩当前目录下的所有`SVG`文件) +- 优化项目构建相关函数 +- 增强`ReTypeit`组件,支持插槽以及所有`typeit`配置项 +- 优化国际化相关处理逻辑,初始化时添加缓存以避免不必要的性能消耗 + # 4.5.0 (2023-06-26) ### ✔️ refactor diff --git a/package.json b/package.json index b6000d9da..696f16711 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-pure-admin", - "version": "4.5.0", + "version": "5.0.0", "private": true, "type": "module", "scripts": { diff --git a/public/platform-config.json b/public/platform-config.json index b9f859d7a..d48bce2cb 100644 --- a/public/platform-config.json +++ b/public/platform-config.json @@ -1,5 +1,5 @@ { - "Version": "4.5.0", + "Version": "5.0.0", "Title": "PureAdmin", "FixedHeader": true, "HiddenSideBar": false, From 7009a161802784c2821daee46b71d44d13eac18c Mon Sep 17 00:00:00 2001 From: windyeasy Date: Tue, 27 Feb 2024 23:09:04 +0800 Subject: [PATCH 015/102] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D`windows`?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E4=B8=8B=E7=99=BB=E5=BD=95=E9=A1=B5=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E6=BB=9A=E5=8A=A8=E6=9D=A1=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20(#940)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/style/login.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/style/login.css b/src/style/login.css index 34fe9770c..c603e87f7 100644 --- a/src/style/login.css +++ b/src/style/login.css @@ -10,6 +10,7 @@ .login-container { width: 100vw; height: 100vh; + max-width: 100%; display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 18rem; From 760eac1c4d7bf7b2d4d5413601b56fe2b5365cbc Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Wed, 28 Feb 2024 14:36:50 +0800 Subject: [PATCH 016/102] =?UTF-8?q?perf:=20=E8=A7=84=E8=8C=83=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E6=9C=AC=E5=9C=B0=E5=9B=BE=E6=A0=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E8=A7=84=E5=88=99=EF=BC=8C=E4=BD=BF=E5=85=B6?= =?UTF-8?q?=E6=9B=B4=E5=A5=BD=E5=9C=B0=E9=85=8D=E5=90=88=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ReIcon/src/offlineIcon.ts | 89 ++++++++++---------- src/layout/components/search/index.vue | 2 +- src/layout/types.ts | 2 +- src/router/modules/able.ts | 2 +- src/router/modules/about.ts | 2 +- src/router/modules/board.ts | 2 +- src/router/modules/editor.ts | 2 +- src/router/modules/error.ts | 2 +- src/router/modules/flowchart.ts | 2 +- src/router/modules/formdesign.ts | 2 +- src/router/modules/guide.ts | 2 +- src/router/modules/home.ts | 2 +- src/router/modules/list.ts | 4 +- src/router/modules/nested.ts | 2 +- src/router/modules/ppt.ts | 2 +- src/router/modules/result.ts | 2 +- src/router/modules/table.ts | 2 +- src/views/components/segmented.vue | 6 +- src/views/list/card/index.vue | 2 +- src/views/system/dept/index.vue | 2 +- src/views/system/menu/index.vue | 2 +- src/views/system/role/index.vue | 2 +- src/views/system/user/index.vue | 2 +- src/views/system/user/tree.vue | 2 +- src/views/welcome/components/table/index.vue | 2 +- 25 files changed, 71 insertions(+), 72 deletions(-) diff --git a/src/components/ReIcon/src/offlineIcon.ts b/src/components/ReIcon/src/offlineIcon.ts index 6b27c348e..ceca7220b 100644 --- a/src/components/ReIcon/src/offlineIcon.ts +++ b/src/components/ReIcon/src/offlineIcon.ts @@ -1,55 +1,54 @@ +// 这里存放本地图标,在 src/layout/index.vue 文件中加载,避免在首启动加载 import { addIcon } from "@iconify/vue/dist/offline"; -/** - * 这里存放本地图标,在 src/layout/index.vue 文件中加载,避免在首启动加载 - */ - -// 本地菜单图标,后端在路由的icon中返回对应的图标字符串并且前端在此处使用addIcon添加即可渲染菜单图标 -import UbuntuFill from "@iconify-icons/ri/ubuntu-fill"; +// 本地菜单图标,后端在路由的 icon 中返回对应的图标字符串并且前端在此处使用 addIcon 添加即可渲染菜单图标 +// @iconify-icons/ep import Menu from "@iconify-icons/ep/menu"; import Edit from "@iconify-icons/ep/edit"; -import InformationLine from "@iconify-icons/ri/information-line"; import SetUp from "@iconify-icons/ep/set-up"; -import TerminalWindowLine from "@iconify-icons/ri/terminal-window-line"; import Guide from "@iconify-icons/ep/guide"; -import HomeFilled from "@iconify-icons/ep/home-filled"; -import Card from "@iconify-icons/ri/bank-card-line"; -import ListCheck from "@iconify-icons/ri/list-check"; -import Histogram from "@iconify-icons/ep/histogram"; -import Ppt from "@iconify-icons/ri/file-ppt-2-line"; -import CheckboxCircleLine from "@iconify-icons/ri/checkbox-circle-line"; -import FlUser from "@iconify-icons/ri/admin-line"; -import Role from "@iconify-icons/ri/admin-fill"; -import Setting from "@iconify-icons/ri/settings-3-line"; -import Dept from "@iconify-icons/ri/git-branch-line"; -import Search from "@iconify-icons/ri/search-line"; -import Lollipop from "@iconify-icons/ep/lollipop"; import Monitor from "@iconify-icons/ep/monitor"; -import Tag from "@iconify-icons/ri/bookmark-2-line"; -import Table from "@iconify-icons/ri/table-line"; -import Info from "@iconify-icons/ri/file-info-line"; -import Artboard from "@iconify-icons/ri/artboard-line"; -addIcon("ubuntuFill", UbuntuFill); +import Lollipop from "@iconify-icons/ep/lollipop"; +import Histogram from "@iconify-icons/ep/histogram"; +import HomeFilled from "@iconify-icons/ep/home-filled"; addIcon("ep:menu", Menu); -addIcon("edit", Edit); -addIcon("informationLine", InformationLine); -addIcon("setUp", SetUp); -addIcon("terminalWindowLine", TerminalWindowLine); -addIcon("guide", Guide); -addIcon("homeFilled", HomeFilled); -addIcon("card", Card); -addIcon("listCheck", ListCheck); -addIcon("histogram", Histogram); -addIcon("ppt", Ppt); -addIcon("checkboxCircleLine", CheckboxCircleLine); -addIcon("ri:admin-line", FlUser); -addIcon("ri:admin-fill", Role); -addIcon("ri:settings-3-line", Setting); -addIcon("ri:git-branch-line", Dept); -addIcon("search", Search); -addIcon("ep:lollipop", Lollipop); +addIcon("ep:edit", Edit); +addIcon("ep:set-up", SetUp); +addIcon("ep:guide", Guide); addIcon("ep:monitor", Monitor); +addIcon("ep:lollipop", Lollipop); +addIcon("ep:histogram", Histogram); +addIcon("ep:home-filled", HomeFilled); +// @iconify-icons/ri +import Tag from "@iconify-icons/ri/bookmark-2-line"; +import Ppt from "@iconify-icons/ri/file-ppt-2-line"; +import Card from "@iconify-icons/ri/bank-card-line"; +import Role from "@iconify-icons/ri/admin-fill"; +import Info from "@iconify-icons/ri/file-info-line"; +import Dept from "@iconify-icons/ri/git-branch-line"; +import Table from "@iconify-icons/ri/table-line"; +import Search from "@iconify-icons/ri/search-line"; +import FlUser from "@iconify-icons/ri/admin-line"; +import Setting from "@iconify-icons/ri/settings-3-line"; +import Artboard from "@iconify-icons/ri/artboard-line"; +import ListCheck from "@iconify-icons/ri/list-check"; +import UbuntuFill from "@iconify-icons/ri/ubuntu-fill"; +import InformationLine from "@iconify-icons/ri/information-line"; +import TerminalWindowLine from "@iconify-icons/ri/terminal-window-line"; +import CheckboxCircleLine from "@iconify-icons/ri/checkbox-circle-line"; addIcon("ri:bookmark-2-line", Tag); -addIcon("table", Table); -addIcon("info", Info); -addIcon("artboard", Artboard); +addIcon("ri:file-ppt-2-line", Ppt); +addIcon("ri:bank-card-line", Card); +addIcon("ri:admin-fill", Role); +addIcon("ri:file-info-line", Info); +addIcon("ri:git-branch-line", Dept); +addIcon("ri:table-line", Table); +addIcon("ri:search-line", Search); +addIcon("ri:admin-line", FlUser); +addIcon("ri:settings-3-line", Setting); +addIcon("ri:artboard-line", Artboard); +addIcon("ri:list-check", ListCheck); +addIcon("ri:ubuntu-fill", UbuntuFill); +addIcon("ri:information-line", InformationLine); +addIcon("ri:terminal-window-line", TerminalWindowLine); +addIcon("ri:checkbox-circle-line", CheckboxCircleLine); diff --git a/src/layout/components/search/index.vue b/src/layout/components/search/index.vue index a4755819c..2a13dae8e 100644 --- a/src/layout/components/search/index.vue +++ b/src/layout/components/search/index.vue @@ -14,7 +14,7 @@ function handleSearch() { class="search-container w-[40px] h-[48px] flex-c cursor-pointer navbar-bg-hover" @click="handleSearch" > - +
diff --git a/src/layout/types.ts b/src/layout/types.ts index 16e818941..69489d183 100644 --- a/src/layout/types.ts +++ b/src/layout/types.ts @@ -8,7 +8,7 @@ export const routerArrays: Array = path: "/welcome", meta: { title: "menus.hshome", - icon: "homeFilled" + icon: "ep:home-filled" } } ] diff --git a/src/router/modules/able.ts b/src/router/modules/able.ts index 488b9e62c..a162bd730 100644 --- a/src/router/modules/able.ts +++ b/src/router/modules/able.ts @@ -5,7 +5,7 @@ export default { path: "/able", redirect: "/able/watermark", meta: { - icon: "ubuntuFill", + icon: "ri:ubuntu-fill", title: $t("menus.hsAble"), rank: able }, diff --git a/src/router/modules/about.ts b/src/router/modules/about.ts index 0ef9cb6cc..d7ab1b0c6 100644 --- a/src/router/modules/about.ts +++ b/src/router/modules/about.ts @@ -5,7 +5,7 @@ export default { path: "/about", redirect: "/about/index", meta: { - icon: "info", + icon: "ri:file-info-line", title: $t("menus.hsAbout"), rank: about }, diff --git a/src/router/modules/board.ts b/src/router/modules/board.ts index 6e9378e6b..26df2724a 100644 --- a/src/router/modules/board.ts +++ b/src/router/modules/board.ts @@ -6,7 +6,7 @@ export default { path: "/board", redirect: "/board/index", meta: { - icon: "artboard", + icon: "ri:artboard-line", title: $t("menus.hsboard"), rank: board }, diff --git a/src/router/modules/editor.ts b/src/router/modules/editor.ts index a66029b62..ea3f372b9 100644 --- a/src/router/modules/editor.ts +++ b/src/router/modules/editor.ts @@ -5,7 +5,7 @@ export default { path: "/editor", redirect: "/editor/index", meta: { - icon: "edit", + icon: "ep:edit", title: $t("menus.hseditor"), rank: editor }, diff --git a/src/router/modules/error.ts b/src/router/modules/error.ts index edc563351..99d0a95aa 100644 --- a/src/router/modules/error.ts +++ b/src/router/modules/error.ts @@ -5,7 +5,7 @@ export default { path: "/error", redirect: "/error/403", meta: { - icon: "informationLine", + icon: "ri:information-line", // showLink: false, title: $t("menus.hsabnormal"), rank: error diff --git a/src/router/modules/flowchart.ts b/src/router/modules/flowchart.ts index db83ad1a0..868cd3866 100644 --- a/src/router/modules/flowchart.ts +++ b/src/router/modules/flowchart.ts @@ -5,7 +5,7 @@ export default { path: "/flow-chart", redirect: "/flow-chart/index", meta: { - icon: "setUp", + icon: "ep:set-up", title: $t("menus.hsflowChart"), rank: flowchart }, diff --git a/src/router/modules/formdesign.ts b/src/router/modules/formdesign.ts index 64a204440..2e7959531 100644 --- a/src/router/modules/formdesign.ts +++ b/src/router/modules/formdesign.ts @@ -6,7 +6,7 @@ export default { path: "/form-design", redirect: "/form-design/index", meta: { - icon: "terminalWindowLine", + icon: "ri:terminal-window-line", title: $t("menus.hsFormDesign"), rank: formdesign }, diff --git a/src/router/modules/guide.ts b/src/router/modules/guide.ts index b456ab69c..b244fcfb1 100644 --- a/src/router/modules/guide.ts +++ b/src/router/modules/guide.ts @@ -5,7 +5,7 @@ export default { path: "/guide", redirect: "/guide/index", meta: { - icon: "guide", + icon: "ep:guide", title: $t("menus.hsguide"), rank: guide }, diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts index a80705b9a..ea10e8b9c 100644 --- a/src/router/modules/home.ts +++ b/src/router/modules/home.ts @@ -9,7 +9,7 @@ export default { component: Layout, redirect: "/welcome", meta: { - icon: "homeFilled", + icon: "ep:home-filled", title: $t("menus.hshome"), rank: home }, diff --git a/src/router/modules/list.ts b/src/router/modules/list.ts index 4bae99dce..d6db1e6fa 100644 --- a/src/router/modules/list.ts +++ b/src/router/modules/list.ts @@ -5,7 +5,7 @@ export default { path: "/list", redirect: "/list/card", meta: { - icon: "listCheck", + icon: "ri:list-check", title: $t("menus.hsList"), rank: list }, @@ -15,7 +15,7 @@ export default { name: "ListCard", component: () => import("@/views/list/card/index.vue"), meta: { - icon: "card", + icon: "ri:bank-card-line", title: $t("menus.hsListCard"), showParent: true } diff --git a/src/router/modules/nested.ts b/src/router/modules/nested.ts index 623f60421..ab9316d5c 100644 --- a/src/router/modules/nested.ts +++ b/src/router/modules/nested.ts @@ -6,7 +6,7 @@ export default { redirect: "/nested/menu1/menu1-1", meta: { title: $t("menus.hsmenus"), - icon: "histogram", + icon: "ep:histogram", rank: nested }, children: [ diff --git a/src/router/modules/ppt.ts b/src/router/modules/ppt.ts index fa640c64e..ba137220f 100644 --- a/src/router/modules/ppt.ts +++ b/src/router/modules/ppt.ts @@ -5,7 +5,7 @@ export default { path: "/ppt", redirect: "/ppt/index", meta: { - icon: "ppt", + icon: "ri:file-ppt-2-line", title: "PPT", rank: ppt }, diff --git a/src/router/modules/result.ts b/src/router/modules/result.ts index fa4db6655..deb87c99e 100644 --- a/src/router/modules/result.ts +++ b/src/router/modules/result.ts @@ -5,7 +5,7 @@ export default { path: "/result", redirect: "/result/success", meta: { - icon: "checkboxCircleLine", + icon: "ri:checkbox-circle-line", title: $t("menus.hsResult"), rank: result }, diff --git a/src/router/modules/table.ts b/src/router/modules/table.ts index 9ea81a7cd..b02329606 100644 --- a/src/router/modules/table.ts +++ b/src/router/modules/table.ts @@ -5,7 +5,7 @@ export default { path: "/pure-table", redirect: "/pure-table/index", meta: { - icon: "table", + icon: "ri:table-line", title: "pure-admin-table", rank: table }, diff --git a/src/views/components/segmented.vue b/src/views/components/segmented.vue index c89376df9..5df2416ce 100644 --- a/src/views/components/segmented.vue +++ b/src/views/components/segmented.vue @@ -86,7 +86,7 @@ const optionsIcon: Array = [ }, { label: "周三", - icon: "terminalWindowLine" + icon: "ri:terminal-window-line" }, { label: "周四" @@ -103,7 +103,7 @@ const optionsOnlyIcon: Array = [ icon: HomeFilled }, { - icon: "terminalWindowLine" + icon: "ri:terminal-window-line" }, { icon: "streamline-emojis:cow-face" @@ -131,7 +131,7 @@ const optionsLabel: Array = [ { label: () => (
- {h(useRenderIcon("terminalWindowLine"), { + {h(useRenderIcon("ri:terminal-window-line"), { class: "m-auto mt-1 w-[18px] h-[18px]" })}

周二

diff --git a/src/views/list/card/index.vue b/src/views/list/card/index.vue index c6961e63e..568176256 100644 --- a/src/views/list/card/index.vue +++ b/src/views/list/card/index.vue @@ -110,7 +110,7 @@ const handleManageProduct = product => { diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 1df7d9115..d9d3e2e7a 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -58,7 +58,7 @@ const { diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index e072cad2c..fe40f7038 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -48,7 +48,7 @@ const { diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index f9baf102f..c5926d194 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -74,7 +74,7 @@ const { diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 9b2786ee9..8b97a28c1 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -95,7 +95,7 @@ const { diff --git a/src/views/system/user/tree.vue b/src/views/system/user/tree.vue index 78c3b7cf8..adcb76843 100644 --- a/src/views/system/user/tree.vue +++ b/src/views/system/user/tree.vue @@ -110,7 +110,7 @@ defineExpose({ onTreeReset }); diff --git a/src/views/welcome/components/table/index.vue b/src/views/welcome/components/table/index.vue index 9e334383d..ab8c1799e 100644 --- a/src/views/welcome/components/table/index.vue +++ b/src/views/welcome/components/table/index.vue @@ -36,7 +36,7 @@ const { loading, columns, dataList, pagination, Empty, onCurrentChange } = circle size="small" :title="`查看序号为${row.id}的详情`" - :icon="useRenderIcon('search')" + :icon="useRenderIcon('ri:search-line')" /> From 51809546ed24c4f96e45c62b632c7df188675b6a Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Thu, 29 Feb 2024 13:12:14 +0800 Subject: [PATCH 017/102] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E5=8D=A1=E7=89=87=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/optimize.ts | 1 + locales/en.yaml | 1 + locales/zh-CN.yaml | 1 + package.json | 1 + pnpm-lock.yaml | 16 ++++++ src/router/modules/components.ts | 10 +++- src/views/components/check-card.vue | 82 +++++++++++++++++++++++++++++ 7 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 src/views/components/check-card.vue diff --git a/build/optimize.ts b/build/optimize.ts index 87bfec1a7..fd7acfb5d 100644 --- a/build/optimize.ts +++ b/build/optimize.ts @@ -37,6 +37,7 @@ const include = [ "@pureadmin/utils", "@wangeditor/editor", "responsive-storage", + "plus-pro-components", "@howdyjs/mouse-menu", "@logicflow/extension", "vue-virtual-scroller", diff --git a/locales/en.yaml b/locales/en.yaml index ce91b53cc..7ff33270d 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -67,6 +67,7 @@ menus: hsCollapse: Collapse hsProgress: Progress hsUpload: File Upload + hsCheckCard: CheckCard hsmenus: MultiLevel Menu hsmenu1: Menu1 hsmenu1-1: Menu1-1 diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index 2875bb638..cc2ed2f61 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -67,6 +67,7 @@ menus: hsCollapse: 折叠面板 hsProgress: 进度条 hsUpload: 文件上传 + hsCheckCard: 多选卡片 hsmenus: 多级菜单 hsmenu1: 菜单1 hsmenu1-1: 菜单1-1 diff --git a/package.json b/package.json index 696f16711..d6c9b1074 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "path": "^0.12.7", "pinia": "^2.1.7", "pinyin-pro": "^3.19.6", + "plus-pro-components": "^0.0.1", "qrcode": "^1.5.3", "qs": "^6.11.2", "responsive-storage": "^2.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85a10a2e7..9b2267185 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,6 +95,9 @@ dependencies: pinyin-pro: specifier: ^3.19.6 version: 3.19.6 + plus-pro-components: + specifier: ^0.0.1 + version: 0.0.1(element-plus@2.5.6)(vue@3.4.14) qrcode: specifier: ^1.5.3 version: 1.5.3 @@ -6709,6 +6712,19 @@ packages: mlly: 1.6.1 pathe: 1.1.2 + /plus-pro-components@0.0.1(element-plus@2.5.6)(vue@3.4.14): + resolution: {integrity: sha512-S4qvM6MF12y/G6ueqvgavVw8hVCIjVeO/Qol9uCiMpEJmxH60CfnfMVrx1mmea0jWquPWXFSk5U/Y1I2ua0BEQ==} + peerDependencies: + element-plus: ^2.3.4 + vue: ^3.2.0 + dependencies: + '@element-plus/icons-vue': 2.3.1(vue@3.4.14) + element-plus: 2.5.6(vue@3.4.14) + lodash-es: 4.17.21 + sortablejs: 1.15.2 + vue: 3.4.14(typescript@5.3.3) + dev: false + /pngjs@5.0.0: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} diff --git a/src/router/modules/components.ts b/src/router/modules/components.ts index 6f3ec1ca1..1d09ac128 100644 --- a/src/router/modules/components.ts +++ b/src/router/modules/components.ts @@ -31,7 +31,15 @@ export default { name: "PureUpload", component: () => import("@/views/components/upload/index.vue"), meta: { - title: $t("menus.hsUpload"), + title: $t("menus.hsUpload") + } + }, + { + path: "/components/check-card", + name: "CheckCard", + component: () => import("@/views/components/check-card.vue"), + meta: { + title: $t("menus.hsCheckCard"), extraIcon: "IF-pure-iconfont-new svg" } }, diff --git a/src/views/components/check-card.vue b/src/views/components/check-card.vue new file mode 100644 index 000000000..a0ab3ec05 --- /dev/null +++ b/src/views/components/check-card.vue @@ -0,0 +1,82 @@ + + + From 2b71e8bd54dcc333cbecac005c3bbc28c84a4412 Mon Sep 17 00:00:00 2001 From: Banana Energy <372728339@qq.com> Date: Fri, 1 Mar 2024 11:38:47 +0800 Subject: [PATCH 018/102] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E6=94=AF?= =?UTF-8?q?=E6=8C=81`a`=E6=A0=87=E7=AD=BE=E5=8F=B3=E9=94=AE=E7=9A=84?= =?UTF-8?q?=E6=89=80=E6=9C=89=E6=B5=8F=E8=A7=88=E5=99=A8=E8=A1=8C=E4=B8=BA?= =?UTF-8?q?=EF=BC=88=E5=9C=A8=E6=96=B0=E6=A0=87=E7=AD=BE=E9=A1=B5=E4=B8=AD?= =?UTF-8?q?=E3=80=81=E6=96=B0=E7=AA=97=E5=8F=A3=E4=B8=AD=E6=89=93=E5=BC=80?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=EF=BC=8C=E6=8B=96=E6=8B=BD=E5=88=B0=E6=96=B0?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E9=A1=B5=E6=89=93=E5=BC=80=E7=AD=89=EF=BC=89?= =?UTF-8?q?=20(#936)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 菜单支持a标签右键的所有浏览器行为(在新标签页中、新窗口中打开链接,拖拽到新标签页打开等) * feat: 修复添加a标签样式问题 * feat: 修复windows下双滚动条问题 * feat: 修复添加a标签样式问题 --- src/layout/components/sidebar/linkItem.vue | 36 ++++++ src/layout/components/sidebar/logo.vue | 1 + src/layout/components/sidebar/sidebarItem.vue | 113 ++++++++++-------- src/layout/types.ts | 1 + src/style/sidebar.scss | 22 ++-- 5 files changed, 116 insertions(+), 57 deletions(-) create mode 100644 src/layout/components/sidebar/linkItem.vue diff --git a/src/layout/components/sidebar/linkItem.vue b/src/layout/components/sidebar/linkItem.vue new file mode 100644 index 000000000..2e0254a0e --- /dev/null +++ b/src/layout/components/sidebar/linkItem.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/layout/components/sidebar/logo.vue b/src/layout/components/sidebar/logo.vue index 1696649a2..e02f5cc71 100644 --- a/src/layout/components/sidebar/logo.vue +++ b/src/layout/components/sidebar/logo.vue @@ -48,6 +48,7 @@ const { title, getLogo } = useNav(); flex-wrap: nowrap; align-items: center; height: 100%; + padding-left: 10px; img { display: inline-block; diff --git a/src/layout/components/sidebar/sidebarItem.vue b/src/layout/components/sidebar/sidebarItem.vue index 37e761fa8..8aa67d777 100644 --- a/src/layout/components/sidebar/sidebarItem.vue +++ b/src/layout/components/sidebar/sidebarItem.vue @@ -1,19 +1,28 @@ - - - + + - - {{ item.field }} - - - - + + {{ item.field }} + + + + +
From d83f28dbd3c05394602b9d6d7427df261ad27080 Mon Sep 17 00:00:00 2001 From: wzc520pyfm <69044080+wzc520pyfm@users.noreply.github.com> Date: Tue, 5 Mar 2024 22:20:41 +0800 Subject: [PATCH 027/102] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=9F=BA?= =?UTF-8?q?=E4=BA=8E`ElTour`=E5=AE=9E=E7=8E=B0=E7=9A=84=E6=BC=AB=E6=B8=B8?= =?UTF-8?q?=E5=BC=8F=E5=BC=95=E5=AF=BC=20(#958)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 添加基于ElTour实现的引导 --- src/style/element-plus.scss | 3 +- src/views/guide/index.vue | 118 ++++++++++++++++++++++-------------- 2 files changed, 73 insertions(+), 48 deletions(-) diff --git a/src/style/element-plus.scss b/src/style/element-plus.scss index 89a103130..165008f6f 100644 --- a/src/style/element-plus.scss +++ b/src/style/element-plus.scss @@ -64,7 +64,7 @@ } } -/* 全局覆盖element-plus的el-dialog、el-drawer、el-message-box、el-notification组件右上角关闭图标和el-upload上传文件列表右侧关闭图标的样式,表现更鲜明 */ +/* 全局覆盖element-plus的el-tour、el-dialog、el-drawer、el-message-box、el-notification组件右上角关闭图标和el-upload上传文件列表右侧关闭图标的样式,表现更鲜明 */ .el-dialog__headerbtn, .el-message-box__headerbtn { &:hover { @@ -75,6 +75,7 @@ } .el-icon { + &.el-tour__close, &.el-dialog__close, &.el-drawer__close, &.el-message-box__close, diff --git a/src/views/guide/index.vue b/src/views/guide/index.vue index a47f74701..38e92af15 100644 --- a/src/views/guide/index.vue +++ b/src/views/guide/index.vue @@ -1,63 +1,75 @@ - 打开引导页 + 打开引导页 (intro.js) + 打开引导页 (el-tour) + + + + From 0f0fbdac517dd2e2ab5c126f07b8c03f4ba2843b Mon Sep 17 00:00:00 2001 From: Leet <76251617+skyline523@users.noreply.github.com> Date: Tue, 5 Mar 2024 22:21:45 +0800 Subject: [PATCH 028/102] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Ev-ripple?= =?UTF-8?q?=E6=8C=87=E4=BB=A4(=E6=B0=B4=E6=B3=A2=E7=BA=B9=E6=95=88?= =?UTF-8?q?=E6=9E=9C)=20(#956)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 新增v-ripple指令(水波纹效果) * feat: 新增波纹demo --- locales/en.yaml | 1 + locales/zh-CN.yaml | 1 + src/directives/index.ts | 1 + src/directives/ripple/index.scss | 48 +++++++ src/directives/ripple/index.ts | 234 +++++++++++++++++++++++++++++++ src/router/modules/able.ts | 9 ++ src/views/able/ripple.vue | 71 ++++++++++ types/global.d.ts | 14 ++ 8 files changed, 379 insertions(+) create mode 100644 src/directives/ripple/index.scss create mode 100644 src/directives/ripple/index.ts create mode 100644 src/views/able/ripple.vue diff --git a/locales/en.yaml b/locales/en.yaml index b9b1b4187..37830a4e3 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -90,6 +90,7 @@ menus: hsMenuTree: Menu Tree hsVideoFrame: Video Frame Capture hsWavesurfer: Audio Visualization + hsRipple: Ripple hsOptimize: Debounce、Throttle、Copy、Longpress Directives hsWatermark: Water Mark hsPrint: Print diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index 800a8bbe2..bb95d6ed3 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -90,6 +90,7 @@ menus: hsMenuTree: 菜单树结构 hsVideoFrame: 视频帧截取-wasm版 hsWavesurfer: 音频可视化 + hsRipple: 波纹(Ripple) hsOptimize: 防抖、截流、复制、长按指令 hsWatermark: 水印 hsPrint: 打印 diff --git a/src/directives/index.ts b/src/directives/index.ts index f4238c9af..3be2c5c1d 100644 --- a/src/directives/index.ts +++ b/src/directives/index.ts @@ -2,3 +2,4 @@ export * from "./auth"; export * from "./copy"; export * from "./longpress"; export * from "./optimize"; +export * from "./ripple"; diff --git a/src/directives/ripple/index.scss b/src/directives/ripple/index.scss new file mode 100644 index 000000000..061c82c9a --- /dev/null +++ b/src/directives/ripple/index.scss @@ -0,0 +1,48 @@ +/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */ +$ripple-animation-transition-in: + transform 0.4s cubic-bezier(0, 0, 0.2, 1), + opacity 0.2s cubic-bezier(0, 0, 0.2, 1) !default; +$ripple-animation-transition-out: opacity 0.5s cubic-bezier(0, 0, 0.2, 1) !default; +$ripple-animation-visible-opacity: 0.25 !default; + +.v-ripple { + &__container { + position: absolute; + top: 0; + left: 0; + z-index: 0; + width: 100%; + height: 100%; + overflow: hidden; + pointer-events: none; + border-radius: inherit; + contain: strict; + } + + &__animation { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + pointer-events: none; + background: currentcolor; + border-radius: 50%; + opacity: 0; + will-change: transform, opacity; + + &--enter { + opacity: 0; + transition: none; + } + + &--in { + opacity: $ripple-animation-visible-opacity; + transition: $ripple-animation-transition-in; + } + + &--out { + opacity: 0; + transition: $ripple-animation-transition-out; + } + } +} diff --git a/src/directives/ripple/index.ts b/src/directives/ripple/index.ts new file mode 100644 index 000000000..06ff25f26 --- /dev/null +++ b/src/directives/ripple/index.ts @@ -0,0 +1,234 @@ +import "./index.scss"; +import { isObject } from "@pureadmin/utils"; +import type { Directive, DirectiveBinding } from "vue"; + +interface RippleOptions { + class?: string; + center?: boolean; + circle?: boolean; +} + +export interface RippleDirectiveBinding + extends Omit { + value?: boolean | { class: string }; + modifiers: { + center?: boolean; + circle?: boolean; + }; +} + +function transform(el: HTMLElement, value: string) { + el.style.transform = value; + el.style.webkitTransform = value; +} + +const calculate = ( + e: PointerEvent, + el: HTMLElement, + value: RippleOptions = {} +) => { + const offset = el.getBoundingClientRect(); + + // 获取点击位置距离 el 的垂直和水平距离 + let localX = e.clientX - offset.left; + let localY = e.clientY - offset.top; + + let radius = 0; + let scale = 0.3; + // 计算点击位置到 el 顶点最远距离,即为圆的最大半径(勾股定理) + if (el._ripple?.circle) { + scale = 0.15; + radius = el.clientWidth / 2; + radius = value.center + ? radius + : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4; + } else { + radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2; + } + + // 中心点坐标 + const centerX = `${(el.clientWidth - radius * 2) / 2}px`; + const centerY = `${(el.clientHeight - radius * 2) / 2}px`; + + // 点击位置坐标 + const x = value.center ? centerX : `${localX - radius}px`; + const y = value.center ? centerY : `${localY - radius}px`; + + return { radius, scale, x, y, centerX, centerY }; +}; + +const ripples = { + show(e: PointerEvent, el: HTMLElement, value: RippleOptions = {}) { + if (!el?._ripple?.enabled) { + return; + } + + // 创建 ripple 元素和 ripple 父元素 + const container = document.createElement("span"); + const animation = document.createElement("span"); + + container.appendChild(animation); + container.className = "v-ripple__container"; + + if (value.class) { + container.className += ` ${value.class}`; + } + + const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value); + + // ripple 圆大小 + const size = `${radius * 2}px`; + + animation.className = "v-ripple__animation"; + animation.style.width = size; + animation.style.height = size; + + el.appendChild(container); + + // 获取目标元素样式表 + const computed = window.getComputedStyle(el); + // 防止 position 被覆盖导致 ripple 位置有问题 + if (computed && computed.position === "static") { + el.style.position = "relative"; + el.dataset.previousPosition = "static"; + } + + animation.classList.add("v-ripple__animation--enter"); + animation.classList.add("v-ripple__animation--visible"); + transform( + animation, + `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})` + ); + animation.dataset.activated = String(performance.now()); + + setTimeout(() => { + animation.classList.remove("v-ripple__animation--enter"); + animation.classList.add("v-ripple__animation--in"); + transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`); + }, 0); + }, + + hide(el: HTMLElement | null) { + if (!el?._ripple?.enabled) return; + + const ripples = el.getElementsByClassName("v-ripple__animation"); + + if (ripples.length === 0) return; + const animation = ripples[ripples.length - 1] as HTMLElement; + + if (animation.dataset.isHiding) return; + else animation.dataset.isHiding = "true"; + + const diff = performance.now() - Number(animation.dataset.activated); + const delay = Math.max(250 - diff, 0); + + setTimeout(() => { + animation.classList.remove("v-ripple__animation--in"); + animation.classList.add("v-ripple__animation--out"); + + setTimeout(() => { + const ripples = el.getElementsByClassName("v-ripple__animation"); + if (ripples.length === 1 && el.dataset.previousPosition) { + el.style.position = el.dataset.previousPosition; + delete el.dataset.previousPosition; + } + + if (animation.parentNode?.parentNode === el) + el.removeChild(animation.parentNode); + }, 300); + }, delay); + } +}; + +function isRippleEnabled(value: any): value is true { + return typeof value === "undefined" || !!value; +} + +function rippleShow(e: PointerEvent) { + const value: RippleOptions = {}; + const element = e.currentTarget as HTMLElement | undefined; + + if (!element?._ripple || element._ripple.touched) return; + + value.center = element._ripple.centered; + if (element._ripple.class) { + value.class = element._ripple.class; + } + + ripples.show(e, element, value); +} + +function rippleHide(e: Event) { + const element = e.currentTarget as HTMLElement | null; + if (!element?._ripple) return; + + window.setTimeout(() => { + if (element._ripple) { + element._ripple.touched = false; + } + }); + ripples.hide(element); +} + +function updateRipple( + el: HTMLElement, + binding: RippleDirectiveBinding, + wasEnabled: boolean +) { + const { value, modifiers } = binding; + const enabled = isRippleEnabled(value); + if (!enabled) { + ripples.hide(el); + } + + el._ripple = el._ripple ?? {}; + el._ripple.enabled = enabled; + el._ripple.centered = modifiers.center; + el._ripple.circle = modifiers.circle; + if (isObject(value) && value.class) { + el._ripple.class = value.class; + } + + if (enabled && !wasEnabled) { + el.addEventListener("pointerdown", rippleShow); + el.addEventListener("pointerup", rippleHide); + } else if (!enabled && wasEnabled) { + removeListeners(el); + } +} + +function removeListeners(el: HTMLElement) { + el.removeEventListener("pointerdown", rippleShow); + el.removeEventListener("pointerup", rippleHide); +} + +function mounted(el: HTMLElement, binding: RippleDirectiveBinding) { + updateRipple(el, binding, false); +} + +function unmounted(el: HTMLElement) { + delete el._ripple; + removeListeners(el); +} + +function updated(el: HTMLElement, binding: RippleDirectiveBinding) { + if (binding.value === binding.oldValue) { + return; + } + + const wasEnabled = isRippleEnabled(binding.oldValue); + updateRipple(el, binding, wasEnabled); +} + +/** + * @description 指令 v-ripple + * @use 用法如下 + * 1. v-ripple 代表启用基本的 ripple 功能 + * 2. v-ripple="{ class: 'text-red' }" 代表自定义 ripple 颜色,支持 tailwindcss,生效样式是 color + * 3. v-ripple.center 代表从中心扩散 + */ +export const Ripple: Directive = { + mounted, + unmounted, + updated +}; diff --git a/src/router/modules/able.ts b/src/router/modules/able.ts index a162bd730..fa5021b20 100644 --- a/src/router/modules/able.ts +++ b/src/router/modules/able.ts @@ -42,6 +42,15 @@ export default { title: $t("menus.hsExcel") } }, + { + path: "/components/ripple", + name: "Ripple", + component: () => import("@/views/able/ripple.vue"), + meta: { + title: $t("menus.hsRipple"), + extraIcon: "IF-pure-iconfont-new svg" + } + }, { path: "/able/debounce", name: "Debounce", diff --git a/src/views/able/ripple.vue b/src/views/able/ripple.vue new file mode 100644 index 000000000..21a574a96 --- /dev/null +++ b/src/views/able/ripple.vue @@ -0,0 +1,71 @@ + + + diff --git a/types/global.d.ts b/types/global.d.ts index 2fd717364..08315eddb 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -180,4 +180,18 @@ declare global { $storage: ResponsiveStorage; $config: PlatformConfigs; } + + /** + * 扩展 `Elemet` + */ + interface Element { + // v-ripple 作用于 src/directives/ripple/index.ts 文件 + _ripple?: { + enabled?: boolean; + centered?: boolean; + class?: string; + circle?: boolean; + touched?: boolean; + }; + } } From 45a359017e862dfc653ef08e882483c98cb7c1d7 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Tue, 5 Mar 2024 22:33:27 +0800 Subject: [PATCH 029/102] chore: revise typo --- types/global.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/global.d.ts b/types/global.d.ts index 08315eddb..370c006b0 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -182,7 +182,7 @@ declare global { } /** - * 扩展 `Elemet` + * 扩展 `Element` */ interface Element { // v-ripple 作用于 src/directives/ripple/index.ts 文件 From 5c4fd951bc40fdfb7fa6268bdc9c81581dafa0a3 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Wed, 6 Mar 2024 00:46:07 +0800 Subject: [PATCH 030/102] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E9=85=8D=E7=BD=AE=E4=B8=AD=E5=BC=80=E5=90=AF=E7=81=B0?= =?UTF-8?q?=E8=89=B2=E6=A8=A1=E5=BC=8F=E5=92=8C=E6=B7=B1=E8=89=B2=E6=95=B4?= =?UTF-8?q?=E4=BD=93=E9=A3=8E=E6=A0=BC=EF=BC=8C=E5=88=B7=E6=96=B0=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=95=B4=E4=BD=93=E9=A3=8E=E6=A0=BC=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/setting/index.vue | 16 +++++++--------- src/layout/hooks/useDataThemeChange.ts | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/layout/components/setting/index.vue b/src/layout/components/setting/index.vue index 5eebc1915..8725c143a 100644 --- a/src/layout/components/setting/index.vue +++ b/src/layout/components/setting/index.vue @@ -13,7 +13,7 @@ import panel from "../panel/index.vue"; import { emitter } from "@/utils/mitt"; import { useNav } from "@/layout/hooks/useNav"; import { useAppStoreHook } from "@/store/modules/app"; -import { useDark, debounce, useGlobal } from "@pureadmin/utils"; +import { useDark, useGlobal, debounce } from "@pureadmin/utils"; import { toggleTheme } from "@pureadmin/theme/dist/browser-utils"; import { useMultiTagsStoreHook } from "@/store/modules/multiTags"; import Segmented, { type OptionsType } from "@/components/ReSegmented"; @@ -88,17 +88,15 @@ function storageConfigureChange(key: string, val: T): void { /** 灰色模式设置 */ const greyChange = (value): void => { - toggleClass(settings.greyVal, "html-grey", document.querySelector("html")); + const htmlEl = document.querySelector("html"); + toggleClass(settings.greyVal, "html-grey", htmlEl); storageConfigureChange("grey", value); }; /** 色弱模式设置 */ const weekChange = (value): void => { - toggleClass( - settings.weakVal, - "html-weakness", - document.querySelector("html") - ); + const htmlEl = document.querySelector("html"); + toggleClass(settings.weakVal, "html-weakness", htmlEl); storageConfigureChange("weak", value); }; @@ -266,9 +264,9 @@ onBeforeMount(() => { nextTick(() => { watchSystemThemeChange(); settings.greyVal && - document.querySelector("html")?.setAttribute("class", "html-grey"); + document.querySelector("html")?.classList.add("html-grey"); settings.weakVal && - document.querySelector("html")?.setAttribute("class", "html-weakness"); + document.querySelector("html")?.classList.add("html-weakness"); settings.tabsVal && tagsChange(); settings.hideFooter && hideFooterChange(); }); diff --git a/src/layout/hooks/useDataThemeChange.ts b/src/layout/hooks/useDataThemeChange.ts index 8463aac85..80db6dd1a 100644 --- a/src/layout/hooks/useDataThemeChange.ts +++ b/src/layout/hooks/useDataThemeChange.ts @@ -45,7 +45,7 @@ export function useDataThemeChange() { const targetEl = target || document.body; let { className } = targetEl; className = className.replace(clsName, "").trim(); - targetEl.className = flag ? `${className} ${clsName} ` : className; + targetEl.className = flag ? `${className} ${clsName}` : className; } /** 设置导航主题色 */ From 7a59999dc79f6ab6fca6ec36239a402040df7fc5 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Wed, 6 Mar 2024 08:49:08 +0800 Subject: [PATCH 031/102] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D`pure-table`?= =?UTF-8?q?=E5=B8=A6=E7=8A=B6=E6=80=81=E8=A1=A8=E6=A0=BC=E5=9C=A8=E6=B7=B1?= =?UTF-8?q?=E8=89=B2=E6=95=B4=E4=BD=93=E9=A3=8E=E6=A0=BC=E4=B8=8B=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=A0=B7=E5=BC=8F=E6=B6=88=E5=A4=B1=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock/system.ts | 3 +++ src/style/dark.scss | 7 ------- src/views/monitor/logs/login/hook.tsx | 1 + src/views/monitor/logs/login/index.vue | 13 ++++++++++++- .../pure-table/high/table-select/multiple/index.vue | 4 ++-- .../pure-table/high/table-select/radio/columns.tsx | 2 +- .../pure-table/high/table-select/radio/index.vue | 4 ++-- 7 files changed, 21 insertions(+), 13 deletions(-) diff --git a/mock/system.ts b/mock/system.ts index 4893c8cc9..393235a45 100644 --- a/mock/system.ts +++ b/mock/system.ts @@ -1079,6 +1079,9 @@ export default defineFakeRoute([ } ]; list = list.filter(item => item.username.includes(body?.username)); + list = list.filter(item => + String(item.status).includes(String(body?.status)) + ); return { success: true, data: { diff --git a/src/style/dark.scss b/src/style/dark.scss index 5fd29ac05..6d6e12284 100644 --- a/src/style/dark.scss +++ b/src/style/dark.scss @@ -96,15 +96,8 @@ html.dark { color: var(--el-color-primary); } - /* element-plus */ - .el-table__cell { - background: var(--el-bg-color); - } - .el-card { --el-card-bg-color: var(--el-bg-color); - - // border: none !important; } .el-backtop { diff --git a/src/views/monitor/logs/login/hook.tsx b/src/views/monitor/logs/login/hook.tsx index 093f262a5..88f31bbd6 100644 --- a/src/views/monitor/logs/login/hook.tsx +++ b/src/views/monitor/logs/login/hook.tsx @@ -9,6 +9,7 @@ import { type Ref, reactive, ref, onMounted, toRaw } from "vue"; export function useRole(tableRef: Ref) { const form = reactive({ username: "", + status: "", loginTime: "" }); const dataList = ref([]); diff --git a/src/views/monitor/logs/login/index.vue b/src/views/monitor/logs/login/index.vue index 777600e04..729957026 100644 --- a/src/views/monitor/logs/login/index.vue +++ b/src/views/monitor/logs/login/index.vue @@ -46,9 +46,20 @@ const { v-model="form.username" placeholder="请输入用户名" clearable - class="!w-[180px]" + class="!w-[150px]" /> + + + + + + { + let list = [ + { + id: 1, + username: "admin", + ip: faker.internet.ipv4(), + address: "中国河南省信阳市", + system: "macOS", + browser: "Chrome", + status: 1, // 操作状态 1 成功 0 失败 + summary: "菜单管理-添加菜单", // 操作概要 + module: "系统管理", // 所属模块 + operatingTime: new Date() // 操作时间 + }, + { + id: 2, + username: "common", + ip: faker.internet.ipv4(), + address: "中国广东省深圳市", + system: "Windows", + browser: "Firefox", + status: 0, + summary: "列表分页查询", + module: "在线用户", + operatingTime: new Date() + } + ]; + list = list.filter(item => item.module.includes(body?.module)); + list = list.filter(item => + String(item.status).includes(String(body?.status)) + ); + return { + success: true, + data: { + list, + total: list.length, // 总条目数 + pageSize: 10, // 每页显示条目个数 + currentPage: 1 // 当前页数 + } + }; + } } ]); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64b860d0b..16f4700bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1369,7 +1369,7 @@ packages: pathe: 1.1.2 picocolors: 1.0.0 source-map-js: 1.0.2 - unplugin: 1.8.0 + unplugin: 1.8.1 vue-i18n: 9.10.1(vue@3.4.21) transitivePeerDependencies: - rollup @@ -3006,7 +3006,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001593 + caniuse-lite: 1.0.30001594 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -3162,7 +3162,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001593 + caniuse-lite: 1.0.30001594 electron-to-chromium: 1.4.692 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) @@ -3254,13 +3254,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001593 + caniuse-lite: 1.0.30001594 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001593: - resolution: {integrity: sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==} + /caniuse-lite@1.0.30001594: + resolution: {integrity: sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==} /canvas@2.11.2: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} @@ -4197,7 +4197,6 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - requiresBuild: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -4752,7 +4751,6 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - requiresBuild: true /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -5177,7 +5175,6 @@ packages: /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - requiresBuild: true dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -5188,7 +5185,6 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - requiresBuild: true /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} @@ -6638,7 +6634,6 @@ packages: /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - requiresBuild: true dependencies: wrappy: 1.0.2 @@ -6736,7 +6731,6 @@ packages: /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - requiresBuild: true /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -7909,7 +7903,6 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - requiresBuild: true /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -8230,7 +8223,6 @@ packages: /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - requiresBuild: true dependencies: safe-buffer: 5.2.1 @@ -8342,7 +8334,7 @@ packages: postcss-scss: 4.0.9(postcss@8.4.35) stylelint: 16.2.1(typescript@5.3.3) stylelint-config-recommended: 14.0.0(stylelint@16.2.1) - stylelint-scss: 6.2.0(stylelint@16.2.1) + stylelint-scss: 6.2.1(stylelint@16.2.1) dev: true /stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.2.1): @@ -8416,8 +8408,8 @@ packages: stylelint: 16.2.1(typescript@5.3.3) dev: true - /stylelint-scss@6.2.0(stylelint@16.2.1): - resolution: {integrity: sha512-ktYsWKNN+zh4VlpdNMajYCOREwaPI9xZLVue/H5vX4f4v7Kg+ej9Bj0b7fG41J2UboNujZNU9qi0yM/KK3KhOQ==} + /stylelint-scss@6.2.1(stylelint@16.2.1): + resolution: {integrity: sha512-ZoGLbVb1keZYRVGQlhB8G6sZOoNqw61whzzzGFWp05N12ErqLFfBv3JPrXiMLZaW98sBS7K/vUQhRnvUj4vwdw==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 @@ -8854,7 +8846,7 @@ packages: acorn: 8.11.3 estree-walker: 3.0.3 magic-string: 0.30.8 - unplugin: 1.8.0 + unplugin: 1.8.1 dev: false optional: true @@ -8884,7 +8876,7 @@ packages: pkg-types: 1.0.3 scule: 1.3.0 strip-literal: 1.3.0 - unplugin: 1.8.0 + unplugin: 1.8.1 transitivePeerDependencies: - rollup dev: false @@ -8900,8 +8892,8 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unplugin@1.8.0: - resolution: {integrity: sha512-yGEQsodWICmgt7asHF7QzqDZYeEP9h14vyd9Lul98UnYf29pLZZLwI09z2QdTjwU/FCkum1SRvsK7cx232X8NA==} + /unplugin@1.8.1: + resolution: {integrity: sha512-NDAvOEnZmeSRRmjfD0FoLzfve2/9lqceO5bR4J/2V72zphnFdq7UYo3fg6F1y1HfZEaSHa+7bZgbEN+z5x8ZDQ==} dependencies: acorn: 8.11.3 chokidar: 3.6.0 @@ -9431,7 +9423,6 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - requiresBuild: true /write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} diff --git a/src/api/system.ts b/src/api/system.ts index c820c3735..9d8062f12 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -58,3 +58,8 @@ export const getOnlineLogsList = (data?: object) => { export const getLoginLogsList = (data?: object) => { return http.request("post", "/login-logs", { data }); }; + +/** 获取系统监控-操作日志列表 */ +export const getOperationLogsList = (data?: object) => { + return http.request("post", "/operation-logs", { data }); +}; diff --git a/src/views/monitor/logs/operation.vue b/src/views/monitor/logs/operation.vue deleted file mode 100644 index 58030ff47..000000000 --- a/src/views/monitor/logs/operation.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/src/views/monitor/logs/operation/hook.tsx b/src/views/monitor/logs/operation/hook.tsx new file mode 100644 index 000000000..067777996 --- /dev/null +++ b/src/views/monitor/logs/operation/hook.tsx @@ -0,0 +1,174 @@ +import dayjs from "dayjs"; +import { message } from "@/utils/message"; +import { getKeyList } from "@pureadmin/utils"; +import { getOperationLogsList } from "@/api/system"; +import { usePublicHooks } from "@/views/system/hooks"; +import type { PaginationProps } from "@pureadmin/table"; +import { type Ref, reactive, ref, onMounted, toRaw } from "vue"; + +export function useRole(tableRef: Ref) { + const form = reactive({ + module: "", + status: "", + operatingTime: "" + }); + const dataList = ref([]); + const loading = ref(true); + const selectedNum = ref(0); + const { tagStyle } = usePublicHooks(); + + const pagination = reactive({ + total: 0, + pageSize: 10, + currentPage: 1, + background: true + }); + const columns: TableColumnList = [ + { + label: "勾选列", // 如果需要表格多选,此处label必须设置 + type: "selection", + fixed: "left", + reserveSelection: true // 数据刷新后保留选项 + }, + { + label: "序号", + prop: "id", + minWidth: 90 + }, + { + label: "操作人员", + prop: "username", + minWidth: 100 + }, + { + label: "所属模块", + prop: "module", + minWidth: 140 + }, + { + label: "操作概要", + prop: "summary", + minWidth: 140 + }, + { + label: "操作 IP", + prop: "ip", + minWidth: 100 + }, + { + label: "操作地点", + prop: "address", + minWidth: 140 + }, + { + label: "操作系统", + prop: "system", + minWidth: 100 + }, + { + label: "浏览器类型", + prop: "browser", + minWidth: 100 + }, + { + label: "操作状态", + prop: "status", + minWidth: 100, + cellRenderer: ({ row, props }) => ( + + {row.status === 1 ? "成功" : "失败"} + + ) + }, + { + label: "操作时间", + prop: "loginTime", + minWidth: 180, + formatter: ({ loginTime }) => + dayjs(loginTime).format("YYYY-MM-DD HH:mm:ss") + } + ]; + + function handleSizeChange(val: number) { + console.log(`${val} items per page`); + } + + function handleCurrentChange(val: number) { + console.log(`current page: ${val}`); + } + + /** 当CheckBox选择项发生变化时会触发该事件 */ + function handleSelectionChange(val) { + selectedNum.value = val.length; + // 重置表格高度 + tableRef.value.setAdaptive(); + } + + /** 取消选择 */ + function onSelectionCancel() { + selectedNum.value = 0; + // 用于多选表格,清空用户的选择 + tableRef.value.getTableRef().clearSelection(); + } + + /** 批量删除 */ + function onbatchDel() { + // 返回当前选中的行 + const curSelected = tableRef.value.getTableRef().getSelectionRows(); + // 接下来根据实际业务,通过选中行的某项数据,比如下面的id,调用接口进行批量删除 + message(`已删除序号为 ${getKeyList(curSelected, "id")} 的数据`, { + type: "success" + }); + tableRef.value.getTableRef().clearSelection(); + onSearch(); + } + + /** 清空日志 */ + function clearAll() { + // 根据实际业务,调用接口删除所有日志数据 + message("已删除所有日志数据", { + type: "success" + }); + onSearch(); + } + + async function onSearch() { + loading.value = true; + const { data } = await getOperationLogsList(toRaw(form)); + dataList.value = data.list; + pagination.total = data.total; + pagination.pageSize = data.pageSize; + pagination.currentPage = data.currentPage; + + setTimeout(() => { + loading.value = false; + }, 500); + } + + const resetForm = formEl => { + if (!formEl) return; + formEl.resetFields(); + onSearch(); + }; + + onMounted(() => { + onSearch(); + }); + + return { + form, + loading, + columns, + dataList, + pagination, + selectedNum, + onSearch, + clearAll, + resetForm, + onbatchDel, + handleSizeChange, + onSelectionCancel, + handleCurrentChange, + handleSelectionChange + }; +} diff --git a/src/views/monitor/logs/operation/index.vue b/src/views/monitor/logs/operation/index.vue new file mode 100644 index 000000000..1a95dba68 --- /dev/null +++ b/src/views/monitor/logs/operation/index.vue @@ -0,0 +1,165 @@ + + + + + From ac0d75cbdf480bcff52ba748db2a9cc5a2b3a4e2 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Wed, 6 Mar 2024 16:20:58 +0800 Subject: [PATCH 033/102] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=9B=91=E6=8E=A7-=E7=B3=BB=E7=BB=9F=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock/asyncRoutes.ts | 2 +- mock/system.ts | 60 +++++- src/api/system.ts | 5 + src/views/monitor/logs/operation/hook.tsx | 6 +- src/views/monitor/logs/system.vue | 9 - src/views/monitor/logs/system/hook.tsx | 228 ++++++++++++++++++++++ src/views/monitor/logs/system/index.vue | 156 +++++++++++++++ 7 files changed, 452 insertions(+), 14 deletions(-) delete mode 100644 src/views/monitor/logs/system.vue create mode 100644 src/views/monitor/logs/system/hook.tsx create mode 100644 src/views/monitor/logs/system/index.vue diff --git a/mock/asyncRoutes.ts b/mock/asyncRoutes.ts index a8c86184b..48ccada4f 100644 --- a/mock/asyncRoutes.ts +++ b/mock/asyncRoutes.ts @@ -95,7 +95,7 @@ const systemMonitorRouter = { }, { path: "/monitor/system-logs", - component: "monitor/logs/system", + component: "monitor/logs/system/index", name: "SystemLog", meta: { icon: "ri:file-search-line", diff --git a/mock/system.ts b/mock/system.ts index 6d391b7d0..b81c22565 100644 --- a/mock/system.ts +++ b/mock/system.ts @@ -757,7 +757,7 @@ export default defineFakeRoute([ title: "menus.hsSystemLog", name: "SystemLog", path: "/monitor/system-logs", - component: "monitor/logs/system", + component: "monitor/logs/system/index", rank: null, redirect: "", icon: "ri:file-search-line", @@ -1138,5 +1138,63 @@ export default defineFakeRoute([ } }; } + }, + // 系统日志 + { + url: "/system-logs", + method: "post", + response: ({ body }) => { + let list = [ + { + id: 1, // 日志ID + /** + * 日志级别 + * 0 debug调试(最低级别的日志,用于调试和开发阶段) + * 1 info信息(默认级别,用于记录一般的信息) + * 2 warn警告(表示可能出现的问题或潜在的错误,但不会影响系统的正常运行) + * 3 error错误(表示发生了错误,但不会导致系统崩溃) + * 4 fatal致命(最高级别的日志,表示发生了严重错误,导致系统无法继续运行) + */ + level: 1, + module: "菜单管理", // 所属模块 + url: "/menu", // 请求接口 + method: "post", // 请求方法 + ip: faker.internet.ipv4(), + address: "中国河南省信阳市", + system: "macOS", + browser: "Chrome", + /** + * 请求耗时(单位:ms 毫秒) + * 正常耗时:一般认为在几百毫秒(0.1-0.5秒)范围内的请求耗时较为正常 + * 较慢耗时:在1秒以上的耗时可以被认为是较慢的请求,但具体是否较慢还需要根据具体业务场景和性能要求来判断 + */ + takesTime: 10, + requestTime: new Date() // 请求时间 + }, + { + id: 2, + level: 0, + module: "地图", + url: "/get-map-info", + method: "get", + ip: faker.internet.ipv4(), + address: "中国广东省深圳市", + system: "Windows", + browser: "Firefox", + takesTime: 1200, + requestTime: new Date() + } + ]; + list = list.filter(item => item.module.includes(body?.module)); + return { + success: true, + data: { + list, + total: list.length, // 总条目数 + pageSize: 10, // 每页显示条目个数 + currentPage: 1 // 当前页数 + } + }; + } } ]); diff --git a/src/api/system.ts b/src/api/system.ts index 9d8062f12..84c4f5e01 100644 --- a/src/api/system.ts +++ b/src/api/system.ts @@ -63,3 +63,8 @@ export const getLoginLogsList = (data?: object) => { export const getOperationLogsList = (data?: object) => { return http.request("post", "/operation-logs", { data }); }; + +/** 获取系统监控-系统日志列表 */ +export const getSystemLogsList = (data?: object) => { + return http.request("post", "/system-logs", { data }); +}; diff --git a/src/views/monitor/logs/operation/hook.tsx b/src/views/monitor/logs/operation/hook.tsx index 067777996..11ffcf25c 100644 --- a/src/views/monitor/logs/operation/hook.tsx +++ b/src/views/monitor/logs/operation/hook.tsx @@ -82,10 +82,10 @@ export function useRole(tableRef: Ref) { }, { label: "操作时间", - prop: "loginTime", + prop: "operatingTime", minWidth: 180, - formatter: ({ loginTime }) => - dayjs(loginTime).format("YYYY-MM-DD HH:mm:ss") + formatter: ({ operatingTime }) => + dayjs(operatingTime).format("YYYY-MM-DD HH:mm:ss") } ]; diff --git a/src/views/monitor/logs/system.vue b/src/views/monitor/logs/system.vue deleted file mode 100644 index 7f7a93fd0..000000000 --- a/src/views/monitor/logs/system.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/src/views/monitor/logs/system/hook.tsx b/src/views/monitor/logs/system/hook.tsx new file mode 100644 index 000000000..e78c434cf --- /dev/null +++ b/src/views/monitor/logs/system/hook.tsx @@ -0,0 +1,228 @@ +import dayjs from "dayjs"; +import { message } from "@/utils/message"; +import { getSystemLogsList } from "@/api/system"; +import type { PaginationProps } from "@pureadmin/table"; +import { type Ref, reactive, ref, onMounted, toRaw } from "vue"; +import { getKeyList, useCopyToClipboard } from "@pureadmin/utils"; +import Info from "@iconify-icons/ri/question-line"; + +export function useRole(tableRef: Ref) { + const form = reactive({ + module: "", + requestTime: "" + }); + const dataList = ref([]); + const loading = ref(true); + const selectedNum = ref(0); + const { copied, update } = useCopyToClipboard(); + + const pagination = reactive({ + total: 0, + pageSize: 10, + currentPage: 1, + background: true + }); + + // const getLevelType = (type, text = false) => { + // switch (type) { + // case 0: + // return text ? "debug" : "primary"; + // case 1: + // return text ? "info" : "success"; + // case 2: + // return text ? "warn" : "info"; + // case 3: + // return text ? "error" : "warning"; + // case 4: + // return text ? "fatal" : "danger"; + // } + // }; + + const columns: TableColumnList = [ + { + label: "勾选列", // 如果需要表格多选,此处label必须设置 + type: "selection", + fixed: "left", + reserveSelection: true // 数据刷新后保留选项 + }, + { + label: "ID", + prop: "id", + minWidth: 90 + }, + { + label: "所属模块", + prop: "module", + minWidth: 100 + }, + { + headerRenderer: () => ( + + 请求接口 + + + ), + prop: "url", + minWidth: 140 + }, + { + label: "请求方法", + prop: "method", + minWidth: 140 + }, + { + label: "IP 地址", + prop: "ip", + minWidth: 100 + }, + { + label: "地点", + prop: "address", + minWidth: 140 + }, + { + label: "操作系统", + prop: "system", + minWidth: 100 + }, + { + label: "浏览器类型", + prop: "browser", + minWidth: 100 + }, + // { + // label: "级别", + // prop: "level", + // minWidth: 90, + // cellRenderer: ({ row, props }) => ( + // + // {getLevelType(row.level, true)} + // + // ) + // }, + { + label: "请求耗时", + prop: "takesTime", + minWidth: 100, + cellRenderer: ({ row, props }) => ( + + {row.takesTime} ms + + ) + }, + { + label: "请求时间", + prop: "requestTime", + minWidth: 180, + formatter: ({ requestTime }) => + dayjs(requestTime).format("YYYY-MM-DD HH:mm:ss") + } + // { + // label: "操作", + // fixed: "right", + // slot: "operation" + // } + ]; + + function handleSizeChange(val: number) { + console.log(`${val} items per page`); + } + + function handleCurrentChange(val: number) { + console.log(`current page: ${val}`); + } + + /** 当CheckBox选择项发生变化时会触发该事件 */ + function handleSelectionChange(val) { + selectedNum.value = val.length; + // 重置表格高度 + tableRef.value.setAdaptive(); + } + + /** 取消选择 */ + function onSelectionCancel() { + selectedNum.value = 0; + // 用于多选表格,清空用户的选择 + tableRef.value.getTableRef().clearSelection(); + } + + /** 拷贝请求接口,表格单元格被双击时触发 */ + function handleCellDblclick({ url }) { + update(url); + copied.value + ? message(`${url} 已拷贝`, { type: "success" }) + : message("拷贝失败", { type: "warning" }); + } + + /** 批量删除 */ + function onbatchDel() { + // 返回当前选中的行 + const curSelected = tableRef.value.getTableRef().getSelectionRows(); + // 接下来根据实际业务,通过选中行的某项数据,比如下面的id,调用接口进行批量删除 + message(`已删除序号为 ${getKeyList(curSelected, "id")} 的数据`, { + type: "success" + }); + tableRef.value.getTableRef().clearSelection(); + onSearch(); + } + + /** 清空日志 */ + function clearAll() { + // 根据实际业务,调用接口删除所有日志数据 + message("已删除所有日志数据", { + type: "success" + }); + onSearch(); + } + + async function onSearch() { + loading.value = true; + const { data } = await getSystemLogsList(toRaw(form)); + dataList.value = data.list; + pagination.total = data.total; + pagination.pageSize = data.pageSize; + pagination.currentPage = data.currentPage; + + setTimeout(() => { + loading.value = false; + }, 500); + } + + const resetForm = formEl => { + if (!formEl) return; + formEl.resetFields(); + onSearch(); + }; + + onMounted(() => { + onSearch(); + }); + + return { + form, + loading, + columns, + dataList, + pagination, + selectedNum, + onSearch, + clearAll, + resetForm, + onbatchDel, + handleSizeChange, + onSelectionCancel, + handleCellDblclick, + handleCurrentChange, + handleSelectionChange + }; +} diff --git a/src/views/monitor/logs/system/index.vue b/src/views/monitor/logs/system/index.vue new file mode 100644 index 000000000..691b7864e --- /dev/null +++ b/src/views/monitor/logs/system/index.vue @@ -0,0 +1,156 @@ + + + + + From adae01fdc218ae027a4a93af765473807acae003 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Wed, 6 Mar 2024 18:16:46 +0800 Subject: [PATCH 034/102] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0`typeit`?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E4=B8=BA=E6=9C=80=E6=96=B0=EF=BC=8C=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=85=BC=E5=AE=B9=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- pnpm-lock.yaml | 104 ++++++++++++++------------ src/components/ReTypeit/index.ts | 2 +- src/components/ReTypeit/src/index.tsx | 2 +- 4 files changed, 58 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 966609bc7..2689b7fb5 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "responsive-storage": "^2.2.0", "sortablejs": "^1.15.2", "swiper": "^11.0.7", - "typeit": "8.7.1", + "typeit": "^8.8.3", "v-contextmenu": "^3.2.0", "v3-infinite-loading": "^1.3.1", "version-rocket": "^1.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16f4700bd..2aa7a0f2e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -114,8 +114,8 @@ dependencies: specifier: ^11.0.7 version: 11.0.7 typeit: - specifier: 8.7.1 - version: 8.7.1 + specifier: ^8.8.3 + version: 8.8.3 v-contextmenu: specifier: ^3.2.0 version: 3.2.0(vue@3.4.21) @@ -1823,48 +1823,48 @@ packages: picomatch: 2.3.1 rollup: 2.79.1 - /@rollup/rollup-android-arm-eabi@4.12.0: - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + /@rollup/rollup-android-arm-eabi@4.12.1: + resolution: {integrity: sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.12.0: - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} + /@rollup/rollup-android-arm64@4.12.1: + resolution: {integrity: sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.12.0: - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} + /@rollup/rollup-darwin-arm64@4.12.1: + resolution: {integrity: sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.12.0: - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + /@rollup/rollup-darwin-x64@4.12.1: + resolution: {integrity: sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.12.0: - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + /@rollup/rollup-linux-arm-gnueabihf@4.12.1: + resolution: {integrity: sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.12.0: - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} + /@rollup/rollup-linux-arm64-gnu@4.12.1: + resolution: {integrity: sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ==} cpu: [arm64] os: [linux] libc: [glibc] @@ -1872,8 +1872,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.12.0: - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + /@rollup/rollup-linux-arm64-musl@4.12.1: + resolution: {integrity: sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ==} cpu: [arm64] os: [linux] libc: [musl] @@ -1881,8 +1881,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.12.0: - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} + /@rollup/rollup-linux-riscv64-gnu@4.12.1: + resolution: {integrity: sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg==} cpu: [riscv64] os: [linux] libc: [glibc] @@ -1890,8 +1890,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.12.0: - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} + /@rollup/rollup-linux-x64-gnu@4.12.1: + resolution: {integrity: sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ==} cpu: [x64] os: [linux] libc: [glibc] @@ -1899,8 +1899,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.12.0: - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + /@rollup/rollup-linux-x64-musl@4.12.1: + resolution: {integrity: sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ==} cpu: [x64] os: [linux] libc: [musl] @@ -1908,24 +1908,24 @@ packages: dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.12.0: - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + /@rollup/rollup-win32-arm64-msvc@4.12.1: + resolution: {integrity: sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.12.0: - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} + /@rollup/rollup-win32-ia32-msvc@4.12.1: + resolution: {integrity: sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.12.0: - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} + /@rollup/rollup-win32-x64-msvc@4.12.1: + resolution: {integrity: sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q==} cpu: [x64] os: [win32] requiresBuild: true @@ -2106,6 +2106,10 @@ packages: resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} dev: true + /@types/web-animations-js@2.2.16: + resolution: {integrity: sha512-ATELeWMFwj8eQiH0KmvsCl1V2lu/qx/CjOBmv4ADSZS5u8r4reMyjCXtxG7khqyiwH3IOMNdrON/Ugn94OUcRA==} + dev: false + /@types/web-bluetooth@0.0.14: resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==} dev: false @@ -3163,7 +3167,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001594 - electron-to-chromium: 1.4.692 + electron-to-chromium: 1.4.693 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) @@ -4135,8 +4139,8 @@ packages: - typescript dev: false - /electron-to-chromium@1.4.692: - resolution: {integrity: sha512-d5rZRka9n2Y3MkWRN74IoAsxR0HK3yaAt7T50e3iT9VZmCCQDT3geXUO5ZRMhDToa1pkCeQXuNo+0g+NfDOVPA==} + /electron-to-chromium@1.4.693: + resolution: {integrity: sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==} /element-plus@2.1.4(@types/lodash-es@4.17.12)(vue@3.4.21): resolution: {integrity: sha512-pcwgDbKUrzyWbixYB/zIbLPLBQ/NPGPJnGXJ+jYozUSthPW4SuriaUGJKgbAE6PDBAtw3IodiT2E2GbiaZLxww==} @@ -7873,26 +7877,26 @@ packages: optionalDependencies: fsevents: 2.3.3 - /rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + /rollup@4.12.1: + resolution: {integrity: sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 + '@rollup/rollup-android-arm-eabi': 4.12.1 + '@rollup/rollup-android-arm64': 4.12.1 + '@rollup/rollup-darwin-arm64': 4.12.1 + '@rollup/rollup-darwin-x64': 4.12.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.1 + '@rollup/rollup-linux-arm64-gnu': 4.12.1 + '@rollup/rollup-linux-arm64-musl': 4.12.1 + '@rollup/rollup-linux-riscv64-gnu': 4.12.1 + '@rollup/rollup-linux-x64-gnu': 4.12.1 + '@rollup/rollup-linux-x64-musl': 4.12.1 + '@rollup/rollup-win32-arm64-msvc': 4.12.1 + '@rollup/rollup-win32-ia32-msvc': 4.12.1 + '@rollup/rollup-win32-x64-msvc': 4.12.1 fsevents: 2.3.3 dev: true @@ -8826,9 +8830,11 @@ packages: is-typedarray: 1.0.0 dev: false - /typeit@8.7.1: - resolution: {integrity: sha512-Bx/O4NMz10NWh9FWYtVwV4XwGHF9UDJfpCZPJRtw2/oUcahFAStU8J0t19aroPfTV6s1UlS5ICoqilOqmEnh2Q==} + /typeit@8.8.3: + resolution: {integrity: sha512-K7nChkj6iyylUi713VBDULUXXLF0pfB6nFPVhNnXTKO2An7NzVz5fjoAHk2FAC3TFLiSnU+QsqhDmap17oBELw==} requiresBuild: true + dependencies: + '@types/web-animations-js': 2.2.16 dev: false /typescript@5.3.3: @@ -9072,7 +9078,7 @@ packages: '@types/node': 20.11.24 esbuild: 0.19.12 postcss: 8.4.35 - rollup: 4.12.0 + rollup: 4.12.1 sass: 1.71.1 optionalDependencies: fsevents: 2.3.3 diff --git a/src/components/ReTypeit/index.ts b/src/components/ReTypeit/index.ts index dd6f2ca49..e28a10c61 100644 --- a/src/components/ReTypeit/index.ts +++ b/src/components/ReTypeit/index.ts @@ -1,5 +1,5 @@ import typeIt from "./src/index"; -import type { TypeItOptions } from "typeit"; +import type { Options as TypeItOptions } from "typeit"; const TypeIt = typeIt; diff --git a/src/components/ReTypeit/src/index.tsx b/src/components/ReTypeit/src/index.tsx index 9e61b85ca..663c314d5 100644 --- a/src/components/ReTypeit/src/index.tsx +++ b/src/components/ReTypeit/src/index.tsx @@ -1,5 +1,5 @@ import type { El } from "typeit/dist/types"; -import TypeIt, { type TypeItOptions } from "typeit"; +import TypeIt, { type Options as TypeItOptions } from "typeit"; import { ref, defineComponent, onMounted, type PropType } from "vue"; // 打字机效果组件(配置项详情请查阅 https://www.typeitjs.com/docs/vanilla/usage#options) From 0a67d1ab76c94e7855b77980bb37eb3ae3a424fa Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Sun, 10 Mar 2024 09:22:32 +0800 Subject: [PATCH 035/102] chore: update --- build/info.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/info.ts b/build/info.ts index ae63a7ddb..adc3d9eb9 100644 --- a/build/info.ts +++ b/build/info.ts @@ -7,7 +7,7 @@ import boxen, { type Options as BoxenOptions } from "boxen"; dayjs.extend(duration); const welcomeMessage = gradientString("cyan", "magenta").multiline( - `Hello! 欢迎使用 vue-pure-admin\n我们为您精心准备了下面两个贴心的保姆级文档\nhttps://yiming_chang.gitee.io/pure-admin-doc\nhttps://pure-admin-utils.netlify.app` + `Hello! 欢迎使用 pure-admin 开源项目\n我们为您精心准备了下面两个贴心的保姆级文档\nhttps://yiming_chang.gitee.io/pure-admin-doc\nhttps://pure-admin-utils.netlify.app` ); const boxenOptions: BoxenOptions = { From 593fc1bb2609831946c1ad6d93a39c88eb55db67 Mon Sep 17 00:00:00 2001 From: gc <110344986+Gchengan@users.noreply.github.com> Date: Tue, 12 Mar 2024 11:58:25 +0800 Subject: [PATCH 036/102] =?UTF-8?q?style:=20=E4=BF=AE=E5=A4=8D`windwos`?= =?UTF-8?q?=E4=B8=8B=E7=82=B9=E5=87=BB=E6=B3=A8=E5=86=8C=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BC=9A=E5=87=BA=E7=8E=B0=E6=BB=9A=E5=8A=A8=E6=9D=A1=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(#970)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/style/login.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/style/login.css b/src/style/login.css index c603e87f7..3e0a8abb7 100644 --- a/src/style/login.css +++ b/src/style/login.css @@ -31,6 +31,7 @@ display: flex; align-items: center; text-align: center; + overflow: hidden; } .login-form { From d1f0a3fd36a004a2a87dfc8887bf1d74b3731818 Mon Sep 17 00:00:00 2001 From: xiaoming <1923740402@qq.com> Date: Tue, 12 Mar 2024 14:36:45 +0800 Subject: [PATCH 037/102] =?UTF-8?q?chore:=20=E5=B0=86=E5=85=A8=E5=B1=8F?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=BD=AE=E4=BA=8E=E9=A1=B6=E9=83=A8=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E5=85=B6=E6=98=BE=E7=9C=BC=E4=B8=94=E6=98=93=E4=BA=8E?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=20(#969)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 将全屏按钮置于顶部,使其显眼且易于操作 --- src/layout/components/navbar.vue | 8 ++++-- src/layout/components/sidebar/fullScreen.vue | 30 ++++++++++++++++++++ src/layout/components/sidebar/horizontal.vue | 7 +++-- src/layout/components/sidebar/mixNav.vue | 7 +++-- src/layout/components/tag/index.vue | 29 ++++--------------- src/layout/hooks/useNav.ts | 8 ++++++ src/layout/hooks/useTag.ts | 9 +----- src/style/sidebar.scss | 15 ++++++---- src/views/guide/index.vue | 18 ++++++++---- types/global.d.ts | 9 ++++++ 10 files changed, 90 insertions(+), 50 deletions(-) create mode 100644 src/layout/components/sidebar/fullScreen.vue diff --git a/src/layout/components/navbar.vue b/src/layout/components/navbar.vue index d1c8782e5..67774cc4f 100644 --- a/src/layout/components/navbar.vue +++ b/src/layout/components/navbar.vue @@ -3,6 +3,7 @@ import Search from "./search/index.vue"; import Notice from "./notice/index.vue"; import mixNav from "./sidebar/mixNav.vue"; import { useNav } from "@/layout/hooks/useNav"; +import FullScreen from "./sidebar/fullScreen.vue"; import Breadcrumb from "./sidebar/breadCrumb.vue"; import topCollapse from "./sidebar/topCollapse.vue"; import { useTranslationLang } from "../hooks/useTranslationLang"; @@ -10,7 +11,6 @@ import globalization from "@/assets/svg/globalization.svg?component"; import LogoutCircleRLine from "@iconify-icons/ri/logout-circle-r-line"; import Setting from "@iconify-icons/ri/settings-3-line"; import Check from "@iconify-icons/ep/check"; - const { layout, device, @@ -47,8 +47,6 @@ const { t, locale, translationCh, translationEn } = useTranslationLang();
- - + + + + diff --git a/src/layout/components/sidebar/fullScreen.vue b/src/layout/components/sidebar/fullScreen.vue new file mode 100644 index 000000000..4d38bd0c7 --- /dev/null +++ b/src/layout/components/sidebar/fullScreen.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/layout/components/sidebar/horizontal.vue b/src/layout/components/sidebar/horizontal.vue index 072e0c12e..9587c047c 100644 --- a/src/layout/components/sidebar/horizontal.vue +++ b/src/layout/components/sidebar/horizontal.vue @@ -1,6 +1,7 @@ + + diff --git a/src/views/monitor/logs/system/hook.tsx b/src/views/monitor/logs/system/hook.tsx index e78c434cf..4638e29af 100644 --- a/src/views/monitor/logs/system/hook.tsx +++ b/src/views/monitor/logs/system/hook.tsx @@ -1,9 +1,11 @@ import dayjs from "dayjs"; +import Detail from "./detail.vue"; import { message } from "@/utils/message"; -import { getSystemLogsList } from "@/api/system"; +import { addDialog } from "@/components/ReDialog"; import type { PaginationProps } from "@pureadmin/table"; import { type Ref, reactive, ref, onMounted, toRaw } from "vue"; import { getKeyList, useCopyToClipboard } from "@pureadmin/utils"; +import { getSystemLogsList, getSystemLogsDetail } from "@/api/system"; import Info from "@iconify-icons/ri/question-line"; export function useRole(tableRef: Ref) { @@ -126,12 +128,12 @@ export function useRole(tableRef: Ref) { minWidth: 180, formatter: ({ requestTime }) => dayjs(requestTime).format("YYYY-MM-DD HH:mm:ss") + }, + { + label: "操作", + fixed: "right", + slot: "operation" } - // { - // label: "操作", - // fixed: "right", - // slot: "operation" - // } ]; function handleSizeChange(val: number) { @@ -157,7 +159,8 @@ export function useRole(tableRef: Ref) { } /** 拷贝请求接口,表格单元格被双击时触发 */ - function handleCellDblclick({ url }) { + function handleCellDblclick({ url }, { property }) { + if (property !== "url") return; update(url); copied.value ? message(`${url} 已拷贝`, { type: "success" }) @@ -185,6 +188,20 @@ export function useRole(tableRef: Ref) { onSearch(); } + function onDetail(row) { + getSystemLogsDetail({ id: row.id }).then(res => { + addDialog({ + title: "系统日志详情", + fullscreen: true, + hideFooter: true, + contentRenderer: () => Detail, + props: { + data: [res] + } + }); + }); + } + async function onSearch() { loading.value = true; const { data } = await getSystemLogsList(toRaw(form)); @@ -216,6 +233,7 @@ export function useRole(tableRef: Ref) { pagination, selectedNum, onSearch, + onDetail, clearAll, resetForm, onbatchDel, diff --git a/src/views/monitor/logs/system/index.vue b/src/views/monitor/logs/system/index.vue index 691b7864e..d563eed2f 100644 --- a/src/views/monitor/logs/system/index.vue +++ b/src/views/monitor/logs/system/index.vue @@ -5,6 +5,7 @@ import { getPickerShortcuts } from "../../utils"; import { PureTableBar } from "@/components/RePureTableBar"; import { useRenderIcon } from "@/components/ReIcon/src/hooks"; +import View from "@iconify-icons/ep/view"; import Delete from "@iconify-icons/ep/delete"; import Refresh from "@iconify-icons/ep/refresh"; @@ -23,6 +24,7 @@ const { pagination, selectedNum, onSearch, + onDetail, clearAll, resetForm, onbatchDel, @@ -133,7 +135,20 @@ const { @page-size-change="handleSizeChange" @page-current-change="handleCurrentChange" @cell-dblclick="handleCellDblclick" - /> + > + +
From be5798987f3b05a06bb42c530674e91ca6687283 Mon Sep 17 00:00:00 2001 From: Leet <76251617+skyline523@users.noreply.github.com> Date: Wed, 13 Mar 2024 21:16:00 +0800 Subject: [PATCH 041/102] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D`windows`?= =?UTF-8?q?=E4=B8=8B=E9=A1=B5=E9=9D=A2=E5=88=87=E6=8D=A2=EF=BC=8C=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=8C=BA=E4=BC=9A=E5=87=BA=E7=8E=B0=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E6=9D=A1=E9=97=AE=E9=A2=98=20(#976)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/appMain.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layout/components/appMain.vue b/src/layout/components/appMain.vue index 406c15b17..43842f3fe 100644 --- a/src/layout/components/appMain.vue +++ b/src/layout/components/appMain.vue @@ -101,7 +101,7 @@ const transitionMain = defineComponent({ :view-style="{ display: 'flex', flex: 'auto', - overflow: 'auto', + overflow: 'hidden', 'flex-direction': 'column' }" > From 0be8c963baa6c39585d40e2732d457323b8fbb54 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Wed, 13 Mar 2024 21:33:54 +0800 Subject: [PATCH 042/102] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E7=89=B9?= =?UTF-8?q?=E5=88=AB=E4=BB=A3=E7=A0=81=E8=B4=A1=E7=8C=AE=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en-US.md | 3 ++- README.md | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.en-US.md b/README.en-US.md index 5f5c1d204..cfb1c3b6c 100644 --- a/README.en-US.md +++ b/README.en-US.md @@ -168,11 +168,12 @@ You are very welcome to join![Raise an issue](https://github.com/pure-admin/vu Thank you very much for your in-depth understanding of the source code and your outstanding contributions to the `pure-admin` organization ❤️ -| **Contributor** | **SpecificCode** | +| **Contributor** | **SpecificCode** | | :---------------------------------------------: | :------------------------------------------------------------------------------: | | [hb0730](https://github.com/hb0730) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=hb0730) | | [o-cc](https://github.com/o-cc) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=o-cc) | | [yj-liuzepeng](https://github.com/yj-liuzepeng) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=yj-liuzepeng) | +| [skyline523](https://github.com/skyline523) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=skyline523) | | [shark-lajiao](https://github.com/shark-lajiao) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=shark-lajiao) | | [WitMiao](https://github.com/WitMiao) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=WitMiao) | diff --git a/README.md b/README.md index c2b71bc9c..eea8560b5 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ docker run -dp 8080:80 --name pure-admin vue-pure-admin | [hb0730](https://github.com/hb0730) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=hb0730) | | [o-cc](https://github.com/o-cc) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=o-cc) | | [yj-liuzepeng](https://github.com/yj-liuzepeng) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=yj-liuzepeng) | +| [skyline523](https://github.com/skyline523) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=skyline523) | | [shark-lajiao](https://github.com/shark-lajiao) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=shark-lajiao) | | [WitMiao](https://github.com/WitMiao) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=WitMiao) | From 359ccdd85b70a01c7c44c193aa87e804b7c72ce4 Mon Sep 17 00:00:00 2001 From: Leet <76251617+skyline523@users.noreply.github.com> Date: Thu, 14 Mar 2024 10:09:51 +0800 Subject: [PATCH 043/102] =?UTF-8?q?feat:=20=E5=86=85=E5=AE=B9=E5=8C=BA?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=A8=E5=B1=80`Stretch`=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E5=8F=AF=E8=87=AA=E5=AE=9A=E4=B9=89=E7=B4=A7=E5=87=91?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E8=BD=BB=E6=9D=BE=E6=89=BE=E5=88=B0?= =?UTF-8?q?=E6=89=80=E9=9C=80=E4=BF=A1=E6=81=AF=20(#968)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 页面添加stretch配置 --- public/platform-config.json | 1 + src/layout/components/appMain.vue | 19 ++++- src/layout/components/setting/index.vue | 92 ++++++++++++++++++++++--- src/layout/hooks/useLayout.ts | 3 +- src/utils/responsive.ts | 3 +- types/global.d.ts | 2 + 6 files changed, 107 insertions(+), 13 deletions(-) diff --git a/public/platform-config.json b/public/platform-config.json index b9f964279..c6b2db6a9 100644 --- a/public/platform-config.json +++ b/public/platform-config.json @@ -14,6 +14,7 @@ "Weak": false, "HideTabs": false, "HideFooter": false, + "Stretch": false, "SidebarStatus": true, "EpThemeColor": "#409EFF", "ShowLogo": true, diff --git a/src/layout/components/appMain.vue b/src/layout/components/appMain.vue index 43842f3fe..8543acc24 100644 --- a/src/layout/components/appMain.vue +++ b/src/layout/components/appMain.vue @@ -1,6 +1,6 @@ - + + + diff --git a/src/views/system/role/utils/hook.tsx b/src/views/system/role/utils/hook.tsx index f4591b936..eb627b41a 100644 --- a/src/views/system/role/utils/hook.tsx +++ b/src/views/system/role/utils/hook.tsx @@ -1,25 +1,41 @@ import dayjs from "dayjs"; import editForm from "../form.vue"; +import { handleTree } from "@/utils/tree"; import { message } from "@/utils/message"; -import { getRoleList } from "@/api/system"; import { ElMessageBox } from "element-plus"; import { usePublicHooks } from "../../hooks"; +import { getKeyList } from "@pureadmin/utils"; +import { transformI18n } from "@/plugins/i18n"; import { addDialog } from "@/components/ReDialog"; import type { FormItemProps } from "../utils/types"; import type { PaginationProps } from "@pureadmin/table"; -import { reactive, ref, onMounted, h, toRaw } from "vue"; +import { getRoleList, getRoleMenu, getRoleMenuIds } from "@/api/system"; +import { type Ref, reactive, ref, onMounted, h, toRaw, watch } from "vue"; -export function useRole() { +export function useRole(treeRef: Ref) { const form = reactive({ name: "", code: "", status: "" }); + const curRow = ref(); const formRef = ref(); const dataList = ref([]); + const treeIds = ref([]); + const treeData = ref([]); + const isShow = ref(false); const loading = ref(true); + const isLinkage = ref(false); + const treeSearchValue = ref(); const switchLoadMap = ref({}); + const isExpandAll = ref(false); + const isSelectAll = ref(false); const { switchStyle } = usePublicHooks(); + const treeProps = { + value: "id", + label: "title", + children: "children" + }; const pagination = reactive({ total: 0, pageSize: 10, @@ -29,22 +45,18 @@ export function useRole() { const columns: TableColumnList = [ { label: "角色编号", - prop: "id", - minWidth: 100 + prop: "id" }, { label: "角色名称", - prop: "name", - minWidth: 120 + prop: "name" }, { label: "角色标识", - prop: "code", - minWidth: 150 + prop: "code" }, { label: "状态", - minWidth: 130, cellRenderer: scope => ( onChange(scope as any)} /> - ) + ), + minWidth: 90 }, { label: "备注", prop: "remark", - minWidth: 150 + minWidth: 160 }, { label: "创建时间", - minWidth: 180, prop: "createTime", + minWidth: 160, formatter: ({ createTime }) => dayjs(createTime).format("YYYY-MM-DD HH:mm:ss") }, { label: "操作", fixed: "right", - width: 240, + width: 210, slot: "operation" } ]; @@ -210,29 +223,92 @@ export function useRole() { } /** 菜单权限 */ - function handleMenu() { - message("等菜单管理页面开发后完善"); + async function handleMenu(row?: any) { + const { id } = row; + if (id) { + curRow.value = row; + isShow.value = true; + const { data } = await getRoleMenuIds({ id }); + treeRef.value.setCheckedKeys(data); + } else { + curRow.value = null; + isShow.value = false; + } + } + + /** 高亮当前权限选中行 */ + function rowStyle({ row: { id } }) { + return { + cursor: "pointer", + background: id === curRow.value?.id ? "var(--el-fill-color-light)" : "" + }; + } + + /** 菜单权限-保存 */ + function handleSave() { + const { id, name } = curRow.value; + // 根据用户 id 调用实际项目中菜单权限修改接口 + console.log(id, treeRef.value.getCheckedKeys()); + message(`角色名称为${name}的菜单权限修改成功`, { + type: "success" + }); } /** 数据权限 可自行开发 */ // function handleDatabase() {} - onMounted(() => { + const onQueryChanged = (query: string) => { + treeRef.value!.filter(query); + }; + + const filterMethod = (query: string, node) => { + return transformI18n(node.title)!.includes(query); + }; + + onMounted(async () => { onSearch(); + const { data } = await getRoleMenu(); + treeIds.value = getKeyList(data, "id"); + treeData.value = handleTree(data); + }); + + watch(isExpandAll, val => { + val + ? treeRef.value.setExpandedKeys(treeIds.value) + : treeRef.value.setExpandedKeys([]); + }); + + watch(isSelectAll, val => { + val + ? treeRef.value.setCheckedKeys(treeIds.value) + : treeRef.value.setCheckedKeys([]); }); return { form, + isShow, + curRow, loading, columns, + rowStyle, dataList, + treeData, + treeProps, + isLinkage, pagination, + isExpandAll, + isSelectAll, + treeSearchValue, // buttonClass, onSearch, resetForm, openDialog, handleMenu, + handleSave, handleDelete, + filterMethod, + transformI18n, + onQueryChanged, // handleDatabase, handleSizeChange, handleCurrentChange, From c0005b4bc9dcc5deb153c1662786b0ffd7ef5b2c Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Sat, 16 Mar 2024 23:20:04 +0800 Subject: [PATCH 047/102] =?UTF-8?q?perf:=20=E7=B3=BB=E7=BB=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E3=80=81=E7=B3=BB=E7=BB=9F=E7=9B=91=E6=8E=A7=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E7=A7=BB=E5=8A=A8=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/monitor/logs/login/index.vue | 2 +- src/views/monitor/logs/operation/index.vue | 2 +- src/views/monitor/logs/system/index.vue | 2 +- src/views/monitor/online/index.vue | 2 +- src/views/system/dept/index.vue | 2 +- src/views/system/dept/utils/hook.tsx | 3 ++- src/views/system/menu/index.vue | 2 +- src/views/system/menu/utils/hook.tsx | 3 ++- src/views/system/role/index.vue | 2 +- src/views/system/role/utils/hook.tsx | 3 ++- src/views/system/user/index.vue | 11 +++++++---- src/views/system/user/tree.vue | 5 +++-- src/views/system/user/utils/hook.tsx | 12 +++++++++++- 13 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/views/monitor/logs/login/index.vue b/src/views/monitor/logs/login/index.vue index 729957026..c65e6dbff 100644 --- a/src/views/monitor/logs/login/index.vue +++ b/src/views/monitor/logs/login/index.vue @@ -39,7 +39,7 @@ const { ref="formRef" :inline="true" :model="form" - class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px]" + class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto" > h(editForm, { ref: formRef }), diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index fe40f7038..ebd0d1c40 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -35,7 +35,7 @@ const { ref="formRef" :inline="true" :model="form" - class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px]" + class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto" > h(editForm, { ref: formRef }), diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 540070246..6037ff079 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -96,7 +96,7 @@ onMounted(() => { ref="formRef" :inline="true" :model="form" - class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px]" + class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto" > h(editForm, { ref: formRef }), diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 8b97a28c1..0cfc100e7 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -32,6 +32,7 @@ const { selectedNum, pagination, buttonClass, + deviceDetection, onSearch, resetForm, onbatchDel, @@ -50,20 +51,22 @@ const { + + diff --git a/src/views/pure-table/edit/demo2/columns.tsx b/src/views/pure-table/edit/demo2/columns.tsx new file mode 100644 index 000000000..4d955f6aa --- /dev/null +++ b/src/views/pure-table/edit/demo2/columns.tsx @@ -0,0 +1,116 @@ +import { ref } from "vue"; +import { tableData, options } from "../data"; +import { clone, delObjectProperty } from "@pureadmin/utils"; + +export function useColumns() { + const editMap = ref({}); + const dataList = ref(clone(tableData, true)); + + const columns: TableColumnList = [ + { + label: "姓名", + prop: "name", + cellRenderer: ({ row, index }) => ( + <> + {editMap.value[index]?.editable ? ( + + ) : ( +

{row.name}

+ )} + + ) + }, + { + label: "性别", + prop: "sex", + cellRenderer: ({ row, index }) => ( + <> + {editMap.value[index]?.editable ? ( + + ) : ( +

{row.sex === 0 ? "男" : "女"}

+ )} + + ) + }, + { + label: "爱好", + prop: "hobby", + cellRenderer: ({ row, index }) => ( + <> + {editMap.value[index]?.editable ? ( + + {options.map(item => { + return ( + + ); + })} + + ) : ( + + {options.filter(opt => opt.value == row.hobby)[0]?.label} + + )} + + ) + }, + { + label: "日期", + prop: "date", + cellRenderer: ({ row, index }) => ( + <> + {editMap.value[index]?.editable ? ( + + ) : ( +

{row.date}

+ )} + + ), + minWidth: 110 + }, + { + label: "操作", + fixed: "right", + slot: "operation" + } + ]; + + function onEdit(row, index) { + editMap.value[index] = Object.assign({ ...row, editable: true }); + } + + function onSave(index) { + editMap.value[index].editable = false; + } + + function onCancel(index) { + editMap.value[index].editable = false; + dataList.value[index] = delObjectProperty(editMap.value[index], "editable"); + } + + return { + editMap, + columns, + dataList, + onEdit, + onSave, + onCancel + }; +} diff --git a/src/views/pure-table/edit/demo2/index.vue b/src/views/pure-table/edit/demo2/index.vue new file mode 100644 index 000000000..792827fc9 --- /dev/null +++ b/src/views/pure-table/edit/demo2/index.vue @@ -0,0 +1,51 @@ + + + diff --git a/src/views/pure-table/edit/list.tsx b/src/views/pure-table/edit/list.tsx index eecc45adb..7c2e70ab8 100644 --- a/src/views/pure-table/edit/list.tsx +++ b/src/views/pure-table/edit/list.tsx @@ -1,4 +1,5 @@ import Demo1 from "./demo1/index.vue"; +import Demo2 from "./demo2/index.vue"; const rendContent = (val: string) => `代码位置:src/views/pure-table/edit/${val}/index.vue`; @@ -7,7 +8,13 @@ export const list = [ { key: "demo1", content: rendContent("demo1"), - title: "示例一", + title: "整体编辑", component: Demo1 + }, + { + key: "demo2", + content: rendContent("demo2"), + title: "单行编辑", + component: Demo2 } ]; From dbfd014209a358b7633720b6f4e710327027dcaa Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Mon, 18 Mar 2024 12:42:05 +0800 Subject: [PATCH 050/102] =?UTF-8?q?feat:=20`ReDialog`=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=A8=E5=B1=8F=E5=9B=9E=E8=B0=83=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ReDialog/index.vue | 17 ++++++++++++++--- src/components/ReDialog/type.ts | 15 ++++++++++++++- src/views/components/dialog/index.vue | 8 +++++--- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/components/ReDialog/index.vue b/src/components/ReDialog/index.vue index aa9ad3834..15b6c1073 100644 --- a/src/components/ReDialog/index.vue +++ b/src/components/ReDialog/index.vue @@ -64,9 +64,10 @@ const fullscreenClass = computed(() => { function eventsCallBack( event: EventType, options: DialogOptions, - index: number + index: number, + isClickFullScreen = false ) { - fullscreen.value = options?.fullscreen ?? false; + if (!isClickFullScreen) fullscreen.value = options?.fullscreen ?? false; if (options?.[event] && isFunction(options?.[event])) { return options?.[event]({ options, index }); } @@ -108,7 +109,17 @@ function handleClose( void; -type EventType = "open" | "close" | "openAutoFocus" | "closeAutoFocus"; +type EventType = + | "open" + | "close" + | "openAutoFocus" + | "closeAutoFocus" + | "fullscreenCallBack"; type ArgsType = { /** `cancel` 点击取消按钮、`sure` 点击确定按钮、`close` 点击右上角关闭按钮或空白页或按下了esc键 */ command: "cancel" | "sure" | "close"; @@ -175,6 +180,14 @@ interface DialogOptions extends DialogProps { index: number; args: any; }) => void; + /** 点击全屏按钮时的回调 */ + fullscreenCallBack?: ({ + options, + index + }: { + options: DialogOptions; + index: number; + }) => void; /** 输入焦点聚焦在 `Dialog` 内容时的回调 */ openAutoFocus?: ({ options, diff --git a/src/views/components/dialog/index.vue b/src/views/components/dialog/index.vue index 0df0df694..5a8f59e04 100644 --- a/src/views/components/dialog/index.vue +++ b/src/views/components/dialog/index.vue @@ -43,9 +43,11 @@ function onFullscreenClick() { function onFullscreenIconClick() { addDialog({ - title: "全屏按钮", + title: "全屏按钮和全屏事件", fullscreenIcon: true, - contentRenderer: () =>

弹框内容-全屏按钮

+ fullscreenCallBack: ({ options, index }) => + message(options.fullscreen ? "全屏" : "非全屏"), + contentRenderer: () =>

弹框内容-全屏按钮和全屏事件

}); } @@ -468,7 +470,7 @@ function onBeforeSureClick() { 基础用法 可拖拽 全屏 - 全屏按钮 + 全屏按钮和全屏事件 无背景遮罩层 自定义弹出位置 延时2秒打开弹框 From e46d3e57fed4806fb842ffc185e057d774f77678 Mon Sep 17 00:00:00 2001 From: xiaoming <1923740402@qq.com> Date: Mon, 18 Mar 2024 16:13:26 +0800 Subject: [PATCH 051/102] =?UTF-8?q?feat:=20`pure-admin-table`=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8D=95=E5=85=83=E6=A0=BC=E7=BC=96=E8=BE=91=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E7=9A=84=E7=AE=80=E6=98=93=E7=94=A8=E6=B3=95=20(#992)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: `pure-admin-table`添加单元格编辑表格的简易用法 --- locales/zh-CN.yaml | 4 +- src/views/pure-table/edit/data.ts | 29 ++++- src/views/pure-table/edit/demo1/index.vue | 4 +- src/views/pure-table/edit/demo2/index.vue | 5 +- src/views/pure-table/edit/demo3/columns.tsx | 87 +++++++++++++ src/views/pure-table/edit/demo3/index.vue | 22 ++++ src/views/pure-table/edit/list.tsx | 7 ++ src/views/pure-table/high/edit/columns.tsx | 133 -------------------- src/views/pure-table/high/edit/index.vue | 9 -- src/views/pure-table/high/list.tsx | 7 -- 10 files changed, 150 insertions(+), 157 deletions(-) create mode 100644 src/views/pure-table/edit/demo3/columns.tsx create mode 100644 src/views/pure-table/edit/demo3/index.vue delete mode 100644 src/views/pure-table/high/edit/columns.tsx delete mode 100644 src/views/pure-table/high/edit/index.vue diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index cc6281b21..882ed3241 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -128,8 +128,8 @@ menus: hsSensitive: 敏感词过滤 hsPinyin: 汉语拼音 hsdanmaku: 弹幕 - hsPureTableBase: 基础用法(23个示例) - hsPureTableHigh: 高级用法(11个示例) + hsPureTableBase: 基础用法 + hsPureTableHigh: 高级用法 hsPureTableEdit: 可编辑用法 hsboard: 艺术画板 hsMenuoverflow: 目录超出显示 Tooltip 文字提示 diff --git a/src/views/pure-table/edit/data.ts b/src/views/pure-table/edit/data.ts index 9ce85d053..1fbeaf340 100644 --- a/src/views/pure-table/edit/data.ts +++ b/src/views/pure-table/edit/data.ts @@ -1,23 +1,27 @@ const tableData = [ { + id: 1, name: "Tom", sex: 0, // 0代表男 1代表女 hobby: 2, date: "2024-03-17" }, { + id: 2, name: "Jack", sex: 0, hobby: 1, date: "2024-03-18" }, { + id: 3, name: "Lily", sex: 1, hobby: 1, date: "2024-03-19" }, { + id: 4, name: "Mia", sex: 1, hobby: 3, @@ -44,4 +48,27 @@ const options = [ } ]; -export { tableData, options }; +const tableDataEdit = [ + { + id: 1, + name: "Tom", + address: "home" + }, + { + id: 2, + name: "Jack", + address: "office" + }, + { + id: 3, + name: "Lily", + address: "library" + }, + { + id: 4, + name: "Mia", + address: "playground" + } +]; + +export { tableData, tableDataEdit, options }; diff --git a/src/views/pure-table/edit/demo1/index.vue b/src/views/pure-table/edit/demo1/index.vue index 208bfd065..6beea0cd3 100644 --- a/src/views/pure-table/edit/demo1/index.vue +++ b/src/views/pure-table/edit/demo1/index.vue @@ -10,9 +10,9 @@ const { columns, dataList, onAdd, onDel } = useColumns();