From 93f2e5b15744af657c92eeed5a95f932f44d3630 Mon Sep 17 00:00:00 2001 From: buqiyuan <1743369777@qq.com> Date: Sun, 19 May 2024 08:21:11 +0800 Subject: [PATCH] fix(schema-form): fix submit values --- package.json | 22 +- pnpm-lock.yaml | 873 +++++++++--------- .../basic/preview-resource/index.vue | 37 + .../src/components/editable-cell/index.vue | 2 +- .../core/schema-form/src/hooks/useAdvanced.ts | 10 +- .../schema-form/src/hooks/useFormEvents.ts | 305 +----- .../schema-form/src/hooks/useFormMethods.ts | 311 ++++++- .../schema-form/src/hooks/useLabelWidth.ts | 14 +- .../core/schema-form/src/schema-form-item.vue | 8 +- .../core/schema-form/src/schema-form.ts | 2 +- .../core/schema-form/src/schema-form.vue | 21 +- .../core/schema-form/src/types/form.ts | 10 +- src/utils/request.ts | 4 + .../demos/form/basic-form/form-schema.tsx | 46 + src/views/demos/form/basic-form/index.vue | 6 +- src/views/demos/form/custom-form/index.vue | 9 +- .../form/custom-form/input-number-range.vue | 4 +- .../components/file-preview-drawer.vue | 35 +- src/views/netdisk/manage.vue | 17 +- src/views/system/monitor/log/login/index.vue | 5 +- 20 files changed, 930 insertions(+), 811 deletions(-) create mode 100644 src/components/basic/preview-resource/index.vue diff --git a/package.json b/package.json index a567de8e7..114206b21 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "packageManager": "pnpm@9.1.0", "type": "module", "engines": { - "node": ">=18" + "node": ">=18", + "pnpm": ">=9.0.2" }, "author": { "name": "buqiyuan", @@ -77,22 +78,23 @@ "@faker-js/faker": "^8.4.1", "@iconify-json/ant-design": "^1.1.16", "@iconify-json/ep": "^1.1.15", - "@iconify/json": "^2.2.207", + "@iconify/json": "^2.2.211", "@types/crypto-js": "^4.2.2", "@types/lodash-es": "~4.17.12", - "@types/node": "~20.12.8", + "@types/node": "~20.12.12", + "@types/qs": "^6.9.15", "@types/sortablejs": "^1.15.8", - "@typescript-eslint/eslint-plugin": "~7.8.0", - "@typescript-eslint/parser": "~7.8.0", + "@typescript-eslint/eslint-plugin": "~7.9.0", + "@typescript-eslint/parser": "~7.9.0", "@umijs/openapi": "^1.12.1", "@vitejs/plugin-vue": "~5.0.4", "@vitejs/plugin-vue-jsx": "~3.1.0", "@vue/tsconfig": "^0.5.1", "commitizen": "~4.3.0", "conventional-changelog-cli": "~4.1.0", - "core-js": "^3.37.0", + "core-js": "^3.37.1", "cross-env": "~7.0.3", - "eslint": "~9.2.0", + "eslint": "~9.3.0", "eslint-config-prettier": "~9.1.0", "eslint-define-config": "~2.1.0", "eslint-plugin-import": "~2.29.1", @@ -103,12 +105,12 @@ "less": "~4.2.0", "lint-staged": "~15.2.2", "msw": "^2.3.0", - "nx": "^19.0.2", + "nx": "^19.0.4", "postcss": "~8.4.38", "postcss-html": "~1.7.0", "postcss-less": "~6.0.0", "prettier": "~3.2.5", - "rimraf": "~5.0.6", + "rimraf": "~5.0.7", "stylelint": "~16.5.0", "stylelint-config-property-sort-order-smacss": "^10.0.0", "stylelint-config-recommended": "~14.0.0", @@ -117,7 +119,7 @@ "stylelint-order": "~6.0.4", "stylelint-prettier": "^5.0.0", "typescript": "~5.4.5", - "unocss": "^0.60.0", + "unocss": "^0.60.2", "unplugin-vue-components": "~0.27.0", "vite": "~5.2.11", "vite-plugin-checker": "~0.6.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40937327f..fae38a293 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,7 +101,7 @@ importers: version: link:packages/vite-plugin-tinymce-resource '@commitlint/cli': specifier: ~19.3.0 - version: 19.3.0(@types/node@20.12.11)(typescript@5.4.5) + version: 19.3.0(@types/node@20.12.12)(typescript@5.4.5) '@commitlint/config-conventional': specifier: ~19.2.2 version: 19.2.2 @@ -115,8 +115,8 @@ importers: specifier: ^1.1.15 version: 1.1.15 '@iconify/json': - specifier: ^2.2.207 - version: 2.2.208 + specifier: ^2.2.211 + version: 2.2.211 '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -124,62 +124,65 @@ importers: specifier: ~4.17.12 version: 4.17.12 '@types/node': - specifier: ~20.12.8 - version: 20.12.11 + specifier: ~20.12.12 + version: 20.12.12 + '@types/qs': + specifier: ^6.9.15 + version: 6.9.15 '@types/sortablejs': specifier: ^1.15.8 version: 1.15.8 '@typescript-eslint/eslint-plugin': - specifier: ~7.8.0 - version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5) + specifier: ~7.9.0 + version: 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ~7.8.0 - version: 7.8.0(eslint@9.2.0)(typescript@5.4.5) + specifier: ~7.9.0 + version: 7.9.0(eslint@9.3.0)(typescript@5.4.5) '@umijs/openapi': specifier: ^1.12.1 version: 1.12.1(chokidar@3.6.0) '@vitejs/plugin-vue': specifier: ~5.0.4 - version: 5.0.4(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: ~3.1.0 - version: 3.1.0(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5)) + version: 3.1.0(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5)) '@vue/tsconfig': specifier: ^0.5.1 version: 0.5.1 commitizen: specifier: ~4.3.0 - version: 4.3.0(@types/node@20.12.11)(typescript@5.4.5) + version: 4.3.0(@types/node@20.12.12)(typescript@5.4.5) conventional-changelog-cli: specifier: ~4.1.0 version: 4.1.0 core-js: - specifier: ^3.37.0 - version: 3.37.0 + specifier: ^3.37.1 + version: 3.37.1 cross-env: specifier: ~7.0.3 version: 7.0.3 eslint: - specifier: ~9.2.0 - version: 9.2.0 + specifier: ~9.3.0 + version: 9.3.0 eslint-config-prettier: specifier: ~9.1.0 - version: 9.1.0(eslint@9.2.0) + version: 9.1.0(eslint@9.3.0) eslint-define-config: specifier: ~2.1.0 version: 2.1.0 eslint-plugin-import: specifier: ~2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0) + version: 2.29.1(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0) eslint-plugin-prettier: specifier: ~5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0(eslint@9.3.0))(eslint@9.3.0)(prettier@3.2.5) eslint-plugin-unused-imports: specifier: ^3.2.0 - version: 3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0) + version: 3.2.0(@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0) eslint-plugin-vue: specifier: ~9.26.0 - version: 9.26.0(eslint@9.2.0) + version: 9.26.0(eslint@9.3.0) husky: specifier: ~9.0.11 version: 9.0.11 @@ -193,8 +196,8 @@ importers: specifier: ^2.3.0 version: 2.3.0(typescript@5.4.5) nx: - specifier: ^19.0.2 - version: 19.0.2 + specifier: ^19.0.4 + version: 19.0.4 postcss: specifier: ~8.4.38 version: 8.4.38 @@ -208,8 +211,8 @@ importers: specifier: ~3.2.5 version: 3.2.5 rimraf: - specifier: ~5.0.6 - version: 5.0.6 + specifier: ~5.0.7 + version: 5.0.7 stylelint: specifier: ~16.5.0 version: 16.5.0(typescript@5.4.5) @@ -235,29 +238,29 @@ importers: specifier: ~5.4.5 version: 5.4.5 unocss: - specifier: ^0.60.0 - version: 0.60.0(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)) + specifier: ^0.60.2 + version: 0.60.2(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)) unplugin-vue-components: specifier: ~0.27.0 version: 0.27.0(@babel/parser@7.24.5)(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5)) vite: specifier: ~5.2.11 - version: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + version: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) vite-plugin-checker: specifier: ~0.6.4 - version: 0.6.4(eslint@9.2.0)(meow@9.0.0)(optionator@0.9.4)(stylelint@16.5.0(typescript@5.4.5))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))(vue-tsc@1.8.27(typescript@5.4.5)) + version: 0.6.4(eslint@9.3.0)(meow@9.0.0)(optionator@0.9.4)(stylelint@16.5.0(typescript@5.4.5))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))(vue-tsc@1.8.27(typescript@5.4.5)) vite-plugin-inspect: specifier: ^0.8.4 - version: 0.8.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)) + version: 0.8.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)) vite-plugin-mkcert: specifier: ^1.17.5 - version: 1.17.5(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)) + version: 1.17.5(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)) vite-plugin-svg-icons: specifier: ~2.0.1 - version: 2.0.1(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)) + version: 2.0.1(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)) vue-eslint-parser: specifier: ~9.4.2 - version: 9.4.2(eslint@9.2.0) + version: 9.4.2(eslint@9.3.0) vue-tsc: specifier: ~1.8.27 version: 1.8.27(typescript@5.4.5) @@ -273,7 +276,7 @@ importers: version: 5.4.5 vite: specifier: ^5.1.5 - version: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + version: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) packages/vite-plugin-http2-proxy: dependencies: @@ -297,7 +300,7 @@ importers: version: 0.5.1 vite: specifier: ^5.2.11 - version: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + version: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) devDependencies: tsup: specifier: ^8.0.2 @@ -307,7 +310,7 @@ importers: dependencies: vite: specifier: ^5.2.11 - version: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + version: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) packages: @@ -1091,8 +1094,8 @@ packages: '@csstools/css-parser-algorithms': ^2.6.3 '@csstools/css-tokenizer': ^2.3.1 - '@csstools/selector-specificity@3.0.3': - resolution: {integrity: sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==} + '@csstools/selector-specificity@3.1.1': + resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 @@ -1400,12 +1403,12 @@ packages: resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} engines: {node: ^10.12.0 || >=12.0.0} - '@eslint/eslintrc@3.0.2': - resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.2.0': - resolution: {integrity: sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==} + '@eslint/js@9.3.0': + resolution: {integrity: sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@exodus/schemasafe@1.3.0': @@ -1433,8 +1436,8 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - '@humanwhocodes/retry@0.2.4': - resolution: {integrity: sha512-Ttl/jHpxfS3st5sxwICYfk4pOH0WrLI1SpW283GgQL7sCWU7EHIOhX4b4fkIxr3tkfzwg8+FNojtzsIEE7Ecgg==} + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} '@hutson/parse-repository-url@5.0.0': @@ -1447,8 +1450,8 @@ packages: '@iconify-json/ep@1.1.15': resolution: {integrity: sha512-96JBJQrJhxYy+j+KE5lqyE+Y6O+06fVUdMaHJ1Rb9+bbOjI1tw6EwYl9H4SB6Hkf7zB80VX6GgG0yH0Z0c8K1Q==} - '@iconify/json@2.2.208': - resolution: {integrity: sha512-xGJnQ/bYWWFrnPs/qNCSq9CYHXOBINpV3ctuy0zUucKejdNKnpAwVIzuyDJPt0McvQ6XfdU0rxkzH3rHVF43Vg==} + '@iconify/json@2.2.211': + resolution: {integrity: sha512-bg/rNpMYwjXJrOR8R56AuMuuNxcSgf/lw/EqtRUyPP1bbiXytF5VJModXohysnsN46M/gr+ydRUjIXRa/vuotA==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -1461,20 +1464,20 @@ packages: peerDependencies: vue: '>=3' - '@inquirer/confirm@3.1.6': - resolution: {integrity: sha512-Mj4TU29g6Uy+37UtpA8UpEOI2icBfpCwSW1QDtfx60wRhUy90s/kHPif2OXSSvuwDQT1lhAYRWUfkNf9Tecxvg==} + '@inquirer/confirm@3.1.8': + resolution: {integrity: sha512-f3INZ+ca4dQdn+MQiq1yP/mOIR/Oc8BLRYuDh6ciToWd6z4W8yArfzjBCMQ0BPY8PcJKwZxGIt8Z6yNT32eSTw==} engines: {node: '>=18'} - '@inquirer/core@8.1.0': - resolution: {integrity: sha512-kfx0SU9nWgGe1f03ao/uXc85SFH1v2w3vQVH7QDGjKxdtJz+7vPitFtG++BTyJMYyYgH8MpXigutcXJeiQwVRw==} + '@inquirer/core@8.2.1': + resolution: {integrity: sha512-TIcuQMn2qrtyYe0j136UpHeYpk7AcR/trKeT/7YY0vRgcS9YSfJuQ2+PudPhSofLLsHNnRYAHScQCcVZrJkMqA==} engines: {node: '>=18'} - '@inquirer/figures@1.0.1': - resolution: {integrity: sha512-mtup3wVKia3ZwULPHcbs4Mor8Voi+iIXEWD7wCNbIO6lYR62oPCTQyrddi5OMYVXHzeCSoneZwJuS8sBvlEwDw==} + '@inquirer/figures@1.0.2': + resolution: {integrity: sha512-4F1MBwVr3c/m4bAUef6LgkvBfSjzwH+OfldgHqcuacWwSUetFebM2wi58WfG9uk1rR98U6GwLed4asLJbwdV5w==} engines: {node: '>=18'} - '@inquirer/type@1.3.1': - resolution: {integrity: sha512-Pe3PFccjPVJV1vtlfVvm9OnlbxqdnP5QcscFEFEnK5quChf1ufZtM0r8mR5ToWHMxZOh0s8o/qp9ANGRTo/DAw==} + '@inquirer/type@1.3.2': + resolution: {integrity: sha512-5Frickan9c89QbPkSu6I6y8p+9eR6hZkdPahGmNDsTFX8FHLPAozyzCZMKUeW8FyYwnlCKUjqIEqxY+UctARiw==} engines: {node: '>=18'} '@intlify/core-base@9.13.1': @@ -1538,70 +1541,70 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nrwl/tao@19.0.2': - resolution: {integrity: sha512-VLU0Ptqq9+R5Ugb4d7ANb/pzZ8Rh+ExNcyg5MVNNrrgrM8ghLOu2/qPoatWyXLZg+cfKr6bH7/c0rWBtPcc69Q==} + '@nrwl/tao@19.0.4': + resolution: {integrity: sha512-ZoHM5hbj0fOaWiiQoN/Wjozc6lbBCCcH7jCIX7amN6aztmcwNYk+Q3NKJE5Jh0/Js5M78VTnLRG2h4KHPzKSKg==} hasBin: true - '@nx/nx-darwin-arm64@19.0.2': - resolution: {integrity: sha512-JVOz6kNaypyK7Bi/l//BZ6F8i70UXlnQBdnacBM8nZH2oAQ7OIj1foZEw7ANnDvKpUJB2staJ9ZwPc/KzXwr5A==} + '@nx/nx-darwin-arm64@19.0.4': + resolution: {integrity: sha512-EwTMKVFdMF42b+DG3ACtrGVE3iiAgOw+VJ4Vekm59+ZkTg6GrZly2VNbthoNSJd6/uPQssoljx36NZH953ieBw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@19.0.2': - resolution: {integrity: sha512-qfj3AJ/RCbEps+Evbycrf1qUQk/zkwX5NT80dgK/r9eGBbo3qOA3VLa1z0PtaaJaYhZxZkjhwXOqhqAjDNN8bw==} + '@nx/nx-darwin-x64@19.0.4': + resolution: {integrity: sha512-W+SVaYOHWRHcws7wZVcWyxoT57r1qXLMUBvpTVBf5PsVfsI+t9sINwzZjcXWaGNVcPGrVYUZF6Cp3/exkPNUBw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@19.0.2': - resolution: {integrity: sha512-Fe+SQ4ug2RbKQ6saLhntsaOhf0aeoLQ/nJCc6h0TYPIs43go5gFSLFa2xnCOIo90dSL6/0z1r8VsZGSQQHiXMg==} + '@nx/nx-freebsd-x64@19.0.4': + resolution: {integrity: sha512-8Wl2+TOXiRDLbI8mwsbx1sHQLKAaNvfTm2e5Kf+4ay4W/UsrHONRDRA4d/LhMOLQMo+2+q2q+u8DziqT0w0Vaw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@19.0.2': - resolution: {integrity: sha512-0IW/gYZo5toGjjrqKL4SqV2twfkVDfMpx6M4BxwJlYEzzl+gtF0VrWfhVU3r4p2YZV8yW3cmH9SNChB6YZgQmA==} + '@nx/nx-linux-arm-gnueabihf@19.0.4': + resolution: {integrity: sha512-C3PBsyNM5Npq8G8h/WHjUwwlKZpfWK4tK1ZeNseb6LtoNIgNF0PVrJQERqXABt29lanoQ4SeJ8RPgppB3xgCwg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@19.0.2': - resolution: {integrity: sha512-+u5Y7XYf0M/KOnDz+iS6DnaGfwvEFsMJipzv337Mbc2qP2sxBR4pM8hEKcQeqII71as0Xo0sZzmyxXjJvG7bzw==} + '@nx/nx-linux-arm64-gnu@19.0.4': + resolution: {integrity: sha512-d7gJv/QlaaBKTHpN+DmnQvo1FBNOGfh9b819WMaNXgDLSNpw9CpaOBZPbPgduee3OaGwbfWmll8VDYzUZgKWuw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@nx/nx-linux-arm64-musl@19.0.2': - resolution: {integrity: sha512-hmQ6evq9S5a/svQOwpRF5Zcu114A9jpeDKEBysFmbdV1eTFkrxlnvSCs/xXOeYOe/QS8Ijl50d7+1zkOE2HVMA==} + '@nx/nx-linux-arm64-musl@19.0.4': + resolution: {integrity: sha512-lQ76O4AtXAQJ6r1MdVDVp4GG+o2vylWFjcyZvZpclhjag+fWKSdO0igL/14HsqNwCPmcPtaHmgqQNlw3MMtL3w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@nx/nx-linux-x64-gnu@19.0.2': - resolution: {integrity: sha512-zVcAotU7qlunsvg7I3oGp50f6ha44FeU6ITA+CHD0A/wqD11ZpVP0qsqMLawCGiKhNafQmUvkXMEFJ1dUX5aWw==} + '@nx/nx-linux-x64-gnu@19.0.4': + resolution: {integrity: sha512-1K95WMdKHM4pMACzsO9m9TWqSXwL5cg9/1UuS9LUKhjY/bX2y3iTtzT0tFBptCVzRVLZG8wAZphxwQfBIQvnCQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@nx/nx-linux-x64-musl@19.0.2': - resolution: {integrity: sha512-72hT2V9IQNMIrC7sBzllrHEnoJOhuPxKXJTUYzz4v/Y11t1ziTHflGXO9nJOpydh8vA+91dPVrDM5mWr6IEPzg==} + '@nx/nx-linux-x64-musl@19.0.4': + resolution: {integrity: sha512-iZ+TH/qT2R6nb+bqL8oJDDeUUEJmzYxtacFlf5yLjaiG5nvOxq7cu/lUw/LEqT+BUgK33T7acr3BDC0/q2bFZQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@nx/nx-win32-arm64-msvc@19.0.2': - resolution: {integrity: sha512-aTxQBtUrusAm535DRnHxgM9AXnPYkhzr+eUSjrPUPTu2N3cuckq6JWfpxtjVCMcPfOR+pOC9luG3+bWmO32TQQ==} + '@nx/nx-win32-arm64-msvc@19.0.4': + resolution: {integrity: sha512-YiRyGZecH4hIy5shZz8SNX5NwY+dZC3Xs09QlMeLKNhf6klfmjJYNtd+9250V4cjJS3opKYf08uG4x+EtuEB5A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@19.0.2': - resolution: {integrity: sha512-lgxgj+ilhL9StCLzRxU+EB1n944bMjwbU3CxvYW2TYa+380UXVMUACjbLyzONQPeJPIm9azaVQNKnf5+c+nnBQ==} + '@nx/nx-win32-x64-msvc@19.0.4': + resolution: {integrity: sha512-eHEdPjV0GlblyBM501xfe47tPRzugw2U+YOkZh++Ago9MDOrs/ULS9+RM3NhvZl2WnkpNYDbQMjzbQ0r7rxlTA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1832,8 +1835,8 @@ packages: '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} - '@types/lodash@4.17.1': - resolution: {integrity: sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==} + '@types/lodash@4.17.4': + resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==} '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -1847,8 +1850,8 @@ packages: '@types/mute-stream@0.0.4': resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - '@types/node@20.12.11': - resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==} + '@types/node@20.12.12': + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1856,6 +1859,9 @@ packages: '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -1888,8 +1894,8 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@7.8.0': - resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} + '@typescript-eslint/eslint-plugin@7.9.0': + resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1915,8 +1921,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.8.0': - resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} + '@typescript-eslint/parser@7.9.0': + resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1933,8 +1939,8 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@7.8.0': - resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} + '@typescript-eslint/scope-manager@7.9.0': + resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/type-utils@5.62.0': @@ -1947,8 +1953,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@7.8.0': - resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} + '@typescript-eslint/type-utils@7.9.0': + resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1965,8 +1971,8 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@7.8.0': - resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} + '@typescript-eslint/types@7.9.0': + resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/typescript-estree@4.33.0': @@ -1987,8 +1993,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.8.0': - resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} + '@typescript-eslint/typescript-estree@7.9.0': + resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -2002,8 +2008,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.8.0': - resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} + '@typescript-eslint/utils@7.9.0': + resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2016,8 +2022,8 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@7.8.0': - resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} + '@typescript-eslint/visitor-keys@7.9.0': + resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} engines: {node: ^18.18.0 || >=20.0.0} '@umijs/fabric@2.14.1': @@ -2027,89 +2033,89 @@ packages: '@umijs/openapi@1.12.1': resolution: {integrity: sha512-IrqUvo0C2U7+6eO3TZ57ARIMaXYFgSZJFyhbAHZW9uv9As51IIRT4WP93Z7ZrP+GyssGRt+6p761YgM1hOt9wA==} - '@unocss/astro@0.60.0': - resolution: {integrity: sha512-clZuuNWFpNpr8OGm4vr/t3cD++S9rqK1jsZKkT0Wuu8/IKkZx/4x0BTn82KhaB4o5RJWwwtkfX65AePn6D+62g==} + '@unocss/astro@0.60.2': + resolution: {integrity: sha512-H8kJHj8aCQXksr0o7OpHqNkzm0RmpOm+qCt8vRcJJVFrdzQyaIQ/vyq3BUTV0Ex6OSzPirTe8fOaWoZdKtKf2Q==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.60.0': - resolution: {integrity: sha512-TzBhbOfd7Rl+NsqHjQSFLoc8aMJcfRRMZ3BXuIa3EhGuT0r4e1H7CENUQXl7ijNLVL9XL2SyrV68cDvEeQfMZA==} + '@unocss/cli@0.60.2': + resolution: {integrity: sha512-zX7eM95UI6LpKRfHTr8T2gSlFFXemPUswBxR5H4vPVlLeeCOhJWfc04vGdtSwoix5qFdnhQWIwzXGXAaB+kwoA==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.60.0': - resolution: {integrity: sha512-y8zTM/qhZ5p2zhtgjsqL4BDjDXes1i72kNts/A85adNTx9ffZG+0dbrH2DLoBKp6aAb51AOo5OcG5cllSbNrDQ==} + '@unocss/config@0.60.2': + resolution: {integrity: sha512-EEgivE1xEnamAsYMcmjUmLJjOa9dBdV2zygT/blSFyX6rMfA4OuRlZ8hgfeWrHImZGiTXUU0jV2EaRmK9jEImQ==} engines: {node: '>=14'} - '@unocss/core@0.60.0': - resolution: {integrity: sha512-i1j5i/4xiCfogobaOdQCQUEy/Ch8mBtKgpfUIreJtElaF15uIjT2t/G0y7qUz87ZNl+wJoPcWkcSC92HVnjXwg==} + '@unocss/core@0.60.2': + resolution: {integrity: sha512-9i+eAJAqvy9bv0vrQxUU7VtR+wO6Vfk6dqrPHKRV/vlbwRT18v/C++dQ2L6PLM1CKxgNTeld0iTlpo8J3xZlxQ==} - '@unocss/extractor-arbitrary-variants@0.60.0': - resolution: {integrity: sha512-f6o2KsCP+BYzYRjeBkjiquh5eM1oRv/wNu1a1triNk9pmmD3nUWRY0ImaXRkSbgHpAjVEDloOpqPdMTO408ePg==} + '@unocss/extractor-arbitrary-variants@0.60.2': + resolution: {integrity: sha512-uO4ZPUcaYvyWshXnqzFnSWeh+Du6xVYwaz3oBKq4n7Ryw2Grc0IhiZe6n9MC8w6nkbopdo6ngr5LnFGp86horQ==} - '@unocss/inspector@0.60.0': - resolution: {integrity: sha512-aw9wkEslDnuQNEQkffCVvYJEljB9y/jkNM/i/YBjDYsTYOa/p63NVju9Bn0l3+uUiH6Nsws2JJ1q3xIulhZEIw==} + '@unocss/inspector@0.60.2': + resolution: {integrity: sha512-tc+TtTA7yNCS10oT7MfI2rEv1KErwLgEDRvBLCM1vsXmjzsGxkhqnT3vT5pqRkENYh/QhmIfpz1899GvH8WBMQ==} - '@unocss/postcss@0.60.0': - resolution: {integrity: sha512-FlEAUWSywKZ55IJbhM0vJ39mDHWveT06Bu4l7TYLgdQ6BJHDIncatMg3GQ9L8RTEbXGGjhnOs3EJyd1ZHEzBUw==} + '@unocss/postcss@0.60.2': + resolution: {integrity: sha512-fGXzhx5bh1iYxQ0wThmUsu+KMxCTqZsQQZ/a2kbTNzmOIslX1/cCWaQ62BWsfER7rOnZVG6DzGR+3CzVcDzuXg==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.60.0': - resolution: {integrity: sha512-FJZCKy6Wf6qc9EXFei4txy9nYkKotoPD/20NfA+beYS3XbVxAxQy6d454fe9DDK99QfJeEJd8xhaWJFCweiQWw==} + '@unocss/preset-attributify@0.60.2': + resolution: {integrity: sha512-PQDObhVtopL/eEceAHX/pBmPQhm50l4yhTu/pMH31hL13DuRYODngWe00jjgmMRTwIAFpMpDVKk2GjxeD05+cQ==} - '@unocss/preset-icons@0.60.0': - resolution: {integrity: sha512-8DD9PURCfAtN5nlpOAz5ocV8NG1bb1u83WIGYu+uuVbmFUiMVP4RIEtS1+/dXBEtl0EA7rgN9qI5EmzPDrLd1Q==} + '@unocss/preset-icons@0.60.2': + resolution: {integrity: sha512-knE4CKn4tgjvyZQSZTuC5FIO2/jcP1AWBvpWyJTax5kcKAIrL8IU4b7PhiPwPrQpe0LBTtyQKWCXqWXp7DhDwA==} - '@unocss/preset-mini@0.60.0': - resolution: {integrity: sha512-N0XqjuMRjtRUYeE5ELxOcraEwUWkhQum+qIhr0ZZCCoGQpa/u1MRCkwNcBSEy70HZMoyesYVtxiOz0CgAWRSQw==} + '@unocss/preset-mini@0.60.2': + resolution: {integrity: sha512-Vp5UWzD9FgxeYNhyJIXjMt8HyL7joGJWzmFa2zR8ZAYZ+WIIIJWtxa+9/H8gJgnGTWa2H9oyj9h3IqOYT/lmSg==} - '@unocss/preset-tagify@0.60.0': - resolution: {integrity: sha512-7uEnjqQN+zdfBpDwzfVB/rnriqa6jxImMv3g8nQ0A3boopaB+JBuqlSr3/sUmb8YJh9U+F5l8zShjLkPOz9gkg==} + '@unocss/preset-tagify@0.60.2': + resolution: {integrity: sha512-M730DpoPJ8/uG7aKme9EYrzspr0WfKp7z3CTpb2hb4YHuiCXmiTjdxo5xa9vK3ZGQTZlUkG0rz3TLw8tRKqRDg==} - '@unocss/preset-typography@0.60.0': - resolution: {integrity: sha512-rHzAZa5MqJGpSxL3OhDQZ6Nk9jTDhiEKB3s7xR4bfwKtEuMiTZAzrOl6DDKnAgjH2H2cXfgFpQP+kLjoYgyNkA==} + '@unocss/preset-typography@0.60.2': + resolution: {integrity: sha512-QKJi1LbC/f8RwwSwV6yQCXu/8wlBcrNyKiUSe7o9I2NYP+mzINlp64pXEP43UtUQo6x8Dil/TuzpRqMFPG/pMA==} - '@unocss/preset-uno@0.60.0': - resolution: {integrity: sha512-aMoja25jfz80N/TYysMe1RAy0yhONUgl3Eh3Z4EIJrdsHXxuBicO1Wa/EbI8Mc4dY+NPETTC/5JF1SH+yWihGA==} + '@unocss/preset-uno@0.60.2': + resolution: {integrity: sha512-ggOCehuBm6depGV+79heBlcYlwgcfbIMLnxbywZPIrLwPB/4YaTArBcG4giKILyu4p2PcodAZvfv4uYXrLaE5Q==} - '@unocss/preset-web-fonts@0.60.0': - resolution: {integrity: sha512-muiQSNq9TmidlMPb9dvX+u5DGNPWfuOKhTTPA2Ia/ZmOUo3SfX2LQq2af7QfjoDuAGnLo3ZZf0qyP1Ao9YsbrA==} + '@unocss/preset-web-fonts@0.60.2': + resolution: {integrity: sha512-1lHZVOR6JHkPOvFBQeqZLoAwDk9spUxrX2WfLSVL+sCuBLLeo8voa/LnCxPxKiQwKZGEEoh+qM2MKsLnRd+P6w==} - '@unocss/preset-wind@0.60.0': - resolution: {integrity: sha512-utfAJ15tfnPg9r5rfCnBwGRMvhtFiqp8f/YQdrREsnAJRqcfzA6E2Tdh67GyOjPRBjNusw+WmV4K2tltzKbdOQ==} + '@unocss/preset-wind@0.60.2': + resolution: {integrity: sha512-9Ml2Wyn7LAcKfqHMJmflT/jdz5eLZtm3SEZKH5Lfk5MOyeVm6NDXjXK140u3zaP5tGKqtO6akJZGtYktWJ6+WQ==} - '@unocss/reset@0.60.0': - resolution: {integrity: sha512-r4NUPb/je10ZUrdncSuHipeDqBn7gY5HEcdAx2Rse+O/yWJimVsBkb5sGU1na9fhUwxv0cYIiFiqoQaKzcnCpQ==} + '@unocss/reset@0.60.2': + resolution: {integrity: sha512-kM0DYAcbmzpAyHefa/W+cifBTScWeZGsNpKagMQ6vci6OlTUiDB1GcmhQZ6dC0Ks59GtPmRbzZLaK1MgG6ayrA==} - '@unocss/rule-utils@0.60.0': - resolution: {integrity: sha512-YDXSUQceqMSVG51F5yTTPSadrV7YrbRX3VnaSE5NopyyYKRWT6/0dl68riTOjtJfVcm55vl7ZhwNFobAdtOfYA==} + '@unocss/rule-utils@0.60.2': + resolution: {integrity: sha512-pg3XbU0s0TmmRk0UkSV6wTlca+Zz5xe9V+Mk8a5QqVp0oJ2jNWHO9AfzF4NcvTzM2zV2a/WbpjSBgoK8iAz3zg==} engines: {node: '>=14'} - '@unocss/scope@0.60.0': - resolution: {integrity: sha512-BegakMMkFGWGTRro+CSZVEGS81k00HlYiT81bbDtjFifiJVv6K13U3S2YqBaUS7zlECCYhMr4Bpv8Rr78j66Bw==} + '@unocss/scope@0.60.2': + resolution: {integrity: sha512-pdwNZzQBb6rllgCwirPPrydDZH2XL0DI8/W7iM1RKYiNeDYjoDAWdVD46CrRmxadiHesrhdIwDL6rQz7Q7bl0w==} - '@unocss/transformer-attributify-jsx-babel@0.60.0': - resolution: {integrity: sha512-GpBqGZZ9+sja9JapQRBvlD1o3GFumsbAvd/HmnXyDH7WLYO/y/HPA8/4Ar2ieGqcE0IlVVoTj8B2ruf5umhaWQ==} + '@unocss/transformer-attributify-jsx-babel@0.60.2': + resolution: {integrity: sha512-mb66b39qsjyH7+XqC/0ciLdPatVKH5CfMDxUMvzczuFTQ/+V3VAN/Mm6Ru+oxMgbf7qPTALSnLgu6RUhEldTzA==} - '@unocss/transformer-attributify-jsx@0.60.0': - resolution: {integrity: sha512-0uBTvcYLtkCHJ2491orUGpZ3Pw43NPZu/nn06P4FMyyudmCgBd5z9bl5bGiCY6MbIRDyGEGGMEWF87s80FnLPw==} + '@unocss/transformer-attributify-jsx@0.60.2': + resolution: {integrity: sha512-GZbtuZLz3COMhEqdc33zmn8cKupAzVeLcAV66EL+zj7hfZIvrIEs5RFajtzlkQa7RC5YOOjZfHxMccGBEP1RMQ==} - '@unocss/transformer-compile-class@0.60.0': - resolution: {integrity: sha512-PEfz9q11KBQR1UP5NB2K4qcjh+LLCXIL4wBKz7qhKkjjyGr7rCRrfLtbZv/1QmgKST+WHbK7uKkRYm/kBbFdyA==} + '@unocss/transformer-compile-class@0.60.2': + resolution: {integrity: sha512-dZfkGsqd7mdyRRCG8om5lTxQ4CjaaDka8gPbVawbDkK4U53G2vnN3daVlE7UflUXS32hOPj16RfOcb8cH+pypw==} - '@unocss/transformer-directives@0.60.0': - resolution: {integrity: sha512-ZG+TvpvimH5LkFkqz27BQryhF8oeM+mUkD9oV+DhtQBadV5pcMvi40NB5VEeDj3dsogHTMrl13dsHXdrINI7jQ==} + '@unocss/transformer-directives@0.60.2': + resolution: {integrity: sha512-p4ZtXoz1mZ125WfANFAD6pXwQJdA4lfff5abZfoDiTPLvtvYQFmwGCeBXUnEKAnBnTwwiBD2zsIwGfumWAsqrA==} - '@unocss/transformer-variant-group@0.60.0': - resolution: {integrity: sha512-00PikfUfJN+LdTaoILA+iXbPB5J8/zX1RcJx1DwKF2iRfKNmSu9+jsyNN0zyQX2jOVXY4UuK3x8LJ1qtZl1edA==} + '@unocss/transformer-variant-group@0.60.2': + resolution: {integrity: sha512-2eE2MZhFhNj+3fxO9VE1yC8LddUn9vetNZKrgGlegrBH/jOL9Pn/vygBmMAg1XFLEgC3DtvwdzCKMVttV30Ivw==} - '@unocss/vite@0.60.0': - resolution: {integrity: sha512-Xyqg+slwR+y5eggPZu74OwVZrIyYe+Ut3WzdmM3mgHBh+ty8Ci85ndm71K5wagyDNvbfLj5gA10h14n3OyB9RQ==} + '@unocss/vite@0.60.2': + resolution: {integrity: sha512-+gBjyT5z/aZgPIZxpUbiXyOt1diY9YQfIJStOhBG0MP6daMdDX78SnDuUq/zKMk9EJuZ3FxhbZF5dYSD4bhJmw==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -2531,8 +2537,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001617: - resolution: {integrity: sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==} + caniuse-lite@1.0.30001620: + resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} cfb@1.2.2: resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} @@ -2660,8 +2666,8 @@ packages: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} - commander@12.0.0: - resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} commander@4.1.1: @@ -2791,15 +2797,15 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} - core-js-compat@3.37.0: - resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} + core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} core-js@2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - core-js@3.37.0: - resolution: {integrity: sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==} + core-js@3.37.1: + resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} @@ -3092,8 +3098,8 @@ packages: echarts@5.5.0: resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==} - electron-to-chromium@1.4.763: - resolution: {integrity: sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ==} + electron-to-chromium@1.4.774: + resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -3140,8 +3146,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - error-stack-parser-es@0.1.1: - resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} + error-stack-parser-es@0.1.4: + resolution: {integrity: sha512-l0uy0kAoo6toCgVOYaAayqtPa2a1L15efxUMEnQebKwLQX2X0OpS6wMMQdc4juJXmxd9i40DuaUHq+mjIya9TQ==} es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} @@ -3396,8 +3402,8 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} hasBin: true - eslint@9.2.0: - resolution: {integrity: sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og==} + eslint@9.3.0: + resolution: {integrity: sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -3720,9 +3726,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.3.14: - resolution: {integrity: sha512-4fkAqu93xe9Mk7le9v0y3VrPDqLKHarNi2s4Pv7f2yOvfhWfhc7hRPHC/JyqMqb8B/Dt/eGS4n7ykwf3fOsl8g==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.3.15: + resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==} + engines: {node: '>=16 || 14 >=14.18'} hasBin: true glob@7.2.3: @@ -4832,8 +4838,8 @@ packages: chokidar: optional: true - nx@19.0.2: - resolution: {integrity: sha512-59BSYa/Qp8nA764T7Cg7tSisFYBws9zSAMPm0YspCSPndoUy86Mjtg62bEqkHN0MWo6W4MxwOHuB0XSBvQ5DdA==} + nx@19.0.4: + resolution: {integrity: sha512-E+wkP3H+23Vu9jso6Xw7cbXPzy2PMyrPukrEUDWkQrr/eCqf0Npkj5zky1/lKFSBaLtNYgsFD21co+b4rwxtdw==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -5044,9 +5050,9 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.0: - resolution: {integrity: sha512-LNHTaVkzaYaLGlO+0u3rQTz7QrHTFOuKyba9JMTQutkmtNew8dw8wOD7mTU/5fCPZzCWpfW0XnQKzY61P0aTaw==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} path-to-regexp@6.2.2: resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} @@ -5067,8 +5073,8 @@ packages: picocolors@0.2.1: resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -5497,9 +5503,9 @@ packages: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true - rimraf@5.0.6: - resolution: {integrity: sha512-X72SgyOf+1lFnGM6gYcmZ4+jMOwuT4E4SajKQzUIlI7EoR5eFHMhS/wf8Ll0mN+w2bxcIVldrJQ6xT7HFQywjg==} - engines: {node: '>=14'} + rimraf@5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} hasBin: true rollup@4.17.2: @@ -6229,11 +6235,11 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unocss@0.60.0: - resolution: {integrity: sha512-jVNrjjR9j/PQylfF1z8sz2L2sTnnmGRUTXKQmCTURBBnk2Q9VqoYIvShppPUn4dWvnOy5Xj2gPIXBMin56nt0Q==} + unocss@0.60.2: + resolution: {integrity: sha512-Cj1IXS+VZuiZtQxHn/ffAAN422gUusUEgF1RS83WyNB0kMsJyIxb9KK9N425QAvQvsKpL5GrZs5KoNtU3zGMog==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.60.0 + '@unocss/webpack': 0.60.2 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -6262,8 +6268,8 @@ packages: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} - update-browserslist-db@1.0.15: - resolution: {integrity: sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==} + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -6682,7 +6688,7 @@ snapshots: '@babel/code-frame@7.24.2': dependencies: '@babel/highlight': 7.24.5 - picocolors: 1.0.0 + picocolors: 1.0.1 '@babel/compat-data@7.24.4': {} @@ -6857,7 +6863,7 @@ snapshots: '@babel/helper-validator-identifier': 7.24.5 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 '@babel/parser@7.24.5': dependencies: @@ -7416,7 +7422,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5) babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5) - core-js-compat: 3.37.0 + core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -7493,11 +7499,11 @@ snapshots: dependencies: statuses: 2.0.1 - '@commitlint/cli@19.3.0(@types/node@20.12.11)(typescript@5.4.5)': + '@commitlint/cli@19.3.0(@types/node@20.12.12)(typescript@5.4.5)': dependencies: '@commitlint/format': 19.3.0 '@commitlint/lint': 19.2.2 - '@commitlint/load': 19.2.0(@types/node@20.12.11)(typescript@5.4.5) + '@commitlint/load': 19.2.0(@types/node@20.12.12)(typescript@5.4.5) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -7544,7 +7550,7 @@ snapshots: '@commitlint/rules': 19.0.3 '@commitlint/types': 19.0.3 - '@commitlint/load@19.2.0(@types/node@20.12.11)(typescript@5.4.5)': + '@commitlint/load@19.2.0(@types/node@20.12.12)(typescript@5.4.5)': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 @@ -7552,7 +7558,7 @@ snapshots: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.4.5) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.11)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -7615,7 +7621,7 @@ snapshots: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 - '@csstools/selector-specificity@3.0.3(postcss-selector-parser@6.0.16)': + '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.0.16)': dependencies: postcss-selector-parser: 6.0.16 @@ -7770,9 +7776,9 @@ snapshots: eslint: 7.32.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.2.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.3.0)': dependencies: - eslint: 9.2.0 + eslint: 9.3.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} @@ -7791,7 +7797,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.0.2': + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 debug: 4.3.4 @@ -7805,7 +7811,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.2.0': {} + '@eslint/js@9.3.0': {} '@exodus/schemasafe@1.3.0': {} @@ -7833,7 +7839,7 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.2.4': {} + '@humanwhocodes/retry@0.3.0': {} '@hutson/parse-repository-url@5.0.0': {} @@ -7845,7 +7851,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify/json@2.2.208': + '@iconify/json@2.2.211': dependencies: '@iconify/types': 2.0.0 pathe: 1.1.2 @@ -7869,17 +7875,17 @@ snapshots: '@iconify/types': 2.0.0 vue: 3.4.27(typescript@5.4.5) - '@inquirer/confirm@3.1.6': + '@inquirer/confirm@3.1.8': dependencies: - '@inquirer/core': 8.1.0 - '@inquirer/type': 1.3.1 + '@inquirer/core': 8.2.1 + '@inquirer/type': 1.3.2 - '@inquirer/core@8.1.0': + '@inquirer/core@8.2.1': dependencies: - '@inquirer/figures': 1.0.1 - '@inquirer/type': 1.3.1 + '@inquirer/figures': 1.0.2 + '@inquirer/type': 1.3.2 '@types/mute-stream': 0.0.4 - '@types/node': 20.12.11 + '@types/node': 20.12.12 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -7890,9 +7896,9 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - '@inquirer/figures@1.0.1': {} + '@inquirer/figures@1.0.2': {} - '@inquirer/type@1.3.1': {} + '@inquirer/type@1.3.2': {} '@intlify/core-base@9.13.1': dependencies: @@ -7963,43 +7969,43 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nrwl/tao@19.0.2': + '@nrwl/tao@19.0.4': dependencies: - nx: 19.0.2 + nx: 19.0.4 tslib: 2.6.2 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug - '@nx/nx-darwin-arm64@19.0.2': + '@nx/nx-darwin-arm64@19.0.4': optional: true - '@nx/nx-darwin-x64@19.0.2': + '@nx/nx-darwin-x64@19.0.4': optional: true - '@nx/nx-freebsd-x64@19.0.2': + '@nx/nx-freebsd-x64@19.0.4': optional: true - '@nx/nx-linux-arm-gnueabihf@19.0.2': + '@nx/nx-linux-arm-gnueabihf@19.0.4': optional: true - '@nx/nx-linux-arm64-gnu@19.0.2': + '@nx/nx-linux-arm64-gnu@19.0.4': optional: true - '@nx/nx-linux-arm64-musl@19.0.2': + '@nx/nx-linux-arm64-musl@19.0.4': optional: true - '@nx/nx-linux-x64-gnu@19.0.2': + '@nx/nx-linux-x64-gnu@19.0.4': optional: true - '@nx/nx-linux-x64-musl@19.0.2': + '@nx/nx-linux-x64-musl@19.0.4': optional: true - '@nx/nx-win32-arm64-msvc@19.0.2': + '@nx/nx-win32-arm64-msvc@19.0.4': optional: true - '@nx/nx-win32-x64-msvc@19.0.2': + '@nx/nx-win32-x64-msvc@19.0.4': optional: true '@octokit/auth-token@4.0.0': {} @@ -8139,7 +8145,7 @@ snapshots: '@simonwep/pickr@1.8.2': dependencies: - core-js: 3.37.0 + core-js: 3.37.1 nanopop: 2.4.2 '@sinclair/typebox@0.27.8': {} @@ -8170,7 +8176,7 @@ snapshots: '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 '@types/cookie@0.6.0': {} @@ -8186,7 +8192,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.12.11 + '@types/node': 20.12.12 '@types/json-schema@7.0.15': {} @@ -8194,9 +8200,9 @@ snapshots: '@types/lodash-es@4.17.12': dependencies: - '@types/lodash': 4.17.1 + '@types/lodash': 4.17.4 - '@types/lodash@4.17.1': {} + '@types/lodash@4.17.4': {} '@types/mdast@3.0.15': dependencies: @@ -8208,9 +8214,9 @@ snapshots: '@types/mute-stream@0.0.4': dependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 - '@types/node@20.12.11': + '@types/node@20.12.12': dependencies: undici-types: 5.26.5 @@ -8218,6 +8224,8 @@ snapshots: '@types/parse-json@4.0.2': {} + '@types/qs@6.9.15': {} + '@types/semver@7.5.8': {} '@types/sortablejs@1.15.8': {} @@ -8226,7 +8234,7 @@ snapshots: '@types/svgo@2.6.4': dependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 '@types/unist@2.0.10': {} @@ -8253,20 +8261,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.8.0 - '@typescript-eslint/type-utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.8.0 - debug: 4.3.4 - eslint: 9.2.0 + '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.9.0 + '@typescript-eslint/type-utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.9.0 + eslint: 9.3.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 @@ -8298,14 +8304,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.8.0 - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.8.0 + '@typescript-eslint/scope-manager': 7.9.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.9.0 debug: 4.3.4 - eslint: 9.2.0 + eslint: 9.3.0 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -8321,10 +8327,10 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@7.8.0': + '@typescript-eslint/scope-manager@7.9.0': dependencies: - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/visitor-keys': 7.8.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/visitor-keys': 7.9.0 '@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@4.9.5)': dependencies: @@ -8338,12 +8344,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.8.0(eslint@9.2.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.9.0(eslint@9.3.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) debug: 4.3.4 - eslint: 9.2.0 + eslint: 9.3.0 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 @@ -8354,7 +8360,7 @@ snapshots: '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@7.8.0': {} + '@typescript-eslint/types@7.9.0': {} '@typescript-eslint/typescript-estree@4.33.0(typescript@4.9.5)': dependencies: @@ -8384,10 +8390,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/visitor-keys': 7.8.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/visitor-keys': 7.9.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -8414,16 +8420,13 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.8.0(eslint@9.2.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.9.0(eslint@9.3.0)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.8.0 - '@typescript-eslint/types': 7.8.0 - '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) - eslint: 9.2.0 - semver: 7.6.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@typescript-eslint/scope-manager': 7.9.0 + '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + eslint: 9.3.0 transitivePeerDependencies: - supports-color - typescript @@ -8438,9 +8441,9 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.8.0': + '@typescript-eslint/visitor-keys@7.9.0': dependencies: - '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/types': 7.9.0 eslint-visitor-keys: 3.4.3 '@umijs/fabric@2.14.1': @@ -8505,23 +8508,23 @@ snapshots: - postcss-markdown - supports-color - '@unocss/astro@0.60.0(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))': + '@unocss/astro@0.60.2(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))': dependencies: - '@unocss/core': 0.60.0 - '@unocss/reset': 0.60.0 - '@unocss/vite': 0.60.0(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)) + '@unocss/core': 0.60.2 + '@unocss/reset': 0.60.2 + '@unocss/vite': 0.60.2(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)) optionalDependencies: - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) transitivePeerDependencies: - rollup - '@unocss/cli@0.60.0(rollup@4.17.2)': + '@unocss/cli@0.60.2(rollup@4.17.2)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - '@unocss/config': 0.60.0 - '@unocss/core': 0.60.0 - '@unocss/preset-uno': 0.60.0 + '@unocss/config': 0.60.2 + '@unocss/core': 0.60.2 + '@unocss/preset-uno': 0.60.2 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 @@ -8533,144 +8536,144 @@ snapshots: transitivePeerDependencies: - rollup - '@unocss/config@0.60.0': + '@unocss/config@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 unconfig: 0.3.13 - '@unocss/core@0.60.0': {} + '@unocss/core@0.60.2': {} - '@unocss/extractor-arbitrary-variants@0.60.0': + '@unocss/extractor-arbitrary-variants@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 - '@unocss/inspector@0.60.0': + '@unocss/inspector@0.60.2': dependencies: - '@unocss/core': 0.60.0 - '@unocss/rule-utils': 0.60.0 + '@unocss/core': 0.60.2 + '@unocss/rule-utils': 0.60.2 gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.60.0(postcss@8.4.38)': + '@unocss/postcss@0.60.2(postcss@8.4.38)': dependencies: - '@unocss/config': 0.60.0 - '@unocss/core': 0.60.0 - '@unocss/rule-utils': 0.60.0 + '@unocss/config': 0.60.2 + '@unocss/core': 0.60.2 + '@unocss/rule-utils': 0.60.2 css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.10 postcss: 8.4.38 - '@unocss/preset-attributify@0.60.0': + '@unocss/preset-attributify@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 - '@unocss/preset-icons@0.60.0': + '@unocss/preset-icons@0.60.2': dependencies: '@iconify/utils': 2.1.23 - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 ofetch: 1.3.4 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.60.0': + '@unocss/preset-mini@0.60.2': dependencies: - '@unocss/core': 0.60.0 - '@unocss/extractor-arbitrary-variants': 0.60.0 - '@unocss/rule-utils': 0.60.0 + '@unocss/core': 0.60.2 + '@unocss/extractor-arbitrary-variants': 0.60.2 + '@unocss/rule-utils': 0.60.2 - '@unocss/preset-tagify@0.60.0': + '@unocss/preset-tagify@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 - '@unocss/preset-typography@0.60.0': + '@unocss/preset-typography@0.60.2': dependencies: - '@unocss/core': 0.60.0 - '@unocss/preset-mini': 0.60.0 + '@unocss/core': 0.60.2 + '@unocss/preset-mini': 0.60.2 - '@unocss/preset-uno@0.60.0': + '@unocss/preset-uno@0.60.2': dependencies: - '@unocss/core': 0.60.0 - '@unocss/preset-mini': 0.60.0 - '@unocss/preset-wind': 0.60.0 - '@unocss/rule-utils': 0.60.0 + '@unocss/core': 0.60.2 + '@unocss/preset-mini': 0.60.2 + '@unocss/preset-wind': 0.60.2 + '@unocss/rule-utils': 0.60.2 - '@unocss/preset-web-fonts@0.60.0': + '@unocss/preset-web-fonts@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 ofetch: 1.3.4 - '@unocss/preset-wind@0.60.0': + '@unocss/preset-wind@0.60.2': dependencies: - '@unocss/core': 0.60.0 - '@unocss/preset-mini': 0.60.0 - '@unocss/rule-utils': 0.60.0 + '@unocss/core': 0.60.2 + '@unocss/preset-mini': 0.60.2 + '@unocss/rule-utils': 0.60.2 - '@unocss/reset@0.60.0': {} + '@unocss/reset@0.60.2': {} - '@unocss/rule-utils@0.60.0': + '@unocss/rule-utils@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 magic-string: 0.30.10 - '@unocss/scope@0.60.0': {} + '@unocss/scope@0.60.2': {} - '@unocss/transformer-attributify-jsx-babel@0.60.0': + '@unocss/transformer-attributify-jsx-babel@0.60.2': dependencies: '@babel/core': 7.24.5 '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 transitivePeerDependencies: - supports-color - '@unocss/transformer-attributify-jsx@0.60.0': + '@unocss/transformer-attributify-jsx@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 - '@unocss/transformer-compile-class@0.60.0': + '@unocss/transformer-compile-class@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 - '@unocss/transformer-directives@0.60.0': + '@unocss/transformer-directives@0.60.2': dependencies: - '@unocss/core': 0.60.0 - '@unocss/rule-utils': 0.60.0 + '@unocss/core': 0.60.2 + '@unocss/rule-utils': 0.60.2 css-tree: 2.3.1 - '@unocss/transformer-variant-group@0.60.0': + '@unocss/transformer-variant-group@0.60.2': dependencies: - '@unocss/core': 0.60.0 + '@unocss/core': 0.60.2 - '@unocss/vite@0.60.0(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))': + '@unocss/vite@0.60.2(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - '@unocss/config': 0.60.0 - '@unocss/core': 0.60.0 - '@unocss/inspector': 0.60.0 - '@unocss/scope': 0.60.0 - '@unocss/transformer-directives': 0.60.0 + '@unocss/config': 0.60.2 + '@unocss/core': 0.60.2 + '@unocss/inspector': 0.60.2 + '@unocss/scope': 0.60.2 + '@unocss/transformer-directives': 0.60.2 chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) transitivePeerDependencies: - rollup - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@babel/core': 7.24.5 '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.5) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.5) - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) vue: 3.4.27(typescript@5.4.5) '@volar/language-core@1.11.1': @@ -9025,7 +9028,7 @@ snapshots: autoprefixer@9.8.8: dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001617 + caniuse-lite: 1.0.30001620 normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 @@ -9057,7 +9060,7 @@ snapshots: dependencies: '@babel/core': 7.24.5 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) - core-js-compat: 3.37.0 + core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color @@ -9132,10 +9135,10 @@ snapshots: browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001617 - electron-to-chromium: 1.4.763 + caniuse-lite: 1.0.30001620 + electron-to-chromium: 1.4.774 node-releases: 2.0.14 - update-browserslist-db: 1.0.15(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.0) buffer@5.7.1: dependencies: @@ -9189,7 +9192,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001617: {} + caniuse-lite@1.0.30001620: {} cfb@1.2.2: dependencies: @@ -9314,7 +9317,7 @@ snapshots: commander@11.1.0: {} - commander@12.0.0: {} + commander@12.1.0: {} commander@4.1.1: {} @@ -9324,10 +9327,10 @@ snapshots: commander@8.3.0: {} - commitizen@4.3.0(@types/node@20.12.11)(typescript@5.4.5): + commitizen@4.3.0(@types/node@20.12.12)(typescript@5.4.5): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@20.12.11)(typescript@5.4.5) + cz-conventional-changelog: 3.3.0(@types/node@20.12.12)(typescript@5.4.5) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -9451,22 +9454,22 @@ snapshots: copy-descriptor@0.1.1: {} - core-js-compat@3.37.0: + core-js-compat@3.37.1: dependencies: browserslist: 4.23.0 core-js@2.6.12: {} - core-js@3.37.0: {} + core-js@3.37.1: {} cors@2.8.5: dependencies: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.11)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): + cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): dependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 cosmiconfig: 9.0.0(typescript@5.4.5) jiti: 1.21.0 typescript: 5.4.5 @@ -9534,16 +9537,16 @@ snapshots: csstype@3.1.3: {} - cz-conventional-changelog@3.3.0(@types/node@20.12.11)(typescript@5.4.5): + cz-conventional-changelog@3.3.0(@types/node@20.12.12)(typescript@5.4.5): dependencies: chalk: 2.4.2 - commitizen: 4.3.0(@types/node@20.12.11)(typescript@5.4.5) + commitizen: 4.3.0(@types/node@20.12.12)(typescript@5.4.5) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.2.0(@types/node@20.12.11)(typescript@5.4.5) + '@commitlint/load': 19.2.0(@types/node@20.12.12)(typescript@5.4.5) transitivePeerDependencies: - '@types/node' - typescript @@ -9741,7 +9744,7 @@ snapshots: tslib: 2.3.0 zrender: 5.5.0 - electron-to-chromium@1.4.763: {} + electron-to-chromium@1.4.774: {} emoji-regex@10.3.0: {} @@ -9781,7 +9784,7 @@ snapshots: dependencies: is-arrayish: 0.2.1 - error-stack-parser-es@0.1.1: {} + error-stack-parser-es@0.1.4: {} es-abstract@1.23.3: dependencies: @@ -9969,9 +9972,9 @@ snapshots: dependencies: eslint: 7.32.0 - eslint-config-prettier@9.1.0(eslint@9.2.0): + eslint-config-prettier@9.1.0(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 eslint-define-config@2.1.0: {} @@ -9994,12 +9997,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.2.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.3.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) - eslint: 9.2.0 + '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + eslint: 9.3.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -10009,7 +10012,7 @@ snapshots: eslint: 7.32.0 eslint-rule-composer: 0.3.0 - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -10017,9 +10020,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.2.0 + eslint: 9.3.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.2.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.3.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -10030,7 +10033,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -10046,14 +10049,14 @@ snapshots: - supports-color - typescript - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.2.5): + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.3.0))(eslint@9.3.0)(prettier@3.2.5): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.2.0) + eslint-config-prettier: 9.1.0(eslint@9.3.0) eslint-plugin-promise@6.1.1(eslint@7.32.0): dependencies: @@ -10104,23 +10107,23 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0): + eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0): dependencies: - eslint: 9.2.0 + eslint: 9.3.0 eslint-rule-composer: 0.3.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5) - eslint-plugin-vue@9.26.0(eslint@9.2.0): + eslint-plugin-vue@9.26.0(eslint@9.3.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) - eslint: 9.2.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + eslint: 9.3.0 globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.16 semver: 7.6.2 - vue-eslint-parser: 9.4.2(eslint@9.2.0) + vue-eslint-parser: 9.4.2(eslint@9.3.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -10217,15 +10220,15 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.2.0: + eslint@9.3.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 3.0.2 - '@eslint/js': 9.2.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.3.0 '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.2.4 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 @@ -10616,13 +10619,13 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.3.14: + glob@10.3.15: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.4 minipass: 7.1.1 - path-scurry: 1.11.0 + path-scurry: 1.11.1 glob@7.2.3: dependencies: @@ -11548,7 +11551,7 @@ snapshots: mockjs@1.1.0: dependencies: - commander: 12.0.0 + commander: 12.1.0 mrmime@2.0.0: {} @@ -11562,7 +11565,7 @@ snapshots: dependencies: '@bundled-es-modules/cookie': 2.0.0 '@bundled-es-modules/statuses': 1.0.1 - '@inquirer/confirm': 3.1.6 + '@inquirer/confirm': 3.1.8 '@mswjs/cookies': 1.1.0 '@mswjs/interceptors': 0.29.1 '@open-draft/until': 2.1.0 @@ -11697,9 +11700,9 @@ snapshots: optionalDependencies: chokidar: 3.6.0 - nx@19.0.2: + nx@19.0.4: dependencies: - '@nrwl/tao': 19.0.2 + '@nrwl/tao': 19.0.4 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.6 @@ -11734,16 +11737,16 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 19.0.2 - '@nx/nx-darwin-x64': 19.0.2 - '@nx/nx-freebsd-x64': 19.0.2 - '@nx/nx-linux-arm-gnueabihf': 19.0.2 - '@nx/nx-linux-arm64-gnu': 19.0.2 - '@nx/nx-linux-arm64-musl': 19.0.2 - '@nx/nx-linux-x64-gnu': 19.0.2 - '@nx/nx-linux-x64-musl': 19.0.2 - '@nx/nx-win32-arm64-msvc': 19.0.2 - '@nx/nx-win32-x64-msvc': 19.0.2 + '@nx/nx-darwin-arm64': 19.0.4 + '@nx/nx-darwin-x64': 19.0.4 + '@nx/nx-freebsd-x64': 19.0.4 + '@nx/nx-linux-arm-gnueabihf': 19.0.4 + '@nx/nx-linux-arm64-gnu': 19.0.4 + '@nx/nx-linux-arm64-musl': 19.0.4 + '@nx/nx-linux-x64-gnu': 19.0.4 + '@nx/nx-linux-x64-musl': 19.0.4 + '@nx/nx-win32-arm64-msvc': 19.0.4 + '@nx/nx-win32-x64-msvc': 19.0.4 transitivePeerDependencies: - debug @@ -11991,7 +11994,7 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.11.0: + path-scurry@1.11.1: dependencies: lru-cache: 10.2.2 minipass: 7.1.1 @@ -12008,7 +12011,7 @@ snapshots: picocolors@0.2.1: {} - picocolors@1.0.0: {} + picocolors@1.0.1: {} picomatch@2.3.1: {} @@ -12146,7 +12149,7 @@ snapshots: postcss@8.4.38: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 posthtml-parser@0.2.1: @@ -12415,9 +12418,9 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@5.0.6: + rimraf@5.0.7: dependencies: - glob: 10.3.14 + glob: 10.3.15 rollup@4.17.2: dependencies: @@ -12895,7 +12898,7 @@ snapshots: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 '@csstools/media-query-list-parser': 2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1) - '@csstools/selector-specificity': 3.0.3(postcss-selector-parser@6.0.16) + '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.0.16) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 @@ -12918,7 +12921,7 @@ snapshots: meow: 13.2.0 micromatch: 4.0.5 normalize-path: 3.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 postcss-resolve-nested-selector: 0.1.1 postcss-safe-parser: 7.0.0(postcss@8.4.38) @@ -12941,7 +12944,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.3.14 + glob: 10.3.15 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -13004,7 +13007,7 @@ snapshots: css-select: 4.3.0 css-tree: 1.1.3 csso: 4.2.0 - picocolors: 1.0.0 + picocolors: 1.0.1 stable: 0.1.8 swagger2openapi@7.0.8: @@ -13311,30 +13314,30 @@ snapshots: universalify@2.0.1: {} - unocss@0.60.0(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)): - dependencies: - '@unocss/astro': 0.60.0(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)) - '@unocss/cli': 0.60.0(rollup@4.17.2) - '@unocss/core': 0.60.0 - '@unocss/extractor-arbitrary-variants': 0.60.0 - '@unocss/postcss': 0.60.0(postcss@8.4.38) - '@unocss/preset-attributify': 0.60.0 - '@unocss/preset-icons': 0.60.0 - '@unocss/preset-mini': 0.60.0 - '@unocss/preset-tagify': 0.60.0 - '@unocss/preset-typography': 0.60.0 - '@unocss/preset-uno': 0.60.0 - '@unocss/preset-web-fonts': 0.60.0 - '@unocss/preset-wind': 0.60.0 - '@unocss/reset': 0.60.0 - '@unocss/transformer-attributify-jsx': 0.60.0 - '@unocss/transformer-attributify-jsx-babel': 0.60.0 - '@unocss/transformer-compile-class': 0.60.0 - '@unocss/transformer-directives': 0.60.0 - '@unocss/transformer-variant-group': 0.60.0 - '@unocss/vite': 0.60.0(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)) + unocss@0.60.2(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)): + dependencies: + '@unocss/astro': 0.60.2(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)) + '@unocss/cli': 0.60.2(rollup@4.17.2) + '@unocss/core': 0.60.2 + '@unocss/extractor-arbitrary-variants': 0.60.2 + '@unocss/postcss': 0.60.2(postcss@8.4.38) + '@unocss/preset-attributify': 0.60.2 + '@unocss/preset-icons': 0.60.2 + '@unocss/preset-mini': 0.60.2 + '@unocss/preset-tagify': 0.60.2 + '@unocss/preset-typography': 0.60.2 + '@unocss/preset-uno': 0.60.2 + '@unocss/preset-web-fonts': 0.60.2 + '@unocss/preset-wind': 0.60.2 + '@unocss/reset': 0.60.2 + '@unocss/transformer-attributify-jsx': 0.60.2 + '@unocss/transformer-attributify-jsx-babel': 0.60.2 + '@unocss/transformer-compile-class': 0.60.2 + '@unocss/transformer-directives': 0.60.2 + '@unocss/transformer-variant-group': 0.60.2 + '@unocss/vite': 0.60.2(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)) optionalDependencies: - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) transitivePeerDependencies: - postcss - rollup @@ -13371,11 +13374,11 @@ snapshots: has-value: 0.3.1 isobject: 3.0.1 - update-browserslist-db@1.0.15(browserslist@4.23.0): + update-browserslist-db@1.0.16(browserslist@4.23.0): dependencies: browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 uri-js@4.4.1: dependencies: @@ -13408,7 +13411,7 @@ snapshots: unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - vite-plugin-checker@0.6.4(eslint@9.2.0)(meow@9.0.0)(optionator@0.9.4)(stylelint@16.5.0(typescript@5.4.5))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0))(vue-tsc@1.8.27(typescript@5.4.5)): + vite-plugin-checker@0.6.4(eslint@9.3.0)(meow@9.0.0)(optionator@0.9.4)(stylelint@16.5.0(typescript@5.4.5))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0))(vue-tsc@1.8.27(typescript@5.4.5)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -13421,46 +13424,46 @@ snapshots: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.3 - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - eslint: 9.2.0 + eslint: 9.3.0 meow: 9.0.0 optionator: 0.9.4 stylelint: 16.5.0(typescript@5.4.5) typescript: 5.4.5 vue-tsc: 1.8.27(typescript@5.4.5) - vite-plugin-inspect@0.8.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)): + vite-plugin-inspect@0.8.4(rollup@4.17.2)(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)): dependencies: '@antfu/utils': 0.7.8 '@rollup/pluginutils': 5.1.0(rollup@4.17.2) debug: 4.3.4 - error-stack-parser-es: 0.1.1 + error-stack-parser-es: 0.1.4 fs-extra: 11.2.0 open: 10.1.0 perfect-debounce: 1.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) transitivePeerDependencies: - rollup - supports-color - vite-plugin-mkcert@1.17.5(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)): + vite-plugin-mkcert@1.17.5(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)): dependencies: '@octokit/rest': 20.1.1 axios: 1.6.8(debug@4.3.4) debug: 4.3.4 - picocolors: 1.0.0 - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + picocolors: 1.0.1 + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) transitivePeerDependencies: - supports-color - vite-plugin-svg-icons@2.0.1(vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0)): + vite-plugin-svg-icons@2.0.1(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0)): dependencies: '@types/svgo': 2.6.4 cors: 2.8.5 @@ -13470,17 +13473,17 @@ snapshots: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0) + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0) transitivePeerDependencies: - supports-color - vite@5.2.11(@types/node@20.12.11)(less@4.2.0)(sugarss@2.0.0): + vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sugarss@2.0.0): dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.17.2 optionalDependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 fsevents: 2.3.3 less: 4.2.0 sugarss: 2.0.0 @@ -13525,10 +13528,10 @@ snapshots: optionalDependencies: '@vue/runtime-core': 3.4.27 - vue-eslint-parser@9.4.2(eslint@9.2.0): + vue-eslint-parser@9.4.2(eslint@9.3.0): dependencies: debug: 4.3.4 - eslint: 9.2.0 + eslint: 9.3.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 diff --git a/src/components/basic/preview-resource/index.vue b/src/components/basic/preview-resource/index.vue new file mode 100644 index 000000000..801ad6104 --- /dev/null +++ b/src/components/basic/preview-resource/index.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/components/core/dynamic-table/src/components/editable-cell/index.vue b/src/components/core/dynamic-table/src/components/editable-cell/index.vue index b72be8355..079307201 100644 --- a/src/components/core/dynamic-table/src/components/editable-cell/index.vue +++ b/src/components/core/dynamic-table/src/components/editable-cell/index.vue @@ -69,7 +69,7 @@ const getSchema = computed(() => { const field = props.schema.field; - const schema = editTableFormRef.value?.getSchemaByFiled(field) || props.schema; + const schema = editTableFormRef.value?.getSchemaByField(field) || props.schema; return { ...schema, colProps: { diff --git a/src/components/core/schema-form/src/hooks/useAdvanced.ts b/src/components/core/schema-form/src/hooks/useAdvanced.ts index c456f2be6..b06eaf27f 100644 --- a/src/components/core/schema-form/src/hooks/useAdvanced.ts +++ b/src/components/core/schema-form/src/hooks/useAdvanced.ts @@ -8,13 +8,15 @@ import { useBreakpoint } from '@/hooks/event/useBreakpoint'; const BASIC_COL_LEN = 24; type UseAdvancedContext = { - instance: SchemaFormType; + schemaFormContext: SchemaFormType; emit: SchemaFormEmitFn; }; -export const useAdvanced = ({ instance, emit }: UseAdvancedContext) => { +export const useAdvanced = ({ schemaFormContext, emit }: UseAdvancedContext) => { const { realWidthRef, screenEnum, screenRef } = useBreakpoint(); - const { advanceState, getFormProps, formSchemasRef, formModel, defaultFormValues } = instance; + const { advanceState, getFormProps, formSchemasRef, formModel, defaultFormValues } = + schemaFormContext; + const getEmptySpan = computed((): number => { if (!advanceState.isAdvanced) { return 0; @@ -117,7 +119,7 @@ export const useAdvanced = ({ instance, emit }: UseAdvancedContext) => { }), formModel, field: schema.field, - formInstance: instance, + formInstance: schemaFormContext, values: { ...unref(defaultFormValues), ...formModel, diff --git a/src/components/core/schema-form/src/hooks/useFormEvents.ts b/src/components/core/schema-form/src/hooks/useFormEvents.ts index d096c2b5f..8d2347fc0 100644 --- a/src/components/core/schema-form/src/hooks/useFormEvents.ts +++ b/src/components/core/schema-form/src/hooks/useFormEvents.ts @@ -1,276 +1,20 @@ -import { unref, toRaw } from 'vue'; -import { cloneDeep, isNil, set, uniqBy, unset } from 'lodash-es'; -import dayjs from 'dayjs'; -import { dateItemType, handleInputNumberValue } from '../helper'; -import type { UnwrapFormSchema } from '../types/form'; -import type { NamePath } from 'ant-design-vue/lib/form/interface'; -import type { FormState, FormMethods } from './index'; +import { unref } from 'vue'; +import type { FormState, SchemaFormType } from './index'; import type { SchemaFormEmitFn } from '../schema-form'; -import { isArray, isFunction, isObject, isString } from '@/utils/is'; -import { deepMerge } from '@/utils'; +import { isFunction } from '@/utils/is'; -type UseFormActionContext = FormState & - Pick & { - emit: SchemaFormEmitFn; - }; - -type FormSchema = UnwrapFormSchema; +type UseFormActionContext = FormState & { + schemaFormContext: SchemaFormType; + emit: SchemaFormEmitFn; +}; export type FormEvents = ReturnType; export function useFormEvents(formActionContext: UseFormActionContext) { - const { - emit, - formPropsRef, - formSchemasRef, - formModel, - cacheFormModel, - getFormProps, - schemaFormRef, - defaultFormValues, - originComponentPropsFnMap, - handleFormValues, - } = formActionContext; - - function getFieldsValue(): Recordable { - const formEl = unref(schemaFormRef); - if (!formEl) return {}; - return handleFormValues(toRaw(unref(formModel))); - } - - /** - * @description: Is it time - */ - function itemIsDateType(key: string) { - return unref(formPropsRef).schemas?.some((item) => { - return item.field === key && isString(item.component) - ? dateItemType.includes(item.component) - : false; - }); - } - - /** - * @description: 设置表单字段值 - */ - async function setFieldsValue(values: Recordable) { - const schemas = unref(formSchemasRef); - // @ts-ignore - const fields = schemas.map((item) => item.field).filter(Boolean); - - Object.assign(cacheFormModel, values); - - const validKeys: string[] = []; - Object.entries(values).forEach(([key, value]) => { - const schema = schemas.find((item) => item.field === key); - - const hasKey = Reflect.has(values, key); - if (isString(schema?.component)) { - value = handleInputNumberValue(schema?.component, value); - } - // 0| '' is allow - if (hasKey && fields.includes(key)) { - // time type - if (itemIsDateType(key)) { - if (Array.isArray(value)) { - const arr: any[] = []; - for (const ele of value) { - arr.push(ele ? dayjs(ele) : null); - } - set(formModel, key, arr); - } else { - const { componentProps } = schema || {}; - let _props = componentProps as any; - if (isFunction(componentProps)) { - _props = _props({ formPropsRef, formModel }); - } - set(formModel, key, value ? (_props?.valueFormat ? value : dayjs(value)) : null); - } - } else { - set(formModel, key, value); - } - validKeys.push(key); - } - }); - // console.log('formModel', formModel); - await validateFields(validKeys).catch((_) => {}); - } - - async function resetSchema(data: Partial | Partial[]) { - let updateData: Partial[] = []; - if (isObject(data)) { - updateData.push(data as FormSchema); - } - if (isArray(data)) { - updateData = [...data]; - } - unref(formPropsRef).schemas = updateData as FormSchema[]; - } - - /** - * @description: 插入到指定 filed 后面,如果没传指定 field,则插入到最后,当 first = true 时插入到第一个位置 - */ - async function appendSchemaByField(schemaItem: FormSchema, prefixField?: string, first = false) { - const schemaList = cloneDeep(unref(formSchemasRef)); - - const index = schemaList.findIndex((schema) => schema.field === prefixField); - - if (!prefixField || index === -1 || first) { - first ? schemaList.unshift(schemaItem) : schemaList.push(schemaItem); - formPropsRef.value.schemas = schemaList; - return; - } - if (index !== -1) { - schemaList.splice(index + 1, 0, schemaItem); - } - formPropsRef.value.schemas = schemaList; - setDefaultValue(formPropsRef.value.schemas); - } - - /** - * @description: 根据 field 删除 Schema - */ - async function removeSchemaByField(fields: string | string[]): Promise { - const schemaList = cloneDeep(unref(formSchemasRef)); - - if (!fields) { - return; - } - - let fieldList: string[] = isString(fields) ? [fields] : fields; - if (isString(fields)) { - fieldList = [fields]; - } - for (const field of fieldList) { - if (isString(field)) { - const index = schemaList.findIndex((schema) => schema.field === field); - if (index !== -1) { - unset(formModel, field); - schemaList.splice(index, 1); - } - } - } - - formPropsRef.value.schemas = schemaList; - } - - /** - * @description: 根据 field 查找 Schema - */ - function getSchemaByFiled(fields: string | string[]): FormSchema | undefined { - const schemaList = unref(formSchemasRef); - const fieldList = ([] as string[]).concat(fields); - return schemaList.find((schema) => fieldList.includes(schema.field)); - } - - /** - * @description 更新formItemSchema - */ - const updateSchema = (data: Partial | Partial[]) => { - let updateData: Partial[] = []; - if (isObject(data)) { - updateData.push(data as FormSchema); - } - if (isArray(data)) { - updateData = [...data]; - } - - const hasField = updateData.every( - (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field), - ); - - if (!hasField) { - console.error( - 'All children of the form Schema array that need to be updated must contain the `field` field', - ); - return; - } - const schemas: FormSchema[] = []; - const updatedSchemas: FormSchema[] = []; - - unref(formSchemasRef).forEach((val) => { - const updateItem = updateData.find((n) => val.field === n.field); - if (updateItem) { - const compProps = updateItem.componentProps; - const newSchema = deepMerge(val, updateItem); - - if (originComponentPropsFnMap.has(val.field)) { - const originCompPropsFn = originComponentPropsFnMap.get(val.field)!; - - newSchema.componentProps = (opt) => { - return { - ...originCompPropsFn(opt), - ...(isFunction(compProps) ? compProps(opt) : compProps), - }; - }; - } - - updatedSchemas.push(newSchema); - schemas.push(newSchema); - } else { - schemas.push(val); - } - }); - - setDefaultValue(updatedSchemas); - formPropsRef.value.schemas = uniqBy(schemas, 'field'); - }; - - function setDefaultValue(data: FormSchema | FormSchema[]) { - let schemas: FormSchema[] = []; - if (isObject(data)) { - schemas.push(data as FormSchema); - } - if (isArray(data)) { - schemas = [...data]; - } - - const obj: Recordable = {}; - const currentFieldsValue = getFieldsValue(); - schemas.forEach((item) => { - if ( - item.component != 'Divider' && - Reflect.has(item, 'field') && - item.field && - !isNil(item.defaultValue) && - (!(item.field in currentFieldsValue) || isNil(currentFieldsValue[item.field])) - ) { - obj[item.field] = item.defaultValue; - } - }); - setFieldsValue(obj); - } - - async function resetFields(): Promise { - const { resetFunc, submitOnReset } = unref(getFormProps); - resetFunc && isFunction(resetFunc) && (await resetFunc()); - - Object.keys(formModel).forEach((key) => { - set(formModel, key, defaultFormValues[key]); - }); - - emit('reset', formModel); - submitOnReset && handleSubmit(); - setTimeout(clearValidate); - } - - async function validateFields(nameList?: NamePath[] | undefined) { - return schemaFormRef.value?.validateFields(nameList); - } - - async function validate(nameList?: NamePath[] | undefined) { - return await schemaFormRef.value!.validate(nameList); - } - - async function clearValidate(name?: string | string[]) { - await schemaFormRef.value?.clearValidate(name); - } - - async function scrollToField(name: NamePath, options?: ScrollOptions | undefined) { - await schemaFormRef.value?.scrollToField(name, options); - } + const { emit, getFormProps, schemaFormRef, schemaFormContext } = formActionContext; async function handleSubmit(e?: Event) { - e && e.preventDefault(); + e?.preventDefault?.(); const { submitFunc } = unref(getFormProps); if (submitFunc && isFunction(submitFunc)) { await submitFunc(); @@ -279,41 +23,16 @@ export function useFormEvents(formActionContext: UseFormActionContext) { const formEl = unref(schemaFormRef); if (!formEl) return; try { - const values = await validate(); - const res = handleFormValues(values); - emit('submit', values); + const values = await schemaFormContext.validate(); + const res = schemaFormContext.handleFormValues(values); + emit('submit', res); return res; } catch (error: any) { return Promise.reject(error); } } - const handleEnterPress = (e: KeyboardEvent) => { - const { autoSubmitOnEnter } = unref(formPropsRef); - if (!autoSubmitOnEnter) return; - if (e.key === 'Enter' && e.target && e.target instanceof HTMLElement) { - const target: HTMLElement = e.target as HTMLElement; - if (target && target.tagName && target.tagName.toUpperCase() == 'INPUT') { - handleSubmit(e); - } - } - }; - return { submit: handleSubmit, - handleEnterPress, - clearValidate, - validate, - validateFields, - getFieldsValue, - updateSchema, - resetSchema, - getSchemaByFiled, - appendSchemaByField, - removeSchemaByField, - resetFields, - setFieldsValue, - scrollToField, - setDefaultValue, }; } diff --git a/src/components/core/schema-form/src/hooks/useFormMethods.ts b/src/components/core/schema-form/src/hooks/useFormMethods.ts index 4dd5f568f..9243f839f 100644 --- a/src/components/core/schema-form/src/hooks/useFormMethods.ts +++ b/src/components/core/schema-form/src/hooks/useFormMethods.ts @@ -1,18 +1,38 @@ -import { unref } from 'vue'; -import { set, unset } from 'lodash-es'; +import { toRaw, unref } from 'vue'; +import { cloneDeep, set, unset, isNil, uniqBy } from 'lodash-es'; +import dayjs from 'dayjs'; +import { dateItemType, handleInputNumberValue } from '../helper'; import type { FormState } from './useFormState'; -import type { SchemaFormProps } from '../schema-form'; +import type { SchemaFormEmitFn, SchemaFormProps } from '../schema-form'; +import type { UnwrapFormSchema } from '../types/form'; +import type { NamePath } from 'ant-design-vue/lib/form/interface'; +import type { SchemaFormType } from './'; import { deepMerge } from '@/utils/'; import { isFunction, isObject, isArray, isString } from '@/utils/is'; import { dateUtil } from '@/utils/dateUtil'; -type UseFormMethodsContext = FormState; +type FormSchema = UnwrapFormSchema; +type UseFormMethodsContext = FormState & { + schemaFormContext: SchemaFormType; + emit: SchemaFormEmitFn; +}; export type FormMethods = ReturnType; export const useFormMethods = (formMethodsContext: UseFormMethodsContext) => { - const { compRefMap, formModel, formPropsRef, cacheFormModel, schemaFormRef, getFormProps } = - formMethodsContext; + const { + compRefMap, + formModel, + formPropsRef, + cacheFormModel, + schemaFormRef, + getFormProps, + formSchemasRef, + defaultFormValues, + originComponentPropsFnMap, + emit, + schemaFormContext, + } = formMethodsContext; // 将所有的表单组件实例保存起来, 方便外面通过表单组件实例操作 const setItemRef = (field: string) => { @@ -23,6 +43,241 @@ export const useFormMethods = (formMethodsContext: UseFormMethodsContext) => { }; }; + function getFieldsValue(): Recordable { + const formEl = unref(schemaFormRef); + if (!formEl) return {}; + return handleFormValues(toRaw(unref(formModel))); + } + + /** + * @description: Is it time + */ + function itemIsDateType(key: string) { + return unref(formPropsRef).schemas?.some((item) => { + return item.field === key && isString(item.component) + ? dateItemType.includes(item.component) + : false; + }); + } + + /** + * @description: 设置表单字段值 + */ + async function setFieldsValue(values: Recordable) { + const schemas = unref(formSchemasRef); + // @ts-ignore + const fields = schemas.map((item) => item.field).filter(Boolean); + + Object.assign(cacheFormModel, values); + + const validKeys: string[] = []; + Object.entries(values).forEach(([key, value]) => { + const schema = schemas.find((item) => item.field === key); + + const hasKey = Reflect.has(values, key); + if (isString(schema?.component)) { + value = handleInputNumberValue(schema?.component, value); + } + // 0| '' is allow + if (hasKey && fields.includes(key)) { + // time type + if (itemIsDateType(key)) { + if (Array.isArray(value)) { + const arr: any[] = []; + for (const ele of value) { + arr.push(ele ? dayjs(ele) : null); + } + set(formModel, key, arr); + } else { + const { componentProps } = schema || {}; + let _props = componentProps as any; + if (isFunction(componentProps)) { + _props = _props({ formPropsRef, formModel }); + } + set(formModel, key, value ? (_props?.valueFormat ? value : dayjs(value)) : null); + } + } else { + set(formModel, key, value); + } + validKeys.push(key); + } + }); + // console.log('formModel', formModel); + await validateFields(validKeys).catch((_) => {}); + } + + async function resetSchema(data: Partial | Partial[]) { + let updateData: Partial[] = []; + if (isObject(data)) { + updateData.push(data as FormSchema); + } + if (isArray(data)) { + updateData = [...data]; + } + unref(formPropsRef).schemas = updateData as FormSchema[]; + } + + /** + * @description: 插入到指定 field 后面,如果没传指定 field,则插入到最后,当 first = true 时插入到第一个位置 + */ + async function appendSchemaByField(schemaItem: FormSchema, prefixField?: string, first = false) { + const schemaList = cloneDeep(unref(formSchemasRef)); + + const index = schemaList.findIndex((schema) => schema.field === prefixField); + + if (!prefixField || index === -1 || first) { + first ? schemaList.unshift(schemaItem) : schemaList.push(schemaItem); + formPropsRef.value.schemas = schemaList; + return; + } + if (index !== -1) { + schemaList.splice(index + 1, 0, schemaItem); + } + formPropsRef.value.schemas = schemaList; + setDefaultValue(formPropsRef.value.schemas); + } + + /** + * @description: 根据 field 删除 Schema + */ + async function removeSchemaByField(fields: string | string[]): Promise { + const schemaList = cloneDeep(unref(formSchemasRef)); + + if (!fields) { + return; + } + + let fieldList: string[] = isString(fields) ? [fields] : fields; + if (isString(fields)) { + fieldList = [fields]; + } + for (const field of fieldList) { + if (isString(field)) { + const index = schemaList.findIndex((schema) => schema.field === field); + if (index !== -1) { + unset(formModel, field); + schemaList.splice(index, 1); + } + } + } + + formPropsRef.value.schemas = schemaList; + } + + /** + * @description: 根据 field 查找 Schema + */ + function getSchemaByField(field: string): FormSchema | undefined { + return unref(formSchemasRef).find((schema) => field === schema.field); + } + + /** + * @description 更新formItemSchema + */ + const updateSchema = (data: Partial | Partial[]) => { + let updateData: Partial[] = []; + if (isObject(data)) { + updateData.push(data as FormSchema); + } + if (isArray(data)) { + updateData = [...data]; + } + + const hasField = updateData.every( + (item) => item.component === 'Divider' || (Reflect.has(item, 'field') && item.field), + ); + + if (!hasField) { + console.error( + 'All children of the form Schema array that need to be updated must contain the `field` field', + ); + return; + } + const schemas: FormSchema[] = []; + const updatedSchemas: FormSchema[] = []; + + unref(formSchemasRef).forEach((val) => { + const updateItem = updateData.find((n) => val.field === n.field); + if (updateItem) { + const compProps = updateItem.componentProps; + const newSchema = deepMerge(val, updateItem); + + if (originComponentPropsFnMap.has(val.field)) { + const originCompPropsFn = originComponentPropsFnMap.get(val.field)!; + + newSchema.componentProps = (opt) => { + return { + ...originCompPropsFn(opt), + ...(isFunction(compProps) ? compProps(opt) : compProps), + }; + }; + } + + updatedSchemas.push(newSchema); + schemas.push(newSchema); + } else { + schemas.push(val); + } + }); + + setDefaultValue(updatedSchemas); + formPropsRef.value.schemas = uniqBy(schemas, 'field'); + }; + + function setDefaultValue(data: FormSchema | FormSchema[]) { + let schemas: FormSchema[] = []; + if (isObject(data)) { + schemas.push(data as FormSchema); + } + if (isArray(data)) { + schemas = [...data]; + } + + const obj: Recordable = {}; + const currentFieldsValue = getFieldsValue(); + schemas.forEach((item) => { + if ( + item.component != 'Divider' && + Reflect.has(item, 'field') && + item.field && + !isNil(item.defaultValue) && + (!(item.field in currentFieldsValue) || isNil(currentFieldsValue[item.field])) + ) { + obj[item.field] = item.defaultValue; + } + }); + setFieldsValue(obj); + } + + async function resetFields(): Promise { + const { resetFunc, submitOnReset } = unref(getFormProps); + resetFunc && isFunction(resetFunc) && (await resetFunc()); + + Object.keys(formModel).forEach((key) => { + set(formModel, key, defaultFormValues[key]); + }); + + emit('reset', formModel); + submitOnReset && schemaFormContext.submit(); + setTimeout(clearValidate); + } + + async function validateFields(nameList?: NamePath[] | undefined) { + return schemaFormRef.value?.validateFields(nameList); + } + + async function validate(nameList?: NamePath[] | undefined) { + return await schemaFormRef.value!.validate(nameList); + } + + async function clearValidate(name?: string | string[]) { + await schemaFormRef.value?.clearValidate(name); + } + + async function scrollToField(name: NamePath, options?: ScrollOptions | undefined) { + await schemaFormRef.value?.scrollToField(name, options); + } + // 设置某个字段的值 const setFormModel = (key: Key, value: any) => { set(formModel, key, value); @@ -51,13 +306,12 @@ export const useFormMethods = (formMethodsContext: UseFormMethodsContext) => { return {}; } const res: Recordable = {}; - for (const item of Object.entries(values)) { - let [, value] = item; - const [key] = item; + for (let [key, value] of Object.entries(values)) { if (!key || (isArray(value) && value.length === 0) || isFunction(value)) { continue; } - const transformDateFunc = unref(getFormProps).transformDateFunc; + + const { transformDateFunc } = unref(getFormProps); if (isObject(value)) { value = transformDateFunc?.(value); } @@ -69,6 +323,18 @@ export const useFormMethods = (formMethodsContext: UseFormMethodsContext) => { if (isString(value)) { value = value.trim(); } + + const schemaItem = getSchemaByField(key); + + if (isFunction(schemaItem?.transform)) { + value = schemaItem?.transform(value); + if (isObject(value)) { + Object.assign(res, value); + Reflect.deleteProperty(res, key); + continue; + } + } + set(res, key, value); } return handleRangeTimeValue(res); @@ -99,11 +365,36 @@ export const useFormMethods = (formMethodsContext: UseFormMethodsContext) => { return values; } + const handleEnterPress = (e: KeyboardEvent) => { + const { autoSubmitOnEnter } = unref(formPropsRef); + if (!autoSubmitOnEnter) return; + if (e.key === 'Enter' && e.target && e.target instanceof HTMLElement) { + const target: HTMLElement = e.target as HTMLElement; + if (target && target.tagName && target.tagName.toUpperCase() == 'INPUT') { + schemaFormContext.submit(e); + } + } + }; + return { setItemRef, + clearValidate, + validate, + validateFields, + getFieldsValue, + updateSchema, + resetSchema, + getSchemaByField, + appendSchemaByField, + removeSchemaByField, + resetFields, + setFieldsValue, + scrollToField, + setDefaultValue, setFormModel, delFormModel, setSchemaFormProps, handleFormValues, + handleEnterPress, }; }; diff --git a/src/components/core/schema-form/src/hooks/useLabelWidth.ts b/src/components/core/schema-form/src/hooks/useLabelWidth.ts index 1aa12da74..2dc0bed4c 100644 --- a/src/components/core/schema-form/src/hooks/useLabelWidth.ts +++ b/src/components/core/schema-form/src/hooks/useLabelWidth.ts @@ -4,9 +4,9 @@ import type { FormSchema } from '../types/form'; import type { SchemaFormProps } from '../schema-form'; import { isNumber } from '@/utils/is'; -export function useItemLabelWidth(schemaRef: Ref, formPropsRef: Ref) { +export function useItemLabelWidth(schemaItemRef: Ref, propsRef: Ref) { return computed(() => { - const schemaItem = unref(schemaRef); + const schemaItem = unref(schemaItemRef); const { labelCol = {}, wrapperCol = {} } = schemaItem.formItemProps || {}; const { labelWidth, disabledLabelWidth } = schemaItem; @@ -14,9 +14,10 @@ export function useItemLabelWidth(schemaRef: Ref, formPropsRef: Ref< labelWidth: globalLabelWidth, labelCol: globalLabelCol, wrapperCol: globWrapperCol, - } = unref(formPropsRef); + layout, + } = unref(propsRef); - // 如果labelWidth是全局设置的,则会设置所有项 + // If labelWidth is set globally, all items setting if ((!globalLabelWidth && !labelWidth && !globalLabelCol) || disabledLabelWidth) { labelCol.style = { textAlign: 'left', @@ -33,7 +34,10 @@ export function useItemLabelWidth(schemaRef: Ref, formPropsRef: Ref< return { labelCol: { style: { width }, ...col }, - wrapperCol: { style: { width: `calc(100% - ${width})` }, ...wrapCol }, + wrapperCol: { + style: { width: layout === 'vertical' ? '100%' : `calc(100% - ${width})` }, + ...wrapCol, + }, }; }); } diff --git a/src/components/core/schema-form/src/schema-form-item.vue b/src/components/core/schema-form/src/schema-form-item.vue index d0eeff639..d17f2c2d3 100644 --- a/src/components/core/schema-form/src/schema-form-item.vue +++ b/src/components/core/schema-form/src/schema-form-item.vue @@ -5,11 +5,9 @@ @@ -80,7 +78,7 @@ // schemaForm组件实例 const formContext = useFormContext(); - const { formPropsRef, setItemRef, updateSchema, getSchemaByFiled, appendSchemaByField } = + const { formPropsRef, setItemRef, updateSchema, getSchemaByField, appendSchemaByField } = formContext; const { t } = useI18n(); @@ -449,7 +447,7 @@ getShow, (val, oldVal) => { if (!isEqual(val, oldVal) && val.isIfShow && val.isShow) { - if (!getSchemaByFiled(props.schema.field)) { + if (!getSchemaByField(props.schema.field)) { appendSchemaByField(props.schema); } initRequestConfig(); diff --git a/src/components/core/schema-form/src/schema-form.ts b/src/components/core/schema-form/src/schema-form.ts index 951c25b04..77a3c2ee4 100644 --- a/src/components/core/schema-form/src/schema-form.ts +++ b/src/components/core/schema-form/src/schema-form.ts @@ -21,7 +21,7 @@ export const schemaFormProps = { }, // 标签宽度 固定宽度 labelWidth: { - type: [Number, String] as PropType, + type: [Number, String] as PropType, default: 0, }, fieldMapToTime: { diff --git a/src/components/core/schema-form/src/schema-form.vue b/src/components/core/schema-form/src/schema-form.vue index a0ccbd2ee..e72dbcc02 100644 --- a/src/components/core/schema-form/src/schema-form.vue +++ b/src/components/core/schema-form/src/schema-form.vue @@ -61,6 +61,8 @@ const emit = defineEmits(schemaFormEmits); const attrs = useAttrs(); + const schemaFormContext: SchemaFormType = {} as SchemaFormType; + // 表单内部状态 const formState = useFormState({ props, attrs }); const { @@ -73,31 +75,30 @@ } = formState; // 表单内部方法 - const formMethods = useFormMethods({ ...formState }); - const { handleFormValues } = formMethods; + const formMethods = useFormMethods({ ...formState, emit, schemaFormContext }); + const { handleEnterPress, setDefaultValue } = formMethods; // a-form表单事件二次封装和扩展 - const formEvents = useFormEvents({ ...formState, emit, handleFormValues }); - const { handleEnterPress, setDefaultValue } = formEvents; + const formEvents = useFormEvents({ ...formState, emit, schemaFormContext }); // 当前组件所有的状态和方法 - const instance = { + Object.assign(schemaFormContext, { ...formState, ...formEvents, ...formMethods, - } as SchemaFormType; + }); // 搜索表单 展开/收起 表单项hooks const { handleToggleAdvanced } = useAdvanced({ - instance, + schemaFormContext, emit, }); - emit('register', instance); + emit('register', schemaFormContext); - createFormContext(instance); + createFormContext(schemaFormContext); - defineExpose(instance); + defineExpose(schemaFormContext); // 初始化表单默认值 setDefaultValue(formSchemasRef.value); diff --git a/src/components/core/schema-form/src/types/form.ts b/src/components/core/schema-form/src/types/form.ts index e8b1c19cc..3726b1154 100644 --- a/src/components/core/schema-form/src/types/form.ts +++ b/src/components/core/schema-form/src/types/form.ts @@ -127,8 +127,14 @@ export type FormSchema = ComponentSchema & { vShow?: boolean | ((renderCallbackParams: RenderCallbackParams) => any); /** 作用同v-if */ vIf?: boolean | ((renderCallbackParams: RenderCallbackParams) => any); - - // 渲染col内容需要外层包装form-item + /** + * 转换表单项的值 + * @param value 转换前的值 + * @returns 返回值若是基本类型,则将作为当前表单项的最终值; + * 若返回值是对象,则对象的 key 将会覆盖当前表单项定义的 field 字段 + */ + transform?: (value: any) => any; + /** 渲染col内容需要外层包装form-item */ renderColContent?: CustomRenderFn; /** Custom slot, in from-item */ diff --git a/src/utils/request.ts b/src/utils/request.ts index e37949933..115f7aa61 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -1,5 +1,6 @@ import axios, { CanceledError } from 'axios'; import { isString } from 'lodash-es'; +import qs from 'qs'; import { message as $message, Modal } from 'ant-design-vue'; import type { AxiosRequestConfig, AxiosResponse } from 'axios'; import { ResultEnum } from '@/enums/httpEnum'; @@ -32,6 +33,9 @@ const service = axios.create({ baseURL: baseApiUrl, timeout: 10000, signal: controller.signal, + paramsSerializer(params) { + return qs.stringify(params, { arrayFormat: 'brackets' }); + }, }); service.interceptors.request.use( diff --git a/src/views/demos/form/basic-form/form-schema.tsx b/src/views/demos/form/basic-form/form-schema.tsx index 8a926f8a0..04ab47ca7 100644 --- a/src/views/demos/form/basic-form/form-schema.tsx +++ b/src/views/demos/form/basic-form/form-schema.tsx @@ -1,5 +1,6 @@ import { UploadOutlined } from '@ant-design/icons-vue'; import { Radio, Button } from 'ant-design-vue'; +import InputNumberRange from '../custom-form/input-number-range.vue'; import type { FormSchema } from '@/components/core/schema-form'; import { optionsListApi } from '@/api/demo/select'; import { waitTime } from '@/utils/common'; @@ -421,6 +422,51 @@ export const schemas: FormSchema[] = [ placeholder: '省份与城市联动', }, }, + { + field: 'divider-map', + component: 'Divider', + label: '字段映射', + helpMessage: ['当组件的值为 array 或者 object 时', '你可以根据需要将多个的值映射到不同的字段'], + }, + { + field: '[startDate, endDate]', + label: '日期范围', + colProps: { + span: 8, + }, + component: 'RangePicker', + componentProps: { + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + placeholder: ['开始日期', '结束日期'], + }, + transform([startDate, endDate] = []) { + return { startDate, endDate }; + }, + }, + { + field: 'number-range', + label: '数字范围', + colProps: { + span: 8, + }, + rules: [ + { + required: true, + type: 'array', + trigger: 'change', + validator(_, value: string[]) { + const isOk = Array.isArray(value) && value.length === 2 && value.every(Boolean); + return isOk ? Promise.resolve() : Promise.reject('请输入数字范围'); + }, + }, + ], + component: () => InputNumberRange, + // 将多个值映射为多个字段 + transform([minNum, maxNum] = []) { + return { minNum, maxNum }; + }, + }, { field: 'divider-selects', component: 'Divider', diff --git a/src/views/demos/form/basic-form/index.vue b/src/views/demos/form/basic-form/index.vue index 47899647c..32d256e30 100644 --- a/src/views/demos/form/basic-form/index.vue +++ b/src/views/demos/form/basic-form/index.vue @@ -75,7 +75,7 @@ }); const [SchemaForm, SchemaFormInstance] = useForm({ - labelWidth: 200, + labelWidth: 160, schemas, actionColOptions: { span: 24, @@ -112,10 +112,10 @@ SchemaFormInstance.setSchemaFormProps({ layout: val, rowProps: { gutter: 20 }, - labelWidth: null, + labelWidth: 111, }); } else { - SchemaFormInstance.setSchemaFormProps({ layout: val, labelWidth: 200 }); + SchemaFormInstance.setSchemaFormProps({ layout: val, labelWidth: 160 }); } }); diff --git a/src/views/demos/form/custom-form/index.vue b/src/views/demos/form/custom-form/index.vue index d54cd813d..126d8ac74 100644 --- a/src/views/demos/form/custom-form/index.vue +++ b/src/views/demos/form/custom-form/index.vue @@ -12,7 +12,7 @@ diff --git a/src/views/demos/form/custom-form/input-number-range.vue b/src/views/demos/form/custom-form/input-number-range.vue index 45bedd47c..3cbcf8074 100644 --- a/src/views/demos/form/custom-form/input-number-range.vue +++ b/src/views/demos/form/custom-form/input-number-range.vue @@ -24,13 +24,13 @@