@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,729 @@
1
+ // @ts-check
2
+ import { MIN_CROP_SIZE, THUMB_CORNER_SIZE, THUMB_OFFSET, THUMB_SIDE_SIZE } from './cropper-constants.js';
3
+
4
+ /**
5
+ * @param {SVGElement} node
6
+ * @param {{ [key: String]: String | Number }} attrs
7
+ */
8
+ export function setSvgNodeAttrs(node, attrs) {
9
+ for (let p in attrs) node.setAttributeNS(null, p, attrs[p].toString());
10
+ }
11
+
12
+ /**
13
+ * @param {String} name
14
+ * @param {{ [key: String]: String | Number }} attrs
15
+ * @returns {SVGElement}
16
+ */
17
+ export function createSvgNode(name, attrs = {}) {
18
+ let node = document.createElementNS('http://www.w3.org/2000/svg', name);
19
+ setSvgNodeAttrs(node, attrs);
20
+ return node;
21
+ }
22
+
23
+ /**
24
+ * @param {import('./types.js').Rectangle} rect
25
+ * @param {import('./types.js').Direction} direction
26
+ * @param {number} sizeMultiplier
27
+ */
28
+ export function cornerPath(rect, direction, sizeMultiplier) {
29
+ let { x, y, width, height } = rect;
30
+
31
+ let wMul = direction.includes('w') ? 0 : 1;
32
+ let hMul = direction.includes('n') ? 0 : 1;
33
+ let xSide = [-1, 1][wMul];
34
+ let ySide = [-1, 1][hMul];
35
+
36
+ let p1 = [
37
+ x + wMul * width + THUMB_OFFSET * xSide,
38
+ y + hMul * height + THUMB_OFFSET * ySide - THUMB_CORNER_SIZE * sizeMultiplier * ySide,
39
+ ];
40
+ let p2 = [x + wMul * width + THUMB_OFFSET * xSide, y + hMul * height + THUMB_OFFSET * ySide];
41
+ let p3 = [
42
+ x + wMul * width - THUMB_CORNER_SIZE * sizeMultiplier * xSide + THUMB_OFFSET * xSide,
43
+ y + hMul * height + THUMB_OFFSET * ySide,
44
+ ];
45
+
46
+ let path = `M ${p1[0]} ${p1[1]} L ${p2[0]} ${p2[1]} L ${p3[0]} ${p3[1]}`;
47
+ let center = p2;
48
+
49
+ return {
50
+ d: path,
51
+ center,
52
+ };
53
+ }
54
+
55
+ /**
56
+ * @param {import('./types.js').Rectangle} rect
57
+ * @param {Extract<import('./types.js').Direction, 'n' | 's' | 'w' | 'e'>} direction
58
+ * @param {number} sizeMultiplier
59
+ */
60
+ export function sidePath(rect, direction, sizeMultiplier) {
61
+ let { x, y, width, height } = rect;
62
+
63
+ let wMul = ['n', 's'].includes(direction)
64
+ ? 0.5
65
+ : { w: 0, e: 1 }[/** @type {Extract<import('./types.js').Direction, 'w' | 'e'>} */ (direction)];
66
+ let hMul = ['w', 'e'].includes(direction)
67
+ ? 0.5
68
+ : { n: 0, s: 1 }[/** @type {Extract<import('./types.js').Direction, 'n' | 's'>} */ (direction)];
69
+ let xSide = [-1, 1][wMul];
70
+ let ySide = [-1, 1][hMul];
71
+
72
+ let p1, p2;
73
+ if (['n', 's'].includes(direction)) {
74
+ p1 = [x + wMul * width - (THUMB_SIDE_SIZE * sizeMultiplier) / 2, y + hMul * height + THUMB_OFFSET * ySide];
75
+ p2 = [x + wMul * width + (THUMB_SIDE_SIZE * sizeMultiplier) / 2, y + hMul * height + THUMB_OFFSET * ySide];
76
+ } else {
77
+ p1 = [x + wMul * width + THUMB_OFFSET * xSide, y + hMul * height - (THUMB_SIDE_SIZE * sizeMultiplier) / 2];
78
+ p2 = [x + wMul * width + THUMB_OFFSET * xSide, y + hMul * height + (THUMB_SIDE_SIZE * sizeMultiplier) / 2];
79
+ }
80
+ let path = `M ${p1[0]} ${p1[1]} L ${p2[0]} ${p2[1]}`;
81
+ let center = [p2[0] - (p2[0] - p1[0]) / 2, p2[1] - (p2[1] - p1[1]) / 2];
82
+
83
+ return { d: path, center };
84
+ }
85
+
86
+ /** @param {import('./types.js').Direction} direction */
87
+ export function thumbCursor(direction) {
88
+ if (direction === '') {
89
+ return 'move';
90
+ }
91
+ if (['e', 'w'].includes(direction)) {
92
+ return 'ew-resize';
93
+ }
94
+ if (['n', 's'].includes(direction)) {
95
+ return 'ns-resize';
96
+ }
97
+ if (['nw', 'se'].includes(direction)) {
98
+ return 'nwse-resize';
99
+ }
100
+ return 'nesw-resize';
101
+ }
102
+
103
+ /**
104
+ * @param {{
105
+ * rect: import('./types.js').Rectangle;
106
+ * delta: [Number, Number];
107
+ * imageBox: import('./types.js').Rectangle;
108
+ * }} options
109
+ */
110
+ export function moveRect({ rect, delta: [dx, dy], imageBox }) {
111
+ return constraintRect(
112
+ {
113
+ ...rect,
114
+ x: rect.x + dx,
115
+ y: rect.y + dy,
116
+ },
117
+ imageBox,
118
+ );
119
+ }
120
+
121
+ /**
122
+ * @param {import('./types.js').Rectangle} rect1
123
+ * @param {import('./types.js').Rectangle} rect2
124
+ */
125
+ export function constraintRect(rect1, rect2) {
126
+ let { x } = rect1;
127
+ let { y } = rect1;
128
+ if (rect1.x < rect2.x) {
129
+ x = rect2.x;
130
+ } else if (rect1.x + rect1.width > rect2.x + rect2.width) {
131
+ x = rect2.x + rect2.width - rect1.width;
132
+ }
133
+ if (rect1.y < rect2.y) {
134
+ y = rect2.y;
135
+ } else if (rect1.y + rect1.height > rect2.y + rect2.height) {
136
+ y = rect2.y + rect2.height - rect1.height;
137
+ }
138
+
139
+ return {
140
+ ...rect1,
141
+ x,
142
+ y,
143
+ };
144
+ }
145
+
146
+ /**
147
+ * @param {{
148
+ * rect: import('./types.js').Rectangle;
149
+ * delta: [Number, Number];
150
+ * aspectRatio?: number;
151
+ * imageBox: import('./types.js').Rectangle;
152
+ * }} options
153
+ */
154
+ function resizeNorth({ rect, delta, aspectRatio, imageBox }) {
155
+ const [, dy] = delta;
156
+ let { y, width, height } = rect;
157
+
158
+ y += dy;
159
+ height -= dy;
160
+ if (aspectRatio) {
161
+ width = height * aspectRatio;
162
+ }
163
+ let x = rect.x + rect.width / 2 - width / 2;
164
+ if (y <= imageBox.y) {
165
+ y = imageBox.y;
166
+ height = rect.y + rect.height - y;
167
+ if (aspectRatio) {
168
+ width = height * aspectRatio;
169
+ x = rect.x + rect.width / 2 - width / 2;
170
+ }
171
+ }
172
+ if (x <= imageBox.x) {
173
+ x = imageBox.x;
174
+ y = rect.y + rect.height - height;
175
+ }
176
+ if (x + width >= imageBox.x + imageBox.width) {
177
+ x = Math.max(imageBox.x, imageBox.x + imageBox.width - width);
178
+ width = imageBox.x + imageBox.width - x;
179
+ if (aspectRatio) {
180
+ height = width / aspectRatio;
181
+ }
182
+ y = rect.y + rect.height - height;
183
+ }
184
+ if (height < MIN_CROP_SIZE) {
185
+ height = MIN_CROP_SIZE;
186
+ if (aspectRatio) {
187
+ width = height * aspectRatio;
188
+ x = rect.x + rect.width / 2 - width / 2;
189
+ }
190
+ y = rect.y + rect.height - height;
191
+ }
192
+ if (width < MIN_CROP_SIZE) {
193
+ width = MIN_CROP_SIZE;
194
+ if (aspectRatio) {
195
+ height = width / aspectRatio;
196
+ x = rect.x + rect.width / 2 - width / 2;
197
+ }
198
+ y = rect.y + rect.height - height;
199
+ }
200
+
201
+ return { x, y, width, height };
202
+ }
203
+
204
+ /**
205
+ * @param {{
206
+ * rect: import('./types.js').Rectangle;
207
+ * delta: [Number, Number];
208
+ * aspectRatio?: number;
209
+ * imageBox: import('./types.js').Rectangle;
210
+ * }} options
211
+ */
212
+ function resizeWest({ rect, delta, aspectRatio, imageBox }) {
213
+ const [dx] = delta;
214
+ let { x, width, height } = rect;
215
+
216
+ x += dx;
217
+ width -= dx;
218
+ if (aspectRatio) {
219
+ height = width / aspectRatio;
220
+ }
221
+ let y = rect.y + rect.height / 2 - height / 2;
222
+ if (x <= imageBox.x) {
223
+ x = imageBox.x;
224
+ width = rect.x + rect.width - x;
225
+ if (aspectRatio) {
226
+ height = width / aspectRatio;
227
+ y = rect.y + rect.height / 2 - height / 2;
228
+ }
229
+ }
230
+ if (y <= imageBox.y) {
231
+ y = imageBox.y;
232
+ x = rect.x + rect.width - width;
233
+ }
234
+ if (y + height >= imageBox.y + imageBox.height) {
235
+ y = Math.max(imageBox.y, imageBox.y + imageBox.height - height);
236
+ height = imageBox.y + imageBox.height - y;
237
+ if (aspectRatio) {
238
+ width = height * aspectRatio;
239
+ }
240
+ x = rect.x + rect.width - width;
241
+ }
242
+ if (height < MIN_CROP_SIZE) {
243
+ height = MIN_CROP_SIZE;
244
+ if (aspectRatio) {
245
+ width = height * aspectRatio;
246
+ }
247
+ y = rect.y + rect.height / 2 - height / 2;
248
+ x = rect.x + rect.width - width;
249
+ }
250
+ if (width < MIN_CROP_SIZE) {
251
+ width = MIN_CROP_SIZE;
252
+ if (aspectRatio) {
253
+ height = width / aspectRatio;
254
+ }
255
+ y = rect.y + rect.height / 2 - height / 2;
256
+ x = rect.x + rect.width - width;
257
+ }
258
+
259
+ return { x, y, width, height };
260
+ }
261
+
262
+ /**
263
+ * @param {{
264
+ * rect: import('./types.js').Rectangle;
265
+ * delta: [Number, Number];
266
+ * aspectRatio?: number;
267
+ * imageBox: import('./types.js').Rectangle;
268
+ * }} options
269
+ */
270
+ function resizeSouth({ rect, delta, aspectRatio, imageBox }) {
271
+ const [, dy] = delta;
272
+ let { y, width, height } = rect;
273
+
274
+ height += dy;
275
+ if (aspectRatio) {
276
+ width = height * aspectRatio;
277
+ }
278
+ let x = rect.x + rect.width / 2 - width / 2;
279
+ if (y + height >= imageBox.y + imageBox.height) {
280
+ height = imageBox.y + imageBox.height - y;
281
+ if (aspectRatio) {
282
+ width = height * aspectRatio;
283
+ }
284
+ x = rect.x + rect.width / 2 - width / 2;
285
+ }
286
+ if (x <= imageBox.x) {
287
+ x = imageBox.x;
288
+ y = rect.y;
289
+ }
290
+ if (x + width >= imageBox.x + imageBox.width) {
291
+ x = Math.max(imageBox.x, imageBox.x + imageBox.width - width);
292
+ width = imageBox.x + imageBox.width - x;
293
+ if (aspectRatio) {
294
+ height = width / aspectRatio;
295
+ }
296
+ y = rect.y;
297
+ }
298
+ if (height < MIN_CROP_SIZE) {
299
+ height = MIN_CROP_SIZE;
300
+ if (aspectRatio) {
301
+ width = height * aspectRatio;
302
+ }
303
+ x = rect.x + rect.width / 2 - width / 2;
304
+ }
305
+ if (width < MIN_CROP_SIZE) {
306
+ width = MIN_CROP_SIZE;
307
+ if (aspectRatio) {
308
+ height = width / aspectRatio;
309
+ }
310
+ x = rect.x + rect.width / 2 - width / 2;
311
+ }
312
+
313
+ return { x, y, width, height };
314
+ }
315
+
316
+ /**
317
+ * @param {{
318
+ * rect: import('./types.js').Rectangle;
319
+ * delta: [Number, Number];
320
+ * aspectRatio?: number;
321
+ * imageBox: import('./types.js').Rectangle;
322
+ * }} options
323
+ */
324
+ function resizeEast({ rect, delta, aspectRatio, imageBox }) {
325
+ const [dx] = delta;
326
+ let { x, width, height } = rect;
327
+
328
+ width += dx;
329
+ if (aspectRatio) {
330
+ height = width / aspectRatio;
331
+ }
332
+ let y = rect.y + rect.height / 2 - height / 2;
333
+ if (x + width >= imageBox.x + imageBox.width) {
334
+ width = imageBox.x + imageBox.width - x;
335
+ if (aspectRatio) {
336
+ height = width / aspectRatio;
337
+ }
338
+ y = rect.y + rect.height / 2 - height / 2;
339
+ }
340
+ if (y <= imageBox.y) {
341
+ y = imageBox.y;
342
+ x = rect.x;
343
+ }
344
+ if (y + height >= imageBox.y + imageBox.height) {
345
+ y = Math.max(imageBox.y, imageBox.y + imageBox.height - height);
346
+ height = imageBox.y + imageBox.height - y;
347
+ if (aspectRatio) {
348
+ width = height * aspectRatio;
349
+ }
350
+ x = rect.x;
351
+ }
352
+ if (height < MIN_CROP_SIZE) {
353
+ height = MIN_CROP_SIZE;
354
+ if (aspectRatio) {
355
+ width = height * aspectRatio;
356
+ }
357
+ y = rect.y + rect.height / 2 - height / 2;
358
+ }
359
+ if (width < MIN_CROP_SIZE) {
360
+ width = MIN_CROP_SIZE;
361
+ if (aspectRatio) {
362
+ height = width / aspectRatio;
363
+ }
364
+ y = rect.y + rect.height / 2 - height / 2;
365
+ }
366
+
367
+ return { x, y, width, height };
368
+ }
369
+
370
+ /**
371
+ * @param {{
372
+ * rect: import('./types.js').Rectangle;
373
+ * delta: [Number, Number];
374
+ * aspectRatio?: number;
375
+ * imageBox: import('./types.js').Rectangle;
376
+ * }} options
377
+ */
378
+ function resizeNorthWest({ rect, delta, aspectRatio, imageBox }) {
379
+ let [dx, dy] = delta;
380
+ let { x, y, width, height } = rect;
381
+
382
+ if (x + dx < imageBox.x) {
383
+ dx = imageBox.x - x;
384
+ }
385
+ if (y + dy < imageBox.y) {
386
+ dy = imageBox.y - y;
387
+ }
388
+ x += dx;
389
+ width -= dx;
390
+ y += dy;
391
+ height -= dy;
392
+ if (aspectRatio && Math.abs(width / height) > aspectRatio) {
393
+ dy = width / aspectRatio - height;
394
+ height += dy;
395
+ y -= dy;
396
+ if (y <= imageBox.y) {
397
+ height = height - (imageBox.y - y);
398
+ width = height * aspectRatio;
399
+ x = rect.x + rect.width - width;
400
+ y = imageBox.y;
401
+ }
402
+ } else if (aspectRatio) {
403
+ dx = height * aspectRatio - width;
404
+ width = width + dx;
405
+ x -= dx;
406
+ if (x <= imageBox.x) {
407
+ width = width - (imageBox.x - x);
408
+ height = width / aspectRatio;
409
+ x = imageBox.x;
410
+ y = rect.y + rect.height - height;
411
+ }
412
+ }
413
+ if (height < MIN_CROP_SIZE) {
414
+ height = MIN_CROP_SIZE;
415
+ if (aspectRatio) {
416
+ width = height * aspectRatio;
417
+ }
418
+ x = rect.x + rect.width - width;
419
+ y = rect.y + rect.height - height;
420
+ }
421
+ if (width < MIN_CROP_SIZE) {
422
+ width = MIN_CROP_SIZE;
423
+ if (aspectRatio) {
424
+ height = width / aspectRatio;
425
+ }
426
+ x = rect.x + rect.width - width;
427
+ y = rect.y + rect.height - height;
428
+ }
429
+
430
+ return { x, y, width, height };
431
+ }
432
+
433
+ /**
434
+ * @param {{
435
+ * rect: import('./types.js').Rectangle;
436
+ * delta: [Number, Number];
437
+ * aspectRatio?: number;
438
+ * imageBox: import('./types.js').Rectangle;
439
+ * }} options
440
+ */
441
+ function resizeNorthEast({ rect, delta, aspectRatio, imageBox }) {
442
+ let [dx, dy] = delta;
443
+ let { x, y, width, height } = rect;
444
+
445
+ if (x + width + dx > imageBox.x + imageBox.width) {
446
+ dx = imageBox.x + imageBox.width - x - width;
447
+ }
448
+ if (y + dy < imageBox.y) {
449
+ dy = imageBox.y - y;
450
+ }
451
+ width += dx;
452
+ y += dy;
453
+ height -= dy;
454
+ if (aspectRatio && Math.abs(width / height) > aspectRatio) {
455
+ dy = width / aspectRatio - height;
456
+ height += dy;
457
+ y -= dy;
458
+ if (y <= imageBox.y) {
459
+ height = height - (imageBox.y - y);
460
+ width = height * aspectRatio;
461
+ x = rect.x;
462
+ y = imageBox.y;
463
+ }
464
+ } else if (aspectRatio) {
465
+ dx = height * aspectRatio - width;
466
+ width += dx;
467
+ if (x + width >= imageBox.x + imageBox.width) {
468
+ width = imageBox.x + imageBox.width - x;
469
+ height = width / aspectRatio;
470
+ x = imageBox.x + imageBox.width - width;
471
+ y = rect.y + rect.height - height;
472
+ }
473
+ }
474
+ if (height < MIN_CROP_SIZE) {
475
+ height = MIN_CROP_SIZE;
476
+ if (aspectRatio) {
477
+ width = height * aspectRatio;
478
+ }
479
+ y = rect.y + rect.height - height;
480
+ }
481
+ if (width < MIN_CROP_SIZE) {
482
+ width = MIN_CROP_SIZE;
483
+ if (aspectRatio) {
484
+ height = width / aspectRatio;
485
+ }
486
+ y = rect.y + rect.height - height;
487
+ }
488
+
489
+ return { x, y, width, height };
490
+ }
491
+
492
+ /**
493
+ * @param {{
494
+ * rect: import('./types.js').Rectangle;
495
+ * delta: [Number, Number];
496
+ * aspectRatio?: number;
497
+ * imageBox: import('./types.js').Rectangle;
498
+ * }} options
499
+ */
500
+ function resizeSouthWest({ rect, delta, aspectRatio, imageBox }) {
501
+ let [dx, dy] = delta;
502
+ let { x, y, width, height } = rect;
503
+
504
+ if (x + dx < imageBox.x) {
505
+ dx = imageBox.x - x;
506
+ }
507
+ if (y + height + dy > imageBox.y + imageBox.height) {
508
+ dy = imageBox.y + imageBox.height - y - height;
509
+ }
510
+ x += dx;
511
+ width -= dx;
512
+ height += dy;
513
+ if (aspectRatio && Math.abs(width / height) > aspectRatio) {
514
+ dy = width / aspectRatio - height;
515
+ height += dy;
516
+ if (y + height >= imageBox.y + imageBox.height) {
517
+ height = imageBox.y + imageBox.height - y;
518
+ width = height * aspectRatio;
519
+ x = rect.x + rect.width - width;
520
+ y = imageBox.y + imageBox.height - height;
521
+ }
522
+ } else if (aspectRatio) {
523
+ dx = height * aspectRatio - width;
524
+ width += dx;
525
+ x -= dx;
526
+ if (x <= imageBox.x) {
527
+ width = width - (imageBox.x - x);
528
+ height = width / aspectRatio;
529
+ x = imageBox.x;
530
+ y = rect.y;
531
+ }
532
+ }
533
+ if (height < MIN_CROP_SIZE) {
534
+ height = MIN_CROP_SIZE;
535
+ if (aspectRatio) {
536
+ width = height * aspectRatio;
537
+ }
538
+ x = rect.x + rect.width - width;
539
+ }
540
+ if (width < MIN_CROP_SIZE) {
541
+ width = MIN_CROP_SIZE;
542
+ if (aspectRatio) {
543
+ height = width / aspectRatio;
544
+ }
545
+ x = rect.x + rect.width - width;
546
+ }
547
+
548
+ return { x, y, width, height };
549
+ }
550
+
551
+ /**
552
+ * @param {{
553
+ * rect: import('./types.js').Rectangle;
554
+ * delta: [Number, Number];
555
+ * aspectRatio?: number;
556
+ * imageBox: import('./types.js').Rectangle;
557
+ * }} options
558
+ */
559
+ function resizeSouthEast({ rect, delta, aspectRatio, imageBox }) {
560
+ let [dx, dy] = delta;
561
+ let { x, y, width, height } = rect;
562
+
563
+ if (x + width + dx > imageBox.x + imageBox.width) {
564
+ dx = imageBox.x + imageBox.width - x - width;
565
+ }
566
+ if (y + height + dy > imageBox.y + imageBox.height) {
567
+ dy = imageBox.y + imageBox.height - y - height;
568
+ }
569
+ width += dx;
570
+ height += dy;
571
+ if (aspectRatio && Math.abs(width / height) > aspectRatio) {
572
+ dy = width / aspectRatio - height;
573
+ height += dy;
574
+ if (y + height >= imageBox.y + imageBox.height) {
575
+ height = imageBox.y + imageBox.height - y;
576
+ width = height * aspectRatio;
577
+ x = rect.x;
578
+ y = imageBox.y + imageBox.height - height;
579
+ }
580
+ } else if (aspectRatio) {
581
+ dx = height * aspectRatio - width;
582
+ width += dx;
583
+ if (x + width >= imageBox.x + imageBox.width) {
584
+ width = imageBox.x + imageBox.width - x;
585
+ height = width / aspectRatio;
586
+ x = imageBox.x + imageBox.width - width;
587
+ y = rect.y;
588
+ }
589
+ }
590
+ if (height < MIN_CROP_SIZE) {
591
+ height = MIN_CROP_SIZE;
592
+ if (aspectRatio) {
593
+ width = height * aspectRatio;
594
+ }
595
+ }
596
+ if (width < MIN_CROP_SIZE) {
597
+ width = MIN_CROP_SIZE;
598
+ if (aspectRatio) {
599
+ height = width / aspectRatio;
600
+ }
601
+ }
602
+
603
+ return { x, y, width, height };
604
+ }
605
+
606
+ /**
607
+ * @param {{
608
+ * rect: import('./types.js').Rectangle;
609
+ * delta: [Number, Number];
610
+ * direction: import('./types.js').Direction;
611
+ * aspectRatio?: number;
612
+ * imageBox: import('./types.js').Rectangle;
613
+ * }} options
614
+ */
615
+ export function resizeRect({ direction, ...rest }) {
616
+ switch (direction) {
617
+ case 'n':
618
+ return resizeNorth(rest);
619
+ case 'w':
620
+ return resizeWest(rest);
621
+ case 's':
622
+ return resizeSouth(rest);
623
+ case 'e':
624
+ return resizeEast(rest);
625
+ case 'nw':
626
+ return resizeNorthWest(rest);
627
+ case 'ne':
628
+ return resizeNorthEast(rest);
629
+ case 'sw':
630
+ return resizeSouthWest(rest);
631
+ case 'se':
632
+ return resizeSouthEast(rest);
633
+ default:
634
+ return rest.rect;
635
+ }
636
+ }
637
+
638
+ /**
639
+ * @param {import('./types.js').Rectangle} rect
640
+ * @param {[Number, Number]} point
641
+ */
642
+ export function rectContainsPoint(rect, [x, y]) {
643
+ return rect.x <= x && x <= rect.x + rect.width && rect.y <= y && y <= rect.y + rect.height;
644
+ }
645
+
646
+ /**
647
+ * @param {import('./types.js').Rectangle} rect1
648
+ * @param {import('./types.js').Rectangle} rect2
649
+ */
650
+ export function isRectInsideRect(rect1, rect2) {
651
+ return (
652
+ rect1.x >= rect2.x &&
653
+ rect1.y >= rect2.y &&
654
+ rect1.x + rect1.width <= rect2.x + rect2.width &&
655
+ rect1.y + rect1.height <= rect2.y + rect2.height
656
+ );
657
+ }
658
+
659
+ /**
660
+ * @param {import('./types.js').Rectangle} rect
661
+ * @param {number} aspectRatio
662
+ */
663
+ export function isRectMatchesAspectRatio(rect, aspectRatio) {
664
+ const THRESHOLD = 0.1;
665
+ return Math.abs(rect.width / rect.height - aspectRatio) < THRESHOLD;
666
+ }
667
+
668
+ /**
669
+ * @param {import('./types.js').ImageSize} imageSize
670
+ * @param {Number} angle
671
+ * @returns {import('./types.js').ImageSize}
672
+ */
673
+ export function rotateSize({ width, height }, angle) {
674
+ let swap = (angle / 90) % 2 !== 0;
675
+ return { width: swap ? height : width, height: swap ? width : height };
676
+ }
677
+
678
+ /**
679
+ * @param {number} width
680
+ * @param {number} height
681
+ * @param {number} aspectRatio
682
+ */
683
+ export function calculateMaxCenteredCropFrame(width, height, aspectRatio) {
684
+ const imageAspectRatio = width / height;
685
+ let cropWidth, cropHeight;
686
+
687
+ if (imageAspectRatio > aspectRatio) {
688
+ cropWidth = Math.round(height * aspectRatio);
689
+ cropHeight = height;
690
+ } else {
691
+ cropWidth = width;
692
+ cropHeight = Math.round(width / aspectRatio);
693
+ }
694
+
695
+ const cropX = Math.round((width - cropWidth) / 2);
696
+ const cropY = Math.round((height - cropHeight) / 2);
697
+
698
+ if (cropX + cropWidth > width) {
699
+ cropWidth = width - cropX;
700
+ }
701
+ if (cropY + cropHeight > height) {
702
+ cropHeight = height - cropY;
703
+ }
704
+
705
+ return { x: cropX, y: cropY, width: cropWidth, height: cropHeight };
706
+ }
707
+
708
+ /**
709
+ * @param {import('./types.js').Rectangle} rect
710
+ * @returns {import('./types.js').Rectangle}
711
+ */
712
+ export function roundRect(rect) {
713
+ return {
714
+ x: Math.round(rect.x),
715
+ y: Math.round(rect.y),
716
+ width: Math.round(rect.width),
717
+ height: Math.round(rect.height),
718
+ };
719
+ }
720
+
721
+ /**
722
+ * @param {Number} value
723
+ * @param {Number} min
724
+ * @param {Number} max
725
+ * @returns {Number}
726
+ */
727
+ export function clamp(value, min, max) {
728
+ return Math.min(Math.max(value, min), max);
729
+ }