diff --git a/packages/@core/base/shared/package.json b/packages/@core/base/shared/package.json index 134986fbceb..3127a3d8229 100644 --- a/packages/@core/base/shared/package.json +++ b/packages/@core/base/shared/package.json @@ -81,7 +81,6 @@ "dependencies": { "@ctrl/tinycolor": "catalog:", "@tanstack/vue-store": "catalog:", - "@vue/reactivity": "catalog:", "@vue/shared": "catalog:", "clsx": "catalog:", "defu": "catalog:", diff --git a/packages/@core/base/shared/src/utils/index.ts b/packages/@core/base/shared/src/utils/index.ts index ef180cf0b0b..e5526edf00a 100644 --- a/packages/@core/base/shared/src/utils/index.ts +++ b/packages/@core/base/shared/src/utils/index.ts @@ -5,7 +5,6 @@ export * from './inference'; export * from './letter'; export * from './merge'; export * from './nprogress'; -export * from './reactivity'; export * from './state-handler'; export * from './to'; export * from './tree'; diff --git a/packages/@core/base/shared/src/utils/reactivity.ts b/packages/@core/base/shared/src/utils/reactivity.ts deleted file mode 100644 index e2d66c3855d..00000000000 --- a/packages/@core/base/shared/src/utils/reactivity.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { isProxy, isReactive, isRef, toRaw } from '@vue/reactivity'; - -function deepToRaw>(sourceObj: T): T { - const objectIterator = (input: any): any => { - if (Array.isArray(input)) { - return input.map((item) => objectIterator(item)); - } - if (isRef(input) || isReactive(input) || isProxy(input)) { - return objectIterator(toRaw(input)); - } - if (input && typeof input === 'object') { - const result = {} as T; - for (const key in input) { - if (Object.prototype.hasOwnProperty.call(input, key)) { - result[key as keyof T] = objectIterator(input[key]); - } - } - return result; - } - return input; - }; - - return objectIterator(sourceObj); -} - -export { deepToRaw }; diff --git a/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue b/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue index 44b40e5d14d..abe50da9298 100644 --- a/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue +++ b/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue @@ -7,7 +7,6 @@ import { computed, ref } from 'vue'; import { Pin, X } from '@vben-core/icons'; import { VbenContextMenu, VbenIcon } from '@vben-core/shadcn-ui'; -import { deepToRaw } from '@vben-core/shared/utils'; interface Props extends TabsProps {} @@ -40,19 +39,21 @@ const style = computed(() => { }; }); -const tabsView = computed((): TabConfig[] => { - return props.tabs.map((_tab) => { - const tab = deepToRaw(_tab); +const tabsView = computed(() => { + return props.tabs.map((tab) => { + const { fullPath, meta, name, path } = tab || {}; + const { affixTab, icon, newTabTitle, tabClosable, title } = meta || {}; return { - ...tab, - affixTab: !!tab.meta?.affixTab, - closable: Reflect.has(tab.meta, 'tabClosable') - ? !!tab.meta.tabClosable - : true, - icon: tab.meta.icon as string, - key: tab.fullPath || tab.path, - title: (tab.meta?.newTabTitle || tab.meta?.title || tab.name) as string, - }; + affixTab: !!affixTab, + closable: Reflect.has(meta, 'tabClosable') ? !!tabClosable : true, + fullPath, + icon: icon as string, + key: fullPath || path, + meta, + name, + path, + title: (newTabTitle || title || name) as string, + } as TabConfig; }); }); diff --git a/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue b/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue index e1247267ca0..e08cb8d4aab 100644 --- a/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue +++ b/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue @@ -7,7 +7,6 @@ import { computed } from 'vue'; import { Pin, X } from '@vben-core/icons'; import { VbenContextMenu, VbenIcon } from '@vben-core/shadcn-ui'; -import { deepToRaw } from '@vben-core/shared/utils'; interface Props extends TabsProps {} @@ -46,19 +45,21 @@ const typeWithClass = computed(() => { return typeClasses[props.styleType || 'plain'] || { content: '' }; }); -const tabsView = computed((): TabConfig[] => { - return props.tabs.map((_tab) => { - const tab = deepToRaw(_tab); +const tabsView = computed(() => { + return props.tabs.map((tab) => { + const { fullPath, meta, name, path } = tab || {}; + const { affixTab, icon, newTabTitle, tabClosable, title } = meta || {}; return { - ...tab, - affixTab: !!tab.meta?.affixTab, - closable: Reflect.has(tab.meta, 'tabClosable') - ? !!tab.meta.tabClosable - : true, - icon: tab.meta.icon as string, - key: tab.fullPath || tab.path, - title: (tab.meta?.newTabTitle || tab.meta?.title || tab.name) as string, - }; + affixTab: !!affixTab, + closable: Reflect.has(meta, 'tabClosable') ? !!tabClosable : true, + fullPath, + icon: icon as string, + key: fullPath || path, + meta, + name, + path, + title: (newTabTitle || title || name) as string, + } as TabConfig; }); }); diff --git a/packages/effects/layouts/src/basic/layout.vue b/packages/effects/layouts/src/basic/layout.vue index 0305eed4a0c..16c3551f203 100644 --- a/packages/effects/layouts/src/basic/layout.vue +++ b/packages/effects/layouts/src/basic/layout.vue @@ -11,7 +11,7 @@ import { usePreferences, } from '@vben/preferences'; import { useLockStore } from '@vben/stores'; -import { deepToRaw, mapTree } from '@vben/utils'; +import { cloneDeep, mapTree } from '@vben/utils'; import { VbenAdminLayout } from '@vben-core/layout-ui'; import { VbenBackTop, VbenLogo } from '@vben-core/shadcn-ui'; @@ -112,7 +112,7 @@ const { function wrapperMenus(menus: MenuRecordRaw[]) { return mapTree(menus, (item) => { - return { ...deepToRaw(item), name: $t(item.name) }; + return { ...cloneDeep(item), name: $t(item.name) }; }); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 706b7b29786..a724aebd783 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -126,9 +126,6 @@ catalogs: '@vitejs/plugin-vue-jsx': specifier: ^4.0.1 version: 4.0.1 - '@vue/reactivity': - specifier: ^3.5.12 - version: 3.5.12 '@vue/shared': specifier: ^3.5.12 version: 3.5.12 @@ -850,7 +847,7 @@ importers: version: link:../internal/vite-config '@vite-pwa/vitepress': specifier: 'catalog:' - version: 0.5.3(vite-plugin-pwa@0.20.5(vite@5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0)) + version: 0.5.3(vite-plugin-pwa@0.20.5(vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0)) vitepress: specifier: 'catalog:' version: 1.4.1(@algolia/client-search@4.24.0)(@types/node@22.7.5)(async-validator@4.2.5)(axios@1.7.7)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.47)(qrcode@1.5.4)(sass@1.79.5)(search-insights@2.17.2)(sortablejs@1.15.3)(terser@5.34.1)(typescript@5.6.3) @@ -1212,9 +1209,6 @@ importers: '@tanstack/vue-store': specifier: 'catalog:' version: 0.5.5(vue@3.5.12(typescript@5.6.3)) - '@vue/reactivity': - specifier: 'catalog:' - version: 3.5.12 '@vue/shared': specifier: 'catalog:' version: 3.5.12 @@ -4669,10 +4663,6 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.8.1': - resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.9.0': resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4690,10 +4680,6 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.8.1': - resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.9.0': resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4707,15 +4693,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.8.1': - resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.9.0': resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4731,12 +4708,6 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.8.1': - resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/utils@8.9.0': resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4747,10 +4718,6 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.8.1': - resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.9.0': resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -10091,37 +10058,6 @@ packages: peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 - vite@5.4.8: - resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@5.4.9: resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -13580,11 +13516,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.8.1': - dependencies: - '@typescript-eslint/types': 8.8.1 - '@typescript-eslint/visitor-keys': 8.8.1 - '@typescript-eslint/scope-manager@8.9.0': dependencies: '@typescript-eslint/types': 8.9.0 @@ -13604,8 +13535,6 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.8.1': {} - '@typescript-eslint/types@8.9.0': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)': @@ -13623,21 +13552,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 8.8.1 - '@typescript-eslint/visitor-keys': 8.8.1 - debug: 4.3.7 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.9.0 @@ -13664,17 +13578,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3)) - '@typescript-eslint/scope-manager': 8.8.1 - '@typescript-eslint/types': 8.8.1 - '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) - eslint: 9.12.0(jiti@2.3.3) - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@8.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3)) @@ -13691,11 +13594,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.8.1': - dependencies: - '@typescript-eslint/types': 8.8.1 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.9.0': dependencies: '@typescript-eslint/types': 8.9.0 @@ -13729,9 +13627,9 @@ snapshots: - encoding - supports-color - '@vite-pwa/vitepress@0.5.3(vite-plugin-pwa@0.20.5(vite@5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0))': + '@vite-pwa/vitepress@0.5.3(vite-plugin-pwa@0.20.5(vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0))': dependencies: - vite-plugin-pwa: 0.20.5(vite@5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0) + vite-plugin-pwa: 0.20.5(vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0) '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(vue@3.5.12(typescript@5.6.3))': dependencies: @@ -13743,11 +13641,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.1.4(vite@5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(vue@3.5.12(typescript@5.6.3))': - dependencies: - vite: 5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1) - vue: 3.5.12(typescript@5.6.3) - '@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(vue@3.5.12(typescript@5.6.3))': dependencies: vite: 5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1) @@ -15578,7 +15471,7 @@ snapshots: eslint-plugin-import-x@4.3.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3): dependencies: - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 8.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) debug: 4.3.7 doctrine: 3.0.0 eslint: 9.12.0(jiti@2.3.3) @@ -16846,7 +16739,7 @@ snapshots: citty: 0.1.6 clipboardy: 4.0.0 consola: 3.2.3 - crossws: 0.2.4 + crossws: 0.3.1 defu: 6.1.4 get-port-please: 3.1.2 h3: 1.13.0 @@ -16859,8 +16752,6 @@ snapshots: ufo: 1.5.4 untun: 0.1.3 uqr: 0.1.2 - transitivePeerDependencies: - - uWebSockets.js listr2@8.2.5: dependencies: @@ -19487,8 +19378,6 @@ snapshots: ufo: 1.5.4 optionalDependencies: ioredis: 5.4.1 - transitivePeerDependencies: - - uWebSockets.js untun@0.1.3: dependencies: @@ -19671,17 +19560,6 @@ snapshots: picocolors: 1.1.0 vite: 5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1) - vite-plugin-pwa@0.20.5(vite@5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0): - dependencies: - debug: 4.3.7 - pretty-bytes: 6.1.1 - tinyglobby: 0.2.9 - vite: 5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1) - workbox-build: 7.1.1 - workbox-window: 7.1.0 - transitivePeerDependencies: - - supports-color - vite-plugin-pwa@0.20.5(vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(workbox-build@7.1.1)(workbox-window@7.1.0): dependencies: debug: 4.3.7 @@ -19724,18 +19602,6 @@ snapshots: transitivePeerDependencies: - supports-color - vite@5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 - optionalDependencies: - '@types/node': 22.7.5 - fsevents: 2.3.3 - less: 4.2.0 - sass: 1.79.5 - terser: 5.34.1 - vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1): dependencies: esbuild: 0.21.5 @@ -19764,7 +19630,7 @@ snapshots: '@shikijs/transformers': 1.22.0 '@shikijs/types': 1.22.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.1.4(vite@5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(vue@3.5.12(typescript@5.6.3)) + '@vitejs/plugin-vue': 5.1.4(vite@5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1))(vue@3.5.12(typescript@5.6.3)) '@vue/devtools-api': 7.4.6 '@vue/shared': 3.5.12 '@vueuse/core': 11.1.0(vue@3.5.12(typescript@5.6.3)) @@ -19773,7 +19639,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.1.0 shiki: 1.22.0 - vite: 5.4.8(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1) + vite: 5.4.9(@types/node@22.7.5)(less@4.2.0)(sass@1.79.5)(terser@5.34.1) vue: 3.5.12(typescript@5.6.3) optionalDependencies: postcss: 8.4.47