@uploadcare/file-uploader 1.15.0-alpha.8 → 1.15.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 (282) hide show
  1. package/abstract/ActivityBlock.d.ts +5 -5
  2. package/abstract/ActivityBlock.d.ts.map +1 -1
  3. package/abstract/ActivityBlock.js +0 -3
  4. package/abstract/Block.d.ts +3 -9
  5. package/abstract/Block.d.ts.map +1 -1
  6. package/abstract/Block.js +1 -1
  7. package/abstract/CTX.d.ts +6 -6
  8. package/abstract/CTX.d.ts.map +1 -1
  9. package/abstract/LocaleManager.d.ts +3 -3
  10. package/abstract/LocaleManager.d.ts.map +1 -1
  11. package/abstract/ModalManager.d.ts +26 -17
  12. package/abstract/ModalManager.d.ts.map +1 -1
  13. package/abstract/ModalManager.js +31 -18
  14. package/abstract/SecureUploadsManager.d.ts +2 -2
  15. package/abstract/SecureUploadsManager.d.ts.map +1 -1
  16. package/abstract/SolutionBlock.d.ts +2 -2
  17. package/abstract/SolutionBlock.d.ts.map +1 -1
  18. package/abstract/TypedCollection.d.ts +44 -44
  19. package/abstract/TypedCollection.d.ts.map +1 -1
  20. package/abstract/TypedCollection.js +53 -33
  21. package/abstract/TypedData.d.ts +71 -25
  22. package/abstract/TypedData.d.ts.map +1 -1
  23. package/abstract/TypedData.js +74 -17
  24. package/abstract/UploaderBlock.d.ts +10 -10
  25. package/abstract/UploaderBlock.d.ts.map +1 -1
  26. package/abstract/UploaderBlock.js +22 -10
  27. package/abstract/UploaderPublicApi.d.ts +24 -23
  28. package/abstract/UploaderPublicApi.d.ts.map +1 -1
  29. package/abstract/UploaderPublicApi.js +21 -10
  30. package/abstract/ValidationManager.d.ts +125 -6
  31. package/abstract/ValidationManager.d.ts.map +1 -1
  32. package/abstract/ValidationManager.js +1 -1
  33. package/abstract/a11y.d.ts +2 -2
  34. package/abstract/a11y.d.ts.map +1 -1
  35. package/abstract/buildOutputCollectionState.d.ts +1 -1
  36. package/abstract/buildOutputCollectionState.d.ts.map +1 -1
  37. package/abstract/defineComponents.d.ts.map +1 -1
  38. package/abstract/l10nProcessor.d.ts.map +1 -1
  39. package/abstract/loadFileUploaderFrom.d.ts +1 -1
  40. package/abstract/loadFileUploaderFrom.d.ts.map +1 -1
  41. package/abstract/localeRegistry.d.ts.map +1 -1
  42. package/abstract/sharedConfigKey.d.ts.map +1 -1
  43. package/abstract/uploadEntrySchema.d.ts +123 -63
  44. package/abstract/uploadEntrySchema.d.ts.map +1 -1
  45. package/abstract/uploadEntrySchema.js +66 -81
  46. package/blocks/CameraSource/CameraSource.d.ts +9 -9
  47. package/blocks/CameraSource/CameraSource.d.ts.map +1 -1
  48. package/blocks/CameraSource/calcCameraModes.d.ts +1 -1
  49. package/blocks/CameraSource/constants.d.ts.map +1 -1
  50. package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts.map +1 -1
  51. package/blocks/CloudImageEditor/src/CropFrame.d.ts +1 -1
  52. package/blocks/CloudImageEditor/src/EditorFilterControl.js +1 -1
  53. package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts +3 -3
  54. package/blocks/CloudImageEditor/src/EditorImageCropper.js +1 -1
  55. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts +1 -1
  56. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -1
  57. package/blocks/CloudImageEditor/src/EditorImageFader.js +1 -1
  58. package/blocks/CloudImageEditor/src/EditorSlider.d.ts +1 -1
  59. package/blocks/CloudImageEditor/src/EditorSlider.d.ts.map +1 -1
  60. package/blocks/CloudImageEditor/src/EditorToolbar.d.ts +1 -1
  61. package/blocks/CloudImageEditor/src/EditorToolbar.js +1 -1
  62. package/blocks/CloudImageEditor/src/crop-utils.d.ts +14 -14
  63. package/blocks/CloudImageEditor/src/crop-utils.d.ts.map +1 -1
  64. package/blocks/CloudImageEditor/src/cropper-constants.d.ts.map +1 -1
  65. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts +1 -1
  66. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts.map +1 -1
  67. package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts +1 -1
  68. package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts +3 -3
  69. package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts.map +1 -1
  70. package/blocks/CloudImageEditor/src/state.d.ts +4 -4
  71. package/blocks/CloudImageEditor/src/svg-sprite.d.ts.map +1 -1
  72. package/blocks/CloudImageEditor/src/types.d.ts +8 -58
  73. package/blocks/CloudImageEditor/src/types.d.ts.map +1 -1
  74. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts +5 -2
  75. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts.map +1 -1
  76. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.js +7 -3
  77. package/blocks/Config/Config.d.ts +3 -12
  78. package/blocks/Config/Config.d.ts.map +1 -1
  79. package/blocks/Config/assertions.d.ts +1 -1
  80. package/blocks/Config/initialConfig.d.ts +1 -1
  81. package/blocks/Config/initialConfig.d.ts.map +1 -1
  82. package/blocks/Config/initialConfig.js +1 -1
  83. package/blocks/Config/normalizeConfigValue.d.ts.map +1 -1
  84. package/blocks/Config/side-effects.d.ts.map +1 -1
  85. package/blocks/Config/validatorsType.d.ts +1 -1
  86. package/blocks/Config/validatorsType.d.ts.map +1 -1
  87. package/blocks/DropArea/DropArea.d.ts +2 -2
  88. package/blocks/DropArea/DropArea.d.ts.map +1 -1
  89. package/blocks/DropArea/addDropzone.d.ts.map +1 -1
  90. package/blocks/DropArea/drop-area.css +4 -2
  91. package/blocks/DropArea/getDropItems.d.ts +2 -2
  92. package/blocks/DropArea/getDropItems.d.ts.map +1 -1
  93. package/blocks/ExternalSource/ExternalSource.d.ts +3 -3
  94. package/blocks/ExternalSource/ExternalSource.d.ts.map +1 -1
  95. package/blocks/ExternalSource/MessageBridge.d.ts +3 -3
  96. package/blocks/ExternalSource/MessageBridge.d.ts.map +1 -1
  97. package/blocks/ExternalSource/query-string.d.ts.map +1 -1
  98. package/blocks/ExternalSource/types.d.ts +64 -64
  99. package/blocks/ExternalSource/types.d.ts.map +1 -1
  100. package/blocks/FileItem/FileItem.d.ts +13 -40
  101. package/blocks/FileItem/FileItem.d.ts.map +1 -1
  102. package/blocks/FileItem/FileItem.js +119 -172
  103. package/blocks/FileItem/FileItemConfig.d.ts +28 -0
  104. package/blocks/FileItem/FileItemConfig.d.ts.map +1 -0
  105. package/blocks/FileItem/FileItemConfig.js +74 -0
  106. package/blocks/FileItem/file-item.css +21 -6
  107. package/blocks/Img/ImgBase.d.ts +3 -3
  108. package/blocks/Img/ImgBase.d.ts.map +1 -1
  109. package/blocks/Img/ImgBase.js +9 -9
  110. package/blocks/Img/ImgConfig.d.ts.map +1 -1
  111. package/blocks/Img/configurations.d.ts.map +1 -1
  112. package/blocks/Modal/Modal.d.ts +21 -0
  113. package/blocks/Modal/Modal.d.ts.map +1 -1
  114. package/blocks/Modal/Modal.js +37 -16
  115. package/blocks/ProgressBar/ProgressBar.d.ts +6 -1
  116. package/blocks/ProgressBar/ProgressBar.d.ts.map +1 -1
  117. package/blocks/ProgressBar/ProgressBar.js +41 -44
  118. package/blocks/ProgressBar/progress-bar.css +8 -6
  119. package/blocks/Range/Range.d.ts.map +1 -1
  120. package/blocks/SimpleBtn/SimpleBtn.d.ts +2 -2
  121. package/blocks/SimpleBtn/SimpleBtn.d.ts.map +1 -1
  122. package/blocks/SourceBtn/SourceBtn.d.ts +2 -5
  123. package/blocks/SourceBtn/SourceBtn.d.ts.map +1 -1
  124. package/blocks/SourceBtn/SourceBtn.js +5 -5
  125. package/blocks/SourceList/SourceList.js +2 -2
  126. package/blocks/Spinner/Spinner.d.ts.map +1 -1
  127. package/blocks/Thumb/Thumb.d.ts +30 -4
  128. package/blocks/Thumb/Thumb.d.ts.map +1 -1
  129. package/blocks/Thumb/Thumb.js +197 -12
  130. package/blocks/UploadCtxProvider/EventEmitter.d.ts +20 -20
  131. package/blocks/UploadCtxProvider/EventEmitter.d.ts.map +1 -1
  132. package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts +4 -4
  133. package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts.map +1 -1
  134. package/blocks/UploadList/UploadList.d.ts +3 -3
  135. package/blocks/UploadList/UploadList.d.ts.map +1 -1
  136. package/blocks/svg-backgrounds/svg-backgrounds.d.ts +3 -3
  137. package/blocks/svg-backgrounds/svg-backgrounds.d.ts.map +1 -1
  138. package/blocks/themes/uc-basic/svg-sprite.d.ts.map +1 -1
  139. package/blocks/utils/UploadSource.d.ts.map +1 -1
  140. package/blocks/utils/debounce.d.ts +3 -1
  141. package/blocks/utils/debounce.d.ts.map +1 -1
  142. package/blocks/{CloudImageEditor/src/lib → utils}/preloadImage.js +1 -1
  143. package/blocks/utils/resizeImage.d.ts +1 -1
  144. package/blocks/utils/resizeImage.d.ts.map +1 -1
  145. package/blocks/utils/throttle.d.ts +3 -1
  146. package/blocks/utils/throttle.d.ts.map +1 -1
  147. package/blocks/utils/userAgent.d.ts +1 -1
  148. package/blocks/utils/userAgent.d.ts.map +1 -1
  149. package/env.d.ts +1 -1
  150. package/env.d.ts.map +1 -1
  151. package/env.js +1 -1
  152. package/index.d.ts +1 -0
  153. package/index.js +1 -0
  154. package/index.ssr.d.ts +9 -1
  155. package/index.ssr.d.ts.map +1 -1
  156. package/index.ssr.js +17 -11
  157. package/locales/file-uploader/ar.d.ts +1 -0
  158. package/locales/file-uploader/ar.js +1 -0
  159. package/locales/file-uploader/az.d.ts +1 -0
  160. package/locales/file-uploader/az.js +1 -0
  161. package/locales/file-uploader/ca.d.ts +1 -0
  162. package/locales/file-uploader/ca.js +1 -0
  163. package/locales/file-uploader/cs.d.ts +1 -0
  164. package/locales/file-uploader/cs.js +1 -0
  165. package/locales/file-uploader/da.d.ts +1 -0
  166. package/locales/file-uploader/da.js +1 -0
  167. package/locales/file-uploader/de.d.ts +1 -0
  168. package/locales/file-uploader/de.js +1 -0
  169. package/locales/file-uploader/el.d.ts +1 -0
  170. package/locales/file-uploader/el.js +1 -0
  171. package/locales/file-uploader/en.d.ts +1 -0
  172. package/locales/file-uploader/en.js +1 -0
  173. package/locales/file-uploader/es.d.ts +1 -0
  174. package/locales/file-uploader/es.js +1 -0
  175. package/locales/file-uploader/et.d.ts +1 -0
  176. package/locales/file-uploader/et.js +1 -0
  177. package/locales/file-uploader/fi.d.ts +1 -0
  178. package/locales/file-uploader/fi.js +1 -0
  179. package/locales/file-uploader/fr.d.ts +1 -0
  180. package/locales/file-uploader/fr.js +1 -0
  181. package/locales/file-uploader/he.d.ts +1 -0
  182. package/locales/file-uploader/he.js +1 -0
  183. package/locales/file-uploader/hy.d.ts +1 -0
  184. package/locales/file-uploader/hy.js +1 -0
  185. package/locales/file-uploader/is.d.ts +1 -0
  186. package/locales/file-uploader/is.js +1 -0
  187. package/locales/file-uploader/it.d.ts +1 -0
  188. package/locales/file-uploader/it.js +1 -0
  189. package/locales/file-uploader/ja.d.ts +1 -0
  190. package/locales/file-uploader/ja.js +1 -0
  191. package/locales/file-uploader/ka.d.ts +1 -0
  192. package/locales/file-uploader/ka.js +1 -0
  193. package/locales/file-uploader/kk.d.ts +1 -0
  194. package/locales/file-uploader/kk.js +1 -0
  195. package/locales/file-uploader/ko.d.ts +1 -0
  196. package/locales/file-uploader/ko.js +1 -0
  197. package/locales/file-uploader/lv.d.ts +1 -0
  198. package/locales/file-uploader/lv.js +1 -0
  199. package/locales/file-uploader/nb.d.ts +1 -0
  200. package/locales/file-uploader/nb.js +1 -0
  201. package/locales/file-uploader/nl.d.ts +1 -0
  202. package/locales/file-uploader/nl.js +1 -0
  203. package/locales/file-uploader/pl.d.ts +1 -0
  204. package/locales/file-uploader/pl.js +1 -0
  205. package/locales/file-uploader/pt.d.ts +1 -0
  206. package/locales/file-uploader/pt.js +1 -0
  207. package/locales/file-uploader/ro.d.ts +1 -0
  208. package/locales/file-uploader/ro.js +1 -0
  209. package/locales/file-uploader/ru.d.ts +1 -0
  210. package/locales/file-uploader/ru.js +1 -0
  211. package/locales/file-uploader/sk.d.ts +1 -0
  212. package/locales/file-uploader/sk.js +1 -0
  213. package/locales/file-uploader/sr.d.ts +1 -0
  214. package/locales/file-uploader/sr.js +1 -0
  215. package/locales/file-uploader/sv.d.ts +1 -0
  216. package/locales/file-uploader/sv.js +1 -0
  217. package/locales/file-uploader/tr.d.ts +1 -0
  218. package/locales/file-uploader/tr.js +1 -0
  219. package/locales/file-uploader/uk.d.ts +1 -0
  220. package/locales/file-uploader/uk.js +1 -0
  221. package/locales/file-uploader/vi.d.ts +1 -0
  222. package/locales/file-uploader/vi.js +1 -0
  223. package/locales/file-uploader/zh-TW.d.ts +1 -0
  224. package/locales/file-uploader/zh-TW.js +1 -0
  225. package/locales/file-uploader/zh.d.ts +1 -0
  226. package/locales/file-uploader/zh.js +1 -0
  227. package/package.json +7 -8
  228. package/solutions/file-uploader/inline/FileUploaderInline.d.ts +2 -2
  229. package/solutions/file-uploader/inline/FileUploaderInline.d.ts.map +1 -1
  230. package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts +18 -2
  231. package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts.map +1 -1
  232. package/solutions/file-uploader/minimal/FileUploaderMinimal.js +46 -35
  233. package/solutions/file-uploader/minimal/index.css +5 -23
  234. package/solutions/file-uploader/regular/FileUploaderRegular.d.ts +2 -2
  235. package/solutions/file-uploader/regular/FileUploaderRegular.d.ts.map +1 -1
  236. package/types/jsx.d.ts +1 -1
  237. package/utils/browser-info.d.ts +13 -0
  238. package/utils/browser-info.d.ts.map +1 -0
  239. package/utils/browser-info.js +22 -0
  240. package/utils/browser-info.test.d.ts +2 -0
  241. package/utils/browser-info.test.d.ts.map +1 -0
  242. package/utils/browser-info.test.js +109 -0
  243. package/utils/cdn-utils.d.ts +3 -3
  244. package/utils/cdn-utils.d.ts.map +1 -1
  245. package/utils/fileTypes.d.ts +5 -1
  246. package/utils/fileTypes.d.ts.map +1 -1
  247. package/utils/fileTypes.js +18 -2
  248. package/utils/getPluralForm.d.ts.map +1 -1
  249. package/utils/isSecureTokenExpired.d.ts +1 -1
  250. package/utils/memoize.d.ts.map +1 -1
  251. package/utils/mixinClass.d.ts +3 -1
  252. package/utils/mixinClass.d.ts.map +1 -1
  253. package/utils/prettyBytes.d.ts.map +1 -1
  254. package/utils/template-utils.d.ts +1 -1
  255. package/utils/template-utils.d.ts.map +1 -1
  256. package/utils/toKebabCase.d.ts.map +1 -1
  257. package/utils/transparentPixelSrc.d.ts.map +1 -1
  258. package/utils/uniqueArray.d.ts.map +1 -1
  259. package/utils/validators/collection/validateCollectionUploadError.d.ts +1 -1
  260. package/utils/validators/collection/validateMultiple.d.ts +1 -1
  261. package/utils/validators/file/validateFileType.d.ts +1 -1
  262. package/utils/validators/file/validateIsImage.d.ts +1 -1
  263. package/utils/validators/file/validateMaxSizeLimit.d.ts +1 -1
  264. package/utils/validators/file/validateUploadError.d.ts +1 -1
  265. package/utils/waitForAttribute.d.ts +1 -1
  266. package/utils/waitForAttribute.d.ts.map +1 -1
  267. package/web/file-uploader.iife.min.js +4 -4
  268. package/web/file-uploader.min.js +4 -4
  269. package/web/uc-basic.min.css +1 -1
  270. package/web/uc-cloud-image-editor.min.js +2 -2
  271. package/web/uc-file-uploader-inline.min.css +1 -1
  272. package/web/uc-file-uploader-inline.min.js +4 -4
  273. package/web/uc-file-uploader-minimal.min.css +1 -1
  274. package/web/uc-file-uploader-minimal.min.js +4 -4
  275. package/web/uc-file-uploader-regular.min.css +1 -1
  276. package/web/uc-file-uploader-regular.min.js +4 -4
  277. package/web/uc-img.min.js +2 -2
  278. package/blocks/utils/supportCapture.d.ts +0 -2
  279. package/blocks/utils/supportCapture.d.ts.map +0 -1
  280. package/blocks/utils/supportCapture.js +0 -3
  281. /package/blocks/{CloudImageEditor/src/lib → utils}/preloadImage.d.ts +0 -0
  282. /package/blocks/{CloudImageEditor/src/lib → utils}/preloadImage.d.ts.map +0 -0
