@uploadista/vue 0.0.20 → 0.1.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.mjs +1 -1
- package/dist/{components-CskPs6sR.css → components-B_L33hsM.css} +33 -33
- package/dist/{components-CskPs6sR.css.map → components-B_L33hsM.css.map} +1 -1
- package/dist/components-MZ9ETx9c.mjs +2 -0
- package/dist/components-MZ9ETx9c.mjs.map +1 -0
- package/dist/composables/index.d.mts +1 -1
- package/dist/composables/index.mjs +1 -1
- package/dist/composables-Dny_9Zrg.mjs +2 -0
- package/dist/composables-Dny_9Zrg.mjs.map +1 -0
- package/dist/{index-CLOy812P.d.mts → index-6Scxoy1b.d.mts} +412 -408
- package/dist/index-6Scxoy1b.d.mts.map +1 -0
- package/dist/{index-CDJUpsAf.d.mts → index-BpCRFLJ5.d.mts} +8 -8
- package/dist/index-BpCRFLJ5.d.mts.map +1 -0
- package/dist/{index-BSlqFF1H.d.mts → index-RY4FPqAk.d.mts} +431 -431
- package/dist/index-RY4FPqAk.d.mts.map +1 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +1 -1
- package/dist/providers/index.d.mts +1 -1
- package/dist/providers/index.mjs +1 -1
- package/dist/{providers-fqmOwF71.mjs → providers-CjhEBaQV.mjs} +2 -2
- package/dist/providers-CjhEBaQV.mjs.map +1 -0
- package/dist/useUploadistaClient-WVuo8jYH.mjs.map +1 -1
- package/dist/utils/index.d.mts +62 -2
- package/dist/utils/index.d.mts.map +1 -0
- package/package.json +11 -9
- package/src/__tests__/setup.ts +154 -0
- package/src/components/FlowUploadList.vue +25 -24
- package/src/components/UploadList.vue +3 -6
- package/src/components/UploadZone.vue +2 -5
- package/src/components/flow/Flow.vue +16 -4
- package/src/components/flow/FlowDropZone.vue +4 -2
- package/src/components/flow/FlowInput.vue +14 -8
- package/src/components/flow/FlowInputDropZone.vue +4 -2
- package/src/components/flow/FlowInputPreview.vue +3 -1
- package/src/components/flow/FlowProgress.vue +1 -1
- package/src/components/flow/FlowStatus.vue +1 -1
- package/src/components/flow/useFlowContext.ts +7 -5
- package/src/components/index.ts +2 -3
- package/src/components/upload/Upload.vue +16 -5
- package/src/components/upload/UploadCancel.vue +2 -4
- package/src/components/upload/UploadClearCompleted.vue +1 -1
- package/src/components/upload/UploadDropZone.vue +7 -7
- package/src/components/upload/UploadError.vue +2 -4
- package/src/components/upload/UploadItem.vue +8 -6
- package/src/components/upload/UploadItems.vue +2 -4
- package/src/components/upload/UploadProgress.vue +2 -4
- package/src/components/upload/UploadReset.vue +2 -4
- package/src/components/upload/UploadRetry.vue +2 -4
- package/src/components/upload/UploadStartAll.vue +6 -6
- package/src/components/upload/UploadStatus.vue +2 -4
- package/src/components/upload/index.ts +21 -25
- package/src/composables/eventUtils.test.ts +267 -0
- package/src/composables/eventUtils.ts +5 -4
- package/src/composables/index.ts +1 -1
- package/src/composables/useDragDrop.test.ts +304 -0
- package/src/composables/useFlow.ts +6 -2
- package/src/composables/useFlowManagerContext.ts +5 -1
- package/src/composables/useUploadEvents.ts +1 -4
- package/src/composables/useUploadistaClient.test.ts +152 -0
- package/src/index.ts +43 -45
- package/src/providers/FlowManagerProvider.vue +5 -2
- package/src/utils/index.test.ts +396 -0
- package/src/utils/is-browser-file.test.ts +45 -0
- package/vitest.config.ts +25 -0
- package/dist/components-DoBB6sqm.mjs +0 -2
- package/dist/components-DoBB6sqm.mjs.map +0 -1
- package/dist/composables-BZ2c_WgI.mjs +0 -2
- package/dist/composables-BZ2c_WgI.mjs.map +0 -1
- package/dist/index-BLNNvTVx.d.mts +0 -62
- package/dist/index-BLNNvTVx.d.mts.map +0 -1
- package/dist/index-BSlqFF1H.d.mts.map +0 -1
- package/dist/index-CDJUpsAf.d.mts.map +0 -1
- package/dist/index-CLOy812P.d.mts.map +0 -1
- package/dist/providers-fqmOwF71.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-RY4FPqAk.d.mts","names":[],"sources":["../src/composables/useFlow.ts","../src/composables/useDragDrop.ts","../src/composables/eventUtils.ts","../src/composables/useFlowEvents.ts","../src/composables/useUploadEvents.ts","../src/composables/useUploadistaEvents.ts","../src/composables/plugin.ts","../src/composables/useMultiFlowUpload.ts","../src/composables/useUpload.ts","../src/composables/useMultiUpload.ts","../src/composables/useUploadistaClient.ts","../src/composables/useUploadMetrics.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { A as
|
|
3
|
-
import { n as _default$9, t as _default$29 } from "./index-
|
|
4
|
-
import {
|
|
1
|
+
import { $ as FlowErrorSlotProps, A as _default$13, B as FlowInputPreviewSlotProps, C as _default$17, D as _default$15, E as UploadProps, F as _default$10, G as FlowInputProps, H as FlowInputDropZoneProps, I as FlowInputUrlFieldProps, J as FLOW_CONTEXT_KEY, K as FlowInputSlotProps, L as _default$7, M as _default$12, N as _default$11, O as _default$28, P as FlowProgressSlotProps, Q as useFlowInputContext, R as FlowInputsSlotProps, S as _default$18, T as UploadContextValue, U as FlowInputDropZoneSlotProps, V as _default$6, W as _default$5, X as FlowInputContextValue, Y as FLOW_INPUT_CONTEXT_KEY, Z as useFlowContext, _ as useUploadItemContext, a as _default$24, at as FlowContextValue, b as UploadDropZoneProps, c as UploadItemsSlotProps, ct as _default$14, d as UploadItemSlotProps, et as _default$3, f as _default$20, g as useUploadContext, h as UploadItemContextValue, i as _default$25, it as _default$1, j as FlowStatusSlotProps, k as _default$22, l as _default$21, m as UPLOAD_ITEM_CONTEXT_KEY, n as _default$27, nt as FlowDropZoneSlotProps, o as UploadProgressSlotProps, ot as FlowProps, p as UPLOAD_CONTEXT_KEY, q as _default$4, r as _default$26, rt as _default$2, s as _default$23, st as _default, t as UploadStatusSlotProps, tt as FlowDropZoneProps, u as UploadItemProps, v as UploadErrorSlotProps, w as _default$16, x as UploadDropZoneSlotProps, y as _default$19, z as _default$8 } from "./index-6Scxoy1b.mjs";
|
|
2
|
+
import { A as UseFlowEventsOptions, B as InputExecutionState, C as UploadFileEventData, D as UploadValidationWarningEventData, E as UploadValidationSuccessEventData, F as DragDropState, H as useFlow, I as useDragDrop, L as FlowInputMetadata, M as isFlowEvent, N as isUploadEvent, O as UseUploadEventsOptions, P as DragDropOptions, R as FlowUploadState, S as UploadFailedEventData, T as UploadValidationFailedEventData, V as UseFlowReturn, _ as useMultiFlowUpload, a as useUploadistaClient, b as createUploadistaPlugin, c as UploadItem, d as PerformanceInsights, f as UploadInput, g as useUpload, h as UploadStatus, i as UseUploadistaClientReturn, j as useFlowEvents, k as useUploadEvents, l as useMultiUpload, m as UploadState, n as UseUploadMetricsOptions, o as MultiUploadOptions, p as UploadSessionMetrics, r as useUploadMetrics, s as MultiUploadState, t as FileUploadMetrics, u as ChunkMetrics, v as UPLOADISTA_CLIENT_KEY, w as UploadProgressEventData, x as useUploadistaEvents, y as UploadistaPluginOptions, z as FlowUploadStatus } from "./index-RY4FPqAk.mjs";
|
|
3
|
+
import { n as _default$9, t as _default$29 } from "./index-BpCRFLJ5.mjs";
|
|
4
|
+
import { calculateProgress, createFilePreview, formatDuration, formatFileSize, formatSpeed, generateUploadId, getFileExtension, isAudioFile, isBrowserFile, isDocumentFile, isImageFile, isVideoFile, revokeFilePreview, validateFileType } from "./utils/index.mjs";
|
|
5
5
|
export { type ChunkMetrics, type DragDropOptions, type DragDropState, FLOW_CONTEXT_KEY, FLOW_INPUT_CONTEXT_KEY, type FileUploadMetrics, _default as Flow, _default$1 as FlowCancel, FlowContextValue, _default$2 as FlowDropZone, FlowDropZoneProps, FlowDropZoneSlotProps, _default$3 as FlowError, FlowErrorSlotProps, _default$4 as FlowInput, FlowInputContextValue, _default$5 as FlowInputDropZone, FlowInputDropZoneProps, FlowInputDropZoneSlotProps, type FlowInputMetadata, _default$6 as FlowInputPreview, FlowInputPreviewSlotProps, FlowInputProps, FlowInputSlotProps, _default$7 as FlowInputUrlField, FlowInputUrlFieldProps, _default$8 as FlowInputs, FlowInputsSlotProps, _default$9 as FlowManagerProvider, _default$10 as FlowProgress, FlowProgressSlotProps, FlowProps, _default$11 as FlowReset, _default$12 as FlowStatus, FlowStatusSlotProps, _default$13 as FlowSubmit, _default$14 as FlowUploadList, type FlowUploadState, type FlowUploadStatus, type InputExecutionState, type UploadItem as MultiUploadItem, type MultiUploadOptions, type MultiUploadState, type PerformanceInsights, UPLOADISTA_CLIENT_KEY, UPLOAD_CONTEXT_KEY, UPLOAD_ITEM_CONTEXT_KEY, _default$15 as Upload, _default$16 as UploadCancel, _default$17 as UploadClearCompleted, UploadContextValue, _default$18 as UploadDropZone, UploadDropZoneProps, UploadDropZoneSlotProps, _default$19 as UploadError, UploadErrorSlotProps, type UploadFailedEventData, type UploadFileEventData, type UploadInput, _default$20 as UploadItem, UploadItemContextValue, UploadItemProps, UploadItemSlotProps, _default$21 as UploadItems, UploadItemsSlotProps, _default$22 as UploadList, _default$23 as UploadProgress, type UploadProgressEventData, UploadProgressSlotProps, UploadProps, _default$24 as UploadReset, _default$25 as UploadRetry, type UploadSessionMetrics, _default$26 as UploadStartAll, type UploadState, _default$27 as UploadStatus, UploadStatusSlotProps, type UploadStatus as UploadStatusType, type UploadValidationFailedEventData, type UploadValidationSuccessEventData, type UploadValidationWarningEventData, _default$28 as UploadZone, type UploadistaPluginOptions, _default$29 as UploadistaProvider, type UseFlowEventsOptions, type UseFlowReturn, type UseUploadEventsOptions, type UseUploadMetricsOptions, type UseUploadistaClientReturn, calculateProgress, createFilePreview, createUploadistaPlugin, formatDuration, formatFileSize, formatSpeed, generateUploadId, getFileExtension, isAudioFile, isBrowserFile, isDocumentFile, isFlowEvent, isImageFile, isUploadEvent, isVideoFile, revokeFilePreview, useDragDrop, useFlow, useFlowContext, useFlowEvents, useFlowInputContext, useMultiFlowUpload, useMultiUpload, useUpload, useUploadContext, useUploadEvents, useUploadItemContext, useUploadMetrics, useUploadistaClient, useUploadistaEvents, validateFileType };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,d as n,f as r,i,l as a,m as o,n as s,o as c,p as l,r as u,s as d,t as f,u as p}from"./utils-B_r6xppE.mjs";import{A as m,C as h,D as g,E as _,F as v,I as y,M as b,N as x,O as S,P as C,S as w,T,_ as E,a as D,b as O,c as k,d as A,f as j,g as M,h as N,i as P,j as F,k as I,l as L,m as R,n as z,o as B,p as V,r as H,s as U,t as W,u as G,v as K,w as q,x as J,y as Y}from"./components-
|
|
1
|
+
import{a as e,c as t,d as n,f as r,i,l as a,m as o,n as s,o as c,p as l,r as u,s as d,t as f,u as p}from"./utils-B_r6xppE.mjs";import{A as m,C as h,D as g,E as _,F as v,I as y,M as b,N as x,O as S,P as C,S as w,T,_ as E,a as D,b as O,c as k,d as A,f as j,g as M,h as N,i as P,j as F,k as I,l as L,m as R,n as z,o as B,p as V,r as H,s as U,t as W,u as G,v as K,w as q,x as J,y as Y}from"./components-MZ9ETx9c.mjs";import{a as X,c as Z,d as Q,i as $,l as ee,n as te,o as ne,r as re,s as ie,t as ae,u as oe}from"./composables-Dny_9Zrg.mjs";import{i as se,n as ce,t as le}from"./useUploadistaClient-WVuo8jYH.mjs";import{n as ue,t as de}from"./providers-CjhEBaQV.mjs";export{F as FLOW_CONTEXT_KEY,b as FLOW_INPUT_CONTEXT_KEY,v as Flow,m as FlowCancel,I as FlowDropZone,S as FlowError,g as FlowInput,_ as FlowInputDropZone,T as FlowInputPreview,h as FlowInputUrlField,q as FlowInputs,ue as FlowManagerProvider,w as FlowProgress,J as FlowReset,O as FlowStatus,Y as FlowSubmit,y as FlowUploadList,ce as UPLOADISTA_CLIENT_KEY,V as UPLOAD_CONTEXT_KEY,R as UPLOAD_ITEM_CONTEXT_KEY,j as Upload,A as UploadCancel,G as UploadClearCompleted,L as UploadDropZone,k as UploadError,U as UploadItem,B as UploadItems,K as UploadList,D as UploadProgress,P as UploadReset,H as UploadRetry,z as UploadStartAll,W as UploadStatus,E as UploadZone,de as UploadistaProvider,f as calculateProgress,s as createFilePreview,se as createUploadistaPlugin,u as formatDuration,i as formatFileSize,e as formatSpeed,c as generateUploadId,d as getFileExtension,t as isAudioFile,o as isBrowserFile,a as isDocumentFile,Z as isFlowEvent,p as isImageFile,ee as isUploadEvent,n as isVideoFile,r as revokeFilePreview,oe as useDragDrop,Q as useFlow,x as useFlowContext,ie as useFlowEvents,C as useFlowInputContext,$ as useMultiFlowUpload,re as useMultiUpload,te as useUpload,N as useUploadContext,ne as useUploadEvents,M as useUploadItemContext,ae as useUploadMetrics,le as useUploadistaClient,X as useUploadistaEvents,l as validateFileType};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as _default, t as _default$1 } from "../index-
|
|
1
|
+
import { n as _default, t as _default$1 } from "../index-BpCRFLJ5.mjs";
|
|
2
2
|
export { _default as FlowManagerProvider, _default$1 as UploadistaProvider };
|
package/dist/providers/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../useUploadistaClient-WVuo8jYH.mjs";import{n as e,t}from"../providers-
|
|
1
|
+
import"../useUploadistaClient-WVuo8jYH.mjs";import{n as e,t}from"../providers-CjhEBaQV.mjs";export{e as FlowManagerProvider,t as UploadistaProvider};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./useUploadistaClient-WVuo8jYH.mjs";import{createBlock as r,defineComponent as i,onBeforeUnmount as a,onMounted as o,openBlock as s,provide as c,ref as l,renderSlot as u,withCtx as d}from"vue";import{
|
|
2
|
-
//# sourceMappingURL=providers-
|
|
1
|
+
import{n as e,r as t,t as n}from"./useUploadistaClient-WVuo8jYH.mjs";import{createBlock as r,defineComponent as i,onBeforeUnmount as a,onMounted as o,openBlock as s,provide as c,ref as l,renderSlot as u,withCtx as d}from"vue";import{createUploadistaClient as f}from"@uploadista/client-browser";import{EventType as p}from"@uploadista/core/flow";import{UploadEventType as m}from"@uploadista/core/types";import{FlowManager as h}from"@uploadista/client-core";var g=i({__name:`FlowManagerProvider`,setup(e){function t(e){let t=e;return t.eventType===p.FlowStart||t.eventType===p.FlowEnd||t.eventType===p.FlowError||t.eventType===p.NodeStart||t.eventType===p.NodeEnd||t.eventType===p.NodePause||t.eventType===p.NodeResume||t.eventType===p.NodeError}let{client:r,subscribeToEvents:i}=n(),s=new Map,l=null;return o(()=>{l=i(e=>{if(t(e)){for(let t of s.values())t.manager.handleFlowEvent(e);return}if(`type`in e&&e.type===m.UPLOAD_PROGRESS&&`data`in e){let t=e;for(let e of s.values())e.manager.handleUploadProgress(t.data.id,t.data.progress,t.data.total)}})}),a(()=>{l?.();for(let e of s.values())e.manager.cleanup();s.clear()}),c(`flowManagerContext`,{getManager:(e,t,n)=>{let i=s.get(e);if(i)return i.refCount++,i.manager;let a=new h(r.uploadWithFlow,t,n,r.multiInputFlowUpload);return s.set(e,{manager:a,refCount:1,flowId:e}),a},releaseManager:e=>{let t=s.get(e);t&&(t.refCount--,t.refCount<=0&&(t.manager.cleanup(),s.delete(e)))}}),(e,t)=>u(e.$slots,`default`)}}),_=i({__name:`UploadistaProvider`,props:{serverUrl:{},storageId:{default:`local`},uploadistaBasePath:{default:`uploadista`},chunkSize:{default:1024*1024},parallelUploads:{default:1},storeFingerprintForResuming:{type:Boolean,default:!0}},setup(n){let i=n,o=l(new Set),p=f({baseUrl:i.serverUrl,storageId:i.storageId,uploadistaBasePath:i.uploadistaBasePath,chunkSize:i.chunkSize,parallelUploads:i.parallelUploads,storeFingerprintForResuming:i.storeFingerprintForResuming,onEvent:e=>{o.value.forEach(t=>{try{t(e)}catch(e){console.error(`Error in event subscriber:`,e)}})}});return c(e,p),c(t,o),a(()=>{p.closeAllWebSockets()}),(e,t)=>(s(),r(g,null,{default:d(()=>[u(e.$slots,`default`)]),_:3}))}});export{g as n,_ as t};
|
|
2
|
+
//# sourceMappingURL=providers-CjhEBaQV.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers-CjhEBaQV.mjs","names":["unsubscribe: (() => void) | null","flowManagerContext: FlowManagerContextValue"],"sources":["../src/providers/FlowManagerProvider.vue","../src/providers/UploadistaProvider.vue"],"sourcesContent":["<template>\n <slot />\n</template>\n\n<script setup lang=\"ts\">\nimport type {\n BrowserUploadInput,\n UploadistaEvent,\n} from \"@uploadista/client-browser\";\nimport {\n FlowManager,\n type FlowManagerCallbacks,\n type FlowUploadOptions,\n} from \"@uploadista/client-core\";\nimport { EventType, type FlowEvent } from \"@uploadista/core/flow\";\nimport { UploadEventType } from \"@uploadista/core/types\";\nimport { onBeforeUnmount, onMounted, provide } from \"vue\";\nimport { useUploadistaClient } from \"../composables/useUploadistaClient\";\n\n/**\n * Type guard to check if an event is a flow event\n */\nfunction isFlowEvent(event: UploadistaEvent): event is FlowEvent {\n const flowEvent = event as FlowEvent;\n return (\n flowEvent.eventType === EventType.FlowStart ||\n flowEvent.eventType === EventType.FlowEnd ||\n flowEvent.eventType === EventType.FlowError ||\n flowEvent.eventType === EventType.NodeStart ||\n flowEvent.eventType === EventType.NodeEnd ||\n flowEvent.eventType === EventType.NodePause ||\n flowEvent.eventType === EventType.NodeResume ||\n flowEvent.eventType === EventType.NodeError\n );\n}\n\n/**\n * Internal manager registry entry with ref counting\n */\ninterface ManagerEntry {\n manager: FlowManager<unknown>;\n refCount: number;\n flowId: string;\n}\n\n/**\n * Context value providing access to flow managers\n */\ninterface FlowManagerContextValue {\n getManager: (\n flowId: string,\n callbacks: FlowManagerCallbacks,\n options: FlowUploadOptions,\n ) => FlowManager<unknown>;\n releaseManager: (flowId: string) => void;\n}\n\nconst { client, subscribeToEvents } = useUploadistaClient();\nconst managers = new Map<string, ManagerEntry>();\nlet unsubscribe: (() => void) | null = null;\n\n// Subscribe to events and route to managers\nonMounted(() => {\n unsubscribe = subscribeToEvents((event: UploadistaEvent) => {\n // Route flow events to all managers (they filter by jobId internally)\n if (isFlowEvent(event)) {\n for (const entry of managers.values()) {\n entry.manager.handleFlowEvent(event);\n }\n return;\n }\n\n // Route upload progress events to all managers\n if (\n \"type\" in event &&\n event.type === UploadEventType.UPLOAD_PROGRESS &&\n \"data\" in event\n ) {\n const uploadEvent = event;\n\n for (const entry of managers.values()) {\n entry.manager.handleUploadProgress(\n uploadEvent.data.id,\n uploadEvent.data.progress,\n uploadEvent.data.total,\n );\n }\n }\n });\n});\n\n// Cleanup on unmount\nonBeforeUnmount(() => {\n unsubscribe?.();\n for (const entry of managers.values()) {\n entry.manager.cleanup();\n }\n managers.clear();\n});\n\nconst getManager = (\n flowId: string,\n callbacks: FlowManagerCallbacks,\n options: FlowUploadOptions,\n): FlowManager<unknown> => {\n const existing = managers.get(flowId);\n\n if (existing) {\n // Increment ref count for existing manager\n existing.refCount++;\n return existing.manager;\n }\n\n // Create new manager\n const manager = new FlowManager<BrowserUploadInput>(\n client.uploadWithFlow,\n callbacks,\n options,\n client.multiInputFlowUpload,\n );\n\n managers.set(flowId, {\n manager,\n refCount: 1,\n flowId,\n });\n\n return manager;\n};\n\nconst releaseManager = (flowId: string) => {\n const existing = managers.get(flowId);\n if (!existing) return;\n\n existing.refCount--;\n\n // Clean up when no more refs\n if (existing.refCount <= 0) {\n existing.manager.cleanup();\n managers.delete(flowId);\n }\n};\n\n// Provide the context\nconst flowManagerContext: FlowManagerContextValue = {\n getManager,\n releaseManager,\n};\n\nprovide(\"flowManagerContext\", flowManagerContext);\n</script>\n","<script setup lang=\"ts\">\nimport {\n createUploadistaClient,\n type UploadistaEvent,\n} from \"@uploadista/client-browser\";\nimport { onBeforeUnmount, provide, ref } from \"vue\";\nimport {\n UPLOADISTA_CLIENT_KEY,\n UPLOADISTA_EVENT_SUBSCRIBERS_KEY,\n} from \"../composables/plugin\";\nimport FlowManagerProvider from \"./FlowManagerProvider.vue\";\n\nconst props = withDefaults(\n defineProps<{\n serverUrl: string;\n storageId?: string;\n uploadistaBasePath?: string;\n chunkSize?: number;\n parallelUploads?: number;\n storeFingerprintForResuming?: boolean;\n }>(),\n {\n storageId: \"local\",\n uploadistaBasePath: \"uploadista\",\n chunkSize: 1024 * 1024,\n parallelUploads: 1,\n storeFingerprintForResuming: true,\n },\n);\n\n// Create a shared set of event subscribers\nconst eventSubscribers = ref(new Set<(event: UploadistaEvent) => void>());\n\nconst client = createUploadistaClient({\n baseUrl: props.serverUrl,\n storageId: props.storageId,\n uploadistaBasePath: props.uploadistaBasePath,\n chunkSize: props.chunkSize,\n parallelUploads: props.parallelUploads,\n storeFingerprintForResuming: props.storeFingerprintForResuming,\n onEvent: (event) => {\n // Dispatch to all subscribers registered via subscribeToEvents\n eventSubscribers.value.forEach((subscriber) => {\n try {\n subscriber(event);\n } catch (err) {\n console.error(\"Error in event subscriber:\", err);\n }\n });\n },\n});\n\nprovide(UPLOADISTA_CLIENT_KEY, client);\nprovide(UPLOADISTA_EVENT_SUBSCRIBERS_KEY, eventSubscribers);\n\nonBeforeUnmount(() => {\n client.closeAllWebSockets();\n});\n</script>\n\n<template>\n <FlowManagerProvider>\n <slot />\n </FlowManagerProvider>\n</template>\n"],"mappings":"sfAsBA,SAAS,EAAY,EAA4C,CAC/D,IAAM,EAAY,EAClB,OACE,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,SAClC,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,SAClC,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,YAClC,EAAU,YAAc,EAAU,UAyBtC,GAAM,CAAE,SAAQ,qBAAsB,GAAqB,CACrD,EAAW,IAAI,IACjBA,EAAmC,YAGvC,MAAgB,CACd,EAAc,EAAmB,GAA2B,CAE1D,GAAI,EAAY,EAAM,CAAE,CACtB,IAAK,IAAM,KAAS,EAAS,QAAQ,CACnC,EAAM,QAAQ,gBAAgB,EAAM,CAEtC,OAIF,GACE,SAAU,GACV,EAAM,OAAS,EAAgB,iBAC/B,SAAU,EACV,CACA,IAAM,EAAc,EAEpB,IAAK,IAAM,KAAS,EAAS,QAAQ,CACnC,EAAM,QAAQ,qBACZ,EAAY,KAAK,GACjB,EAAY,KAAK,SACjB,EAAY,KAAK,MAClB,GAGL,EACF,CAGF,MAAsB,CACpB,KAAe,CACf,IAAK,IAAM,KAAS,EAAS,QAAQ,CACnC,EAAM,QAAQ,SAAS,CAEzB,EAAS,OAAO,EAChB,CAmDF,EAAQ,qBAL4C,CAClD,YA5CA,EACA,EACA,IACyB,CACzB,IAAM,EAAW,EAAS,IAAI,EAAO,CAErC,GAAI,EAGF,MADA,GAAS,WACF,EAAS,QAIlB,IAAM,EAAU,IAAI,EAClB,EAAO,eACP,EACA,EACA,EAAO,qBACR,CAQD,OANA,EAAS,IAAI,EAAQ,CACnB,UACA,SAAU,EACV,SACD,CAAC,CAEK,GAmBP,eAhBsB,GAAmB,CACzC,IAAM,EAAW,EAAS,IAAI,EAAO,CAChC,IAEL,EAAS,WAGL,EAAS,UAAY,IACvB,EAAS,QAAQ,SAAS,CAC1B,EAAS,OAAO,EAAO,IAQ1B,CAEgD,QApJ/C,EAAQ,EAAA,OAAA,UAAA,yPCWV,IAAM,EAAQ,EAmBR,EAAmB,EAAI,IAAI,IAAwC,CAEnE,EAAS,EAAuB,CACpC,QAAS,EAAM,UACf,UAAW,EAAM,UACjB,mBAAoB,EAAM,mBAC1B,UAAW,EAAM,UACjB,gBAAiB,EAAM,gBACvB,4BAA6B,EAAM,4BACnC,QAAU,GAAU,CAElB,EAAiB,MAAM,QAAS,GAAe,CAC7C,GAAI,CACF,EAAW,EAAM,OACV,EAAK,CACZ,QAAQ,MAAM,6BAA8B,EAAI,GAElD,EAEL,CAAC,QAEF,EAAQ,EAAuB,EAAO,CACtC,EAAQ,EAAkC,EAAiB,CAE3D,MAAsB,CACpB,EAAO,oBAAoB,EAC3B,aAIA,EAEsB,EAAA,KAAA,eADZ,CAAR,EAAQ,EAAA,OAAA,UAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUploadistaClient-WVuo8jYH.mjs","names":[
|
|
1
|
+
{"version":3,"file":"useUploadistaClient-WVuo8jYH.mjs","names":[],"sources":["../src/composables/plugin.ts","../src/composables/useUploadistaClient.ts"],"sourcesContent":["import {\n createUploadistaClient,\n type UploadistaClientOptions,\n type UploadistaEvent,\n} from \"@uploadista/client-browser\";\nimport type { App, InjectionKey, Ref } from \"vue\";\nimport { ref } from \"vue\";\n\nexport interface UploadistaPluginOptions extends UploadistaClientOptions {\n /**\n * Global event handler for all upload and flow events from this client\n */\n onEvent?: UploadistaClientOptions[\"onEvent\"];\n}\n\nexport const UPLOADISTA_CLIENT_KEY: InjectionKey<\n ReturnType<typeof createUploadistaClient>\n> = Symbol(\"uploadista-client\");\n\nexport const UPLOADISTA_EVENT_SUBSCRIBERS_KEY: InjectionKey<\n Ref<Set<(event: UploadistaEvent) => void>>\n> = Symbol(\"uploadista-event-subscribers\");\n\n/**\n * Vue plugin for providing Uploadista client instance globally.\n * Uses Vue's provide/inject pattern to make the client available\n * throughout the component tree.\n *\n * @param options - Uploadista client configuration options\n * @returns Vue plugin object\n *\n * @example\n * ```typescript\n * import { createApp } from 'vue';\n * import { createUploadistaPlugin } from '@uploadista/vue';\n * import App from './App.vue';\n *\n * const app = createApp(App);\n *\n * app.use(createUploadistaPlugin({\n * baseUrl: 'https://api.example.com',\n * storageId: 'my-storage',\n * chunkSize: 1024 * 1024, // 1MB\n * storeFingerprintForResuming: true,\n * onEvent: (event) => {\n * console.log('Upload event:', event);\n * }\n * }));\n *\n * app.mount('#app');\n * ```\n */\nexport function createUploadistaPlugin(options: UploadistaPluginOptions) {\n return {\n install(app: App) {\n // Create a shared set of event subscribers\n const eventSubscribers = ref(new Set<(event: UploadistaEvent) => void>());\n\n const client = createUploadistaClient({\n ...options,\n onEvent: (event) => {\n // Dispatch to all subscribers registered via subscribeToEvents\n eventSubscribers.value.forEach((subscriber) => {\n subscriber(event);\n });\n\n // Call the original onEvent handler if provided\n options.onEvent?.(event);\n },\n });\n\n app.provide(UPLOADISTA_CLIENT_KEY, client);\n app.provide(UPLOADISTA_EVENT_SUBSCRIBERS_KEY, eventSubscribers);\n },\n };\n}\n","import type { UploadistaEvent } from \"@uploadista/client-browser\";\nimport { inject, type Ref } from \"vue\";\nimport {\n UPLOADISTA_CLIENT_KEY,\n UPLOADISTA_EVENT_SUBSCRIBERS_KEY,\n} from \"./plugin\";\n\n/**\n * Access the Uploadista client instance from the plugin or provider.\n * Must be used within a component tree that has the Uploadista plugin or provider installed.\n *\n * @returns Uploadista client instance with event subscription\n * @throws Error if used outside of Uploadista plugin/provider context\n *\n * @example\n * ```vue\n * <script setup lang=\"ts\">\n * import { useUploadistaClient } from '@uploadista/vue';\n *\n * const { client, subscribeToEvents } = useUploadistaClient();\n *\n * // Subscribe to all events\n * const unsubscribe = subscribeToEvents((event) => {\n * console.log('Upload event:', event);\n * });\n *\n * // Clean up on unmount\n * onUnmounted(() => {\n * unsubscribe();\n * });\n * </script>\n * ```\n */\nexport function useUploadistaClient() {\n const client = inject(UPLOADISTA_CLIENT_KEY);\n\n if (!client) {\n throw new Error(\n \"useUploadistaClient must be used within a component tree that has the Uploadista plugin or provider installed. \" +\n \"Make sure to either use app.use(createUploadistaPlugin({ ... })) in your main app file, \" +\n \"or wrap your component tree with <UploadistaProvider>.\",\n );\n }\n\n // Try to get the shared event subscribers from the provider\n const eventSubscribersRef = inject<\n Ref<Set<(event: UploadistaEvent) => void>> | undefined\n >(UPLOADISTA_EVENT_SUBSCRIBERS_KEY);\n\n const subscribeToEvents = (handler: (event: UploadistaEvent) => void) => {\n if (!eventSubscribersRef) {\n console.warn(\n \"subscribeToEvents called but no event subscribers provided. Events will not be dispatched. \" +\n \"Make sure to use UploadistaProvider or createUploadistaPlugin with proper configuration.\",\n );\n return () => {\n // No-op unsubscribe if subscribers aren't available\n };\n }\n\n eventSubscribersRef.value.add(handler);\n return () => {\n eventSubscribersRef.value.delete(handler);\n };\n };\n\n return {\n client,\n subscribeToEvents,\n };\n}\n\nexport type UseUploadistaClientReturn = ReturnType<typeof useUploadistaClient>;\n"],"mappings":"0GAeA,MAAa,EAET,OAAO,oBAAoB,CAElB,EAET,OAAO,+BAA+B,CA+B1C,SAAgB,EAAuB,EAAkC,CACvE,MAAO,CACL,QAAQ,EAAU,CAEhB,IAAM,EAAmB,EAAI,IAAI,IAAwC,CAEnE,EAAS,EAAuB,CACpC,GAAG,EACH,QAAU,GAAU,CAElB,EAAiB,MAAM,QAAS,GAAe,CAC7C,EAAW,EAAM,EACjB,CAGF,EAAQ,UAAU,EAAM,EAE3B,CAAC,CAEF,EAAI,QAAQ,EAAuB,EAAO,CAC1C,EAAI,QAAQ,EAAkC,EAAiB,EAElE,CCzCH,SAAgB,GAAsB,CACpC,IAAM,EAAS,EAAO,EAAsB,CAE5C,GAAI,CAAC,EACH,MAAU,MACR,gQAGD,CAIH,IAAM,EAAsB,EAE1B,EAAiC,CAmBnC,MAAO,CACL,SACA,kBAnByB,GACpB,GAUL,EAAoB,MAAM,IAAI,EAAQ,KACzB,CACX,EAAoB,MAAM,OAAO,EAAQ,IAXzC,QAAQ,KACN,sLAED,KACY,IAchB"}
|
package/dist/utils/index.d.mts
CHANGED
|
@@ -1,2 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/utils/is-browser-file.d.ts
|
|
2
|
+
declare const isBrowserFile: (value: unknown) => value is File;
|
|
3
|
+
//#endregion
|
|
4
|
+
//#region src/utils/index.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Utility functions for the Vue upload client
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Format file size in human-readable format
|
|
10
|
+
*/
|
|
11
|
+
declare function formatFileSize(bytes: number): string;
|
|
12
|
+
/**
|
|
13
|
+
* Format upload speed in human-readable format
|
|
14
|
+
*/
|
|
15
|
+
declare function formatSpeed(bytesPerSecond: number): string;
|
|
16
|
+
/**
|
|
17
|
+
* Format duration in human-readable format
|
|
18
|
+
*/
|
|
19
|
+
declare function formatDuration(milliseconds: number): string;
|
|
20
|
+
/**
|
|
21
|
+
* Validate file type against accepted types
|
|
22
|
+
*/
|
|
23
|
+
declare function validateFileType(file: File, accept: string[]): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Generate a unique ID for upload items
|
|
26
|
+
*/
|
|
27
|
+
declare function generateUploadId(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get file extension from filename
|
|
30
|
+
*/
|
|
31
|
+
declare function getFileExtension(filename: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a file is an image
|
|
34
|
+
*/
|
|
35
|
+
declare function isImageFile(file: File): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Check if a file is a video
|
|
38
|
+
*/
|
|
39
|
+
declare function isVideoFile(file: File): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a file is an audio file
|
|
42
|
+
*/
|
|
43
|
+
declare function isAudioFile(file: File): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Check if a file is a document
|
|
46
|
+
*/
|
|
47
|
+
declare function isDocumentFile(file: File): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Create a preview URL for a file (if supported)
|
|
50
|
+
*/
|
|
51
|
+
declare function createFilePreview(file: File): string | null;
|
|
52
|
+
/**
|
|
53
|
+
* Clean up a preview URL created with createFilePreview
|
|
54
|
+
*/
|
|
55
|
+
declare function revokeFilePreview(previewUrl: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Calculate progress percentage
|
|
58
|
+
*/
|
|
59
|
+
declare function calculateProgress(current: number, total: number): number;
|
|
60
|
+
//#endregion
|
|
61
|
+
export { calculateProgress, createFilePreview, formatDuration, formatFileSize, formatSpeed, generateUploadId, getFileExtension, isAudioFile, isBrowserFile, isDocumentFile, isImageFile, isVideoFile, revokeFilePreview, validateFileType };
|
|
62
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/utils/is-browser-file.ts","../../src/utils/index.ts"],"sourcesContent":[],"mappings":";cAAa,4CAA2C;;;;AAAxD;;;;ACOA;AAWgB,iBAXA,cAAA,CAWW,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAW3B;AAuBA;AAsBA;AAOgB,iBA/DA,WAAA,CA+DgB,cAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAQhC;AAOA;AAOA;AAOgB,iBAjFA,cAAA,CAiFyB,YAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAoBzC;AAUA;AAOA;iBA/FgB,gBAAA,OAAuB;;;;iBAsBvB,gBAAA,CAAA;;;;iBAOA,gBAAA;;;;iBAQA,WAAA,OAAkB;;;;iBAOlB,WAAA,OAAkB;;;;iBAOlB,WAAA,OAAkB;;;;iBAOlB,cAAA,OAAqB;;;;iBAoBrB,iBAAA,OAAwB;;;;iBAUxB,iBAAA;;;;iBAOA,iBAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uploadista/vue",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.1.0-beta.5",
|
|
5
5
|
"description": "Vue client for Uploadista",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Uploadista",
|
|
@@ -31,25 +31,27 @@
|
|
|
31
31
|
"vue": "^3.3.0"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@uploadista/client-core": "0.0.
|
|
35
|
-
"@uploadista/
|
|
36
|
-
"@uploadista/
|
|
34
|
+
"@uploadista/client-core": "0.1.0-beta.5",
|
|
35
|
+
"@uploadista/client-browser": "0.1.0-beta.5",
|
|
36
|
+
"@uploadista/core": "0.1.0-beta.5"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
+
"@vitejs/plugin-vue": "^6.0.0",
|
|
39
40
|
"@vue/test-utils": "^2.4.6",
|
|
40
|
-
"
|
|
41
|
+
"happy-dom": "^20.0.0",
|
|
42
|
+
"tsdown": "0.19.0",
|
|
41
43
|
"unplugin-vue": "^7.0.2",
|
|
42
|
-
"vitest": "4.0.
|
|
44
|
+
"vitest": "4.0.17",
|
|
43
45
|
"vue": "^3.5.0",
|
|
44
|
-
"vue-tsc": "3.
|
|
45
|
-
"@uploadista/typescript-config": "0.0.
|
|
46
|
+
"vue-tsc": "3.2.2",
|
|
47
|
+
"@uploadista/typescript-config": "0.1.0-beta.5"
|
|
46
48
|
},
|
|
47
49
|
"scripts": {
|
|
48
50
|
"build": "vue-tsc --noEmit && tsdown",
|
|
49
51
|
"format": "biome format --write ./src",
|
|
50
52
|
"lint": "biome lint --write ./src",
|
|
51
53
|
"check": "biome check --write ./src",
|
|
52
|
-
"test": "vitest",
|
|
54
|
+
"test": "vitest run",
|
|
53
55
|
"test:run": "vitest run",
|
|
54
56
|
"test:watch": "vitest --watch"
|
|
55
57
|
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vitest setup file for Vue client tests.
|
|
3
|
+
*
|
|
4
|
+
* Sets up browser-like environment with mocks for Web APIs
|
|
5
|
+
* and Vue-specific test utilities.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { config } from "@vue/test-utils";
|
|
9
|
+
import { afterEach, vi } from "vitest";
|
|
10
|
+
|
|
11
|
+
// Mock crypto.subtle for tests that need it
|
|
12
|
+
const mockSubtle = {
|
|
13
|
+
digest: vi
|
|
14
|
+
.fn()
|
|
15
|
+
.mockImplementation(async (_algorithm: string, data: ArrayBuffer) => {
|
|
16
|
+
// Return a mock hash based on data length for testing
|
|
17
|
+
const mockHash = new Uint8Array(32);
|
|
18
|
+
const view = new Uint8Array(data);
|
|
19
|
+
for (let i = 0; i < 32; i++) {
|
|
20
|
+
mockHash[i] = (view[i % view.length] || 0) ^ (i * 7);
|
|
21
|
+
}
|
|
22
|
+
return mockHash.buffer;
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// Mock crypto.randomUUID
|
|
27
|
+
const mockRandomUUID = vi.fn(() => "550e8400-e29b-41d4-a716-446655440000");
|
|
28
|
+
|
|
29
|
+
// Setup global crypto mock if not available
|
|
30
|
+
if (typeof globalThis.crypto === "undefined") {
|
|
31
|
+
Object.defineProperty(globalThis, "crypto", {
|
|
32
|
+
value: {
|
|
33
|
+
subtle: mockSubtle,
|
|
34
|
+
randomUUID: mockRandomUUID,
|
|
35
|
+
getRandomValues: (arr: Uint8Array) => {
|
|
36
|
+
for (let i = 0; i < arr.length; i++) {
|
|
37
|
+
arr[i] = Math.floor(Math.random() * 256);
|
|
38
|
+
}
|
|
39
|
+
return arr;
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
writable: true,
|
|
43
|
+
});
|
|
44
|
+
} else {
|
|
45
|
+
// Patch existing crypto object
|
|
46
|
+
if (!globalThis.crypto.subtle) {
|
|
47
|
+
Object.defineProperty(globalThis.crypto, "subtle", {
|
|
48
|
+
value: mockSubtle,
|
|
49
|
+
writable: true,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (!globalThis.crypto.randomUUID) {
|
|
53
|
+
Object.defineProperty(globalThis.crypto, "randomUUID", {
|
|
54
|
+
value: mockRandomUUID,
|
|
55
|
+
writable: true,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Spy on URL methods - these are provided by happy-dom but we want to track calls
|
|
61
|
+
export const mockCreateObjectURL = vi
|
|
62
|
+
.spyOn(URL, "createObjectURL")
|
|
63
|
+
.mockReturnValue("blob:mock-url");
|
|
64
|
+
export const mockRevokeObjectURL = vi
|
|
65
|
+
.spyOn(URL, "revokeObjectURL")
|
|
66
|
+
.mockReturnValue(undefined);
|
|
67
|
+
|
|
68
|
+
// Configure Vue Test Utils global stubs/plugins if needed
|
|
69
|
+
config.global.stubs = {};
|
|
70
|
+
|
|
71
|
+
// Clean up mocks after each test
|
|
72
|
+
afterEach(() => {
|
|
73
|
+
vi.clearAllMocks();
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// Helper to create a mock File
|
|
77
|
+
export function createMockFile(
|
|
78
|
+
name: string,
|
|
79
|
+
size: number,
|
|
80
|
+
type: string,
|
|
81
|
+
): File {
|
|
82
|
+
const buffer = new ArrayBuffer(size);
|
|
83
|
+
const blob = new Blob([buffer], { type });
|
|
84
|
+
return new File([blob], name, { type });
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Helper to create mock DragEvent
|
|
88
|
+
export function createMockDragEvent(
|
|
89
|
+
type: string,
|
|
90
|
+
files: File[] = [],
|
|
91
|
+
): DragEvent {
|
|
92
|
+
const dataTransfer = {
|
|
93
|
+
items: files.map((file) => ({
|
|
94
|
+
kind: "file",
|
|
95
|
+
type: file.type,
|
|
96
|
+
getAsFile: () => file,
|
|
97
|
+
})),
|
|
98
|
+
files: {
|
|
99
|
+
length: files.length,
|
|
100
|
+
item: (index: number) => files[index] || null,
|
|
101
|
+
[Symbol.iterator]: function* () {
|
|
102
|
+
for (const file of files) {
|
|
103
|
+
yield file;
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
} as unknown as FileList,
|
|
107
|
+
dropEffect: "none" as DataTransfer["dropEffect"],
|
|
108
|
+
effectAllowed: "all" as DataTransfer["effectAllowed"],
|
|
109
|
+
types: ["Files"],
|
|
110
|
+
getData: () => "",
|
|
111
|
+
setData: () => {},
|
|
112
|
+
clearData: () => {},
|
|
113
|
+
setDragImage: () => {},
|
|
114
|
+
} as unknown as DataTransfer;
|
|
115
|
+
|
|
116
|
+
const event = new Event(type, {
|
|
117
|
+
bubbles: true,
|
|
118
|
+
cancelable: true,
|
|
119
|
+
}) as DragEvent;
|
|
120
|
+
|
|
121
|
+
Object.defineProperty(event, "dataTransfer", {
|
|
122
|
+
value: dataTransfer,
|
|
123
|
+
writable: false,
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
return event;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Helper to create mock InputEvent with files
|
|
130
|
+
export function createMockInputChangeEvent(files: File[]): Event {
|
|
131
|
+
const event = new Event("change", { bubbles: true });
|
|
132
|
+
const fileList = {
|
|
133
|
+
length: files.length,
|
|
134
|
+
item: (index: number) => files[index] || null,
|
|
135
|
+
[Symbol.iterator]: function* () {
|
|
136
|
+
for (const file of files) {
|
|
137
|
+
yield file;
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
} as unknown as FileList;
|
|
141
|
+
|
|
142
|
+
// Create a mock input element
|
|
143
|
+
const mockInput = {
|
|
144
|
+
files: fileList,
|
|
145
|
+
value: "C:\\fakepath\\file.txt",
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
Object.defineProperty(event, "target", {
|
|
149
|
+
value: mockInput,
|
|
150
|
+
writable: false,
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
return event;
|
|
154
|
+
}
|
|
@@ -42,6 +42,7 @@ import type {
|
|
|
42
42
|
BrowserUploadInput,
|
|
43
43
|
FlowUploadItem,
|
|
44
44
|
} from "@uploadista/client-browser";
|
|
45
|
+
import type { VNodeChild } from "vue";
|
|
45
46
|
import { computed } from "vue";
|
|
46
47
|
import { isBrowserFile } from "../utils";
|
|
47
48
|
|
|
@@ -73,27 +74,31 @@ export interface FlowUploadListProps {
|
|
|
73
74
|
|
|
74
75
|
const props = defineProps<FlowUploadListProps>();
|
|
75
76
|
|
|
77
|
+
interface FlowUploadListItemProps {
|
|
78
|
+
item: FlowUploadItem<BrowserUploadInput>;
|
|
79
|
+
index: number;
|
|
80
|
+
isPending: boolean;
|
|
81
|
+
isUploading: boolean;
|
|
82
|
+
isSuccess: boolean;
|
|
83
|
+
isError: boolean;
|
|
84
|
+
isAborted: boolean;
|
|
85
|
+
formatFileSize: (bytes: number) => string;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
interface FlowUploadListDefaultProps {
|
|
89
|
+
items: FlowUploadItem<BrowserUploadInput>[];
|
|
90
|
+
itemsByStatus: {
|
|
91
|
+
pending: FlowUploadItem<BrowserUploadInput>[];
|
|
92
|
+
uploading: FlowUploadItem<BrowserUploadInput>[];
|
|
93
|
+
success: FlowUploadItem<BrowserUploadInput>[];
|
|
94
|
+
error: FlowUploadItem<BrowserUploadInput>[];
|
|
95
|
+
aborted: FlowUploadItem<BrowserUploadInput>[];
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
76
99
|
defineSlots<{
|
|
77
|
-
item(props:
|
|
78
|
-
|
|
79
|
-
index: number;
|
|
80
|
-
isPending: boolean;
|
|
81
|
-
isUploading: boolean;
|
|
82
|
-
isSuccess: boolean;
|
|
83
|
-
isError: boolean;
|
|
84
|
-
isAborted: boolean;
|
|
85
|
-
formatFileSize: (bytes: number) => string;
|
|
86
|
-
}): any;
|
|
87
|
-
default?(props: {
|
|
88
|
-
items: FlowUploadItem<BrowserUploadInput>[];
|
|
89
|
-
itemsByStatus: {
|
|
90
|
-
pending: FlowUploadItem<BrowserUploadInput>[];
|
|
91
|
-
uploading: FlowUploadItem<BrowserUploadInput>[];
|
|
92
|
-
success: FlowUploadItem<BrowserUploadInput>[];
|
|
93
|
-
error: FlowUploadItem<BrowserUploadInput>[];
|
|
94
|
-
aborted: FlowUploadItem<BrowserUploadInput>[];
|
|
95
|
-
};
|
|
96
|
-
}): any;
|
|
100
|
+
item(props: FlowUploadListItemProps): VNodeChild;
|
|
101
|
+
default(props: FlowUploadListDefaultProps): VNodeChild;
|
|
97
102
|
}>();
|
|
98
103
|
|
|
99
104
|
// Apply filtering and sorting
|
|
@@ -112,7 +117,6 @@ const filteredItems = computed(() => {
|
|
|
112
117
|
});
|
|
113
118
|
|
|
114
119
|
// Group items by status
|
|
115
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
116
120
|
const itemsByStatus = computed(() => ({
|
|
117
121
|
pending: filteredItems.value.filter((item) => item.status === "pending"),
|
|
118
122
|
uploading: filteredItems.value.filter((item) => item.status === "uploading"),
|
|
@@ -122,7 +126,6 @@ const itemsByStatus = computed(() => ({
|
|
|
122
126
|
}));
|
|
123
127
|
|
|
124
128
|
// Helper function to format file sizes
|
|
125
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
126
129
|
const formatFileSize = (bytes: number): string => {
|
|
127
130
|
if (bytes === 0) return "0 Bytes";
|
|
128
131
|
const k = 1024;
|
|
@@ -132,7 +135,6 @@ const formatFileSize = (bytes: number): string => {
|
|
|
132
135
|
};
|
|
133
136
|
|
|
134
137
|
// Helper function to get status icon
|
|
135
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
136
138
|
const getStatusIcon = (status: string): string => {
|
|
137
139
|
switch (status) {
|
|
138
140
|
case "pending":
|
|
@@ -151,7 +153,6 @@ const getStatusIcon = (status: string): string => {
|
|
|
151
153
|
};
|
|
152
154
|
|
|
153
155
|
// Helper function to get status color
|
|
154
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
155
156
|
const getStatusColor = (status: string): string => {
|
|
156
157
|
switch (status) {
|
|
157
158
|
case "pending":
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
* :sort-by="(a, b) => a.uploadedAt - b.uploadedAt"
|
|
33
33
|
* />
|
|
34
34
|
*/
|
|
35
|
+
import type { VNodeChild } from "vue";
|
|
35
36
|
import { computed } from "vue";
|
|
36
37
|
import type { UploadItem } from "../composables";
|
|
37
38
|
import { isBrowserFile } from "../utils";
|
|
@@ -69,7 +70,7 @@ defineSlots<{
|
|
|
69
70
|
isSuccess: boolean;
|
|
70
71
|
isError: boolean;
|
|
71
72
|
formatFileSize: (bytes: number) => string;
|
|
72
|
-
}):
|
|
73
|
+
}): VNodeChild;
|
|
73
74
|
default?(props: {
|
|
74
75
|
items: UploadItem[];
|
|
75
76
|
itemsByStatus: {
|
|
@@ -79,7 +80,7 @@ defineSlots<{
|
|
|
79
80
|
error: UploadItem[];
|
|
80
81
|
aborted: UploadItem[];
|
|
81
82
|
};
|
|
82
|
-
}):
|
|
83
|
+
}): VNodeChild;
|
|
83
84
|
}>();
|
|
84
85
|
|
|
85
86
|
// Apply filtering and sorting
|
|
@@ -98,7 +99,6 @@ const filteredItems = computed(() => {
|
|
|
98
99
|
});
|
|
99
100
|
|
|
100
101
|
// Group items by status
|
|
101
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
102
102
|
const itemsByStatus = computed(() => ({
|
|
103
103
|
idle: filteredItems.value.filter((item) => item.state.status === "idle"),
|
|
104
104
|
uploading: filteredItems.value.filter(
|
|
@@ -114,7 +114,6 @@ const itemsByStatus = computed(() => ({
|
|
|
114
114
|
}));
|
|
115
115
|
|
|
116
116
|
// Helper function to format file sizes
|
|
117
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
118
117
|
const formatFileSize = (bytes: number): string => {
|
|
119
118
|
if (bytes === 0) return "0 Bytes";
|
|
120
119
|
const k = 1024;
|
|
@@ -124,7 +123,6 @@ const formatFileSize = (bytes: number): string => {
|
|
|
124
123
|
};
|
|
125
124
|
|
|
126
125
|
// Helper function to get status icon
|
|
127
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
128
126
|
const getStatusIcon = (status: string): string => {
|
|
129
127
|
switch (status) {
|
|
130
128
|
case "idle":
|
|
@@ -143,7 +141,6 @@ const getStatusIcon = (status: string): string => {
|
|
|
143
141
|
};
|
|
144
142
|
|
|
145
143
|
// Helper function to get status color
|
|
146
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
147
144
|
const getStatusColor = (status: string): string => {
|
|
148
145
|
switch (status) {
|
|
149
146
|
case "idle":
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
* @emits validation-error - When validation fails
|
|
35
35
|
*/
|
|
36
36
|
import type { UploadOptions } from "@uploadista/client-browser";
|
|
37
|
+
import type { VNodeChild } from "vue";
|
|
37
38
|
import { computed, ref } from "vue";
|
|
38
39
|
import type { MultiUploadOptions } from "../composables";
|
|
39
40
|
import { useDragDrop, useMultiUpload, useUpload } from "../composables";
|
|
@@ -97,14 +98,13 @@ const emit = defineEmits<{
|
|
|
97
98
|
}>();
|
|
98
99
|
|
|
99
100
|
defineSlots<{
|
|
100
|
-
// biome-ignore lint/suspicious/noExplicitAny: Vue slot definition requires any
|
|
101
101
|
default(props: {
|
|
102
102
|
isDragging: boolean;
|
|
103
103
|
isOver: boolean;
|
|
104
104
|
isUploading: boolean;
|
|
105
105
|
errors: string[];
|
|
106
106
|
openFilePicker: () => void;
|
|
107
|
-
}):
|
|
107
|
+
}): VNodeChild;
|
|
108
108
|
}>();
|
|
109
109
|
|
|
110
110
|
// Initialize upload composables
|
|
@@ -147,7 +147,6 @@ const dragDrop = useDragDrop({
|
|
|
147
147
|
const fileInputRef = ref<HTMLInputElement>();
|
|
148
148
|
|
|
149
149
|
// Open file picker
|
|
150
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
151
150
|
const openFilePicker = () => {
|
|
152
151
|
if (!props.disabled) {
|
|
153
152
|
fileInputRef.value?.click();
|
|
@@ -155,12 +154,10 @@ const openFilePicker = () => {
|
|
|
155
154
|
};
|
|
156
155
|
|
|
157
156
|
// Computed states
|
|
158
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
159
157
|
const isActive = computed(
|
|
160
158
|
() => dragDrop.state.value.isDragging || dragDrop.state.value.isOver,
|
|
161
159
|
);
|
|
162
160
|
|
|
163
|
-
// biome-ignore lint/correctness/noUnusedVariables: Used in slot templates
|
|
164
161
|
const isUploading = computed(() => {
|
|
165
162
|
if (props.multiple && multiUpload) {
|
|
166
163
|
return multiUpload.state.value.isUploading;
|