@snokam/ui 7.10.1 → 7.11.0

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.
Files changed (70) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/components/dropzone/Dropzone.d.ts.map +1 -1
  3. package/dist/components/dropzone/Dropzone.js +63 -83
  4. package/dist/components/dropzone/Dropzone.js.map +1 -1
  5. package/dist/components/dropzone/components/BatchProgressView.d.ts +10 -0
  6. package/dist/components/dropzone/components/BatchProgressView.d.ts.map +1 -0
  7. package/dist/components/dropzone/components/BatchProgressView.js +5 -0
  8. package/dist/components/dropzone/components/BatchProgressView.js.map +1 -0
  9. package/dist/components/dropzone/components/FilePreviewCard.d.ts.map +1 -1
  10. package/dist/components/dropzone/components/FilePreviewCard.js +7 -4
  11. package/dist/components/dropzone/components/FilePreviewCard.js.map +1 -1
  12. package/dist/components/dropzone/components/Rejections.d.ts +13 -0
  13. package/dist/components/dropzone/components/Rejections.d.ts.map +1 -0
  14. package/dist/components/dropzone/components/Rejections.js +15 -0
  15. package/dist/components/dropzone/components/Rejections.js.map +1 -0
  16. package/dist/components/dropzone/components/Rejections.styles.d.ts +8 -0
  17. package/dist/components/dropzone/components/Rejections.styles.d.ts.map +1 -0
  18. package/dist/components/dropzone/components/Rejections.styles.js +11 -0
  19. package/dist/components/dropzone/components/Rejections.styles.js.map +1 -0
  20. package/dist/components/dropzone/components/UploadArea.d.ts +2 -7
  21. package/dist/components/dropzone/components/UploadArea.d.ts.map +1 -1
  22. package/dist/components/dropzone/components/UploadArea.js +3 -2
  23. package/dist/components/dropzone/components/UploadArea.js.map +1 -1
  24. package/dist/components/dropzone/components/UploadArea.styles.d.ts +3 -0
  25. package/dist/components/dropzone/components/UploadArea.styles.d.ts.map +1 -1
  26. package/dist/components/dropzone/components/UploadArea.styles.js +13 -0
  27. package/dist/components/dropzone/components/UploadArea.styles.js.map +1 -1
  28. package/dist/components/dropzone/hooks/useBatchUpload.d.ts.map +1 -1
  29. package/dist/components/dropzone/hooks/useBatchUpload.js +83 -114
  30. package/dist/components/dropzone/hooks/useBatchUpload.js.map +1 -1
  31. package/dist/components/dropzone/hooks/useThumbnail.d.ts +2 -0
  32. package/dist/components/dropzone/hooks/useThumbnail.d.ts.map +1 -0
  33. package/dist/components/dropzone/hooks/useThumbnail.js +28 -0
  34. package/dist/components/dropzone/hooks/useThumbnail.js.map +1 -0
  35. package/dist/components/dropzone/index.d.ts +5 -2
  36. package/dist/components/dropzone/index.d.ts.map +1 -1
  37. package/dist/components/dropzone/index.js +4 -1
  38. package/dist/components/dropzone/index.js.map +1 -1
  39. package/dist/components/dropzone/styled.d.ts +3 -0
  40. package/dist/components/dropzone/styled.d.ts.map +1 -1
  41. package/dist/components/dropzone/styled.js +4 -1
  42. package/dist/components/dropzone/styled.js.map +1 -1
  43. package/dist/components/dropzone/types.d.ts +21 -8
  44. package/dist/components/dropzone/types.d.ts.map +1 -1
  45. package/dist/components/dropzone/types.js +8 -0
  46. package/dist/components/dropzone/types.js.map +1 -1
  47. package/dist/components/dropzone/utils/accept.d.ts +7 -0
  48. package/dist/components/dropzone/utils/accept.d.ts.map +1 -0
  49. package/dist/components/dropzone/utils/accept.js +9 -0
  50. package/dist/components/dropzone/utils/accept.js.map +1 -0
  51. package/dist/components/dropzone/utils/blobUtils.d.ts +2 -1
  52. package/dist/components/dropzone/utils/blobUtils.d.ts.map +1 -1
  53. package/dist/components/dropzone/utils/blobUtils.js +12 -3
  54. package/dist/components/dropzone/utils/blobUtils.js.map +1 -1
  55. package/dist/components/dropzone/utils/imageCompression.d.ts.map +1 -1
  56. package/dist/components/dropzone/utils/imageCompression.js +5 -2
  57. package/dist/components/dropzone/utils/imageCompression.js.map +1 -1
  58. package/dist/components/dropzone/utils/limits.d.ts +6 -0
  59. package/dist/components/dropzone/utils/limits.d.ts.map +1 -0
  60. package/dist/components/dropzone/utils/limits.js +10 -0
  61. package/dist/components/dropzone/utils/limits.js.map +1 -0
  62. package/dist/components/dropzone/utils/progress.d.ts +7 -0
  63. package/dist/components/dropzone/utils/progress.d.ts.map +1 -0
  64. package/dist/components/dropzone/utils/progress.js +29 -0
  65. package/dist/components/dropzone/utils/progress.js.map +1 -0
  66. package/dist/components/dropzone/utils/retry.d.ts +9 -0
  67. package/dist/components/dropzone/utils/retry.d.ts.map +1 -0
  68. package/dist/components/dropzone/utils/retry.js +16 -0
  69. package/dist/components/dropzone/utils/retry.js.map +1 -0
  70. package/package.json +1 -1
