Browse Source

antdv升级到4.x版本 (#3006)

* fix(ApiTreeSelect):  ApiTreeSelect组件首次调用会重复请求(#2940)

由于watchEffect,onMounted会立即执行,所以导致重复请求。
并且 watch函数和watchEffect监听的依赖重复了,故删去

* chore: update ant design npm version

* chore: 修改antd的css引用路径

* style(layout):  替换sider header组件传参属性,适配原有组件的样式

* style(Menu): 去除气泡卡片的背景

* chore: typo

* typo(Modal): 将visible替换成open

* typo:修改modal弹窗的绑定函数名称

* style(Modal): 为了解决直接引用 Modal 组件时关闭按钮样式的问题,增加一个名为 "vben-basic-modal" 的类名,以实现样式隔离。

* Update package.json

* typo(Drawer): Drawer 组件 visible 变为 open

* typo(Table): Table 组件 filterDropdownVisible 变为 filterDropdownOpen。

* typo(TreeSelect): 组件弹框的 classname API 统一为 popupClassName,dropdownClassName
pull/3012/head
invalid w 3 years ago
committed by GitHub
parent
commit
aaf2fde3cf
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      package.json
  2. 554
      pnpm-lock.yaml
  3. 28
      src/components/Drawer/src/BasicDrawer.vue
  4. 2
      src/components/Drawer/src/props.ts
  5. 12
      src/components/Drawer/src/typing.ts
  6. 24
      src/components/Drawer/src/useDrawer.ts
  7. 36
      src/components/Modal/src/BasicModal.vue
  8. 4
      src/components/Modal/src/components/Modal.tsx
  9. 6
      src/components/Modal/src/components/ModalWrapper.vue
  10. 22
      src/components/Modal/src/hooks/useModal.ts
  11. 4
      src/components/Modal/src/hooks/useModalDrag.ts
  12. 5
      src/components/Modal/src/index.less
  13. 4
      src/components/Modal/src/props.ts
  14. 10
      src/components/Modal/src/typing.ts
  15. 6
      src/components/Prompt/dialog.vue
  16. 5
      src/components/SimpleMenu/src/components/SubMenuItem.vue
  17. 2
      src/components/Table/src/types/column.ts
  18. 2
      src/layouts/default/header/components/user-dropdown/index.vue
  19. 229
      src/layouts/default/header/index.vue
  20. 182
      src/layouts/default/sider/LayoutSider.vue
  21. 5
      src/layouts/default/sider/index.vue
  22. 2
      src/main.ts
  23. 6
      src/views/demo/comp/modal/Modal1.vue
  24. 8
      src/views/demo/comp/modal/index.vue
  25. 2
      src/views/form-design/components/VFormDesign/config/componentPropsConfig.ts

2
package.json

@ -76,7 +76,7 @@
"@vueuse/core": "^10.2.1", "@vueuse/core": "^10.2.1",
"@vueuse/shared": "^10.2.1", "@vueuse/shared": "^10.2.1",
"@zxcvbn-ts/core": "^3.0.2", "@zxcvbn-ts/core": "^3.0.2",
"ant-design-vue": "^3.2.20", "ant-design-vue": "^4.0.2",
"axios": "^1.4.0", "axios": "^1.4.0",
"codemirror": "^5.65.12", "codemirror": "^5.65.12",
"cropperjs": "^1.5.13", "cropperjs": "^1.5.13",

554
pnpm-lock.yaml

@ -1,4 +1,4 @@
lockfileVersion: '6.1' lockfileVersion: '6.0'
settings: settings:
autoInstallPeers: true autoInstallPeers: true
@ -36,8 +36,8 @@ importers:
specifier: ^3.0.2 specifier: ^3.0.2
version: 3.0.2 version: 3.0.2
ant-design-vue: ant-design-vue:
specifier: ^3.2.20 specifier: ^4.0.2
version: 3.2.20(vue@3.3.4) version: 4.0.2(vue@3.3.4)
axios: axios:
specifier: ^1.4.0 specifier: ^1.4.0
version: 1.4.0 version: 1.4.0
@ -305,32 +305,32 @@ importers:
internal/eslint-config: internal/eslint-config:
devDependencies: devDependencies:
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: ^5.61.0 specifier: ^6.3.0
version: 5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.1.6) version: 6.6.0(@typescript-eslint/parser@6.6.0)(eslint@8.48.0)(typescript@5.1.6)
'@typescript-eslint/parser': '@typescript-eslint/parser':
specifier: ^5.61.0 specifier: ^6.3.0
version: 5.61.0(eslint@8.44.0)(typescript@5.1.6) version: 6.6.0(eslint@8.48.0)(typescript@5.1.6)
eslint: eslint:
specifier: ^8.44.0 specifier: ^8.46.0
version: 8.44.0 version: 8.48.0
eslint-config-prettier: eslint-config-prettier:
specifier: ^8.8.0 specifier: ^9.0.0
version: 8.8.0(eslint@8.44.0) version: 9.0.0(eslint@8.48.0)
eslint-plugin-import: eslint-plugin-import:
specifier: ^2.27.5 specifier: ^2.28.0
version: 2.27.5(@typescript-eslint/parser@5.61.0)(eslint@8.44.0) version: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint@8.48.0)
eslint-plugin-prettier: eslint-plugin-prettier:
specifier: ^4.2.1 specifier: ^5.0.0
version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.44.0)(prettier@2.8.8) version: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.48.0)(prettier@3.0.3)
eslint-plugin-simple-import-sort: eslint-plugin-simple-import-sort:
specifier: ^10.0.0 specifier: ^10.0.0
version: 10.0.0(eslint@8.44.0) version: 10.0.0(eslint@8.48.0)
eslint-plugin-vue: eslint-plugin-vue:
specifier: ^9.15.1 specifier: ^9.17.0
version: 9.15.1(eslint@8.44.0) version: 9.17.0(eslint@8.48.0)
vue-eslint-parser: vue-eslint-parser:
specifier: ^9.3.1 specifier: ^9.3.1
version: 9.3.1(eslint@8.44.0) version: 9.3.1(eslint@8.48.0)
internal/stylelint-config: internal/stylelint-config:
devDependencies: devDependencies:
@ -1126,6 +1126,14 @@ packages:
resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
/@emotion/hash@0.9.1:
resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==}
dev: false
/@emotion/unitless@0.8.1:
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
dev: false
/@esbuild/android-arm64@0.17.19: /@esbuild/android-arm64@0.17.19:
resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
engines: {node: '>=12'} engines: {node: '>=12'}
@ -1500,14 +1508,14 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.44.0): /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies: dependencies:
eslint: 8.44.0 eslint: 8.48.0
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.3
dev: true dev: true
/@eslint-community/regexpp@4.5.1: /@eslint-community/regexpp@4.5.1:
@ -1515,13 +1523,18 @@ packages:
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true dev: true
/@eslint/eslintrc@2.1.0: /@eslint-community/regexpp@4.8.0:
resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
/@eslint/eslintrc@2.1.2:
resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.3.4 debug: 4.3.4
espree: 9.6.0 espree: 9.6.1
globals: 13.20.0 globals: 13.20.0
ignore: 5.2.4 ignore: 5.2.4
import-fresh: 3.3.0 import-fresh: 3.3.0
@ -1532,8 +1545,8 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@eslint/js@8.44.0: /@eslint/js@8.48.0:
resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true dev: true
@ -2676,133 +2689,134 @@ packages:
'@types/yargs-parser': 21.0.0 '@types/yargs-parser': 21.0.0
dev: false dev: false
/@typescript-eslint/eslint-plugin@5.61.0(@typescript-eslint/parser@5.61.0)(eslint@8.44.0)(typescript@5.1.6): /@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0)(eslint@8.48.0)(typescript@5.1.6):
resolution: {integrity: sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==} resolution: {integrity: sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
'@typescript-eslint/parser': ^5.0.0 '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^7.0.0 || ^8.0.0
typescript: '*' typescript: '*'
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@eslint-community/regexpp': 4.5.1 '@eslint-community/regexpp': 4.5.1
'@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.1.6)
'@typescript-eslint/scope-manager': 5.61.0 '@typescript-eslint/scope-manager': 6.6.0
'@typescript-eslint/type-utils': 5.61.0(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/type-utils': 6.6.0(eslint@8.48.0)(typescript@5.1.6)
'@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/utils': 6.6.0(eslint@8.48.0)(typescript@5.1.6)
'@typescript-eslint/visitor-keys': 6.6.0
debug: 4.3.4 debug: 4.3.4
eslint: 8.44.0 eslint: 8.48.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.2.4 ignore: 5.2.4
natural-compare-lite: 1.4.0 natural-compare: 1.4.0
semver: 7.5.3 semver: 7.5.4
tsutils: 3.21.0(typescript@5.1.6) ts-api-utils: 1.0.3(typescript@5.1.6)
typescript: 5.1.6 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/parser@5.61.0(eslint@8.44.0)(typescript@5.1.6): /@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.1.6):
resolution: {integrity: sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==} resolution: {integrity: sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^7.0.0 || ^8.0.0
typescript: '*' typescript: '*'
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/scope-manager': 5.61.0 '@typescript-eslint/scope-manager': 6.6.0
'@typescript-eslint/types': 5.61.0 '@typescript-eslint/types': 6.6.0
'@typescript-eslint/typescript-estree': 5.61.0(typescript@5.1.6) '@typescript-eslint/typescript-estree': 6.6.0(typescript@5.1.6)
'@typescript-eslint/visitor-keys': 6.6.0
debug: 4.3.4 debug: 4.3.4
eslint: 8.44.0 eslint: 8.48.0
typescript: 5.1.6 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/scope-manager@5.61.0: /@typescript-eslint/scope-manager@6.6.0:
resolution: {integrity: sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==} resolution: {integrity: sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
dependencies: dependencies:
'@typescript-eslint/types': 5.61.0 '@typescript-eslint/types': 6.6.0
'@typescript-eslint/visitor-keys': 5.61.0 '@typescript-eslint/visitor-keys': 6.6.0
dev: true dev: true
/@typescript-eslint/type-utils@5.61.0(eslint@8.44.0)(typescript@5.1.6): /@typescript-eslint/type-utils@6.6.0(eslint@8.48.0)(typescript@5.1.6):
resolution: {integrity: sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==} resolution: {integrity: sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
eslint: '*' eslint: ^7.0.0 || ^8.0.0
typescript: '*' typescript: '*'
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 5.61.0(typescript@5.1.6) '@typescript-eslint/typescript-estree': 6.6.0(typescript@5.1.6)
'@typescript-eslint/utils': 5.61.0(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/utils': 6.6.0(eslint@8.48.0)(typescript@5.1.6)
debug: 4.3.4 debug: 4.3.4
eslint: 8.44.0 eslint: 8.48.0
tsutils: 3.21.0(typescript@5.1.6) ts-api-utils: 1.0.3(typescript@5.1.6)
typescript: 5.1.6 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/types@5.61.0: /@typescript-eslint/types@6.6.0:
resolution: {integrity: sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==} resolution: {integrity: sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
dev: true dev: true
/@typescript-eslint/typescript-estree@5.61.0(typescript@5.1.6): /@typescript-eslint/typescript-estree@6.6.0(typescript@5.1.6):
resolution: {integrity: sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==} resolution: {integrity: sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/types': 5.61.0 '@typescript-eslint/types': 6.6.0
'@typescript-eslint/visitor-keys': 5.61.0 '@typescript-eslint/visitor-keys': 6.6.0
debug: 4.3.4 debug: 4.3.4
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
semver: 7.5.3 semver: 7.5.4
tsutils: 3.21.0(typescript@5.1.6) ts-api-utils: 1.0.3(typescript@5.1.6)
typescript: 5.1.6 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/utils@5.61.0(eslint@8.44.0)(typescript@5.1.6): /@typescript-eslint/utils@6.6.0(eslint@8.48.0)(typescript@5.1.6):
resolution: {integrity: sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==} resolution: {integrity: sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^7.0.0 || ^8.0.0
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0)
'@types/json-schema': 7.0.12 '@types/json-schema': 7.0.12
'@types/semver': 7.5.0 '@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 5.61.0 '@typescript-eslint/scope-manager': 6.6.0
'@typescript-eslint/types': 5.61.0 '@typescript-eslint/types': 6.6.0
'@typescript-eslint/typescript-estree': 5.61.0(typescript@5.1.6) '@typescript-eslint/typescript-estree': 6.6.0(typescript@5.1.6)
eslint: 8.44.0 eslint: 8.48.0
eslint-scope: 5.1.1 semver: 7.5.4
semver: 7.5.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
- typescript - typescript
dev: true dev: true
/@typescript-eslint/visitor-keys@5.61.0: /@typescript-eslint/visitor-keys@6.6.0:
resolution: {integrity: sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==} resolution: {integrity: sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^16.0.0 || >=18.0.0}
dependencies: dependencies:
'@typescript-eslint/types': 5.61.0 '@typescript-eslint/types': 6.6.0
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.1
dev: true dev: true
@ -3400,6 +3414,38 @@ packages:
vue: 3.3.4 vue: 3.3.4
vue-types: 3.0.2(vue@3.3.4) vue-types: 3.0.2(vue@3.3.4)
warning: 4.0.3 warning: 4.0.3
dev: true
/ant-design-vue@4.0.2(vue@3.3.4):
resolution: {integrity: sha512-4vD/mVXne1avmYo5j3V9bqAlMfxTu2D+k0j6dTN++OJZOjkuaV3waMLP1EJY0nj1xl0qUV96u7OD5xgTYfdtBQ==}
engines: {node: '>=12.22.0'}
peerDependencies:
vue: '>=3.2.0'
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-vue': 6.1.0(vue@3.3.4)
'@babel/runtime': 7.22.6
'@ctrl/tinycolor': 3.6.0
'@emotion/hash': 0.9.1
'@emotion/unitless': 0.8.1
'@simonwep/pickr': 1.8.2
array-tree-filter: 2.1.0
async-validator: 4.2.5
csstype: 3.1.2
dayjs: 1.11.9
dom-align: 1.12.4
dom-scroll-into-view: 2.0.1
lodash: 4.17.21
lodash-es: 4.17.21
resize-observer-polyfill: 1.5.1
scroll-into-view-if-needed: 2.2.31
shallow-equal: 1.2.1
stylis: 4.3.0
throttle-debounce: 5.0.0
vue: 3.3.4
vue-types: 3.0.2(vue@3.3.4)
warning: 4.0.3
dev: false
/any-promise@1.3.0: /any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@ -3503,6 +3549,17 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/array.prototype.findlastindex@1.2.3:
resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
get-intrinsic: 1.2.1
dev: true
/array.prototype.flat@1.3.1: /array.prototype.flat@1.3.1:
resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -3523,6 +3580,19 @@ packages:
es-shim-unscopables: 1.0.0 es-shim-unscopables: 1.0.0
dev: true dev: true
/arraybuffer.prototype.slice@1.0.2:
resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.22.1
get-intrinsic: 1.2.1
is-array-buffer: 3.0.2
is-shared-array-buffer: 1.0.2
dev: true
/arrify@1.0.1: /arrify@1.0.1:
resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -5068,6 +5138,51 @@ packages:
which-typed-array: 1.1.9 which-typed-array: 1.1.9
dev: true dev: true
/es-abstract@1.22.1:
resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
arraybuffer.prototype.slice: 1.0.2
available-typed-arrays: 1.0.5
call-bind: 1.0.2
es-set-tostringtag: 2.0.1
es-to-primitive: 1.2.1
function.prototype.name: 1.1.5
get-intrinsic: 1.2.1
get-symbol-description: 1.0.0
globalthis: 1.0.3
gopd: 1.0.1
has: 1.0.3
has-property-descriptors: 1.0.0
has-proto: 1.0.1
has-symbols: 1.0.3
internal-slot: 1.0.5
is-array-buffer: 3.0.2
is-callable: 1.2.7
is-negative-zero: 2.0.2
is-regex: 1.1.4
is-shared-array-buffer: 1.0.2
is-string: 1.0.7
is-typed-array: 1.1.10
is-weakref: 1.0.2
object-inspect: 1.12.3
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.5.0
safe-array-concat: 1.0.1
safe-regex-test: 1.0.0
string.prototype.trim: 1.2.7
string.prototype.trimend: 1.0.6
string.prototype.trimstart: 1.0.6
typed-array-buffer: 1.0.0
typed-array-byte-length: 1.0.0
typed-array-byte-offset: 1.0.0
typed-array-length: 1.0.4
unbox-primitive: 1.0.2
which-typed-array: 1.1.11
dev: true
/es-set-tostringtag@2.0.1: /es-set-tostringtag@2.0.1:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -5203,26 +5318,26 @@ packages:
source-map: 0.6.1 source-map: 0.6.1
dev: false dev: false
/eslint-config-prettier@8.8.0(eslint@8.44.0): /eslint-config-prettier@9.0.0(eslint@8.48.0):
resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
eslint: '>=7.0.0' eslint: '>=7.0.0'
dependencies: dependencies:
eslint: 8.44.0 eslint: 8.48.0
dev: true dev: true
/eslint-import-resolver-node@0.3.7: /eslint-import-resolver-node@0.3.7:
resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
dependencies: dependencies:
debug: 3.2.7(supports-color@5.5.0) debug: 3.2.7(supports-color@5.5.0)
is-core-module: 2.12.1 is-core-module: 2.13.0
resolve: 1.22.2 resolve: 1.22.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0): /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-node@0.3.7)(eslint@8.48.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'} engines: {node: '>=4'}
peerDependencies: peerDependencies:
@ -5243,16 +5358,16 @@ packages:
eslint-import-resolver-webpack: eslint-import-resolver-webpack:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.1.6)
debug: 3.2.7(supports-color@5.5.0) debug: 3.2.7(supports-color@5.5.0)
eslint: 8.44.0 eslint: 8.48.0
eslint-import-resolver-node: 0.3.7 eslint-import-resolver-node: 0.3.7
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.61.0)(eslint@8.44.0): /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.6.0)(eslint@8.48.0):
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==}
engines: {node: '>=4'} engines: {node: '>=4'}
peerDependencies: peerDependencies:
'@typescript-eslint/parser': '*' '@typescript-eslint/parser': '*'
@ -5261,22 +5376,24 @@ packages:
'@typescript-eslint/parser': '@typescript-eslint/parser':
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/parser': 5.61.0(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.1.6)
array-includes: 3.1.6 array-includes: 3.1.6
array.prototype.findlastindex: 1.2.3
array.prototype.flat: 1.3.1 array.prototype.flat: 1.3.1
array.prototype.flatmap: 1.3.1 array.prototype.flatmap: 1.3.1
debug: 3.2.7(supports-color@5.5.0) debug: 3.2.7(supports-color@5.5.0)
doctrine: 2.1.0 doctrine: 2.1.0
eslint: 8.44.0 eslint: 8.48.0
eslint-import-resolver-node: 0.3.7 eslint-import-resolver-node: 0.3.7
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.61.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0) eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-node@0.3.7)(eslint@8.48.0)
has: 1.0.3 has: 1.0.3
is-core-module: 2.12.1 is-core-module: 2.13.0
is-glob: 4.0.3 is-glob: 4.0.3
minimatch: 3.1.2 minimatch: 3.1.2
object.fromentries: 2.0.7
object.groupby: 1.0.1
object.values: 1.1.6 object.values: 1.1.6
resolve: 1.22.2 semver: 6.3.1
semver: 6.3.0
tsconfig-paths: 3.14.2 tsconfig-paths: 3.14.2
transitivePeerDependencies: transitivePeerDependencies:
- eslint-import-resolver-typescript - eslint-import-resolver-typescript
@ -5284,59 +5401,63 @@ packages:
- supports-color - supports-color
dev: true dev: true
/eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.44.0)(prettier@2.8.8): /eslint-plugin-prettier@5.0.0(eslint-config-prettier@9.0.0)(eslint@8.48.0)(prettier@3.0.3):
resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==}
engines: {node: '>=12.0.0'} engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies: peerDependencies:
eslint: '>=7.28.0' '@types/eslint': '>=8.0.0'
eslint: '>=8.0.0'
eslint-config-prettier: '*' eslint-config-prettier: '*'
prettier: '>=2.0.0' prettier: '>=3.0.0'
peerDependenciesMeta: peerDependenciesMeta:
'@types/eslint':
optional: true
eslint-config-prettier: eslint-config-prettier:
optional: true optional: true
dependencies: dependencies:
eslint: 8.44.0 eslint: 8.48.0
eslint-config-prettier: 8.8.0(eslint@8.44.0) eslint-config-prettier: 9.0.0(eslint@8.48.0)
prettier: 2.8.8 prettier: 3.0.3
prettier-linter-helpers: 1.0.0 prettier-linter-helpers: 1.0.0
synckit: 0.8.5
dev: true dev: true
/eslint-plugin-simple-import-sort@10.0.0(eslint@8.44.0): /eslint-plugin-simple-import-sort@10.0.0(eslint@8.48.0):
resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==}
peerDependencies: peerDependencies:
eslint: '>=5.0.0' eslint: '>=5.0.0'
dependencies: dependencies:
eslint: 8.44.0 eslint: 8.48.0
dev: true dev: true
/eslint-plugin-vue@9.15.1(eslint@8.44.0): /eslint-plugin-vue@9.17.0(eslint@8.48.0):
resolution: {integrity: sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==} resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==}
engines: {node: ^14.17.0 || >=16.0.0} engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0)
eslint: 8.44.0 eslint: 8.48.0
natural-compare: 1.4.0 natural-compare: 1.4.0
nth-check: 2.1.1 nth-check: 2.1.1
postcss-selector-parser: 6.0.13 postcss-selector-parser: 6.0.13
semver: 7.5.3 semver: 7.5.4
vue-eslint-parser: 9.3.1(eslint@8.44.0) vue-eslint-parser: 9.3.1(eslint@8.48.0)
xml-name-validator: 4.0.0 xml-name-validator: 4.0.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/eslint-scope@5.1.1: /eslint-scope@7.2.0:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
engines: {node: '>=8.0.0'} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
esrecurse: 4.3.0 esrecurse: 4.3.0
estraverse: 4.3.0 estraverse: 5.3.0
dev: true dev: true
/eslint-scope@7.2.0: /eslint-scope@7.2.2:
resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
esrecurse: 4.3.0 esrecurse: 4.3.0
@ -5348,15 +5469,20 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true dev: true
/eslint@8.44.0: /eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.48.0:
resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true hasBin: true
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0)
'@eslint-community/regexpp': 4.5.1 '@eslint-community/regexpp': 4.8.0
'@eslint/eslintrc': 2.1.0 '@eslint/eslintrc': 2.1.2
'@eslint/js': 8.44.0 '@eslint/js': 8.48.0
'@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/config-array': 0.11.10
'@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8 '@nodelib/fs.walk': 1.2.8
@ -5366,9 +5492,9 @@ packages:
debug: 4.3.4 debug: 4.3.4
doctrine: 3.0.0 doctrine: 3.0.0
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
eslint-scope: 7.2.0 eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.3
espree: 9.6.0 espree: 9.6.1
esquery: 1.5.0 esquery: 1.5.0
esutils: 2.0.3 esutils: 2.0.3
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
@ -5378,7 +5504,6 @@ packages:
globals: 13.20.0 globals: 13.20.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.2.4 ignore: 5.2.4
import-fresh: 3.3.0
imurmurhash: 0.1.4 imurmurhash: 0.1.4
is-glob: 4.0.3 is-glob: 4.0.3
is-path-inside: 3.0.3 is-path-inside: 3.0.3
@ -5390,7 +5515,6 @@ packages:
natural-compare: 1.4.0 natural-compare: 1.4.0
optionator: 0.9.3 optionator: 0.9.3
strip-ansi: 6.0.1 strip-ansi: 6.0.1
strip-json-comments: 3.1.1
text-table: 0.2.0 text-table: 0.2.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -5405,6 +5529,15 @@ packages:
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.1
dev: true dev: true
/espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.10.0
acorn-jsx: 5.3.2(acorn@8.10.0)
eslint-visitor-keys: 3.4.3
dev: true
/esprima@4.0.1: /esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -5850,7 +5983,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.2 call-bind: 1.0.2
define-properties: 1.2.0 define-properties: 1.2.0
es-abstract: 1.21.2 es-abstract: 1.22.1
functions-have-names: 1.2.3 functions-have-names: 1.2.3
dev: true dev: true
@ -6334,6 +6467,7 @@ packages:
/iconv-lite@0.6.3: /iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
requiresBuild: true
dependencies: dependencies:
safer-buffer: 2.1.2 safer-buffer: 2.1.2
optional: true optional: true
@ -6512,6 +6646,12 @@ packages:
dependencies: dependencies:
has: 1.0.3 has: 1.0.3
/is-core-module@2.13.0:
resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
dependencies:
has: 1.0.3
dev: true
/is-data-descriptor@0.1.4: /is-data-descriptor@0.1.4:
resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -6772,6 +6912,10 @@ packages:
/isarray@1.0.0: /isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
/isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
dev: true
/isexe@2.0.0: /isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
@ -7444,6 +7588,7 @@ packages:
/json-stringify-safe@5.0.1: /json-stringify-safe@5.0.1:
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -8302,10 +8447,6 @@ packages:
/nanopop@2.3.0: /nanopop@2.3.0:
resolution: {integrity: sha512-fzN+T2K7/Ah25XU02MJkPZ5q4Tj5FpjmIYq4rvoHX4yb16HzFdCO6JxFFn5Y/oBhQ8no8fUZavnyIv9/+xkBBw==} resolution: {integrity: sha512-fzN+T2K7/Ah25XU02MJkPZ5q4Tj5FpjmIYq4rvoHX4yb16HzFdCO6JxFFn5Y/oBhQ8no8fUZavnyIv9/+xkBBw==}
/natural-compare-lite@1.4.0:
resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
dev: true
/natural-compare@1.4.0: /natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@ -8510,6 +8651,24 @@ packages:
object-keys: 1.1.1 object-keys: 1.1.1
dev: true dev: true
/object.fromentries@2.0.7:
resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.22.1
dev: true
/object.groupby@1.0.1:
resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.22.1
get-intrinsic: 1.2.1
dev: true
/object.pick@1.3.0: /object.pick@1.3.0:
resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -8801,6 +8960,7 @@ packages:
/pidusage@2.0.21: /pidusage@2.0.21:
resolution: {integrity: sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==} resolution: {integrity: sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==}
engines: {node: '>=8'} engines: {node: '>=8'}
requiresBuild: true
dependencies: dependencies:
safe-buffer: 5.2.1 safe-buffer: 5.2.1
dev: true dev: true
@ -8816,6 +8976,7 @@ packages:
/pify@4.0.1: /pify@4.0.1:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'} engines: {node: '>=6'}
requiresBuild: true
optional: true optional: true
/pinia@2.1.4(typescript@5.1.6)(vue@3.3.4): /pinia@2.1.4(typescript@5.1.6)(vue@3.3.4):
@ -9139,6 +9300,12 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/prettier@3.0.3:
resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
engines: {node: '>=14'}
hasBin: true
dev: true
/pretty-bytes@6.1.0: /pretty-bytes@6.1.0:
resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==}
engines: {node: ^14.13.1 || >=16.0.0} engines: {node: ^14.13.1 || >=16.0.0}
@ -9200,6 +9367,7 @@ packages:
/prr@1.0.1: /prr@1.0.1:
resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
requiresBuild: true
optional: true optional: true
/pseudomap@1.0.2: /pseudomap@1.0.2:
@ -9627,6 +9795,16 @@ packages:
tslib: 2.6.0 tslib: 2.6.0
dev: true dev: true
/safe-array-concat@1.0.1:
resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
engines: {node: '>=0.4'}
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.1
has-symbols: 1.0.3
isarray: 2.0.5
dev: true
/safe-buffer@5.1.2: /safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
dev: false dev: false
@ -9687,6 +9865,11 @@ packages:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true hasBin: true
/semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
dev: true
/semver@7.0.0: /semver@7.0.0:
resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
hasBin: true hasBin: true
@ -9721,6 +9904,14 @@ packages:
dependencies: dependencies:
lru-cache: 6.0.0 lru-cache: 6.0.0
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/set-blocking@2.0.0: /set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
dev: false dev: false
@ -10089,7 +10280,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.2 call-bind: 1.0.2
define-properties: 1.2.0 define-properties: 1.2.0
es-abstract: 1.21.2 es-abstract: 1.22.1
dev: true dev: true
/string.prototype.trimend@1.0.6: /string.prototype.trimend@1.0.6:
@ -10097,7 +10288,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.2 call-bind: 1.0.2
define-properties: 1.2.0 define-properties: 1.2.0
es-abstract: 1.21.2 es-abstract: 1.22.1
dev: true dev: true
/string.prototype.trimstart@1.0.6: /string.prototype.trimstart@1.0.6:
@ -10105,7 +10296,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.2 call-bind: 1.0.2
define-properties: 1.2.0 define-properties: 1.2.0
es-abstract: 1.21.2 es-abstract: 1.22.1
dev: true dev: true
/string_decoder@0.10.31: /string_decoder@0.10.31:
@ -10369,6 +10560,10 @@ packages:
- supports-color - supports-color
dev: true dev: true
/stylis@4.3.0:
resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==}
dev: false
/sucrase@3.32.0: /sucrase@3.32.0:
resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
@ -10489,6 +10684,7 @@ packages:
engines: {node: '>=8.0.0'} engines: {node: '>=8.0.0'}
os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
hasBin: true hasBin: true
requiresBuild: true
dev: true dev: true
optional: true optional: true
@ -10568,6 +10764,11 @@ packages:
resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==}
dev: false dev: false
/throttle-debounce@5.0.0:
resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==}
engines: {node: '>=12.22'}
dev: false
/through2@4.0.2: /through2@4.0.2:
resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
dependencies: dependencies:
@ -10699,6 +10900,15 @@ packages:
engines: {node: '>=12'} engines: {node: '>=12'}
dev: true dev: true
/ts-api-utils@1.0.3(typescript@5.1.6):
resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
engines: {node: '>=16.13.0'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
typescript: 5.1.6
dev: true
/ts-interface-checker@0.1.13: /ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
dev: true dev: true
@ -10751,10 +10961,6 @@ packages:
strip-bom: 3.0.0 strip-bom: 3.0.0
dev: true dev: true
/tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
/tslib@1.9.3: /tslib@1.9.3:
resolution: {integrity: sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==} resolution: {integrity: sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==}
dev: true dev: true
@ -10807,16 +11013,6 @@ packages:
- ts-node - ts-node
dev: true dev: true
/tsutils@3.21.0(typescript@5.1.6):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
typescript: 5.1.6
dev: true
/turbo-darwin-64@1.10.7: /turbo-darwin-64@1.10.7:
resolution: {integrity: sha512-N2MNuhwrl6g7vGuz4y3fFG2aR1oCs0UZ5HKl8KSTn/VC2y2YIuLGedQ3OVbo0TfEvygAlF3QGAAKKtOCmGPNKA==} resolution: {integrity: sha512-N2MNuhwrl6g7vGuz4y3fFG2aR1oCs0UZ5HKl8KSTn/VC2y2YIuLGedQ3OVbo0TfEvygAlF3QGAAKKtOCmGPNKA==}
cpu: [x64] cpu: [x64]
@ -10885,6 +11081,7 @@ packages:
/tx2@1.0.5: /tx2@1.0.5:
resolution: {integrity: sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==} resolution: {integrity: sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==}
requiresBuild: true
dependencies: dependencies:
json-stringify-safe: 5.0.1 json-stringify-safe: 5.0.1
dev: true dev: true
@ -10946,6 +11143,36 @@ packages:
mime-types: 2.1.35 mime-types: 2.1.35
dev: false dev: false
/typed-array-buffer@1.0.0:
resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.1
is-typed-array: 1.1.10
dev: true
/typed-array-byte-length@1.0.0:
resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
for-each: 0.3.3
has-proto: 1.0.1
is-typed-array: 1.1.10
dev: true
/typed-array-byte-offset@1.0.0:
resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
call-bind: 1.0.2
for-each: 0.3.3
has-proto: 1.0.1
is-typed-array: 1.1.10
dev: true
/typed-array-length@1.0.4: /typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies: dependencies:
@ -11415,14 +11642,14 @@ packages:
vue: 3.3.4 vue: 3.3.4
dev: false dev: false
/vue-eslint-parser@9.3.1(eslint@8.44.0): /vue-eslint-parser@9.3.1(eslint@8.48.0):
resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==} resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==}
engines: {node: ^14.17.0 || >=16.0.0} engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
eslint: '>=6.0.0' eslint: '>=6.0.0'
dependencies: dependencies:
debug: 4.3.4 debug: 4.3.4
eslint: 8.44.0 eslint: 8.48.0
eslint-scope: 7.2.0 eslint-scope: 7.2.0
eslint-visitor-keys: 3.4.1 eslint-visitor-keys: 3.4.1
espree: 9.6.0 espree: 9.6.0
@ -11632,6 +11859,17 @@ packages:
resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
dev: false dev: false
/which-typed-array@1.1.11:
resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
call-bind: 1.0.2
for-each: 0.3.3
gopd: 1.0.1
has-tostringtag: 1.0.0
dev: true
/which-typed-array@1.1.9: /which-typed-array@1.1.9:
resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}