@@ -1,8 +1,27 @@
1
1
  //@ts-check
2
2
 
3
- import { UploaderBlock } from '../../abstract/UploaderBlock.js';
3
+ import { createCdnUrl, createCdnUrlModifiers, createOriginalUrl } from '../../utils/cdn-utils.js';
4
+ import { preloadImage } from '../utils/preloadImage.js';
5
+ import { FileItemConfig } from '../FileItem/FileItemConfig.js';
6
+ import { fileCssBg } from '../svg-backgrounds/svg-backgrounds.js';
7
+ import { debounce } from '../utils/debounce.js';
8
+ import { generateThumb } from '../utils/resizeImage.js';
9
+
10
+ const CDN_MAX_OUTPUT_DIMENSION = 3000;
11
+ export class Thumb extends FileItemConfig {
12
+ /** @private */
13
+ _renderedGridOnce = false;
14
+
15
+ /**
16
+ * @private
17
+ * @type {IntersectionObserverEntry['boundingClientRect'] | null}
18
+ */
19
+ _thumbRect = null;
20
+
21
+ _isIntersecting = false;
22
+
23
+ _firstViewMode = this.cfg.filesViewMode;
4
24
 
5
- export class Thumb extends UploaderBlock {
6
25
  constructor() {
7
26
  super();
8
27
 
@@ -14,35 +33,201 @@ export class Thumb extends UploaderBlock {
14
33
  };
15
34
  }
16
35
 
36
+ _calculateThumbSize(force = false) {
37
+ if (force) {
38
+ this._thumbRect = this.getBoundingClientRect();
39
+ }
40
+
41
+ let size = Math.max(
42
+ parseInt(String(this?._thumbRect?.height || 0)),
43
+ parseInt(String(this?._thumbRect?.width || 0)),
44
+ this.cfg.thumbSize,
45
+ );
46
+
47
+ if (window.devicePixelRatio > 1) {
48
+ size *= window.devicePixelRatio;
49
+ }
50
+
51
+ return Math.min(size, CDN_MAX_OUTPUT_DIMENSION);
52
+ }
53
+
54
+ /** @private */
55
+ _generateThumbnail = this._withEntry(async (entry, force = false) => {
56
+ const fileInfo = entry.getValue('fileInfo');
57
+ const isImage = entry.getValue('isImage');
58
+ const uuid = entry.getValue('uuid');
59
+ const currentThumbUrl = entry.getValue('thumbUrl');
60
+
61
+ let size = this._calculateThumbSize(force);
62
+
63
+ if (fileInfo && isImage && uuid) {
64
+ let thumbUrl = await this.proxyUrl(
65
+ createCdnUrl(
66
+ createOriginalUrl(this.cfg.cdnCname, uuid),
67
+ createCdnUrlModifiers(entry.getValue('cdnUrlModifiers'), `stretch/off`, `scale_crop/${size}x${size}/center`),
68
+ ),
69
+ );
70
+
71
+ if (currentThumbUrl === thumbUrl) {
72
+ return;
73
+ }
74
+
75
+ const { promise } = preloadImage(thumbUrl);
76
+
77
+ promise
78
+ .then(() => {
79
+ entry.setValue('thumbUrl', thumbUrl);
80
+ currentThumbUrl?.startsWith('blob:') && URL.revokeObjectURL(currentThumbUrl);
81
+ })
82
+ .catch(async () => {
83
+ if (currentThumbUrl?.startsWith('blob:')) return;
84
+ try {
85
+ const file = entry.getValue('file');
86
+ if (!file) return;
87
+ const blobThumbUrl = await generateThumb(file, size);
88
+ entry.setValue('thumbUrl', blobThumbUrl);
89
+ } catch (err) {
90
+ const color = window.getComputedStyle(this).getPropertyValue('--uc-muted-foreground');
91
+ entry.setValue('thumbUrl', fileCssBg(color));
92
+ }
93
+ });
94
+
95
+ return;
96
+ }
97
+
98
+ if (entry.getValue('thumbUrl')) {
99
+ return;
100
+ }
101
+
102
+ const file = entry.getValue('file');
103
+ if (file?.type.includes('image')) {
104
+ try {
105
+ let thumbUrl = await generateThumb(file, size);
106
+ entry.setValue('thumbUrl', thumbUrl);
107
+ } catch (err) {
108
+ let color = window.getComputedStyle(this).getPropertyValue('--uc-muted-foreground');
109
+ entry.setValue('thumbUrl', fileCssBg(color));
110
+ }
111
+ } else {
112
+ let color = window.getComputedStyle(this).getPropertyValue('--uc-muted-foreground');
113
+ entry.setValue('thumbUrl', fileCssBg(color));
114
+ }
115
+ });
116
+
117
+ _debouncedGenerateThumb = debounce(this._generateThumbnail.bind(this), 100);
118
+
119
+ /**
120
+ * @private
121
+ * @param {IntersectionObserverEntry[]} entries
122
+ */
123
+ _observerCallback(entries) {
124
+ const [entry] = entries;
125
+ this._isIntersecting = entry.isIntersecting;
126
+
127
+ if (entry.isIntersecting) {
128
+ this._thumbRect = entry.boundingClientRect;
129
+ this._debouncedGenerateThumb();
130
+ this._observer?.disconnect();
131
+ }
132
+
133
+ if (entry.intersectionRatio === 0) {
134
+ this._debouncedGenerateThumb.cancel();
135
+ }
136
+ }
137
+
138
+ _reset() {
139
+ super._reset();
140
+ this._debouncedGenerateThumb.cancel();
141
+ }
142
+
143
+ /**
144
+ * @private
145
+ * @param {String} id
146
+ */
147
+ _handleEntryId(id) {
148
+ this._reset();
149
+
150
+ let entry = this.uploadCollection?.read(id);
151
+ this._entry = entry;
152
+
153
+ if (!entry) {
154
+ return;
155
+ }
156
+
157
+ this._subEntry('fileInfo', (fileInfo) => {
158
+ if (fileInfo?.isImage && this._isIntersecting) {
159
+ this._debouncedGenerateThumb();
160
+ }
161
+ });
162
+
163
+ this._subEntry('thumbUrl', (thumbUrl) => {
164
+ this.$.thumbUrl = thumbUrl ? `url(${thumbUrl})` : '';
165
+ });
166
+
167
+ this._subEntry('cdnUrlModifiers', () => {
168
+ if (this._isIntersecting) {
169
+ this._debouncedGenerateThumb();
170
+ }
171
+ });
172
+
173
+ if (this._isIntersecting) {
174
+ this._debouncedGenerateThumb();
175
+ }
176
+ }
177
+
17
178
  initCallback() {
18
179
  super.initCallback();
19
180
 
20
- this.defineAccessor('thumbUrl', (/** @type {string} */ val) => (this.$.thumbUrl = val));
21
181
  this.defineAccessor('badgeIcon', (/** @type {string} */ val) => (this.$.badgeIcon = val));
22
182
 
183
+ this.defineAccessor('uid', (/** @type {string} */ value) => {
184
+ this.set$({ uid: value });
185
+ });
186
+
187
+ this.sub('uid', (uid) => {
188
+ this._handleEntryId(uid);
189
+ });
190
+
191
+ this.subConfigValue('filesViewMode', (viewMode) => {
192
+ if (viewMode === 'grid' && !this._renderedGridOnce) {
193
+ if (this._firstViewMode === 'list') {
194
+ this._debouncedGenerateThumb(true);
195
+ }
196
+ this._renderedGridOnce = true;
197
+ }
198
+ });
199
+
23
200
  this.setAttribute('role', 'img');
24
201
  }
25
202
 
26
203
  connectedCallback() {
27
204
  super.connectedCallback();
205
+
206
+ this._observer = new window.IntersectionObserver(this._observerCallback.bind(this), { threshold: 0.1 });
207
+
208
+ this._observer.observe(this);
209
+ }
210
+
211
+ disconnectedCallback() {
212
+ super.disconnectedCallback();
213
+
214
+ this._entrySubs = new Set();
215
+ this._debouncedGenerateThumb.cancel();
216
+ this._observer?.disconnect();
28
217
  }
29
218
  }
30
219
 
31
220
  Thumb.template = /* html */ `
32
- <slot>
33
- <div class="uc-thumb" set="style.backgroundImage: thumbUrl">
34
- <div class="uc-badge">
35
- <uc-icon set="@name: badgeIcon"></uc-icon>
36
- </div>
221
+ <div class="uc-thumb" set="style.backgroundImage: thumbUrl">
222
+ <div class="uc-badge">
223
+ <uc-icon set="@name: badgeIcon"></uc-icon>
37
224
  </div>
38
- </slot>
225
+ </div>
39
226
  `;
40
227
 
41
228
  Thumb.bindAttributes({
42
- // @ts-expect-error TODO: fix types inside symbiote
43
- thumbUrl: null,
44
229
  // @ts-expect-error TODO: fix types inside symbiote
45
230
  badgeIcon: null,
46
231
  // @ts-expect-error TODO: fix types inside symbiote
47
- id: null,
232
+ uid: null,
48
233
  });
@@ -61,9 +61,9 @@ export class EventEmitter {
61
61
  */
62
62
  private _debugPrint;
63
63
  /** @param {import('../../abstract/Block.js').Block} target */
64
- bindTarget(target: import('../../abstract/Block.js').Block): void;
64
+ bindTarget(target: import("../../abstract/Block.js").Block): void;
65
65
  /** @param {import('../../abstract/Block.js').Block} target */
66
- unbindTarget(target: import('../../abstract/Block.js').Block): void;
66
+ unbindTarget(target: import("../../abstract/Block.js").Block): void;
67
67
  /**
68
68
  * @private
69
69
  * @template {(typeof EventType)[keyof typeof EventType]} T
@@ -78,30 +78,30 @@ export class EventEmitter {
78
78
  * @param {TDebounce extends false | undefined ? unknown : () => unknown} [payload]
79
79
  * @param {{ debounce?: TDebounce }} [options]
80
80
  */
81
- emit<T extends "change" | "file-added" | "file-removed" | "file-upload-start" | "file-upload-progress" | "file-upload-success" | "file-upload-failed" | "file-url-changed" | "modal-open" | "modal-close" | "done-click" | "upload-click" | "activity-change" | "common-upload-start" | "common-upload-progress" | "common-upload-success" | "common-upload-failed" | "group-created", TDebounce extends number | boolean | undefined>(type: T, payload?: (TDebounce extends false | undefined ? unknown : () => unknown) | undefined, { debounce }?: {
82
- debounce?: TDebounce | undefined;
83
- } | undefined): void;
81
+ emit<T extends (typeof EventType)[keyof typeof EventType], TDebounce extends boolean | number | undefined>(type: T, payload?: TDebounce extends false | undefined ? unknown : () => unknown, { debounce }?: {
82
+ debounce?: TDebounce;
83
+ }): void;
84
84
  }
85
85
  export type EventPayload = {
86
- [EventType.FILE_ADDED]: import('../../index.js').OutputFileEntry<'idle'>;
87
- [EventType.FILE_REMOVED]: import('../../index.js').OutputFileEntry<'removed'>;
88
- [EventType.FILE_UPLOAD_START]: import('../../index.js').OutputFileEntry<'uploading'>;
89
- [EventType.FILE_UPLOAD_PROGRESS]: import('../../index.js').OutputFileEntry<'uploading'>;
90
- [EventType.FILE_UPLOAD_SUCCESS]: import('../../index.js').OutputFileEntry<'success'>;
91
- [EventType.FILE_UPLOAD_FAILED]: import('../../index.js').OutputFileEntry<'failed'>;
92
- [EventType.FILE_URL_CHANGED]: import('../../index.js').OutputFileEntry<'success'>;
86
+ [EventType.FILE_ADDED]: import("../../index.js").OutputFileEntry<"idle">;
87
+ [EventType.FILE_REMOVED]: import("../../index.js").OutputFileEntry<"removed">;
88
+ [EventType.FILE_UPLOAD_START]: import("../../index.js").OutputFileEntry<"uploading">;
89
+ [EventType.FILE_UPLOAD_PROGRESS]: import("../../index.js").OutputFileEntry<"uploading">;
90
+ [EventType.FILE_UPLOAD_SUCCESS]: import("../../index.js").OutputFileEntry<"success">;
91
+ [EventType.FILE_UPLOAD_FAILED]: import("../../index.js").OutputFileEntry<"failed">;
92
+ [EventType.FILE_URL_CHANGED]: import("../../index.js").OutputFileEntry<"success">;
93
93
  [EventType.MODAL_OPEN]: void;
94
94
  [EventType.MODAL_CLOSE]: void;
95
95
  [EventType.ACTIVITY_CHANGE]: {
96
- activity: import('../../abstract/ActivityBlock.js').ActivityType;
96
+ activity: import("../../abstract/ActivityBlock.js").ActivityType;
97
97
  };
98
98
  [EventType.UPLOAD_CLICK]: void;
99
- [EventType.DONE_CLICK]: import('../../index.js').OutputCollectionState;
100
- [EventType.COMMON_UPLOAD_START]: import('../../index.js').OutputCollectionState<'uploading'>;
101
- [EventType.COMMON_UPLOAD_PROGRESS]: import('../../index.js').OutputCollectionState<'uploading'>;
102
- [EventType.COMMON_UPLOAD_SUCCESS]: import('../../index.js').OutputCollectionState<'success'>;
103
- [EventType.COMMON_UPLOAD_FAILED]: import('../../index.js').OutputCollectionState<'failed'>;
104
- [EventType.CHANGE]: import('../../index.js').OutputCollectionState;
105
- [EventType.GROUP_CREATED]: import('../../index.js').OutputCollectionState<'success', 'has-group'>;
99
+ [EventType.DONE_CLICK]: import("../../index.js").OutputCollectionState;
100
+ [EventType.COMMON_UPLOAD_START]: import("../../index.js").OutputCollectionState<"uploading">;
101
+ [EventType.COMMON_UPLOAD_PROGRESS]: import("../../index.js").OutputCollectionState<"uploading">;
102
+ [EventType.COMMON_UPLOAD_SUCCESS]: import("../../index.js").OutputCollectionState<"success">;
103
+ [EventType.COMMON_UPLOAD_FAILED]: import("../../index.js").OutputCollectionState<"failed">;
104
+ [EventType.CHANGE]: import("../../index.js").OutputCollectionState;
105
+ [EventType.GROUP_CREATED]: import("../../index.js").OutputCollectionState<"success", "has-group">;
106
106
  };
107
107
  //# sourceMappingURL=EventEmitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["EventEmitter.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;IAmBE,uDAAuD;IACvD,kCADsB,OAAO,EAAE,KAAK,IAAI,EAGvC;IArBD;;;OAGG;IACH,sBAA0B;IAE1B;;;OAGG;IACH,iBAAqB;IAErB;;;OAGG;IACH,oBAAmB;IAOnB,8DAA8D;IAC9D,mBADY,OAAO,yBAAyB,EAAE,KAAK,QAGlD;IAED,8DAA8D;IAC9D,qBADY,OAAO,yBAAyB,EAAE,KAAK,QAGlD;IAED;;;;;OAKG;IACH,kBAaC;IAED;;;;;;OAMG;IACH,ifAHiE,OAAO;;yBAkBvE;CACF;2BAtGY;IACZ,CAAK,UAAU,UAAU,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAK,UAAU,YAAY,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAClF,CAAK,UAAU,iBAAiB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACzF,CAAK,UAAU,oBAAoB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAC5F,CAAK,UAAU,mBAAmB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzF,CAAK,UAAU,kBAAkB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAK,UAAU,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACtF,CAAK,UAAU,UAAU,CAAC,EAAE,IAAI,CAAC;IACjC,CAAK,UAAU,WAAW,CAAC,EAAE,IAAI,CAAC;IAClC,CAAK,UAAU,eAAe,CAAC,EAAE;QACjC,QAAc,EAAE,OAAO,iCAAiC,EAAE,YAAY,CAAC;KAClE,CAAC;IACN,CAAK,UAAU,YAAY,CAAC,EAAE,IAAI,CAAC;IACnC,CAAK,UAAU,UAAU,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;IAC3E,CAAK,UAAU,mBAAmB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACjG,CAAK,UAAU,sBAAsB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpG,CAAK,UAAU,qBAAqB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjG,CAAK,UAAU,oBAAoB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/F,CAAK,UAAU,MAAM,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;IACvE,CAAK,UAAU,aAAa,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;CACnG"}
1
+ {"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["EventEmitter.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;IAmBE,uDAAuD;IACvD,wBADY,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAGvC;IArBD;;;OAGG;IACH,sBAA0B;IAE1B;;;OAGG;IACH,iBAAqB;IAErB;;;OAGG;IACH,oBAAmB;IAOnB,8DAA8D;IAC9D,mBADY,OAAO,yBAAyB,EAAE,KAAK,QAGlD;IAED,8DAA8D;IAC9D,qBADY,OAAO,yBAAyB,EAAE,KAAK,QAGlD;IAED;;;;;OAKG;IACH,kBAaC;IAED;;;;;;OAMG;IACH,KAN0D,CAAC,SAA9C,CAAE,OAAO,SAAS,EAAE,MAAM,OAAO,SAAS,CAAE,EACb,SAAS,SAAvC,OAAO,GAAG,MAAM,GAAG,SAAU,QAChC,CAAC,YACD,SAAS,SAAS,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,OAAO,iBAC7D;QAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,QAiBlC;CACF;2BAtGY;IACZ,CAAK,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAK,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAClF,CAAK,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACzF,CAAK,SAAS,CAAC,oBAAoB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAC5F,CAAK,SAAS,CAAC,mBAAmB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzF,CAAK,SAAS,CAAC,kBAAkB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAK,SAAS,CAAC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACtF,CAAK,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IACjC,CAAK,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAClC,CAAK,SAAS,CAAC,eAAe,CAAC,EAAE;QAC3B,QAAQ,EAAE,OAAO,iCAAiC,EAAE,YAAY,CAAC;KAClE,CAAC;IACN,CAAK,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;IACnC,CAAK,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;IAC3E,CAAK,SAAS,CAAC,mBAAmB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACjG,CAAK,SAAS,CAAC,sBAAsB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpG,CAAK,SAAS,CAAC,qBAAqB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjG,CAAK,SAAS,CAAC,oBAAoB,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/F,CAAK,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC;IACvE,CAAK,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,gBAAgB,EAAE,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;CACnG"}
@@ -1,7 +1,7 @@
1
- export type UploadCtxProvider = (new () => {
2
- addEventListener<T extends "change" | "file-added" | "file-removed" | "file-upload-start" | "file-upload-progress" | "file-upload-success" | "file-upload-failed" | "file-url-changed" | "modal-open" | "modal-close" | "done-click" | "upload-click" | "activity-change" | "common-upload-start" | "common-upload-progress" | "common-upload-success" | "common-upload-failed" | "group-created">(type: T, listener: (e: CustomEvent<import("./EventEmitter.js").EventPayload[T]>) => void, options?: boolean | AddEventListenerOptions): void;
3
- removeEventListener<T_1 extends "change" | "file-added" | "file-removed" | "file-upload-start" | "file-upload-progress" | "file-upload-success" | "file-upload-failed" | "file-url-changed" | "modal-open" | "modal-close" | "done-click" | "upload-click" | "activity-change" | "common-upload-start" | "common-upload-progress" | "common-upload-success" | "common-upload-failed" | "group-created">(type: T_1, listener: (e: CustomEvent<import("./EventEmitter.js").EventPayload[T_1]>) => void, options?: boolean | EventListenerOptions): void;
4
- } & UploadCtxProviderClass) & Omit<typeof UploadCtxProviderClass, "new">;
1
+ export type UploadCtxProvider = import("../../utils/mixinClass.js").MixinClass<typeof UploadCtxProviderClass, {
2
+ addEventListener<T extends (typeof import("./EventEmitter.js").EventType)[keyof typeof import("./EventEmitter.js").EventType]>(type: T, listener: (e: CustomEvent<import("./EventEmitter.js").EventPayload[T]>) => void, options?: boolean | AddEventListenerOptions): void;
3
+ removeEventListener<T extends (typeof import("./EventEmitter.js").EventType)[keyof typeof import("./EventEmitter.js").EventType]>(type: T, listener: (e: CustomEvent<import("./EventEmitter.js").EventPayload[T]>) => void, options?: boolean | EventListenerOptions): void;
4
+ }>;
5
5
  /**
6
6
  * @typedef {import('../../utils/mixinClass.js').MixinClass<
7
7
  * typeof UploadCtxProviderClass,
@@ -1 +1 @@
1
- {"version":3,"file":"UploadCtxProvider.d.ts","sourceRoot":"","sources":["UploadCtxProvider.js"],"names":[],"mappings":";2dA8BoF,IAAI,YACrE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;oeAKsE,IAAI,YACrE,OAAO,GAAG,oBAAoB,GACvC,IAAI;;AAjBd;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kDAAoH;AAxCpH;CAcC;;;;8BAhB6B,iCAAiC;0BACrC,mBAAmB"}
1
+ {"version":3,"file":"UploadCtxProvider.d.ts","sourceRoot":"","sources":["UploadCtxProvider.js"],"names":[],"mappings":"gCAuBa,OAAO,2BAA2B,EAAE,UAAU,CAC1D,OAAW,sBAAsB,EACjC;IACM,gBAAgB,CACd,CAAC,SAAS,CAAC,cAAc,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,cAAc,mBAAmB,EAAE,SAAS,CAAC,EAE5G,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC/E,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IACR,mBAAmB,CACjB,CAAC,SAAS,CAAC,cAAc,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,cAAc,mBAAmB,EAAE,SAAS,CAAC,EAE5G,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC/E,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;CACT,CACF;AAnBJ;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,gCAA4C,iBAAiB,CAAuD;AAxCpH;CAcC;;;;8BAhB6B,iCAAiC;0BACrC,mBAAmB"}
@@ -25,8 +25,8 @@ export class UploadList extends UploaderBlock {
25
25
  '*commonProgress': number;
26
26
  '*uploadList': never[];
27
27
  '*uploadQueue': import("@uploadcare/upload-client").Queue;
28
- '*collectionErrors': any[];
29
- '*collectionState': import("../../types").OutputCollectionState<import("../../types").OutputCollectionStatus, "maybe-has-group"> | null;
28
+ '*collectionErrors': ReturnType<import("../../types").OutputErrorCollection>[];
29
+ '*collectionState': import("../../types").OutputCollectionState | null;
30
30
  '*groupInfo': import("@uploadcare/upload-client").UploadcareGroup | null;
31
31
  '*uploadTrigger': Set<string>;
32
32
  '*secureUploadsManager': import("../../abstract/SecureUploadsManager.js").SecureUploadsManager | null;
@@ -49,7 +49,7 @@ export class UploadList extends UploaderBlock {
49
49
  export namespace UploadList {
50
50
  let template: string;
51
51
  }
52
- export type FilesViewMode = 'grid' | 'list';
52
+ export type FilesViewMode = "grid" | "list";
53
53
  export type Summary = {
54
54
  total: number;
55
55
  succeed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"UploadList.d.ts","sourceRoot":"","sources":["UploadList.js"],"names":[],"mappings":"AAMA,+CAA+C;AAE/C;;;;;;;GAOG;AAEH;IAKE,4BAAoD;IAKlD;;;;;;;;;;;;;;;;;;;;;;;;;;MA0BC;IAGH,eAAe;IACf,yCASQ;IAER,eAAe;IACf,4BAuCC;IAED;;;OAGG;IACH,uBAmBC;CAwEF;;;;4BAvMa,MAAM,GAAG,MAAM;sBAGhB;IACZ,KAAS,EAAE,MAAM,CAAC;IAClB,OAAW,EAAE,MAAM,CAAC;IACpB,SAAa,EAAE,MAAM,CAAC;IACtB,MAAU,EAAE,MAAM,CAAC;CAChB;8BAZ0B,iCAAiC"}
1
+ {"version":3,"file":"UploadList.d.ts","sourceRoot":"","sources":["UploadList.js"],"names":[],"mappings":"AAMA,+CAA+C;AAE/C;;;;;;;GAOG;AAEH;IAKE,4BAAoD;IAKlD;;;;;;;;;;;;;;;;+CALwC,aAAU;mCAOhD,aAAQ;6BAGN,2BACL;;wCAMK,wCAAwB;;;;;;MAc3B;IAGH,eAAe;IACf,yCASQ;IAER,eAAe;IACf,4BAuCC;IAED;;;OAGG;IACH,uBAmBC;CAwEF;;;;4BAvMa,MAAM,GAAG,MAAM;sBAGhB;IACR,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;8BAZ0B,iCAAiC"}
@@ -3,15 +3,15 @@
3
3
  * @param {String} [color2]
4
4
  * @returns {String}
5
5
  */
6
- export function checkerboardCssBg(color1?: string | undefined, color2?: string | undefined): string;
6
+ export function checkerboardCssBg(color1?: string, color2?: string): string;
7
7
  /**
8
8
  * @param {String} [color]
9
9
  * @returns {String}
10
10
  */
11
- export function strokesCssBg(color?: string | undefined): string;
11
+ export function strokesCssBg(color?: string): string;
12
12
  /**
13
13
  * @param {String} [color]
14
14
  * @returns {String}
15
15
  */
16
- export function fileCssBg(color?: string | undefined, width?: number, height?: number): string;
16
+ export function fileCssBg(color?: string, width?: number, height?: number): string;
17
17
  //# sourceMappingURL=svg-backgrounds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"svg-backgrounds.d.ts","sourceRoot":"","sources":["svg-backgrounds.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,oGAMC;AAED;;;GAGG;AACH,iEAIC;AAED;;;GAGG;AACH,+FAMC"}
1
+ {"version":3,"file":"svg-backgrounds.d.ts","sourceRoot":"","sources":["svg-backgrounds.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,4EAMC;AAED;;;GAGG;AACH,qDAIC;AAED;;;GAGG;AACH,mFAMC"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg-sprite.d.ts","sourceRoot":"","sources":["svg-sprite.js"],"names":[],"mappings":""}
1
+ {"version":3,"file":"svg-sprite.d.ts","sourceRoot":"","sources":["svg-sprite.js"],"names":[],"mappings":"wBAAe,kztBAAkztB"}
@@ -1 +1 @@
1
- {"version":3,"file":"UploadSource.d.ts","sourceRoot":"","sources":["UploadSource.js"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;GAWG;0BAEW,CAAC,mBAAmB,CAAC,CAAC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"UploadSource.d.ts","sourceRoot":"","sources":["UploadSource.js"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAEH;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;GAWG;0BAEW,CAAC,OAAO,YAAY,EAAE,MAAM,OAAO,YAAY,CAAC"}
@@ -4,7 +4,9 @@
4
4
  * @param {number} wait
5
5
  * @returns {T & { cancel: () => void }} }
6
6
  */
7
- export function debounce<T extends (...args: any[]) => any>(callback: T, wait: number): T & {
7
+ export function debounce<T extends {
8
+ (...args: any[]): any;
9
+ }>(callback: T, wait: number): T & {
8
10
  cancel: () => void;
9
11
  };
10
12
  //# sourceMappingURL=debounce.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["debounce.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,6CAL0B,GAAG,EAAE,KAAG,GAAG,qBAE1B,MAAM;YACU,MAAM,IAAI;EAepC"}
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["debounce.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,yBALyC,CAAC,SAA7B;IAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAG,YAC7B,CAAC,QACD,MAAM,GACJ,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAetC"}
@@ -1,4 +1,4 @@
1
- import { TRANSPARENT_PIXEL_SRC } from '../../../../utils/transparentPixelSrc.js';
1
+ import { TRANSPARENT_PIXEL_SRC } from '../../utils/transparentPixelSrc.js';
2
2
 
3
3
  export function preloadImage(src) {
4
4
  let image = new Image();
@@ -2,5 +2,5 @@
2
2
  * @param {File} imgFile
3
3
  * @param {Number} [size]
4
4
  */
5
- export function generateThumb(imgFile: File, size?: number | undefined): string | Promise<any>;
5
+ export function generateThumb(imgFile: File, size?: number): string | Promise<any>;
6
6
  //# sourceMappingURL=resizeImage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizeImage.d.ts","sourceRoot":"","sources":["resizeImage.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,uCAHW,IAAI,oDAsCd"}
1
+ {"version":3,"file":"resizeImage.d.ts","sourceRoot":"","sources":["resizeImage.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,uCAHW,IAAI,wCAsCd"}
@@ -1,4 +1,6 @@
1
- export function throttle<T extends (...args: any[]) => void>(fn: T, wait: number): T & {
1
+ export function throttle<T extends {
2
+ (...args: any[]): void;
3
+ }>(fn: T, wait: number): T & {
2
4
  readonly cancel: () => void;
3
5
  };
4
6
  //# sourceMappingURL=throttle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["throttle.js"],"names":[],"mappings":"AAQO,6CALmB,GAAG,EAAE,KAAG,IAAI,eAE3B,MAAM;qBACmB,MAAM,IAAI;EAsC7C"}
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["throttle.js"],"names":[],"mappings":"AAQO,yBALmC,CAAC,SAA9B;IAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;CAAG,MAC9B,CAAC,QACD,MAAM,GACJ,CAAC,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CAsC/C"}
@@ -2,5 +2,5 @@
2
2
  * @param {import('@uploadcare/upload-client').CustomUserAgentOptions} options
3
3
  * @returns {ReturnType<import('@uploadcare/upload-client').CustomUserAgentFn>}
4
4
  */
5
- export function customUserAgent(options: import('@uploadcare/upload-client').CustomUserAgentOptions): ReturnType<import('@uploadcare/upload-client').CustomUserAgentFn>;
5
+ export function customUserAgent(options: import("@uploadcare/upload-client").CustomUserAgentOptions): ReturnType<import("@uploadcare/upload-client").CustomUserAgentFn>;
6
6
  //# sourceMappingURL=userAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userAgent.d.ts","sourceRoot":"","sources":["userAgent.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,yCAHW,OAAO,2BAA2B,EAAE,sBAAsB,GACxD,WAAW,OAAO,2BAA2B,EAAE,iBAAiB,CAAC,CAQ7E"}
1
+ {"version":3,"file":"userAgent.d.ts","sourceRoot":"","sources":["userAgent.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,yCAHW,OAAO,2BAA2B,EAAE,sBAAsB,GACxD,UAAU,CAAC,OAAO,2BAA2B,EAAE,iBAAiB,CAAC,CAQ7E"}
package/env.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /** Do not edit this file manually. It's generated during build process. */
2
2
  export const PACKAGE_NAME: "blocks";
3
- export const PACKAGE_VERSION: "1.14.0";
3
+ export const PACKAGE_VERSION: "1.15.0";
4
4
  //# sourceMappingURL=env.d.ts.map
package/env.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["env.js"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,oCAAqC;AACrC,uCAAwC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["env.js"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,2BAA4B,QAAQ,CAAC;AACrC,8BAA+B,QAAQ,CAAC"}
package/env.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Do not edit this file manually. It's generated during build process. */
2
2
  export const PACKAGE_NAME = 'blocks';
3
- export const PACKAGE_VERSION = '1.14.0';
3
+ export const PACKAGE_VERSION = '1.15.0';
package/index.d.ts CHANGED
@@ -37,6 +37,7 @@ export { defineComponents } from "./abstract/defineComponents.js";
37
37
  export { defineLocale } from "./abstract/localeRegistry.js";
38
38
  export { loadFileUploaderFrom } from "./abstract/loadFileUploaderFrom.js";
39
39
  export { toKebabCase } from "./utils/toKebabCase.js";
40
+ export { ModalEvents } from "./abstract/ModalManager.js";
40
41
  export { BaseComponent, Data, UID } from "@symbiotejs/symbiote";
41
42
  export { UploadSource, ExternalUploadSource } from "./blocks/utils/UploadSource.js";
42
43
  //# sourceMappingURL=index.d.ts.map
package/index.js CHANGED
@@ -47,6 +47,7 @@ export { defineLocale } from './abstract/localeRegistry.js';
47
47
  export { loadFileUploaderFrom } from './abstract/loadFileUploaderFrom.js';
48
48
  export { toKebabCase } from './utils/toKebabCase.js';
49
49
  export { UploadSource, ExternalUploadSource } from './blocks/utils/UploadSource.js';
50
+ export { ModalEvents } from './abstract/ModalManager.js';
50
51
 
51
52
  export * from './env.js';
52
53
 
package/index.ssr.d.ts CHANGED
@@ -541,8 +541,16 @@ export const Modal: {
541
541
  is: string;
542
542
  bindAttributes: () => void;
543
543
  };
544
+ export namespace ModalEvents {
545
+ let ADD: string;
546
+ let DELETE: string;
547
+ let OPEN: string;
548
+ let CLOSE: string;
549
+ let CLOSE_ALL: string;
550
+ let DESTROY: string;
551
+ }
544
552
  export const PACKAGE_NAME: "blocks";
545
- export const PACKAGE_VERSION: "1.14.0";
553
+ export const PACKAGE_VERSION: "1.15.0";
546
554
  export const PresenceToggle: {
547
555
  new (): {};
548
556
  template: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.ssr.d.ts","sourceRoot":"","sources":["index.ssr.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAcE;AACF;;;;;;;;;;;;;;;EAcE;AACF;;;;;EAIE;AACF;;;;;;EAKE;AACF;;;;;;;;EAgBE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4IE;AACF;;;;;;;;EAuCE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AACF;;;;;;;;EAuCE;AACF;;;;;;;EA4GE;AACF;;;;;;;EAaE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEE;AACF;;;;;;;EAWE;AACF;;;;;;;EAWE;AACF;;;;;;;EASE;AACF;;;;;;EAKE;AACF;;;;;;;EAWE;AACF;;;;;;;EAME;AACF;;;;;;;EAWE;AACF;;;;;;;EA2IE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0EE;;;;;;;;;;;;;AAaF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqFE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AACF;;;;;;;;EAWE;AACF;;;;;;EAwBE;AACF;;;;;;;EAUE;AACF;;;;;;;;EAWE;AACF,oCAAqC;AACrC,uCAAwC;AACxC;;;;;;;EAME;AACF;;;;;;;EASE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DE;AACF;;;;;;;EAeE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDE;AACF;;;;;;;;;;;;EAWE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2EE;AACK,yCAAiC;AACjC,qCAA6B;AAC7B,6CAAqC;AACrC,oCAA4B"}
1
+ {"version":3,"file":"index.ssr.d.ts","sourceRoot":"","sources":["index.ssr.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAcE;AACF;;;;;;;;;;;;;;;EAcE;AACF;;;;;EAIE;AACF;;;;;;EAKE;AACF;;;;;;;;EAgBE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4IE;AACF;;;;;;;;EAuCE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AACF;;;;;;;;EAuCE;AACF;;;;;;;EA4GE;AACF;;;;;;;EAaE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEE;AACF;;;;;;;EAWE;AACF;;;;;;;EAWE;AACF;;;;;;;EASE;AACF;;;;;;EAKE;AACF;;;;;;;EAWE;AACF;;;;;;;EAME;AACF;;;;;;;EAWE;AACF;;;;;;;EA2IE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0EE;;;;;;;;;;;;;AAaF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqFE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AACF;;;;;;;;EAWE;AACF;;;;;;EAwBE;AACF;;;;;;;EAUE;AACF;;;;;;;;EAWE;;;;;;;;;AASF,oCAAqC;AACrC,uCAAwC;AACxC;;;;;;;EAME;AACF;;;;;;;EASE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDE;AACF;;;;;;;EAME;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DE;AACF;;;;;;;EAeE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDE;AACF;;;;;;EAKE;AACF;;;;;;EAKE;AACF;;;;;;;;;;;;;;;;EAeE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDE;AACF;;;;;;;;;;;;EAWE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2EE;AACK,yCAAiC;AACjC,qCAA6B;AAC7B,6CAAqC;AACrC,oCAA4B"}
package/index.ssr.js CHANGED
@@ -840,10 +840,10 @@ export const ExternalUploadSource = {
840
840
  export const FileItem = class {
841
841
  static template = `
842
842
  <div class="uc-inner" set="@finished: isFinished; @uploading: isUploading; @failed: isFailed; @focused: isFocused">
843
- <uc-thumb set="thumbUrl:thumbUrl;badgeIcon:badgeIcon"></uc-thumb>
843
+ <uc-thumb set="uid:uid;badgeIcon:badgeIcon"></uc-thumb>
844
844
 
845
845
  <div aria-atomic="true" aria-live="polite" class="uc-file-name-wrapper" set="@aria-label:ariaLabelStatusFile;">
846
- <span class="uc-file-name" set="@hidden: isFileName">{{itemName}}</span>
846
+ <span class="uc-file-name" set="@hidden: !showFileNames">{{itemName}}</span>
847
847
  <span class="uc-file-error" set="@hidden: !errorText;">{{errorText}}</span>
848
848
  <span class="uc-file-hint" set="@hidden: !hint">{{hint}}</span>
849
849
  </div>
@@ -870,7 +870,7 @@ export const FileItem = class {
870
870
  </div>
871
871
  <uc-progress-bar
872
872
  class="uc-progress-bar"
873
- set="value: progressValue; visible: progressVisible; @hasFileName: !isFileName"
873
+ set="value: progressValue; visible: progressVisible; @hasFileName: showFileNames;"
874
874
  >
875
875
  </uc-progress-bar>
876
876
  </div>
@@ -1050,8 +1050,16 @@ export const Modal = class {
1050
1050
  static is = `sym-1`;
1051
1051
  static bindAttributes = () => {};
1052
1052
  };
1053
+ export const ModalEvents = {
1054
+ ADD: "modal:add",
1055
+ DELETE: "modal:delete",
1056
+ OPEN: "modal:open",
1057
+ CLOSE: "modal:close",
1058
+ CLOSE_ALL: "modal:closeAll",
1059
+ DESTROY: "modal:destroy",
1060
+ };
1053
1061
  export const PACKAGE_NAME = `blocks`;
1054
- export const PACKAGE_VERSION = `1.14.0`;
1062
+ export const PACKAGE_VERSION = `1.15.0`;
1055
1063
  export const PresenceToggle = class {
1056
1064
  static template = `<slot></slot> `;
1057
1065
  static reg = () => {};
@@ -1291,15 +1299,13 @@ export const StartFrom = class {
1291
1299
  };
1292
1300
  export const Thumb = class {
1293
1301
  static template = `
1294
- <slot>
1295
- <div class="uc-thumb" set="style.backgroundImage: thumbUrl">
1296
- <div class="uc-badge">
1297
- <uc-icon set="@name: badgeIcon"></uc-icon>
1298
- </div>
1302
+ <div class="uc-thumb" set="style.backgroundImage: thumbUrl">
1303
+ <div class="uc-badge">
1304
+ <uc-icon set="@name: badgeIcon"></uc-icon>
1299
1305
  </div>
1300
- </slot>
1306
+ </div>
1301
1307
  `;
1302
- static observedAttributes = ["thumbUrl", "badgeIcon", "id"];
1308
+ static observedAttributes = ["badgeIcon", "uid"];
1303
1309
  static extSrcList = {
1304
1310
  FACEBOOK: "facebook",
1305
1311
  DROPBOX: "dropbox",
@@ -125,6 +125,7 @@ declare const _default: {
125
125
  failed: string;
126
126
  uploading: string;
127
127
  idle: string;
128
+ queued: string;
128
129
  'a11y-file-item-status': string;
129
130
  'waiting-for': string;
130
131
  };
@@ -126,6 +126,7 @@ export default {
126
126
  failed: 'فشل',
127
127
  uploading: 'جارٍ التحميل',
128
128
  idle: 'خامل',
129
+ queued: 'في الانتظار',
129
130
  'a11y-file-item-status': 'الملف {{fileName}} في حالة {{status}}',
130
131
  'waiting-for': 'في انتظار {{source}}',
131
132
  };
@@ -117,6 +117,7 @@ declare const _default: {
117
117
  failed: string;
118
118
  uploading: string;
119
119
  idle: string;
120
+ queued: string;
120
121
  'a11y-file-item-status': string;
121
122
  'waiting-for': string;
122
123
  };
@@ -118,6 +118,7 @@ export default {
118
118
  failed: 'Uğursuz',
119
119
  uploading: 'Yüklənir',
120
120
  idle: 'Boş',
121
+ queued: 'Növbədə',
121
122
  'a11y-file-item-status': '{{fileName}} faylı {{status}} statusundadır',
122
123
  'waiting-for': '{{source}} gözlənilir',
123
124
  };