diff --git a/package.json b/package.json
index 3ca0f442..c8122990 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,15 @@
"@halo-dev/console-shared": "workspace:*",
"@halo-dev/richtext-editor": "^0.0.0-alpha.8",
"@tiptap/extension-character-count": "^2.0.0-beta.199",
+ "@uppy/core": "^3.0.4",
+ "@uppy/dashboard": "^3.1.0",
+ "@uppy/drag-drop": "^3.0.1",
+ "@uppy/file-input": "^3.0.1",
+ "@uppy/locales": "^3.0.3",
+ "@uppy/progress-bar": "^3.0.1",
+ "@uppy/status-bar": "^3.0.1",
+ "@uppy/vue": "^1.0.1",
+ "@uppy/xhr-upload": "^3.0.4",
"@vueuse/components": "^9.3.0",
"@vueuse/core": "^9.3.0",
"@vueuse/router": "^9.3.0",
@@ -46,7 +55,6 @@
"colorjs.io": "^0.4.0",
"dayjs": "^1.11.5",
"emoji-mart": "^5.2.2",
- "filepond": "^4.30.4",
"floating-vue": "2.0.0-beta.20",
"fuse.js": "^6.6.2",
"lodash.clonedeep": "^4.5.0",
@@ -59,7 +67,6 @@
"qs": "^6.11.0",
"uuid": "^9.0.0",
"vue": "^3.2.40",
- "vue-filepond": "^7.0.3",
"vue-grid-layout": "3.0.0-beta1",
"vue-router": "^4.1.5",
"vuedraggable": "^4.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 856329f8..a5d0f178 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -30,6 +30,15 @@ importers:
'@types/qs': ^6.9.7
'@types/randomstring': ^1.1.8
'@types/uuid': ^8.3.4
+ '@uppy/core': ^3.0.4
+ '@uppy/dashboard': ^3.1.0
+ '@uppy/drag-drop': ^3.0.1
+ '@uppy/file-input': ^3.0.1
+ '@uppy/locales': ^3.0.3
+ '@uppy/progress-bar': ^3.0.1
+ '@uppy/status-bar': ^3.0.1
+ '@uppy/vue': ^1.0.1
+ '@uppy/xhr-upload': ^3.0.4
'@vitejs/plugin-vue': ^3.1.2
'@vitejs/plugin-vue-jsx': ^2.0.1
'@vitest/ui': ^0.24.0
@@ -52,7 +61,6 @@ importers:
eslint: ^8.25.0
eslint-plugin-cypress: ^2.12.1
eslint-plugin-vue: ^9.6.0
- filepond: ^4.30.4
floating-vue: 2.0.0-beta.20
fuse.js: ^6.6.2
husky: ^8.0.1
@@ -86,7 +94,6 @@ importers:
vite-plugin-vue-setup-extend: ^0.4.0
vitest: ^0.24.0
vue: ^3.2.40
- vue-filepond: ^7.0.3
vue-grid-layout: 3.0.0-beta1
vue-router: ^4.1.5
vue-tsc: ^1.0.3
@@ -106,6 +113,15 @@ importers:
'@halo-dev/console-shared': link:packages/shared
'@halo-dev/richtext-editor': 0.0.0-alpha.8_vue@3.2.40
'@tiptap/extension-character-count': 2.0.0-beta.199
+ '@uppy/core': 3.0.4
+ '@uppy/dashboard': 3.1.0_@uppy+core@3.0.4
+ '@uppy/drag-drop': 3.0.1_@uppy+core@3.0.4
+ '@uppy/file-input': 3.0.1_@uppy+core@3.0.4
+ '@uppy/locales': 3.0.3
+ '@uppy/progress-bar': 3.0.1_@uppy+core@3.0.4
+ '@uppy/status-bar': 3.0.1_@uppy+core@3.0.4
+ '@uppy/vue': 1.0.1_it3nm4ughcqppcjzj3xrfbdku4
+ '@uppy/xhr-upload': 3.0.4_@uppy+core@3.0.4
'@vueuse/components': 9.3.0_vue@3.2.40
'@vueuse/core': 9.3.0_vue@3.2.40
'@vueuse/router': 9.3.0_c7eza3xvlyb4mo6qeit5ggeo6u
@@ -114,7 +130,6 @@ importers:
colorjs.io: 0.4.0
dayjs: 1.11.5
emoji-mart: 5.2.2
- filepond: 4.30.4
floating-vue: 2.0.0-beta.20_vue@3.2.40
fuse.js: 6.6.2
lodash.clonedeep: 4.5.0
@@ -127,7 +142,6 @@ importers:
qs: 6.11.0
uuid: 9.0.0
vue: 3.2.40
- vue-filepond: 7.0.3_filepond@4.30.4+vue@3.2.40
vue-grid-layout: 3.0.0-beta1
vue-router: 4.1.5_vue@3.2.40
vuedraggable: 4.1.0_vue@3.2.40
@@ -2911,6 +2925,14 @@ packages:
engines: {node: '>= 10'}
dev: true
+ /@transloadit/prettier-bytes/0.0.7:
+ resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
+ dev: false
+
+ /@transloadit/prettier-bytes/0.0.9:
+ resolution: {integrity: sha512-pCvdmea/F3Tn4hAtHqNXmjcixSaroJJ+L3STXlYJdir1g1m2mRQpWbN8a4SvgQtaw2930Ckhdx8qXdXBFMKbAA==}
+ dev: false
+
/@ts-morph/common/0.17.0:
resolution: {integrity: sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g==}
dependencies:
@@ -3241,6 +3263,177 @@ packages:
eslint-visitor-keys: 3.3.0
dev: true
+ /@uppy/companion-client/3.0.2:
+ resolution: {integrity: sha512-Dv4RQQpuJ+4e6kRp6+KF5q2tjrFuShqXzrTFjk4EgwdX72Yz9QOgWwxhAH4/83vRdGrL/46mCcmvT52ODUJgBQ==}
+ dependencies:
+ '@uppy/utils': 5.0.2
+ namespace-emitter: 2.0.1
+ dev: false
+
+ /@uppy/core/3.0.4:
+ resolution: {integrity: sha512-vFofKmmVVsQE9bnOXozAPy94kLQMUdMH/l8m4ncXmxyyGRc2e9VfvY9wiy2EEsoj11O7YVzHOP70FYdRReUpVw==}
+ dependencies:
+ '@transloadit/prettier-bytes': 0.0.9
+ '@uppy/store-default': 3.0.2
+ '@uppy/utils': 5.0.2
+ lodash.throttle: 4.1.1
+ mime-match: 1.0.2
+ namespace-emitter: 2.0.1
+ nanoid: 4.0.0
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/dashboard/3.1.0_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-/p88BHv+hvTcmiIgVa1+3stG05RaD4jbBaySgK/zpCauHN7wCJS6nPSB7MzdDHJtp5TLd9XllGcXBTP3syGspQ==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ dependencies:
+ '@transloadit/prettier-bytes': 0.0.7
+ '@uppy/core': 3.0.4
+ '@uppy/informer': 3.0.1_@uppy+core@3.0.4
+ '@uppy/provider-views': 3.0.2_@uppy+core@3.0.4
+ '@uppy/status-bar': 3.0.1_@uppy+core@3.0.4
+ '@uppy/thumbnail-generator': 3.0.2_@uppy+core@3.0.4
+ '@uppy/utils': 5.0.2
+ classnames: 2.3.2
+ is-shallow-equal: 1.0.1
+ lodash.debounce: 4.0.8
+ memoize-one: 6.0.0
+ nanoid: 4.0.0
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/drag-drop/3.0.1_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-1jMlF2V5AFfvSYtbIR1N2M8WbjhQPW14FcEElpeWjzwlF3OnbUARwk4jBlGfcAsDcV4dYf6hG192xPPdnuBc6A==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ dependencies:
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/file-input/3.0.1_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-RTOm09Z1JjfSnvULY41u3VXm5nMkORmOCwo68oI4Kd1UL/h3V64bqqd34IN5vDDhJ2O58qDAKohPdReqhcNJAQ==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ dependencies:
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/informer/3.0.1_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-Mip+l2CYsTVYa0fSwD0okHRS5/UhAqCfQO2CRwwR5/vC6DpR1VAALDqx6RpssOaFiOACAx12VCcZiP5J8+2BJw==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ dependencies:
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/locales/3.0.3:
+ resolution: {integrity: sha512-KYo7fghXFqOqH44lE82Roy7BjT/+JN39PAJaS0d0J7FOEOYgj4ZEuva4L+U5WG3plU6yEE2Hf38hth077i6voA==}
+ dev: false
+
+ /@uppy/progress-bar/3.0.1_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-cjBLOst0sPV1yF6YzkQIx/mHpytMXN7MRF7H/6Yc8ahDzm8XkbwMQCf2zksaanGfHUNCHlQFgCkfjfizK6VJIw==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ dependencies:
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/provider-views/3.0.2_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-z4v6UAiNSM2h8BB+/svBU1R/6QsssoLYKd4O8g6L7iAD1S2NPtU7U0busIyTvh3CA1Q6tfvfwF1JOFGTfNPQaA==}
+ peerDependencies:
+ '@uppy/core': ^3.0.4
+ dependencies:
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ classnames: 2.3.2
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/status-bar/3.0.1_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-QQqIjiHBsNjZFR6xEc5SAT5UYbKnRcgNWwyLmJR0BYVINfx/aeIueXIm0jkBuJ4XFkebH7nDjKGW89JE9WKkgg==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ dependencies:
+ '@transloadit/prettier-bytes': 0.0.9
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ classnames: 2.3.2
+ lodash.throttle: 4.1.1
+ preact: 10.11.2
+ dev: false
+
+ /@uppy/store-default/3.0.2:
+ resolution: {integrity: sha512-kIQMCjXui6tjF1E9xGo4YHkvt71McXkU0FStrcQuBrRXuOhb+NcuWh3sMh3KryivVNgT6w5Odrlw2FUFkl9cqA==}
+ dev: false
+
+ /@uppy/thumbnail-generator/3.0.2_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-3qE1giGu1O9BkO8MCYYV78X9p95l5Ptv7JUDpqKlIMN/NGBHblMFCn5mjmt4soyQFUGgnZ7+bxq0DtjXPpWJYA==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ dependencies:
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ exifr: 7.1.3
+ dev: false
+
+ /@uppy/utils/5.0.2:
+ resolution: {integrity: sha512-3LpqR6o60DgdNQSnKx0eXta5wupnHjzcQvTvWNGI/ZA/AYgmhnufybK0Q/t+c0D37MaDUL10RydmFxQ+G/dXvw==}
+ dependencies:
+ lodash.throttle: 4.1.1
+ dev: false
+
+ /@uppy/vue/1.0.1_it3nm4ughcqppcjzj3xrfbdku4:
+ resolution: {integrity: sha512-2cAzNz/a3GSscPfBh6WBelK0X6tY0DL5xAcOlSSENzZ0kxuGUq4a6N55ThUWC3THoCwbT0zFbUrjS41UEJDy/g==}
+ peerDependencies:
+ '@uppy/core': ^3.0.2
+ '@uppy/dashboard': ^3.1.0
+ '@uppy/drag-drop': ^3.0.1
+ '@uppy/file-input': ^3.0.1
+ '@uppy/progress-bar': ^3.0.1
+ '@uppy/status-bar': ^3.0.1
+ vue: '>=2.6.11'
+ peerDependenciesMeta:
+ '@uppy/dashboard':
+ optional: true
+ '@uppy/drag-drop':
+ optional: true
+ '@uppy/file-input':
+ optional: true
+ '@uppy/progress-bar':
+ optional: true
+ '@uppy/status-bar':
+ optional: true
+ dependencies:
+ '@uppy/core': 3.0.4
+ '@uppy/dashboard': 3.1.0_@uppy+core@3.0.4
+ '@uppy/drag-drop': 3.0.1_@uppy+core@3.0.4
+ '@uppy/file-input': 3.0.1_@uppy+core@3.0.4
+ '@uppy/progress-bar': 3.0.1_@uppy+core@3.0.4
+ '@uppy/status-bar': 3.0.1_@uppy+core@3.0.4
+ shallow-equal: 1.2.1
+ vue: 3.2.40
+ dev: false
+
+ /@uppy/xhr-upload/3.0.4_@uppy+core@3.0.4:
+ resolution: {integrity: sha512-uJ1oxcwEaSLnrexvi6Lp57hV3z3DsovgVmYIVwg+z/EnrRcL32wNRE7FcIr8Mk9e1jdMiFYlk6cQmiP2dZep8A==}
+ peerDependencies:
+ '@uppy/core': ^3.0.4
+ dependencies:
+ '@uppy/companion-client': 3.0.2
+ '@uppy/core': 3.0.4
+ '@uppy/utils': 5.0.2
+ nanoid: 4.0.0
+ dev: false
+
/@vitejs/plugin-vue-jsx/2.0.1_vite@3.1.6+vue@3.2.40:
resolution: {integrity: sha512-lmiR1k9+lrF7LMczO0pxtQ8mOn6XeppJDHxnpxkJQpT5SiKz4SKhKdeNstXaTNuR8qZhUo5X0pJlcocn72Y4Jg==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -4058,6 +4251,10 @@ packages:
resolution: {integrity: sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==}
dev: true
+ /classnames/2.3.2:
+ resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==}
+ dev: false
+
/clean-css/5.3.1:
resolution: {integrity: sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==}
engines: {node: '>= 10.0'}
@@ -5244,6 +5441,10 @@ packages:
pify: 2.3.0
dev: true
+ /exifr/7.1.3:
+ resolution: {integrity: sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==}
+ dev: false
+
/extend-shallow/2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
@@ -5350,10 +5551,6 @@ packages:
minimatch: 5.1.0
dev: true
- /filepond/4.30.4:
- resolution: {integrity: sha512-FCwsMvG9iiEs6uobdDrTaKsCgsqys0NuLgPPD8n37AYVYBiiDkrPkk9MSIU5rT2FahYcL1bScYI9huIPtlzqyA==}
- dev: false
-
/fill-range/7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -6134,6 +6331,10 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /is-shallow-equal/1.0.1:
+ resolution: {integrity: sha512-lq5RvK+85Hs5J3p4oA4256M1FEffzmI533ikeDHvJd42nouRRx5wBzt36JuviiGe5dIPyHON/d0/Up+PBo6XkQ==}
+ dev: false
+
/is-shared-array-buffer/1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
@@ -6525,7 +6726,6 @@ packages:
/lodash.debounce/4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
- dev: true
/lodash.get/4.4.2:
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
@@ -6552,6 +6752,10 @@ packages:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
dev: true
+ /lodash.throttle/4.1.1:
+ resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+ dev: false
+
/lodash/4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: true
@@ -6672,6 +6876,10 @@ packages:
resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==}
dev: true
+ /memoize-one/6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+ dev: false
+
/meow/6.1.1:
resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==}
engines: {node: '>=8'}
@@ -6708,6 +6916,12 @@ packages:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
+ /mime-match/1.0.2:
+ resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}
+ dependencies:
+ wildcard: 1.1.2
+ dev: false
+
/mime-types/2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
@@ -6799,11 +7013,21 @@ packages:
resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==}
dev: true
+ /namespace-emitter/2.0.1:
+ resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
+ dev: false
+
/nanoid/3.3.4:
resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ /nanoid/4.0.0:
+ resolution: {integrity: sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==}
+ engines: {node: ^14 || ^16 || >=18}
+ hasBin: true
+ dev: false
+
/natural-compare/1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
@@ -7225,6 +7449,10 @@ packages:
picocolors: 1.0.0
source-map-js: 1.0.2
+ /preact/10.11.2:
+ resolution: {integrity: sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==}
+ dev: false
+
/preferred-pm/3.0.3:
resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==}
engines: {node: '>=10'}
@@ -7784,6 +8012,10 @@ packages:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
dev: true
+ /shallow-equal/1.2.1:
+ resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
+ dev: false
+
/shebang-command/1.2.0:
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
engines: {node: '>=0.10.0'}
@@ -8982,16 +9214,6 @@ packages:
- supports-color
dev: true
- /vue-filepond/7.0.3_filepond@4.30.4+vue@3.2.40:
- resolution: {integrity: sha512-pYZ5TxGwFiiiVlRdzlJl0AyHE0/rEZiHm/0sYhIleFjV2VdGWTyxSqErN/AQwrwv32AeiNbui46vVB06Dl07ow==}
- peerDependencies:
- filepond: '>=4.7.4 < 5.x'
- vue: '>=3 < 4'
- dependencies:
- filepond: 4.30.4
- vue: 3.2.40
- dev: false
-
/vue-grid-layout/3.0.0-beta1:
resolution: {integrity: sha512-MsW0yfYNtnAO/uDhfZvkP6effxSJxvhAFbIL37x6Rn3vW9xf0WHVefKaSbQMLpSq3mXnR6ut0pg2Cd5lqIIZzg==}
dependencies:
@@ -9184,6 +9406,10 @@ packages:
isexe: 2.0.0
dev: true
+ /wildcard/1.1.2:
+ resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}
+ dev: false
+
/word-wrap/1.2.3:
resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
engines: {node: '>=0.10.0'}
diff --git a/src/components/upload/FilePondUpload.vue b/src/components/upload/FilePondUpload.vue
deleted file mode 100644
index bcc897e8..00000000
--- a/src/components/upload/FilePondUpload.vue
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
diff --git a/src/components/upload/UppyUpload.vue b/src/components/upload/UppyUpload.vue
new file mode 100644
index 00000000..ab8482ae
--- /dev/null
+++ b/src/components/upload/UppyUpload.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
diff --git a/src/modules/contents/attachments/components/AttachmentUploadModal.vue b/src/modules/contents/attachments/components/AttachmentUploadModal.vue
index a6d6658f..eb540665 100644
--- a/src/modules/contents/attachments/components/AttachmentUploadModal.vue
+++ b/src/modules/contents/attachments/components/AttachmentUploadModal.vue
@@ -6,9 +6,8 @@ import {
VButton,
VSpace,
} from "@halo-dev/components";
-import FilePondUpload from "@/components/upload/FilePondUpload.vue";
+import UppyUpload from "@/components/upload/UppyUpload.vue";
import { computed, ref, watch, watchEffect } from "vue";
-import { apiClient } from "@/utils/api-client";
import type { Policy, Group } from "@halo-dev/api-client";
import { useFetchAttachmentPolicy } from "../composables/use-attachment-policy";
import AttachmentPoliciesModal from "./AttachmentPoliciesModal.vue";
@@ -33,7 +32,7 @@ const { policies, loading, handleFetchPolicies } = useFetchAttachmentPolicy();
const selectedPolicy = ref(null);
const policyVisible = ref(false);
-const FilePondUploadRef = ref();
+const uploadVisible = ref(false);
const modalTitle = computed(() => {
if (props.group && props.group.metadata.name) {
@@ -53,27 +52,20 @@ const onVisibleChange = (visible: boolean) => {
if (!visible) {
emit("close");
policyVisible.value = false;
- FilePondUploadRef.value.handleRemoveFiles();
}
};
-const uploadHandler = computed(() => {
- return (file, config) =>
- apiClient.attachment.uploadAttachment(
- {
- file,
- policyName: selectedPolicy.value?.metadata.name as string,
- groupName: props.group?.metadata.name as string,
- },
- config
- );
-});
-
watch(
() => props.visible,
(newValue) => {
if (newValue) {
handleFetchPolicies();
+ uploadVisible.value = true;
+ } else {
+ const uploadVisibleTimer = setTimeout(() => {
+ uploadVisible.value = false;
+ clearTimeout(uploadVisibleTimer);
+ }, 200);
}
}
);
@@ -137,15 +129,16 @@ watch(
-
diff --git a/src/modules/contents/attachments/components/selector-providers/UploadSelectorProvider.vue b/src/modules/contents/attachments/components/selector-providers/UploadSelectorProvider.vue
index 85ae1e57..148611df 100644
--- a/src/modules/contents/attachments/components/selector-providers/UploadSelectorProvider.vue
+++ b/src/modules/contents/attachments/components/selector-providers/UploadSelectorProvider.vue
@@ -11,13 +11,13 @@ import type { AttachmentLike } from "@halo-dev/console-shared";
import { apiClient } from "@/utils/api-client";
import LazyImage from "@/components/image/LazyImage.vue";
import type { Attachment } from "@halo-dev/api-client";
-import FilePondUpload from "@/components/upload/FilePondUpload.vue";
+import UppyUpload from "@/components/upload/UppyUpload.vue";
import AttachmentFileTypeIcon from "../AttachmentFileTypeIcon.vue";
import { computed, ref, watchEffect } from "vue";
-import type { AxiosResponse } from "axios";
import { isImage } from "@/utils/image";
import { useFetchAttachmentPolicy } from "../../composables/use-attachment-policy";
import { useFetchAttachmentGroup } from "../../composables/use-attachment-group";
+import type { SuccessResponse } from "@uppy/core";
withDefaults(
defineProps<{
@@ -69,20 +69,8 @@ const selectedGroup = ref("");
const attachments = ref>(new Set());
const selectedAttachments = ref>(new Set());
-const uploadHandler = computed(() => {
- return (file, config) =>
- apiClient.attachment.uploadAttachment(
- {
- file,
- policyName: selectedPolicy.value,
- groupName: selectedGroup.value,
- },
- config
- );
-});
-
-const onUploaded = async (response: AxiosResponse) => {
- const attachment = response.data as Attachment;
+const onUploaded = async (response: SuccessResponse) => {
+ const attachment = response.body as Attachment;
const { data } =
await apiClient.extension.storage.attachment.getstorageHaloRunV1alpha1Attachment(
@@ -145,15 +133,16 @@ watchEffect(() => {
label="分组"
>
-
diff --git a/src/modules/interface/themes/components/ThemeUploadModal.vue b/src/modules/interface/themes/components/ThemeUploadModal.vue
index 38a3d8ff..09851f29 100644
--- a/src/modules/interface/themes/components/ThemeUploadModal.vue
+++ b/src/modules/interface/themes/components/ThemeUploadModal.vue
@@ -1,8 +1,7 @@
-
diff --git a/src/modules/system/plugins/components/PluginUploadModal.vue b/src/modules/system/plugins/components/PluginUploadModal.vue
index a19c75de..63fe9794 100644
--- a/src/modules/system/plugins/components/PluginUploadModal.vue
+++ b/src/modules/system/plugins/components/PluginUploadModal.vue
@@ -1,10 +1,10 @@
-