28
src/components/Drawer/src/BasicDrawer.vue

@ -58,9 +58,9 @@
components: { Drawer, ScrollContainer, DrawerFooter, DrawerHeader }, components: { Drawer, ScrollContainer, DrawerFooter, DrawerHeader },
inheritAttrs: false, inheritAttrs: false,
props: basicProps, props: basicProps,
emits: ['visible-change', 'ok', 'close', 'register'], emits: ['open-change', 'ok', 'close', 'register'],
setup(props, { emit }) { setup(props, { emit }) {
const visibleRef = ref(false); const openRef = ref(false);
const attrs = useAttrs(); const attrs = useAttrs();
const propsRef = ref<Partial<DrawerProps | null>>(null); const propsRef = ref<Partial<DrawerProps | null>>(null);
@ -69,7 +69,7 @@
const drawerInstance: DrawerInstance = { const drawerInstance: DrawerInstance = {
setDrawerProps: setDrawerProps as any, setDrawerProps: setDrawerProps as any,
emitVisible: undefined, emitOpen: undefined,
}; };
const instance = getCurrentInstance(); const instance = getCurrentInstance();
@ -85,7 +85,7 @@
placement: 'right', placement: 'right',
...unref(attrs), ...unref(attrs),
...unref(getMergeProps), ...unref(getMergeProps),
visible: unref(visibleRef), open: unref(openRef),
}; };
opt.title = undefined; opt.title = undefined;
const { isDetail, width, wrapClassName, getContainer } = opt; const { isDetail, width, wrapClassName, getContainer } = opt;
@ -135,19 +135,19 @@
}); });
watch( watch(
() => props.visible, () => props.open,
(newVal, oldVal) => { (newVal, oldVal) => {
if (newVal !== oldVal) visibleRef.value = newVal; if (newVal !== oldVal) openRef.value = newVal;
}, },
{ deep: true }, { deep: true },
); );
watch( watch(
() => visibleRef.value, () => openRef.value,
(visible) => { (open) => {
nextTick(() => { nextTick(() => {
emit('visible-change', visible); emit('open-change', open);
instance && drawerInstance.emitVisible?.(visible, instance.uid); instance && drawerInstance.emitOpen?.(open, instance.uid);
}); });
}, },
); );
@ -158,18 +158,18 @@
emit('close', e); emit('close', e);
if (closeFunc && isFunction(closeFunc)) { if (closeFunc && isFunction(closeFunc)) {
const res = await closeFunc(); const res = await closeFunc();
visibleRef.value = !res; openRef.value = !res;
return; return;
} }
visibleRef.value = false; openRef.value = false;
} }
function setDrawerProps(props: Partial<DrawerProps>): void { function setDrawerProps(props: Partial<DrawerProps>): void {
// Keep the last setDrawerProps // Keep the last setDrawerProps
propsRef.value = deepMerge(unref(propsRef) || ({} as any), props); propsRef.value = deepMerge(unref(propsRef) || ({} as any), props);
if (Reflect.has(props, 'visible')) { if (Reflect.has(props, 'open')) {
visibleRef.value = !!props.visible; openRef.value = !!props.open;
} }
} }

