From c3888bedf229c025b41f97c307771493e84839b9 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Fri, 9 Dec 2022 20:16:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(tdesign-vue-next-adapter):=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9Etdesign=E8=AE=BE=E9=85=8D=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/tdesign-vue-next-adapter/.npmignore | 30 ++ .../tdesign-vue-next-adapter/package.json | 55 +++ .../src/DatePicker.vue | 75 ++++ .../tdesign-vue-next-adapter/src/Input.vue | 49 +++ .../tdesign-vue-next-adapter/src/index.ts | 383 ++++++++++++++++++ .../src/shims-vue.d.ts | 6 + .../tsconfig.build.json | 13 + .../tdesign-vue-next-adapter/tsconfig.json | 6 + .../tdesign-vue-next-adapter/vite.config.ts | 45 ++ pnpm-lock.yaml | 137 ++++++- 10 files changed, 778 insertions(+), 21 deletions(-) create mode 100644 packages/tdesign-vue-next-adapter/.npmignore create mode 100644 packages/tdesign-vue-next-adapter/package.json create mode 100644 packages/tdesign-vue-next-adapter/src/DatePicker.vue create mode 100644 packages/tdesign-vue-next-adapter/src/Input.vue create mode 100644 packages/tdesign-vue-next-adapter/src/index.ts create mode 100644 packages/tdesign-vue-next-adapter/src/shims-vue.d.ts create mode 100644 packages/tdesign-vue-next-adapter/tsconfig.build.json create mode 100644 packages/tdesign-vue-next-adapter/tsconfig.json create mode 100644 packages/tdesign-vue-next-adapter/vite.config.ts diff --git a/packages/tdesign-vue-next-adapter/.npmignore b/packages/tdesign-vue-next-adapter/.npmignore new file mode 100644 index 00000000..595cc166 --- /dev/null +++ b/packages/tdesign-vue-next-adapter/.npmignore @@ -0,0 +1,30 @@ +.babelrc +.eslintrc +.editorconfig +node_modules +.DS_Store +examples +tests +.code.yml +reports +tsconfig.json +vite.config.ts + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +pnpm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/tdesign-vue-next-adapter/package.json b/packages/tdesign-vue-next-adapter/package.json new file mode 100644 index 00000000..e7bb57bc --- /dev/null +++ b/packages/tdesign-vue-next-adapter/package.json @@ -0,0 +1,55 @@ +{ + "version": "1.2.0-beta.25", + "name": "@tmagic/tdesign-vue-next-adapter", + "type": "module", + "sideEffects": [ + "dist/*" + ], + "main": "dist/tmagic-tdesign-vue-next-adapter.umd.cjs", + "module": "dist/tmagic-tdesign-vue-next-adapter.js", + "types": "types/index.d.ts", + "exports": { + ".": { + "import": "./dist/tmagic-tdesign-vue-next-adapter.js", + "require": "./dist/tmagic-tdesign-vue-next-adapter.umd.cjs" + }, + "./*": "./*" + }, + "license": "Apache-2.0", + "scripts": { + "build": "npm run build:type && vite build", + "build:type": "npm run clear:type && tsc --declaration --emitDeclarationOnly --project tsconfig.build.json", + "clear:type": "rimraf ./types" + }, + "engines": { + "node": ">=14" + }, + "repository": { + "type": "git", + "url": "https://github.com/Tencent/tmagic-editor.git" + }, + "homepage": "https://tencent.github.io/tmagic-editor/docs/", + "keywords": [ + "design", + "vue", + "vue3", + "typescript" + ], + "dependencies": { + "element-plus": "^2.2.19", + "tdesign-vue-next": "^0.26.0", + "vue": "^3.2.37" + }, + "peerDependencies": { + "element-plus": "^2.2.19", + "vue": "^3.2.37" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^3.1.0", + "@vue/compiler-sfc": "^3.2.37", + "@types/node": "^15.12.4", + "rimraf": "^3.0.2", + "typescript": "^4.7.4", + "vite": "^3.1.3" + } +} diff --git a/packages/tdesign-vue-next-adapter/src/DatePicker.vue b/packages/tdesign-vue-next-adapter/src/DatePicker.vue new file mode 100644 index 00000000..4af3d061 --- /dev/null +++ b/packages/tdesign-vue-next-adapter/src/DatePicker.vue @@ -0,0 +1,75 @@ + + + diff --git a/packages/tdesign-vue-next-adapter/src/Input.vue b/packages/tdesign-vue-next-adapter/src/Input.vue new file mode 100644 index 00000000..be58e49e --- /dev/null +++ b/packages/tdesign-vue-next-adapter/src/Input.vue @@ -0,0 +1,49 @@ + + + diff --git a/packages/tdesign-vue-next-adapter/src/index.ts b/packages/tdesign-vue-next-adapter/src/index.ts new file mode 100644 index 00000000..071aef70 --- /dev/null +++ b/packages/tdesign-vue-next-adapter/src/index.ts @@ -0,0 +1,383 @@ +import { + ElDropdown, + ElDropdownItem, + ElDropdownMenu, + ElIcon, + ElMessageBox, + ElPagination, + ElPopover, + ElScrollbar, + ElTable, + ElTableColumn, + ElTabPane, + ElTabs, + ElTree, +} from 'element-plus'; +import { + Button as TButton, + Card as TCard, + Cascader as TCascader, + Checkbox as TCheckbox, + CheckboxGroup as TCheckboxGroup, + Col as TCol, + Collapse as TCollapse, + CollapsePanel as TCollapsePanel, + ColorPicker as TColorPicker, + Dialog as TDialog, + Divider as TDivider, + Form as TForm, + FormItem as TFormItem, + InputNumber as TInputNumber, + MessagePlugin, + Option as TOption, + OptionGroup as TOptionGroup, + Radio as TRadio, + RadioGroup as TRadioGroup, + Row as TRow, + Select as TSelect, + StepItem as TStepItem, + Steps as TSteps, + Switch as TSwitch, + Tag as TTag, + TimePicker as TTimePicker, + Tooltip as TTooltip, + Upload as TUpload, +} from 'tdesign-vue-next'; + +import DatePicker from './DatePicker.vue'; +import Input from './Input.vue'; + +const adapter: any = { + message: MessagePlugin, + messageBox: ElMessageBox, + components: { + button: { + component: TButton, + props: (props: any) => ({ + theme: props.type, + size: props.size === 'default' ? 'medium' : props.size, + icon: props.icon, + variant: props.text ? 'text' : 'base', + }), + }, + + card: { + component: TCard, + props: (props: any) => ({ + shadow: props.shadow !== 'never', + hoverShadow: props.shadow === 'hover', + header: props.header, + }), + }, + + cascader: { + component: TCascader, + props: (props: any) => ({ + modelValue: props.modelValue, + placeholder: props.placeholder, + disabled: props.disabled, + clearable: props.clearable, + filterable: props.filterable, + options: props.options, + size: props.size === 'default' ? 'medium' : props.size, + trigger: props.props.expandTrigger, + multiple: props.props.multiple, + checkStrictly: props.props.checkStrictly, + valueType: typeof props.props.emitPath === 'undefined' || props.props.emitPath === true ? 'full' : 'single', + lazy: props.props.lazy, + }), + }, + + checkbox: { + component: TCheckbox, + props: (props: any) => ({ + modelValue: props.modelValue, + label: props.label, + value: props.value, + disabled: props.disabled, + }), + }, + + checkboxGroup: { + component: TCheckboxGroup, + props: (props: any) => ({ + modelValue: props.modelValue, + label: props.label, + disabled: props.disabled, + }), + }, + + col: { + component: TCol, + props: (props: any) => ({ + span: props.span, + }), + }, + + collapse: { + component: TCollapse, + props: (props: any) => ({ + value: props.modelValue, + expandIconPlacement: 'right', + }), + }, + + collapseItem: { + component: TCollapsePanel, + props: (props: any) => ({ + value: props.name, + header: props.title, + disabled: props.disabled, + }), + }, + + colorPicker: { + component: TColorPicker, + props: (props: any) => ({ + modelValue: props.modelValue, + disabled: props.disabled, + size: props.size === 'default' ? 'medium' : props.size, + enableAlpha: props.showAlpha, + formate: props.showAlpha ? 'RGBA' : 'RGB', + }), + }, + + datePicker: { + component: DatePicker, + props: (props: any) => props, + }, + + dialog: { + component: TDialog, + props: (props: any) => ({ + visible: props.modelValue, + attach: props.appendToBody ? 'body' : '', + header: props.title, + width: props.width, + mode: props.fullscreen ? 'full-screen' : 'modal', + closeOnOverlayClick: props.closeOnClickModal, + }), + }, + + divider: { + component: TDivider, + props: (props: any) => ({ + layout: props.direction, + content: props.contentPosition, + }), + }, + + dropdown: { + component: ElDropdown, + props: (props: any) => props, + }, + + dropdownItem: { + component: ElDropdownItem, + props: (props: any) => props, + }, + + dropdownMenu: { + component: ElDropdownMenu, + props: (props: any) => props, + }, + + form: { + component: TForm, + props: (props: any) => ({ + data: props.model, + labelWidth: props.labelWidth, + disabled: props.disabled, + labelAlign: props.labelPosition, + layout: props.inline ? 'inline' : 'vertical', + }), + }, + + formItem: { + component: TFormItem, + props: (props: any) => ({ + labelWidth: props.labelWidth, + name: props.prop, + rules: props.rules, + }), + }, + + icon: { + component: ElIcon, + props: (props: any) => props, + }, + + input: { + component: Input, + props: (props: any) => props, + }, + + inputNumber: { + component: TInputNumber, + props: (props: any) => ({ + modelValue: props.modelValue, + align: props.controlsPosition, + disabled: props.disabled, + placeholder: props.placeholder, + step: props.step, + min: props.min, + max: props.max, + size: props.size === 'default' ? 'medium' : props.size, + }), + }, + + option: { + component: TOption, + props: (props: any) => ({ + value: props.value, + label: props.label, + disabled: props.disabled, + }), + }, + + optionGroup: { + component: TOptionGroup, + props: (props: any) => props, + }, + + pagination: { + component: ElPagination, + props: (props: any) => props, + }, + + popover: { + component: ElPopover, + props: (props: any) => props, + }, + + radio: { + component: TRadio, + props: (props: any) => ({ + label: props.label, + }), + }, + + radioGroup: { + component: TRadioGroup, + props: (props: any) => ({ + modelValue: props.modelValue, + disabled: props.disabled, + size: props.size === 'default' ? 'medium' : props.size, + }), + }, + + row: { + component: TRow, + }, + + scrollbar: { + component: ElScrollbar, + props: (props: any) => props, + }, + + select: { + component: TSelect, + props: (props: any) => ({ + modelValue: props.modelValue, + clearable: props.clearable, + filterable: props.filterable, + disabled: props.disabled, + placeholder: props.placeholder, + multiple: props.multiple, + valueType: props.valueKey, + remoteMethod: props.onSearch, + size: props.size === 'default' ? 'medium' : props.size, + popupProps: { + overlayClassName: props.popperClass, + }, + }), + }, + + step: { + component: TStepItem, + props: (props: any) => ({ + title: props.props, + value: props.status, + }), + }, + + steps: { + component: TSteps, + props: (props: any) => ({ + current: props.active, + }), + }, + + switch: { + component: TSwitch, + props: (props: any) => ({ + modelValue: props.modelValue, + disabled: props.disabled, + label: props.label, + customValue: [props.activeValue ?? true, props.inactiveValue ?? false], + size: props.size === 'default' ? 'medium' : props.size, + }), + }, + + table: { + component: ElTable, + props: (props: any) => props, + }, + + tableColumn: { + component: ElTableColumn, + props: (props: any) => props, + }, + + tabPane: { + component: ElTabPane, + props: (props: any) => props, + }, + + tabs: { + component: ElTabs, + props: (props: any) => props, + }, + + tag: { + component: TTag, + props: (props: any) => ({ + theme: props.type ? props.type : 'default', + }), + }, + + timePicker: { + component: TTimePicker, + props: (props: any) => ({ + modelValue: props.modelValue, + disabled: props.disabled, + size: props.size === 'default' ? 'medium' : props.size, + placeholder: props.placeholder, + }), + }, + + tooltip: { + component: TTooltip, + props: (props: any) => ({ + placement: props.placement, + content: props.content, + }), + }, + + tree: { + component: ElTree, + props: (props: any) => props, + }, + + upload: { + component: TUpload, + props: (props: any) => ({ + action: props.action, + disabled: props.disabled, + autoUpload: props.autoUpload, + }), + }, + }, +}; + +export default adapter; diff --git a/packages/tdesign-vue-next-adapter/src/shims-vue.d.ts b/packages/tdesign-vue-next-adapter/src/shims-vue.d.ts new file mode 100644 index 00000000..30030494 --- /dev/null +++ b/packages/tdesign-vue-next-adapter/src/shims-vue.d.ts @@ -0,0 +1,6 @@ +declare module '*.vue' { + import { DefineComponent } from 'vue'; + + const component: DefineComponent<{}, {}, any>; + export default component; +} diff --git a/packages/tdesign-vue-next-adapter/tsconfig.build.json b/packages/tdesign-vue-next-adapter/tsconfig.build.json new file mode 100644 index 00000000..c9476221 --- /dev/null +++ b/packages/tdesign-vue-next-adapter/tsconfig.build.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "declaration": true, + "declarationDir": "types", + "forceConsistentCasingInFileNames": true, + "paths": {}, + }, + "include": [ + "src" + ], +} diff --git a/packages/tdesign-vue-next-adapter/tsconfig.json b/packages/tdesign-vue-next-adapter/tsconfig.json new file mode 100644 index 00000000..6c40cf1e --- /dev/null +++ b/packages/tdesign-vue-next-adapter/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": "../..", + }, +} diff --git a/packages/tdesign-vue-next-adapter/vite.config.ts b/packages/tdesign-vue-next-adapter/vite.config.ts new file mode 100644 index 00000000..eaeb81cc --- /dev/null +++ b/packages/tdesign-vue-next-adapter/vite.config.ts @@ -0,0 +1,45 @@ +/* + * Tencent is pleased to support the open source community by making TMagicEditor available. + * + * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; + +import pkg from './package.json'; + +export default defineConfig({ + plugins: [vue()], + + build: { + cssCodeSplit: false, + sourcemap: true, + minify: false, + target: 'esnext', + + lib: { + entry: 'src/index.ts', + name: 'TMagicTdesignVueNextAdapter', + fileName: 'tmagic-tdesign-vue-next-adapter', + }, + + rollupOptions: { + // 确保外部化处理那些你不想打包进库的依赖 + external(id: string) { + return Object.keys(pkg.dependencies).some((k) => new RegExp(`^${k}`).test(id)); + }, + }, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9c7088d..746b425e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,6 +366,29 @@ importers: vite-plugin-vue-setup-extend: 0.4.0_vite@3.1.3 vue-tsc: 1.0.11_typescript@4.7.4 + packages/tdesign-vue-next-adapter: + specifiers: + '@types/node': ^15.12.4 + '@vitejs/plugin-vue': ^3.1.0 + '@vue/compiler-sfc': ^3.2.37 + element-plus: ^2.2.19 + rimraf: ^3.0.2 + tdesign-vue-next: ^0.26.0 + typescript: ^4.7.4 + vite: ^3.1.3 + vue: ^3.2.37 + dependencies: + element-plus: 2.2.19_vue@3.2.45 + tdesign-vue-next: 0.26.0_vue@3.2.45 + vue: 3.2.45 + devDependencies: + '@types/node': 15.14.9 + '@vitejs/plugin-vue': 3.2.0_vite@3.2.4+vue@3.2.45 + '@vue/compiler-sfc': 3.2.45 + rimraf: 3.0.2 + typescript: 4.7.4 + vite: 3.2.4_@types+node@15.14.9 + packages/ui: specifiers: '@testing-library/vue': ^6.4.2 @@ -1030,7 +1053,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 - dev: true /@babel/standalone/7.19.2: resolution: {integrity: sha512-p+U+TYGevnPUemfHeQVFwABp9kWe5+h20MKxCzvyeAD1SIm7tlvo6lGRFz1WakAxmVZvLz7WDuWjwdC8FZKp+A==} @@ -1367,6 +1389,14 @@ packages: dependencies: vue: 3.2.37 + /@element-plus/icons-vue/2.0.9_vue@3.2.45: + resolution: {integrity: sha512-okdrwiVeKBmW41Hkl0eMrXDjzJwhQMuKiBOu17rOszqM+LS/yBYpNQNV5Jvoh06Wc+89fMmb/uhzf8NZuDuUaQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + vue: 3.2.45 + dev: false + /@esbuild/android-arm/0.15.16: resolution: {integrity: sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==} engines: {node: '>=12'} @@ -1528,6 +1558,10 @@ packages: fastq: 1.13.0 dev: true + /@popperjs/core/2.11.6: + resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + dev: false + /@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -1767,7 +1801,14 @@ packages: /@types/sortablejs/1.13.0: resolution: {integrity: sha512-C3064MH72iEfeGCYEGCt7FCxXoAXaMPG0QPnstcxvPmbl54erpISu06d++FY37Smja64iWy5L8wOyHHBghWbJQ==} - dev: true + + /@types/tinycolor2/1.4.3: + resolution: {integrity: sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ==} + dev: false + + /@types/validator/13.7.10: + resolution: {integrity: sha512-t1yxFAR2n0+VO6hd/FJ9F2uezAZVWHLmpmlJzm1eX03+H7+HsuTAp7L8QJs+2pQCfWkP1+EXsGK9Z9v7o/qPVQ==} + dev: false /@types/web-bluetooth/0.0.16: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} @@ -1927,7 +1968,7 @@ packages: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.1.3_sass@1.52.2+terser@5.14.2 + vite: 3.1.3 vue: 3.2.37 dev: true @@ -2054,7 +2095,6 @@ packages: '@vue/shared': 3.2.45 estree-walker: 2.0.2 source-map: 0.6.1 - dev: true /@vue/compiler-dom/3.2.37: resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} @@ -2074,13 +2114,12 @@ packages: dependencies: '@vue/compiler-core': 3.2.45 '@vue/shared': 3.2.45 - dev: true /@vue/compiler-sfc/2.7.4: resolution: {integrity: sha512-WCaF33mlKLSvHDKvOD6FzTa5CI2FlMTeJf3MxJsNP0KDgRoI6RdXhHo9dtvCqV4Sywf9Owm17wTLT1Ymu/WsOQ==} dependencies: '@babel/parser': 7.18.4 - postcss: 8.4.16 + postcss: 8.4.19 source-map: 0.6.1 /@vue/compiler-sfc/3.2.37: @@ -2108,7 +2147,7 @@ packages: '@vue/shared': 3.2.41 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.16 + postcss: 8.4.19 source-map: 0.6.1 dev: true @@ -2123,9 +2162,8 @@ packages: '@vue/shared': 3.2.45 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.16 + postcss: 8.4.19 source-map: 0.6.1 - dev: true /@vue/compiler-ssr/3.2.37: resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} @@ -2145,7 +2183,6 @@ packages: dependencies: '@vue/compiler-dom': 3.2.45 '@vue/shared': 3.2.45 - dev: true /@vue/devtools-api/6.1.4: resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} @@ -2182,7 +2219,6 @@ packages: '@vue/shared': 3.2.45 estree-walker: 2.0.2 magic-string: 0.25.9 - dev: true /@vue/reactivity/3.2.37: resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} @@ -2193,7 +2229,6 @@ packages: resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} dependencies: '@vue/shared': 3.2.45 - dev: true /@vue/runtime-core/3.2.37: resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} @@ -2206,7 +2241,6 @@ packages: dependencies: '@vue/reactivity': 3.2.45 '@vue/shared': 3.2.45 - dev: true /@vue/runtime-dom/3.2.37: resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} @@ -2221,7 +2255,6 @@ packages: '@vue/runtime-core': 3.2.45 '@vue/shared': 3.2.45 csstype: 2.6.20 - dev: true /@vue/server-renderer/3.2.37_vue@3.2.37: resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} @@ -2240,7 +2273,6 @@ packages: '@vue/compiler-ssr': 3.2.45 '@vue/shared': 3.2.45 vue: 3.2.45 - dev: true /@vue/shared/3.2.37: resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} @@ -2251,7 +2283,6 @@ packages: /@vue/shared/3.2.45: resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} - dev: true /@vue/test-utils/2.0.0_vue@3.2.37: resolution: {integrity: sha512-zL5kygNq7hONrO1CzaUGprEAklAX+pH8J1MPMCU3Rd2xtSYkZ+PmKU3oEDRg8VAGdL5lNJHzDgrud5amFPtirw==} @@ -2282,7 +2313,6 @@ packages: transitivePeerDependencies: - '@vue/composition-api' - vue - dev: true /@vueuse/metadata/9.6.0: resolution: {integrity: sha512-sIC8R+kWkIdpi5X2z2Gk8TRYzmczDwHRhEFfCu2P+XW2JdPoXrziqsGpDDsN7ykBx4ilwieS7JUIweVGhvZ93w==} @@ -2302,7 +2332,6 @@ packages: transitivePeerDependencies: - '@vue/composition-api' - vue - dev: true /JSONStream/1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -3390,6 +3419,31 @@ packages: transitivePeerDependencies: - '@vue/composition-api' + /element-plus/2.2.19_vue@3.2.45: + resolution: {integrity: sha512-uN0gt9lUus/IHzu5J6vkbYoYJgUtU05osdtFv9RO27bHKOG5GN7dH6uA3OKfkQQ6R2sV8ZxY1rc9PH1X8Dgrow==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@ctrl/tinycolor': 3.4.1 + '@element-plus/icons-vue': 2.0.9_vue@3.2.45 + '@floating-ui/dom': 1.0.2 + '@popperjs/core': /@sxzz/popperjs-es/2.11.7 + '@types/lodash': 4.14.182 + '@types/lodash-es': 4.17.6 + '@vueuse/core': 9.6.0_vue@3.2.45 + async-validator: 4.2.5 + dayjs: 1.11.4 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.2_3ib2ivapxullxkx3xftsimdk7u + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.2.45 + transitivePeerDependencies: + - '@vue/composition-api' + dev: false + /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -5693,6 +5747,10 @@ packages: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true + /mitt/3.0.0: + resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} + dev: false + /mlly/1.0.0: resolution: {integrity: sha512-QL108Hwt+u9bXdWgOI0dhzZfACovn5Aen4Xvc8Jasd9ouRH4NjnrXEiyP3nVvJo91zPlYjVRckta0Nt2zfoR6g==} dependencies: @@ -6078,7 +6136,6 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /preact/10.11.3: resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} @@ -6719,6 +6776,7 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} @@ -6928,6 +6986,36 @@ packages: strip-ansi: 6.0.1 dev: true + /tdesign-icons-vue-next/0.1.6_vue@3.2.45: + resolution: {integrity: sha512-cZ6lIiMFZZGynQrE1Z7ttvpU2DJa/bukVaGeuGjiyuUkRtW9Pj9qRJZ8oorlX42svn+x16RvarTfbK3H6v8brQ==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@babel/runtime': 7.18.3 + vue: 3.2.45 + dev: false + + /tdesign-vue-next/0.26.0_vue@3.2.45: + resolution: {integrity: sha512-s5/vSn5JGgR+FofBoauCbNli8hXZ+RnwcwHIHNH1CgpI8tnHKpYBU3qteSy7DsKs3nsti58lAbVbNAJT5Izf6w==} + peerDependencies: + vue: '>=3.1.0' + dependencies: + '@babel/runtime': 7.18.3 + '@popperjs/core': 2.11.6 + '@types/lodash': 4.14.182 + '@types/sortablejs': 1.13.0 + '@types/tinycolor2': 1.4.3 + '@types/validator': 13.7.10 + dayjs: 1.11.4 + lodash: 4.17.21 + mitt: 3.0.0 + sortablejs: 1.15.0 + tdesign-icons-vue-next: 0.1.6_vue@3.2.45 + tinycolor2: 1.4.2 + validator: 13.7.0 + vue: 3.2.45 + dev: false + /temp-dir/2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -6994,6 +7082,10 @@ packages: resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} dev: true + /tinycolor2/1.4.2: + resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} + dev: false + /tinypool/0.3.0: resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} @@ -7291,6 +7383,11 @@ packages: spdx-expression-parse: 3.0.1 dev: true + /validator/13.7.0: + resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} + engines: {node: '>= 0.10'} + dev: false + /vite-plugin-vue-setup-extend/0.4.0_vite@3.1.3: resolution: {integrity: sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==} peerDependencies: @@ -7550,7 +7647,6 @@ packages: optional: true dependencies: vue: 3.2.45 - dev: true /vue-eslint-parser/7.11.0_eslint@7.32.0: resolution: {integrity: sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==} @@ -7627,7 +7723,6 @@ packages: '@vue/runtime-dom': 3.2.45 '@vue/server-renderer': 3.2.45_vue@3.2.45 '@vue/shared': 3.2.45 - dev: true /w3c-hr-time/1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}