@@ -3,8 +3,9 @@ import { getFileType } from "../utils/fileUtils";
3
3
  import { uploadToBlob } from "../utils/blobUtils";
4
4
  import { compressImage } from "../utils/imageCompression";
5
5
  import { createSemaphore } from "../utils/semaphore";
6
+ import { backoffMs, withRetry } from "../utils/retry";
7
+ import { countResult, isProgressStep, percentOf, startProgress, } from "../utils/progress";
6
8
  const DEFAULT_BATCH_OPTIONS = {
7
- batchSize: 5,
8
9
  concurrent: true,
9
10
  maxConcurrency: 3,
10
11
  compressionConcurrency: 1,
@@ -15,50 +16,53 @@ const toMediaUploadData = (file) => ({
15
16
  preview: URL.createObjectURL(file),
16
17
  type: getFileType(file),
17
18
  });
19
+ const errorMessage = (error) => error instanceof Error ? error.message : "Unknown error";
18
20
  export const useBatchUpload = ({ requestUploadTarget, compressionOptions, batchUploadOptions, texts, }) => {
19
21
  const [batchProgress, setBatchProgress] = useState(null);
20
- const options = useMemo(() => ({ ...DEFAULT_BATCH_OPTIONS, ...batchUploadOptions }), [batchUploadOptions]);
21
- const effectiveUploadConcurrency = options.concurrent === false ? 1 : options.maxConcurrency;
22
- const compressSemaphoreRef = useRef(null);
23
- if (compressSemaphoreRef.current === null) {
24
- compressSemaphoreRef.current = createSemaphore(options.compressionConcurrency);
25
- }
26
- const uploadSemaphoreRef = useRef(null);
27
- if (uploadSemaphoreRef.current === null) {
28
- uploadSemaphoreRef.current = createSemaphore(effectiveUploadConcurrency);
29
- }
22
+ const options = { ...DEFAULT_BATCH_OPTIONS, ...batchUploadOptions };
23
+ const optionsRef = useRef(options);
30
24
  useEffect(() => {
31
- compressSemaphoreRef.current = createSemaphore(options.compressionConcurrency);
32
- }, [options.compressionConcurrency]);
33
- useEffect(() => {
34
- uploadSemaphoreRef.current = createSemaphore(effectiveUploadConcurrency);
35
- }, [effectiveUploadConcurrency]);
25
+ optionsRef.current = options;
26
+ });
27
+ const fileSlots = options.concurrent === false ? 1 : options.maxConcurrency;
28
+ const fileQueue = useMemo(() => createSemaphore(fileSlots), [fileSlots]);
29
+ const compressQueue = useMemo(() => createSemaphore(options.compressionConcurrency), [options.compressionConcurrency]);
36
30
  const compressIfImage = useCallback(async (file) => {
37
31
  if (getFileType(file) !== "image")
38
32
  return file;
39
- return compressImage(file, compressionOptions);
40
- }, [compressionOptions]);
41
- const processMedia = useCallback(async (media) => {
42
- const compressed = await compressSemaphoreRef.current(() => compressIfImage(media.file));
43
- if (!requestUploadTarget) {
44
- return {
45
- ...media,
46
- compressedFile: compressed !== media.file ? compressed : undefined,
47
- };
48
- }
49
- const blobUrl = await uploadSemaphoreRef.current(() => uploadToBlob({
50
- requestUploadTarget,
51
- originalFile: media.file,
52
- processedFile: compressed,
53
- texts,
54
- }));
55
- return {
56
- ...media,
57
- compressedFile: compressed !== media.file ? compressed : undefined,
58
- blobUrl,
59
- blobName: media.file.name,
33
+ return compressQueue(() => compressImage(file, compressionOptions));
34
+ }, [compressionOptions, compressQueue]);
35
+ const reportProgress = useCallback((media, size) => {
36
+ let reported = 0;
37
+ return (loadedBytes) => {
38
+ const percent = percentOf(loadedBytes, size);
39
+ if (!isProgressStep(reported, percent))
40
+ return;
41
+ reported = percent;
42
+ optionsRef.current.onFileProgress?.(media, percent);
60
43
  };
61
- }, [requestUploadTarget, compressIfImage, texts]);
44
+ }, []);
45
+ const processMedia = useCallback(async (media, onAttempt = () => { }) => {
46
+ const compressed = await compressIfImage(media.file);
47
+ const compressedFile = compressed !== media.file ? compressed : undefined;
48
+ if (!requestUploadTarget)
49
+ return { ...media, compressedFile };
50
+ const blobUrl = await withRetry(() => {
51
+ onAttempt();
52
+ return uploadToBlob({
53
+ requestUploadTarget,
54
+ originalFile: media.file,
55
+ processedFile: compressed,
56
+ texts,
57
+ onProgress: reportProgress(media, compressed.size),
58
+ });
59
+ }, {
60
+ retries: optionsRef.current.retries,
61
+ delayMs: backoffMs,
62
+ onRetry: () => optionsRef.current.onFileRetrying?.(media),
63
+ });
64
+ return { ...media, blobUrl, blobName: media.file.name };
65
+ }, [requestUploadTarget, compressIfImage, texts, reportProgress]);
62
66
  const processFile = useCallback(async (file) => {
63
67
  const media = toMediaUploadData(file);
64
68
  try {
@@ -69,91 +73,56 @@ export const useBatchUpload = ({ requestUploadTarget, compressionOptions, batchU
69
73
  throw err;
70
74
  }
71
75
  }, [processMedia]);
72
- const processMediaWithRetry = useCallback(async (media) => {
73
- let retryCount = 0;
74
- while (true) {
75
- try {
76
- const processed = await processMedia(media);
77
- return { file: processed, success: true, retryCount };
78
- }
79
- catch (error) {
80
- if (retryCount < options.retries) {
81
- retryCount++;
82
- console.warn(`Retrying file ${media.file.name}, attempt ${retryCount}`);
83
- continue;
84
- }
85
- return {
86
- file: media,
87
- success: false,
88
- error: error instanceof Error ? error.message : "Unknown error",
89
- retryCount,
90
- };
91
- }
76
+ const uploadOne = useCallback(async (media) => {
77
+ let attempts = 0;
78
+ try {
79
+ const processed = await processMedia(media, () => attempts++);
80
+ return {
81
+ file: processed,
82
+ success: true,
83
+ retryCount: Math.max(0, attempts - 1),
84
+ };
92
85
  }
93
- }, [processMedia, options.retries]);
86
+ catch (error) {
87
+ return {
88
+ file: media,
89
+ success: false,
90
+ error: errorMessage(error),
91
+ retryCount: Math.max(0, attempts - 1),
92
+ };
93
+ }
94
+ }, [processMedia]);
95
+ const keepIfAccepted = useCallback(async (result) => {
96
+ const accepted = await optionsRef.current.onFileUploaded?.(result);
97
+ if (accepted !== false)
98
+ return result;
99
+ return { ...result, success: false, error: texts.saveError };
100
+ }, [texts.saveError]);
101
+ const runFile = useCallback(async (media) => {
102
+ const uploaded = await fileQueue(() => {
103
+ optionsRef.current.onFileStart?.(media);
104
+ return uploadOne(media);
105
+ });
106
+ if (!uploaded.success)
107
+ optionsRef.current.onFileFailed?.(uploaded);
108
+ const result = uploaded.success
109
+ ? await keepIfAccepted(uploaded)
110
+ : uploaded;
111
+ setBatchProgress((prev) => prev && countResult(prev, result.success));
112
+ return result;
113
+ }, [fileQueue, uploadOne, keepIfAccepted]);
94
114
  const batchUpload = useCallback(async (items) => {
95
115
  if (items.length === 0)
96
116
  return;
97
- const totalBatches = Math.ceil(items.length / options.batchSize);
98
- setBatchProgress({
99
- totalFiles: items.length,
100
- processedFiles: 0,
101
- uploadedFiles: 0,
102
- failedFiles: 0,
103
- percentage: 0,
104
- currentBatch: 1,
105
- totalBatches,
106
- });
107
- const batches = [];
108
- for (let i = 0; i < items.length; i += options.batchSize) {
109
- batches.push(items.slice(i, i + options.batchSize));
110
- }
111
- const allResults = [];
112
- const bumpProgress = (result, batchIndex) => {
113
- setBatchProgress((prev) => {
114
- const total = prev?.totalFiles ?? items.length;
115
- const processed = (prev?.processedFiles ?? 0) + 1;
116
- const uploaded = (prev?.uploadedFiles ?? 0) + (result.success ? 1 : 0);
117
- const failed = (prev?.failedFiles ?? 0) + (result.success ? 0 : 1);
118
- return {
119
- totalFiles: total,
120
- processedFiles: processed,
121
- uploadedFiles: uploaded,
122
- failedFiles: failed,
123
- percentage: (processed / total) * 100,
124
- currentBatch: batchIndex + 1,
125
- totalBatches,
126
- };
127
- });
128
- };
117
+ setBatchProgress(startProgress(items.length));
129
118
  try {
130
- for (let batchIndex = 0; batchIndex < batches.length; batchIndex++) {
131
- const batch = batches[batchIndex];
132
- options.onBatchStart?.(batch);
133
- const batchResults = await Promise.all(batch.map(async (media) => {
134
- const result = await processMediaWithRetry(media);
135
- bumpProgress(result, batchIndex);
136
- return result;
137
- }));
138
- allResults.push(...batchResults);
139
- const succeeded = batchResults.filter((r) => r.success);
140
- const failed = batchResults.filter((r) => !r.success);
141
- if (failed.length > 0)
142
- options.onBatchError?.(failed);
143
- if (succeeded.length > 0)
144
- await options.onBatchComplete?.(succeeded);
145
- }
146
- await options.onAllComplete?.(allResults);
147
- }
148
- catch (error) {
149
- console.error("Batch upload error:", error);
150
- options.onBatchError?.(allResults.filter((r) => !r.success));
151
- throw error;
119
+ const results = await Promise.all(items.map(runFile));
120
+ await optionsRef.current.onAllComplete?.(results);
152
121
  }
153
122
  finally {
154
123
  setBatchProgress(null);
155
124
  }
156
- }, [processMediaWithRetry, options]);
125
+ }, [runFile]);
157
126
  return { batchUpload, processFile, batchProgress };
158
127
  };