2
src/components/Drawer/src/props.ts

@ -30,7 +30,7 @@ export const basicProps = {
title: { type: String, default: '' }, title: { type: String, default: '' },
loadingText: { type: String }, loadingText: { type: String },
showDetailBack: { type: Boolean, default: true }, showDetailBack: { type: Boolean, default: true },
visible: { type: Boolean }, open: { type: Boolean },
loading: { type: Boolean }, loading: { type: Boolean },
maskClosable: { type: Boolean, default: true }, maskClosable: { type: Boolean, default: true },
getContainer: { getContainer: {

12
src/components/Drawer/src/typing.ts

@ -4,13 +4,13 @@ import type { ScrollContainerOptions } from '/@/components/Container/index';
export interface DrawerInstance { export interface DrawerInstance {
setDrawerProps: (props: Partial<DrawerProps> | boolean) => void; setDrawerProps: (props: Partial<DrawerProps> | boolean) => void;
emitVisible?: (visible: boolean, uid: number) => void; emitOpen?: (open: boolean, uid: number) => void;
} }
export interface ReturnMethods extends DrawerInstance { export interface ReturnMethods extends DrawerInstance {
openDrawer: <T = any>(visible?: boolean, data?: T, openOnSet?: boolean) => void; openDrawer: <T = any>(open?: boolean, data?: T, openOnSet?: boolean) => void;
closeDrawer: () => void; closeDrawer: () => void;
getVisible?: ComputedRef<boolean>; getOpen?: ComputedRef<boolean>;
} }
export type RegisterFn = (drawerInstance: DrawerInstance, uuid?: string) => void; export type RegisterFn = (drawerInstance: DrawerInstance, uuid?: string) => void;
@ -19,7 +19,7 @@ export interface ReturnInnerMethods extends DrawerInstance {
closeDrawer: () => void; closeDrawer: () => void;
changeLoading: (loading: boolean) => void; changeLoading: (loading: boolean) => void;
changeOkLoading: (loading: boolean) => void; changeOkLoading: (loading: boolean) => void;
getVisible?: ComputedRef<boolean>; getOpen?: ComputedRef<boolean>;
} }
export type UseDrawerReturnType = [RegisterFn, ReturnMethods]; export type UseDrawerReturnType = [RegisterFn, ReturnMethods];
@ -73,7 +73,7 @@ export interface DrawerProps extends DrawerFooterProps {
isDetail?: boolean; isDetail?: boolean;
loading?: boolean; loading?: boolean;
showDetailBack?: boolean; showDetailBack?: boolean;
visible?: boolean; open?: boolean;
/** /**
* Built-in ScrollContainer component configuration * Built-in ScrollContainer component configuration
* @type ScrollContainerOptions * @type ScrollContainerOptions
@ -179,7 +179,7 @@ export interface DrawerProps extends DrawerFooterProps {
* @type string * @type string
*/ */
placement?: 'top' | 'right' | 'bottom' | 'left'; placement?: 'top' | 'right' | 'bottom' | 'left';
afterVisibleChange?: (visible?: boolean) => void; afterOpenChange?: (open?: boolean) => void;
keyboard?: boolean; keyboard?: boolean;
/** /**
* Specify a callback that will be called when a user clicks mask, close button or Cancel button. * Specify a callback that will be called when a user clicks mask, close button or Cancel button.

24
src/components/Drawer/src/useDrawer.ts

@ -23,7 +23,7 @@ import { error } from '/@/utils/log';
const dataTransferRef = reactive<any>({}); const dataTransferRef = reactive<any>({});
const visibleData = reactive<{ [key: number]: boolean }>({}); const openData = reactive<{ [key: number]: boolean }>({});
/** /**
* @description: Applicable to separate drawer and call outside * @description: Applicable to separate drawer and call outside
@ -51,8 +51,8 @@ export function useDrawer(): UseDrawerReturnType {
drawer.value = drawerInstance; drawer.value = drawerInstance;
loaded.value = true; loaded.value = true;
drawerInstance.emitVisible = (visible: boolean, uid: number) => { drawerInstance.emitOpen = (open: boolean, uid: number) => {
visibleData[uid] = visible; openData[uid] = open;
}; };
} }
@ -69,13 +69,13 @@ export function useDrawer(): UseDrawerReturnType {
getInstance()?.setDrawerProps(props); getInstance()?.setDrawerProps(props);
}, },
getVisible: computed((): boolean => { getOpen: computed((): boolean => {
return visibleData[~~unref(uid)]; return openData[~~unref(uid)];
}), }),
openDrawer: <T = any>(visible = true, data?: T, openOnSet = true): void => { openDrawer: <T = any>(open = true, data?: T, openOnSet = true): void => {
getInstance()?.setDrawerProps({ getInstance()?.setDrawerProps({
visible: visible, open,
}); });
if (!data) return; if (!data) return;
@ -90,7 +90,7 @@ export function useDrawer(): UseDrawerReturnType {
} }
}, },
closeDrawer: () => { closeDrawer: () => {
getInstance()?.setDrawerProps({ visible: false }); getInstance()?.setDrawerProps({ open: false });
}, },
}; };
@ -145,15 +145,15 @@ export const useDrawerInner = (callbackFn?: Fn): UseDrawerInnerReturnType => {
changeOkLoading: (loading = true) => { changeOkLoading: (loading = true) => {
getInstance()?.setDrawerProps({ confirmLoading: loading }); getInstance()?.setDrawerProps({ confirmLoading: loading });
}, },
getVisible: computed((): boolean => { getOpen: computed((): boolean => {
return visibleData[~~unref(uidRef)]; return openData[~~unref(uidRef)];
}), }),
closeDrawer: () => { closeDrawer: () => {
getInstance()?.setDrawerProps({ visible: false }); getInstance()?.setDrawerProps({ open: false });
}, },
setDrawerProps: (props: Partial<DrawerProps>) => { setDrawerProps: (props: Partial<DrawerProps> | boolean) => {
getInstance()?.setDrawerProps(props); getInstance()?.setDrawerProps(props);
}, },
}, },

36
src/components/Modal/src/BasicModal.vue

@ -1,5 +1,5 @@
<template> <template>
<Modal v-bind="getBindValue" @cancel="handleCancel"> <Modal v-bind="getBindValue" @cancel="handleCancel" wrapClassName="vben-basic-modal">
<template #closeIcon v-if="!$slots.closeIcon"> <template #closeIcon v-if="!$slots.closeIcon">
<ModalClose <ModalClose
:canFullscreen="getProps.canFullscreen" :canFullscreen="getProps.canFullscreen"
@ -34,9 +34,9 @@
:loading-tip="getProps.loadingTip" :loading-tip="getProps.loadingTip"
:minHeight="getProps.minHeight" :minHeight="getProps.minHeight"
:height="getWrapperHeight" :height="getWrapperHeight"
:visible="visibleRef" :open="openRef"
:modalFooterHeight="footer !== undefined && !footer ? 0 : undefined" :modalFooterHeight="footer !== undefined && !footer ? 0 : undefined"
v-bind="omit(getProps.wrapperProps, 'visible', 'height', 'modalFooterHeight')" v-bind="omit(getProps.wrapperProps, 'open', 'height', 'modalFooterHeight')"
@ext-height="handleExtHeight" @ext-height="handleExtHeight"
@height-change="handleHeightChange" @height-change="handleHeightChange"
> >
@ -79,9 +79,9 @@
components: { Modal, ModalWrapper, ModalClose, ModalFooter, ModalHeader }, components: { Modal, ModalWrapper, ModalClose, ModalFooter, ModalHeader },
inheritAttrs: false, inheritAttrs: false,
props: basicProps, props: basicProps,
emits: ['visible-change', 'height-change', 'cancel', 'ok', 'register', 'update:visible'], emits: ['open-change', 'height-change', 'cancel', 'ok', 'register', 'update:open'],
setup(props, { emit, attrs }) { setup(props, { emit, attrs }) {
const visibleRef = ref(false); const openRef = ref(false);
const propsRef = ref<Partial<ModalProps> | null>(null); const propsRef = ref<Partial<ModalProps> | null>(null);
const modalWrapperRef = ref<any>(null); const modalWrapperRef = ref<any>(null);
const { prefixCls } = useDesign('basic-modal'); const { prefixCls } = useDesign('basic-modal');
@ -90,7 +90,7 @@
const extHeightRef = ref(0); const extHeightRef = ref(0);
const modalMethods: ModalMethods = { const modalMethods: ModalMethods = {
setModalProps, setModalProps,
emitVisible: undefined, emitOpen: undefined,
redoModalHeight: () => { redoModalHeight: () => {
nextTick(() => { nextTick(() => {
if (unref(modalWrapperRef)) { if (unref(modalWrapperRef)) {
@ -123,7 +123,7 @@
const getProps = computed((): Recordable => { const getProps = computed((): Recordable => {
const opt = { const opt = {
...unref(getMergeProps), ...unref(getMergeProps),
visible: unref(visibleRef), open: unref(openRef),
okButtonProps: undefined, okButtonProps: undefined,
cancelButtonProps: undefined, cancelButtonProps: undefined,
title: undefined, title: undefined,
@ -138,7 +138,7 @@
const attr = { const attr = {
...attrs, ...attrs,
...unref(getMergeProps), ...unref(getMergeProps),
visible: unref(visibleRef), open: unref(openRef),
}; };
attr['wrapClassName'] = `${attr?.['wrapClassName'] || ''} ${unref(getWrapClassName)}`; attr['wrapClassName'] = `${attr?.['wrapClassName'] || ''} ${unref(getWrapClassName)}`;
@ -154,16 +154,16 @@
}); });
watchEffect(() => { watchEffect(() => {
visibleRef.value = !!props.visible; openRef.value = !!props.open;
fullScreenRef.value = !!props.defaultFullscreen; fullScreenRef.value = !!props.defaultFullscreen;
}); });
watch( watch(
() => unref(visibleRef), () => unref(openRef),
(v) => { (v) => {
emit('visible-change', v); emit('open-change', v);
emit('update:visible', v); emit('update:open', v);
instance && modalMethods.emitVisible?.(v, instance.uid); instance && modalMethods.emitOpen?.(v, instance.uid);
nextTick(() => { nextTick(() => {
if (props.scrollTop && v && unref(modalWrapperRef)) { if (props.scrollTop && v && unref(modalWrapperRef)) {
(unref(modalWrapperRef) as any).scrollTop(); (unref(modalWrapperRef) as any).scrollTop();
@ -182,11 +182,11 @@
if ((e.target as HTMLElement)?.classList?.contains(prefixCls + '-close--custom')) return; if ((e.target as HTMLElement)?.classList?.contains(prefixCls + '-close--custom')) return;
if (props.closeFunc && isFunction(props.closeFunc)) { if (props.closeFunc && isFunction(props.closeFunc)) {
const isClose: boolean = await props.closeFunc(); const isClose: boolean = await props.closeFunc();
visibleRef.value = !isClose; openRef.value = !isClose;
return; return;
} }
visibleRef.value = false; openRef.value = false;
emit('cancel', e); emit('cancel', e);
} }
@ -196,8 +196,8 @@
function setModalProps(props: Partial<ModalProps>): void { function setModalProps(props: Partial<ModalProps>): void {
// Keep the last setModalProps // Keep the last setModalProps
propsRef.value = deepMerge(unref(propsRef) || ({} as any), props); propsRef.value = deepMerge(unref(propsRef) || ({} as any), props);
if (Reflect.has(props, 'visible')) { if (Reflect.has(props, 'open')) {
visibleRef.value = !!props.visible; openRef.value = !!props.open;
} }
if (Reflect.has(props, 'defaultFullscreen')) { if (Reflect.has(props, 'defaultFullscreen')) {
fullScreenRef.value = !!props.defaultFullscreen; fullScreenRef.value = !!props.defaultFullscreen;
@ -230,7 +230,7 @@
fullScreenRef, fullScreenRef,
getMergeProps, getMergeProps,
handleOk, handleOk,
visibleRef, openRef,
omit, omit,
modalWrapperRef, modalWrapperRef,
handleExtHeight, handleExtHeight,

4
src/components/Modal/src/components/Modal.tsx

@ -11,10 +11,10 @@ export default defineComponent({
props: basicProps as any, props: basicProps as any,
emits: ['cancel'], emits: ['cancel'],
setup(props, { slots, emit }) { setup(props, { slots, emit }) {
const { visible, draggable, destroyOnClose } = toRefs(props); const { open, draggable, destroyOnClose } = toRefs(props);
const attrs = useAttrs(); const attrs = useAttrs();
useModalDragMove({ useModalDragMove({
visible, open,
destroyOnClose, destroyOnClose,
draggable, draggable,
}); });

6
src/components/Modal/src/components/ModalWrapper.vue

@ -32,7 +32,7 @@
minHeight: { type: Number, default: 200 }, minHeight: { type: Number, default: 200 },
height: { type: Number }, height: { type: Number },
footerOffset: { type: Number, default: 0 }, footerOffset: { type: Number, default: 0 },
visible: { type: Boolean }, open: { type: Boolean },
fullScreen: { type: Boolean }, fullScreen: { type: Boolean },
loadingTip: { type: String }, loadingTip: { type: String },
}; };
@ -112,8 +112,8 @@
async function setModalHeight() { async function setModalHeight() {
// 解决在弹窗关闭的时候监听还存在,导致再次打开弹窗没有高度 // 解决在弹窗关闭的时候监听还存在,导致再次打开弹窗没有高度
// 加上这个,就必须在使用的时候传递父级的visible // 加上这个,就必须在使用的时候传递父级的open
if (!props.visible) return; if (!props.open) return;
const wrapperRefDom = unref(wrapperRef); const wrapperRefDom = unref(wrapperRef);
if (!wrapperRefDom) return; if (!wrapperRefDom) return;

22
src/components/Modal/src/hooks/useModal.ts

@ -24,7 +24,7 @@ import { error } from '/@/utils/log';
const dataTransfer = reactive<any>({}); const dataTransfer = reactive<any>({});
const visibleData = reactive<{ [key: number]: boolean }>({}); const openData = reactive<{ [key: number]: boolean }>({});
/** /**
* @description: Applicable to independent modal and call outside * @description: Applicable to independent modal and call outside
@ -49,8 +49,8 @@ export function useModal(): UseModalReturnType {
modal.value = modalMethod; modal.value = modalMethod;
loaded.value = true; loaded.value = true;
modalMethod.emitVisible = (visible: boolean, uid: number) => { modalMethod.emitOpen = (open: boolean, uid: number) => {
visibleData[uid] = visible; openData[uid] = open;
}; };
} }
@ -67,17 +67,17 @@ export function useModal(): UseModalReturnType {
getInstance()?.setModalProps(props); getInstance()?.setModalProps(props);
}, },
getVisible: computed((): boolean => { getOpen: computed((): boolean => {
return visibleData[~~unref(uid)]; return openData[~~unref(uid)];
}), }),
redoModalHeight: () => { redoModalHeight: () => {
getInstance()?.redoModalHeight?.(); getInstance()?.redoModalHeight?.();
}, },
openModal: <T = any>(visible = true, data?: T, openOnSet = true): void => { openModal: <T = any>(open = true, data?: T, openOnSet = true): void => {
getInstance()?.setModalProps({ getInstance()?.setModalProps({
visible: visible, open,
}); });
if (!data) return; if (!data) return;
@ -94,7 +94,7 @@ export function useModal(): UseModalReturnType {
}, },
closeModal: () => { closeModal: () => {
getInstance()?.setModalProps({ visible: false }); getInstance()?.setModalProps({ open: false });
}, },
}; };
return [register, methods]; return [register, methods];
@ -138,8 +138,8 @@ export const useModalInner = (callbackFn?: Fn): UseModalInnerReturnType => {
changeLoading: (loading = true) => { changeLoading: (loading = true) => {
getInstance()?.setModalProps({ loading }); getInstance()?.setModalProps({ loading });
}, },
getVisible: computed((): boolean => { getOpen: computed((): boolean => {
return visibleData[~~unref(uidRef)]; return openData[~~unref(uidRef)];
}), }),
changeOkLoading: (loading = true) => { changeOkLoading: (loading = true) => {
@ -147,7 +147,7 @@ export const useModalInner = (callbackFn?: Fn): UseModalInnerReturnType => {
}, },
closeModal: () => { closeModal: () => {
getInstance()?.setModalProps({ visible: false }); getInstance()?.setModalProps({ open: false });
}, },
setModalProps: (props: Partial<ModalProps>) => { setModalProps: (props: Partial<ModalProps>) => {

4
src/components/Modal/src/hooks/useModalDrag.ts

@ -4,7 +4,7 @@ import { useTimeoutFn } from '@vben/hooks';
export interface UseModalDragMoveContext { export interface UseModalDragMoveContext {
draggable: Ref<boolean>; draggable: Ref<boolean>;
destroyOnClose: Ref<boolean | undefined> | undefined; destroyOnClose: Ref<boolean | undefined> | undefined;
visible: Ref<boolean>; open: Ref<boolean>;
} }
export function useModalDragMove(context: UseModalDragMoveContext) { export function useModalDragMove(context: UseModalDragMoveContext) {
@ -97,7 +97,7 @@ export function useModalDragMove(context: UseModalDragMoveContext) {
}; };
watchEffect(() => { watchEffect(() => {
if (!unref(context.visible) || !unref(context.draggable)) { if (!unref(context.open) || !unref(context.draggable)) {
return; return;
} }
useTimeoutFn(() => { useTimeoutFn(() => {

5
src/components/Modal/src/index.less

@ -13,7 +13,7 @@
} }
} }
.ant-modal { .vben-basic-modal .ant-modal {
width: 520px; width: 520px;
padding-bottom: 0; padding-bottom: 0;
@ -51,6 +51,7 @@
} }
&-content { &-content {
padding: 12px 8px !important;
box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%), 0 6px 20px 0 rgb(0 0 0 / 19%); box-shadow: 0 4px 8px 0 rgb(0 0 0 / 20%), 0 6px 20px 0 rgb(0 0 0 / 19%);
} }
@ -61,7 +62,9 @@
} }
&-close { &-close {
width: auto !important;
outline: none; outline: none;
background: #fff !important;
font-weight: normal; font-weight: normal;
} }

4
src/components/Modal/src/props.ts

@ -6,7 +6,7 @@ import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n(); const { t } = useI18n();
export const modalProps = { export const modalProps = {
visible: { type: Boolean }, open: { type: Boolean },
scrollTop: { type: Boolean, default: true }, scrollTop: { type: Boolean, default: true },
height: { type: Number }, height: { type: Number },
minHeight: { type: Number }, minHeight: { type: Number },
@ -73,7 +73,7 @@ export const basicProps = Object.assign({}, modalProps, {
title: { type: String }, title: { type: String },
visible: { type: Boolean }, open: { type: Boolean },
width: [String, Number] as PropType<string | number>, width: [String, Number] as PropType<string | number>,

10
src/components/Modal/src/typing.ts

@ -5,7 +5,7 @@ import type { CSSProperties, VNodeChild, ComputedRef } from 'vue';
*/ */
export interface ModalMethods { export interface ModalMethods {
setModalProps: (props: Partial<ModalProps>) => void; setModalProps: (props: Partial<ModalProps>) => void;
emitVisible?: (visible: boolean, uid: number) => void; emitOpen?: (open: boolean, uid: number) => void;
redoModalHeight?: () => void; redoModalHeight?: () => void;
} }
@ -14,7 +14,7 @@ export type RegisterFn = (modalMethods: ModalMethods, uuid?: string) => void;
export interface ReturnMethods extends ModalMethods { export interface ReturnMethods extends ModalMethods {
openModal: <T = any>(props?: boolean, data?: T, openOnSet?: boolean) => void; openModal: <T = any>(props?: boolean, data?: T, openOnSet?: boolean) => void;
closeModal: () => void; closeModal: () => void;
getVisible?: ComputedRef<boolean>; getOpen?: ComputedRef<boolean>;
} }
export type UseModalReturnType = [RegisterFn, ReturnMethods]; export type UseModalReturnType = [RegisterFn, ReturnMethods];
@ -23,7 +23,7 @@ export interface ReturnInnerMethods extends ModalMethods {
closeModal: () => void; closeModal: () => void;
changeLoading: (loading: boolean) => void; changeLoading: (loading: boolean) => void;
changeOkLoading: (loading: boolean) => void; changeOkLoading: (loading: boolean) => void;
getVisible?: ComputedRef<boolean>; getOpen?: ComputedRef<boolean>;
redoModalHeight: () => void; redoModalHeight: () => void;
} }
@ -40,7 +40,7 @@ export interface ModalProps {
// 是否可以进行全屏 // 是否可以进行全屏
canFullscreen?: boolean; canFullscreen?: boolean;
defaultFullscreen?: boolean; defaultFullscreen?: boolean;
visible?: boolean; open?: boolean;
// 温馨提醒信息 // 温馨提醒信息
helpMessage: string | string[]; helpMessage: string | string[];
@ -203,7 +203,7 @@ export interface ModalWrapperProps {
modalFooterHeight: number; modalFooterHeight: number;
minHeight: number; minHeight: number;
height: number; height: number;
visible: boolean; open: boolean;
fullScreen: boolean; fullScreen: boolean;
useWrapper: boolean; useWrapper: boolean;
} }

6
src/components/Prompt/dialog.vue

@ -1,6 +1,6 @@
<template> <template>
<Modal <Modal
v-model:visible="visible" v-model:open="open"
:title="title" :title="title"
@ok="handleSubmit" @ok="handleSubmit"
:destroyOnClose="true" :destroyOnClose="true"
@ -20,7 +20,7 @@
import { FormSchema } from '/@/components/Form'; import { FormSchema } from '/@/components/Form';
import { BasicForm, useForm } from '/@/components/Form/index'; import { BasicForm, useForm } from '/@/components/Form/index';
const visible = ref<boolean>(true); const open = ref<boolean>(true);
const props = defineProps<{ const props = defineProps<{
title: string; title: string;
addFormSchemas: FormSchema[]; addFormSchemas: FormSchema[];
@ -42,7 +42,7 @@
if (props.onOK) { if (props.onOK) {
await props.onOK(row.txt); await props.onOK(row.txt);
} }
visible.value = false; open.value = false;
} }
</script> </script>

5
src/components/SimpleMenu/src/components/SubMenuItem.vue

@ -20,9 +20,10 @@
placement="right" placement="right"
:overlayClassName="`${prefixCls}-menu-popover`" :overlayClassName="`${prefixCls}-menu-popover`"
v-else v-else
:visible="getIsOpend" :open="getIsOpend"
@visible-change="handleVisibleChange" @on-open-change="handleVisibleChange"
:overlayStyle="getOverlayStyle" :overlayStyle="getOverlayStyle"
:overlayInnerStyle="{ padding: 0 }"
:align="{ offset: [0, 0] }" :align="{ offset: [0, 0] }"
> >
<div :class="getSubClass" v-bind="getEvents(false)"> <div :class="getSubClass" v-bind="getEvents(false)">

2
src/components/Table/src/types/column.ts

@ -80,7 +80,7 @@ export interface ColumnProps<T> {
* Whether filterDropdown is visible * Whether filterDropdown is visible
* @type boolean * @type boolean
*/ */
filterDropdownVisible?: boolean; filterDropdownOpen?: boolean;
/** /**
* Whether the dataSource is filtered * Whether the dataSource is filtered

2
src/layouts/default/header/components/user-dropdown/index.vue

@ -3,7 +3,7 @@
<span :class="[prefixCls, `${prefixCls}--${theme}`]" class="flex"> <span :class="[prefixCls, `${prefixCls}--${theme}`]" class="flex">
<img :class="`${prefixCls}__header`" :src="getUserInfo.avatar" /> <img :class="`${prefixCls}__header`" :src="getUserInfo.avatar" />
<span :class="`${prefixCls}__info hidden md:block`"> <span :class="`${prefixCls}__info hidden md:block`">
<span :class="`${prefixCls}__name `" class="truncate"> <span :class="`${prefixCls}__name`" class="truncate">
{{ getUserInfo.realName }} {{ getUserInfo.realName }}
</span> </span>
</span> </span>

229
src/layouts/default/header/index.vue

@ -1,5 +1,5 @@
<template> <template>
<Header :class="getHeaderClass"> <Layout.Header :class="getHeaderClass" style="height: auto; padding-inline: 0">
<!-- left start --> <!-- left start -->
<div :class="`${prefixCls}-left`"> <div :class="`${prefixCls}-left`">
<!-- logo --> <!-- logo -->
@ -21,7 +21,7 @@
<!-- left end --> <!-- left end -->
<!-- menu start --> <!-- menu start -->
<div :class="`${prefixCls}-menu`" v-if="getShowTopMenu && !getIsMobile"> <div v-if="getShowTopMenu && !getIsMobile" :class="`${prefixCls}-menu`">
<LayoutMenu <LayoutMenu
:isHorizontal="true" :isHorizontal="true"
:theme="getHeaderTheme" :theme="getHeaderTheme"
@ -33,7 +33,7 @@
<!-- action --> <!-- action -->
<div :class="`${prefixCls}-action`"> <div :class="`${prefixCls}-action`">
<AppSearch :class="`${prefixCls}-action__item `" v-if="getShowSearch" /> <AppSearch v-if="getShowSearch" :class="`${prefixCls}-action__item `" />
<ErrorAction v-if="getUseErrorHandle" :class="`${prefixCls}-action__item error-action`" /> <ErrorAction v-if="getUseErrorHandle" :class="`${prefixCls}-action__item error-action`" />
@ -52,145 +52,100 @@
<SettingDrawer v-if="getShowSetting" :class="`${prefixCls}-action__item`" /> <SettingDrawer v-if="getShowSetting" :class="`${prefixCls}-action__item`" />
</div> </div>
</Header> </Layout.Header>
</template> </template>
<script lang="ts"> <script lang="ts" setup>
import { defineComponent, unref, computed } from 'vue';
import { propTypes } from '/@/utils/propTypes';
import { Layout } from 'ant-design-vue'; import { Layout } from 'ant-design-vue';
import { AppLogo, AppSearch, AppLocalePicker } from '/@/components/Application'; import { computed, unref } from 'vue';
import { AppLocalePicker, AppLogo, AppSearch } from '@/components/Application';
import { SettingButtonPositionEnum } from '@/enums/appEnum';
import { MenuModeEnum, MenuSplitTyeEnum } from '@/enums/menuEnum';
import { useHeaderSetting } from '@/hooks/setting/useHeaderSetting';
import { useMenuSetting } from '@/hooks/setting/useMenuSetting';
import { useRootSetting } from '@/hooks/setting/useRootSetting';
import { useAppInject } from '@/hooks/web/useAppInject';
import { useDesign } from '@/hooks/web/useDesign';
import { useLocale } from '@/locales/useLocale';
import { createAsyncComponent } from '@/utils/factory/createAsyncComponent';
import { propTypes } from '@/utils/propTypes';
import LayoutMenu from '../menu/index.vue'; import LayoutMenu from '../menu/index.vue';
import LayoutTrigger from '../trigger/index.vue'; import LayoutTrigger from '../trigger/index.vue';
import { ErrorAction, FullScreen, LayoutBreadcrumb, Notify, UserDropDown } from './components';
const SettingDrawer = createAsyncComponent(() => import('@/layouts/default/setting/index.vue'), {
loading: true,
});
defineOptions({ name: 'LayoutHeader' });
const props = defineProps({
fixed: propTypes.bool,
});
const { prefixCls } = useDesign('layout-header');
const {
getShowTopMenu,
getShowHeaderTrigger,
getSplit,
getIsMixMode,
getMenuWidth,
getIsMixSidebar,
} = useMenuSetting();
const { getUseErrorHandle, getShowSettingButton, getSettingButtonPosition } = useRootSetting();
const {
getHeaderTheme,
getShowFullScreen,
getShowNotice,
getShowContent,
getShowBread,
getShowHeaderLogo,
getShowHeader,
getShowSearch,
} = useHeaderSetting();
const { getShowLocalePicker } = useLocale();
const { getIsMobile } = useAppInject();
const getHeaderClass = computed(() => {
const theme = unref(getHeaderTheme);
return [
prefixCls,
{
[`${prefixCls}--fixed`]: props.fixed,
[`${prefixCls}--mobile`]: unref(getIsMobile),
[`${prefixCls}--${theme}`]: theme,
},
];
});
const getShowSetting = computed(() => {
if (!unref(getShowSettingButton)) {
return false;
}
const settingButtonPosition = unref(getSettingButtonPosition);
if (settingButtonPosition === SettingButtonPositionEnum.AUTO) {
return unref(getShowHeader);
}
return settingButtonPosition === SettingButtonPositionEnum.HEADER;
});
const getLogoWidth = computed(() => {
if (!unref(getIsMixMode) || unref(getIsMobile)) {
return {};
}
const width = unref(getMenuWidth) < 180 ? 180 : unref(getMenuWidth);
return { width: `${width}px` };
});
const getSplitType = computed(() => {
return unref(getSplit) ? MenuSplitTyeEnum.TOP : MenuSplitTyeEnum.NONE;
});
import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'; const getMenuMode = computed(() => {
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; return unref(getSplit) ? MenuModeEnum.HORIZONTAL : null;
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
import { SettingButtonPositionEnum } from '/@/enums/appEnum';
import { UserDropDown, LayoutBreadcrumb, FullScreen, Notify, ErrorAction } from './components';
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useDesign } from '/@/hooks/web/useDesign';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
import { useLocale } from '/@/locales/useLocale';
export default defineComponent({
name: 'LayoutHeader',
components: {
Header: Layout.Header,
AppLogo,
LayoutTrigger,
LayoutBreadcrumb,
LayoutMenu,
UserDropDown,
AppLocalePicker,
FullScreen,
Notify,
AppSearch,
ErrorAction,
SettingDrawer: createAsyncComponent(() => import('/@/layouts/default/setting/index.vue'), {
loading: true,
}),
},
props: {
fixed: propTypes.bool,
},
setup(props) {
const { prefixCls } = useDesign('layout-header');
const {
getShowTopMenu,
getShowHeaderTrigger,
getSplit,
getIsMixMode,
getMenuWidth,
getIsMixSidebar,
} = useMenuSetting();
const { getUseErrorHandle, getShowSettingButton, getSettingButtonPosition } =
useRootSetting();
const {
getHeaderTheme,
getShowFullScreen,
getShowNotice,
getShowContent,
getShowBread,
getShowHeaderLogo,
getShowHeader,
getShowSearch,
} = useHeaderSetting();
const { getShowLocalePicker } = useLocale();
const { getIsMobile } = useAppInject();
const getHeaderClass = computed(() => {
const theme = unref(getHeaderTheme);
return [
prefixCls,
{
[`${prefixCls}--fixed`]: props.fixed,
[`${prefixCls}--mobile`]: unref(getIsMobile),
[`${prefixCls}--${theme}`]: theme,
},
];
});
const getShowSetting = computed(() => {
if (!unref(getShowSettingButton)) {
return false;
}
const settingButtonPosition = unref(getSettingButtonPosition);
if (settingButtonPosition === SettingButtonPositionEnum.AUTO) {
return unref(getShowHeader);
}
return settingButtonPosition === SettingButtonPositionEnum.HEADER;
});
const getLogoWidth = computed(() => {
if (!unref(getIsMixMode) || unref(getIsMobile)) {
return {};
}
const width = unref(getMenuWidth) < 180 ? 180 : unref(getMenuWidth);
return { width: `${width}px` };
});
const getSplitType = computed(() => {
return unref(getSplit) ? MenuSplitTyeEnum.TOP : MenuSplitTyeEnum.NONE;
});
const getMenuMode = computed(() => {
return unref(getSplit) ? MenuModeEnum.HORIZONTAL : null;
});
return {
prefixCls,
getHeaderClass,
getShowHeaderLogo,
getHeaderTheme,
getShowHeaderTrigger,
getIsMobile,
getShowBread,
getShowContent,
getSplitType,
getSplit,
getMenuMode,
getShowTopMenu,
getShowLocalePicker,
getShowFullScreen,
getShowNotice,
getUseErrorHandle,
getLogoWidth,
getIsMixSidebar,
getShowSettingButton,
getShowSetting,
getShowSearch,
};
},
}); });
</script> </script>
<style lang="less"> <style lang="less">

182
src/layouts/default/sider/LayoutSider.vue

@ -1,10 +1,10 @@
<template> <template>
<div <div
v-if="getMenuFixed && !getIsMobile" v-if="getMenuFixed && !getIsMobile"
:style="getHiddenDomStyle"
v-show="showClassSideBarRef" v-show="showClassSideBarRef"
:style="getHiddenDomStyle"
></div> ></div>
<Sider <Layout.Sider
v-show="showClassSideBarRef" v-show="showClassSideBarRef"
ref="sideRef" ref="sideRef"
breakpoint="lg" breakpoint="lg"
@ -14,120 +14,94 @@
:collapsed="getCollapsed" :collapsed="getCollapsed"
:collapsedWidth="getCollapsedWidth" :collapsedWidth="getCollapsedWidth"
:theme="getMenuTheme" :theme="getMenuTheme"
@breakpoint="onBreakpointChange"
:trigger="getTrigger" :trigger="getTrigger"
v-bind="getTriggerAttr" v-bind="getTriggerAttr"
@breakpoint="onBreakpointChange"
> >
<template #trigger v-if="getShowTrigger"> <template v-if="getShowTrigger" #trigger>
<LayoutTrigger /> <LayoutTrigger />
</template> </template>
<LayoutMenu :theme="getMenuTheme" :menuMode="getMode" :splitType="getSplitType" /> <LayoutMenu :theme="getMenuTheme" :menuMode="getMode" :splitType="getSplitType" />
<DragBar ref="dragBarRef" /> <DragBar ref="dragBarRef" />
</Sider> </Layout.Sider>
</template> </template>
<script lang="ts"> <script lang="ts" setup>
import { computed, defineComponent, ref, unref, CSSProperties, h } from 'vue';
import { Layout } from 'ant-design-vue'; import { Layout } from 'ant-design-vue';
import { computed, CSSProperties, h, ref, unref } from 'vue';
import { MenuModeEnum, MenuSplitTyeEnum } from '@/enums/menuEnum';
import { useMenuSetting } from '@/hooks/setting/useMenuSetting';
import { useAppInject } from '@/hooks/web/useAppInject';
import { useDesign } from '@/hooks/web/useDesign';
import LayoutTrigger from '@/layouts/default/trigger/index.vue';
import LayoutMenu from '../menu/index.vue'; import LayoutMenu from '../menu/index.vue';
import LayoutTrigger from '/@/layouts/default/trigger/index.vue';
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useTrigger, useDragLine, useSiderEvent } from './useLayoutSider';
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useDesign } from '/@/hooks/web/useDesign';
import DragBar from './DragBar.vue'; import DragBar from './DragBar.vue';
import { useDragLine, useSiderEvent, useTrigger } from './useLayoutSider';
defineOptions({ name: 'LayoutSideBar' });
const dragBarRef = ref(null);
const sideRef = ref(null);
const {
getCollapsed,
getMenuWidth,
getSplit,
getMenuTheme,
getRealWidth,
getMenuHidden,
getMenuFixed,
getIsMixMode,
} = useMenuSetting();
const { prefixCls } = useDesign('layout-sideBar');
const { getIsMobile } = useAppInject();
export default defineComponent({ const { getTriggerAttr, getShowTrigger } = useTrigger(getIsMobile);
name: 'LayoutSideBar',
components: { Sider: Layout.Sider, LayoutMenu, DragBar, LayoutTrigger }, useDragLine(sideRef, dragBarRef);
setup() {
const dragBarRef = ref(null); const { getCollapsedWidth, onBreakpointChange } = useSiderEvent();
const sideRef = ref(null);
const getMode = computed(() => {
const { return unref(getSplit) ? MenuModeEnum.INLINE : null;
getCollapsed, });
getMenuWidth,
getSplit, const getSplitType = computed(() => {
getMenuTheme, return unref(getSplit) ? MenuSplitTyeEnum.LEFT : MenuSplitTyeEnum.NONE;
getRealWidth, });
getMenuHidden,
getMenuFixed, const showClassSideBarRef = computed(() => {
getIsMixMode, return unref(getSplit) ? !unref(getMenuHidden) : true;
toggleCollapsed, });
} = useMenuSetting();
const getSiderClass = computed(() => {
const { prefixCls } = useDesign('layout-sideBar'); return [
prefixCls,
const { getIsMobile } = useAppInject(); {
[`${prefixCls}--fixed`]: unref(getMenuFixed),
const { getTriggerAttr, getShowTrigger } = useTrigger(getIsMobile); [`${prefixCls}--mix`]: unref(getIsMixMode) && !unref(getIsMobile),
},
useDragLine(sideRef, dragBarRef); ];
const { getCollapsedWidth, onBreakpointChange } = useSiderEvent();
const getMode = computed(() => {
return unref(getSplit) ? MenuModeEnum.INLINE : null;
});
const getSplitType = computed(() => {
return unref(getSplit) ? MenuSplitTyeEnum.LEFT : MenuSplitTyeEnum.NONE;
});
const showClassSideBarRef = computed(() => {
return unref(getSplit) ? !unref(getMenuHidden) : true;
});
const getSiderClass = computed(() => {
return [
prefixCls,
{
[`${prefixCls}--fixed`]: unref(getMenuFixed),
[`${prefixCls}--mix`]: unref(getIsMixMode) && !unref(getIsMobile),
},
];
});
const getHiddenDomStyle = computed((): CSSProperties => {
const width = `${unref(getRealWidth)}px`;
return {
width: width,
overflow: 'hidden',
flex: `0 0 ${width}`,
maxWidth: width,
minWidth: width,
transition: 'all 0.2s',
};
});
// 在此处使用计算量可能会导致sider异常
// andv 更新后,如果trigger插槽可用,则此处代码可废弃
const getTrigger = h(LayoutTrigger);
return {
prefixCls,
sideRef,
dragBarRef,
getIsMobile,
getHiddenDomStyle,
getSiderClass,
getTrigger,
getTriggerAttr,
getCollapsedWidth,
getMenuFixed,
showClassSideBarRef,
getMenuWidth,
getCollapsed,
getMenuTheme,
onBreakpointChange,
getMode,
getSplitType,
getShowTrigger,
toggleCollapsed,
};
},
}); });
const getHiddenDomStyle = computed((): CSSProperties => {
const width = `${unref(getRealWidth)}px`;
return {
width,
overflow: 'hidden',
flex: `0 0 ${width}`,
maxWidth: width,
minWidth: width,
transition: 'all 0.2s',
};
});
// 在此处使用计算量可能会导致sider异常
// andv 更新后,如果trigger插槽可用,则此处代码可废弃
const getTrigger = h(LayoutTrigger);
</script> </script>
<style lang="less"> <style lang="less">
@prefix-cls: ~'@{namespace}-layout-sideBar'; @prefix-cls: ~'@{namespace}-layout-sideBar';
@ -136,7 +110,7 @@
z-index: @layout-sider-fixed-z-index; z-index: @layout-sider-fixed-z-index;
&--fixed { &--fixed {
position: fixed; position: fixed !important;
top: 0; top: 0;
left: 0; left: 0;
height: 100%; height: 100%;

5
src/layouts/default/sider/index.vue

@ -4,8 +4,8 @@
placement="left" placement="left"
:class="prefixCls" :class="prefixCls"
:width="getMenuWidth" :width="getMenuWidth"
:getContainer="null" :getContainer="false"
:visible="!getCollapsed" :open="!getCollapsed"
@close="handleClose" @close="handleClose"
> >
<Sider /> <Sider />
@ -13,6 +13,7 @@
<MixSider v-else-if="getIsMixSidebar" /> <MixSider v-else-if="getIsMixSidebar" />
<Sider v-else /> <Sider v-else />
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';

2
src/main.ts

@ -1,7 +1,7 @@
import 'uno.css'; import 'uno.css';
import '@/design/index.less'; import '@/design/index.less';
import '@/components/VxeTable/src/css/index.scss'; import '@/components/VxeTable/src/css/index.scss';
import 'ant-design-vue/dist/antd.less'; import 'ant-design-vue/dist/reset.css';
// Register icon sprite // Register icon sprite
import 'virtual:svg-icons-register'; import 'virtual:svg-icons-register';

6
src/views/demo/comp/modal/Modal1.vue

@ -5,7 +5,7 @@
@register="register" @register="register"
title="Modal Title" title="Modal Title"
:helpMessage="['提示1', '提示2']" :helpMessage="['提示1', '提示2']"
@visible-change="handleShow" @open-change="handleShow"
> >
<template #insertFooter> <template #insertFooter>
<a-button type="primary" danger @click="setLines" :disabled="loading">点我更新内容</a-button> <a-button type="primary" danger @click="setLines" :disabled="loading">点我更新内容</a-button>
@ -38,8 +38,8 @@
}, },
); );
function handleShow(visible: boolean) { function handleShow(open: boolean) {
if (visible) { if (open) {
loading.value = true; loading.value = true;
setModalProps({ loading: true, confirmLoading: true }); setModalProps({ loading: true, confirmLoading: true });
setTimeout(() => { setTimeout(() => {

8
src/views/demo/comp/modal/index.vue

@ -31,7 +31,7 @@
/> />
<a-button type="primary" class="my-4" @click="handleCreatePrompt"> Prompt </a-button> <a-button type="primary" class="my-4" @click="handleCreatePrompt"> Prompt </a-button>
<component :is="currentModal" v-model:visible="modalVisible" :userData="userData" /> <component :is="currentModal" v-model:open="modalOpen" :userData="userData" />
<Modal1 @register="register1" :minHeight="100" /> <Modal1 @register="register1" :minHeight="100" />
<Modal2 @register="register2" /> <Modal2 @register="register2" />
@ -59,7 +59,7 @@
const [register2, { openModal: openModal2 }] = useModal(); const [register2, { openModal: openModal2 }] = useModal();
const [register3, { openModal: openModal3 }] = useModal(); const [register3, { openModal: openModal3 }] = useModal();
const [register4, { openModal: openModal4 }] = useModal(); const [register4, { openModal: openModal4 }] = useModal();
const modalVisible = ref<Boolean>(false); const modalOpen = ref<Boolean>(false);
const userData = ref<any>(null); const userData = ref<any>(null);
function send() { function send() {
@ -96,7 +96,7 @@
// passing data through `userData` prop // passing data through `userData` prop
userData.value = { data: Math.random(), info: 'Info222' }; userData.value = { data: Math.random(), info: 'Info222' };
// open the target modal // open the target modal
modalVisible.value = true; modalOpen.value = true;
}); });
} }
@ -122,7 +122,7 @@
openModal3, openModal3,
register4, register4,
openModal4, openModal4,
modalVisible, modalOpen,
userData, userData,
openTargetModal, openTargetModal,
send, send,

2
src/views/form-design/components/VFormDesign/config/componentPropsConfig.ts

@ -907,7 +907,7 @@ const componentAttrs: IBaseComponentProps = {
}, },
}, },
{ {
name: 'dropdownClassName', name: 'popupClassName',
label: '下拉菜单的 className 属性', label: '下拉菜单的 className 属性',
component: 'Input', component: 'Input',
componentProps: { componentProps: {

Loading…
Cancel
Save