@uploadcare/file-uploader 0.50.1-alpha.2

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 (631) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -0
  3. package/abstract/ActivityBlock.d.ts +68 -0
  4. package/abstract/ActivityBlock.d.ts.map +1 -0
  5. package/abstract/ActivityBlock.js +207 -0
  6. package/abstract/Block.d.ts +99 -0
  7. package/abstract/Block.d.ts.map +1 -0
  8. package/abstract/Block.js +349 -0
  9. package/abstract/CTX.d.ts +31 -0
  10. package/abstract/CTX.d.ts.map +1 -0
  11. package/abstract/CTX.js +38 -0
  12. package/abstract/LocaleManager.d.ts +38 -0
  13. package/abstract/LocaleManager.d.ts.map +1 -0
  14. package/abstract/LocaleManager.js +127 -0
  15. package/abstract/SecureUploadsManager.d.ts +22 -0
  16. package/abstract/SecureUploadsManager.d.ts.map +1 -0
  17. package/abstract/SecureUploadsManager.js +87 -0
  18. package/abstract/SolutionBlock.d.ts +23 -0
  19. package/abstract/SolutionBlock.d.ts.map +1 -0
  20. package/abstract/SolutionBlock.js +23 -0
  21. package/abstract/TypedCollection.d.ts +127 -0
  22. package/abstract/TypedCollection.d.ts.map +1 -0
  23. package/abstract/TypedCollection.js +245 -0
  24. package/abstract/TypedData.d.ts +47 -0
  25. package/abstract/TypedData.d.ts.map +1 -0
  26. package/abstract/TypedData.js +77 -0
  27. package/abstract/UploaderBlock.d.ts +114 -0
  28. package/abstract/UploaderBlock.d.ts.map +1 -0
  29. package/abstract/UploaderBlock.js +444 -0
  30. package/abstract/UploaderPublicApi.d.ts +90 -0
  31. package/abstract/UploaderPublicApi.d.ts.map +1 -0
  32. package/abstract/UploaderPublicApi.js +316 -0
  33. package/abstract/ValidationManager.d.ts +31 -0
  34. package/abstract/ValidationManager.d.ts.map +1 -0
  35. package/abstract/ValidationManager.js +162 -0
  36. package/abstract/a11y.d.ts +20 -0
  37. package/abstract/a11y.d.ts.map +1 -0
  38. package/abstract/a11y.js +118 -0
  39. package/abstract/buildOutputCollectionState.d.ts +8 -0
  40. package/abstract/buildOutputCollectionState.d.ts.map +1 -0
  41. package/abstract/buildOutputCollectionState.js +136 -0
  42. package/abstract/connectBlocksFrom.d.ts +8 -0
  43. package/abstract/connectBlocksFrom.d.ts.map +1 -0
  44. package/abstract/connectBlocksFrom.js +34 -0
  45. package/abstract/l10nProcessor.d.ts +7 -0
  46. package/abstract/l10nProcessor.d.ts.map +1 -0
  47. package/abstract/l10nProcessor.js +80 -0
  48. package/abstract/localeRegistry.d.ts +5 -0
  49. package/abstract/localeRegistry.d.ts.map +1 -0
  50. package/abstract/localeRegistry.js +63 -0
  51. package/abstract/registerBlocks.d.ts +5 -0
  52. package/abstract/registerBlocks.d.ts.map +1 -0
  53. package/abstract/registerBlocks.js +31 -0
  54. package/abstract/sharedConfigKey.d.ts +2 -0
  55. package/abstract/sharedConfigKey.d.ts.map +1 -0
  56. package/abstract/sharedConfigKey.js +8 -0
  57. package/abstract/uploadEntrySchema.d.ts +64 -0
  58. package/abstract/uploadEntrySchema.d.ts.map +1 -0
  59. package/abstract/uploadEntrySchema.js +138 -0
  60. package/blocks/ActivityHeader/ActivityHeader.d.ts +4 -0
  61. package/blocks/ActivityHeader/ActivityHeader.d.ts.map +1 -0
  62. package/blocks/ActivityHeader/ActivityHeader.js +3 -0
  63. package/blocks/ActivityHeader/activity-header.css +14 -0
  64. package/blocks/CameraSource/CameraSource.d.ts +39 -0
  65. package/blocks/CameraSource/CameraSource.d.ts.map +1 -0
  66. package/blocks/CameraSource/CameraSource.js +253 -0
  67. package/blocks/CameraSource/camera-source.css +107 -0
  68. package/blocks/CloudImageEditor/index.css +1 -0
  69. package/blocks/CloudImageEditor/index.d.ts +2 -0
  70. package/blocks/CloudImageEditor/index.d.ts.map +1 -0
  71. package/blocks/CloudImageEditor/index.js +1 -0
  72. package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts +58 -0
  73. package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts.map +1 -0
  74. package/blocks/CloudImageEditor/src/CloudImageEditorBlock.js +228 -0
  75. package/blocks/CloudImageEditor/src/CropFrame.d.ts +146 -0
  76. package/blocks/CloudImageEditor/src/CropFrame.d.ts.map +1 -0
  77. package/blocks/CloudImageEditor/src/CropFrame.js +511 -0
  78. package/blocks/CloudImageEditor/src/EditorButtonControl.d.ts +10 -0
  79. package/blocks/CloudImageEditor/src/EditorButtonControl.d.ts.map +1 -0
  80. package/blocks/CloudImageEditor/src/EditorButtonControl.js +44 -0
  81. package/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts +6 -0
  82. package/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts.map +1 -0
  83. package/blocks/CloudImageEditor/src/EditorCropButtonControl.js +39 -0
  84. package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts +18 -0
  85. package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts.map +1 -0
  86. package/blocks/CloudImageEditor/src/EditorFilterControl.js +155 -0
  87. package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts +106 -0
  88. package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts.map +1 -0
  89. package/blocks/CloudImageEditor/src/EditorImageCropper.js +551 -0
  90. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts +132 -0
  91. package/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -0
  92. package/blocks/CloudImageEditor/src/EditorImageFader.js +454 -0
  93. package/blocks/CloudImageEditor/src/EditorOperationControl.d.ts +9 -0
  94. package/blocks/CloudImageEditor/src/EditorOperationControl.d.ts.map +1 -0
  95. package/blocks/CloudImageEditor/src/EditorOperationControl.js +39 -0
  96. package/blocks/CloudImageEditor/src/EditorScroller.d.ts +7 -0
  97. package/blocks/CloudImageEditor/src/EditorScroller.d.ts.map +1 -0
  98. package/blocks/CloudImageEditor/src/EditorScroller.js +33 -0
  99. package/blocks/CloudImageEditor/src/EditorSlider.d.ts +24 -0
  100. package/blocks/CloudImageEditor/src/EditorSlider.d.ts.map +1 -0
  101. package/blocks/CloudImageEditor/src/EditorSlider.js +118 -0
  102. package/blocks/CloudImageEditor/src/EditorToolbar.d.ts +104 -0
  103. package/blocks/CloudImageEditor/src/EditorToolbar.d.ts.map +1 -0
  104. package/blocks/CloudImageEditor/src/EditorToolbar.js +441 -0
  105. package/blocks/CloudImageEditor/src/crop-utils.d.ts +123 -0
  106. package/blocks/CloudImageEditor/src/crop-utils.d.ts.map +1 -0
  107. package/blocks/CloudImageEditor/src/crop-utils.js +729 -0
  108. package/blocks/CloudImageEditor/src/cropper-constants.d.ts +11 -0
  109. package/blocks/CloudImageEditor/src/cropper-constants.d.ts.map +1 -0
  110. package/blocks/CloudImageEditor/src/cropper-constants.js +11 -0
  111. package/blocks/CloudImageEditor/src/css/common.css +1157 -0
  112. package/blocks/CloudImageEditor/src/css/icons.css +12 -0
  113. package/blocks/CloudImageEditor/src/css/index.css +2 -0
  114. package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts +20 -0
  115. package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts.map +1 -0
  116. package/blocks/CloudImageEditor/src/elements/button/BtnUi.js +90 -0
  117. package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts +11 -0
  118. package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts.map +1 -0
  119. package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.js +52 -0
  120. package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts +17 -0
  121. package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts.map +1 -0
  122. package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.js +71 -0
  123. package/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts +16 -0
  124. package/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts.map +1 -0
  125. package/blocks/CloudImageEditor/src/elements/slider/SliderUi.js +178 -0
  126. package/blocks/CloudImageEditor/src/index.d.ts +15 -0
  127. package/blocks/CloudImageEditor/src/index.d.ts.map +1 -0
  128. package/blocks/CloudImageEditor/src/index.js +14 -0
  129. package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts +15 -0
  130. package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts.map +1 -0
  131. package/blocks/CloudImageEditor/src/lib/FocusVisible.js +33 -0
  132. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts +10 -0
  133. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts.map +1 -0
  134. package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.js +256 -0
  135. package/blocks/CloudImageEditor/src/lib/classNames.d.ts +3 -0
  136. package/blocks/CloudImageEditor/src/lib/classNames.d.ts.map +1 -0
  137. package/blocks/CloudImageEditor/src/lib/classNames.js +34 -0
  138. package/blocks/CloudImageEditor/src/lib/linspace.d.ts +8 -0
  139. package/blocks/CloudImageEditor/src/lib/linspace.d.ts.map +1 -0
  140. package/blocks/CloudImageEditor/src/lib/linspace.js +14 -0
  141. package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts +2 -0
  142. package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts.map +1 -0
  143. package/blocks/CloudImageEditor/src/lib/parseCropPreset.js +14 -0
  144. package/blocks/CloudImageEditor/src/lib/parseTabs.d.ts +2 -0
  145. package/blocks/CloudImageEditor/src/lib/parseTabs.d.ts.map +1 -0
  146. package/blocks/CloudImageEditor/src/lib/parseTabs.js +14 -0
  147. package/blocks/CloudImageEditor/src/lib/pick.d.ts +7 -0
  148. package/blocks/CloudImageEditor/src/lib/pick.d.ts.map +1 -0
  149. package/blocks/CloudImageEditor/src/lib/pick.js +15 -0
  150. package/blocks/CloudImageEditor/src/lib/preloadImage.d.ts +11 -0
  151. package/blocks/CloudImageEditor/src/lib/preloadImage.d.ts.map +1 -0
  152. package/blocks/CloudImageEditor/src/lib/preloadImage.js +38 -0
  153. package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts +14 -0
  154. package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts.map +1 -0
  155. package/blocks/CloudImageEditor/src/lib/transformationUtils.js +167 -0
  156. package/blocks/CloudImageEditor/src/state.d.ts +38 -0
  157. package/blocks/CloudImageEditor/src/state.d.ts.map +1 -0
  158. package/blocks/CloudImageEditor/src/state.js +92 -0
  159. package/blocks/CloudImageEditor/src/svg-sprite.d.ts +3 -0
  160. package/blocks/CloudImageEditor/src/svg-sprite.d.ts.map +1 -0
  161. package/blocks/CloudImageEditor/src/svg-sprite.js +1 -0
  162. package/blocks/CloudImageEditor/src/template.d.ts +2 -0
  163. package/blocks/CloudImageEditor/src/template.d.ts.map +1 -0
  164. package/blocks/CloudImageEditor/src/template.js +36 -0
  165. package/blocks/CloudImageEditor/src/toolbar-constants.d.ts +58 -0
  166. package/blocks/CloudImageEditor/src/toolbar-constants.d.ts.map +1 -0
  167. package/blocks/CloudImageEditor/src/toolbar-constants.js +114 -0
  168. package/blocks/CloudImageEditor/src/types.d.ts +58 -0
  169. package/blocks/CloudImageEditor/src/types.d.ts.map +1 -0
  170. package/blocks/CloudImageEditor/src/types.js +61 -0
  171. package/blocks/CloudImageEditor/src/util.d.ts +2 -0
  172. package/blocks/CloudImageEditor/src/util.d.ts.map +1 -0
  173. package/blocks/CloudImageEditor/src/util.js +19 -0
  174. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts +31 -0
  175. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts.map +1 -0
  176. package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.js +113 -0
  177. package/blocks/CloudImageEditorActivity/index.css +13 -0
  178. package/blocks/CloudImageEditorActivity/test.d.ts +2 -0
  179. package/blocks/CloudImageEditorActivity/test.d.ts.map +1 -0
  180. package/blocks/CloudImageEditorActivity/test.js +9 -0
  181. package/blocks/Config/Config.d.ts +67 -0
  182. package/blocks/Config/Config.d.ts.map +1 -0
  183. package/blocks/Config/Config.js +246 -0
  184. package/blocks/Config/config.css +3 -0
  185. package/blocks/Config/initialConfig.d.ts +6 -0
  186. package/blocks/Config/initialConfig.d.ts.map +1 -0
  187. package/blocks/Config/initialConfig.js +69 -0
  188. package/blocks/Config/normalizeConfigValue.d.ts +3 -0
  189. package/blocks/Config/normalizeConfigValue.d.ts.map +1 -0
  190. package/blocks/Config/normalizeConfigValue.js +177 -0
  191. package/blocks/Copyright/Copyright.d.ts +4 -0
  192. package/blocks/Copyright/Copyright.d.ts.map +1 -0
  193. package/blocks/Copyright/Copyright.js +24 -0
  194. package/blocks/Copyright/copyright.css +31 -0
  195. package/blocks/DropArea/DropArea.d.ts +49 -0
  196. package/blocks/DropArea/DropArea.d.ts.map +1 -0
  197. package/blocks/DropArea/DropArea.js +273 -0
  198. package/blocks/DropArea/addDropzone.d.ts +21 -0
  199. package/blocks/DropArea/addDropzone.d.ts.map +1 -0
  200. package/blocks/DropArea/addDropzone.js +137 -0
  201. package/blocks/DropArea/drop-area.css +188 -0
  202. package/blocks/DropArea/getDropItems.d.ts +16 -0
  203. package/blocks/DropArea/getDropItems.d.ts.map +1 -0
  204. package/blocks/DropArea/getDropItems.js +167 -0
  205. package/blocks/ExternalSource/ExternalSource.d.ts +98 -0
  206. package/blocks/ExternalSource/ExternalSource.d.ts.map +1 -0
  207. package/blocks/ExternalSource/ExternalSource.js +268 -0
  208. package/blocks/ExternalSource/buildStyles.d.ts +27 -0
  209. package/blocks/ExternalSource/buildStyles.d.ts.map +1 -0
  210. package/blocks/ExternalSource/buildStyles.js +133 -0
  211. package/blocks/ExternalSource/external-source.css +65 -0
  212. package/blocks/ExternalSource/messages.d.ts +3 -0
  213. package/blocks/ExternalSource/messages.d.ts.map +1 -0
  214. package/blocks/ExternalSource/messages.js +35 -0
  215. package/blocks/ExternalSource/query-string.d.ts +8 -0
  216. package/blocks/ExternalSource/query-string.d.ts.map +1 -0
  217. package/blocks/ExternalSource/query-string.js +14 -0
  218. package/blocks/FileItem/FileItem.d.ts +97 -0
  219. package/blocks/FileItem/FileItem.d.ts.map +1 -0
  220. package/blocks/FileItem/FileItem.js +460 -0
  221. package/blocks/FileItem/file-item.css +140 -0
  222. package/blocks/FormInput/FormInput.d.ts +7 -0
  223. package/blocks/FormInput/FormInput.d.ts.map +1 -0
  224. package/blocks/FormInput/FormInput.js +92 -0
  225. package/blocks/Icon/Icon.d.ts +12 -0
  226. package/blocks/Icon/Icon.d.ts.map +1 -0
  227. package/blocks/Icon/Icon.js +44 -0
  228. package/blocks/Icon/icon.css +12 -0
  229. package/blocks/Img/Img.d.ts +4 -0
  230. package/blocks/Img/Img.d.ts.map +1 -0
  231. package/blocks/Img/Img.js +21 -0
  232. package/blocks/Img/ImgBase.d.ts +80 -0
  233. package/blocks/Img/ImgBase.d.ts.map +1 -0
  234. package/blocks/Img/ImgBase.js +408 -0
  235. package/blocks/Img/ImgConfig.d.ts +31 -0
  236. package/blocks/Img/ImgConfig.d.ts.map +1 -0
  237. package/blocks/Img/ImgConfig.js +102 -0
  238. package/blocks/Img/configurations.d.ts +12 -0
  239. package/blocks/Img/configurations.d.ts.map +1 -0
  240. package/blocks/Img/configurations.js +14 -0
  241. package/blocks/Img/props-map.d.ts +29 -0
  242. package/blocks/Img/props-map.d.ts.map +1 -0
  243. package/blocks/Img/props-map.js +34 -0
  244. package/blocks/Img/test.css +16 -0
  245. package/blocks/Img/utils/parseObjectToString.d.ts +2 -0
  246. package/blocks/Img/utils/parseObjectToString.d.ts.map +1 -0
  247. package/blocks/Img/utils/parseObjectToString.js +13 -0
  248. package/blocks/Modal/Modal.d.ts +24 -0
  249. package/blocks/Modal/Modal.d.ts.map +1 -0
  250. package/blocks/Modal/Modal.js +116 -0
  251. package/blocks/Modal/modal.css +92 -0
  252. package/blocks/ProgressBar/ProgressBar.d.ts +10 -0
  253. package/blocks/ProgressBar/ProgressBar.d.ts.map +1 -0
  254. package/blocks/ProgressBar/ProgressBar.js +38 -0
  255. package/blocks/ProgressBar/progress-bar.css +25 -0
  256. package/blocks/ProgressBarCommon/ProgressBarCommon.d.ts +8 -0
  257. package/blocks/ProgressBarCommon/ProgressBarCommon.d.ts.map +1 -0
  258. package/blocks/ProgressBarCommon/ProgressBarCommon.js +44 -0
  259. package/blocks/ProgressBarCommon/progress-bar-common.css +16 -0
  260. package/blocks/Range/Range.d.ts +16 -0
  261. package/blocks/Range/Range.d.ts.map +1 -0
  262. package/blocks/Range/Range.js +44 -0
  263. package/blocks/Range/range.css +65 -0
  264. package/blocks/Select/Select.d.ts +9 -0
  265. package/blocks/Select/Select.d.ts.map +1 -0
  266. package/blocks/Select/Select.js +35 -0
  267. package/blocks/Select/select.css +22 -0
  268. package/blocks/SimpleBtn/SimpleBtn.d.ts +26 -0
  269. package/blocks/SimpleBtn/SimpleBtn.d.ts.map +1 -0
  270. package/blocks/SimpleBtn/SimpleBtn.js +54 -0
  271. package/blocks/SimpleBtn/simple-btn.css +64 -0
  272. package/blocks/SourceBtn/SourceBtn.d.ts +58 -0
  273. package/blocks/SourceBtn/SourceBtn.d.ts.map +1 -0
  274. package/blocks/SourceBtn/SourceBtn.js +145 -0
  275. package/blocks/SourceBtn/source-btn.css +45 -0
  276. package/blocks/SourceList/SourceList.d.ts +4 -0
  277. package/blocks/SourceList/SourceList.d.ts.map +1 -0
  278. package/blocks/SourceList/SourceList.js +20 -0
  279. package/blocks/StartFrom/StartFrom.d.ts +7 -0
  280. package/blocks/StartFrom/StartFrom.d.ts.map +1 -0
  281. package/blocks/StartFrom/StartFrom.js +14 -0
  282. package/blocks/StartFrom/start-from.css +32 -0
  283. package/blocks/UploadCtxProvider/EventEmitter.d.ts +107 -0
  284. package/blocks/UploadCtxProvider/EventEmitter.d.ts.map +1 -0
  285. package/blocks/UploadCtxProvider/EventEmitter.js +132 -0
  286. package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts +35 -0
  287. package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts.map +1 -0
  288. package/blocks/UploadCtxProvider/UploadCtxProvider.js +45 -0
  289. package/blocks/UploadList/UploadList.d.ts +59 -0
  290. package/blocks/UploadList/UploadList.d.ts.map +1 -0
  291. package/blocks/UploadList/UploadList.js +237 -0
  292. package/blocks/UploadList/upload-list.css +74 -0
  293. package/blocks/UrlSource/UrlSource.d.ts +9 -0
  294. package/blocks/UrlSource/UrlSource.d.ts.map +1 -0
  295. package/blocks/UrlSource/UrlSource.js +61 -0
  296. package/blocks/UrlSource/url-source.css +24 -0
  297. package/blocks/svg-backgrounds/svg-backgrounds.d.ts +17 -0
  298. package/blocks/svg-backgrounds/svg-backgrounds.d.ts.map +1 -0
  299. package/blocks/svg-backgrounds/svg-backgrounds.js +45 -0
  300. package/blocks/themes/uc-basic/common.css +116 -0
  301. package/blocks/themes/uc-basic/config.css +4 -0
  302. package/blocks/themes/uc-basic/index.css +32 -0
  303. package/blocks/themes/uc-basic/svg-sprite.d.ts +3 -0
  304. package/blocks/themes/uc-basic/svg-sprite.d.ts.map +1 -0
  305. package/blocks/themes/uc-basic/svg-sprite.js +1 -0
  306. package/blocks/themes/uc-basic/theme.css +232 -0
  307. package/blocks/utils/UploadSource.d.ts +9 -0
  308. package/blocks/utils/UploadSource.d.ts.map +1 -0
  309. package/blocks/utils/UploadSource.js +8 -0
  310. package/blocks/utils/abilities.d.ts +2 -0
  311. package/blocks/utils/abilities.d.ts.map +1 -0
  312. package/blocks/utils/abilities.js +3 -0
  313. package/blocks/utils/comma-separated.d.ts +3 -0
  314. package/blocks/utils/comma-separated.d.ts.map +1 -0
  315. package/blocks/utils/comma-separated.js +19 -0
  316. package/blocks/utils/debounce.d.ts +10 -0
  317. package/blocks/utils/debounce.d.ts.map +1 -0
  318. package/blocks/utils/debounce.js +22 -0
  319. package/blocks/utils/resizeImage.d.ts +6 -0
  320. package/blocks/utils/resizeImage.d.ts.map +1 -0
  321. package/blocks/utils/resizeImage.js +40 -0
  322. package/blocks/utils/throttle.d.ts +4 -0
  323. package/blocks/utils/throttle.d.ts.map +1 -0
  324. package/blocks/utils/throttle.js +45 -0
  325. package/blocks/utils/userAgent.d.ts +6 -0
  326. package/blocks/utils/userAgent.d.ts.map +1 -0
  327. package/blocks/utils/userAgent.js +14 -0
  328. package/env.d.ts +4 -0
  329. package/env.d.ts.map +1 -0
  330. package/env.js +3 -0
  331. package/index.d.ts +39 -0
  332. package/index.d.ts.map +1 -0
  333. package/index.js +51 -0
  334. package/index.ssr.d.ts +961 -0
  335. package/index.ssr.d.ts.map +1 -0
  336. package/index.ssr.js +1461 -0
  337. package/locales/file-uploader/ar.d.ts +114 -0
  338. package/locales/file-uploader/ar.d.ts.map +1 -0
  339. package/locales/file-uploader/ar.js +113 -0
  340. package/locales/file-uploader/az.d.ts +106 -0
  341. package/locales/file-uploader/az.d.ts.map +1 -0
  342. package/locales/file-uploader/az.js +105 -0
  343. package/locales/file-uploader/ca.d.ts +108 -0
  344. package/locales/file-uploader/ca.d.ts.map +1 -0
  345. package/locales/file-uploader/ca.js +108 -0
  346. package/locales/file-uploader/cs.d.ts +110 -0
  347. package/locales/file-uploader/cs.d.ts.map +1 -0
  348. package/locales/file-uploader/cs.js +110 -0
  349. package/locales/file-uploader/da.d.ts +106 -0
  350. package/locales/file-uploader/da.d.ts.map +1 -0
  351. package/locales/file-uploader/da.js +106 -0
  352. package/locales/file-uploader/de.d.ts +106 -0
  353. package/locales/file-uploader/de.d.ts.map +1 -0
  354. package/locales/file-uploader/de.js +107 -0
  355. package/locales/file-uploader/el.d.ts +106 -0
  356. package/locales/file-uploader/el.d.ts.map +1 -0
  357. package/locales/file-uploader/el.js +107 -0
  358. package/locales/file-uploader/en.d.ts +106 -0
  359. package/locales/file-uploader/en.d.ts.map +1 -0
  360. package/locales/file-uploader/en.js +105 -0
  361. package/locales/file-uploader/es.d.ts +108 -0
  362. package/locales/file-uploader/es.d.ts.map +1 -0
  363. package/locales/file-uploader/es.js +108 -0
  364. package/locales/file-uploader/et.d.ts +106 -0
  365. package/locales/file-uploader/et.d.ts.map +1 -0
  366. package/locales/file-uploader/et.js +105 -0
  367. package/locales/file-uploader/fr.d.ts +108 -0
  368. package/locales/file-uploader/fr.d.ts.map +1 -0
  369. package/locales/file-uploader/fr.js +108 -0
  370. package/locales/file-uploader/he.d.ts +108 -0
  371. package/locales/file-uploader/he.d.ts.map +1 -0
  372. package/locales/file-uploader/he.js +107 -0
  373. package/locales/file-uploader/hy.d.ts +106 -0
  374. package/locales/file-uploader/hy.d.ts.map +1 -0
  375. package/locales/file-uploader/hy.js +105 -0
  376. package/locales/file-uploader/is.d.ts +106 -0
  377. package/locales/file-uploader/is.d.ts.map +1 -0
  378. package/locales/file-uploader/is.js +105 -0
  379. package/locales/file-uploader/it.d.ts +108 -0
  380. package/locales/file-uploader/it.d.ts.map +1 -0
  381. package/locales/file-uploader/it.js +108 -0
  382. package/locales/file-uploader/ja.d.ts +106 -0
  383. package/locales/file-uploader/ja.d.ts.map +1 -0
  384. package/locales/file-uploader/ja.js +105 -0
  385. package/locales/file-uploader/ka.d.ts +106 -0
  386. package/locales/file-uploader/ka.d.ts.map +1 -0
  387. package/locales/file-uploader/ka.js +105 -0
  388. package/locales/file-uploader/kk.d.ts +106 -0
  389. package/locales/file-uploader/kk.d.ts.map +1 -0
  390. package/locales/file-uploader/kk.js +105 -0
  391. package/locales/file-uploader/ko.d.ts +106 -0
  392. package/locales/file-uploader/ko.d.ts.map +1 -0
  393. package/locales/file-uploader/ko.js +104 -0
  394. package/locales/file-uploader/lv.d.ts +108 -0
  395. package/locales/file-uploader/lv.d.ts.map +1 -0
  396. package/locales/file-uploader/lv.js +107 -0
  397. package/locales/file-uploader/nb.d.ts +106 -0
  398. package/locales/file-uploader/nb.d.ts.map +1 -0
  399. package/locales/file-uploader/nb.js +105 -0
  400. package/locales/file-uploader/nl.d.ts +106 -0
  401. package/locales/file-uploader/nl.d.ts.map +1 -0
  402. package/locales/file-uploader/nl.js +106 -0
  403. package/locales/file-uploader/pl.d.ts +110 -0
  404. package/locales/file-uploader/pl.d.ts.map +1 -0
  405. package/locales/file-uploader/pl.js +109 -0
  406. package/locales/file-uploader/pt.d.ts +108 -0
  407. package/locales/file-uploader/pt.d.ts.map +1 -0
  408. package/locales/file-uploader/pt.js +108 -0
  409. package/locales/file-uploader/ro.d.ts +108 -0
  410. package/locales/file-uploader/ro.d.ts.map +1 -0
  411. package/locales/file-uploader/ro.js +108 -0
  412. package/locales/file-uploader/ru.d.ts +110 -0
  413. package/locales/file-uploader/ru.d.ts.map +1 -0
  414. package/locales/file-uploader/ru.js +109 -0
  415. package/locales/file-uploader/sk.d.ts +110 -0
  416. package/locales/file-uploader/sk.d.ts.map +1 -0
  417. package/locales/file-uploader/sk.js +109 -0
  418. package/locales/file-uploader/sr.d.ts +108 -0
  419. package/locales/file-uploader/sr.d.ts.map +1 -0
  420. package/locales/file-uploader/sr.js +107 -0
  421. package/locales/file-uploader/sv.d.ts +106 -0
  422. package/locales/file-uploader/sv.d.ts.map +1 -0
  423. package/locales/file-uploader/sv.js +105 -0
  424. package/locales/file-uploader/tr.d.ts +106 -0
  425. package/locales/file-uploader/tr.d.ts.map +1 -0
  426. package/locales/file-uploader/tr.js +105 -0
  427. package/locales/file-uploader/uk.d.ts +110 -0
  428. package/locales/file-uploader/uk.d.ts.map +1 -0
  429. package/locales/file-uploader/uk.js +109 -0
  430. package/locales/file-uploader/vi.d.ts +106 -0
  431. package/locales/file-uploader/vi.d.ts.map +1 -0
  432. package/locales/file-uploader/vi.js +105 -0
  433. package/locales/file-uploader/zh-TW.d.ts +106 -0
  434. package/locales/file-uploader/zh-TW.d.ts.map +1 -0
  435. package/locales/file-uploader/zh-TW.js +105 -0
  436. package/locales/file-uploader/zh.d.ts +106 -0
  437. package/locales/file-uploader/zh.d.ts.map +1 -0
  438. package/locales/file-uploader/zh.js +105 -0
  439. package/package.json +142 -0
  440. package/solutions/adaptive-image/index.d.ts +3 -0
  441. package/solutions/adaptive-image/index.d.ts.map +1 -0
  442. package/solutions/adaptive-image/index.js +5 -0
  443. package/solutions/cloud-image-editor/CloudImageEditor.d.ts +4 -0
  444. package/solutions/cloud-image-editor/CloudImageEditor.d.ts.map +1 -0
  445. package/solutions/cloud-image-editor/CloudImageEditor.js +12 -0
  446. package/solutions/cloud-image-editor/index.css +2 -0
  447. package/solutions/cloud-image-editor/index.d.ts +6 -0
  448. package/solutions/cloud-image-editor/index.d.ts.map +1 -0
  449. package/solutions/cloud-image-editor/index.js +11 -0
  450. package/solutions/file-uploader/inline/FileUploaderInline.d.ts +27 -0
  451. package/solutions/file-uploader/inline/FileUploaderInline.d.ts.map +1 -0
  452. package/solutions/file-uploader/inline/FileUploaderInline.js +75 -0
  453. package/solutions/file-uploader/inline/index.css +54 -0
  454. package/solutions/file-uploader/inline/index.d.ts +2 -0
  455. package/solutions/file-uploader/inline/index.d.ts.map +1 -0
  456. package/solutions/file-uploader/inline/index.js +1 -0
  457. package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts +7 -0
  458. package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts.map +1 -0
  459. package/solutions/file-uploader/minimal/FileUploaderMinimal.js +46 -0
  460. package/solutions/file-uploader/minimal/index.css +137 -0
  461. package/solutions/file-uploader/minimal/index.d.ts +14 -0
  462. package/solutions/file-uploader/minimal/index.d.ts.map +1 -0
  463. package/solutions/file-uploader/minimal/index.js +13 -0
  464. package/solutions/file-uploader/regular/FileUploaderRegular.d.ts +26 -0
  465. package/solutions/file-uploader/regular/FileUploaderRegular.d.ts.map +1 -0
  466. package/solutions/file-uploader/regular/FileUploaderRegular.js +66 -0
  467. package/solutions/file-uploader/regular/index.css +1 -0
  468. package/solutions/file-uploader/regular/index.d.ts +2 -0
  469. package/solutions/file-uploader/regular/index.d.ts.map +1 -0
  470. package/solutions/file-uploader/regular/index.js +1 -0
  471. package/types/events.d.ts +5 -0
  472. package/types/events.js +1 -0
  473. package/types/exported.d.ts +295 -0
  474. package/types/exported.js +1 -0
  475. package/types/global.d.ts +8 -0
  476. package/types/https.d.ts +1 -0
  477. package/types/index.d.ts +2 -0
  478. package/types/index.js +3 -0
  479. package/types/jsx.d.ts +63 -0
  480. package/types/jsx.js +1 -0
  481. package/utils/WindowHeightTracker.d.ts +24 -0
  482. package/utils/WindowHeightTracker.d.ts.map +1 -0
  483. package/utils/WindowHeightTracker.js +51 -0
  484. package/utils/cdn-utils.d.ts +59 -0
  485. package/utils/cdn-utils.d.ts.map +1 -0
  486. package/utils/cdn-utils.js +201 -0
  487. package/utils/cdn-utils.test.d.ts +2 -0
  488. package/utils/cdn-utils.test.d.ts.map +1 -0
  489. package/utils/cdn-utils.test.js +227 -0
  490. package/utils/delay.d.ts +2 -0
  491. package/utils/delay.d.ts.map +1 -0
  492. package/utils/delay.js +4 -0
  493. package/utils/fileTypes.d.ts +8 -0
  494. package/utils/fileTypes.d.ts.map +1 -0
  495. package/utils/fileTypes.js +95 -0
  496. package/utils/fileTypes.test.d.ts +2 -0
  497. package/utils/fileTypes.test.d.ts.map +1 -0
  498. package/utils/fileTypes.test.js +89 -0
  499. package/utils/getLocaleDirection.d.ts +2 -0
  500. package/utils/getLocaleDirection.d.ts.map +1 -0
  501. package/utils/getLocaleDirection.js +18 -0
  502. package/utils/getPluralForm.d.ts +3 -0
  503. package/utils/getPluralForm.d.ts.map +1 -0
  504. package/utils/getPluralForm.js +13 -0
  505. package/utils/getPluralForm.test.d.ts +2 -0
  506. package/utils/getPluralForm.test.d.ts.map +1 -0
  507. package/utils/getPluralForm.test.js +16 -0
  508. package/utils/ifRef.d.ts +7 -0
  509. package/utils/ifRef.d.ts.map +1 -0
  510. package/utils/ifRef.js +9 -0
  511. package/utils/isSecureTokenExpired.d.ts +4 -0
  512. package/utils/isSecureTokenExpired.d.ts.map +1 -0
  513. package/utils/isSecureTokenExpired.js +17 -0
  514. package/utils/isSecureTokenExpired.test.d.ts +2 -0
  515. package/utils/isSecureTokenExpired.test.d.ts.map +1 -0
  516. package/utils/isSecureTokenExpired.test.js +33 -0
  517. package/utils/memoize.d.ts +2 -0
  518. package/utils/memoize.d.ts.map +1 -0
  519. package/utils/memoize.js +23 -0
  520. package/utils/memoize.test.d.ts +2 -0
  521. package/utils/memoize.test.d.ts.map +1 -0
  522. package/utils/memoize.test.js +38 -0
  523. package/utils/mixinClass.d.ts +8 -0
  524. package/utils/mixinClass.d.ts.map +1 -0
  525. package/utils/mixinClass.js +18 -0
  526. package/utils/parseCdnUrl.d.ts +9 -0
  527. package/utils/parseCdnUrl.d.ts.map +1 -0
  528. package/utils/parseCdnUrl.js +20 -0
  529. package/utils/parseCdnUrl.test.d.ts +2 -0
  530. package/utils/parseCdnUrl.test.d.ts.map +1 -0
  531. package/utils/parseCdnUrl.test.js +78 -0
  532. package/utils/parseShrink.d.ts +5 -0
  533. package/utils/parseShrink.d.ts.map +1 -0
  534. package/utils/parseShrink.js +34 -0
  535. package/utils/parseShrink.test.d.ts +2 -0
  536. package/utils/parseShrink.test.d.ts.map +1 -0
  537. package/utils/parseShrink.test.js +26 -0
  538. package/utils/prettyBytes.d.ts +11 -0
  539. package/utils/prettyBytes.d.ts.map +1 -0
  540. package/utils/prettyBytes.js +64 -0
  541. package/utils/prettyBytes.test.d.ts +2 -0
  542. package/utils/prettyBytes.test.d.ts.map +1 -0
  543. package/utils/prettyBytes.test.js +99 -0
  544. package/utils/stringToArray.d.ts +2 -0
  545. package/utils/stringToArray.d.ts.map +1 -0
  546. package/utils/stringToArray.js +11 -0
  547. package/utils/stringToArray.test.d.ts +2 -0
  548. package/utils/stringToArray.test.d.ts.map +1 -0
  549. package/utils/stringToArray.test.js +20 -0
  550. package/utils/template-utils.d.ts +40 -0
  551. package/utils/template-utils.d.ts.map +1 -0
  552. package/utils/template-utils.js +50 -0
  553. package/utils/template-utils.test.d.ts +2 -0
  554. package/utils/template-utils.test.d.ts.map +1 -0
  555. package/utils/template-utils.test.js +56 -0
  556. package/utils/toKebabCase.d.ts +3 -0
  557. package/utils/toKebabCase.d.ts.map +1 -0
  558. package/utils/toKebabCase.js +15 -0
  559. package/utils/toKebabCase.test.d.ts +2 -0
  560. package/utils/toKebabCase.test.d.ts.map +1 -0
  561. package/utils/toKebabCase.test.js +11 -0
  562. package/utils/transparentPixelSrc.d.ts +2 -0
  563. package/utils/transparentPixelSrc.d.ts.map +1 -0
  564. package/utils/transparentPixelSrc.js +2 -0
  565. package/utils/uniqueArray.d.ts +2 -0
  566. package/utils/uniqueArray.d.ts.map +1 -0
  567. package/utils/uniqueArray.js +8 -0
  568. package/utils/uniqueArray.test.d.ts +2 -0
  569. package/utils/uniqueArray.test.d.ts.map +1 -0
  570. package/utils/uniqueArray.test.js +8 -0
  571. package/utils/validators/collection/index.d.ts +3 -0
  572. package/utils/validators/collection/index.d.ts.map +1 -0
  573. package/utils/validators/collection/index.js +2 -0
  574. package/utils/validators/collection/validateCollectionUploadError.d.ts +3 -0
  575. package/utils/validators/collection/validateCollectionUploadError.d.ts.map +1 -0
  576. package/utils/validators/collection/validateCollectionUploadError.js +11 -0
  577. package/utils/validators/collection/validateMultiple.d.ts +3 -0
  578. package/utils/validators/collection/validateMultiple.d.ts.map +1 -0
  579. package/utils/validators/collection/validateMultiple.js +43 -0
  580. package/utils/validators/file/index.d.ts +5 -0
  581. package/utils/validators/file/index.d.ts.map +1 -0
  582. package/utils/validators/file/index.js +4 -0
  583. package/utils/validators/file/validateFileType.d.ts +3 -0
  584. package/utils/validators/file/validateFileType.d.ts.map +1 -0
  585. package/utils/validators/file/validateFileType.js +30 -0
  586. package/utils/validators/file/validateIsImage.d.ts +3 -0
  587. package/utils/validators/file/validateIsImage.d.ts.map +1 -0
  588. package/utils/validators/file/validateIsImage.js +25 -0
  589. package/utils/validators/file/validateMaxSizeLimit.d.ts +3 -0
  590. package/utils/validators/file/validateMaxSizeLimit.d.ts.map +1 -0
  591. package/utils/validators/file/validateMaxSizeLimit.js +15 -0
  592. package/utils/validators/file/validateUploadError.d.ts +3 -0
  593. package/utils/validators/file/validateUploadError.d.ts.map +1 -0
  594. package/utils/validators/file/validateUploadError.js +48 -0
  595. package/utils/waitForAttribute.d.ts +8 -0
  596. package/utils/waitForAttribute.d.ts.map +1 -0
  597. package/utils/waitForAttribute.js +43 -0
  598. package/utils/waitForAttribute.test.d.ts +2 -0
  599. package/utils/waitForAttribute.test.d.ts.map +1 -0
  600. package/utils/waitForAttribute.test.js +78 -0
  601. package/utils/warnOnce.d.ts +3 -0
  602. package/utils/warnOnce.d.ts.map +1 -0
  603. package/utils/warnOnce.js +11 -0
  604. package/utils/wildcardRegexp.d.ts +2 -0
  605. package/utils/wildcardRegexp.d.ts.map +1 -0
  606. package/utils/wildcardRegexp.js +17 -0
  607. package/utils/wildcardRegexp.test.d.ts +2 -0
  608. package/utils/wildcardRegexp.test.d.ts.map +1 -0
  609. package/utils/wildcardRegexp.test.js +19 -0
  610. package/web/blocks.iife.min.js +29 -0
  611. package/web/blocks.min.js +29 -0
  612. package/web/lr-basic.min.css +1 -0
  613. package/web/lr-cloud-image-editor.min.css +1 -0
  614. package/web/lr-cloud-image-editor.min.js +29 -0
  615. package/web/lr-file-uploader-inline.min.css +1 -0
  616. package/web/lr-file-uploader-inline.min.js +29 -0
  617. package/web/lr-file-uploader-minimal.min.css +1 -0
  618. package/web/lr-file-uploader-minimal.min.js +28 -0
  619. package/web/lr-file-uploader-regular.min.css +1 -0
  620. package/web/lr-file-uploader-regular.min.js +29 -0
  621. package/web/lr-img.min.js +28 -0
  622. package/web/uc-basic.min.css +1 -0
  623. package/web/uc-cloud-image-editor.min.css +1 -0
  624. package/web/uc-cloud-image-editor.min.js +29 -0
  625. package/web/uc-file-uploader-inline.min.css +1 -0
  626. package/web/uc-file-uploader-inline.min.js +29 -0
  627. package/web/uc-file-uploader-minimal.min.css +1 -0
  628. package/web/uc-file-uploader-minimal.min.js +28 -0
  629. package/web/uc-file-uploader-regular.min.css +1 -0
  630. package/web/uc-file-uploader-regular.min.js +29 -0
  631. package/web/uc-img.min.js +28 -0
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Helper function for legacy browsers and iframes which sometimes focus on elements like document, body, and
3
+ * non-interactive SVG.
4
+ *
5
+ * @param {EventTarget} el
6
+ */
7
+ function isValidFocusTarget(el) {
8
+ if (
9
+ el &&
10
+ el !== document &&
11
+ /** @type {Element} */ (el).nodeName !== 'HTML' &&
12
+ /** @type {Element} */ (el).nodeName !== 'BODY' &&
13
+ 'classList' in el &&
14
+ 'contains' in /** @type {Element} */ (el).classList
15
+ ) {
16
+ return true;
17
+ }
18
+ return false;
19
+ }
20
+
21
+ /**
22
+ * Computes whether the given element should automatically trigger the `focus-visible` class being added, i.e., whether
23
+ * it should always match `:focus-visible` when focused.
24
+ *
25
+ * @param {EventTarget} el
26
+ * @returns {boolean}
27
+ */
28
+ function focusTriggersKeyboardModality(el) {
29
+ let { tagName } = /** @type {Element} */ (el);
30
+
31
+ if (tagName === 'INPUT' && !(/** @type {HTMLInputElement} */ (el).readOnly)) {
32
+ return true;
33
+ }
34
+
35
+ if (tagName === 'TEXTAREA' && !(/** @type {HTMLTextAreaElement} */ (el).readOnly)) {
36
+ return true;
37
+ }
38
+
39
+ if (/** @type {HTMLElement} */ (el).isContentEditable) {
40
+ return true;
41
+ }
42
+
43
+ return false;
44
+ }
45
+
46
+ let hadKeyboardEvent = true;
47
+ let hadFocusVisibleRecently = false;
48
+
49
+ /**
50
+ * Applies the :focus-visible polyfill at the given scope. A scope, in this case, is either the top-level Document or a
51
+ * Shadow Root.
52
+ *
53
+ * @param {Document | ShadowRoot} scope
54
+ * @param {(focusVisible: boolean, el: EventTarget) => void} [callback]
55
+ * @see https://github.com/WICG/focus-visible
56
+ */
57
+ export function applyFocusVisiblePolyfill(scope, callback) {
58
+ let hadFocusVisibleRecentlyTimeout = null;
59
+
60
+ /**
61
+ * Add the `focus-visible` class to the given element if the author did not add it.
62
+ *
63
+ * @param {EventTarget} el
64
+ */
65
+ function addFocusVisibleClass(el) {
66
+ /** @type {Element} */ (el).setAttribute('focus-visible', '');
67
+ callback(true, el);
68
+ }
69
+
70
+ /**
71
+ * Remove the `focus-visible` class from the given element if the author did not originally add it.
72
+ *
73
+ * @param {EventTarget} el
74
+ */
75
+ function removeFocusVisibleClass(el) {
76
+ if (!(/** @type {Element} */ (el).hasAttribute('focus-visible'))) {
77
+ return;
78
+ }
79
+ /** @type {Element} */ (el).removeAttribute('focus-visible');
80
+ callback(false, el);
81
+ }
82
+
83
+ /**
84
+ * If the most recent user interaction was via the keyboard, and the keypress did not include a meta, alt/option, or
85
+ * control key, then the keyboard's modality. Otherwise, the modality is not the keyboard.Apply `focus-visible` to any
86
+ * current active element and keep track of our keyboard modality state with `hadKeyboardEvent`.
87
+ *
88
+ * @param {KeyboardEvent} e
89
+ */
90
+ function onKeyDown(e) {
91
+ if (e.metaKey || e.altKey || e.ctrlKey) {
92
+ return;
93
+ }
94
+
95
+ if (isValidFocusTarget(scope.activeElement)) {
96
+ addFocusVisibleClass(scope.activeElement);
97
+ }
98
+
99
+ hadKeyboardEvent = true;
100
+ }
101
+
102
+ /**
103
+ * If at any point a user clicks with a pointing device, ensure that we change the modality away from the keyboard.
104
+ * This avoids the situation where a user presses a key on an already focused element, and then clicks on a different
105
+ * element focusing it with a pointing device while we still think we're in keyboard modality.
106
+ *
107
+ * @param {Event} e
108
+ */
109
+ function onPointerDown(e) {
110
+ hadKeyboardEvent = false;
111
+ }
112
+
113
+ /**
114
+ * On `focus`, add the `focus-visible` class to the target if: - the target received focus as a result of keyboard
115
+ * navigation or - the event target is an element that will likely require interaction via the keyboard (e.g., a text
116
+ * box).
117
+ *
118
+ * @param {Event} e
119
+ */
120
+ function onFocus(e) {
121
+ // Prevent IE from focusing the document or HTML element.
122
+ if (!isValidFocusTarget(e.target)) {
123
+ return;
124
+ }
125
+
126
+ if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {
127
+ addFocusVisibleClass(e.target);
128
+ }
129
+ }
130
+
131
+ /**
132
+ * On `blur`, remove the `focus-visible` class from the target.
133
+ *
134
+ * @param {Event} e
135
+ */
136
+ function onBlur(e) {
137
+ if (!isValidFocusTarget(e.target)) {
138
+ return;
139
+ }
140
+
141
+ if (/** @type {Element} */ (e.target).hasAttribute('focus-visible')) {
142
+ // To detect a tab/window switch, we look for a blur event followed
143
+ // rapidly by a visibility change.
144
+ // If we don't see a visibility change within 100ms, it's probably a
145
+ // regular focus change.
146
+ hadFocusVisibleRecently = true;
147
+ window.clearTimeout(hadFocusVisibleRecentlyTimeout);
148
+ hadFocusVisibleRecentlyTimeout = window.setTimeout(() => {
149
+ hadFocusVisibleRecently = false;
150
+ }, 100);
151
+ removeFocusVisibleClass(e.target);
152
+ }
153
+ }
154
+
155
+ /**
156
+ * Add a group of listeners to detect usage of any pointing devices. These listeners will be added when the polyfill
157
+ * first loads and anytime the window is blurred so that they are active when the window regains focus.
158
+ */
159
+ function addInitialPointerMoveListeners() {
160
+ /* eslint-disable no-use-before-define */
161
+ document.addEventListener('mousemove', onInitialPointerMove);
162
+ document.addEventListener('mousedown', onInitialPointerMove);
163
+ document.addEventListener('mouseup', onInitialPointerMove);
164
+ document.addEventListener('pointermove', onInitialPointerMove);
165
+ document.addEventListener('pointerdown', onInitialPointerMove);
166
+ document.addEventListener('pointerup', onInitialPointerMove);
167
+ document.addEventListener('touchmove', onInitialPointerMove);
168
+ document.addEventListener('touchstart', onInitialPointerMove);
169
+ document.addEventListener('touchend', onInitialPointerMove);
170
+ /* eslint-enable no-use-before-define */
171
+ }
172
+
173
+ function removeInitialPointerMoveListeners() {
174
+ /* eslint-disable no-use-before-define */
175
+ document.removeEventListener('mousemove', onInitialPointerMove);
176
+ document.removeEventListener('mousedown', onInitialPointerMove);
177
+ document.removeEventListener('mouseup', onInitialPointerMove);
178
+ document.removeEventListener('pointermove', onInitialPointerMove);
179
+ document.removeEventListener('pointerdown', onInitialPointerMove);
180
+ document.removeEventListener('pointerup', onInitialPointerMove);
181
+ document.removeEventListener('touchmove', onInitialPointerMove);
182
+ document.removeEventListener('touchstart', onInitialPointerMove);
183
+ document.removeEventListener('touchend', onInitialPointerMove);
184
+ /* eslint-enable no-use-before-define */
185
+ }
186
+
187
+ /**
188
+ * If the user changes tabs, keep track of whether or not the previously focused element had .focus-visible.
189
+ *
190
+ * @param {Event} e
191
+ */
192
+ function onVisibilityChange(e) {
193
+ if (document.visibilityState === 'hidden') {
194
+ // If the tab becomes active again, the browser will handle calling focus
195
+ // on the element (Safari actually calls it twice).
196
+ // If this tab change caused a blur on an element with focus-visible,
197
+ // re-apply the class when the user switches back to the tab.
198
+ if (hadFocusVisibleRecently) {
199
+ hadKeyboardEvent = true;
200
+ }
201
+ addInitialPointerMoveListeners();
202
+ }
203
+ }
204
+
205
+ /**
206
+ * When the polyfill first loads, assume the user is in keyboard modality. If any event is received from a pointing
207
+ * device (e.g., mouse, pointer, touch), turn off keyboard modality. This accounts for situations where focus enters
208
+ * the page from the URL bar.
209
+ *
210
+ * @param {Event} e
211
+ */
212
+ function onInitialPointerMove(e) {
213
+ // Work around a Safari quirk that fires a mousemove on <html> whenever the
214
+ // window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯
215
+ if (
216
+ /** @type {Element} */ (e.target).nodeName &&
217
+ /** @type {Element} */ (e.target).nodeName.toLowerCase() === 'html'
218
+ ) {
219
+ return;
220
+ }
221
+
222
+ hadKeyboardEvent = false;
223
+ removeInitialPointerMoveListeners();
224
+ }
225
+
226
+ // We are interested in changes at the global scope only for some kinds of states.
227
+ // For example, global pointer input, global key presses, and global
228
+ // visibility change should affect the state at every scope:
229
+ document.addEventListener('keydown', onKeyDown, true);
230
+ document.addEventListener('mousedown', onPointerDown, true);
231
+ document.addEventListener('pointerdown', onPointerDown, true);
232
+ document.addEventListener('touchstart', onPointerDown, true);
233
+ document.addEventListener('visibilitychange', onVisibilityChange, true);
234
+
235
+ addInitialPointerMoveListeners();
236
+
237
+ // We specifically care about state changes in the local scope for focus and blur.
238
+ // This is because focus/blur events that originate from within a
239
+ // shadow root are not re-dispatched from the host element if it was already
240
+ // the active element in its own scope:
241
+ scope.addEventListener('focus', onFocus, true);
242
+ scope.addEventListener('blur', onBlur, true);
243
+
244
+ return () => {
245
+ removeInitialPointerMoveListeners();
246
+
247
+ document.removeEventListener('keydown', onKeyDown, true);
248
+ document.removeEventListener('mousedown', onPointerDown, true);
249
+ document.removeEventListener('pointerdown', onPointerDown, true);
250
+ document.removeEventListener('touchstart', onPointerDown, true);
251
+ document.removeEventListener('visibilitychange', onVisibilityChange, true);
252
+
253
+ scope.removeEventListener('focus', onFocus, true);
254
+ scope.removeEventListener('blur', onBlur, true);
255
+ };
256
+ }
@@ -0,0 +1,3 @@
1
+ export function classNames(...args: any[]): string;
2
+ export function applyClassNames(element: any, ...args: any[]): void;
3
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["classNames.js"],"names":[],"mappings":"AAeA,mDAWC;AAED,oEAKC"}
@@ -0,0 +1,34 @@
1
+ function normalize(...args) {
2
+ return args.reduce((result, arg) => {
3
+ if (typeof arg === 'string') {
4
+ result[arg] = true;
5
+ return result;
6
+ }
7
+
8
+ for (let token of Object.keys(arg)) {
9
+ result[token] = arg[token];
10
+ }
11
+
12
+ return result;
13
+ }, {});
14
+ }
15
+
16
+ export function classNames(...args) {
17
+ let mapping = normalize(...args);
18
+ return Object.keys(mapping)
19
+ .reduce((result, token) => {
20
+ if (mapping[token]) {
21
+ result.push(token);
22
+ }
23
+
24
+ return result;
25
+ }, [])
26
+ .join(' ');
27
+ }
28
+
29
+ export function applyClassNames(element, ...args) {
30
+ let mapping = normalize(...args);
31
+ for (let token of Object.keys(mapping)) {
32
+ element.classList.toggle(token, mapping[token]);
33
+ }
34
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @param {Number} a Start of sample (int)
3
+ * @param {Number} b End of sample (int)
4
+ * @param {Number} n Number of elements (int)
5
+ * @returns {Number[]}
6
+ */
7
+ export function linspace(a: number, b: number, n: number): number[];
8
+ //# sourceMappingURL=linspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linspace.d.ts","sourceRoot":"","sources":["linspace.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,2DAFa,QAAQ,CASpB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @param {Number} a Start of sample (int)
3
+ * @param {Number} b End of sample (int)
4
+ * @param {Number} n Number of elements (int)
5
+ * @returns {Number[]}
6
+ */
7
+ export function linspace(a, b, n) {
8
+ let ret = Array(n);
9
+ n--;
10
+ for (let i = n; i >= 0; i--) {
11
+ ret[i] = Math.ceil((i * b + (n - i) * a) / n);
12
+ }
13
+ return ret;
14
+ }
@@ -0,0 +1,2 @@
1
+ export function parseCropPreset(cropPreset: import('../../../../types/exported.d.ts').ConfigType['cropPreset']): import("../types.js").CropAspectRatio[] | undefined;
2
+ //# sourceMappingURL=parseCropPreset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseCropPreset.d.ts","sourceRoot":"","sources":["parseCropPreset.js"],"names":[],"mappings":"AAGO,4CADK,OAAO,iCAAiC,EAAE,UAAU,CAAC,YAAY,CAAC,uDAW7E"}
@@ -0,0 +1,14 @@
1
+ // @ts-check
2
+
3
+ /** @param {import('../../../../types/exported.d.ts').ConfigType['cropPreset']} cropPreset */
4
+ export const parseCropPreset = (cropPreset) => {
5
+ if (!cropPreset) return [];
6
+ const [w, h] = cropPreset.split(':').map(Number);
7
+ if (!Number.isFinite(w) || !Number.isFinite(h)) {
8
+ console.error(`Invalid crop preset: ${cropPreset}`);
9
+ return;
10
+ }
11
+ /** @type {import('../types.js').CropAspectRatio} */
12
+ const aspectRatio = { type: 'aspect-ratio', width: w, height: h };
13
+ return [aspectRatio];
14
+ };
@@ -0,0 +1,2 @@
1
+ export function parseTabs(tabs: string): string[];
2
+ //# sourceMappingURL=parseTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseTabs.d.ts","sourceRoot":"","sources":["parseTabs.js"],"names":[],"mappings":"AAMO,gCADK,MAAM,YAQjB"}
@@ -0,0 +1,14 @@
1
+ // @ts-check
2
+
3
+ import { deserealizeCsv } from '../../../utils/comma-separated.js';
4
+ import { ALL_TABS } from '../toolbar-constants.js';
5
+
6
+ /** @param {string} tabs */
7
+ export const parseTabs = (tabs) => {
8
+ if (!tabs) return ALL_TABS;
9
+ const tabList = deserealizeCsv(tabs).filter((tab) => ALL_TABS.includes(tab));
10
+ if (tabList.length === 0) {
11
+ return ALL_TABS;
12
+ }
13
+ return tabList;
14
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param {{}} obj
3
+ * @param {String[]} keys
4
+ * @returns {{}}
5
+ */
6
+ export function pick(obj: {}, keys: string[]): {};
7
+ //# sourceMappingURL=pick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["pick.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,0BAJW,EAAE,QACF,QAAQ,GACN,EAAE,CAWd"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @param {{}} obj
3
+ * @param {String[]} keys
4
+ * @returns {{}}
5
+ */
6
+ export function pick(obj, keys) {
7
+ let result = {};
8
+ for (let key of keys) {
9
+ let value = obj[key];
10
+ if (obj.hasOwnProperty(key) || value !== undefined) {
11
+ result[key] = value;
12
+ }
13
+ }
14
+ return result;
15
+ }
@@ -0,0 +1,11 @@
1
+ export function preloadImage(src: any): {
2
+ promise: Promise<any>;
3
+ image: HTMLImageElement;
4
+ cancel: () => void;
5
+ };
6
+ export function batchPreloadImages(list: any): {
7
+ promise: Promise<PromiseSettledResult<any>[]>;
8
+ images: HTMLImageElement[];
9
+ cancel: () => void;
10
+ };
11
+ //# sourceMappingURL=preloadImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preloadImage.d.ts","sourceRoot":"","sources":["preloadImage.js"],"names":[],"mappings":"AAEA;;;;EAgBC;AAED;;;;EAiBC"}
@@ -0,0 +1,38 @@
1
+ import { TRANSPARENT_PIXEL_SRC } from '../../../../utils/transparentPixelSrc.js';
2
+
3
+ export function preloadImage(src) {
4
+ let image = new Image();
5
+
6
+ let promise = new Promise((resolve, reject) => {
7
+ image.src = src;
8
+ image.onload = resolve;
9
+ image.onerror = reject;
10
+ });
11
+
12
+ let cancel = () => {
13
+ if (image.naturalWidth === 0) {
14
+ image.src = TRANSPARENT_PIXEL_SRC;
15
+ }
16
+ };
17
+
18
+ return { promise, image, cancel };
19
+ }
20
+
21
+ export function batchPreloadImages(list) {
22
+ let preloaders = [];
23
+
24
+ for (let src of list) {
25
+ let preload = preloadImage(src);
26
+ preloaders.push(preload);
27
+ }
28
+
29
+ let images = preloaders.map((preload) => preload.image);
30
+ let promise = Promise.allSettled(preloaders.map((preload) => preload.promise));
31
+ let cancel = () => {
32
+ preloaders.forEach((preload) => {
33
+ preload.cancel();
34
+ });
35
+ };
36
+
37
+ return { promise, images, cancel };
38
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @param {import('../types').Transformations} transformations
3
+ * @returns {string}
4
+ */
5
+ export function transformationsToOperations(transformations: import('../types').Transformations): string;
6
+ /**
7
+ * @param {string[]} operations
8
+ * @returns {import('../types.js').Transformations}
9
+ */
10
+ export function operationsToTransformations(operations: string[]): import('../types.js').Transformations;
11
+ /** @type {Record<keyof import('../types').Transformations, unknown>} */
12
+ export const OPERATIONS_DEFAULTS: Record<keyof import('../types').Transformations, unknown>;
13
+ export const COMMON_OPERATIONS: string;
14
+ //# sourceMappingURL=transformationUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformationUtils.d.ts","sourceRoot":"","sources":["transformationUtils.js"],"names":[],"mappings":"AAsEA;;;GAGG;AACH,6DAHW,OAAO,UAAU,EAAE,eAAe,GAChC,MAAM,CAalB;AAoDD;;;GAGG;AACH,wDAHW,MAAM,EAAE,GACN,OAAO,aAAa,EAAE,eAAe,CA2BjD;AAlKD,wEAAwE;AACxE,kCADW,OAAO,MAAM,OAAO,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAejE;AAoEH,uCAAqF"}
@@ -0,0 +1,167 @@
1
+ // @ts-check
2
+ import { joinCdnOperations } from '../../../../utils/cdn-utils.js';
3
+ import { stringToArray } from '../../../../utils/stringToArray.js';
4
+
5
+ /** @type {Record<keyof import('../types').Transformations, unknown>} */
6
+ export const OPERATIONS_DEFAULTS = Object.freeze({
7
+ brightness: 0,
8
+ exposure: 0,
9
+ gamma: 100,
10
+ contrast: 0,
11
+ saturation: 0,
12
+ vibrance: 0,
13
+ warmth: 0,
14
+ enhance: 0,
15
+ filter: 0,
16
+ rotate: 0,
17
+ mirror: false,
18
+ flip: false,
19
+ crop: undefined,
20
+ });
21
+
22
+ /** @type {readonly (keyof import('../types').Transformations)[]} */
23
+ const SUPPORTED_OPERATIONS_ORDERED = /** @type {const} */ ([
24
+ 'enhance',
25
+ 'brightness',
26
+ 'exposure',
27
+ 'gamma',
28
+ 'contrast',
29
+ 'saturation',
30
+ 'vibrance',
31
+ 'warmth',
32
+ 'filter',
33
+ 'mirror',
34
+ 'flip',
35
+ 'rotate',
36
+ 'crop',
37
+ ]);
38
+
39
+ /**
40
+ * @template {keyof import('../types').Transformations} T
41
+ * @param {T} operation
42
+ * @param {import('../types').Transformations[T]} options
43
+ */
44
+ function transformationToStr(operation, options) {
45
+ if (typeof options === 'number') {
46
+ const value = options;
47
+ return OPERATIONS_DEFAULTS[operation] !== value ? `${operation}/${value}` : '';
48
+ }
49
+
50
+ if (typeof options === 'boolean') {
51
+ const value = options;
52
+ return OPERATIONS_DEFAULTS[operation] !== value ? `${operation}` : '';
53
+ }
54
+
55
+ if (operation === 'filter' && options) {
56
+ const { name, amount } = /** @type {NonNullable<import('../types').Transformations['filter']>} */ (options);
57
+ if (OPERATIONS_DEFAULTS.filter === amount) {
58
+ return '';
59
+ }
60
+ return `${operation}/${name}/${amount}`;
61
+ }
62
+
63
+ if (operation === 'crop' && options) {
64
+ let { dimensions, coords } = /** @type {NonNullable<import('../types').Transformations['crop']>} */ (options);
65
+ return `${operation}/${dimensions.join('x')}/${coords.join(',')}`;
66
+ }
67
+
68
+ return '';
69
+ }
70
+
71
+ /**
72
+ * @param {import('../types').Transformations} transformations
73
+ * @returns {string}
74
+ */
75
+ export function transformationsToOperations(transformations) {
76
+ return joinCdnOperations(
77
+ ...SUPPORTED_OPERATIONS_ORDERED.filter(
78
+ (operation) => typeof transformations[operation] !== 'undefined' && transformations[operation] !== null,
79
+ )
80
+ .map((operation) => {
81
+ let options = transformations[operation];
82
+ return transformationToStr(operation, options);
83
+ })
84
+ .filter((str) => !!str),
85
+ );
86
+ }
87
+
88
+ export const COMMON_OPERATIONS = joinCdnOperations('format/auto', 'progressive/yes');
89
+
90
+ /** @param {[unknown]} arg */
91
+ const asNumber = ([value]) => (typeof value !== 'undefined' ? Number(value) : undefined);
92
+ const asBoolean = () => true;
93
+ /** @param {[string, unknown]} arg */
94
+ const asFilter = ([name, amount]) => ({
95
+ name,
96
+ amount: typeof amount !== 'undefined' ? Number(amount) : 100,
97
+ });
98
+
99
+ /**
100
+ * Docs: https://uploadcare.com/docs/transformations/image/resize-crop/#operation-crop We don't support percentages and
101
+ * alignment presets, Because it's unclear how to handle them in the Editor UI TODO: add support for percentages and
102
+ * alignment presets
103
+ *
104
+ * @param {[string, string]} arg
105
+ */
106
+ const asCrop = ([dimensions, alignment]) => {
107
+ if (!/\d+x\d+/.test(dimensions) || !/\d+,\d+/.test(alignment)) {
108
+ throw new Error('Crop by aspect ratio, percentage or alignment shortcuts is not supported.');
109
+ }
110
+
111
+ return /** @type {{ dimensions: [number, number]; coords: [number, number] }} */ ({
112
+ dimensions: stringToArray(dimensions, 'x').map(Number),
113
+ coords: stringToArray(alignment).map(Number),
114
+ });
115
+ };
116
+
117
+ /**
118
+ * @type {{
119
+ * [K in keyof Required<import('../types').Transformations>]: (args: any) => import('../types').Transformations[K];
120
+ * }}
121
+ */
122
+ const OPERATION_PROCESSORS = Object.freeze({
123
+ enhance: asNumber,
124
+ brightness: asNumber,
125
+ exposure: asNumber,
126
+ gamma: asNumber,
127
+ contrast: asNumber,
128
+ saturation: asNumber,
129
+ vibrance: asNumber,
130
+ warmth: asNumber,
131
+ filter: asFilter,
132
+ mirror: asBoolean,
133
+ flip: asBoolean,
134
+ rotate: asNumber,
135
+ crop: asCrop,
136
+ });
137
+
138
+ /**
139
+ * @param {string[]} operations
140
+ * @returns {import('../types.js').Transformations}
141
+ */
142
+ export function operationsToTransformations(operations) {
143
+ /** @type {Record<string, unknown>} */
144
+ const transformations = {};
145
+ for (const operation of operations) {
146
+ const [name, ...args] = operation.split('/');
147
+ if (!SUPPORTED_OPERATIONS_ORDERED.includes(name)) {
148
+ continue;
149
+ }
150
+ const operationName = /** @type {(typeof SUPPORTED_OPERATIONS_ORDERED)[number]} */ (name);
151
+ const processor = OPERATION_PROCESSORS[operationName];
152
+ try {
153
+ const value = processor(args);
154
+ transformations[operationName] = value;
155
+ } catch (err) {
156
+ console.warn(
157
+ [
158
+ `Failed to parse URL operation "${operation}". It will be ignored.`,
159
+ err instanceof Error ? `Error message: "${err.message}"` : err,
160
+ 'If you need this functionality, please feel free to open an issue at https://github.com/uploadcare/blocks/issues/new',
161
+ ].join('\n'),
162
+ );
163
+ }
164
+ }
165
+
166
+ return /** @type {import('../types.js').Transformations} */ (transformations);
167
+ }