159
128
  //# sourceMappingURL=useBatchUpload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBatchUpload.js","sourceRoot":"","sources":["../../../../src/components/dropzone/hooks/useBatchUpload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBatchUpload.js","sourceRoot":"","sources":["../../../../src/components/dropzone/hooks/useBatchUpload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const useThumbnail: (file: File | null) => string | null;
2
+ //# sourceMappingURL=useThumbnail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnail.d.ts","sourceRoot":"","sources":["../../../../src/components/dropzone/hooks/useThumbnail.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,GAAI,MAAM,IAAI,GAAG,IAAI,KAAG,MAAM,GAAG,IA0BzD,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { useEffect, useState } from "react";
3
+ import { createSemaphore } from "../utils/semaphore";
4
+ import { createThumbnailBlob } from "../utils/imageCompression";
5
+ const PARALLEL_THUMBNAILS = 2;
6
+ const thumbnailQueue = createSemaphore(PARALLEL_THUMBNAILS);
7
+ export const useThumbnail = (file) => {
8
+ const [thumbnail, setThumbnail] = useState(null);
9
+ useEffect(() => {
10
+ if (!file)
11
+ return;
12
+ let cancelled = false;
13
+ let url = null;
14
+ thumbnailQueue(() => cancelled ? Promise.resolve(null) : createThumbnailBlob(file)).then((blob) => {
15
+ if (!blob || cancelled)
16
+ return;
17
+ url = URL.createObjectURL(blob);
18
+ setThumbnail({ file, url });
19
+ });
20
+ return () => {
21
+ cancelled = true;
22
+ if (url)
23
+ URL.revokeObjectURL(url);
24
+ };
25
+ }, [file]);
26
+ return thumbnail && thumbnail.file === file ? thumbnail.url : null;
27
+ };
28
+ //# sourceMappingURL=useThumbnail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnail.js","sourceRoot":"","sources":["../../../../src/components/dropzone/hooks/useThumbnail.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,cAAc,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAiB,EAAiB,EAAE;IAC/D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAGhC,IAAI,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,GAAG,GAAkB,IAAI,CAAC;QAE9B,cAAc,CAAC,GAAG,EAAE,CAClB,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAC9D,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,CAAC,IAAI,IAAI,SAAS;gBAAE,OAAO;YAC/B,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChC,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,GAAG;gBAAE,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC,CAAC"}
@@ -1,5 +1,8 @@
1
- export type { DropzoneProps, DropzoneTexts, MediaUploadData, RequestUploadTarget, UploadTarget, BatchProgress, BatchResult, BatchUploadOptions, CompressionOptions, } from "./types";
2
- export { DropzoneTheme, DEFAULT_COMPRESSION_OPTIONS, DEFAULT_ACCEPT, MEDIA_ONLY_ACCEPT, DOCUMENT_ONLY_ACCEPT, } from "./types";
1
+ export type { DropzoneProps, DropzoneTexts, DropzoneUploadHandle, FileKind, MediaUploadData, RequestUploadTarget, UploadTarget, BatchProgress, BatchResult, BatchUploadOptions, CompressionOptions, } from "./types";
2
+ export { DropzoneTheme, DEFAULT_COMPRESSION_OPTIONS, DEFAULT_ACCEPT, MEDIA_ONLY_ACCEPT, DOCUMENT_ONLY_ACCEPT, DEFAULT_TEXTS, } from "./types";
3
3
  export { Dropzone } from "./Dropzone";
4
+ export { useThumbnail } from "./hooks/useThumbnail";
5
+ export { megabytes } from "./utils/limits";
6
+ export { createSemaphore } from "./utils/semaphore";
4
7
  export { Dropzone as default } from "./Dropzone";
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dropzone/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dropzone/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -1,4 +1,7 @@
1
- export { DropzoneTheme, DEFAULT_COMPRESSION_OPTIONS, DEFAULT_ACCEPT, MEDIA_ONLY_ACCEPT, DOCUMENT_ONLY_ACCEPT, } from "./types";
1
+ export { DropzoneTheme, DEFAULT_COMPRESSION_OPTIONS, DEFAULT_ACCEPT, MEDIA_ONLY_ACCEPT, DOCUMENT_ONLY_ACCEPT, DEFAULT_TEXTS, } from "./types";
2
2
  export { Dropzone } from "./Dropzone";
3
+ export { useThumbnail } from "./hooks/useThumbnail";
4
+ export { megabytes } from "./utils/limits";
5
+ export { createSemaphore } from "./utils/semaphore";
3
6
  export { Dropzone as default } from "./Dropzone";
4
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/dropzone/index.tsx"],"names":[],"mappings":"AAWA,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/dropzone/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -21,4 +21,7 @@ export declare const LoadingOverlay: import("@emotion/styled").StyledComponent<{
21
21
  theme?: import("@emotion/react").Theme;
22
22
  as?: React.ElementType;
23
23
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
24
+ export declare const ErrorAlert: import("@emotion/styled").StyledComponent<import("@mui/material").AlertProps & {
25
+ theme?: import("@emotion/react").Theme;
26
+ }, {}, {}>;
24
27
  //# sourceMappingURL=styled.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/components/dropzone/styled.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,eAAO,MAAM,QAAQ;;;yGAKpB,CAAC;AAEF,eAAO,MAAM,KAAK;;;WAA+B,aAAa;UAa7D,CAAC;AAEF,eAAO,MAAM,UAAU;;;WAA+B,aAAa;UAkBlE,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;yGAE7B,CAAC;AAEF,eAAO,MAAM,cAAc;;;yGAY1B,CAAC"}
1
+ {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/components/dropzone/styled.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,eAAO,MAAM,QAAQ;;;yGAKpB,CAAC;AAEF,eAAO,MAAM,KAAK;;;WAA+B,aAAa;UAa7D,CAAC;AAEF,eAAO,MAAM,UAAU;;;WAA+B,aAAa;UAkBlE,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;yGAE7B,CAAC;AAEF,eAAO,MAAM,cAAc;;;yGAY1B,CAAC;AAEF,eAAO,MAAM,UAAU;;UAEtB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import styled from "@emotion/styled";
2
2
  import { css } from "@emotion/react";
3
- import { Typography } from "@mui/material";
3
+ import { Alert, Typography } from "@mui/material";
4
4
  import { DropzoneTheme } from "./types";
5
5
  export const FileGrid = styled.div `
6
6
  display: grid;
@@ -55,4 +55,7 @@ export const LoadingOverlay = styled.div `
55
55
  z-index: 10;
56
56
  border-radius: 4px;
57
57
  `;
58
+ export const ErrorAlert = styled(Alert) `
59
+ margin-top: 8px;
60
+ `;
58
61
  //# sourceMappingURL=styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sourceRoot":"","sources":["../../../src/components/dropzone/styled.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKjC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAA0B;IAC7D,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACd,KAAK,KAAK,aAAa,CAAC,IAAI;IAC1B,CAAC,CAAC,GAAG,CAAA;;SAEF;IACH,CAAC,CAAC,GAAG,CAAA;;;;;;SAMF;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAA0B;;;;IAIlE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACd,KAAK,KAAK,aAAa,CAAC,IAAI;IAC1B,CAAC,CAAC,GAAG,CAAA;;;SAGF;IACH,CAAC,CAAC,GAAG,CAAA;;;;;;;SAOF;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;CAE1C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;CAYvC,CAAC"}
1
+ {"version":3,"file":"styled.js","sourceRoot":"","sources":["../../../src/components/dropzone/styled.tsx"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKjC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAA0B;IAC7D,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACd,KAAK,KAAK,aAAa,CAAC,IAAI;IAC1B,CAAC,CAAC,GAAG,CAAA;;SAEF;IACH,CAAC,CAAC,GAAG,CAAA;;;;;;SAMF;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAA0B;;;;IAIlE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACd,KAAK,KAAK,aAAa,CAAC,IAAI;IAC1B,CAAC,CAAC,GAAG,CAAA;;;SAGF;IACH,CAAC,CAAC,GAAG,CAAA;;;;;;;SAOF;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;CAE1C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;CAYvC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;CAEtC,CAAC"}
@@ -1,10 +1,11 @@
1
+ export type FileKind = "image" | "video" | "document" | "other";
1
2
  export interface MediaUploadData {
2
3
  file: File;
3
4
  preview: string;
4
5
  compressedFile?: File;
5
6
  blobUrl?: string;
6
7
  blobName?: string;
7
- type: "image" | "video" | "document" | "other";
8
+ type: FileKind;
8
9
  }
9
10
  export interface UploadTarget {
10
11
  uploadUrl: string;
@@ -21,8 +22,6 @@ export interface BatchProgress {
21
22
  uploadedFiles: number;
22
23
  failedFiles: number;
23
24
  percentage: number;
24
- currentBatch: number;
25
- totalBatches: number;
26
25
  }
27
26
  export interface BatchResult {
28
27
  file: MediaUploadData;
@@ -31,15 +30,19 @@ export interface BatchResult {
31
30
  retryCount: number;
32
31
  }
33
32
  export interface BatchUploadOptions {
34
- batchSize?: number;
35
33
  concurrent?: boolean;
36
34
  maxConcurrency?: number;
37
35
  compressionConcurrency?: number;
38
36
  retries?: number;
39
- onBatchError?: (error: BatchResult[]) => void;
40
- onBatchStart?: (results: MediaUploadData[]) => void;
41
- onBatchComplete?: (results: BatchResult[]) => Promise<void>;
42
- onAllComplete?: (results: BatchResult[]) => void;
37
+ onFileStart?: (media: MediaUploadData) => void;
38
+ onFileRetrying?: (media: MediaUploadData) => void;
39
+ onFileProgress?: (media: MediaUploadData, percent: number) => void;
40
+ onFileUploaded?: (result: BatchResult) => void | Promise<boolean | void>;
41
+ onFileFailed?: (result: BatchResult) => void;
42
+ onAllComplete?: (results: BatchResult[]) => void | Promise<void>;
43
+ }
44
+ export interface DropzoneUploadHandle {
45
+ upload: (files: File[]) => Promise<void>;
43
46
  }
44
47
  export interface DropzoneTexts {
45
48
  processingText: string;
@@ -53,6 +56,14 @@ export interface DropzoneTexts {
53
56
  pdfPageInfo: string;
54
57
  blobStorageError: string;
55
58
  uploadError: string;
59
+ uploadProgress: string;
60
+ uploadFailedCount: string;
61
+ fileTooLarge: string;
62
+ fileTypeNotAllowed: string;
63
+ tooManyFiles: string;
64
+ retrying: string;
65
+ retry: string;
66
+ saveError: string;
56
67
  }
57
68
  export interface DropzoneProps {
58
69
  onFileSelect?: (media: MediaUploadData | null) => void;
@@ -75,6 +86,8 @@ export interface DropzoneProps {
75
86
  style?: React.CSSProperties;
76
87
  maxSize?: number;
77
88
  minSize?: number;
89
+ maxBytesByType?: Partial<Record<FileKind, number>>;
90
+ uploadHandle?: React.Ref<DropzoneUploadHandle>;
78
91
  }
79
92
  export interface CompressionOptions {
80
93
  maxSizeMB?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/dropzone/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/dropzone/types.ts"],"names":[],"mappings":"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"}
@@ -70,5 +70,13 @@ export const DEFAULT_TEXTS = {
70
70
  pdfPageInfo: "Side {current} av {total}",
71
71
  blobStorageError: "Fillagringen er ikke satt opp",
72
72
  uploadError: "Kunne ikke laste opp filen",
73
+ uploadProgress: "{done} av {total} lastet opp",
74
+ uploadFailedCount: "{failed} feilet",
75
+ fileTooLarge: "Filen er for stor (maks {max})",
76
+ fileTypeNotAllowed: "Denne filtypen kan ikke lastes opp",
77
+ retrying: "Prøver igjen …",
78
+ retry: "Prøv igjen",
79
+ saveError: "Kunne ikke lagre filen på arrangementet",
80
+ tooManyFiles: "Du kan laste opp {max} filer om gangen. Disse {extra} ble ikke lastet opp, velg dem igjen når opplastingen er ferdig:",
73
81
  };
74
82
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/dropzone/types.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,8BAAa,CAAA;AACf,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAoFD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS,EAAE,CAAC;IACZ,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,oBAAoB,EAAE,CAAC,MAAM,CAAC;IAC9B,yEAAyE,EAAE;QACzE,OAAO;KACR;IACD,0BAA0B,EAAE,CAAC,MAAM,CAAC;IACpC,mEAAmE,EAAE;QACnE,OAAO;KACR;IACD,+BAA+B,EAAE,CAAC,MAAM,CAAC;IACzC,2EAA2E,EAAE;QAC3E,OAAO;KACR;IACD,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,iBAAiB,EAAE,CAAC,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,oBAAoB,EAAE,CAAC,MAAM,CAAC;IAC9B,yEAAyE,EAAE;QACzE,OAAO;KACR;IACD,0BAA0B,EAAE,CAAC,MAAM,CAAC;IACpC,mEAAmE,EAAE;QACnE,OAAO;KACR;IACD,+BAA+B,EAAE,CAAC,MAAM,CAAC;IACzC,2EAA2E,EAAE;QAC3E,OAAO;KACR;IACD,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,cAAc,EAAE,WAAW;IAC3B,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,iDAAiD;IAC/D,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,2BAA2B;IAC5C,aAAa,EAAE,aAAa;IAC5B,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,yBAAyB;IACvC,WAAW,EAAE,2BAA2B;IACxC,gBAAgB,EAAE,+BAA+B;IACjD,WAAW,EAAE,4BAA4B;CAC1C,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/dropzone/types.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,8BAAa,CAAA;AACf,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAiGD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS,EAAE,CAAC;IACZ,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,oBAAoB,EAAE,CAAC,MAAM,CAAC;IAC9B,yEAAyE,EAAE;QACzE,OAAO;KACR;IACD,0BAA0B,EAAE,CAAC,MAAM,CAAC;IACpC,mEAAmE,EAAE;QACnE,OAAO;KACR;IACD,+BAA+B,EAAE,CAAC,MAAM,CAAC;IACzC,2EAA2E,EAAE;QAC3E,OAAO;KACR;IACD,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,iBAAiB,EAAE,CAAC,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,oBAAoB,EAAE,CAAC,MAAM,CAAC;IAC9B,yEAAyE,EAAE;QACzE,OAAO;KACR;IACD,0BAA0B,EAAE,CAAC,MAAM,CAAC;IACpC,mEAAmE,EAAE;QACnE,OAAO;KACR;IACD,+BAA+B,EAAE,CAAC,MAAM,CAAC;IACzC,2EAA2E,EAAE;QAC3E,OAAO;KACR;IACD,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,cAAc,EAAE,WAAW;IAC3B,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,iDAAiD;IAC/D,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,2BAA2B;IAC5C,aAAa,EAAE,aAAa;IAC5B,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,yBAAyB;IACvC,WAAW,EAAE,2BAA2B;IACxC,gBAAgB,EAAE,+BAA+B;IACjD,WAAW,EAAE,4BAA4B;IACzC,cAAc,EAAE,8BAA8B;IAC9C,iBAAiB,EAAE,iBAAiB;IACpC,YAAY,EAAE,gCAAgC;IAC9C,kBAAkB,EAAE,oCAAoC;IACxD,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,yCAAyC;IACpD,YAAY,EACV,uHAAuH;CAC1H,CAAC"}
@@ -0,0 +1,7 @@
1
+ type NamedFile = {
2
+ name: string;
3
+ type: string;
4
+ };
5
+ export declare const isAcceptedType: (file: NamedFile, accept: Record<string, string[]>) => boolean;
6
+ export {};
7
+ //# sourceMappingURL=accept.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accept.d.ts","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/accept.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAOhD,eAAO,MAAM,cAAc,GACzB,MAAM,SAAS,EACf,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,YAQjC,CAAC"}
@@ -0,0 +1,9 @@
1
+ const matchesMime = (fileType, mime) => mime.endsWith("/*")
2
+ ? fileType.startsWith(mime.slice(0, -1))
3
+ : fileType === mime;
4
+ export const isAcceptedType = (file, accept) => {
5
+ const name = file.name.toLowerCase();
6
+ return Object.entries(accept).some(([mime, extensions]) => matchesMime(file.type.toLowerCase(), mime) ||
7
+ extensions.some((extension) => name.endsWith(extension.toLowerCase())));
8
+ };
9
+ //# sourceMappingURL=accept.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accept.js","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/accept.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE,CACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IACjB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAe,EACf,MAAgC,EAChC,EAAE;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAChC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC;QAC1C,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CACzE,CAAC;AACJ,CAAC,CAAC"}
@@ -4,7 +4,8 @@ interface UploadToBlobProps {
4
4
  originalFile: File;
5
5
  processedFile: File;
6
6
  texts: Pick<DropzoneTexts, "blobStorageError" | "uploadError">;
7
+ onProgress?: (loadedBytes: number) => void;
7
8
  }
8
- export declare const uploadToBlob: ({ requestUploadTarget, originalFile, processedFile, texts, }: UploadToBlobProps) => Promise<string>;
9
+ export declare const uploadToBlob: ({ requestUploadTarget, originalFile, processedFile, texts, onProgress, }: UploadToBlobProps) => Promise<string>;
9
10
  export {};
10
11
  //# sourceMappingURL=blobUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/blobUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE9D,UAAU,iBAAiB;IACzB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa,EAAE,IAAI,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAC;CAChE;AAED,eAAO,MAAM,YAAY,GAAU,8DAKhC,iBAAiB,KAAG,OAAO,CAAC,MAAM,CAmBpC,CAAC"}
1
+ {"version":3,"file":"blobUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/blobUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAU9D,UAAU,iBAAiB;IACzB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,IAAI,CAAC;IACnB,aAAa,EAAE,IAAI,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,YAAY,GAAU,0EAMhC,iBAAiB,KAAG,OAAO,CAAC,MAAM,CA2BpC,CAAC"}
@@ -1,13 +1,22 @@
1
- export const uploadToBlob = async ({ requestUploadTarget, originalFile, processedFile, texts, }) => {
1
+ const PARALLEL_BLOCKS_PER_FILE = 2;
2
+ const SHORT_RETRIES = {
3
+ maxTries: 2,
4
+ retryDelayInMs: 800,
5
+ maxRetryDelayInMs: 3000,
6
+ };
7
+ export const uploadToBlob = async ({ requestUploadTarget, originalFile, processedFile, texts, onProgress, }) => {
2
8
  const contentType = processedFile.type || originalFile.type;
3
9
  const target = await requestUploadTarget(new File([processedFile], originalFile.name, { type: contentType })).catch((error) => {
4
10
  console.error("Upload link error:", error);
5
11
  throw new Error(texts.blobStorageError);
6
12
  });
7
13
  try {
8
- const { BlockBlobClient } = await import("@azure/storage-blob");
9
- await new BlockBlobClient(target.uploadUrl).uploadData(processedFile, {
14
+ const { AnonymousCredential, BlockBlobClient } = await import("@azure/storage-blob");
15
+ const client = new BlockBlobClient(target.uploadUrl, new AnonymousCredential(), { retryOptions: SHORT_RETRIES });
16
+ await client.uploadData(processedFile, {
10
17
  blobHTTPHeaders: { blobContentType: contentType },
18
+ concurrency: PARALLEL_BLOCKS_PER_FILE,
19
+ onProgress: (progress) => onProgress?.(progress.loadedBytes),
11
20
  });
12
21
  return target.blobUrl;
13
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"blobUtils.js","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/blobUtils.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EACjC,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,KAAK,GACa,EAAmB,EAAE;IACvC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CACpE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE;YACpE,eAAe,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"blobUtils.js","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/blobUtils.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAEnC,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE,CAAC;IACX,cAAc,EAAE,GAAG;IACnB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAUF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EACjC,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,KAAK,EACL,UAAU,GACQ,EAAmB,EAAE;IACvC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CACpE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAC5C,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,eAAe,CAChC,MAAM,CAAC,SAAS,EAChB,IAAI,mBAAmB,EAAE,EACzB,EAAE,YAAY,EAAE,aAAa,EAAE,CAChC,CAAC;QACF,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE;YACrC,eAAe,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE;YACjD,WAAW,EAAE,wBAAwB;YACrC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC7D,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"imageCompression.d.ts","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/imageCompression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAyI9C,eAAO,MAAM,aAAa,GACxB,MAAM,IAAI,EACV,SAAS,kBAAkB,KAC1B,OAAO,CAAC,IAAI,CAiBd,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,IAAI,EACV,eAAY,EACZ,gBAAa,KACZ,OAAO,CAAC,IAAI,GAAG,IAAI,CA0CrB,CAAC"}
1
+ {"version":3,"file":"imageCompression.d.ts","sourceRoot":"","sources":["../../../../src/components/dropzone/utils/imageCompression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AA2I9C,eAAO,MAAM,aAAa,GACxB,MAAM,IAAI,EACV,SAAS,kBAAkB,KAC1B,OAAO,CAAC,IAAI,CAiBd,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,IAAI,EACV,eAAY,EACZ,gBAAa,KACZ,OAAO,CAAC,IAAI,GAAG,IAAI,CA4CrB,CAAC"}