@uploadcare/file-uploader 1.28.0-alpha.0 → 1.28.0-alpha.111

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 (564) hide show
  1. package/dist/abstract/CTX.d.ts +5 -3
  2. package/dist/abstract/CTX.d.ts.map +1 -0
  3. package/dist/abstract/TypedCollection.d.ts +2 -1
  4. package/dist/abstract/TypedCollection.d.ts.map +1 -0
  5. package/dist/abstract/TypedData.d.ts +3 -2
  6. package/dist/abstract/TypedData.d.ts.map +1 -0
  7. package/dist/abstract/UploaderPublicApi.d.ts +7 -6
  8. package/dist/abstract/UploaderPublicApi.d.ts.map +1 -0
  9. package/dist/abstract/buildOutputCollectionState.d.ts +3 -2
  10. package/dist/abstract/buildOutputCollectionState.d.ts.map +1 -0
  11. package/dist/abstract/customConfigOptions.d.ts +1 -0
  12. package/dist/abstract/customConfigOptions.d.ts.map +1 -0
  13. package/dist/abstract/defineComponents.d.ts +1 -0
  14. package/dist/abstract/defineComponents.d.ts.map +1 -0
  15. package/dist/abstract/features/ClipboardLayer.d.ts +2 -1
  16. package/dist/abstract/features/ClipboardLayer.d.ts.map +1 -0
  17. package/dist/abstract/loadFileUploaderFrom.d.ts +1 -0
  18. package/dist/abstract/loadFileUploaderFrom.d.ts.map +1 -0
  19. package/dist/abstract/loadFileUploaderFrom.js +1 -8
  20. package/dist/abstract/localeRegistry.d.ts +1 -0
  21. package/dist/abstract/localeRegistry.d.ts.map +1 -0
  22. package/dist/abstract/managers/LocaleManager.d.ts +3 -2
  23. package/dist/abstract/managers/LocaleManager.d.ts.map +1 -0
  24. package/dist/abstract/managers/ModalManager.d.ts +3 -2
  25. package/dist/abstract/managers/ModalManager.d.ts.map +1 -0
  26. package/dist/abstract/managers/SecureUploadsManager.d.ts +2 -1
  27. package/dist/abstract/managers/SecureUploadsManager.d.ts.map +1 -0
  28. package/dist/abstract/managers/TelemetryManager.d.ts +4 -3
  29. package/dist/abstract/managers/TelemetryManager.d.ts.map +1 -0
  30. package/dist/abstract/managers/ValidationManager.d.ts +7 -6
  31. package/dist/abstract/managers/ValidationManager.d.ts.map +1 -0
  32. package/dist/abstract/managers/a11y.d.ts +3 -2
  33. package/dist/abstract/managers/a11y.d.ts.map +1 -0
  34. package/dist/abstract/managers/plugin/PluginManager.d.ts +3 -2
  35. package/dist/abstract/managers/plugin/PluginManager.d.ts.map +1 -0
  36. package/dist/abstract/managers/plugin/PluginTypes.d.ts +4 -3
  37. package/dist/abstract/managers/plugin/PluginTypes.d.ts.map +1 -0
  38. package/dist/abstract/managers/plugin/index.d.ts +1 -0
  39. package/dist/abstract/managers/plugin/index.d.ts.map +1 -0
  40. package/dist/abstract/sharedConfigKey.d.ts +2 -1
  41. package/dist/abstract/sharedConfigKey.d.ts.map +1 -0
  42. package/dist/abstract/uploadEntrySchema.d.ts +4 -3
  43. package/dist/abstract/uploadEntrySchema.d.ts.map +1 -0
  44. package/dist/blocks/ActivityHeader/ActivityHeader.d.ts +2 -0
  45. package/dist/blocks/ActivityHeader/ActivityHeader.d.ts.map +1 -0
  46. package/dist/blocks/CameraSource/CameraSource.d.ts +7 -2
  47. package/dist/blocks/CameraSource/CameraSource.d.ts.map +1 -0
  48. package/dist/blocks/CameraSource/calcCameraModes.d.ts +2 -1
  49. package/dist/blocks/CameraSource/calcCameraModes.d.ts.map +1 -0
  50. package/dist/blocks/CameraSource/constants.d.ts +1 -0
  51. package/dist/blocks/CameraSource/constants.d.ts.map +1 -0
  52. package/dist/blocks/CloudImageEditor/index.d.ts +2 -0
  53. package/dist/blocks/CloudImageEditor/index.d.ts.map +1 -0
  54. package/dist/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts +10 -2
  55. package/dist/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts.map +1 -0
  56. package/dist/blocks/CloudImageEditor/src/CropFrame.d.ts +2 -1
  57. package/dist/blocks/CloudImageEditor/src/CropFrame.d.ts.map +1 -0
  58. package/dist/blocks/CloudImageEditor/src/EditorAspectRatioButtonControl.d.ts +5 -3
  59. package/dist/blocks/CloudImageEditor/src/EditorAspectRatioButtonControl.d.ts.map +1 -0
  60. package/dist/blocks/CloudImageEditor/src/EditorButtonControl.d.ts +4 -2
  61. package/dist/blocks/CloudImageEditor/src/EditorButtonControl.d.ts.map +1 -0
  62. package/dist/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts +3 -2
  63. package/dist/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts.map +1 -0
  64. package/dist/blocks/CloudImageEditor/src/EditorFilterControl.d.ts +4 -2
  65. package/dist/blocks/CloudImageEditor/src/EditorFilterControl.d.ts.map +1 -0
  66. package/dist/blocks/CloudImageEditor/src/EditorImageCropper.d.ts +4 -2
  67. package/dist/blocks/CloudImageEditor/src/EditorImageCropper.d.ts.map +1 -0
  68. package/dist/blocks/CloudImageEditor/src/EditorImageFader.d.ts +3 -2
  69. package/dist/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -0
  70. package/dist/blocks/CloudImageEditor/src/EditorOperationControl.d.ts +2 -1
  71. package/dist/blocks/CloudImageEditor/src/EditorOperationControl.d.ts.map +1 -0
  72. package/dist/blocks/CloudImageEditor/src/EditorScroller.d.ts +1 -0
  73. package/dist/blocks/CloudImageEditor/src/EditorScroller.d.ts.map +1 -0
  74. package/dist/blocks/CloudImageEditor/src/EditorSlider.d.ts +5 -3
  75. package/dist/blocks/CloudImageEditor/src/EditorSlider.d.ts.map +1 -0
  76. package/dist/blocks/CloudImageEditor/src/EditorToolbar.d.ts +12 -2
  77. package/dist/blocks/CloudImageEditor/src/EditorToolbar.d.ts.map +1 -0
  78. package/dist/blocks/CloudImageEditor/src/crop-utils.d.ts +2 -1
  79. package/dist/blocks/CloudImageEditor/src/crop-utils.d.ts.map +1 -0
  80. package/dist/blocks/CloudImageEditor/src/cropper-constants.d.ts +1 -0
  81. package/dist/blocks/CloudImageEditor/src/cropper-constants.d.ts.map +1 -0
  82. package/dist/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts +5 -3
  83. package/dist/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts.map +1 -0
  84. package/dist/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts +3 -2
  85. package/dist/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts.map +1 -0
  86. package/dist/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts +1 -0
  87. package/dist/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts.map +1 -0
  88. package/dist/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts +3 -2
  89. package/dist/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts.map +1 -0
  90. package/dist/blocks/CloudImageEditor/src/index.d.ts +1 -0
  91. package/dist/blocks/CloudImageEditor/src/index.d.ts.map +1 -0
  92. package/dist/blocks/CloudImageEditor/src/lib/classNames.d.ts +1 -0
  93. package/dist/blocks/CloudImageEditor/src/lib/classNames.d.ts.map +1 -0
  94. package/dist/blocks/CloudImageEditor/src/lib/linspace.d.ts +1 -0
  95. package/dist/blocks/CloudImageEditor/src/lib/linspace.d.ts.map +1 -0
  96. package/dist/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts +3 -2
  97. package/dist/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts.map +1 -0
  98. package/dist/blocks/CloudImageEditor/src/lib/parseTabs.d.ts +2 -1
  99. package/dist/blocks/CloudImageEditor/src/lib/parseTabs.d.ts.map +1 -0
  100. package/dist/blocks/CloudImageEditor/src/lib/pick.d.ts +1 -0
  101. package/dist/blocks/CloudImageEditor/src/lib/pick.d.ts.map +1 -0
  102. package/dist/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts +2 -1
  103. package/dist/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts.map +1 -0
  104. package/dist/blocks/CloudImageEditor/src/state.d.ts +3 -2
  105. package/dist/blocks/CloudImageEditor/src/state.d.ts.map +1 -0
  106. package/dist/blocks/CloudImageEditor/src/svg-sprite.d.ts +1 -0
  107. package/dist/blocks/CloudImageEditor/src/svg-sprite.d.ts.map +1 -0
  108. package/dist/blocks/CloudImageEditor/src/toolbar-constants.d.ts +1 -0
  109. package/dist/blocks/CloudImageEditor/src/toolbar-constants.d.ts.map +1 -0
  110. package/dist/blocks/CloudImageEditor/src/types.d.ts +1 -0
  111. package/dist/blocks/CloudImageEditor/src/types.d.ts.map +1 -0
  112. package/dist/blocks/CloudImageEditor/src/util.d.ts +2 -1
  113. package/dist/blocks/CloudImageEditor/src/util.d.ts.map +1 -0
  114. package/dist/blocks/CloudImageEditor/src/utils/parseFilterValue.d.ts +1 -0
  115. package/dist/blocks/CloudImageEditor/src/utils/parseFilterValue.d.ts.map +1 -0
  116. package/dist/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts +5 -2
  117. package/dist/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts.map +1 -0
  118. package/dist/blocks/Config/Config.d.ts +4 -2
  119. package/dist/blocks/Config/Config.d.ts.map +1 -0
  120. package/dist/blocks/Config/assertions.d.ts +2 -1
  121. package/dist/blocks/Config/assertions.d.ts.map +1 -0
  122. package/dist/blocks/Config/computed-properties.d.ts +2 -1
  123. package/dist/blocks/Config/computed-properties.d.ts.map +1 -0
  124. package/dist/blocks/Config/initialConfig.d.ts +2 -1
  125. package/dist/blocks/Config/initialConfig.d.ts.map +1 -0
  126. package/dist/blocks/Config/normalizeConfigValue.d.ts +2 -1
  127. package/dist/blocks/Config/normalizeConfigValue.d.ts.map +1 -0
  128. package/dist/blocks/Config/validatorsType.d.ts +5 -4
  129. package/dist/blocks/Config/validatorsType.d.ts.map +1 -0
  130. package/dist/blocks/Copyright/Copyright.d.ts +3 -1
  131. package/dist/blocks/Copyright/Copyright.d.ts.map +1 -0
  132. package/dist/blocks/DropArea/DropArea.d.ts +5 -2
  133. package/dist/blocks/DropArea/DropArea.d.ts.map +1 -0
  134. package/dist/blocks/DropArea/addDropzone.d.ts +1 -0
  135. package/dist/blocks/DropArea/addDropzone.d.ts.map +1 -0
  136. package/dist/blocks/DropArea/getDropItems.d.ts +1 -0
  137. package/dist/blocks/DropArea/getDropItems.d.ts.map +1 -0
  138. package/dist/blocks/ExternalSource/ExternalSource.d.ts +6 -1
  139. package/dist/blocks/ExternalSource/ExternalSource.d.ts.map +1 -0
  140. package/dist/blocks/ExternalSource/MessageBridge.d.ts +2 -1
  141. package/dist/blocks/ExternalSource/MessageBridge.d.ts.map +1 -0
  142. package/dist/blocks/ExternalSource/buildThemeDefinition.d.ts +2 -1
  143. package/dist/blocks/ExternalSource/buildThemeDefinition.d.ts.map +1 -0
  144. package/dist/blocks/ExternalSource/query-string.d.ts +1 -0
  145. package/dist/blocks/ExternalSource/query-string.d.ts.map +1 -0
  146. package/dist/blocks/ExternalSource/types.d.ts +1 -0
  147. package/dist/blocks/ExternalSource/types.d.ts.map +1 -0
  148. package/dist/blocks/FileItem/FileItem.d.ts +8 -3
  149. package/dist/blocks/FileItem/FileItem.d.ts.map +1 -0
  150. package/dist/blocks/FileItem/FileItemConfig.d.ts +2 -1
  151. package/dist/blocks/FileItem/FileItemConfig.d.ts.map +1 -0
  152. package/dist/blocks/FormInput/FormInput.d.ts +1 -0
  153. package/dist/blocks/FormInput/FormInput.d.ts.map +1 -0
  154. package/dist/blocks/Icon/Icon.d.ts +4 -2
  155. package/dist/blocks/Icon/Icon.d.ts.map +1 -0
  156. package/dist/blocks/Img/Img.d.ts +1 -0
  157. package/dist/blocks/Img/Img.d.ts.map +1 -0
  158. package/dist/blocks/Img/ImgBase.d.ts +1 -0
  159. package/dist/blocks/Img/ImgBase.d.ts.map +1 -0
  160. package/dist/blocks/Img/ImgConfig.d.ts +3 -2
  161. package/dist/blocks/Img/ImgConfig.d.ts.map +1 -0
  162. package/dist/blocks/Img/configurations.d.ts +1 -0
  163. package/dist/blocks/Img/configurations.d.ts.map +1 -0
  164. package/dist/blocks/Img/props-map.d.ts +1 -0
  165. package/dist/blocks/Img/props-map.d.ts.map +1 -0
  166. package/dist/blocks/Img/utils/parseObjectToString.d.ts +1 -0
  167. package/dist/blocks/Img/utils/parseObjectToString.d.ts.map +1 -0
  168. package/dist/blocks/Modal/Modal.d.ts +4 -2
  169. package/dist/blocks/Modal/Modal.d.ts.map +1 -0
  170. package/dist/blocks/PluginActivityRenderer/PluginActivityRenderer.d.ts +8 -5
  171. package/dist/blocks/PluginActivityRenderer/PluginActivityRenderer.d.ts.map +1 -0
  172. package/dist/blocks/PluginActivityRenderer/index.d.ts +1 -0
  173. package/dist/blocks/PluginActivityRenderer/index.d.ts.map +1 -0
  174. package/dist/blocks/ProgressBar/ProgressBar.d.ts +4 -2
  175. package/dist/blocks/ProgressBar/ProgressBar.d.ts.map +1 -0
  176. package/dist/blocks/ProgressBarCommon/ProgressBarCommon.d.ts +5 -2
  177. package/dist/blocks/ProgressBarCommon/ProgressBarCommon.d.ts.map +1 -0
  178. package/dist/blocks/Select/Select.d.ts +3 -1
  179. package/dist/blocks/Select/Select.d.ts.map +1 -0
  180. package/dist/blocks/SimpleBtn/SimpleBtn.d.ts +5 -1
  181. package/dist/blocks/SimpleBtn/SimpleBtn.d.ts.map +1 -0
  182. package/dist/blocks/SourceBtn/SourceBtn.d.ts +5 -2
  183. package/dist/blocks/SourceBtn/SourceBtn.d.ts.map +1 -0
  184. package/dist/blocks/SourceList/SourceList.d.ts +4 -2
  185. package/dist/blocks/SourceList/SourceList.d.ts.map +1 -0
  186. package/dist/blocks/Spinner/Spinner.d.ts +3 -1
  187. package/dist/blocks/Spinner/Spinner.d.ts.map +1 -0
  188. package/dist/blocks/StartFrom/StartFrom.d.ts +4 -2
  189. package/dist/blocks/StartFrom/StartFrom.d.ts.map +1 -0
  190. package/dist/blocks/Thumb/Thumb.d.ts +6 -3
  191. package/dist/blocks/Thumb/Thumb.d.ts.map +1 -0
  192. package/dist/blocks/UploadCtxProvider/EventEmitter.d.ts +5 -4
  193. package/dist/blocks/UploadCtxProvider/EventEmitter.d.ts.map +1 -0
  194. package/dist/blocks/UploadCtxProvider/UploadCtxProvider.d.ts +2 -1
  195. package/dist/blocks/UploadCtxProvider/UploadCtxProvider.d.ts.map +1 -0
  196. package/dist/blocks/UploadList/UploadList.d.ts +7 -1
  197. package/dist/blocks/UploadList/UploadList.d.ts.map +1 -0
  198. package/dist/blocks/UrlSource/UrlSource.d.ts +5 -1
  199. package/dist/blocks/UrlSource/UrlSource.d.ts.map +1 -0
  200. package/dist/blocks/svg-backgrounds/svg-backgrounds.d.ts +1 -0
  201. package/dist/blocks/svg-backgrounds/svg-backgrounds.d.ts.map +1 -0
  202. package/dist/blocks/themes/uc-basic/svg-sprite.d.ts +1 -0
  203. package/dist/blocks/themes/uc-basic/svg-sprite.d.ts.map +1 -0
  204. package/dist/cameraPlugin.js +1 -0
  205. package/dist/cloudImageEditorPlugin.css +1282 -0
  206. package/dist/cloudImageEditorPlugin.js +1 -0
  207. package/dist/cloudImageEditorPlugin.layered.css +1289 -0
  208. package/dist/core.d.ts +3 -0
  209. package/dist/core.d.ts.map +1 -0
  210. package/dist/env.d.ts +1 -0
  211. package/dist/env.d.ts.map +1 -0
  212. package/dist/env.js +1 -8
  213. package/dist/externalSourcesPlugin.js +1 -0
  214. package/dist/imageShrinkPlugin.js +1 -0
  215. package/dist/index.css +1376 -3328
  216. package/dist/index.d.ts +16 -0
  217. package/dist/index.d.ts.map +1 -0
  218. package/dist/index.js +7 -1011
  219. package/dist/index.layered.css +1046 -3564
  220. package/dist/index.ssr.js +1290 -0
  221. package/dist/instagramPlugin.js +1 -0
  222. package/dist/lit/BaseComponent.d.ts +4 -3
  223. package/dist/lit/BaseComponent.d.ts.map +1 -0
  224. package/dist/lit/Constructor.d.ts +1 -0
  225. package/dist/lit/Constructor.d.ts.map +1 -0
  226. package/dist/lit/CssDataMixin.d.ts +3 -2
  227. package/dist/lit/CssDataMixin.d.ts.map +1 -0
  228. package/dist/lit/LightDomMixin.d.ts +3 -2
  229. package/dist/lit/LightDomMixin.d.ts.map +1 -0
  230. package/dist/lit/LitActivityBlock.d.ts +4 -3
  231. package/dist/lit/LitActivityBlock.d.ts.map +1 -0
  232. package/dist/lit/LitBlock.d.ts +17 -16
  233. package/dist/lit/LitBlock.d.ts.map +1 -0
  234. package/dist/lit/LitSolutionBlock.d.ts +6 -5
  235. package/dist/lit/LitSolutionBlock.d.ts.map +1 -0
  236. package/dist/lit/LitUploaderBlock.d.ts +8 -7
  237. package/dist/lit/LitUploaderBlock.d.ts.map +1 -0
  238. package/dist/lit/PubSubCompat.d.ts +1 -0
  239. package/dist/lit/PubSubCompat.d.ts.map +1 -0
  240. package/dist/lit/RegisterableElementMixin.d.ts +3 -2
  241. package/dist/lit/RegisterableElementMixin.d.ts.map +1 -0
  242. package/dist/lit/SharedState.d.ts +23 -22
  243. package/dist/lit/SharedState.d.ts.map +1 -0
  244. package/dist/lit/SymbioteCompatMixin.d.ts +3 -2
  245. package/dist/lit/SymbioteCompatMixin.d.ts.map +1 -0
  246. package/dist/lit/TestModeController.d.ts +3 -2
  247. package/dist/lit/TestModeController.d.ts.map +1 -0
  248. package/dist/lit/Uid.d.ts +1 -0
  249. package/dist/lit/Uid.d.ts.map +1 -0
  250. package/dist/lit/activity-constants.d.ts +2 -1
  251. package/dist/lit/activity-constants.d.ts.map +1 -0
  252. package/dist/lit/createDebugPrinter.d.ts +3 -2
  253. package/dist/lit/createDebugPrinter.d.ts.map +1 -0
  254. package/dist/lit/findBlockInCtx.d.ts +3 -2
  255. package/dist/lit/findBlockInCtx.d.ts.map +1 -0
  256. package/dist/lit/getOutputData.d.ts +3 -2
  257. package/dist/lit/getOutputData.d.ts.map +1 -0
  258. package/dist/lit/hasBlockInCtx.d.ts +3 -2
  259. package/dist/lit/hasBlockInCtx.d.ts.map +1 -0
  260. package/dist/lit/l10n.d.ts +3 -2
  261. package/dist/lit/l10n.d.ts.map +1 -0
  262. package/dist/lit/parseCssPropertyValue.d.ts +1 -0
  263. package/dist/lit/parseCssPropertyValue.d.ts.map +1 -0
  264. package/dist/lit/shared-instances.d.ts +15 -14
  265. package/dist/lit/shared-instances.d.ts.map +1 -0
  266. package/dist/locales/file-uploader/ar.d.ts +1 -0
  267. package/dist/locales/file-uploader/ar.d.ts.map +1 -0
  268. package/dist/locales/file-uploader/ar.js +1 -143
  269. package/dist/locales/file-uploader/az.d.ts +1 -0
  270. package/dist/locales/file-uploader/az.d.ts.map +1 -0
  271. package/dist/locales/file-uploader/az.js +1 -135
  272. package/dist/locales/file-uploader/ca.d.ts +1 -0
  273. package/dist/locales/file-uploader/ca.d.ts.map +1 -0
  274. package/dist/locales/file-uploader/ca.js +1 -137
  275. package/dist/locales/file-uploader/cs.d.ts +1 -0
  276. package/dist/locales/file-uploader/cs.d.ts.map +1 -0
  277. package/dist/locales/file-uploader/cs.js +1 -139
  278. package/dist/locales/file-uploader/da.d.ts +1 -0
  279. package/dist/locales/file-uploader/da.d.ts.map +1 -0
  280. package/dist/locales/file-uploader/da.js +1 -135
  281. package/dist/locales/file-uploader/de.d.ts +1 -0
  282. package/dist/locales/file-uploader/de.d.ts.map +1 -0
  283. package/dist/locales/file-uploader/de.js +1 -135
  284. package/dist/locales/file-uploader/el.d.ts +1 -0
  285. package/dist/locales/file-uploader/el.d.ts.map +1 -0
  286. package/dist/locales/file-uploader/el.js +1 -135
  287. package/dist/locales/file-uploader/en.d.ts +1 -0
  288. package/dist/locales/file-uploader/en.d.ts.map +1 -0
  289. package/dist/locales/file-uploader/en.js +1 -8
  290. package/dist/locales/file-uploader/es.d.ts +1 -0
  291. package/dist/locales/file-uploader/es.d.ts.map +1 -0
  292. package/dist/locales/file-uploader/es.js +1 -137
  293. package/dist/locales/file-uploader/et.d.ts +1 -0
  294. package/dist/locales/file-uploader/et.d.ts.map +1 -0
  295. package/dist/locales/file-uploader/et.js +1 -135
  296. package/dist/locales/file-uploader/fi.d.ts +1 -0
  297. package/dist/locales/file-uploader/fi.d.ts.map +1 -0
  298. package/dist/locales/file-uploader/fi.js +1 -135
  299. package/dist/locales/file-uploader/fr.d.ts +1 -0
  300. package/dist/locales/file-uploader/fr.d.ts.map +1 -0
  301. package/dist/locales/file-uploader/fr.js +1 -137
  302. package/dist/locales/file-uploader/he.d.ts +1 -0
  303. package/dist/locales/file-uploader/he.d.ts.map +1 -0
  304. package/dist/locales/file-uploader/he.js +1 -137
  305. package/dist/locales/file-uploader/hy.d.ts +1 -0
  306. package/dist/locales/file-uploader/hy.d.ts.map +1 -0
  307. package/dist/locales/file-uploader/hy.js +1 -135
  308. package/dist/locales/file-uploader/is.d.ts +1 -0
  309. package/dist/locales/file-uploader/is.d.ts.map +1 -0
  310. package/dist/locales/file-uploader/is.js +1 -135
  311. package/dist/locales/file-uploader/it.d.ts +1 -0
  312. package/dist/locales/file-uploader/it.d.ts.map +1 -0
  313. package/dist/locales/file-uploader/it.js +1 -137
  314. package/dist/locales/file-uploader/ja.d.ts +1 -0
  315. package/dist/locales/file-uploader/ja.d.ts.map +1 -0
  316. package/dist/locales/file-uploader/ja.js +1 -135
  317. package/dist/locales/file-uploader/ka.d.ts +1 -0
  318. package/dist/locales/file-uploader/ka.d.ts.map +1 -0
  319. package/dist/locales/file-uploader/ka.js +1 -135
  320. package/dist/locales/file-uploader/kk.d.ts +1 -0
  321. package/dist/locales/file-uploader/kk.d.ts.map +1 -0
  322. package/dist/locales/file-uploader/kk.js +1 -135
  323. package/dist/locales/file-uploader/ko.d.ts +1 -0
  324. package/dist/locales/file-uploader/ko.d.ts.map +1 -0
  325. package/dist/locales/file-uploader/ko.js +1 -135
  326. package/dist/locales/file-uploader/lv.d.ts +1 -0
  327. package/dist/locales/file-uploader/lv.d.ts.map +1 -0
  328. package/dist/locales/file-uploader/lv.js +1 -137
  329. package/dist/locales/file-uploader/nb.d.ts +1 -0
  330. package/dist/locales/file-uploader/nb.d.ts.map +1 -0
  331. package/dist/locales/file-uploader/nb.js +1 -135
  332. package/dist/locales/file-uploader/nl.d.ts +1 -0
  333. package/dist/locales/file-uploader/nl.d.ts.map +1 -0
  334. package/dist/locales/file-uploader/nl.js +1 -135
  335. package/dist/locales/file-uploader/pl.d.ts +1 -0
  336. package/dist/locales/file-uploader/pl.d.ts.map +1 -0
  337. package/dist/locales/file-uploader/pl.js +1 -139
  338. package/dist/locales/file-uploader/pt.d.ts +1 -0
  339. package/dist/locales/file-uploader/pt.d.ts.map +1 -0
  340. package/dist/locales/file-uploader/pt.js +1 -137
  341. package/dist/locales/file-uploader/ro.d.ts +1 -0
  342. package/dist/locales/file-uploader/ro.d.ts.map +1 -0
  343. package/dist/locales/file-uploader/ro.js +1 -137
  344. package/dist/locales/file-uploader/ru.d.ts +1 -0
  345. package/dist/locales/file-uploader/ru.d.ts.map +1 -0
  346. package/dist/locales/file-uploader/ru.js +1 -139
  347. package/dist/locales/file-uploader/sk.d.ts +1 -0
  348. package/dist/locales/file-uploader/sk.d.ts.map +1 -0
  349. package/dist/locales/file-uploader/sk.js +1 -139
  350. package/dist/locales/file-uploader/sr.d.ts +1 -0
  351. package/dist/locales/file-uploader/sr.d.ts.map +1 -0
  352. package/dist/locales/file-uploader/sr.js +1 -137
  353. package/dist/locales/file-uploader/sv.d.ts +1 -0
  354. package/dist/locales/file-uploader/sv.d.ts.map +1 -0
  355. package/dist/locales/file-uploader/sv.js +1 -135
  356. package/dist/locales/file-uploader/tr.d.ts +1 -0
  357. package/dist/locales/file-uploader/tr.d.ts.map +1 -0
  358. package/dist/locales/file-uploader/tr.js +1 -135
  359. package/dist/locales/file-uploader/uk.d.ts +1 -0
  360. package/dist/locales/file-uploader/uk.d.ts.map +1 -0
  361. package/dist/locales/file-uploader/uk.js +1 -139
  362. package/dist/locales/file-uploader/vi.d.ts +1 -0
  363. package/dist/locales/file-uploader/vi.d.ts.map +1 -0
  364. package/dist/locales/file-uploader/vi.js +1 -135
  365. package/dist/locales/file-uploader/zh-TW.d.ts +1 -0
  366. package/dist/locales/file-uploader/zh-TW.d.ts.map +1 -0
  367. package/dist/locales/file-uploader/zh-TW.js +1 -135
  368. package/dist/locales/file-uploader/zh.d.ts +1 -0
  369. package/dist/locales/file-uploader/zh.d.ts.map +1 -0
  370. package/dist/locales/file-uploader/zh.js +1 -135
  371. package/dist/plugins/cameraPlugin.d.ts +2 -1
  372. package/dist/plugins/cameraPlugin.d.ts.map +1 -0
  373. package/dist/plugins/cloudImageEditorPlugin.d.ts +2 -1
  374. package/dist/plugins/cloudImageEditorPlugin.d.ts.map +1 -0
  375. package/dist/plugins/externalSourcesPlugin.d.ts +2 -1
  376. package/dist/plugins/externalSourcesPlugin.d.ts.map +1 -0
  377. package/dist/plugins/imageShrinkPlugin.d.ts +2 -1
  378. package/dist/plugins/imageShrinkPlugin.d.ts.map +1 -0
  379. package/dist/plugins/instagramPlugin.d.ts +2 -1
  380. package/dist/plugins/instagramPlugin.d.ts.map +1 -0
  381. package/dist/plugins/unsplashPlugin.d.ts +2 -1
  382. package/dist/plugins/unsplashPlugin.d.ts.map +1 -0
  383. package/dist/plugins/urlSourcePlugin.d.ts +2 -1
  384. package/dist/plugins/urlSourcePlugin.d.ts.map +1 -0
  385. package/dist/solutions/adaptive-image/index.d.ts +1 -0
  386. package/dist/solutions/adaptive-image/index.d.ts.map +1 -0
  387. package/dist/solutions/cloud-image-editor/CloudImageEditor.d.ts +1 -0
  388. package/dist/solutions/cloud-image-editor/CloudImageEditor.d.ts.map +1 -0
  389. package/dist/solutions/cloud-image-editor/index.d.ts +2 -0
  390. package/dist/solutions/cloud-image-editor/index.d.ts.map +1 -0
  391. package/dist/solutions/file-uploader/inline/FileUploaderInline.d.ts +10 -1
  392. package/dist/solutions/file-uploader/inline/FileUploaderInline.d.ts.map +1 -0
  393. package/dist/solutions/file-uploader/inline/index.d.ts +1 -0
  394. package/dist/solutions/file-uploader/inline/index.d.ts.map +1 -0
  395. package/dist/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts +11 -1
  396. package/dist/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts.map +1 -0
  397. package/dist/solutions/file-uploader/minimal/index.d.ts +1 -0
  398. package/dist/solutions/file-uploader/minimal/index.d.ts.map +1 -0
  399. package/dist/solutions/file-uploader/regular/FileUploaderRegular.d.ts +12 -1
  400. package/dist/solutions/file-uploader/regular/FileUploaderRegular.d.ts.map +1 -0
  401. package/dist/solutions/file-uploader/regular/index.d.ts +1 -0
  402. package/dist/solutions/file-uploader/regular/index.d.ts.map +1 -0
  403. package/dist/types/dom.d.ts +1 -0
  404. package/dist/types/dom.d.ts.map +1 -0
  405. package/dist/types/events.d.ts +2 -1
  406. package/dist/types/events.d.ts.map +1 -0
  407. package/dist/types/exported.d.ts +11 -10
  408. package/dist/types/exported.d.ts.map +1 -0
  409. package/dist/types/index.d.ts +2 -1
  410. package/dist/types/index.d.ts.map +1 -0
  411. package/dist/urlSourcePlugin.js +1 -0
  412. package/dist/utils/UID.d.ts +2 -1
  413. package/dist/utils/UID.d.ts.map +1 -0
  414. package/dist/utils/UploadSource.d.ts +1 -0
  415. package/dist/utils/UploadSource.d.ts.map +1 -0
  416. package/dist/utils/WindowHeightTracker.d.ts +2 -1
  417. package/dist/utils/WindowHeightTracker.d.ts.map +1 -0
  418. package/dist/utils/abilities.d.ts +1 -0
  419. package/dist/utils/abilities.d.ts.map +1 -0
  420. package/dist/utils/applyStyles.d.ts +1 -0
  421. package/dist/utils/applyStyles.d.ts.map +1 -0
  422. package/dist/utils/browser-info.d.ts +1 -0
  423. package/dist/utils/browser-info.d.ts.map +1 -0
  424. package/dist/utils/cdn-utils.d.ts +1 -0
  425. package/dist/utils/cdn-utils.d.ts.map +1 -0
  426. package/dist/utils/comma-separated.d.ts +1 -0
  427. package/dist/utils/comma-separated.d.ts.map +1 -0
  428. package/dist/utils/debounce.d.ts +1 -0
  429. package/dist/utils/debounce.d.ts.map +1 -0
  430. package/dist/utils/delay.d.ts +1 -0
  431. package/dist/utils/delay.d.ts.map +1 -0
  432. package/dist/utils/fileTypes.d.ts +1 -0
  433. package/dist/utils/fileTypes.d.ts.map +1 -0
  434. package/dist/utils/get-top-level-origin.d.ts +1 -0
  435. package/dist/utils/get-top-level-origin.d.ts.map +1 -0
  436. package/dist/utils/getLocaleDirection.d.ts +1 -0
  437. package/dist/utils/getLocaleDirection.d.ts.map +1 -0
  438. package/dist/utils/getPluralForm.d.ts +1 -0
  439. package/dist/utils/getPluralForm.d.ts.map +1 -0
  440. package/dist/utils/isPromiseLike.d.ts +1 -0
  441. package/dist/utils/isPromiseLike.d.ts.map +1 -0
  442. package/dist/utils/isSecureTokenExpired.d.ts +2 -1
  443. package/dist/utils/isSecureTokenExpired.d.ts.map +1 -0
  444. package/dist/utils/memoize.d.ts +1 -0
  445. package/dist/utils/memoize.d.ts.map +1 -0
  446. package/dist/utils/mixinClass.d.ts +1 -0
  447. package/dist/utils/mixinClass.d.ts.map +1 -0
  448. package/dist/utils/parseCdnUrl.d.ts +1 -0
  449. package/dist/utils/parseCdnUrl.d.ts.map +1 -0
  450. package/dist/utils/parseShrink.d.ts +1 -0
  451. package/dist/utils/parseShrink.d.ts.map +1 -0
  452. package/dist/utils/preloadImage.d.ts +1 -0
  453. package/dist/utils/preloadImage.d.ts.map +1 -0
  454. package/dist/utils/prettyBytes.d.ts +1 -0
  455. package/dist/utils/prettyBytes.d.ts.map +1 -0
  456. package/dist/utils/resizeImage.d.ts +1 -0
  457. package/dist/utils/resizeImage.d.ts.map +1 -0
  458. package/dist/utils/stringToArray.d.ts +1 -0
  459. package/dist/utils/stringToArray.d.ts.map +1 -0
  460. package/dist/utils/template-utils.d.ts +1 -0
  461. package/dist/utils/template-utils.d.ts.map +1 -0
  462. package/dist/utils/throttle.d.ts +1 -0
  463. package/dist/utils/throttle.d.ts.map +1 -0
  464. package/dist/utils/toKebabCase.d.ts +1 -0
  465. package/dist/utils/toKebabCase.d.ts.map +1 -0
  466. package/dist/utils/transparentPixelSrc.d.ts +1 -0
  467. package/dist/utils/transparentPixelSrc.d.ts.map +1 -0
  468. package/dist/utils/uniqueArray.d.ts +1 -0
  469. package/dist/utils/uniqueArray.d.ts.map +1 -0
  470. package/dist/utils/userAgent.d.ts +2 -1
  471. package/dist/utils/userAgent.d.ts.map +1 -0
  472. package/dist/utils/validators/collection/index.d.ts +1 -0
  473. package/dist/utils/validators/collection/index.d.ts.map +1 -0
  474. package/dist/utils/validators/collection/validateCollectionUploadError.d.ts +2 -1
  475. package/dist/utils/validators/collection/validateCollectionUploadError.d.ts.map +1 -0
  476. package/dist/utils/validators/collection/validateMultiple.d.ts +2 -1
  477. package/dist/utils/validators/collection/validateMultiple.d.ts.map +1 -0
  478. package/dist/utils/validators/file/index.d.ts +1 -0
  479. package/dist/utils/validators/file/index.d.ts.map +1 -0
  480. package/dist/utils/validators/file/validateFileType.d.ts +2 -1
  481. package/dist/utils/validators/file/validateFileType.d.ts.map +1 -0
  482. package/dist/utils/validators/file/validateIsImage.d.ts +2 -1
  483. package/dist/utils/validators/file/validateIsImage.d.ts.map +1 -0
  484. package/dist/utils/validators/file/validateMaxSizeLimit.d.ts +2 -1
  485. package/dist/utils/validators/file/validateMaxSizeLimit.d.ts.map +1 -0
  486. package/dist/utils/validators/file/validateUploadError.d.ts +2 -1
  487. package/dist/utils/validators/file/validateUploadError.d.ts.map +1 -0
  488. package/dist/utils/warnOnce.d.ts +1 -0
  489. package/dist/utils/warnOnce.d.ts.map +1 -0
  490. package/dist/utils/wildcardRegexp.d.ts +1 -0
  491. package/dist/utils/wildcardRegexp.d.ts.map +1 -0
  492. package/dist/utils/withResolvers.d.ts +1 -0
  493. package/dist/utils/withResolvers.d.ts.map +1 -0
  494. package/package.json +3 -5
  495. package/web/file-uploader.iife.min.js +8 -0
  496. package/web/file-uploader.min.js +8 -0
  497. package/web/uc-basic.layered.min.css +3243 -0
  498. package/web/uc-basic.min.css +3561 -0
  499. package/web/uc-cloud-image-editor.layered.min.css +1909 -0
  500. package/web/uc-cloud-image-editor.min.css +1859 -0
  501. package/web/uc-cloud-image-editor.min.js +8 -0
  502. package/web/uc-file-uploader-inline.layered.min.css +3243 -0
  503. package/web/uc-file-uploader-inline.min.css +3561 -0
  504. package/web/uc-file-uploader-inline.min.js +8 -0
  505. package/web/uc-file-uploader-minimal.layered.min.css +3243 -0
  506. package/web/uc-file-uploader-minimal.min.css +3561 -0
  507. package/web/uc-file-uploader-minimal.min.js +8 -0
  508. package/web/uc-file-uploader-regular.layered.min.css +3243 -0
  509. package/web/uc-file-uploader-regular.min.css +3561 -0
  510. package/web/uc-file-uploader-regular.min.js +8 -0
  511. package/web/uc-img.min.js +5 -0
  512. package/dist/CameraSource-DbyO6GoK.js +0 -481
  513. package/dist/CameraSource-px4BzEMI.js +0 -9
  514. package/dist/CloudImageEditor-BIxf1V4M.js +0 -2162
  515. package/dist/CloudImageEditorActivity-CJxP5N0S.js +0 -9
  516. package/dist/CloudImageEditorActivity-d4DpK6fQ.js +0 -87
  517. package/dist/Config-DuWre5p3.js +0 -433
  518. package/dist/ExternalSource-BKTFp95O.js +0 -248
  519. package/dist/ExternalSource-CR5DG0Jv.js +0 -9
  520. package/dist/Icon-CqTVC82Q.js +0 -1811
  521. package/dist/LitUploaderBlock-BA34rzeU.js +0 -998
  522. package/dist/UrlSource-BxVL9Pve.js +0 -9
  523. package/dist/UrlSource-DZK5EBwT.js +0 -73
  524. package/dist/abstract/TypedCollection.test.d.ts +0 -1
  525. package/dist/abstract/TypedData.test.d.ts +0 -1
  526. package/dist/abstract/managers/__tests__/ModalManager.test.d.ts +0 -13
  527. package/dist/abstract/managers/__tests__/SecureUploadsManager.test.d.ts +0 -1
  528. package/dist/blocks/CameraSource/__tests__/calcCameraModes.test.d.ts +0 -1
  529. package/dist/blocks/CloudImageEditor/src/crop-utils.test.d.ts +0 -1
  530. package/dist/blocks/CloudImageEditor/src/lib/classNames.test.d.ts +0 -1
  531. package/dist/blocks/CloudImageEditor/src/lib/linspace.test.d.ts +0 -1
  532. package/dist/blocks/CloudImageEditor/src/lib/parseCropPreset.test.d.ts +0 -1
  533. package/dist/blocks/CloudImageEditor/src/lib/pick.test.d.ts +0 -1
  534. package/dist/blocks/CloudImageEditor/src/utils/parseFilterValue.test.d.ts +0 -1
  535. package/dist/blocks/Config/computed-properties.test.d.ts +0 -1
  536. package/dist/cameraPlugin-dGash48Q.js +0 -8
  537. package/dist/cloud-image-editor-fNswWrI4.js +0 -11
  538. package/dist/cloudImageEditorPlugin-2EU0Pm_j.js +0 -8
  539. package/dist/en-DNCwRJsB.js +0 -135
  540. package/dist/env-B1nfXy9i.js +0 -8
  541. package/dist/externalSourcesPlugin-DKQqk3AC.js +0 -8
  542. package/dist/imageShrinkPlugin-DAx8eRen.js +0 -8
  543. package/dist/instagramPlugin-k67tMAo3.js +0 -8
  544. package/dist/loadFileUploaderFrom-BWJM43Yq.js +0 -28
  545. package/dist/plugins-DxjsQUa8.js +0 -278
  546. package/dist/urlSourcePlugin-9xdB7Pvw.js +0 -8
  547. package/dist/utils/UID.test.d.ts +0 -1
  548. package/dist/utils/browser-info.test.d.ts +0 -1
  549. package/dist/utils/cdn-utils.test.d.ts +0 -1
  550. package/dist/utils/fileTypes.test.d.ts +0 -1
  551. package/dist/utils/get-top-level-origin.test.d.ts +0 -1
  552. package/dist/utils/getPluralForm.test.d.ts +0 -1
  553. package/dist/utils/isPromiseLike.test.d.ts +0 -1
  554. package/dist/utils/isSecureTokenExpired.test.d.ts +0 -1
  555. package/dist/utils/memoize.test.d.ts +0 -1
  556. package/dist/utils/parseCdnUrl.test.d.ts +0 -1
  557. package/dist/utils/parseShrink.test.d.ts +0 -1
  558. package/dist/utils/prettyBytes.test.d.ts +0 -1
  559. package/dist/utils/stringToArray.test.d.ts +0 -1
  560. package/dist/utils/template-utils.test.d.ts +0 -1
  561. package/dist/utils/toKebabCase.test.d.ts +0 -1
  562. package/dist/utils/uniqueArray.test.d.ts +0 -1
  563. package/dist/utils/wildcardRegexp.test.d.ts +0 -1
  564. package/dist/utils/withResolvers.test.d.ts +0 -1
@@ -0,0 +1,8 @@
1
+ var __webpack_modules__={7992(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{HU:()=>blockCtx,_H:()=>activityBlockCtx,lu:()=>uploaderBlockCtx});var _uploadcare_upload_client__rspack_import_0=__webpack_require__(3074);let blockCtx=()=>({}),activityBlockCtx=fnCtx=>({...blockCtx(),"*currentActivity":null,"*currentActivityParams":{},"*history":[],"*historyBack":null,"*closeModal":()=>{fnCtx.modalManager?.close(fnCtx.$["*currentActivity"]),fnCtx.pub("*currentActivity",null)}}),uploaderBlockCtx=fnCtx=>({...activityBlockCtx(fnCtx),"*commonProgress":0,"*uploadList":[],"*uploadQueue":new _uploadcare_upload_client__rspack_import_0.op(1),"*collectionErrors":[],"*collectionState":null,"*groupInfo":null,"*uploadTrigger":new Set})},3962(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Y:()=>defineComponents});let EXCLUDE_COMPONENTS=["UploaderBlock","ActivityBlock","Block","SolutionBlock"];function defineComponents(blockExports){for(let blockName in blockExports){if(EXCLUDE_COMPONENTS.includes(blockName))continue;let tagName=[...blockName].reduce((name,char)=>(char.toUpperCase()===char&&(char=`-${char.toLowerCase()}`),name+=char),"");tagName.startsWith("-")&&(tagName=tagName.replace("-","")),tagName.startsWith("uc-")||(tagName=`uc-${tagName}`),blockExports[blockName].reg&&blockExports[blockName].reg(tagName)}}},2827(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{OZ:()=>LocaleManager,PI:()=>localeStateKey});var shared_instances=__webpack_require__(5890);let en={"locale-id":"en","social-source-lang":"en","upload-file":"Upload file","upload-files":"Upload files","choose-file":"Choose file","choose-files":"Choose files","drop-files-here":"Drop files here","select-file-source":"Select file source",selected:"Selected",upload:"Upload","add-more":"Add more",cancel:"Cancel","start-from-cancel":"Cancel",clear:"Clear","camera-shot":"Shot","upload-url":"Import","upload-url-placeholder":"Paste link here","edit-image":"Edit image","edit-detail":"Details",back:"Back",done:"Done",ok:"Ok","remove-from-list":"Remove",no:"No",yes:"Yes","confirm-your-action":"Confirm your action","are-you-sure":"Are you sure?","selected-count":"{{count}} of {{total}} selected","select-all":"Select all","deselect-all":"Deselect all","upload-error":"Upload error","validation-error":"Validation error","no-files":"No files selected",browse:"Browse","not-uploaded-yet":"Not uploaded yet...",file__one:"file",file__other:"files",error__one:"error",error__other:"errors","header-uploading":"Uploading {{count}} {{plural:file(count)}}","header-failed":"{{count}} {{plural:error(count)}}","header-succeed":"{{count}} {{plural:file(count)}} uploaded","header-total":"{{count}} {{plural:file(count)}} selected","src-type-local":"From device","src-type-from-url":"From link","src-type-camera":"Camera","src-type-mobile-video-camera":"Video","src-type-mobile-photo-camera":"Photo","src-type-facebook":"Facebook","src-type-dropbox":"Dropbox","src-type-gdrive":"Google Drive","src-type-ngdrive":"Google Drive","src-type-gphotos":"Google Photos","src-type-flickr":"Flickr","src-type-vk":"VK","src-type-evernote":"Evernote","src-type-box":"Box","src-type-onedrive":"OneDrive","src-type-huddle":"Huddle","src-type-other":"Other","caption-from-url":"Import from link","caption-camera":"Camera","caption-edit-file":"Edit file","file-no-name":"No name...","toggle-fullscreen":"Toggle fullscreen","toggle-guides":"Toggle guides",rotate:"Rotate","flip-vertical":"Flip vertical","flip-horizontal":"Flip horizontal",apply:"Apply",brightness:"Brightness",contrast:"Contrast",saturation:"Saturation",exposure:"Exposure",gamma:"Gamma",vibrance:"Vibrance",warmth:"Warmth",enhance:"Enhance",original:"Original",resize:"Resize image",crop:"Crop","select-color":"Select color",text:"Text",draw:"Draw","cancel-edit":"Cancel edit","tab-view":"Preview","tab-details":"Details","file-name":"Name","file-size":"Size","cdn-url":"CDN URL","file-size-unknown":"Unknown","camera-permissions-denied":"Camera access denied","camera-permissions-prompt":"Please allow access to the camera","camera-permissions-request":"Request access","files-count-limit-error-title":"Files count limit overflow","files-count-limit-error-too-few":"You’ve chosen {{total}} {{plural:file(total)}}. At least {{min}} {{plural:file(min)}} required.","files-count-limit-error-too-many":"You’ve chosen too many files. {{max}} {{plural:file(max)}} is maximum.","files-max-size-limit-error":"File is too big. Max file size is {{maxFileSize}}.","has-validation-errors":"File validation error occurred. Please, check your files before upload.","images-only-accepted":"Only image files are accepted.","file-type-not-allowed":"Uploading of these file types is not allowed.","some-files-were-not-uploaded":"Some files were not uploaded.","file-item-edit-button":"Edit","file-item-remove-button":"Remove","a11y-editor-tab-filters":"Filters","a11y-editor-tab-tuning":"Tuning","a11y-editor-tab-crop":"Crop","a11y-activity-header-button-close":"Close",flip:"Flip",mirror:"Mirror","a11y-cloud-editor-apply-filter":"Apply {{name}} filter","a11y-cloud-editor-apply-crop":"Apply {{name}} operation","a11y-cloud-editor-apply-tuning":"Apply {{name}} tuning","a11y-cloud-editor-apply-aspect-ratio":"Apply operation {{name}} {{value}}",finished:"Finished",failed:"Failed",uploading:"Uploading",idle:"Idle","a11y-file-item-status":"File {{fileName}} in status {{status}}","waiting-for":"Waiting for {{source}}","queued-uploading":"Queued for upload","queued-validation":"Queued for validation",validation:"Validating","crop-to-shape":"Crop to {{value}}",custom:"Freeform","freeform-crop":"Freeform crop"},localeRegistry=new Map,localeResolvers=new Map,defineLocaleSync=(localeName,definition)=>{localeRegistry.has(localeName)&&console.log(`Locale ${localeName} is already defined. Overwriting...`);let locale={...en,...definition};return localeRegistry.set(localeName,locale),locale},resolveLocaleDefinition=async localeName=>{let localeDefinition=localeRegistry.get(localeName);if(!localeDefinition){let definitionResolver=localeResolvers.get(localeName);if(!definitionResolver)throw Error(`Locale ${localeName} is not defined`);localeDefinition=defineLocaleSync(localeName,await definitionResolver())}return localeDefinition};"function"==typeof en?localeResolvers.set("en",en):defineLocaleSync("en",en);var sharedConfigKey=__webpack_require__(1971);let localeStateKey=key=>`*l10n/${key}`;class LocaleManager extends shared_instances.jM{constructor(sharedInstancesBag){for(let[key,value]of(super(sharedInstancesBag),this._localeName="",Object.entries(en))){let noTranslation=!this._ctx.has(localeStateKey(key))||!this._ctx.read(localeStateKey(key));this._ctx.add(localeStateKey(key),value,noTranslation)}let pluginManager=sharedInstancesBag.pluginManager;pluginManager?.onPluginsChange&&this.addSub(pluginManager.onPluginsChange(()=>{this._localeName&&this._applyPluginLocales(this._localeName)})),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("localeName"),async localeName=>{if(!localeName)return;this._localeName=localeName;let definition=await resolveLocaleDefinition(localeName);("en"===localeName||this._localeName===localeName)&&(this._applyPluginLocales(localeName),this._applyOverrides(localeName,definition))})),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("localeDefinitionOverride"),localeDefinitionOverride=>{if(!localeDefinitionOverride)return;let definition=localeDefinitionOverride[this._localeName];definition&&this._applyOverrides(this._localeName,definition)}))}_applyOverrides(localeName,definition){let overrides=this._cfg.localeDefinitionOverride?.[localeName];for(let[key,value]of Object.entries(definition)){let overriddenValue=overrides?.[key];this._ctx.add(localeStateKey(key),overriddenValue??value,!0)}}_applyPluginLocales(localeName){let pluginManager=this._sharedInstancesBag.pluginManager;if(pluginManager)for(let entry of pluginManager.snapshot().i18n){let{pluginId:_pluginId,...locales}=entry,pluginDefinition=locales[localeName];if(pluginDefinition)for(let[key,value]of Object.entries(pluginDefinition))void 0!==value&&this._ctx.add(localeStateKey(key),value,!0)}}}},1971(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{T:()=>sharedConfigKey});let sharedConfigKey=key=>`*cfg/${key}`},5973(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{S:()=>CameraSourceTypes,q:()=>CameraSourceEvents});let CameraSourceTypes=Object.freeze({PHOTO:"photo",VIDEO:"video"}),CameraSourceEvents=Object.freeze({IDLE:"idle",SHOT:"shot",PLAY:"play",PAUSE:"pause",RESUME:"resume",STOP:"stop",RETAKE:"retake",ACCEPT:"accept"})},8996(__unused_rspack_module,__webpack_exports__,__webpack_require__){function setSvgNodeAttrs(node,attrs){for(let[name,value]of Object.entries(attrs))node.setAttributeNS(null,name,value.toString())}function createSvgNode(name,attrs={}){let node=document.createElementNS("http://www.w3.org/2000/svg",name);return setSvgNodeAttrs(node,attrs),node}function cornerPath(rect,direction,sizeMultiplier){let{x,y,width,height}=rect,wMul=+!direction.includes("w"),hMul=+!direction.includes("n"),xSide=0===wMul?-1:1,ySide=0===hMul?-1:1,p1=[x+wMul*width+1.5*xSide,y+hMul*height+1.5*ySide-24*sizeMultiplier*ySide],p2=[x+wMul*width+1.5*xSide,y+hMul*height+1.5*ySide],p3=[x+wMul*width-24*sizeMultiplier*xSide+1.5*xSide,y+hMul*height+1.5*ySide];return{d:`M ${p1[0]} ${p1[1]} L ${p2[0]} ${p2[1]} L ${p3[0]} ${p3[1]}`,center:[p2[0],p2[1]]}}function sidePath(rect,direction,sizeMultiplier){let p1,p2,{x,y,width,height}=rect,isHorizontal="n"===direction||"s"===direction,wMul=isHorizontal?.5:+("w"!==direction),hMul="w"===direction||"e"===direction?.5:+("n"!==direction),xSide="w"===direction?-1:+("e"===direction),ySide="n"===direction?-1:+("s"===direction);return isHorizontal?(p1=[x+wMul*width-34*sizeMultiplier/2,y+hMul*height+1.5*ySide],p2=[x+wMul*width+34*sizeMultiplier/2,y+hMul*height+1.5*ySide]):(p1=[x+wMul*width+1.5*xSide,y+hMul*height-34*sizeMultiplier/2],p2=[x+wMul*width+1.5*xSide,y+hMul*height+34*sizeMultiplier/2]),{d:`M ${p1[0]} ${p1[1]} L ${p2[0]} ${p2[1]}`,center:[(p1[0]+p2[0])/2,(p1[1]+p2[1])/2]}}function thumbCursor(direction){return""===direction?"move":["e","w"].includes(direction)?"ew-resize":["n","s"].includes(direction)?"ns-resize":["nw","se"].includes(direction)?"nwse-resize":"nesw-resize"}function moveRect({rect,delta:[dx,dy],imageBox}){return constraintRect({...rect,x:rect.x+dx,y:rect.y+dy},imageBox)}function constraintRect(rect1,rect2){let{x}=rect1,{y}=rect1;return rect1.x<rect2.x?x=rect2.x:rect1.x+rect1.width>rect2.x+rect2.width&&(x=rect2.x+rect2.width-rect1.width),rect1.y<rect2.y?y=rect2.y:rect1.y+rect1.height>rect2.y+rect2.height&&(y=rect2.y+rect2.height-rect1.height),{...rect1,x,y}}function resizeRect({direction,...rest}){switch(direction){case"n":return function({rect,delta,aspectRatio,imageBox}){let[,dy]=delta,{y,width,height}=rect;y+=dy,height-=dy,aspectRatio&&(width=height*aspectRatio);let x=rect.x+rect.width/2-width/2;return y<=imageBox.y&&(y=imageBox.y,height=rect.y+rect.height-y,aspectRatio&&(width=height*aspectRatio,x=rect.x+rect.width/2-width/2)),x<=imageBox.x&&(x=imageBox.x,y=rect.y+rect.height-height),x+width>=imageBox.x+imageBox.width&&(x=Math.max(imageBox.x,imageBox.x+imageBox.width-width),width=imageBox.x+imageBox.width-x,aspectRatio&&(height=width/aspectRatio),y=rect.y+rect.height-height),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio,x=rect.x+rect.width/2-width/2),y=rect.y+rect.height-height),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio,x=rect.x+rect.width/2-width/2),y=rect.y+rect.height-height),{x,y,width,height}}(rest);case"w":return function({rect,delta,aspectRatio,imageBox}){let[dx]=delta,{x,width,height}=rect;x+=dx,width-=dx,aspectRatio&&(height=width/aspectRatio);let y=rect.y+rect.height/2-height/2;return x<=imageBox.x&&(x=imageBox.x,width=rect.x+rect.width-x,aspectRatio&&(height=width/aspectRatio,y=rect.y+rect.height/2-height/2)),y<=imageBox.y&&(y=imageBox.y,x=rect.x+rect.width-width),y+height>=imageBox.y+imageBox.height&&(y=Math.max(imageBox.y,imageBox.y+imageBox.height-height),height=imageBox.y+imageBox.height-y,aspectRatio&&(width=height*aspectRatio),x=rect.x+rect.width-width),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio),y=rect.y+rect.height/2-height/2,x=rect.x+rect.width-width),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio),y=rect.y+rect.height/2-height/2,x=rect.x+rect.width-width),{x,y,width,height}}(rest);case"s":return function({rect,delta,aspectRatio,imageBox}){let[,dy]=delta,{y,width,height}=rect;height+=dy,aspectRatio&&(width=height*aspectRatio);let x=rect.x+rect.width/2-width/2;return y+height>=imageBox.y+imageBox.height&&(height=imageBox.y+imageBox.height-y,aspectRatio&&(width=height*aspectRatio),x=rect.x+rect.width/2-width/2),x<=imageBox.x&&(x=imageBox.x,y=rect.y),x+width>=imageBox.x+imageBox.width&&(x=Math.max(imageBox.x,imageBox.x+imageBox.width-width),width=imageBox.x+imageBox.width-x,aspectRatio&&(height=width/aspectRatio),y=rect.y),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio),x=rect.x+rect.width/2-width/2),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio),x=rect.x+rect.width/2-width/2),{x,y,width,height}}(rest);case"e":return function({rect,delta,aspectRatio,imageBox}){let[dx]=delta,{x,width,height}=rect;width+=dx,aspectRatio&&(height=width/aspectRatio);let y=rect.y+rect.height/2-height/2;return x+width>=imageBox.x+imageBox.width&&(width=imageBox.x+imageBox.width-x,aspectRatio&&(height=width/aspectRatio),y=rect.y+rect.height/2-height/2),y<=imageBox.y&&(y=imageBox.y,x=rect.x),y+height>=imageBox.y+imageBox.height&&(y=Math.max(imageBox.y,imageBox.y+imageBox.height-height),height=imageBox.y+imageBox.height-y,aspectRatio&&(width=height*aspectRatio),x=rect.x),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio),y=rect.y+rect.height/2-height/2),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio),y=rect.y+rect.height/2-height/2),{x,y,width,height}}(rest);case"nw":return function({rect,delta,aspectRatio,imageBox}){let[dx,dy]=delta,{x,y,width,height}=rect;return x+dx<imageBox.x&&(dx=imageBox.x-x),y+dy<imageBox.y&&(dy=imageBox.y-y),x+=dx,width-=dx,y+=dy,height-=dy,aspectRatio&&Math.abs(width/height)>aspectRatio?(dy=width/aspectRatio-height,height+=dy,(y-=dy)<=imageBox.y&&(height-=imageBox.y-y,width=height*aspectRatio,x=rect.x+rect.width-width,y=imageBox.y)):aspectRatio&&(dx=height*aspectRatio-width,width+=dx,(x-=dx)<=imageBox.x&&(width-=imageBox.x-x,height=width/aspectRatio,x=imageBox.x,y=rect.y+rect.height-height)),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio),x=rect.x+rect.width-width,y=rect.y+rect.height-height),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio),x=rect.x+rect.width-width,y=rect.y+rect.height-height),{x,y,width,height}}(rest);case"ne":return function({rect,delta,aspectRatio,imageBox}){let[dx,dy]=delta,{x,y,width,height}=rect;return x+width+dx>imageBox.x+imageBox.width&&(dx=imageBox.x+imageBox.width-x-width),y+dy<imageBox.y&&(dy=imageBox.y-y),width+=dx,y+=dy,height-=dy,aspectRatio&&Math.abs(width/height)>aspectRatio?(dy=width/aspectRatio-height,height+=dy,(y-=dy)<=imageBox.y&&(height-=imageBox.y-y,width=height*aspectRatio,x=rect.x,y=imageBox.y)):aspectRatio&&(dx=height*aspectRatio-width,x+(width+=dx)>=imageBox.x+imageBox.width&&(height=(width=imageBox.x+imageBox.width-x)/aspectRatio,x=imageBox.x+imageBox.width-width,y=rect.y+rect.height-height)),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio),y=rect.y+rect.height-height),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio),y=rect.y+rect.height-height),{x,y,width,height}}(rest);case"sw":return function({rect,delta,aspectRatio,imageBox}){let[dx,dy]=delta,{x,y,width,height}=rect;return x+dx<imageBox.x&&(dx=imageBox.x-x),y+height+dy>imageBox.y+imageBox.height&&(dy=imageBox.y+imageBox.height-y-height),x+=dx,width-=dx,height+=dy,aspectRatio&&Math.abs(width/height)>aspectRatio?(dy=width/aspectRatio-height,y+(height+=dy)>=imageBox.y+imageBox.height&&(width=(height=imageBox.y+imageBox.height-y)*aspectRatio,x=rect.x+rect.width-width,y=imageBox.y+imageBox.height-height)):aspectRatio&&(dx=height*aspectRatio-width,width+=dx,(x-=dx)<=imageBox.x&&(width-=imageBox.x-x,height=width/aspectRatio,x=imageBox.x,y=rect.y)),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio),x=rect.x+rect.width-width),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio),x=rect.x+rect.width-width),{x,y,width,height}}(rest);case"se":return function({rect,delta,aspectRatio,imageBox}){let[dx,dy]=delta,{x,y,width,height}=rect;return x+width+dx>imageBox.x+imageBox.width&&(dx=imageBox.x+imageBox.width-x-width),y+height+dy>imageBox.y+imageBox.height&&(dy=imageBox.y+imageBox.height-y-height),width+=dx,height+=dy,aspectRatio&&Math.abs(width/height)>aspectRatio?(dy=width/aspectRatio-height,y+(height+=dy)>=imageBox.y+imageBox.height&&(width=(height=imageBox.y+imageBox.height-y)*aspectRatio,x=rect.x,y=imageBox.y+imageBox.height-height)):aspectRatio&&(dx=height*aspectRatio-width,x+(width+=dx)>=imageBox.x+imageBox.width&&(height=(width=imageBox.x+imageBox.width-x)/aspectRatio,x=imageBox.x+imageBox.width-width,y=rect.y)),height<1&&(height=1,aspectRatio&&(width=height*aspectRatio)),width<1&&(width=1,aspectRatio&&(height=width/aspectRatio)),{x,y,width,height}}(rest);default:return rest.rect}}function rectContainsPoint(rect,[x,y]){return rect.x<=x&&x<=rect.x+rect.width&&rect.y<=y&&y<=rect.y+rect.height}function isRectInsideRect(rect1,rect2){return rect1.x>=rect2.x&&rect1.y>=rect2.y&&rect1.x+rect1.width<=rect2.x+rect2.width&&rect1.y+rect1.height<=rect2.y+rect2.height}function isRectMatchesAspectRatio(rect,aspectRatio){return .1>Math.abs(rect.width/rect.height-aspectRatio)}function rotateSize({width,height},angle){let swap=angle/90%2!=0;return{width:swap?height:width,height:swap?width:height}}function calculateMaxCenteredCropFrame(width,height,aspectRatio){let cropWidth,cropHeight;width/height>aspectRatio?(cropWidth=Math.round(height*aspectRatio),cropHeight=height):(cropWidth=width,cropHeight=Math.round(width/aspectRatio));let cropX=Math.round((width-cropWidth)/2),cropY=Math.round((height-cropHeight)/2);return cropX+cropWidth>width&&(cropWidth=width-cropX),cropY+cropHeight>height&&(cropHeight=height-cropY),{x:cropX,y:cropY,width:cropWidth,height:cropHeight}}function roundRect(rect){return{x:Math.round(rect.x),y:Math.round(rect.y),width:Math.round(rect.width),height:Math.round(rect.height)}}function clamp(value,min,max){return Math.min(Math.max(value,min),max)}__webpack_require__.d(__webpack_exports__,{BT:()=>rotateSize,F2:()=>setSvgNodeAttrs,VH:()=>cornerPath,YH:()=>constraintRect,Ze:()=>isRectInsideRect,_J:()=>moveRect,_c:()=>rectContainsPoint,dz:()=>resizeRect,fN:()=>sidePath,l8:()=>createSvgNode,n:()=>isRectMatchesAspectRatio,qE:()=>clamp,rH:()=>roundRect,u3:()=>calculateMaxCenteredCropFrame,vv:()=>thumbCursor})},5342(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{j:()=>parseCropPreset,t:()=>getClosestAspectRatio});var _utils_stringToArray__rspack_import_0=__webpack_require__(2513),_utils_UID__rspack_import_1=__webpack_require__(5446);let EXCLUDED_TYPES=["free"],parseCropPreset=cropPreset=>{let items=(0,_utils_stringToArray__rspack_import_0.G)(cropPreset);if(!items||0===items.length)return[];let result=[];for(let item of items){let raw=item.trim();if(!raw)continue;let sep=raw.indexOf(":");if(-1===sep&&!EXCLUDED_TYPES.includes(raw)){console.warn(`Invalid crop preset: ${raw}`);continue}let w=Number(raw.slice(0,sep)),h=Number(raw.slice(sep+1));if((!Number.isFinite(w)||!Number.isFinite(h)||w<=0||h<=0)&&!EXCLUDED_TYPES.includes(raw)){console.warn(`Invalid crop preset: ${raw}`);continue}result.push({id:_utils_UID__rspack_import_1.V.generateFastUid(),type:"aspect-ratio",width:EXCLUDED_TYPES.includes(raw)?0:w,height:EXCLUDED_TYPES.includes(raw)?0:h,hasFreeform:EXCLUDED_TYPES.includes(raw)})}return result},getClosestAspectRatio=(width,height,ratios,tolerance=.1)=>{let inputRatio=width/height,closest=null,minDiff=1/0;for(let r of ratios){let[w,h]=[r.width,r.height],diff=Math.abs(inputRatio-w/h);diff<minDiff&&(minDiff=diff,closest=r)}if(closest){let[cw,ch]=[closest.width,closest.height],closestRatio=cw/ch;if(Math.abs(inputRatio-closestRatio)/closestRatio>tolerance)return null}return closest}},8930(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{ON:()=>transformationsToOperations,jO:()=>COMMON_OPERATIONS,yj:()=>OPERATIONS_DEFAULTS,ym:()=>operationsToTransformations});var _utils_cdn_utils_js__rspack_import_0=__webpack_require__(6339),_utils_stringToArray_js__rspack_import_1=__webpack_require__(2513);let OPERATIONS_DEFAULTS=Object.freeze({brightness:0,exposure:0,gamma:100,contrast:0,saturation:0,vibrance:0,warmth:0,enhance:0,filter:0,rotate:0,mirror:!1,flip:!1,crop:void 0}),SUPPORTED_OPERATIONS_ORDERED=["enhance","brightness","exposure","gamma","contrast","saturation","vibrance","warmth","filter","mirror","flip","rotate","crop"];function transformationsToOperations(transformations){return(0,_utils_cdn_utils_js__rspack_import_0.OB)(...SUPPORTED_OPERATIONS_ORDERED.filter(operation=>void 0!==transformations[operation]&&null!==transformations[operation]).map(operation=>{let options=transformations[operation];return function(operation,options){if("number"==typeof options)return OPERATIONS_DEFAULTS[operation]!==options?`${operation}/${options}`:"";if("boolean"==typeof options)return OPERATIONS_DEFAULTS[operation]!==options?`${operation}`:"";if("filter"===operation&&options){let{name,amount}=options;return OPERATIONS_DEFAULTS.filter===amount?"":`${operation}/${name}/${amount}`}if("crop"===operation&&options){let{dimensions,coords}=options;return`${operation}/${dimensions.join("x")}/${coords.join(",")}`}return""}(operation,options)}).filter(str=>!!str))}let COMMON_OPERATIONS=(0,_utils_cdn_utils_js__rspack_import_0.OB)("format/auto","progressive/yes"),asNumber=([value])=>void 0!==value?Number(value):void 0,asBoolean=()=>!0,OPERATION_PROCESSORS=Object.freeze({enhance:asNumber,brightness:asNumber,exposure:asNumber,gamma:asNumber,contrast:asNumber,saturation:asNumber,vibrance:asNumber,warmth:asNumber,filter:([name,amount])=>({name,amount:void 0!==amount?Number(amount):100}),mirror:asBoolean,flip:asBoolean,rotate:asNumber,crop:args=>{let[dimensions,alignment]=args,{dimensions:parsedDimensions,coords}=(([dimensions,alignment])=>{if(!/\d+x\d+/.test(dimensions)||!/\d+,\d+/.test(alignment))throw Error("Crop by aspect ratio, percentage or alignment shortcuts is not supported.");return{dimensions:(0,_utils_stringToArray_js__rspack_import_1.G)(dimensions,"x").map(Number),coords:(0,_utils_stringToArray_js__rspack_import_1.G)(alignment).map(Number)}})([dimensions,alignment]);return{dimensions:parsedDimensions,coords:coords}}});function operationsToTransformations(operations){let transformations={};for(let operation of operations){let[name,...args]=operation.split("/");if(!name||!SUPPORTED_OPERATIONS_ORDERED.includes(name))continue;let processor=OPERATION_PROCESSORS[name];try{let value=processor(args);transformations[name]=value}catch(err){console.warn([`Failed to parse URL operation "${operation}". It will be ignored.`,err instanceof Error?`Error message: "${err.message}"`:err,"If you need this functionality, please feel free to open an issue at https://github.com/uploadcare/blocks/issues/new"].join("\n"))}}return transformations}},1583(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{DY:()=>ALL_COLOR_OPERATIONS,UA:()=>COLOR_OPERATIONS_CONFIG,XB:()=>TabId,Y_:()=>ALL_CROP_OPERATIONS,_6:()=>ALL_FILTERS,nz:()=>ALL_TABS});var _lib_transformationUtils_js__rspack_import_0=__webpack_require__(8930);let TabId=Object.freeze({CROP:"crop",TUNING:"tuning",FILTERS:"filters"}),ALL_TABS=Object.freeze([TabId.CROP,TabId.TUNING,TabId.FILTERS]),ALL_COLOR_OPERATIONS=Object.freeze(["brightness","exposure","gamma","contrast","saturation","vibrance","warmth","enhance"]),ALL_FILTERS=Object.freeze(["adaris","briaril","calarel","carris","cynarel","cyren","elmet","elonni","enzana","erydark","fenralan","ferand","galen","gavin","gethriel","iorill","iothari","iselva","jadis","lavra","misiara","namala","nerion","nethari","pamaya","sarnar","sedis","sewen","sorahel","sorlen","tarian","thellassan","varriel","varven","vevera","virkas","yedis","yllara","zatvel","zevcen"]),ALL_CROP_OPERATIONS=Object.freeze(["rotate","mirror","flip"]),NUMERIC_OPERATION_DEFAULTS=_lib_transformationUtils_js__rspack_import_0.yj,COLOR_OPERATIONS_CONFIG=Object.freeze({brightness:{zero:NUMERIC_OPERATION_DEFAULTS.brightness,range:[-100,100],keypointsNumber:2},exposure:{zero:NUMERIC_OPERATION_DEFAULTS.exposure,range:[-500,500],keypointsNumber:2},gamma:{zero:NUMERIC_OPERATION_DEFAULTS.gamma,range:[0,1e3],keypointsNumber:2},contrast:{zero:NUMERIC_OPERATION_DEFAULTS.contrast,range:[-100,500],keypointsNumber:2},saturation:{zero:NUMERIC_OPERATION_DEFAULTS.saturation,range:[-100,500],keypointsNumber:1},vibrance:{zero:NUMERIC_OPERATION_DEFAULTS.vibrance,range:[-100,500],keypointsNumber:1},warmth:{zero:NUMERIC_OPERATION_DEFAULTS.warmth,range:[-100,100],keypointsNumber:1},enhance:{zero:NUMERIC_OPERATION_DEFAULTS.enhance,range:[0,100],keypointsNumber:1},filter:{zero:NUMERIC_OPERATION_DEFAULTS.filter,range:[0,100],keypointsNumber:1}})},318(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Dz:()=>initialConfig,Tw:()=>DEFAULT_CDN_CNAME});var _utils_comma_separated__rspack_import_0=__webpack_require__(9101),_CloudImageEditor_src_toolbar_constants__rspack_import_1=__webpack_require__(1583);let DEFAULT_CDN_CNAME="https://ucarecdn.com",initialConfig=Object.freeze({pubkey:"",multiple:!0,multipleMin:0,multipleMax:Number.MAX_SAFE_INTEGER,confirmUpload:!1,imgOnly:!1,accept:"",externalSourcesPreferredTypes:"",externalSourcesEmbedCss:"",store:"auto",cameraMirror:!1,cameraCapture:"",sourceList:"local, url, camera, dropbox, gdrive",topLevelOrigin:"",maxLocalFileSizeBytes:0,thumbSize:76,showEmptyList:!1,useLocalImageEditor:!1,removeCopyright:!1,cropPreset:"",imageShrink:"",modalScrollLock:!0,modalBackdropStrokes:!1,sourceListWrap:!0,remoteTabSessionKey:"",cdnCname:DEFAULT_CDN_CNAME,cdnCnamePrefixed:"https://ucarecd.net",baseUrl:"https://upload.uploadcare.com",socialBaseUrl:"https://social.uploadcare.com",secureSignature:"",secureExpire:"",secureDeliveryProxy:"",retryThrottledRequestMaxTimes:3,retryNetworkErrorMaxTimes:3,multipartMinFileSize:0x1900000,multipartChunkSize:5242880,maxConcurrentRequests:10,multipartMaxConcurrentRequests:4,multipartMaxAttempts:3,checkForUrlDuplicates:!1,saveUrlForRecurrentUploads:!1,groupOutput:!1,userAgentIntegration:"",debug:!1,metadata:null,localeName:"en",localeDefinitionOverride:null,secureUploadsExpireThreshold:6e5,secureUploadsSignatureResolver:null,secureDeliveryProxyUrlResolver:null,iconHrefResolver:null,fileValidators:[],collectionValidators:[],validationTimeout:15e3,validationConcurrency:100,cameraModes:"photo, video",defaultCameraMode:null,enableAudioRecording:!0,enableVideoRecording:null,maxVideoRecordingDuration:null,mediaRecorderOptions:null,filesViewMode:"list",gridShowFileNames:!1,useCloudImageEditor:!0,cloudImageEditorAutoOpen:!1,cloudImageEditorTabs:(0,_utils_comma_separated__rspack_import_0.L)(_CloudImageEditor_src_toolbar_constants__rspack_import_1.nz),cloudImageEditorMaskHref:null,testMode:!1,qualityInsights:!0,pasteScope:"local",plugins:[]})},9963(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Bx:()=>EventType,Kc:()=>InternalEventType,bk:()=>EventEmitter});var _lit_shared_instances__rspack_import_0=__webpack_require__(5890);let InternalEventType=Object.freeze({INIT_SOLUTION:"init-solution",CHANGE_CONFIG:"change-config",ACTION_EVENT:"action-event",ERROR_EVENT:"error-event"}),EventType=Object.freeze({FILE_ADDED:"file-added",FILE_REMOVED:"file-removed",FILE_UPLOAD_START:"file-upload-start",FILE_UPLOAD_PROGRESS:"file-upload-progress",FILE_UPLOAD_SUCCESS:"file-upload-success",FILE_UPLOAD_FAILED:"file-upload-failed",FILE_URL_CHANGED:"file-url-changed",MODAL_OPEN:"modal-open",MODAL_CLOSE:"modal-close",DONE_CLICK:"done-click",UPLOAD_CLICK:"upload-click",ACTIVITY_CHANGE:"activity-change",COMMON_UPLOAD_START:"common-upload-start",COMMON_UPLOAD_PROGRESS:"common-upload-progress",COMMON_UPLOAD_SUCCESS:"common-upload-success",COMMON_UPLOAD_FAILED:"common-upload-failed",CHANGE:"change",GROUP_CREATED:"group-created"});class EventEmitter extends _lit_shared_instances__rspack_import_0.jM{bindTarget(target){return this._targets.add(target),()=>{this._targets.delete(target)}}_dispatch(type,payload){for(let target of this._targets)target.dispatchEvent(new CustomEvent(type,{detail:payload}));this._debugPrint?.(()=>[`event "${type}"`,payload&&"object"==typeof payload?{...payload}:payload])}emit(type,payload,options={}){let{debounce}=options;if("number"!=typeof debounce&&!debounce)return void this._dispatch(type,"function"==typeof payload?payload():payload);this._timeoutStore.has(type)&&window.clearTimeout(this._timeoutStore.get(type));let timeoutId=window.setTimeout(()=>{try{let data="function"==typeof payload?payload():payload;this._dispatch(type,data),this._timeoutStore.delete(type)}catch(error){this._debugPrint?.(()=>`Error while getting payload for event "${type}"`,error)}},"number"==typeof debounce?debounce:20);this._timeoutStore.set(type,timeoutId)}destroy(){for(let timeoutId of this._timeoutStore.values())window.clearTimeout(timeoutId);this._targets.clear()}constructor(...args){super(...args),this._timeoutStore=new Map,this._targets=new Set}}},5704(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{r:()=>PACKAGE_NAME,i:()=>PACKAGE_VERSION});var package_namespaceObject=JSON.parse('{"rE":"1.28.0-alpha.111"}');let PACKAGE_NAME="blocks",PACKAGE_VERSION=package_namespaceObject.rE},5923(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{S:()=>LitActivityBlock});var _abstract_CTX__rspack_import_2=__webpack_require__(7992),_blocks_UploadCtxProvider_EventEmitter__rspack_import_1=__webpack_require__(9963),_utils_debounce__rspack_import_3=__webpack_require__(4441),_activity_constants__rspack_import_4=__webpack_require__(7715),_LitBlock__rspack_import_0=__webpack_require__(4184);let ACTIVE_ATTR="active",ACTIVE_PROP="___ACTIVITY_IS_ACTIVE___";class LitActivityBlock extends _LitBlock__rspack_import_0.x{_deactivate(){let actDesc=LitActivityBlock._activityCallbacks.get(this);this[ACTIVE_PROP]=!1,this.removeAttribute(ACTIVE_ATTR),actDesc?.deactivateCallback?.()}_activate(){let actDesc=LitActivityBlock._activityCallbacks.get(this);this.$["*historyBack"]=this.historyBack.bind(this),this[ACTIVE_PROP]=!0,this.setAttribute(ACTIVE_ATTR,""),actDesc?.activateCallback?.(),this._debouncedHistoryFlush(),this.emit(_blocks_UploadCtxProvider_EventEmitter__rspack_import_1.Bx.ACTIVITY_CHANGE,{activity:this.activityType})}initCallback(){super.initCallback(),this.activityType&&(this.hasAttribute("activity")||this.setAttribute("activity",this.activityType),this.sub("*currentActivity",val=>{try{this.activityType!==val&&this[ACTIVE_PROP]?this._deactivate():this.activityType!==val||this[ACTIVE_PROP]||this._activate()}catch(err){this.telemetryManager.sendEventError(err,`activity "${this.activityType}"`),console.error(`Error in activity "${this.activityType}". `,err);let nextActivity=this.$["*history"][this.$["*history"].length-1];this.$["*currentActivity"]=nextActivity??null}val||(this.$["*history"]=[])}))}_historyFlush(){let history=this.$["*history"];history&&(history.length>10&&(history=history.slice(history.length-11,history.length-1)),this.historyTracked&&history[history.length-1]!==this.activityType&&history.push(this.activityType),this.$["*history"]=history)}_isActivityRegistered(){return!!this.activityType&&LitActivityBlock._activityCallbacks.has(this)}static{this._activityCallbacks=new Map}get isActivityActive(){return!!this[ACTIVE_PROP]}get couldOpenActivity(){return!0}registerActivity(_name,options={}){let{onActivate,onDeactivate}=options;LitActivityBlock._activityCallbacks.set(this,{activateCallback:onActivate,deactivateCallback:onDeactivate})}_unregisterActivity(){this.isActivityActive&&this._deactivate(),LitActivityBlock._activityCallbacks.delete(this)}disconnectedCallback(){super.disconnectedCallback(),this._isActivityRegistered()&&this._unregisterActivity();let currentActivity=this.$["*currentActivity"];this.blocksRegistry&&([...this.blocksRegistry].find(block=>block instanceof LitActivityBlock&&block.activityType===currentActivity)||(this.$["*currentActivity"]=null,this.modalManager?.closeAll()))}get activityParams(){return this.$["*currentActivityParams"]}get initActivity(){return this.getCssData("--cfg-init-activity")??null}get doneActivity(){return this.getCssData("--cfg-done-activity")??null}historyBack(){let history=this.$["*history"];if(history){let nextActivity=history.pop();for(;nextActivity===this.activityType;)nextActivity=history.pop();let couldOpenActivity=!!nextActivity;if(nextActivity){let nextLitActivityBlock=[...this.blocksRegistry].find(block=>block.activityType===nextActivity);couldOpenActivity=nextLitActivityBlock?.couldOpenActivity??!1}nextActivity=couldOpenActivity?nextActivity:null,this.$["*currentActivity"]=nextActivity??null,nextActivity&&this.modalManager?.open(nextActivity),this.$["*history"]=history,nextActivity||this.modalManager?.closeAll()}}constructor(...args){super(...args),this.historyTracked=!1,this.init$=(0,_abstract_CTX__rspack_import_2._H)(this),this._debouncedHistoryFlush=(0,_utils_debounce__rspack_import_3.s)(this._historyFlush.bind(this),10)}}LitActivityBlock.activities=_activity_constants__rspack_import_4.g},4184(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{x:()=>LitBlock});var ctor,ctor1,ctor2,lit=__webpack_require__(7825),CTX=__webpack_require__(7992),activity_constants=__webpack_require__(7715),shared_instances=__webpack_require__(5890);class ClipboardLayer extends shared_instances.jM{constructor(sharedInstancesBag){super(sharedInstancesBag),this.scopes=new Set,this.listener=this._listener.bind(this),window.addEventListener("paste",this.listener)}openUploadList(){this._sharedInstancesBag.api.setCurrentActivity(activity_constants.g.UPLOAD_LIST),this._sharedInstancesBag.api.setModalState(!0)}async _listener(event){if(event.clipboardData){for(let scope of this.scopes)if(scope.isConnected)switch(this._cfg.pasteScope){case"global":await this.handlePaste(event);break;case"local":if(!scope.contains(event.target))continue;await this.handlePaste(event);break;default:continue}}}async handlePaste(event){let items=Array.from(event.clipboardData.items),files=items.map(item=>item.getAsFile()).filter(file=>null!==file),urls=items.filter(item=>"string"===item.kind&&"text/plain"===item.type).map(item=>new Promise(resolve=>{item.getAsString(text=>{resolve(text)})}));files.length>0&&(files.forEach(file=>{this._sharedInstancesBag.api.addFileFromObject(file,{source:"clipboard"})}),this.openUploadList()),urls.length>0&&((await Promise.all(urls)).forEach(url=>{this._sharedInstancesBag.api.addFileFromUrl(url,{source:"clipboard"})}),this.openUploadList())}registerBlock(scope){return this.scopes.add(scope),()=>{this.scopes.delete(scope)}}destroy(){super.destroy(),window.removeEventListener("paste",this.listener),this.scopes.clear()}}let ROLES={button:["toolbar"],checkbox:["toolbar"],menuitem:["menu","menubar"],option:["listbox"],tab:["tablist"]};function focus_group_focus(current,next){next.tabIndex=0,next.focus(),current.tabIndex=-1}function findGroupNodeByEventTarget(target){let itemRole=target.role||target.type||target.tagName;if(!itemRole)return null;let groupRoles=ROLES[itemRole.toLowerCase()];if(!groupRoles)return null;for(let role of groupRoles){let node=target.closest(`[role=${role}]`);if(node)return node}}function getItems(target,group){return"toolbar"===group.role?[...group.querySelectorAll("*")].filter(item=>"button"===item.role||"button"===item.type||"checkbox"===item.role||"checkbox"===item.type):group.querySelectorAll(`[role=${target.role}]`)}class ScopedMinimalWindow{addEventListener(type,listener){let wrappedListener=event=>{let target=event.target;target instanceof Node&&this._scope.some(el=>el===target||el.contains(target))&&listener(event)};this._listeners.set(listener,wrappedListener),window.addEventListener(type,wrappedListener)}removeEventListener(type,listener){let wrappedListener=this._listeners.get(listener);wrappedListener&&window.removeEventListener(type,wrappedListener),this._listeners.delete(listener)}get CustomEvent(){return window.CustomEvent}get document(){return window.document}get navigator(){return window.navigator}registerScope(scope){this._scope.push(scope)}destroy(){for(let wrappedListener of(this._scope=[],this._listeners.values()))window.removeEventListener("keydown",wrappedListener),window.removeEventListener("keyup",wrappedListener);this._listeners.clear()}constructor(){this._listeners=new Map,this._scope=[]}}class A11y{constructor(){var window1;let unbinds;this._scopedWindow=new ScopedMinimalWindow,this._destroyKeyUX=(window1=this._scopedWindow,unbinds=[window1=>{let inGroup=!1,lastTyped=0,searchPrefix="";function keyDown(event){let group=findGroupNodeByEventTarget(event.target);if(!group)return void stop();let items=getItems(event.target,group),index=Array.from(items).indexOf(event.target),nextKey="ArrowDown",prevKey="ArrowUp";if(function(group){let ariaOrientation=group.getAttribute("aria-orientation");if("vertical"===ariaOrientation)return!1;if("horizontal"===ariaOrientation)return!0;let role=group.role;return"menubar"===role||"tablist"===role||"toolbar"===role}(group)&&("rtl"===window1.document.dir?(nextKey="ArrowLeft",prevKey="ArrowRight"):(nextKey="ArrowRight",prevKey="ArrowLeft")),event.key===nextKey)event.preventDefault(),focus_group_focus(event.target,items[index+1]||items[0]);else if(event.key===prevKey)event.preventDefault(),focus_group_focus(event.target,items[index-1]||items[items.length-1]);else if("Home"===event.key)event.preventDefault(),focus_group_focus(event.target,items[0]);else if("End"===event.key)event.preventDefault(),focus_group_focus(event.target,items[items.length-1]);else if(1===event.key.length&&"tablist"!==group.role){let now=Date.now();now-lastTyped<=300?searchPrefix+=event.key.toLowerCase():searchPrefix=event.key.toLowerCase(),lastTyped=now;let found=Array.from(items).find(item=>item.textContent?.trim()?.toLowerCase()?.startsWith(searchPrefix));found&&(event.preventDefault(),focus_group_focus(event.target,found))}}function stop(){inGroup=!1,window1.removeEventListener("keydown",keyDown)}function focusIn(event){let group=findGroupNodeByEventTarget(event.target);if(group)for(let item of(inGroup||(inGroup=!0,window1.addEventListener("keydown",keyDown)),getItems(event.target,group)))item!==event.target&&item.setAttribute("tabindex",-1);else inGroup&&stop()}function focusOut(event){event.relatedTarget&&event.relatedTarget!==window1.document||stop()}function click(event){let group=findGroupNodeByEventTarget(event.target);if(group){for(let item of getItems(event.target,group))item!==event.target&&item.setAttribute("tabindex",-1);event.target.setAttribute("tabindex",0)}}return window1.addEventListener("click",click),window1.addEventListener("focusin",focusIn),window1.addEventListener("focusout",focusOut),()=>{stop(),window1.removeEventListener("click",click),window1.removeEventListener("focusin",focusIn),window1.removeEventListener("focusout",focusOut)}},function(pressedClass){let pressedElement,down,classes=pressedClass.split(" ");function keyDown(event){"Enter"===event.key&&("BUTTON"===event.target.tagName||"A"===event.target.tagName)&&(keyUp(),event.target.classList.add(...classes),pressedElement=event.target,down=event.target)}function keyUp(){pressedElement&&pressedElement.classList.remove(...classes),down=null}function click(event){0===event.clientX&&0===event.clientY&&down!==event.target&&(keyUp(),event.target.classList.add(...classes),pressedElement=event.target)}return window1=>(window1.addEventListener("click",click),window1.addEventListener("keydown",keyDown),window1.addEventListener("keyup",keyUp),()=>{window1.removeEventListener("click",click),window1.removeEventListener("keydown",keyDown),window1.removeEventListener("keyup",keyUp)})}("is-pressed"),window1=>{let finding,jumps=[],tries=0;function keyDown(event){var from;let ariaControls;event.target.getAttribute("aria-controls")&&"Enter"===event.key&&(from=event.target,clearInterval(finding),ariaControls=from.getAttribute("aria-controls"),finding=setInterval(()=>{if(tries++>50)return void clearInterval(finding);let area=window1.document.getElementById(ariaControls);if(area){let next=area.querySelector('a, button, select, textarea, input:not([type=radio]), [type=radio]:checked, [tabindex]:not([tabindex="-1"])');if(next){let current;clearInterval(finding),area.dispatchEvent(new window1.CustomEvent("keyuxJump",{bubbles:!0})),(current=window1.document.activeElement)&&current!==window1.document.body&&jumps.push(new WeakRef(current)),next.focus({focusVisible:!0})}}},50)),"Escape"===event.key&&function back(){let ref=jumps.pop();if(!ref)return void window1.document.activeElement.blur();let el=ref.deref();el&&el.isConnected?el.focus():back()}()}return window1.addEventListener("keydown",keyDown),()=>{window1.removeEventListener("keydown",keyDown)}},window1=>{let allowed,wasHidden;function jump(e){if("true"===e.target.getAttribute("aria-hidden")){(allowed=e.target).setAttribute("aria-hidden","false"),(wasHidden=allowed.hidden)&&(allowed.hidden=!1);let first=e.target.querySelector('a, button, select, textarea, input:not([type=radio]), [type=radio]:checked, [tabindex]:not([tabindex="-1"])');first&&(first.tabIndex=0)}}function focusOut(e){allowed&&allowed.contains(e.target)&&(!e.relatedTarget||!allowed.contains(e.relatedTarget))&&(e.target.tabIndex=-1,allowed.setAttribute("aria-hidden","true"),wasHidden&&(allowed.hidden=!0),allowed=null)}return window1.addEventListener("keyuxJump",jump),window1.addEventListener("focusout",focusOut),()=>{window1.removeEventListener("keyuxJump",jump),window1.removeEventListener("focusout",focusOut)}}].map(plugin=>plugin(window1)),()=>{unbinds.forEach(unbind=>unbind())})}registerBlock(scope){this._scopedWindow.registerScope(scope)}destroy(){this._destroyKeyUX?.(),this._scopedWindow.destroy()}}var LocaleManager=__webpack_require__(2827);let ModalEvents=Object.freeze({ADD:"modal:add",DELETE:"modal:delete",OPEN:"modal:open",CLOSE:"modal:close",CLOSE_ALL:"modal:closeAll",DESTROY:"modal:destroy"});class ModalManager extends shared_instances.jM{registerModal(id,modal){this._modals.set(id,modal),this._notify(ModalEvents.ADD,{id,modal})}deleteModal(id){let modal=this._modals.get(id);return!!modal&&(this._modals.delete(id),this._activeModals.delete(id),this._notify(ModalEvents.DELETE,{id,modal}),!0)}open(id){let modal=this._modals.get(id);return modal?(this._activeModals.add(id),this._notify(ModalEvents.OPEN,{modal,id}),!0):(this._debugPrint(`Modal with ID "${id}" not found`),!1)}close(id){let modal=this._modals.get(id);return modal&&this._activeModals.has(id)?(this._activeModals.delete(id),this._notify(ModalEvents.CLOSE,{id,modal}),!0):(this._debugPrint(`Modal with ID "${id}" not found or not active`),!1)}toggle(id){return this._modals.has(id)?this._activeModals.has(id)?this.close(id):this.open(id):(this._debugPrint(`Modal with ID "${id}" not found`),!1)}get hasActiveModals(){return this._activeModals.size>0}back(){if(0===this._activeModals.size)return this._debugPrint("No active modals to go back from"),!1;let lastModalId=Array.from(this._activeModals).pop();return!!lastModalId&&this.close(lastModalId)}closeAll(){let count=this._activeModals.size;return this._activeModals.clear(),this._notify(ModalEvents.CLOSE_ALL,{}),count}subscribe(event,callback){return this._subscribers.has(event)||this._subscribers.set(event,new Set),this._subscribers.get(event)?.add(callback),()=>this.unsubscribe(event,callback)}unsubscribe(event,callback){this._subscribers.has(event)&&this._subscribers.get(event)?.delete(callback)}_notify(event,data){if(this._subscribers.has(event))for(let callback of this._subscribers.get(event)??new Set)try{callback(data)}catch(error){this._sharedInstancesBag.telemetryManager.sendEventError(error,"modal subscriber"),this._debugPrint("Error in modal subscriber:",error)}}destroy(){super.destroy(),this.closeAll(),this._modals.clear(),this._subscribers.clear(),this._notify(ModalEvents.DESTROY,{})}constructor(...args){super(...args),this._modals=new Map,this._activeModals=new Set,this._subscribers=new Map}}class CustomConfigRegistry{register(pluginId,definition){if(this._definitions.has(definition.name))return void console.warn(`[CustomConfig] Config option "${definition.name}" is already registered`);let ownedDefinition={attribute:!0,...definition,pluginId};this._definitions.set(definition.name,ownedDefinition)}unregister(name){this._definitions.delete(name)}unregisterByPlugin(pluginId){for(let[name,definition]of this._definitions)definition.pluginId===pluginId&&this._definitions.delete(name)}get(name){return this._definitions.get(name)}getAll(){return new Map(this._definitions)}constructor(){this._definitions=new Map}}var sharedConfigKey=__webpack_require__(1971);class PluginManager extends shared_instances.jM{constructor(sharedInstancesBag){super(sharedInstancesBag),this._plugins=new Map,this._sources=[],this._activities=[],this._fileActions=[],this._fileHooks=[],this._icons=[],this._i18n=[],this._subscribers=new Set,this._pluginsUpdate=Promise.resolve(),this.configRegistry=new CustomConfigRegistry,this.addSub(this._ctx.sub((0,sharedConfigKey.T)("plugins"),plugins=>{this._pluginsUpdate=this._pluginsUpdate.then(()=>this._syncPlugins(plugins))}))}onPluginsChange(callback){return this._subscribers.add(callback),()=>{this._subscribers.delete(callback)}}async _syncPlugins(plugins){let currentPluginIds=new Set(this._plugins.keys()),processedIds=new Set;for(let plugin of plugins){if(processedIds.has(plugin.id)){this._debugPrint(`Plugin "${plugin.id}" is already in the list, skipping duplicate`);continue}processedIds.add(plugin.id);let registered=this._plugins.get(plugin.id);if(!registered||registered.plugin!==plugin)try{await this._registerPlugin(plugin)}catch(error){this._purgeRegistrations(plugin.id),this._notifySubscribers(),this._debugPrint(`Plugin "${plugin.id}" setup failed`,error)}currentPluginIds.delete(plugin.id)}for(let pluginId of currentPluginIds)this._unregisterPlugin(pluginId)}async _registerPlugin(plugin){let pluginExports;this._plugins.has(plugin.id)&&this._unregisterPlugin(plugin.id);let registrations={sources:[],activities:[],fileActions:[],fileHooks:[],icons:[],i18n:[]},configSubscriptions=[],uploaderApi=this._sharedInstancesBag.api;try{pluginExports=await plugin.setup({pluginApi:{registry:{registerSource:source=>this._register(this._sources,registrations.sources,plugin.id,source),registerActivity:activity=>this._register(this._activities,registrations.activities,plugin.id,activity),registerFileAction:fileAction=>this._register(this._fileActions,registrations.fileActions,plugin.id,fileAction),registerFileHook:hook=>this._register(this._fileHooks,registrations.fileHooks,plugin.id,hook),registerIcon:icon=>this._register(this._icons,registrations.icons,plugin.id,icon),registerI18n:i18n=>this._register(this._i18n,registrations.i18n,plugin.id,i18n),registerConfig:definition=>{this.configRegistry.register(plugin.id,definition)}},config:{get:configName=>{let stateKey=(0,sharedConfigKey.T)(configName);return this._ctx.read(stateKey)},subscribe:(configName,callback)=>{let stateKey=(0,sharedConfigKey.T)(configName),unsub=this._ctx.sub(stateKey,value=>{callback(value)});return configSubscriptions.push(unsub),unsub}},activity:{getParams:()=>this._ctx.read("*currentActivityParams"),subscribeToParams:callback=>{let unsub=this._ctx.sub("*currentActivityParams",params=>{callback(params)});return configSubscriptions.push(unsub),unsub}},files:{update:(internalId,changes)=>{let entry=this._sharedInstancesBag.uploadCollection?.read(internalId);entry&&(void 0!==changes.file&&(entry.setValue("file",changes.file),entry.setValue("fileSize",changes.file.size)),void 0!==changes.cdnUrl&&entry.setValue("cdnUrl",changes.cdnUrl),void 0!==changes.cdnUrlModifiers&&entry.setValue("cdnUrlModifiers",changes.cdnUrlModifiers),void 0!==changes.mimeType&&entry.setValue("mimeType",changes.mimeType))}}},uploaderApi})??void 0}catch(error){for(let unsub of configSubscriptions)try{unsub()}catch(e){this._debugPrint("Failed to unsubscribe config listener",e)}throw error}this._plugins.set(plugin.id,{plugin,exports:pluginExports,registrations,configSubscriptions}),this._notifySubscribers()}_unregisterPlugin(pluginId){let registered=this._plugins.get(pluginId);if(registered){for(let unsub of(this._purgeRegistrations(pluginId),registered.configSubscriptions))try{unsub()}catch(error){this._debugPrint("Failed to unsubscribe config listener",error)}registered.exports?.dispose?.(),this._plugins.delete(pluginId),this._notifySubscribers()}}snapshot(){return{sources:[...this._sources],activities:[...this._activities],fileActions:[...this._fileActions],fileHooks:[...this._fileHooks],icons:[...this._icons],i18n:[...this._i18n]}}destroy(){for(let pluginId of Array.from(this._plugins.keys()))this._unregisterPlugin(pluginId);super.destroy()}_register(target,bucket,pluginId,registration){let owned={...registration,pluginId};return target.push(owned),bucket.push(owned),registration}_purgeRegistrations(pluginId){this._sources=this._sources.filter(item=>item.pluginId!==pluginId),this._activities=this._activities.filter(item=>item.pluginId!==pluginId),this._fileActions=this._fileActions.filter(item=>item.pluginId!==pluginId),this._fileHooks=this._fileHooks.filter(item=>item.pluginId!==pluginId),this._icons=this._icons.filter(item=>item.pluginId!==pluginId),this._i18n=this._i18n.filter(item=>item.pluginId!==pluginId),this.configRegistry.unregisterByPlugin(pluginId)}_notifySubscribers(){for(let callback of this._subscribers)try{callback()}catch{}}}function a(e){return{ok:!1,error:e}}class y{constructor(r="https://tlm.uploadcare.com/api/"){this.baseUrl=r}async base(r,s={}){let t=`${this.baseUrl}${r}`;try{let n=await fetch(t,s);if(!n.ok)return a(Error(`Got non-200 response from "${t}". Status: ${n.status.toString()}`));try{var e;return e=await n.json(),{ok:!0,value:e}}catch(o){return a(Error(`Error parsing JSON from "${t}". Error: ${o}`))}}catch(n){return a(Error(`Error fetching data from "${t}". Error: ${n}`))}}async post(r,s,t={}){return await this.base(r,{...t,method:"POST",body:JSON.stringify(function dist_c(e){return Array.isArray(e)?e.map(r=>"object"==typeof r&&null!==r?dist_c(r):r):"object"!=typeof e||null===e?e:Object.fromEntries(Object.entries(e).map(([r,s])=>{let t=r.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`).replace(/__/g,"_");return"object"==typeof s&&null!==s?[t,dist_c(s)]:[t,s]}))}(s)),headers:{"Content-Type":"application/json",...t.headers||{}}})}async get(r,s={}){return await this.base(r,{method:"GET",...s})}}let p=async(e,r)=>({success:!0,data:r}),f=async e=>p(void 0,e);class dist_h extends y{constructor(){super()}async sendEvent(r,s){let t=await f(r);if(!t.success)throw console.error("TelemetryAPIService: events: body is invalid",t.error),Error("TelemetryAPIService: events: body is invalid");return this.post("v1/events",r,s)}}var index_browser=__webpack_require__(3074),initialConfig=__webpack_require__(318),EventEmitter=__webpack_require__(9963),env=__webpack_require__(5704),UID=__webpack_require__(5446);class TelemetryManager extends shared_instances.jM{constructor(sharedInstancesBag){for(let key of(super(sharedInstancesBag),this._sessionId=UID.V.generateRandomUUID(),this._config=structuredClone(initialConfig.Dz),this._initialized=!1,this._lastPayload=null,this._isEnabled=!1,this._telemetryInstance=new dist_h,this._queue=new index_browser.op(10),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("qualityInsights"),value=>{this._isEnabled=!!value})),Object.keys(this._config)))this.addSub(this._ctx.sub((0,sharedConfigKey.T)(key),value=>{this._isEnabled&&(this._initialized&&this._config[key]!==value&&this.sendEvent({eventType:EventEmitter.Kc.CHANGE_CONFIG}),this._setConfig(key,value))}))}_init(type){type!==EventEmitter.Kc.INIT_SOLUTION||this._initialized||(this._initialized=!0)}_setConfig(key,value){this._config[key]!==value&&(this._config[key]=value)}_formattingPayload(body){let payload=body.payload?{...body.payload}:{};payload.activity&&(payload.activity=void 0);let result={...body};return(body.eventType===EventEmitter.Kc.INIT_SOLUTION||body.eventType===EventEmitter.Kc.CHANGE_CONFIG)&&(result.config=this._config),{...result,appVersion:env.i,appName:env.r,sessionId:this._sessionId,component:this._solution,activity:this._activity,projectPubkey:this._config.pubkey,userAgent:navigator.userAgent,eventType:result.eventType??"",eventTimestamp:this._timestamp,payload:{location:this._location,...payload}}}_excludedEvents(type){return!!(type&&[EventEmitter.Bx.CHANGE,EventEmitter.Bx.COMMON_UPLOAD_PROGRESS,EventEmitter.Bx.FILE_ADDED,EventEmitter.Bx.FILE_REMOVED,EventEmitter.Bx.FILE_UPLOAD_START,EventEmitter.Bx.FILE_UPLOAD_PROGRESS,EventEmitter.Bx.FILE_UPLOAD_SUCCESS,EventEmitter.Bx.FILE_UPLOAD_FAILED].includes(type))}sendEvent(body){if(!this._isEnabled)return;let payload=this._formattingPayload({eventType:body.eventType,payload:body.payload,config:body.config});this._init(body.eventType),this._excludedEvents(body.eventType)||this._lastPayload&&this._checkObj(this._lastPayload,payload)||this._queue.add(async()=>{this._lastPayload=payload,await this._telemetryInstance.sendEvent(payload)})}sendEventError(error,context="unknown"){this.sendEvent({eventType:EventEmitter.Kc.ERROR_EVENT,payload:{metadata:{event:"error",text:`Error in ${context}`,error:error.message}}})}sendEventCloudImageEditor(e,tabId,options={}){this.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{tabId,node:e.currentTarget?.tagName,event:e.type,...options}}})}_checkObj(last,current){if(JSON.stringify(last)===JSON.stringify(current))return!0;if("object"!=typeof last||"object"!=typeof current||null==last||null==current)return!1;let lastKeys=Object.keys(last),currentKeys=Object.keys(current);if(lastKeys.length!==currentKeys.length)return!1;for(let key of lastKeys)if(!Object.hasOwn(current,key)||!this._checkObj(last[key],current[key]))return!1;return!0}get _timestamp(){return Date.now()}get _solution(){if(!this._ctx.has("*solution"))return null;let solution=this._ctx.read("*solution");return solution?solution.toLowerCase():null}get _activity(){return this._ctx.has("*currentActivity")?this._ctx.read("*currentActivity"):null}get _location(){return location.origin}}var PubSubCompat=__webpack_require__(7560),cdn_utils=__webpack_require__(6339),template_utils=__webpack_require__(664),debounce=__webpack_require__(4441);let WINDOW_HEIGHT_TRACKER_PROPERTY="--uploadcare-blocks-window-height";class WindowHeightTracker{static{this.clientsRegistry=new Set}static{this.flush=(0,debounce.s)(()=>{document.documentElement.style.setProperty(WINDOW_HEIGHT_TRACKER_PROPERTY,`${window.innerHeight}px`)},100)}static registerClient(client){0===WindowHeightTracker.clientsRegistry.size&&WindowHeightTracker.attachTracker(),WindowHeightTracker.clientsRegistry.add(client)}static unregisterClient(client){WindowHeightTracker.clientsRegistry.delete(client),0===WindowHeightTracker.clientsRegistry.size&&WindowHeightTracker.detachTracker()}static attachTracker(){window.addEventListener("resize",WindowHeightTracker.flush,{passive:!0,capture:!0}),WindowHeightTracker.flush()}static detachTracker(){window.removeEventListener("resize",WindowHeightTracker.flush,{capture:!0}),document.documentElement.style.removeProperty(WINDOW_HEIGHT_TRACKER_PROPERTY)}}let ESCAPED_PATTERN=/\\([0-9a-fA-F]{1,6} ?)/g;var createDebugPrinter=__webpack_require__(255),l10n=__webpack_require__(263);class context_request_event_s extends Event{constructor(s,t,e,o){super("context-request",{bubbles:!0,composed:!0}),this.context=s,this.contextTarget=t,this.callback=e,this.subscribe=o??!1}}class context_consumer_s{constructor(t,s,i,h){(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context)?(this.context=s.context,this.callback=s.callback,this.subscribe=s.subscribe??!1):(this.context=s,this.callback=i,this.subscribe=h??!1),this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new context_request_event_s(this.context,this.host,this.t,this.subscribe))}}class value_notifier_s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){let i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(let[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});let{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}class context_provider_e extends Event{constructor(t,s){super("context-provider",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class context_provider_i extends value_notifier_s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;let s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context||(s.contextTarget??s.composedPath()[0])===this.host)return;let e=new Set;for(let[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new context_request_event_s(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new context_provider_e(this.context,this.host))}}var lit_decorators=__webpack_require__(7093);function _ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}class TestModeController{constructor(host){this._trackedElements=new Set,this._originalValues=new Map,this._enabled=!1,this._host=host,this._host.addController(this)}hostDisconnected(){this._unsubscribe?.(),this._unsubscribe=void 0,this._trackedElements.clear(),this._originalValues.clear()}hostUpdated(){if(!this._unsubscribe&&this._host.has((0,sharedConfigKey.T)("testMode"))){let unsubscribe=this._host.subConfigValue("testMode",isEnabled=>{this._enabled=!!isEnabled,this._applyTestMode()});this._unsubscribe=unsubscribe}this._collectElements(),this._applyTestMode()}_collectElements(){let litHost=this._host,root=litHost.renderRoot??litHost;if(!root)return;let hostElement=this._host,hostTag=hostElement.tagName?.toLowerCase();for(let el of Array.from(root.querySelectorAll("[data-testid]")).filter(el=>!el.tagName?.includes("-")))if((!hostTag||el.closest(hostTag)===hostElement)&&!this._trackedElements.has(el)){let attrValue=el.getAttribute("data-testid");if(!attrValue)continue;this._trackedElements.add(el),this._originalValues.set(el,attrValue)}for(let el of Array.from(this._trackedElements))(!el.isConnected||hostTag&&el.closest(hostTag)!==hostElement)&&(this._trackedElements.delete(el),this._originalValues.delete(el))}_applyTestMode(){if(!this._trackedElements.size)return;let prefix=this._host.testId||"";for(let el of this._trackedElements){let baseValue=this._originalValues.get(el);baseValue&&(this._enabled?el.setAttribute("data-testid",`${prefix}--${baseValue}`):el.removeAttribute("data-testid"))}}}let LitBlockBase=(ctor2=function(ctor){class SymbioteMixinClass extends ctor{static set template(_value){console.error("Caution: static 'template' property is deprecated and has no effect. See https://github.com/uploadcare/file-uploader/releases/tag/v1.25.0 for details.")}get _ctxNameAttr(){return this._ctxNameAttrValue}set _ctxNameAttr(value){let normalizedValue=value??void 0;this._ctxNameAttrValue!==normalizedValue&&(this._ctxNameAttrValue=normalizedValue,this._handleCtxNameSourceChange())}shouldUpdate(changedProperties){return!!this._isInitialized&&super.shouldUpdate(changedProperties)}constructor(...args){super(...args),this._symbioteSharedPubSub=null,this._symbioteFirstUpdated=!1,this._needsReconnectInit=!1,this._ctxNameProvider=void 0,this._pendingSharedAdds=new Map,this._symbioteSubscriptions=new Set,this.init$={},this.ctxOwner=!1,this._ctxNameAttrValue=void 0,this._pendingCtxInitOnConnect=!1,this.ctxName=this._effectiveCtxName,this._isInitialized=!1,this._ctxNameAttrValue=this.getAttribute("ctx-name")||void 0,this.ctxName=this._effectiveCtxName,this._ctxNameConsumer=new context_consumer_s(this,{context:"ctx-name-context",callback:value=>{value?(this._ctxNameFromContext=value,this._handleCtxNameSourceChange()):console.error("SymbioteMixin: Received invalid ctx-name from context")},subscribe:!0})}get _effectiveCtxName(){return this._ctxNameAttr||this._ctxNameFromContext||void 0}_handleCtxNameSourceChange(){if(this.ctxName=this._effectiveCtxName,this.ctxName&&!this._symbioteFirstUpdated){if(this.isConnected)return void this._performInitialization();this._pendingCtxInitOnConnect=!0}}willUpdate(changedProperties){super.willUpdate(changedProperties),this.ctxName=this._effectiveCtxName,this.ctxName&&(this._ctxNameProvider?this._ctxNameProvider.setValue(this.ctxName):this._ctxNameProvider=new context_provider_i(this,{context:"ctx-name-context",initialValue:this.ctxName}))}_applyPendingSharedAdds(){if(this._symbioteSharedPubSub&&0!==this._pendingSharedAdds.size){for(let[key,{value,rewrite}]of this._pendingSharedAdds)this._symbioteSharedPubSub.add(key,value,rewrite);this._pendingSharedAdds.clear()}}_getSharedPubSub(){return!this._symbioteSharedPubSub&&this._effectiveCtxName&&this._initSharedContext(),this._symbioteSharedPubSub&&this._applyPendingSharedAdds(),this._symbioteSharedPubSub}_requireSharedPubSub(){let pubsub=this._getSharedPubSub();if(!pubsub)throw Error("SymbioteMixin: Shared context is not initialized.");return pubsub}_initSharedContext(){let initialValue=this.init$,ctxName=this._effectiveCtxName;if(!ctxName)return void console.error("SymbioteMixin: ctx-name is required for components with shared properties (*)");if(!this._symbioteSharedPubSub){for(let[key,defaultValue]of(this._symbioteSharedPubSub=PubSubCompat.G.getCtx(ctxName)??PubSubCompat.G.registerCtx(initialValue,ctxName),Object.entries(this.init$)))this._symbioteSharedPubSub.add(key,defaultValue,this.ctxOwner);this._applyPendingSharedAdds()}}get $(){return this._effectiveCtxName&&this._initSharedContext(),new Proxy({},{get:(_target,key)=>{if("string"==typeof key)return this._symbioteSharedPubSub?.read(key)},set:(_target,key,value)=>"string"!=typeof key||(this._symbioteSharedPubSub?.pub(key,value),!0)})}sub(key,callback,init=!0){let subscription=this._requireSharedPubSub().sub(key,callback,init);if(!subscription||"function"!=typeof subscription)return()=>{};let removeFn=subscription.bind(subscription),removed=!1,trackedRemove=()=>{removed||(removed=!0,removeFn(),this._symbioteSubscriptions.delete(trackedRemove))};return this._symbioteSubscriptions.add(trackedRemove),trackedRemove}pub(key,value){this._requireSharedPubSub().pub(key,value)}set$(obj){for(let[prop,value]of Object.entries(obj))this.pub(prop,value)}get sharedCtx(){return this._requireSharedPubSub()}has(key){return this._symbioteSharedPubSub?.has(key)??!1}add(key,val,rewrite=!1){let pubsub=this._getSharedPubSub();if(!pubsub){if(!rewrite&&this._pendingSharedAdds.has(key))return;this._pendingSharedAdds.set(key,{value:val,rewrite});return}this._pendingSharedAdds.delete(key),pubsub.add(key,val,rewrite)}add$(obj,rewrite=!1){for(let[prop,value]of Object.entries(obj))this.add(prop,value,rewrite)}connectedCallback(){super.connectedCallback(),this._symbioteFirstUpdated?this._isInitialized&&this._needsReconnectInit&&(this._needsReconnectInit=!1,this.initCallback()):this.ctxName?(this._pendingCtxInitOnConnect=!1,this._performInitialization()):this._pendingCtxInitOnConnect&&this._effectiveCtxName&&(this._pendingCtxInitOnConnect=!1,this._performInitialization())}_performInitialization(){if(this._symbioteFirstUpdated)return;this._symbioteFirstUpdated=!0,this._initSharedContext();let sharedSchema=this.init$;if(Object.keys(sharedSchema).length>0){let pubsub=this._requireSharedPubSub();for(let[key,defaultValue]of Object.entries(sharedSchema))void 0===pubsub.read(key)&&pubsub.pub(key,defaultValue),this.sub(key,(0,debounce.s)(async()=>{this.isConnected&&(await this.updateComplete,this.requestUpdate())},0),!1)}this.initCallback(),this._isInitialized=!0,this.requestUpdate()}firstUpdated(changedProperties){super.firstUpdated(changedProperties)}disconnectedCallback(){this._cleanupSymbioteSubscriptions(),super.disconnectedCallback(),this._symbioteFirstUpdated&&(this._needsReconnectInit=!0)}_cleanupSymbioteSubscriptions(){if(0!==this._symbioteSubscriptions.size){for(let unsubscribe of[...this._symbioteSubscriptions])unsubscribe();this._symbioteSubscriptions.clear()}}initCallback(){}}return _ts_decorate([(0,lit_decorators.MZ)({type:String,attribute:"ctx-name",noAccessor:!0})],SymbioteMixinClass.prototype,"_ctxNameAttr",null),_ts_decorate([(0,lit_decorators.wk)()],SymbioteMixinClass.prototype,"_ctxNameFromContext",void 0),_ts_decorate([(0,lit_decorators.wk)()],SymbioteMixinClass.prototype,"ctxName",void 0),_ts_decorate([(0,lit_decorators.wk)()],SymbioteMixinClass.prototype,"_isInitialized",void 0),SymbioteMixinClass}((ctor=lit.WF,ctor1=class extends ctor{createRenderRoot(){return this}connectedCallback(){this._initialLightDomChildren||(this._initialLightDomChildren=Array.from(this.childNodes)),super.connectedCallback()}_adoptChildren(){if(this._hasAdoptedChildren)return;this._hasAdoptedChildren=!0,this._slotsMap={};let directChildren=Array.from(this.childNodes);for(let child of directChildren.length?directChildren:this._initialLightDomChildren??[]){let slotName=this._getSlotNameForChild(child),slotContent=this._slotsMap[slotName]??[];child instanceof Element&&(child.removeAttribute("slot"),child.removeAttribute("content-for")),slotContent.push(child),this._slotsMap[slotName]=slotContent}this._initialLightDomChildren=null}_getSlotNameForChild(child){return child instanceof Comment&&child.nextSibling instanceof Element?this._getSlotNameForChild(child.nextSibling):"contentFor"in child?child.contentFor||"":child instanceof Element&&child.hasAttribute("content-for")&&child.getAttribute("content-for")||""}_isTextNodeEmpty(node){return!node.textContent||!node.textContent.trim()}_isSlotEmpty(slot){let content=this._slotsMap[slot];return!content||content.every(child=>child instanceof Comment||child instanceof Text&&this._isTextNodeEmpty(child))}update(changedProperties){!this.hasUpdated&&this.willYield&&this._adoptChildren(),super.update(changedProperties)}yield(slot,defaultContent){if(""===slot&&!this._slotsMap[slot]&&!this._hasAdoptedChildren&&this._initialLightDomChildren?.length){let slotContent=[];for(let child of this._initialLightDomChildren)child instanceof Element&&(child.removeAttribute("slot"),child.removeAttribute("content-for")),slotContent.push(child);this._slotsMap[slot]=slotContent,this._hasAdoptedChildren=!0,this._initialLightDomChildren=null}let slotContent=this._slotsMap[slot];return(0,lit.qy)`
2
+ ${slotContent}
3
+ ${this._isSlotEmpty(slot)?defaultContent:void 0}
4
+ `}constructor(...args){super(...args),this.willYield=!0,this._slotsMap={},this._initialLightDomChildren=null,this._hasAdoptedChildren=!1}},class extends ctor1{getCssData(propName,silentCheck=!1){let cssDataCache=this._cssDataCache??Object.create(null);if(!Object.keys(cssDataCache).includes(propName)||!cssDataCache[propName]){this._computedStyle||(this._computedStyle=window.getComputedStyle(this));let val=this._computedStyle.getPropertyValue(propName).trim();try{cssDataCache[propName]=function(input){let output=input;if(!(input.length<2)&&('"'===input[0]||"'"===input[0])&&('"'===input[input.length-1]||"'"===input[input.length-1])){let result;('"'===(result=output)[0]||"'"===result[0])&&(result=result.slice(1)),('"'===result[result.length-1]||"'"===result[result.length-1])&&(result=result.slice(0,-1)),output='"'+(output=function(str){let result="",prev="";for(let i=0;i<str.length;i++){let next=str[i+1];"\\"===str[i]&&'"'===next?(result+='\\"',i++):'"'===str[i]&&"\\"!==prev?result+='\\"':result+=str[i],prev=str[i]??""}return result}(output=(output=(output=result).replace(ESCAPED_PATTERN,(_match,group)=>String.fromCodePoint(parseInt(group.trim(),16)))).replaceAll("\\\n","\\n")))+'"'}try{return JSON.parse(output)}catch(_error){return}}(val)}catch(error){silentCheck||console.warn(`CSS Data error: ${propName}`,error),cssDataCache[propName]=null}}return this._cssDataCache=cssDataCache,cssDataCache[propName]}constructor(...args){super(...args),this._cssDataCache=null,this._computedStyle=null}})),class extends ctor2{static reg(tagName){let registeredClass=window.customElements.get(tagName);if(registeredClass){registeredClass!==this&&console.warn(`Element with tag name "${tagName}" already registered.
5
+ You're trying to override it with another class "${this.name}".
6
+ This is most likely a mistake.
7
+ New element will not be registered.`);return}window.customElements.define(tagName,this)}});class LitBlock extends LitBlockBase{static{this.styleAttrs=[]}constructor(){super(),this.activityType=null,this.init$=(0,CTX.HU)(),this.l10n=(0,l10n.k)(()=>this.sharedCtx),this.debugPrint=(0,createDebugPrinter.W)(()=>this.sharedCtx,this.constructor.name),this._sharedInstancesBag=(0,shared_instances.EC)(()=>this.sharedCtx),new TestModeController(this)}emit(type,payload,options){let eventEmitter=this.has("*eventEmitter")?this.$["*eventEmitter"]:void 0;if(!eventEmitter)return;eventEmitter.emit(type,payload,options);let resolvedPayload="function"==typeof payload?payload():payload;this.telemetryManager.sendEvent({eventType:type,payload:resolvedPayload??void 0})}hasBlockInCtx(callback){for(let block of this.blocksRegistry)if(callback(block))return!0;return!1}connectedCallback(){this.constructor.styleAttrs.forEach(attr=>{this.setAttribute(attr,"")}),super.connectedCallback(),WindowHeightTracker.registerClient(this)}initCallback(){this._addSharedContextInstance("*blocksRegistry",()=>new Set),this._addSharedContextInstance("*pluginManager",sharedInstancesBag=>new PluginManager(sharedInstancesBag)),this._addSharedContextInstance("*eventEmitter",sharedInstancesBag=>new EventEmitter.bk(sharedInstancesBag)),this._addSharedContextInstance("*localeManager",sharedInstancesBag=>new LocaleManager.OZ(sharedInstancesBag)),this._addSharedContextInstance("*modalManager",sharedInstancesBag=>new ModalManager(sharedInstancesBag)),this._addSharedContextInstance("*a11y",()=>new A11y),this._addSharedContextInstance("*clipboard",sharedInstancesBag=>new ClipboardLayer(sharedInstancesBag)),this._addSharedContextInstance("*telemetryManager",sharedInstancesBag=>new TelemetryManager(sharedInstancesBag)),this.sub((0,LocaleManager.PI)("locale-id"),localeId=>{let locale,direction,fromGetter,direction1=(locale=new Intl.Locale(localeId),direction="ltr",(fromGetter=locale.getTextInfo?.().direction)?direction=fromGetter:locale.textInfo?.direction&&(direction=locale.textInfo.direction),direction);this.style.direction="ltr"===direction1?"":direction1,this.requestUpdate()}),this.subConfigValue("testMode",testMode=>{testMode&&this.testId?this.setAttribute("data-testid",this.testId):this.removeAttribute("data-testid")}),this.blocksRegistry.add(this)}get testId(){return window.customElements.getName(this.constructor)}get modalManager(){return this._getSharedContextInstance("*modalManager",!1)}get telemetryManager(){return this._getSharedContextInstance("*telemetryManager")}get localeManager(){return this._getSharedContextInstance("*localeManager")}get a11y(){return this._getSharedContextInstance("*a11y")}get clipboardLayer(){return this._getSharedContextInstance("*clipboard")}get blocksRegistry(){return this._getSharedContextInstance("*blocksRegistry")}get eventEmitter(){return this._getSharedContextInstance("*eventEmitter")}disconnectedCallback(){super.disconnectedCallback(),WindowHeightTracker.unregisterClient(this);let blocksRegistry=this.blocksRegistry;blocksRegistry?.delete(this),blocksRegistry?.size===0&&setTimeout(()=>{this.isConnected||blocksRegistry?.size>0||this.destroyCtxCallback()},0)}destroyCtxCallback(){this._destroySharedContextInstances(),PubSubCompat.G.deleteCtx(this.ctxName)}_getSharedContextInstances(){let key="*sharedContextInstances";if(!this.has(key)||!this.$[key]){let map=new Map;this.add(key,map,!0)}return this.$[key]}_addSharedContextInstance(key,resolver){let instances=this._getSharedContextInstances();if(!instances.has(key)&&(!this.has(key)||!this.$[key])){let instance=resolver(this._sharedInstancesBag);this.add(key,instance,!0),instances.set(key,instance);return}}_destroySharedContextInstances(){let instances=this._getSharedContextInstances();for(let[key,instance]of instances.entries())instance?.destroy?.(),this.pub(key,null);instances.clear()}_getSharedContextInstance(key,isRequired=!0){if(this.has(key)&&this.$[key]||!isRequired)return this.$[key];throw Error(`Unexpected error: context manager for key "${String(key)}" is not available`)}async proxyUrl(url){if(this.cfg.secureDeliveryProxy&&this.cfg.secureDeliveryProxyUrlResolver&&console.warn("Both secureDeliveryProxy and secureDeliveryProxyUrlResolver are set. The secureDeliveryProxyUrlResolver will be used."),this.cfg.secureDeliveryProxyUrlResolver)try{return await this.cfg.secureDeliveryProxyUrlResolver(url,{uuid:(0,cdn_utils.p_)(url),cdnUrlModifiers:(0,cdn_utils._A)(url),fileName:(0,cdn_utils.v6)(url)})}catch(err){return console.error("Failed to resolve secure delivery proxy URL. Falling back to the default URL.",err),this.telemetryManager.sendEventError(err,"secureDeliveryProxyUrlResolver. Failed to resolve secure delivery proxy URL. Falling back to the default URL."),url}return this.cfg.secureDeliveryProxy?(0,template_utils.x)(this.cfg.secureDeliveryProxy,{previewUrl:url},{transform:value=>window.encodeURIComponent(value)}):url}get cfg(){return this._cfgProxy||(this._cfgProxy=new Proxy({},{set:(_obj,key,value)=>{if("string"!=typeof key||!(key in initialConfig.Dz))return!1;let sharedKey=(0,sharedConfigKey.T)(key);return this.has(sharedKey)||this.add(sharedKey,initialConfig.Dz[key]),this.$[sharedKey]=value,!0},get:(_obj,key)=>{let sharedKey=(0,sharedConfigKey.T)(key);return this.has(sharedKey)||this.add(sharedKey,initialConfig.Dz[key]),this.$[sharedKey]}})),this._cfgProxy}subConfigValue(key,callback){let sharedKey=(0,sharedConfigKey.T)(key);return this.has(sharedKey)||this.add(sharedKey,initialConfig.Dz[key]),this.sub(sharedKey,callback)}}},1532(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{z:()=>LitUploaderBlock});var index_browser=__webpack_require__(3074),CTX=__webpack_require__(7992),shared_instances=__webpack_require__(5890);let msToUnixTimestamp=ms=>"number"!=typeof ms?0:Math.floor(ms/1e3);class SecureUploadsManager extends shared_instances.jM{async getSecureToken(){let{secureSignature,secureExpire,secureUploadsSignatureResolver,secureUploadsExpireThreshold}=this._cfg;if((secureSignature||secureExpire)&&secureUploadsSignatureResolver&&console.warn("Both secureSignature/secureExpire and secureUploadsSignatureResolver are set. secureUploadsSignatureResolver will be used."),secureUploadsSignatureResolver){if(!this._secureToken||((secureToken,{threshold})=>{let{secureExpire}=secureToken,nowUnix=msToUnixTimestamp(Date.now()),expireUnix=Number(secureExpire);return nowUnix+msToUnixTimestamp(threshold)>=expireUnix})(this._secureToken,{threshold:secureUploadsExpireThreshold})){this._secureToken?this._debugPrint("Secure signature is expired. Resolving a new one..."):this._debugPrint("Secure signature is not set yet.");try{let result=await secureUploadsSignatureResolver();result?result.secureSignature&&result.secureExpire?(this._debugPrint("Secure signature resolved:",result),this._debugPrint("Secure signature will expire in",new Date(1e3*Number(result.secureExpire)).toISOString()),this._secureToken=result):console.error("Secure signature resolver returned an invalid result:",result):(this._debugPrint("Secure signature resolver returned nothing."),this._secureToken=null)}catch(err){console.error("Secure signature resolving failed. Falling back to the previous one.",err),this._sharedInstancesBag.telemetryManager.sendEventError(err,"secureUploadsSignatureResolver. Secure signature resolving failed. Falling back to the previous one.")}}return this._secureToken}return secureSignature&&secureExpire?(this._debugPrint("Secure signature and expire are set. Using them...",{secureSignature,secureExpire}),{secureSignature,secureExpire}):null}destroy(){super.destroy(),this._secureToken=null}constructor(...args){super(...args),this._secureToken=null}}var EventEmitter=__webpack_require__(9963),debounce=__webpack_require__(4441);let validateMultiple=(collection,api)=>{let total=collection.totalCount,multipleMin=api.cfg.multiple?api.cfg.multipleMin:0,multipleMax=api.cfg.multiple?api.cfg.multipleMax:1;return multipleMin&&total<multipleMin?{type:"TOO_FEW_FILES",message:api.l10n("files-count-limit-error-too-few",{min:multipleMin,max:multipleMax,total}),payload:{total,min:multipleMin,max:multipleMax}}:multipleMax&&total>multipleMax?{type:"TOO_MANY_FILES",message:api.l10n("files-count-limit-error-too-many",{min:multipleMin,max:multipleMax,total}),payload:{total,min:multipleMin,max:multipleMax}}:void 0},validateCollectionUploadError=(collection,api)=>{if(collection.failedCount>0)return{type:"SOME_FILES_HAS_ERRORS",message:api.l10n("some-files-were-not-uploaded")}},validateIsImage=(outputEntry,api)=>{let imagesOnly=api.cfg.imgOnly,isImage=outputEntry.isImage;if(imagesOnly&&!isImage&&(outputEntry.fileInfo||!outputEntry.externalUrl)&&(outputEntry.fileInfo||outputEntry.mimeType))return{type:"NOT_AN_IMAGE",message:api.l10n("images-only-accepted"),payload:{entry:outputEntry}}};var browser_info=__webpack_require__(1633),stringToArray=__webpack_require__(2513);let BASIC_IMAGE_WILDCARD="image/*",BASIC_VIDEO_WILDCARD="video/*",IMAGE_ACCEPT_LIST=browser_info.R5.safariDesktop?[BASIC_IMAGE_WILDCARD]:[BASIC_IMAGE_WILDCARD,"image/heif","image/heif-sequence","image/heic","image/heic-sequence","image/avif","image/avif-sequence",".heif",".heifs",".heic",".heics",".avif",".avifs"],mergeFileTypes=fileTypes=>fileTypes?fileTypes.filter(item=>"string"==typeof item).flatMap(str=>(0,stringToArray.G)(str)):[],matchMimeType=(mimeType,allowedFileTypes)=>allowedFileTypes.some(type=>{if(type.endsWith("*")){let normalizedType=type.replace("*","");return mimeType.startsWith(normalizedType)}return mimeType===type}),validateFileType=(outputEntry,api)=>{let allowedFileTypes=mergeFileTypes([...api.cfg.imgOnly?IMAGE_ACCEPT_LIST:[],api.cfg.accept]);if(!allowedFileTypes.length)return;let mimeType=outputEntry.mimeType,fileName=outputEntry.name;if(!mimeType||!fileName)return;let mimeOk=matchMimeType(mimeType,allowedFileTypes),extOk=allowedFileTypes.some(type=>!!type.startsWith(".")&&fileName.toLowerCase().endsWith(type.toLowerCase()));if(!mimeOk&&!extOk)return{type:"FORBIDDEN_FILE_TYPE",message:api.l10n("file-type-not-allowed"),payload:{entry:outputEntry}}};var getPluralForm=__webpack_require__(9364);let ByteUnitEnum=Object.freeze({AUTO:"auto",BYTE:"byte",KB:"kb",MB:"mb",GB:"gb",TB:"tb",PB:"pb"}),round=number=>Math.ceil(100*number)/100,validateMaxSizeLimit=(outputEntry,api)=>{let maxFileSize=api.cfg.maxLocalFileSizeBytes,fileSize=outputEntry.size;if(maxFileSize&&fileSize&&fileSize>maxFileSize)return{type:"FILE_SIZE_EXCEEDED",message:api.l10n("files-max-size-limit-error",{maxFileSize:((bytes,unit=ByteUnitEnum.AUTO)=>{let isAutoMode=unit===ByteUnitEnum.AUTO;if(unit===ByteUnitEnum.BYTE||isAutoMode&&bytes<1e3){let pluralForm=(0,getPluralForm.Z)("en-US",bytes);return`${bytes} ${"one"===pluralForm?"byte":"bytes"}`}return unit===ByteUnitEnum.KB||isAutoMode&&bytes<1e6?`${round(bytes/1e3)} KB`:unit===ByteUnitEnum.MB||isAutoMode&&bytes<1e9?`${round(bytes/1e6)} MB`:unit===ByteUnitEnum.GB||isAutoMode&&bytes<1e12?`${round(bytes/1e9)} GB`:unit===ByteUnitEnum.TB||isAutoMode&&bytes<1e15?`${round(bytes/1e12)} TB`:`${round(bytes/1e15)} PB`})(maxFileSize)}),payload:{entry:outputEntry}}},validateUploadError=(outputEntry,api)=>{let{internalId}=outputEntry;if(!api._uploadCollection.hasItem(internalId))return;let internalEntry=api._uploadCollection.read(internalId),cause=internalEntry?.getValue("uploadError");if(!cause)return;if(cause instanceof index_browser.oW)return{type:"UPLOAD_ERROR",message:cause.message,payload:{entry:outputEntry,error:cause}};if(cause instanceof index_browser.Dr)return{type:"NETWORK_ERROR",message:cause.message,payload:{entry:outputEntry,error:cause}};let error=cause instanceof Error?cause:Error("Unknown error",{cause});return{type:"UNKNOWN_ERROR",message:error.message,payload:{entry:outputEntry,error}}};var sharedConfigKey=__webpack_require__(1971);let LOG_TEXT_FILE_VALIDATION_FAILED="File validator execution has failed",LOG_TEXT_MISSING_ERROR_MESSAGE="Missing message. We recommend adding message: value.",getValidatorDescriptor=validator=>"function"==typeof validator?{runOn:"change",validator}:validator;class ValidationManager extends shared_instances.jM{get _uploadCollection(){return this._sharedInstancesBag.uploadCollection}constructor(sharedInstancesBag){super(sharedInstancesBag),this._commonFileValidators=[validateIsImage,validateFileType,validateMaxSizeLimit,validateUploadError],this._commonCollectionValidators=[validateMultiple,validateCollectionUploadError],this._queue=new index_browser.op(20),this._runQueueDebounced=(0,debounce.s)(()=>{this._queue.run()},500),this._isDestroyed=!1,this._entryValidationState=new Map;let runAllValidators=(0,debounce.s)(()=>{this.runFileValidators("change"),this.runCollectionValidators()},0);this.addSub(this._ctx.sub((0,sharedConfigKey.T)("maxLocalFileSizeBytes"),runAllValidators)),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("multipleMin"),runAllValidators)),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("multipleMax"),runAllValidators)),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("multiple"),runAllValidators)),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("imgOnly"),runAllValidators)),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("accept"),runAllValidators)),this.addSub(this._ctx.sub((0,sharedConfigKey.T)("validationConcurrency"),concurrency=>{this._queue.concurrency=concurrency}))}runFileValidators(runOn,entryIds){if(!this._isDestroyed)for(let id of entryIds??this._uploadCollection.items()){let entry=this._uploadCollection.read(id);entry&&this._runFileValidatorsForEntry(entry,runOn)}}runCollectionValidators(){if(this._isDestroyed)return;let api=this._sharedInstancesBag.api,collection=api.getOutputCollectionState(),errors=[],collectionValidators=this._cfg.collectionValidators;for(let validator of[...this._commonCollectionValidators,...collectionValidators])try{let error=validator(collection,api);if(!error)continue;error&&(errors.push(this._addCustomTypeToValidationError(error)),error.message||console.warn(LOG_TEXT_MISSING_ERROR_MESSAGE))}catch(error){console.warn("Collection validator execution has failed",error)}this._ctx.pub("*collectionErrors",errors),errors.length>0&&this._sharedInstancesBag.eventEmitter.emit(EventEmitter.Bx.COMMON_UPLOAD_FAILED,()=>api.getOutputCollectionState(),{debounce:!0})}cleanupValidationForEntry(entry){let state=this._entryValidationState.get(entry.uid);state&&(state.abortController?.abort(),this._entryValidationState.delete(entry.uid))}async _runFileValidatorsForEntry(entry,runOn){if(this._isDestroyed)return;let api=this._sharedInstancesBag.api,state=this._getEntryValidationState(entry),previousPromise=state.promise??Promise.resolve(),runPromise=(async()=>{if(this._isDestroyed||(await previousPromise,this._isDestroyed))return;let entryDescriptors=this._getValidatorDescriptorsForEntry(entry,runOn);if(0===entryDescriptors.length||!this._uploadCollection.hasItem(entry.uid))return;entry.setMultipleValues({isQueuedForValidation:!0,isValidationPending:!0});let outputEntry=api.getOutputItem(entry.uid),abortController=new AbortController;state.abortController=abortController;let timeoutMs=this._cfg.validationTimeout,allDescriptors=this._getValidatorDescriptors(),entryValidatorSet=new Set(entryDescriptors.map(d=>d.validator)),errors=[];for(let descriptor of allDescriptors)if(!entryValidatorSet.has(descriptor.validator)){let error=state.lastErrorThrownByValidator.get(descriptor.validator);error&&errors.push(error)}let tasks=entryDescriptors.map(validatorDescriptor=>async()=>{if(this._isDestroyed)return;let timeoutId=setTimeout(()=>{state.skippedValidators.add(validatorDescriptor.validator),abortController.abort(),console.warn("File validator execution has timed out")},timeoutMs);try{let error=await validatorDescriptor.validator(outputEntry,api,{signal:abortController.signal});if(!error||abortController.signal.aborted)return void state.lastErrorThrownByValidator.set(validatorDescriptor.validator,void 0);let normalizedError=this._addCustomTypeToValidationError(error);state.lastErrorThrownByValidator.set(validatorDescriptor.validator,normalizedError),errors.push(normalizedError),error.message||console.warn(LOG_TEXT_MISSING_ERROR_MESSAGE)}catch(error){abortController.signal.aborted||(state.skippedValidators.add(validatorDescriptor.validator),console.warn(LOG_TEXT_FILE_VALIDATION_FAILED,error),this._sharedInstancesBag.telemetryManager.sendEventError(error,`file validator. ${LOG_TEXT_FILE_VALIDATION_FAILED}`))}finally{clearTimeout(timeoutId),"change"!==validatorDescriptor.runOn&&state.skippedValidators.add(validatorDescriptor.validator)}});(this._runQueueDebounced(),await this._queue.add(async()=>{this._isDestroyed||(entry.setValue("isQueuedForValidation",!1),await Promise.all(tasks.map(task=>task())).catch(()=>{}))},{autoRun:!1}),abortController.signal.aborted)?entry.setMultipleValues({isQueuedForValidation:!1,isValidationPending:!1}):entry.setMultipleValues({isValidationPending:!1,isQueuedForValidation:!1,errors})})();state.promise=runPromise;try{await runPromise}finally{state.promise===runPromise&&(state.promise=void 0)}}_addCustomTypeToValidationError(error){return{...error,type:error.type??"CUSTOM_ERROR"}}_getEntryValidationState(entry){let currentState=this._entryValidationState.get(entry.uid);if(currentState)return currentState;let newState={abortController:void 0,skippedValidators:new WeakSet,promise:void 0,lastErrorThrownByValidator:new WeakMap};return this._entryValidationState.set(entry.uid,newState),newState}_getValidatorDescriptors(){let fileValidators=this._cfg.fileValidators;return[...this._commonFileValidators,...fileValidators].map(getValidatorDescriptor)}_getValidatorDescriptorsForEntry(entry,runOn){let state=this._getEntryValidationState(entry);return this._getValidatorDescriptors().filter(descriptor=>!state.skippedValidators.has(descriptor.validator)).filter(descriptor=>descriptor.runOn===runOn)}destroy(){for(let state of(this._isDestroyed=!0,this._runQueueDebounced.cancel(),this._entryValidationState.values()))state.abortController?.abort(),state.promise=void 0;this._entryValidationState.clear()}}var PubSubCompat=__webpack_require__(7560),UID=__webpack_require__(5446);let MSG_NAME="[Typed State] Wrong property name: ";class TypedData{constructor(initialValue){this._ctxId=UID.V.generateFastUid(),this._data=PubSubCompat.G.registerCtx(initialValue,this._ctxId)}get uid(){return this._ctxId}setValue(prop,value){this._data.has(prop)?this._data.read(prop)!==value&&this._data.pub(prop,value):console.warn(`${MSG_NAME}${String(prop)}`)}setMultipleValues(updObj){for(let[prop,value]of Object.entries(updObj))this.setValue(prop,value)}getValue(prop){return this._data.has(prop)||console.warn(`${MSG_NAME}${String(prop)}`),this._data.read(prop)}subscribe(prop,handler){return this._data.sub(prop,handler)}destroy(){PubSubCompat.G.deleteCtx(this._ctxId)}}class TypedCollection{static{this._destroyDelayMs=1e4}constructor(options){this._subsMap=Object.create(null),this._propertyObservers=new Set,this._collectionObservers=new Set,this._items=new Set,this._removed=new Set,this._added=new Set,this._markedToDestroy=new Set,this._initialValue=options.initialValue,this._ctxId=UID.V.generateFastUid(),this._data=PubSubCompat.G.registerCtx({},this._ctxId),this._watchList=options.watchList||[];let changeMap=Object.create(null);this._notifyObservers=(propName,ctxId)=>{this._observeTimeout&&window.clearTimeout(this._observeTimeout),changeMap[propName]||(changeMap[propName]=new Set),changeMap[propName].add(ctxId),this._observeTimeout=window.setTimeout(()=>{0!==Object.keys(changeMap).length&&(this._propertyObservers.forEach(handler=>{handler({...changeMap})}),changeMap=Object.create(null))}),this._scheduleDestroyMarkedItems()},options.handler&&this.observeCollection(options.handler)}_notify(){this._notifyTimeout&&window.clearTimeout(this._notifyTimeout),this._notifyTimeout=window.setTimeout(()=>{let added=new Set(this._added),removed=new Set(this._removed);for(let handler of(this._added.clear(),this._removed.clear(),this._collectionObservers))handler?.([...this._items],added,removed);this._scheduleDestroyMarkedItems()})}_scheduleDestroyMarkedItems(){0!==this._markedToDestroy.size&&(this._destroyTimeout&&window.clearTimeout(this._destroyTimeout),this._destroyTimeout=window.setTimeout(()=>{let marked=[...this._markedToDestroy];for(let item of(this._markedToDestroy.clear(),marked))item.destroy()},TypedCollection._destroyDelayMs))}observeCollection(handler){return this._collectionObservers.add(handler),this._items.size>0&&this._notify(),()=>{this.unobserveCollection(handler)}}unobserveCollection(handler){this._collectionObservers.delete(handler)}add(init){let item=new TypedData(this._initialValue);for(let[prop,value]of Object.entries(init))item.setValue(prop,value);return this._items.add(item.uid),this._notify(),this._data.add(item.uid,item),this._added.add(item),this._watchList.forEach(propName=>{this._subsMap[item.uid]||(this._subsMap[item.uid]=[]),this._subsMap[item.uid]?.push(item.subscribe(propName,()=>{this._notifyObservers(propName,item.uid)}))}),item.uid}hasItem(id){return this._items.has(id)}read(id){return this._data.read(id)??null}readProp(id,propName){let item=this.read(id);if(!item)throw Error(`TypedCollection#readProp: Item with id ${id} not found`);return item.getValue(propName)}publishProp(id,propName,value){let item=this.read(id);if(!item)throw Error(`TypedCollection#publishProp: Item with id ${id} not found`);item.setValue(propName,value)}remove(id){let item=this.read(id);item&&(this._removed.add(item),this._markedToDestroy.add(item)),this._items.delete(id),this._notify(),this._data.pub(id,void 0),this._subsMap[id]?.forEach(sub=>{sub()}),delete this._subsMap[id]}clearAll(){this._items.forEach(id=>{this.remove(id)})}observeProperties(handler){return this._propertyObservers.add(handler),()=>{this.unobserveProperties(handler)}}unobserveProperties(handler){this._propertyObservers.delete(handler)}findItems(checkFn){let result=[];return this._items.forEach(id=>{let item=this.read(id);item&&checkFn(item)&&result.push(id)}),result}items(){return[...this._items]}get size(){return this._items.size}destroy(){for(let item of(this._observeTimeout&&window.clearTimeout(this._observeTimeout),this._notifyTimeout&&window.clearTimeout(this._notifyTimeout),this._destroyTimeout&&window.clearTimeout(this._destroyTimeout),this._markedToDestroy))item.destroy();for(let id of(this._markedToDestroy.clear(),PubSubCompat.G.deleteCtx(this._ctxId),this._propertyObservers=new Set,this._collectionObservers=new Set,Object.keys(this._subsMap)))this._subsMap[id]?.forEach(sub=>{sub()}),delete this._subsMap[id]}}var comma_separated=__webpack_require__(9101),constants=__webpack_require__(5973);let calcCameraModes=cfg=>({isVideoRecordingEnabled:(0,comma_separated.A)(cfg.cameraModes).includes(constants.S.VIDEO),isPhotoEnabled:(0,comma_separated.A)(cfg.cameraModes).includes(constants.S.PHOTO)});var activity_constants=__webpack_require__(7715);let findBlockInCtx=(blocksRegistry,callback)=>{for(let block of blocksRegistry)if(callback(block))return block};var l10n=__webpack_require__(263),initialConfig=__webpack_require__(318);let cdnUrlRegex=RegExp(`^/?(${/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/i.source})(?:/(-/(?:[^/]+/)+)?([^/]*))?$`,"i");var UploadSource=__webpack_require__(5730);let getOutputData=bag=>bag.uploadCollection.items().map(itemId=>bag.api.getOutputItem(itemId));var warnOnce=__webpack_require__(6783);class UploaderPublicApi extends shared_instances.jM{get _uploadCollection(){return this._sharedInstancesBag.uploadCollection}get cfg(){return this._cfg}get l10n(){return this._l10n}removeAllFiles(){this._uploadCollection.clearAll()}getOutputItem(entryId){let ctx=PubSubCompat.G.getCtx(entryId);if(!ctx)throw Error(`UploaderPublicApi#getOutputItem: Entry with ID "${entryId}" not found in the upload collection`);let uploadEntryData=ctx.store,fileInfo=uploadEntryData.fileInfo,status=uploadEntryData.isRemoved?"removed":uploadEntryData.errors.length>0?"failed":uploadEntryData.fileInfo?"success":uploadEntryData.isUploading?"uploading":"idle";return{uuid:fileInfo?.uuid??uploadEntryData.uuid??null,internalId:entryId,name:fileInfo?.originalFilename??uploadEntryData.fileName,size:fileInfo?.size??uploadEntryData.fileSize,isImage:fileInfo?.isImage??uploadEntryData.isImage,mimeType:fileInfo?.mimeType??uploadEntryData.mimeType,file:uploadEntryData.file,externalUrl:uploadEntryData.externalUrl,cdnUrlModifiers:uploadEntryData.cdnUrlModifiers,cdnUrl:uploadEntryData.cdnUrl??fileInfo?.cdnUrl??null,fullPath:uploadEntryData.fullPath,uploadProgress:uploadEntryData.uploadProgress,fileInfo:fileInfo??null,metadata:uploadEntryData.metadata??fileInfo?.metadata??null,isSuccess:"success"===status,isUploading:"uploading"===status,isFailed:"failed"===status,isRemoved:"removed"===status,isValidationPending:uploadEntryData.isValidationPending,errors:uploadEntryData.errors,status,source:uploadEntryData?.source}}getOutputCollectionState(){return function(bag){let isAsync,state={},ctx=bag.ctx,withAssert=(isAsync=!1,setTimeout(()=>{isAsync=!0},0),fn=>(...args)=>(isAsync&&(0,warnOnce.m)("You're trying to access the OutputCollectionState asynchronously. In this case, the data you retrieve will be newer than it was when the OutputCollectionState was created or when the event was dispatched. If you want to retain the state at a specific moment in time, you should use the spread operator like this: `{...outputCollectionState}` or `{...e.detail}`"),fn(...args)));for(let[key,value]of Object.entries({progress:()=>ctx.read("*commonProgress"),errors:()=>ctx.read("*collectionErrors"),group:()=>ctx.read("*groupInfo"),totalCount:()=>bag.uploadCollection.size,failedCount:()=>state.failedEntries.length,successCount:()=>state.successEntries.length,uploadingCount:()=>state.uploadingEntries.length,status:()=>state.isFailed?"failed":state.isUploading?"uploading":state.isSuccess?"success":"idle",isSuccess:()=>state.allEntries.length>0&&0===state.errors.length&&state.successEntries.length===state.allEntries.length,isUploading:()=>state.allEntries.some(entry=>"uploading"===entry.status),isFailed:()=>state.errors.length>0||state.failedEntries.length>0,allEntries:()=>getOutputData(bag),successEntries:()=>state.allEntries.filter(entry=>"success"===entry.status),failedEntries:()=>state.allEntries.filter(entry=>"failed"===entry.status),uploadingEntries:()=>state.allEntries.filter(entry=>"uploading"===entry.status),idleEntries:()=>state.allEntries.filter(entry=>"idle"===entry.status)}))Object.defineProperty(state,key,{get:function(fn){let cache=new Map;return(...args)=>{let key=JSON.stringify(args);if(cache.has(key))return cache.get(key);let result=fn(...args);return cache.set(key,result),result}}(withAssert(value)),enumerable:!0});return state}(this._sharedInstancesBag)}get _sourceList(){let list=[];return this.cfg.sourceList&&(list=(0,stringToArray.G)(this.cfg.sourceList)),list}constructor(...args){super(...args),this._l10n=(0,l10n.k)(()=>this._ctx),this.addFileFromUrl=(url,{silent,fileName,source}={})=>{let internalId=this._uploadCollection.add({externalUrl:url,fileName:fileName??null,silent:silent??!1,source:source??UploadSource.pc.API});return this.getOutputItem(internalId)},this.addFileFromUuid=(uuid,{silent,fileName,source}={})=>{let internalId=this._uploadCollection.add({uuid,fileName:fileName??null,silent:silent??!1,source:source??UploadSource.pc.API});return this.getOutputItem(internalId)},this.addFileFromCdnUrl=(cdnUrl,{silent,fileName,source}={})=>{let parsedCdnUrl=(({url,cdnBase})=>{let cdnBaseUrlObj=new URL(cdnBase),fallbackCdnBaseUrlObj=new URL(initialConfig.Tw),urlObj=new URL(url);if(cdnBaseUrlObj.host!==urlObj.host&&fallbackCdnBaseUrlObj.host!==urlObj.host)return null;let match=cdnUrlRegex.exec(urlObj.pathname);if(!match)return null;let[,uuid,cdnUrlModifiers,filename]=match;return uuid?{uuid,cdnUrlModifiers:cdnUrlModifiers||"",filename:filename||null}:null})({url:cdnUrl,cdnBase:this.cfg.cdnCname});if(!parsedCdnUrl)throw Error("Invalid CDN URL");let internalId=this._uploadCollection.add({uuid:parsedCdnUrl.uuid,cdnUrl,cdnUrlModifiers:parsedCdnUrl.cdnUrlModifiers,fileName:fileName??parsedCdnUrl.filename??null,silent:silent??!1,source:source??UploadSource.pc.API});return this.getOutputItem(internalId)},this.addFileFromObject=(file,{silent,fileName,source,fullPath}={})=>{let type,internalId=this._uploadCollection.add({file,isImage:!!(type=file?.type)&&matchMimeType(type,IMAGE_ACCEPT_LIST),mimeType:file.type,fileName:fileName??file.name,fileSize:file.size,silent:silent??!1,source:source??UploadSource.pc.API,fullPath:fullPath??null});return this.getOutputItem(internalId)},this.removeFileByInternalId=internalId=>{if(!this._uploadCollection.read(internalId))throw Error(`File with internalId ${internalId} not found`);this._uploadCollection.remove(internalId)},this.uploadAll=()=>{let itemsToUpload=this._uploadCollection.items().filter(id=>{let entry=this._uploadCollection.read(id);return!!entry&&!entry.getValue("isRemoved")&&!entry.getValue("isUploading")&&!entry.getValue("fileInfo")&&0===entry.getValue("errors").length&&!entry.getValue("isValidationPending")&&!entry.getValue("isQueuedForValidation")});0!==itemsToUpload.length&&(this._ctx.pub("*uploadTrigger",new Set(itemsToUpload)),this._sharedInstancesBag.eventEmitter.emit(EventEmitter.Bx.COMMON_UPLOAD_START,this.getOutputCollectionState()))},this.openSystemDialog=(options={})=>{let accept=(0,comma_separated.L)(mergeFileTypes([this.cfg.accept??"",...this.cfg.imgOnly?IMAGE_ACCEPT_LIST:[]])),INPUT_ATTR_NAME="uploadcare-file-input",fileInput=document.createElement("input");fileInput.setAttribute(INPUT_ATTR_NAME,"");var styleMap={opacity:0,height:0,width:0,visibility:"hidden",position:"absolute",top:0,left:0};for(let prop in styleMap)prop.includes("-")?fileInput.style.setProperty(prop,String(styleMap[prop])):fileInput.style[prop]=String(styleMap[prop]);if(fileInput.type="file",fileInput.multiple=this.cfg.multiple,options.captureCamera){fileInput.capture=this.cfg.cameraCapture;let{isPhotoEnabled,isVideoRecordingEnabled}=calcCameraModes(this.cfg);options.modeCamera===constants.S.PHOTO&&isPhotoEnabled?fileInput.accept=BASIC_IMAGE_WILDCARD:options.modeCamera===constants.S.VIDEO&&isVideoRecordingEnabled?fileInput.accept=BASIC_VIDEO_WILDCARD:fileInput.accept=[BASIC_IMAGE_WILDCARD,isVideoRecordingEnabled&&BASIC_VIDEO_WILDCARD].filter(Boolean).join(",")}else fileInput.accept=accept;fileInput.addEventListener("change",()=>{fileInput.files&&([...fileInput.files].forEach(file=>{this.addFileFromObject(file,{source:options.captureCamera?UploadSource.pc.CAMERA:UploadSource.pc.LOCAL})}),this._ctx.pub("*currentActivity",activity_constants.g.UPLOAD_LIST),this._sharedInstancesBag.modalManager?.open(activity_constants.g.UPLOAD_LIST),fileInput.remove())},{once:!0}),document.querySelectorAll(`[${INPUT_ATTR_NAME}]`).forEach(el=>{el.remove()}),document.body.appendChild(fileInput),fileInput.dispatchEvent(new MouseEvent("click"))},this.initFlow=(force=!1)=>{if(this._uploadCollection.size>0&&!force)this._ctx.pub("*currentActivity",activity_constants.g.UPLOAD_LIST),this._sharedInstancesBag.modalManager?.open(activity_constants.g.UPLOAD_LIST);else if(this._sourceList?.length===1){let srcKey=this._sourceList[0];if("local"===srcKey){this._ctx.pub("*currentActivity",activity_constants.g.UPLOAD_LIST),this.openSystemDialog();return}if("camera"===srcKey&&browser_info.wN.htmlMediaCapture){let{isPhotoEnabled,isVideoRecordingEnabled}=calcCameraModes(this.cfg);if(isPhotoEnabled&&isVideoRecordingEnabled)return void this._ctx.pub("*currentActivity",activity_constants.g.START_FROM);if(isPhotoEnabled||isVideoRecordingEnabled)return void this.openSystemDialog({captureCamera:!0,modeCamera:isPhotoEnabled?constants.S.PHOTO:constants.S.VIDEO});this.openSystemDialog({captureCamera:!0,modeCamera:constants.S.PHOTO})}setTimeout(()=>{if(srcKey!==this._sourceList[0])return;let sourceBtnBlock=findBlockInCtx(this._sharedInstancesBag.blocksRegistry,block=>"type"in block&&block.type===srcKey);sourceBtnBlock?.activate()},0),this._ctx.read("*currentActivity")&&this._sharedInstancesBag.modalManager?.open(this._ctx.read("*currentActivity"))}else this._ctx.pub("*currentActivity",activity_constants.g.START_FROM),this._sharedInstancesBag.modalManager?.open(activity_constants.g.START_FROM)},this.doneFlow=()=>{let activityBlock=findBlockInCtx(this._sharedInstancesBag.blocksRegistry,b=>"doneActivity"in b);activityBlock&&(this._ctx.pub("*currentActivity",activityBlock.doneActivity),this._ctx.pub("*history",activityBlock.doneActivity?[activityBlock.doneActivity]:[]),this._ctx.read("*currentActivity")||this._sharedInstancesBag.modalManager?.closeAll())},this.setCurrentActivity=(activityType,...params)=>{setTimeout(()=>{if(((blocksRegistry,callback)=>{for(let block of blocksRegistry)if(callback(block))return!0;return!1})(this._sharedInstancesBag.blocksRegistry,b=>b.activityType===activityType)){this._ctx.pub("*currentActivityParams",params[0]??{}),this._ctx.pub("*currentActivity",activityType);return}console.warn(`Activity type "${activityType}" not found in the context`)})},this.getCurrentActivity=()=>this._ctx.read("*currentActivity"),this.setModalState=opened=>{setTimeout(()=>{opened&&!this._ctx.read("*currentActivity")?console.warn('Can\'t open modal without current activity. Please use "setCurrentActivity" method first.'):opened?this._sharedInstancesBag.modalManager?.open(this._ctx.read("*currentActivity")):(this._sharedInstancesBag.modalManager?.close(this._ctx.read("*currentActivity")),this._ctx.pub("*currentActivity",null))})}}}let initialUploadEntryData={file:null,externalUrl:null,fileName:null,fileSize:null,lastModified:Date.now(),uploadProgress:0,uuid:null,isImage:!1,mimeType:null,ctxName:null,cdnUrl:null,cdnUrlModifiers:null,fileInfo:null,isUploading:!1,abortController:null,thumbUrl:null,silent:!1,source:null,fullPath:null,metadata:null,errors:[],uploadError:null,isRemoved:!1,isQueuedForUploading:!1,isValidationPending:!1,isQueuedForValidation:!1};var crop_utils=__webpack_require__(8996),parseCropPreset=__webpack_require__(5342),cdn_utils=__webpack_require__(6339),env=__webpack_require__(5704);function customUserAgent(options){return(0,index_browser.$t)({...options,libraryName:env.r,libraryVersion:env.i})}var LitActivityBlock=__webpack_require__(5923);class LitUploaderBlock extends LitActivityBlock.S{get _hasCtxOwner(){return this.hasBlockInCtx(block=>block instanceof LitUploaderBlock&&block._isCtxOwner&&block.isConnected&&block!==this)}initCallback(){super.initCallback(),this._addSharedContextInstance("*uploadCollection",()=>new TypedCollection({initialValue:initialUploadEntryData,watchList:["uploadProgress","uploadError","fileInfo","errors","cdnUrl","isUploading","isValidationPending"]})),this._addSharedContextInstance("*secureUploadsManager",sharedInstancesBag=>new SecureUploadsManager(sharedInstancesBag)),this._addSharedContextInstance("*validationManager",sharedInstancesBag=>new ValidationManager(sharedInstancesBag)),this._addSharedContextInstance("*publicApi",sharedInstancesBag=>new UploaderPublicApi(sharedInstancesBag)),!this._hasCtxOwner&&this.couldBeCtxOwner&&this._initCtxOwner()}getAPI(){return this.api}get validationManager(){return this._getSharedContextInstance("*validationManager")}get api(){return this._getSharedContextInstance("*publicApi")}get uploadCollection(){return this._getSharedContextInstance("*uploadCollection")}get secureUploadsManager(){return this._getSharedContextInstance("*secureUploadsManager")}disconnectedCallback(){super.disconnectedCallback(),this._isCtxOwner&&this._unobserveUploadCollection(),this._flushOutputItems.cancel()}connectedCallback(){super.connectedCallback(),this._isCtxOwner&&this._observeUploadCollection()}_initCtxOwner(){this._isCtxOwner=!0,this._observeUploadCollection(),this.subConfigValue("maxConcurrentRequests",value=>{this.$["*uploadQueue"].concurrency=Number(value)||1})}_observeUploadCollection(){this._unobserveUploadCollection(),this._unobserveCollection=this.uploadCollection.observeCollection(this._handleCollectionUpdate),this._unobserveCollectionProperties=this.uploadCollection.observeProperties(this._handleCollectionPropertiesUpdate)}_unobserveUploadCollection(){this._unobserveCollectionProperties?.(),this._unobserveCollection?.(),this._unobserveCollectionProperties=void 0,this._unobserveCollection=void 0}async _createGroup(collectionState){let uploadClientOptions=await this.getUploadClientOptions(),uuidList=collectionState.allEntries.map(entry=>entry.uuid+(entry.cdnUrlModifiers?`/${entry.cdnUrlModifiers}`:"")),abortController=new AbortController,resp=await (0,index_browser.fB)(uuidList,{...uploadClientOptions,signal:abortController.signal});if(this.$["*collectionState"]!==collectionState)return void abortController.abort();this.$["*groupInfo"]=resp;let collectionStateWithGroup=this.api.getOutputCollectionState();this.emit(EventEmitter.Bx.GROUP_CREATED,collectionStateWithGroup),this.emit(EventEmitter.Bx.CHANGE,()=>this.api.getOutputCollectionState(),{debounce:!0}),this.$["*collectionState"]=collectionStateWithGroup}_openCloudImageEditor(){let[entry]=this.uploadCollection.findItems(entry=>!!entry.getValue("fileInfo")&&entry.getValue("isImage")).map(id=>this.uploadCollection.read(id));entry&&1===this.uploadCollection.size&&this.cfg.useCloudImageEditor&&this.hasBlockInCtx(block=>block.activityType===LitActivityBlock.S.activities.CLOUD_IMG_EDIT)&&(this.$["*currentActivityParams"]={internalId:entry.uid},this.$["*currentActivity"]=LitActivityBlock.S.activities.CLOUD_IMG_EDIT,this.modalManager?.open(LitActivityBlock.S.activities.CLOUD_IMG_EDIT))}_setInitialCrop(){let cropPreset=(0,parseCropPreset.j)(this.cfg.cropPreset);if(cropPreset){let[aspectRatioPreset]=cropPreset;for(let entry of this.uploadCollection.findItems(entry=>!!entry.getValue("fileInfo")&&entry.getValue("isImage")&&!entry.getValue("cdnUrlModifiers")?.includes("/crop/")).map(id=>this.uploadCollection.read(id)).filter(Boolean)){let fileInfo=entry.getValue("fileInfo");if(!fileInfo||!fileInfo.imageInfo){console.warn("Failed to get image info for entry",entry.uid);continue}let{width,height}=fileInfo.imageInfo,expectedAspectRatio="number"==typeof aspectRatioPreset?.width&&"number"==typeof aspectRatioPreset?.height&&aspectRatioPreset.width>0&&aspectRatioPreset.height>0?aspectRatioPreset.width/aspectRatioPreset.height:1,crop=(0,crop_utils.u3)(width,height,expectedAspectRatio),cdnUrlModifiers=(0,cdn_utils.$z)(`crop/${crop.width}x${crop.height}/${crop.x},${crop.y}`,"preview"),cdnUrl=entry.getValue("cdnUrl");if(!cdnUrl){console.warn("Failed to get cdnUrl for entry",entry.uid);continue}entry.setMultipleValues({cdnUrlModifiers,cdnUrl:(0,cdn_utils.LN)(cdnUrl,cdnUrlModifiers)}),1===this.uploadCollection.size&&this.cfg.useCloudImageEditor&&this.hasBlockInCtx(block=>block.activityType===LitActivityBlock.S.activities.CLOUD_IMG_EDIT)&&(this.$["*currentActivityParams"]={internalId:entry.uid},this.$["*currentActivity"]=LitActivityBlock.S.activities.CLOUD_IMG_EDIT,this.modalManager?.open(LitActivityBlock.S.activities.CLOUD_IMG_EDIT))}}}async getMetadataFor(entryId){let configValue=this.cfg.metadata||void 0;if("function"==typeof configValue){let outputFileEntry=this.api.getOutputItem(entryId);return await configValue(outputFileEntry)}return configValue}async getUploadClientOptions(){let secureToken=await this.secureUploadsManager.getSecureToken().catch(()=>null);return{store:this.cfg.store,publicKey:this.cfg.pubkey,baseCDN:this.cfg.cdnCname,baseURL:this.cfg.baseUrl,userAgent:customUserAgent,integration:this.cfg.userAgentIntegration,secureSignature:secureToken?.secureSignature,secureExpire:secureToken?.secureExpire,retryThrottledRequestMaxTimes:this.cfg.retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes:this.cfg.retryNetworkErrorMaxTimes,multipartMinFileSize:this.cfg.multipartMinFileSize,multipartChunkSize:this.cfg.multipartChunkSize,maxConcurrentRequests:this.cfg.multipartMaxConcurrentRequests,multipartMaxAttempts:this.cfg.multipartMaxAttempts,checkForUrlDuplicates:!!this.cfg.checkForUrlDuplicates,saveUrlForRecurrentUploads:!!this.cfg.saveUrlForRecurrentUploads}}getOutputData(){return getOutputData(this._sharedInstancesBag)}constructor(...args){super(...args),this.couldBeCtxOwner=!1,this._isCtxOwner=!1,this.init$=(0,CTX.lu)(this),this._flushOutputItems=(0,debounce.s)(async()=>{if(this.getOutputData().length!==this.uploadCollection.size)return;let collectionState=this.api.getOutputCollectionState();this.$["*collectionState"]=collectionState,this.emit(EventEmitter.Bx.CHANGE,()=>this.api.getOutputCollectionState(),{debounce:!0}),this.cfg.groupOutput&&collectionState.totalCount>0&&"success"===collectionState.status&&this._createGroup(collectionState)},300),this._handleCollectionUpdate=(entries,added,removed)=>{if(this.isConnected){for(let entry of((added.size||removed.size)&&(this.$["*groupInfo"]=null),this.validationManager.runFileValidators("add",[...added].map(e=>e.uid)),added))entry.getValue("silent")||this.emit(EventEmitter.Bx.FILE_ADDED,this.api.getOutputItem(entry.uid));for(let entry of(this.validationManager.runCollectionValidators(),removed)){this.$["*uploadTrigger"].delete(entry.uid),this.validationManager.cleanupValidationForEntry(entry),entry.getValue("abortController")?.abort(),entry.setMultipleValues({isRemoved:!0,abortController:null,isUploading:!1,uploadProgress:0});let thumbUrl=entry?.getValue("thumbUrl");thumbUrl&&URL.revokeObjectURL(thumbUrl),this.emit(EventEmitter.Bx.FILE_REMOVED,this.api.getOutputItem(entry.uid))}this.$["*uploadList"]=entries.map(uid=>({uid})),this._flushCommonUploadProgress(),this._flushOutputItems()}},this._handleCollectionPropertiesUpdate=changeMap=>{if(!this.isConnected)return;this._flushOutputItems();let uploadCollection=this.uploadCollection,entriesToRunValidation=[...new Set(Object.entries(changeMap).filter(([key])=>["uploadError","fileInfo","cdnUrl","cdnUrlModifiers"].includes(key)).flatMap(([,ids])=>[...ids]))];if(entriesToRunValidation.length>0&&setTimeout(()=>{if(!this.isConnected)return;let entriesToRunOnUpload=entriesToRunValidation.filter(entryId=>changeMap.fileInfo?.has(entryId)&&!!PubSubCompat.G.getCtx(entryId)?.store.fileInfo);entriesToRunOnUpload.length>0&&this.validationManager.runFileValidators("upload",entriesToRunOnUpload),this.validationManager.runFileValidators("change",entriesToRunValidation)}),changeMap.uploadProgress){for(let entryId of changeMap.uploadProgress){let ctx=PubSubCompat.G.getCtx(entryId);if(!ctx)continue;let{isUploading,silent}=ctx.store;isUploading&&!silent&&this.emit(EventEmitter.Bx.FILE_UPLOAD_PROGRESS,this.api.getOutputItem(entryId))}this._flushCommonUploadProgress()}if(changeMap.isUploading)for(let entryId of changeMap.isUploading){let ctx=PubSubCompat.G.getCtx(entryId);if(!ctx)continue;let{isUploading,silent}=ctx.store;isUploading&&!silent&&this.emit(EventEmitter.Bx.FILE_UPLOAD_START,this.api.getOutputItem(entryId))}if(changeMap.fileInfo){for(let entryId of changeMap.fileInfo){let ctx=PubSubCompat.G.getCtx(entryId);if(!ctx)continue;let{fileInfo,silent}=ctx.store;fileInfo&&!silent&&this.emit(EventEmitter.Bx.FILE_UPLOAD_SUCCESS,this.api.getOutputItem(entryId))}this.cfg.cropPreset&&this._setInitialCrop(),this.cfg.cloudImageEditorAutoOpen&&this._openCloudImageEditor()}if(changeMap.errors){for(let entryId of(this.validationManager.runCollectionValidators(),changeMap.errors)){let ctx=PubSubCompat.G.getCtx(entryId);if(!ctx)continue;let{errors}=ctx.store;errors.length>0&&(this.emit(EventEmitter.Bx.FILE_UPLOAD_FAILED,this.api.getOutputItem(entryId)),this.emit(EventEmitter.Bx.COMMON_UPLOAD_FAILED,()=>this.api.getOutputCollectionState(),{debounce:!0}))}let loadedItems=uploadCollection.findItems(entry=>!!entry.getValue("fileInfo")),errorItems=uploadCollection.findItems(entry=>entry.getValue("errors").length>0);uploadCollection.size>0&&0===errorItems.length&&uploadCollection.size===loadedItems.length&&0===this.$["*collectionErrors"].length&&this.emit(EventEmitter.Bx.COMMON_UPLOAD_SUCCESS,this.api.getOutputCollectionState())}changeMap.cdnUrl&&([...changeMap.cdnUrl].filter(uid=>!!this.uploadCollection.read(uid)?.getValue("cdnUrl")).forEach(uid=>{this.emit(EventEmitter.Bx.FILE_URL_CHANGED,this.api.getOutputItem(uid))}),this.$["*groupInfo"]=null)},this._flushCommonUploadProgress=()=>{let commonProgress=0,items=[...this.$["*uploadTrigger"]].filter(id=>!!this.uploadCollection.read(id));items.forEach(id=>{let uploadProgress=this.uploadCollection.readProp(id,"uploadProgress");"number"==typeof uploadProgress&&(commonProgress+=uploadProgress)});let progress=items.length?Math.round(commonProgress/items.length):0;this.$["*commonProgress"]!==progress&&(this.$["*commonProgress"]=progress,this.emit(EventEmitter.Bx.COMMON_UPLOAD_PROGRESS,this.api.getOutputCollectionState()))}}}LitUploaderBlock.extSrcList=Object.freeze({...UploadSource.y5}),LitUploaderBlock.sourceTypes=Object.freeze({...UploadSource.pc})},7560(__unused_rspack_module,__webpack_exports__,__webpack_require__){function listenKeys($store,keys,listener){let keysSet=new Set(keys).add(void 0);return $store.listen((value,oldValue,changed)=>{keysSet.has(changed)&&listener(value,oldValue,changed)})}__webpack_require__.d(__webpack_exports__,{G:()=>PubSub});let listenerQueue=[],lqIndex=0,epoch=0;class PubSub{static{this._contexts=new Map}constructor(_ctxId,store){this._ctxId=_ctxId,this._store=store}get id(){return this._ctxId}pub(key,value){key in this._store.get()||console.warn(`PubSub#pub: Key "${String(key)}" not found`),this._store.setKey(key,value)}sub(key,callback,init=!0){return(init?function($store,keys,listener){let unbind=listenKeys($store,keys,listener);return listener($store.value),unbind}:listenKeys)(this._store,[key],values=>{callback(values[key])})}read(key){return key in this._store.get()||console.warn(`PubSub#read: Key "${String(key)}" not found`),this._store.get()[key]}add(key,value,rewrite=!1){key in this._store.get()&&!rewrite||this._store.setKey(key,value)}has(key){return key in this._store.get()}get store(){return this._store.get()}static registerCtx(initialValue,ctxId){if(PubSub._contexts.has(ctxId))throw Error(`PubSub: Context with id "${ctxId}" already exists`);let store=((initial={})=>{let listeners,$atom,$map=(listeners=[],$atom={get:()=>($atom.lc||$atom.listen(()=>{})(),$atom.value),lc:0,listen:listener=>($atom.lc=listeners.push(listener),()=>{for(let i=lqIndex+4;i<listenerQueue.length;)listenerQueue[i]===listener?listenerQueue.splice(i,4):i+=4;let index=listeners.indexOf(listener);~index&&(listeners.splice(index,1),--$atom.lc||$atom.off())}),notify(oldValue,changedKey){epoch++;let runListenerQueue=!listenerQueue.length;for(let listener of listeners)listenerQueue.push(listener,$atom.value,oldValue,changedKey);if(runListenerQueue){for(lqIndex=0;lqIndex<listenerQueue.length;lqIndex+=4)listenerQueue[lqIndex](listenerQueue[lqIndex+1],listenerQueue[lqIndex+2],listenerQueue[lqIndex+3]);listenerQueue.length=0}},off(){},set(newValue){let oldValue=$atom.value;oldValue!==newValue&&($atom.value=newValue,$atom.notify(oldValue))},subscribe(listener){let unbind=$atom.listen(listener);return listener($atom.value),unbind},value:initial});return $map.setKey=function(key,value){let oldMap=$map.value;void 0===value&&key in $map.value?($map.value={...$map.value},delete $map.value[key],$map.notify(oldMap,key)):$map.value[key]!==value&&($map.value={...$map.value,[key]:value},$map.notify(oldMap,key))},$map})(initialValue);return PubSub._contexts.set(ctxId,store),new PubSub(ctxId,store)}static deleteCtx(ctxId){PubSub._contexts.delete(ctxId)}static getCtx(ctxId){let store=PubSub._contexts.get(ctxId);return store?new PubSub(ctxId,store):null}static hasCtx(ctxId){return PubSub._contexts.has(ctxId)}}},7715(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{g:()=>ACTIVITY_TYPES});let ACTIVITY_TYPES=Object.freeze({START_FROM:"start-from",CAMERA:"camera",UPLOAD_LIST:"upload-list",URL:"url",CLOUD_IMG_EDIT:"cloud-image-edit",EXTERNAL:"external"})},255(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{W:()=>createDebugPrinter});var _abstract_sharedConfigKey__rspack_import_0=__webpack_require__(1971);let createDebugPrinter=(getCtx,scope)=>(...args)=>{let ctx=getCtx();if(!ctx.read((0,_abstract_sharedConfigKey__rspack_import_0.T)("debug")))return;let consoleArgs=args;"function"==typeof args?.[0]&&(consoleArgs=(0,args[0])());let prefixes=[ctx.id,scope].filter(Boolean);console.log(`[${prefixes.join("][")}]`,...consoleArgs)}},263(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{k:()=>createL10n});var _abstract_managers_LocaleManager__rspack_import_1=__webpack_require__(2827),_utils_getPluralForm__rspack_import_0=__webpack_require__(9364),_utils_template_utils__rspack_import_2=__webpack_require__(664);let createL10n=getCtx=>{let getL10n,pluralizer=(getL10n=()=>l10n,(key,count)=>{let l10n=getL10n(),locale=l10n("locale-id")||"en",pluralForm=(0,_utils_getPluralForm__rspack_import_0.Z)(locale,count);return l10n(`${key}__${pluralForm}`)}),l10n=(str,variables={})=>{if(!str)return"";let template=getCtx().read((0,_abstract_managers_LocaleManager__rspack_import_1.PI)(str))||str;for(let pluralObject of(0,_utils_template_utils__rspack_import_2.Q)(template))variables[pluralObject.variable]=pluralizer(pluralObject.pluralKey,Number(variables[pluralObject.countVariable]));return(0,_utils_template_utils__rspack_import_2.x)(template,variables)};return l10n}},5890(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{EC:()=>createSharedInstancesBag,jM:()=>SharedInstance});var _abstract_sharedConfigKey__rspack_import_1=__webpack_require__(1971),_blocks_Config_initialConfig__rspack_import_2=__webpack_require__(318),_createDebugPrinter__rspack_import_0=__webpack_require__(255);class SharedInstance{constructor(sharedInstancesBag){this._subscriptions=new Set,this._cfgProxy=null,this._debugPrint=(0,_createDebugPrinter__rspack_import_0.W)(()=>this._sharedInstancesBag.ctx,this.constructor.name),this._sharedInstancesBag=sharedInstancesBag,this._ctx=sharedInstancesBag.ctx}addSub(unsub){this._subscriptions.add(unsub)}get _cfg(){return this._cfgProxy||(this._cfgProxy=new Proxy({},{set:()=>{throw Error("SharedInstance cfg proxy is read-only")},get:(_obj,key)=>{if("string"!=typeof key)return;let sharedKey=(0,_abstract_sharedConfigKey__rspack_import_1.T)(key);return this._sharedInstancesBag.ctx.has(sharedKey)?this._sharedInstancesBag.ctx.read(sharedKey):_blocks_Config_initialConfig__rspack_import_2.Dz[key]}})),this._cfgProxy}destroy(){for(let unsub of this._subscriptions)try{unsub()}catch{}this._subscriptions.clear()}}let instanceKeyMap={modalManager:"*modalManager",pluginManager:"*pluginManager",telemetryManager:"*telemetryManager",localeManager:"*localeManager",a11y:"*a11y",clipboard:"*clipboard",blocksRegistry:"*blocksRegistry",eventEmitter:"*eventEmitter",uploadCollection:"*uploadCollection",secureUploadsManager:"*secureUploadsManager",api:"*publicApi",validationManager:"*validationManager"},getSharedInstance=(ctx,key,isRequired=!0)=>{let hasKey=ctx.has(key),value=hasKey?ctx.read(key):null;if(hasKey&&value||!isRequired)return value;throw Error(`Unexpected error: shared instance for key "${String(key)}" is not available`)},createSharedInstancesBag=getCtx=>({get ctx(){return getCtx()},get modalManager(){return getSharedInstance(getCtx(),"*modalManager",!1)},get pluginManager(){return getSharedInstance(getCtx(),"*pluginManager")},get telemetryManager(){return getSharedInstance(getCtx(),"*telemetryManager")},get localeManager(){return getSharedInstance(getCtx(),"*localeManager")},get a11y(){return getSharedInstance(getCtx(),"*a11y")},get blocksRegistry(){return getSharedInstance(getCtx(),"*blocksRegistry")},get eventEmitter(){return getSharedInstance(getCtx(),"*eventEmitter")},get uploadCollection(){return getSharedInstance(getCtx(),"*uploadCollection")},get secureUploadsManager(){return getSharedInstance(getCtx(),"*secureUploadsManager",!1)},get api(){return getSharedInstance(getCtx(),"*publicApi")},get validationManager(){return getSharedInstance(getCtx(),"*validationManager")},when(name,callback){let stateKey=instanceKeyMap[name],ctx=getCtx(),existingInstance=ctx.has(stateKey)?ctx.read(stateKey):void 0;if(existingInstance)return callback(existingInstance),()=>{};let unsub=ctx.sub(stateKey,instance=>{instance&&(callback(instance),unsub())});return unsub}})},4020(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{cameraPlugin:()=>cameraPlugin});var defineComponents=__webpack_require__(3962),lit=__webpack_require__(7825),lit_decorators=__webpack_require__(7093),LitActivityBlock=__webpack_require__(5923),LitUploaderBlock=__webpack_require__(1532),comma_separated=__webpack_require__(9101),debounce=__webpack_require__(4441),stringToArray=__webpack_require__(2513),UploadSource=__webpack_require__(5730),EventEmitter=__webpack_require__(9963),ref=__webpack_require__(133),style_map=__webpack_require__(5350),constants=__webpack_require__(5973);function _ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}let DEFAULT_VIDEO_CONFIG={width:{ideal:1920},height:{ideal:1080},frameRate:{ideal:30}},DEFAULT_PERMISSIONS=["camera","microphone"];function formatTime(time){let minutes=Math.floor(time/60).toString().padStart(2,"0"),seconds=Math.floor(time%60).toString().padStart(2,"0");return`${minutes}:${seconds}`}let DEFAULT_PICTURE_FORMAT="image/jpeg",DEFAULT_VIDEO_FORMAT="video/webm";class CameraSource extends LitUploaderBlock.z{_attachPreviewListeners(videoElement){this._detachPreviewListeners(videoElement),videoElement.addEventListener("play",this._handlePreviewPlay),videoElement.addEventListener("pause",this._handlePreviewPause)}_detachPreviewListeners(videoElement){videoElement?.removeEventListener("play",this._handlePreviewPlay),videoElement?.removeEventListener("pause",this._handlePreviewPause)}_setVideoSource(stream){this._currentVideoSource!==stream&&(this._currentVideoSource=stream,this._applyVideoSource())}_applyVideoSource(){let videoElement=this._videoRef.value;if(!videoElement)return;let nextSource=this._currentVideoSource??null;videoElement.srcObject!==nextSource&&(videoElement.srcObject=nextSource)}_shot(){if(this._setCameraState("shot"),this._canvas=document.createElement("canvas"),this._ctx=this._canvas.getContext("2d"),!this._ctx)throw Error("Failed to get canvas context");let videoEl=this._videoRef.value;if(!videoEl)throw Error("Video element not found");this._canvas.height=videoEl.videoHeight,this._canvas.width=videoEl.videoWidth,this.cfg.cameraMirror&&(this._ctx.translate(this._canvas.width,0),this._ctx.scale(-1,1)),this._ctx.drawImage(videoEl,0,0),videoEl.pause()}_guessExtensionByMime(mime){let knownContainers={mp4:"mp4",ogg:"ogg",webm:"webm",quicktime:"mov","x-matroska":"mkv"};if(""===mime)return"webm";if(mime){let parts=mime.split("/");if(parts?.[0]==="video"){let rest=parts.slice(1).join("/"),container=rest?.split(";")[0];if(container&&knownContainers[container])return knownContainers[container]}}return"avi"}get _cameraModes(){return(0,stringToArray.G)(this.cfg.cameraModes).filter(mode=>mode===constants.S.PHOTO||mode===constants.S.VIDEO)}_teardownPermissionListeners(){if(0!==this._permissionCleanupFns.length){for(let cleanup of this._permissionCleanupFns)cleanup();this._permissionCleanupFns=[],this._unsubPermissions=null}}initCallback(){super.initCallback(),this.subConfigValue("cameraMirror",val=>{this._videoTransformCss=val?"scaleX(-1)":null}),this.subConfigValue("enableAudioRecording",val=>{this._audioToggleMicrophoneHidden=!val,this._audioSelectDisabled=!val}),this.subConfigValue("cameraModes",val=>{if(!this.isConnected)return;let cameraModes=(0,comma_separated.A)(val);this._handleCameraModes(cameraModes.filter(mode=>mode===constants.S.PHOTO||mode===constants.S.VIDEO))}),this._onActivate()}firstUpdated(changedProperties){super.firstUpdated(changedProperties),this._applyVideoSource()}updated(changedProperties){super.updated(changedProperties),this._applyVideoSource()}_destroy(){this._teardownPermissionListeners(),navigator.mediaDevices?.removeEventListener("devicechange",this._getDevices),this._detachPreviewListeners(this._videoRef.value),this._setVideoSource(null)}disconnectedCallback(){super.disconnectedCallback(),this._onDeactivate(),this._destroy()}render(){return(0,lit.qy)`<uc-activity-header><button type="button" class="uc-mini-btn" @click=${this.$["*historyBack"]} title=${this.l10n("back")} ><uc-icon name="back"></uc-icon></button><div ?hidden=${!this._cameraSelectHidden}><uc-icon name="camera"></uc-icon><span>${this.l10n("caption-camera")}</span></div><uc-select class="uc-camera-select" .options=${this._cameraSelectOptions} ?hidden=${this._cameraSelectHidden} @change=${this._handleCameraSelectChange} ></uc-select><button type="button" class="uc-mini-btn uc-close-btn" @click=${this.$["*closeModal"]} title=${this.l10n("a11y-activity-header-button-close")} aria-label=${this.l10n("a11y-activity-header-button-close")} ><uc-icon name="close"></uc-icon></button></uc-activity-header><div class="uc-content"><video muted autoplay playsinline style=${(0,style_map.W)({transform:this._videoTransformCss})} ?hidden=${this._videoHidden} ${(0,ref.K)(this._videoRef)} ></video><div class="uc-message-box" ?hidden=${this._messageHidden}><span>${this.l10n(this._l10nMessage)}</span><button type="button" @click=${this._handleRequestPermissions} ?hidden=${this._requestBtnHidden} >${this.l10n("camera-permissions-request")}</button></div></div><div class="uc-controls"><div ${(0,ref.K)(this._switcherRef)} class="uc-switcher" ?hidden=${!this._timerHidden}><button data-id="photo" type="button" class="uc-switch uc-mini-btn" @click=${this._handleClickTab} ?hidden=${this._tabCameraHidden} data-testid="tab-photo" ><uc-icon name="camera"></uc-icon></button><button data-id="video" type="button" class="uc-switch uc-mini-btn" @click=${this._handleClickTab} ?hidden=${this._tabVideoHidden} data-testid="tab-video" ><uc-icon name="video-camera"></uc-icon></button></div><button class="uc-secondary-btn uc-recording-timer" @click=${this._handleToggleRecording} ?hidden=${this._timerHidden} data-testid="recording-timer" ><uc-icon name=${this._currentTimelineIcon}></uc-icon><span ${(0,ref.K)(this._timerRef)}> 00:00 </span><span ${(0,ref.K)(this._lineRef)} class="uc-line"></span></button><div class="uc-camera-actions uc-camera-action" ?hidden=${this._cameraActionsHidden} ><button type="button" class="uc-secondary-btn" @click=${this._handleRetake}> Retake </button><button type="button" class="uc-primary-btn" @click=${this._handleAccept} data-testid="accept" > Accept </button></div><button type="button" data-testid="shot" @click=${this._handleStartCamera} class=${this._mutableClassButton} ?hidden=${this._cameraHidden} ><uc-icon name=${this._currentIcon}></uc-icon></button><div class="uc-select"><button type="button" class="uc-mini-btn uc-btn-microphone" @click=${this._handleToggleAudio} ?hidden=${this._audioToggleMicrophoneHidden} data-testid="toggle-microphone" ><uc-icon name=${this._toggleMicrophoneIcon}></uc-icon></button><uc-select class="uc-audio-select" .options=${this._audioSelectOptions} ?hidden=${this._audioSelectHidden} ?disabled=${this._audioSelectDisabled} @change=${this._handleAudioSelectChange} data-testid="audio-select" ></uc-select></div></div>`}constructor(...args){super(...args),this.couldBeCtxOwner=!0,this._unsubPermissions=null,this._capturing=!1,this._chunks=[],this._mediaRecorder=null,this._stream=null,this._selectedAudioId=null,this._selectedCameraId=null,this._activeTab=null,this._options={},this._canvas=null,this._ctx=null,this._cameraDevices=[],this._audioDevices=[],this._permissionResponses={},this._permissionCleanupFns=[],this._currentVideoSource=null,this._handlePreviewPlay=()=>{this._startTimeline(),this._currentTimelineIcon="pause"},this._handlePreviewPause=()=>{this._currentTimelineIcon="play",this._stopTimeline()},this._timerRef=(0,ref._)(),this._lineRef=(0,ref._)(),this._videoRef=(0,ref._)(),this._switcherRef=(0,ref._)(),this._startTime=0,this._elapsedTime=0,this._videoTransformCss=null,this._videoHidden=!0,this._messageHidden=!0,this._requestBtnHidden=void 0!==navigator.permissions,this._cameraSelectOptions=[],this._cameraSelectHidden=!0,this._l10nMessage="",this._timerHidden=!0,this._cameraHidden=!0,this._cameraActionsHidden=!0,this._audioSelectOptions=[],this._audioSelectHidden=!0,this._audioSelectDisabled=!0,this._audioToggleMicrophoneHidden=!0,this._tabCameraHidden=!0,this._tabVideoHidden=!0,this._currentIcon="camera-full",this._currentTimelineIcon="play",this._toggleMicrophoneIcon="microphone",this._mutableClassButton="uc-shot-btn uc-camera-action",this._chooseActionWithCamera=()=>{if(this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{event:"start-camera",node:this.tagName,tabId:this._activeTab}}}),this._activeTab===constants.S.PHOTO&&this._shot(),this._activeTab===constants.S.VIDEO){if(this._mediaRecorder?.state==="recording")return void this._stopRecording();this._startRecording()}},this._handleCameraSelectChange=event=>{let target=event.target;target&&(this._selectedCameraId=target.value,this._capture())},this._handleAudioSelectChange=event=>{let target=event.target;target&&(this._selectedAudioId=target.value,this._capture())},this._handleRequestPermissions=()=>{this._capture()},this._handleStartCamera=()=>{this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{event:"shot-camera",node:this.tagName,tabId:this._activeTab}}}),this._chooseActionWithCamera()},this._handleToggleRecording=()=>{this._toggleRecording()},this._handleToggleAudio=()=>{this._toggleEnableAudio()},this._handleRetake=()=>{this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{event:"retake-camera",node:this.tagName,tabId:this._activeTab}}}),this._retake()},this._handleAccept=()=>{this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{event:"accept-camera",node:this.tagName,tabId:this._activeTab}}}),this._accept()},this._handleClickTab=event=>{let target=event.currentTarget,id=target?.getAttribute("data-id");id&&this._handleActiveTab(id)},this._updateTimer=()=>{let currentTime=Math.floor((performance.now()-this._startTime+this._elapsedTime)/1e3);if("number"==typeof this.cfg.maxVideoRecordingDuration&&this.cfg.maxVideoRecordingDuration>0){let remainingTime=this.cfg.maxVideoRecordingDuration-currentTime;if(remainingTime<=0){let timer=this._timerRef.value;timer&&(timer.textContent=formatTime(remainingTime)),this._stopRecording();return}let timer=this._timerRef.value;timer&&(timer.textContent=formatTime(remainingTime))}else{let timer=this._timerRef.value;timer&&(timer.textContent=formatTime(currentTime))}this._animationFrameId=requestAnimationFrame(this._updateTimer)},this._startTimer=()=>{this._startTime=performance.now(),this._elapsedTime=0,this._updateTimer()},this._stopTimer=()=>{this._animationFrameId&&cancelAnimationFrame(this._animationFrameId)},this._startTimeline=()=>{let video=this._videoRef.value;if(!video)return;let currentTime=video.currentTime,duration=video.duration||1,line=this._lineRef.value;line&&(line.style.transform=`scaleX(${currentTime/duration})`);let timer=this._timerRef.value;timer&&(timer.textContent=formatTime(currentTime)),this._animationFrameId=requestAnimationFrame(this._startTimeline)},this._stopTimeline=()=>{this._animationFrameId&&cancelAnimationFrame(this._animationFrameId)},this._animationFrameId=null,this._startRecording=()=>{try{this._chunks=[],this._options={...this.cfg.mediaRecorderOptions};let{mimeType}=this.cfg.mediaRecorderOptions||{};mimeType&&MediaRecorder.isTypeSupported(mimeType)?this._options.mimeType=mimeType:MediaRecorder.isTypeSupported(DEFAULT_VIDEO_FORMAT)?this._options.mimeType=DEFAULT_VIDEO_FORMAT:this._options.mimeType="video/mp4",this._stream&&(this._mediaRecorder=new MediaRecorder(this._stream,this._options),this._mediaRecorder.start(),this._mediaRecorder.addEventListener("dataavailable",event=>{this._chunks.push(event.data)}),this._startTimer(),this.classList.add("uc-recording"),this._setCameraState(constants.q.PLAY))}catch(error){console.error("Failed to start recording",error),this.telemetryManager.sendEventError(error,"camera recording. Failed to start recording")}},this._stopRecording=()=>{this._mediaRecorder?.addEventListener("stop",()=>{this._previewVideo(),this._stopTimer(),this._setCameraState(constants.q.STOP)}),this._mediaRecorder?.stop(),this.classList.remove("uc-recording"),this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{event:"stop-camera",node:this.tagName,tabId:this._activeTab}}})},this._toggleRecording=()=>{if(this._mediaRecorder?.state==="recording")return;let videoEl=this._videoRef.value;videoEl&&(videoEl.paused||videoEl.ended||!(videoEl.readyState>2)?videoEl.paused&&videoEl.play():videoEl.pause())},this._toggleEnableAudio=()=>{this._stream?.getAudioTracks().forEach(track=>{track.enabled=!track.enabled,this._toggleMicrophoneIcon=track.enabled?"microphone":"microphone-mute",this._audioSelectDisabled=!track.enabled})},this._previewVideo=()=>{try{let blob=new Blob(this._chunks,{type:this._mediaRecorder?.mimeType}),videoURL=URL.createObjectURL(blob),videoElement=this._videoRef.value;if(!videoElement)return;videoElement.muted=!1,videoElement.volume=1,this._setVideoSource(null),videoElement.src=videoURL,this._attachPreviewListeners(videoElement)}catch(error){console.error("Failed to preview video",error),this.telemetryManager.sendEventError(error,"camera previewing. Failed to preview video")}},this._retake=()=>{if(this._setCameraState(constants.q.RETAKE),this._activeTab===constants.S.VIDEO){this._setVideoSource(this._stream);let videoElement=this._videoRef.value;videoElement&&(videoElement.muted=!0)}this._videoRef.value?.play?.()},this._accept=()=>{if(this._setCameraState(constants.q.ACCEPT),this._activeTab===constants.S.PHOTO)return void this._canvas?.toBlob(blob=>{if(!blob)return;let file=this._createFile("camera","jpeg",DEFAULT_PICTURE_FORMAT,blob);this._toSend(file)},DEFAULT_PICTURE_FORMAT);let blob=new Blob(this._chunks,{type:this._mediaRecorder?.mimeType}),ext=this._guessExtensionByMime(this._mediaRecorder?.mimeType),file=this._createFile("video",ext,`video/${ext}`,blob);this._toSend(file),this._chunks=[]},this._handlePhoto=status=>{status===constants.q.SHOT&&(this._tabVideoHidden=!0,this._cameraHidden=!0,this._tabCameraHidden=!0,this._cameraActionsHidden=!1,this._cameraSelectHidden=!0),(status===constants.q.RETAKE||status===constants.q.ACCEPT)&&(this._tabVideoHidden=!this._cameraModes.includes(constants.S.VIDEO),this._tabCameraHidden=!this._cameraModes.includes(constants.S.PHOTO),this._cameraHidden=!1,this._cameraActionsHidden=!0,this._cameraSelectHidden=this._cameraDevices.length<=1)},this._handleVideo=status=>{status===constants.q.PLAY&&(this._timerHidden=!1,this._tabCameraHidden=!0,this._cameraSelectHidden=!0,this._audioSelectHidden=!0,this._currentTimelineIcon="pause",this._currentIcon="square",this._mutableClassButton="uc-shot-btn uc-camera-action uc-stop-record"),status===constants.q.STOP&&(this._timerHidden=!1,this._cameraHidden=!0,this._audioToggleMicrophoneHidden=!0,this._cameraActionsHidden=!1),(status===constants.q.RETAKE||status===constants.q.ACCEPT)&&(this._timerHidden=!0,this._tabVideoHidden=!this._cameraModes.includes(constants.S.VIDEO),this._tabCameraHidden=!this._cameraModes.includes(constants.S.PHOTO),this._cameraHidden=!1,this._cameraActionsHidden=!0,this._audioToggleMicrophoneHidden=!this.cfg.enableAudioRecording,this._currentIcon="video-camera-full",this._mutableClassButton="uc-shot-btn uc-camera-action",this._audioSelectHidden=!this.cfg.enableAudioRecording||this._audioDevices.length<=1,this._cameraSelectHidden=this._cameraDevices.length<=1)},this._setCameraState=status=>{this._activeTab===constants.S.PHOTO&&("shot"===status||"retake"===status||"accept"===status)&&this._handlePhoto(status),this._activeTab===constants.S.VIDEO&&("play"===status||"stop"===status||"retake"===status||"accept"===status||"pause"===status||"resume"===status)&&this._handleVideo(status)},this._handleActiveTab=tabId=>{let switcher=this._switcherRef.value;switcher?.querySelectorAll("button").forEach(btn=>{btn.classList.toggle("uc-active",btn.getAttribute("data-id")===tabId)}),tabId===constants.S.PHOTO&&(this._currentIcon="camera-full",this._audioSelectHidden=!0,this._audioToggleMicrophoneHidden=!0),tabId===constants.S.VIDEO&&(this._currentTimelineIcon="play",this._currentIcon="video-camera-full",this._audioSelectHidden=!this.cfg.enableAudioRecording||this._audioDevices.length<=1,this._audioToggleMicrophoneHidden=!this.cfg.enableAudioRecording),this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{event:"camera-tab-switch",node:this.tagName,tabId}}}),this._activeTab=tabId},this._createFile=(type,ext,format,blob)=>{let date=Date.now();return new File([blob],`${type}-${date}.${ext}`,{lastModified:date,type:format})},this._toSend=file=>{this.api.addFileFromObject(file,{source:UploadSource.pc.CAMERA}),this.set$({"*currentActivity":LitActivityBlock.S.activities.UPLOAD_LIST}),this.modalManager?.open(LitActivityBlock.S.activities.UPLOAD_LIST)},this._setPermissionsState=(0,debounce.s)(state=>{this.classList.toggle("uc-initialized","granted"===state);let visibleAudio=this._activeTab===constants.S.VIDEO&&this.cfg.enableAudioRecording,currentIcon=this._activeTab===constants.S.PHOTO?"camera-full":"video-camera-full";"granted"===state?(this._videoHidden=!1,this._cameraHidden=!1,this._tabCameraHidden=!this._cameraModes.includes(constants.S.PHOTO),this._tabVideoHidden=!this._cameraModes.includes(constants.S.VIDEO),this._messageHidden=!0,this._timerHidden=!0,this._currentIcon=currentIcon,this._audioToggleMicrophoneHidden=!visibleAudio,this._audioSelectHidden=!visibleAudio):("prompt"===state?(this._l10nMessage="camera-permissions-prompt",this._videoHidden=!0,this._cameraHidden=!0,this._tabCameraHidden=!0,this._messageHidden=!1):(this._l10nMessage="camera-permissions-denied",this._videoHidden=!0,this._messageHidden=!1,this._tabCameraHidden=!this._cameraModes.includes(constants.S.PHOTO),this._tabVideoHidden=!this._cameraModes.includes(constants.S.VIDEO),this._cameraActionsHidden=!0,this._mutableClassButton="uc-shot-btn uc-camera-action"),this._stopCapture())},300),this._makeStreamInactive=()=>{if(!this._stream)return!1;let audioTracks=this._stream?.getAudioTracks(),videoTracks=this._stream?.getVideoTracks();return audioTracks.forEach(track=>{track.stop()}),videoTracks.forEach(track=>{track.stop()}),!0},this._stopCapture=()=>{if(this._capturing){this._videoRef.value&&(this._videoRef.value.volume=0);let tracks=this._currentVideoSource?.getTracks?.();tracks?.[0]?.stop(),this._detachPreviewListeners(this._videoRef.value),this._setVideoSource(null),this._makeStreamInactive(),this._stopTimer(),this._capturing=!1}},this._capture=async()=>{let constraints={video:{...DEFAULT_VIDEO_CONFIG},audio:!!this.cfg.enableAudioRecording&&{}};this._selectedCameraId&&(constraints.video={deviceId:{exact:this._selectedCameraId}}),this._selectedAudioId&&this.cfg.enableAudioRecording&&(constraints.audio={deviceId:{exact:this._selectedAudioId}}),this._videoRef.value&&(this._videoRef.value.volume=0);try{this._setPermissionsState("prompt"),this._stream=await navigator.mediaDevices.getUserMedia(constraints),this._stream.addEventListener("inactive",()=>{this._setPermissionsState("denied")}),this._setVideoSource(this._stream),this._capturing=!0,this._setPermissionsState("granted")}catch(error){this._setPermissionsState("denied"),console.log("Failed to capture camera",error),this.telemetryManager.sendEventError(error,"camera capturing. Failed to capture camera")}},this._handlePermissionsChange=()=>{this._capture()},this._permissionAccess=async()=>{try{for(let permission of(this._teardownPermissionListeners(),DEFAULT_PERMISSIONS)){let response=await navigator.permissions.query({name:permission});this._permissionResponses[permission]=response,response.addEventListener("change",this._handlePermissionsChange),this._permissionCleanupFns.push(()=>{response.removeEventListener("change",this._handlePermissionsChange)})}this._unsubPermissions=()=>{this._teardownPermissionListeners()}}catch(error){this._teardownPermissionListeners(),console.log("Failed to use permissions API. Fallback to manual request mode.",error),this.telemetryManager.sendEventError(error,"camera permissions. Failed to use permissions API"),this._capture()}},this._requestDeviceAccess=async()=>{try{await navigator.mediaDevices.getUserMedia({video:!0,audio:this.cfg.enableAudioRecording}),await this._getDevices(),navigator.mediaDevices.addEventListener("devicechange",this._getDevices)}catch(error){this.telemetryManager.sendEventError(error,"camera devices. Failed to get user media"),console.log("Failed to get user media",error)}},this._getDevices=async()=>{try{let devices=await navigator.mediaDevices.enumerateDevices();this._cameraDevices=devices.filter(device=>"videoinput"===device.kind).map((device,index)=>({text:device.label.trim()||`${this.l10n("caption-camera")} ${index+1}`,value:device.deviceId})),this._audioDevices=this.cfg.enableAudioRecording?devices.filter(device=>"audioinput"===device.kind).map(device=>({text:device.label.trim(),value:device.deviceId})):[],this._cameraSelectOptions=this._cameraDevices,this._cameraSelectHidden=this._cameraDevices.length<=1,this._selectedCameraId=this._cameraDevices[0]?.value??null,this._audioSelectOptions=this._audioDevices,this._audioSelectHidden=!this.cfg.enableAudioRecording||this._audioDevices.length<=1,this._selectedAudioId=this._audioDevices[0]?.value??null}catch(error){this.telemetryManager.sendEventError(error,"camera devices. Failed to get devices"),console.log("Failed to get devices",error)}},this._onActivate=async()=>{await this._permissionAccess(),await this._requestDeviceAccess(),await this._capture(),this._handleCameraModes(this._cameraModes)},this._onDeactivate=async()=>{this._unsubPermissions&&this._unsubPermissions(),window.chrome||this._setPermissionsState("denied"),this._stopCapture()},this._handleCameraModes=cameraModes=>{this._tabVideoHidden=!cameraModes.includes(constants.S.VIDEO),this._tabCameraHidden=!cameraModes.includes(constants.S.PHOTO);let defaultTab=cameraModes[0];!defaultTab||this._activeTab&&cameraModes.includes(this._activeTab)||this._handleActiveTab(defaultTab)}}}_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_videoTransformCss",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_videoHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_messageHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_requestBtnHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_cameraSelectOptions",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_cameraSelectHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_l10nMessage",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_timerHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_cameraHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_cameraActionsHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_audioSelectOptions",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_audioSelectHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_audioSelectDisabled",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_audioToggleMicrophoneHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_tabCameraHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_tabVideoHidden",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_currentIcon",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_currentTimelineIcon",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_toggleMicrophoneIcon",void 0),_ts_decorate([(0,lit_decorators.wk)()],CameraSource.prototype,"_mutableClassButton",void 0);var activity_constants=__webpack_require__(7715),browser_info=__webpack_require__(1633);let cameraPlugin={id:"camera",setup:async({pluginApi,uploaderApi})=>{(0,defineComponents.Y)({CameraSource:CameraSource}),pluginApi.registry.registerSource({id:"camera",label:"src-type-camera",icon:"camera",expand:()=>{if(!browser_info.wN.htmlMediaCapture)return["camera"];let modes=(0,comma_separated.A)(pluginApi.config.get("cameraModes"));return modes.length?modes.map(mode=>`mobile-${mode}-camera`):["mobile-photo-camera"]},onSelect:()=>{uploaderApi.setCurrentActivity(activity_constants.g.CAMERA),uploaderApi.setModalState(!0)}}),pluginApi.registry.registerSource({id:"mobile-photo-camera",label:"src-type-camera",icon:"camera",onSelect:()=>{uploaderApi.openSystemDialog({captureCamera:!0,modeCamera:"photo"})}}),pluginApi.registry.registerSource({id:"mobile-video-camera",label:"src-type-camera",icon:"camera",onSelect:()=>{uploaderApi.openSystemDialog({captureCamera:!0,modeCamera:"video"})}}),pluginApi.registry.registerActivity({id:activity_constants.g.CAMERA,render:host=>{let cameraEl=document.createElement("uc-camera-source");return host.append(cameraEl),()=>{host.replaceChildren()}}})}}},139(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{cloudImageEditorPlugin:()=>cloudImageEditorPlugin});var CloudImageEditorActivity_namespaceObject={};__webpack_require__.r(CloudImageEditorActivity_namespaceObject),__webpack_require__.d(CloudImageEditorActivity_namespaceObject,{CloudImageEditorActivity:()=>CloudImageEditorActivity});var defineComponents=__webpack_require__(3962),lit=__webpack_require__(7825),lit_decorators=__webpack_require__(7093),if_defined=__webpack_require__(3121),LitActivityBlock=__webpack_require__(5923),LitUploaderBlock=__webpack_require__(1532);class CloudImageEditorActivity extends LitUploaderBlock.z{get activityParams(){let params=super.activityParams;if("internalId"in params)return params;throw Error("Cloud Image Editor activity params not found")}initCallback(){super.initCallback(),this.subConfigValue("cropPreset",cropPreset=>{this._editorConfig&&this._editorConfig.cropPreset!==cropPreset&&(this._editorConfig={...this._editorConfig,cropPreset})}),this.subConfigValue("cloudImageEditorTabs",tabs=>{this._editorConfig&&this._editorConfig.tabs!==tabs&&(this._editorConfig={...this._editorConfig,tabs})}),this._mountEditor()}disconnectedCallback(){super.disconnectedCallback(),this._unmountEditor()}_handleApply(e){if(!this._entry)return;this.debugPrint('editor event "apply"',e.detail);let result=e.detail;this._entry.setMultipleValues({cdnUrl:result.cdnUrl,cdnUrlModifiers:result.cdnUrlModifiers}),this.modalManager?.close(LitActivityBlock.S.activities.CLOUD_IMG_EDIT),this.historyBack()}_handleCancel(event){let detail=event instanceof CustomEvent?event.detail:void 0;this.debugPrint('editor event "cancel"',detail),this.modalManager?.close(LitActivityBlock.S.activities.CLOUD_IMG_EDIT),this.historyBack()}handleChange(event){this.debugPrint('editor event "change"',event.detail)}_mountEditor(){let{internalId}=this.activityParams,entry=this.uploadCollection.read(internalId);if(!entry)throw Error(`Entry with internalId "${internalId}" not found`);this._entry=entry;let cdnUrl=this._entry.getValue("cdnUrl");if(!cdnUrl)throw Error(`Entry with internalId "${internalId}" hasn't uploaded yet`);this._editorConfig=this._createEditorConfig(cdnUrl)}_unmountEditor(){this._entry=void 0,this._editorConfig=null}render(){if(!this._editorConfig)return lit.s6;let{cdnUrl,cropPreset,tabs}=this._editorConfig;return(0,lit.qy)`<uc-cloud-image-editor cdn-url=${cdnUrl} crop-preset=${(0,if_defined.J)(cropPreset)} tabs=${(0,if_defined.J)(tabs)} @apply=${this._handleApply} @cancel=${this._handleCancel} @change=${this.handleChange} ></uc-cloud-image-editor>`}_createEditorConfig(cdnUrl){return{cdnUrl,cropPreset:this.cfg.cropPreset,tabs:this.cfg.cloudImageEditorTabs}}constructor(...args){super(...args),this._editorConfig=null}}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.wk)()],CloudImageEditorActivity.prototype,"_editorConfig",void 0);var activity_constants=__webpack_require__(7715),cloud_image_editor=__webpack_require__(937);let editorI18n={en:{"edit-image":"Edit image","edit-detail":"Details","file-item-edit-button":"Edit","a11y-editor-tab-filters":"Filters","a11y-editor-tab-tuning":"Tuning","a11y-editor-tab-crop":"Crop","a11y-cloud-editor-apply-filter":"Apply {{name}} filter","a11y-cloud-editor-apply-crop":"Apply {{name}} operation","a11y-cloud-editor-apply-tuning":"Apply {{name}} tuning","a11y-cloud-editor-apply-aspect-ratio":"Apply operation {{name}} {{value}}","crop-to-shape":"Crop to {{value}}",custom:"Freeform","freeform-crop":"Freeform crop","cancel-edit":"Cancel edit",back:"Back",apply:"Apply",rotate:"Rotate","flip-vertical":"Flip vertical","flip-horizontal":"Flip horizontal",brightness:"Brightness",contrast:"Contrast",saturation:"Saturation",exposure:"Exposure",gamma:"Gamma",vibrance:"Vibrance",warmth:"Warmth",enhance:"Enhance",original:"Original",resize:"Resize image",crop:"Crop","select-color":"Select color",text:"Text",draw:"Draw","tab-view":"Preview","tab-details":"Details"}},cloudImageEditorPlugin={id:"cloud-image-editor",setup:async({pluginApi,uploaderApi})=>{(0,defineComponents.Y)({...cloud_image_editor,...CloudImageEditorActivity_namespaceObject}),pluginApi.registry.registerIcon({name:"edit-file",svg:"<svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path fill='currentColor' fill-rule='evenodd' d='M18.558 2.804a.78.78 0 0 0-.557.235l-.008.007-2.472 2.46 3.847 3.848 2.46-2.473.004-.003a.78.78 0 0 0 0-1.108l-.004-.003-2.712-2.728a.78.78 0 0 0-.558-.235Zm-.248 7.613-3.852-3.852-8.93 8.887-1.516 5.41 5.41-1.515 8.888-8.93Zm-.636-8.934a2.28 2.28 0 0 1 2.512.505l2.702 2.717.002.002a2.278 2.278 0 0 1 0 3.234l-.002.002-12.541 12.602a.75.75 0 0 1-.33.193l-6.884 1.928a.75.75 0 0 1-.925-.924l1.928-6.885a.75.75 0 0 1 .193-.33l12.603-12.54a2.28 2.28 0 0 1 .742-.504Z' clip-rule='evenodd'/></svg>"}),pluginApi.registry.registerI18n(editorI18n),pluginApi.registry.registerFileAction({id:"edit-file",icon:"edit-file",shouldRender:fileEntry=>!!(fileEntry.isSuccess&&fileEntry.isImage&&fileEntry.cdnUrl),onClick:fileEntry=>{uploaderApi.setCurrentActivity?.(activity_constants.g.CLOUD_IMG_EDIT,{internalId:fileEntry.internalId}),uploaderApi.setModalState?.(!0)}}),pluginApi.registry.registerActivity({id:activity_constants.g.CLOUD_IMG_EDIT,render:host=>{let activityEl=document.createElement("uc-cloud-image-editor-activity");return host.append(activityEl),()=>{host.replaceChildren()}}})}}},3617(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{externalSourcesPlugin:()=>externalSourcesPlugin});var defineComponents=__webpack_require__(3962),LitActivityBlock=__webpack_require__(5923),stringToArray=__webpack_require__(2513),UploadSource=__webpack_require__(5730);let escapeRegExp=str=>str.replace(/[\\-\\[]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),wildcardRegexp=(str,flags="i")=>{let parts=str.split("*").map(escapeRegExp);return RegExp(`^${parts.join(".+")}$`,flags)},ucCustomProperties=["--uc-font-family","--uc-font-size","--uc-line-height","--uc-button-size","--uc-preview-size","--uc-input-size","--uc-padding","--uc-radius","--uc-transition","--uc-background","--uc-foreground","--uc-primary","--uc-primary-hover","--uc-primary-transparent","--uc-primary-foreground","--uc-secondary","--uc-secondary-hover","--uc-secondary-foreground","--uc-muted","--uc-muted-foreground","--uc-destructive","--uc-destructive-foreground","--uc-border"],getCssValue=(element,propName)=>window.getComputedStyle(element).getPropertyValue(propName).trim();var lit=__webpack_require__(7825),lit_decorators=__webpack_require__(7093),ref=__webpack_require__(133),LitUploaderBlock=__webpack_require__(1532);let MESSAGE_TYPE_WHITELIST=["selected-files-change","toolbar-state-change"];class MessageBridge{constructor(context,getTargetOrigin){this._handlerMap=new Map,this._handleMessage=e=>{if(e.source!==this._context)return;let message=e.data;if(!(message=>{if(!message||"object"!=typeof message||!("type"in message))return!1;let type=message.type;return"string"==typeof type&&!!MESSAGE_TYPE_WHITELIST.includes(type)})(message))return;let handlers=this._handlerMap.get(message.type);if(handlers)for(let handler of handlers)handler(message)},this._context=context,this._getTargetOrigin=getTargetOrigin,window.addEventListener("message",this._handleMessage)}on(type,handler){let handlers=this._handlerMap.get(type)??new Set;this._handlerMap.has(type)||this._handlerMap.set(type,handlers),handlers.add(handler)}send(message){let targetOrigin=this._getTargetOrigin();this._context.postMessage(message,targetOrigin)}destroy(){window.removeEventListener("message",this._handleMessage)}}function _ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}let SOCIAL_SOURCE_MAPPING={[UploadSource.y5.GDRIVE]:"ngdrive"};class ExternalSource extends LitUploaderBlock.z{get _counterText(){if(!this._latestSelectionSummary)return"";let{selectedCount,total}=this._latestSelectionSummary;return this.l10n("selected-count",{count:selectedCount,total})}get activityParams(){let params=super.activityParams;if("externalSourceType"in params)return params;throw Error("External Source activity params not found")}initCallback(){super.initCallback();let{externalSourceType}=this.activityParams;externalSourceType?this._mountIframe():console.error('Param "externalSourceType" is required for external source activity'),this.sub("*currentActivityParams",()=>{setTimeout(()=>{this.isConnected&&(this._unmountIframe(),this._mountIframe())})}),this.subConfigValue("multiple",multiple=>{this._showSelectionStatus=multiple}),this.subConfigValue("localeName",()=>{this._setupL10n()}),this.subConfigValue("externalSourcesEmbedCss",embedCss=>{this._applyEmbedCss(embedCss)})}_extractUrlFromSelectedFile(selectedFile){if(selectedFile.alternatives)for(let preferredType of(0,stringToArray.G)(this.cfg.externalSourcesPreferredTypes)){let regexp=wildcardRegexp(preferredType);for(let[type,typeUrl]of Object.entries(selectedFile.alternatives))if(regexp.test(type))return typeUrl}return selectedFile.url}_handleToolbarStateChange(message){this._toolbarVisible=message.isVisible}async _handleSelectedFilesChange(message){this.cfg.multiple!==message.isMultipleMode?console.error("Multiple mode mismatch"):(this._setSelectionSummary(message.selectedCount,message.total),this._doneBtnTextClass=message.isReady?"":"uc-hidden",this._isSelectionReady=message.isReady,this._isDoneBtnEnabled=message.isReady&&message.selectedFiles.length>0,this._showSelectionStatus=message.isMultipleMode&&message.total>0,this._couldSelectAll=message.selectedCount<message.total,this._couldDeselectAll=message.selectedCount===message.total,this._selectedList=message.selectedFiles??[],this._showDoneBtn=message.total>0)}_handleIframeLoad(){this._applyEmbedCss(this.cfg.externalSourcesEmbedCss),this._applyTheme(),this._setupL10n()}_applyTheme(){this._messageBridge?.send({type:"set-theme-definition",theme:(element=>{let theme={};for(let prop of ucCustomProperties){let value=getCssValue(element,prop);value&&(theme[prop]=value)}return theme})(this)})}_applyEmbedCss(css){this._messageBridge?.send({type:"set-embed-css",css})}_setupL10n(){this._messageBridge?.send({type:"set-locale-definition",localeDefinition:this.cfg.localeName})}_remoteUrl(){let{pubkey,remoteTabSessionKey,socialBaseUrl,multiple}=this.cfg,{externalSourceType}=this.activityParams,sourceName=SOCIAL_SOURCE_MAPPING[externalSourceType]??externalSourceType,params={lang:this.l10n("social-source-lang")?.split("-")?.[0]||"en",public_key:pubkey,images_only:(!1).toString(),session_key:remoteTabSessionKey,wait_for_theme:!0,multiple:multiple.toString(),origin:this.cfg.topLevelOrigin||(()=>{let topLevelWindow=globalThis.top??globalThis.parent??globalThis.self;try{return topLevelWindow.location.origin}catch(e){return console.warn("Unable to access top-level window location:",e),globalThis.location.origin}})(),debug:this.cfg.debug},url=new URL(`/window4/${sourceName}`,socialBaseUrl);return url.search=function(params){let list=[];for(let[key,value]of Object.entries(params))null!=value&&("string"!=typeof value||0!==value.length)&&list.push(`${key}=${encodeURIComponent(value)}`);return list.join("&")}(params),url.toString()}_setSelectionSummary(selectedCount,total){this._latestSelectionSummary={selectedCount,total}}_mountIframe(){let iframe=document.createElement("iframe");iframe.src=this._remoteUrl(),iframe.marginHeight=0,iframe.marginWidth=0,iframe.frameBorder="0",iframe.allowTransparency=!0,iframe.addEventListener("load",this._handleIframeLoad.bind(this)),iframe.addEventListener("load",this._handleIframeLoad.bind(this)),this._iframeRef.value&&(this._iframeRef.value.innerHTML="",this._iframeRef.value.appendChild(iframe)),iframe.contentWindow&&(this._messageBridge?.destroy(),this._messageBridge=new MessageBridge(iframe.contentWindow,()=>this.cfg.socialBaseUrl),this._messageBridge.on("selected-files-change",this._handleSelectedFilesChange.bind(this)),this._messageBridge.on("toolbar-state-change",this._handleToolbarStateChange.bind(this)),this._resetSelectionStatus())}_unmountIframe(){this._messageBridge?.destroy(),this._messageBridge=void 0,this._iframeRef.value&&(this._iframeRef.value.innerHTML=""),this._resetSelectionStatus()}_resetSelectionStatus(){this._selectedList=[],this._isSelectionReady=!1,this._isDoneBtnEnabled=!1,this._couldSelectAll=!1,this._couldDeselectAll=!1,this._showSelectionStatus=!1,this._showDoneBtn=!1,this._doneBtnTextClass="uc-hidden",this._latestSelectionSummary=null}disconnectedCallback(){super.disconnectedCallback(),this._unmountIframe()}render(){return(0,lit.qy)`<uc-activity-header><button type="button" class="uc-mini-btn uc-close-btn" @click=${this.$["*historyBack"]} title=${this.l10n("a11y-activity-header-button-close")} aria-label=${this.l10n("a11y-activity-header-button-close")} ><uc-icon name="close"></uc-icon></button></uc-activity-header><div class="uc-content"><div ${(0,ref.K)(this._iframeRef)} class="uc-iframe-wrapper"></div><div class="uc-toolbar" ?hidden=${!this._toolbarVisible}><button type="button" class="uc-cancel-btn uc-secondary-btn" @click=${this._handleCancel}>${this.l10n("cancel")}</button><div class="uc-selection-status-box" ?hidden=${!this._showSelectionStatus}><span>${this._counterText}</span><button type="button" @click=${this._handleSelectAll} ?hidden=${!this._couldSelectAll}>${this.l10n("select-all")}</button><button type="button" @click=${this._handleDeselectAll} ?hidden=${!this._couldDeselectAll}>${this.l10n("deselect-all")}</button></div><button type="button" class="uc-done-btn uc-primary-btn" @click=${this._handleDone} ?disabled=${!this._isDoneBtnEnabled} ?hidden=${!this._showDoneBtn} ><uc-spinner ?hidden=${this._isSelectionReady}></uc-spinner><span class=${this._doneBtnTextClass}>${this.l10n("done")}</span></button></div></div>`}constructor(...args){super(...args),this.couldBeCtxOwner=!0,this._iframeRef=(0,ref._)(),this._latestSelectionSummary=null,this._selectedList=[],this._isSelectionReady=!1,this._isDoneBtnEnabled=!1,this._couldSelectAll=!1,this._couldDeselectAll=!1,this._showSelectionStatus=!1,this._showDoneBtn=!1,this._doneBtnTextClass="uc-hidden",this._toolbarVisible=!0,this._handleDone=()=>{for(let message of this._selectedList){let url=this._extractUrlFromSelectedFile(message),{filename}=message,{externalSourceType}=this.activityParams;this.api.addFileFromUrl(url,{fileName:filename,source:externalSourceType})}this.$["*currentActivity"]=LitActivityBlock.S.activities.UPLOAD_LIST,this.modalManager?.open(LitActivityBlock.S.activities.UPLOAD_LIST)},this._handleCancel=()=>{this.historyBack()},this._handleSelectAll=()=>{this._messageBridge?.send({type:"select-all"})},this._handleDeselectAll=()=>{this._messageBridge?.send({type:"deselect-all"})}}}_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_selectedList",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_isSelectionReady",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_isDoneBtnEnabled",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_couldSelectAll",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_couldDeselectAll",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_showSelectionStatus",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_showDoneBtn",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_doneBtnTextClass",void 0),_ts_decorate([(0,lit_decorators.wk)()],ExternalSource.prototype,"_toolbarVisible",void 0);var activity_constants=__webpack_require__(7715);let externalSourcesPlugin={id:"external-sources",setup:async({pluginApi,uploaderApi})=>{for(let sourceId of((0,defineComponents.Y)({ExternalSource:ExternalSource}),pluginApi.registry.registerActivity({id:activity_constants.g.EXTERNAL,render:host=>{let el=document.createElement("uc-external-source");return host.append(el),()=>{host.replaceChildren()}}}),Object.values(UploadSource.y5)))pluginApi.registry.registerSource({id:sourceId,label:`src-type-${sourceId}`,icon:sourceId,onSelect:()=>{uploaderApi.setCurrentActivity(activity_constants.g.EXTERNAL,{externalSourceType:sourceId}),uploaderApi.setModalState(!0)}})}}},5271(__unused_rspack_module,__webpack_exports__,__webpack_require__){let isApplied;__webpack_require__.d(__webpack_exports__,{imageShrinkPlugin:()=>imageShrinkPlugin});let readJpegChunks=()=>{let stack=[];return{stack,promiseReadJpegChunks:blob=>new Promise((resolve,reject)=>{let pos=2,readToView=(blob,cb)=>{let reader=new FileReader;reader.addEventListener("load",()=>{cb(new DataView(reader.result))}),reader.addEventListener("error",e=>{reject(`Reader error: ${e}`)}),reader.readAsArrayBuffer(blob)},readNext=()=>readToView(blob.slice(pos,pos+128),view=>{let i,j,ref;for(i=j=0,ref=view.byteLength;ref>=0?j<ref:j>ref;i=ref>=0?++j:--j)if(255===view.getUint8(i)){pos+=i;break}readNextChunk()}),readNextChunk=()=>{let startPos=pos;return readToView(blob.slice(pos,pos+=4),view=>{if(4!==view.byteLength||255!==view.getUint8(0))return void reject("Corrupted");let marker=view.getUint8(1);if(218===marker)return void resolve(!0);let length=view.getUint16(2)-2;return readToView(blob.slice(pos,pos+=length),view=>{view.byteLength!==length?reject("Corrupted"):(stack.push({startPos,length,marker,view}),readNext())})})};FileReader&&DataView||reject("Not Support"),readToView(blob.slice(0,2),view=>{65496!==view.getUint16(0)&&reject("Not jpeg"),readNext()})})}},getIccProfile=async blob=>{let iccProfile=[],{promiseReadJpegChunks,stack}=readJpegChunks();return await promiseReadJpegChunks(blob),stack.forEach(({marker,view})=>{226===marker&&0x4943435f===view.getUint32(0)&&0x50524f46===view.getUint32(4)&&0x494c4500===view.getUint32(8)&&iccProfile.push(view)}),iccProfile},replaceJpegChunk=async(blob,marker,chunks)=>{{let oldChunkPos=[],oldChunkLength=[],{promiseReadJpegChunks,stack}=readJpegChunks();await promiseReadJpegChunks(blob),stack.forEach(chunk=>{if(chunk.marker===marker)return oldChunkPos.push(chunk.startPos),oldChunkLength.push(chunk.length)});let newChunks=[blob.slice(0,2)];for(let chunk of chunks){let intro=new DataView(new ArrayBuffer(4));intro.setUint16(0,65280+marker),intro.setUint16(2,chunk.byteLength+2),newChunks.push(intro.buffer),newChunks.push(chunk)}let pos=2;for(let i=0;i<oldChunkPos.length;i++)oldChunkPos[i]>pos&&newChunks.push(blob.slice(pos,oldChunkPos[i])),pos=oldChunkPos[i]+oldChunkLength[i]+4;return newChunks.push(blob.slice(pos,blob.size)),new Blob(newChunks,{type:blob.type})}},replaceIccProfile=(blob,iccProfiles)=>replaceJpegChunk(blob,226,iccProfiles.map(chunk=>chunk.buffer)),stripIccProfile=async blob=>{try{return await replaceIccProfile(blob,[])}catch(e){throw Error(`Failed to strip ICC profile: ${e}`)}},createCanvas=()=>{let canvas=document.createElement("canvas"),ctx=canvas.getContext("2d");return{canvas,ctx}},getExif=async blob=>{let exif=null,{promiseReadJpegChunks,stack}=readJpegChunks();return await promiseReadJpegChunks(blob),stack.forEach(({marker,view})=>{if(!exif&&225===marker&&view.byteLength>=14&&0x45786966===view.getUint32(0)&&0===view.getUint16(4)){exif=view;return}}),exif},replaceExif=async(blob,exif,isExifApplied)=>(isExifApplied&&((exif,exifCallback)=>{let j,little,offset;if(!exif||exif.byteLength<14||0x45786966!==exif.getUint32(0)||0!==exif.getUint16(4))return;if(18761===exif.getUint16(6))little=!0;else{if(19789!==exif.getUint16(6))return;little=!1}if(42!==exif.getUint16(8,little))return;offset=8+exif.getUint32(10,little);let count=exif.getUint16(offset-2,little);for(j=0;count>=0?j<count:j>count;count>=0?++j:--j){if(exif.byteLength<offset+10)return;274===exif.getUint16(offset,little)&&exifCallback(offset+8,little),offset+=12}})(exif,(offset,littleEndian)=>exif.setUint16(offset,1,littleEndian)),replaceJpegChunk(blob,225,[exif.buffer])),allowLayers=[1,3],markers=[192,193,194,195,197,198,199,201,202,203,205,206,207],sizes={squareSide:[Math.floor(Math.sqrt(5e6)),4096,8192,11180,10836,11402,14188,16384],dimension:[4096,8192,16384,32767,65535]},shouldSkipShrink=async blob=>{let skip=!1,{promiseReadJpegChunks,stack}=readJpegChunks();return await promiseReadJpegChunks(blob).then(()=>(stack.forEach(({marker,view})=>{if(!skip&&markers.indexOf(marker)>=0){let layer=view.getUint8(5);0>allowLayers.indexOf(layer)&&(skip=!0)}}),skip)).catch(()=>skip)},memoize=(fn,serializer)=>{let cache={};return(...args)=>{let key=serializer(args,cache);return key in cache?cache[key]:cache[key]=fn(...args)}},memoKeySerializer=(args,cache)=>{let[w]=args,cachedWidths=Object.keys(cache).map(val=>parseInt(val,10)).sort((a,b)=>a-b);for(let i=0;i<cachedWidths.length;i++){let cachedWidth=cachedWidths[i],isSupported=!!cache[cachedWidth];if(cachedWidth>w&&isSupported||cachedWidth<w&&!isSupported)return cachedWidth}return w},FILL_STYLE=`rgba(55, 110, 165, ${1})`,canvasTest=(width,height)=>{try{let fill=[width-1,height-1,1,1],{canvas:cropCvs,ctx:cropCtx}=createCanvas();cropCvs.width=1,cropCvs.height=1;let{canvas:testCvs,ctx:testCtx}=createCanvas();testCvs.width=width,testCvs.height=height,testCtx&&(testCtx.fillStyle=FILL_STYLE,testCtx.fillRect(...fill),cropCtx.drawImage(testCvs,width-1,height-1,1,1,0,0,1,1));let imageData=cropCtx&&cropCtx.getImageData(0,0,1,1).data,isTestPass=!1;return imageData&&(isTestPass=55===imageData[0]&&110===imageData[1]&&165===imageData[2]&&255===imageData[3]),testCvs.width=testCvs.height=1,isTestPass}catch(e){return console.error(`Failed to test for max canvas size of ${width}x${height}.`),!1}};function wrapAsync(fn){return(...args)=>new Promise(resolve=>{setTimeout(()=>{resolve(fn(...args))},0)})}let squareTest=wrapAsync(memoize(canvasTest,memoKeySerializer)),dimensionTest=wrapAsync(memoize(canvasTest,memoKeySerializer)),testCanvasSize=async(w,h)=>{let testSquareSide=sizes.squareSide.find(side=>side*side>=w*h),testDimension=sizes.dimension.find(side=>side>=w&&side>=h);if(!testSquareSide||!testDimension)throw Error("Not supported");let[squareSupported,dimensionSupported]=await Promise.all([squareTest(testSquareSide,testSquareSide),dimensionTest(testDimension,1)]);if(squareSupported&&dimensionSupported)return!0;throw Error("Not supported")},canvasResize=async(img,w,h)=>{try{let{ctx,canvas}=createCanvas();return canvas.width=w,canvas.height=h,ctx.imageSmoothingQuality="high",ctx.drawImage(img,0,0,w,h),img instanceof HTMLImageElement&&(img.src="//:0"),img instanceof HTMLCanvasElement&&(img.width=img.height=1),canvas}catch(e){throw Error("Canvas resize error",{cause:e})}},calcShrinkSteps=function({sourceW,targetW,targetH,step}){let steps=[],sW=targetW,sH=targetH;do steps.push([sW,sH]),sW=Math.round(sW/step),sH=Math.round(sH/step);while(sW<sourceW*step);return steps.reverse()},isIpadOS=navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform),shrinkFile=async(inputBlob,settings)=>{try{var image;let image1,type,quality;if(await shouldSkipShrink(inputBlob))throw Error("Should skipped");let exifResults=await Promise.allSettled([getExif(inputBlob),new Promise(resolve=>{if(void 0!==isApplied)resolve(isApplied);else{let image=new Image;image.addEventListener("load",()=>{isApplied=image.naturalWidth<image.naturalHeight,image.src="//:0",resolve(isApplied)}),image.src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k="}}),getIccProfile(inputBlob)]),isJPEG=!exifResults.some(result=>"rejected"===result.status),[exifResult,isExifOrientationAppliedResult,iccProfileResult]=exifResults,inputBlobWithoutIcc=await stripIccProfile(inputBlob).catch(()=>inputBlob),image2=await (image=URL.createObjectURL(inputBlobWithoutIcc),image1=new Image,new Promise((resolve,reject)=>{image&&(image1.src=image),image1.complete?resolve(image1):(image1.addEventListener("load",()=>{resolve(image1)}),image1.addEventListener("error",()=>{reject(Error("Failed to load image. Probably not an image."))}))}));URL.revokeObjectURL(image2.src);let canvas=await ((img,settings)=>{if(.71*img.width*img.height*.71<settings.size)throw Error("Not required");let sourceW=img.width,ratio=sourceW/img.height,targetW=Math.floor(Math.sqrt(settings.size*ratio)),targetH=Math.floor(settings.size/Math.sqrt(settings.size*ratio));return testCanvasSize(targetW,targetH).then(()=>{let{ctx}=createCanvas();return"imageSmoothingQuality"in ctx&&!(/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform))&&!isIpadOS?(({img,targetW,targetH})=>canvasResize(img,targetW,targetH))({img,targetW,targetH}):(({img,sourceW,targetW,targetH,step})=>{let steps=calcShrinkSteps({sourceW,targetW,targetH,step});return steps.reduce((chain,[w,h],idx)=>chain.then(canvas=>testCanvasSize(w,h).then(()=>canvasResize(canvas,w,h)).catch(()=>{if(idx===steps.length-1)throw Error("Not supported");return canvas})),Promise.resolve(img))})({img,sourceW,targetW,targetH,step:.71})}).catch(()=>Promise.reject("Not supported"))})(image2,settings),format="image/jpeg",quality1=settings?.quality||.8;!isJPEG&&(img=>{let{ctx,canvas}=createCanvas();canvas.width=canvas.height=50,ctx.drawImage(img,0,0,50,50);let imageData=ctx.getImageData(0,0,50,50).data;canvas.width=canvas.height=1;for(let i=3;i<imageData.length;i+=4)if(imageData[i]<254)return!0;return!1})(canvas)&&(format="image/png",quality1=void 0);let newBlob=await (type=format,quality=quality1,new Promise((resolve,reject)=>{canvas.toBlob(blob=>{blob?resolve(blob):reject("Failed to convert canvas to blob")},type,quality),canvas.width=canvas.height=1}));if(isJPEG&&"fulfilled"===exifResult.status&&exifResult.value){let exif=exifResult.value,isExifOrientationApplied="fulfilled"===isExifOrientationAppliedResult.status&&isExifOrientationAppliedResult.value;newBlob=await replaceExif(newBlob,exif,isExifOrientationApplied)}return isJPEG&&"fulfilled"===iccProfileResult.status&&iccProfileResult.value.length>0&&(newBlob=await replaceIccProfile(newBlob,iccProfileResult.value)),newBlob}catch(e){let message;throw e instanceof Error&&(message=e.message),"string"==typeof e&&(message=e),Error(`Failed to shrink image. ${message?`Message: "${message}".`:""}`,{cause:e})}},regExpShrink=/^([0-9]+)x([0-9]+)(?:\s+(\d{1,2}|100)%)?$/i,imageShrinkPlugin={id:"image-shrink",setup({pluginApi}){pluginApi.registry.registerFileHook({type:"beforeUpload",handler:async({file,mimeType})=>{let imageShrink=pluginApi.config.get("imageShrink");if(!imageShrink)return{file,mimeType};let settings=(value=>{if("string"!=typeof value)return!1;let terms=regExpShrink.exec(value.toLocaleLowerCase())??[];if(0===terms.length)return!1;let sizeShrink=Number(terms[1])*Number(terms[2]);return sizeShrink>0x10000000?(console.warn(`Shrinked size can not be larger than ${Math.floor(268.435456)}MP. You have set ${terms[1]}x${terms[2]} (${Math.ceil(sizeShrink/1e3/100)/10}MP).`),!1):{quality:terms[3]?Number(terms[3])/100:void 0,size:sizeShrink}})(imageShrink);if(!settings)return console.warn("[ImageShrinkPlugin] Image shrink settings are invalid, skipping shrinking"),{file,mimeType};try{let shrunk=await shrinkFile(file,settings);return{file:shrunk,mimeType:shrunk.type||mimeType}}catch{return{file,mimeType}}}})}}},1746(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{instagramPlugin:()=>instagramPlugin});let instagramPlugin={id:"instagram",setup({pluginApi}){pluginApi.registry.registerSource({id:"instagram",label:"src-type-instagram",icon:"instagram",expand:()=>(console.error("Instagram source was removed because the Instagram Basic Display API hasn't been available since December 4, 2024. Official statement, see here: https://developers.facebook.com/blog/post/2024/09/04/update-on-instagram-basic-display-api/?locale=en_US"),[]),onSelect:()=>{}})}}},7748(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{urlSourcePlugin:()=>urlSourcePlugin});var defineComponents=__webpack_require__(3962),lit=__webpack_require__(7825),lit_decorators=__webpack_require__(7093),ref=__webpack_require__(133),LitActivityBlock=__webpack_require__(5923),LitUploaderBlock=__webpack_require__(1532),UploadSource=__webpack_require__(5730),EventEmitter=__webpack_require__(9963);class UrlSource extends LitUploaderBlock.z{firstUpdated(){let input=this._inputRef.value;input&&(input.value="",input.focus())}render(){return(0,lit.qy)`<uc-activity-header><button type="button" class="uc-mini-btn" @click=${this.historyBack} title=${this.l10n("back")} aria-label=${this.l10n("back")}><uc-icon name="back"></uc-icon></button><div><uc-icon name="url"></uc-icon><span>${this.l10n("caption-from-url")}</span></div><button type="button" class="uc-mini-btn uc-close-btn" @click=${this.$["*closeModal"]} title=${this.l10n("a11y-activity-header-button-close")} aria-label=${this.l10n("a11y-activity-header-button-close")} ><uc-icon name="close"></uc-icon></button></uc-activity-header><form class="uc-content" @submit=${this._handleUpload}><label><input ${(0,ref.K)(this._inputRef)} placeholder="https://" class="uc-url-input" type="text" @input=${this._handleInput} /></label><button type="submit" class="uc-url-upload-btn uc-primary-btn" ?disabled=${this._formState.importDisabled} >${this.l10n("upload-url")}</button></form>`}constructor(...args){super(...args),this._formState={importDisabled:!0},this._inputRef=(0,ref._)(),this._handleInput=event=>{let value=event.target?.value??"";this._formState={importDisabled:!value}},this._handleUpload=event=>{event.preventDefault(),this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.ACTION_EVENT,payload:{metadata:{event:"upload-from-url",node:this.tagName}}});let input=this._inputRef.value,url=input?.value?.trim();url&&(this.api.addFileFromUrl(url,{source:UploadSource.pc.URL}),this.$["*currentActivity"]=LitActivityBlock.S.activities.UPLOAD_LIST,this.modalManager?.open(LitActivityBlock.S.activities.UPLOAD_LIST))}}}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.wk)()],UrlSource.prototype,"_formState",void 0);var activity_constants=__webpack_require__(7715);let urlSourcePlugin={id:"url-source",setup:async({pluginApi,uploaderApi})=>{(0,defineComponents.Y)({UrlSource:UrlSource}),pluginApi.registry.registerActivity({id:activity_constants.g.URL,render:host=>{let el=document.createElement("uc-url-source");return host.append(el),()=>{host.replaceChildren()}}}),pluginApi.registry.registerSource({id:"url",label:"src-type-from-url",icon:"url",onSelect:()=>{uploaderApi.setCurrentActivity(activity_constants.g.URL),uploaderApi.setModalState(!0)}})}}},937(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Config:()=>Config,Icon:()=>Icon,EditorToolbar:()=>EditorToolbar,SliderUi:()=>SliderUi,BtnUi:()=>BtnUi,defineComponents:()=>defineComponents.Y,CloudImageEditorBlock:()=>CloudImageEditorBlock,EditorImageFader:()=>EditorImageFader,EditorImageCropper:()=>EditorImageCropper,LineLoaderUi:()=>LineLoaderUi,EditorScroller:()=>EditorScroller,PresenceToggle:()=>PresenceToggle,CropFrame:()=>CropFrame,EditorCropButtonControl:()=>EditorCropButtonControl,EditorSlider:()=>EditorSlider,EditorOperationControl:()=>EditorOperationControl,EditorFreeformButtonControl:()=>EditorFreeformButtonControl,CloudImageEditor:()=>CloudImageEditor,EditorAspectRatioButtonControl:()=>EditorAspectRatioButtonControl,EditorFilterControl:()=>EditorFilterControl});var lit=__webpack_require__(7825),lit_decorators=__webpack_require__(7093),ref=__webpack_require__(133),directive=__webpack_require__(7804),lit_html=__webpack_require__(6752);class unsafe_html_e extends directive.WL{constructor(i){if(super(i),this.it=lit_html.s6,i.type!==directive.OA.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(r){if(r===lit_html.s6||null==r)return this._t=void 0,this.it=r;if(r===lit_html.c0)return r;if("string"!=typeof r)throw Error(this.constructor.directiveName+"() called with a non-string value");if(r===this.it)return this._t;this.it=r;let s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}unsafe_html_e.directiveName="unsafeHTML",unsafe_html_e.resultType=1,(0,directive.u$)(unsafe_html_e);class unsafe_svg_t extends unsafe_html_e{}unsafe_svg_t.directiveName="unsafeSVG",unsafe_svg_t.resultType=2;let unsafe_svg_o=(0,directive.u$)(unsafe_svg_t);var LitBlock=__webpack_require__(4184),cdn_utils=__webpack_require__(6339),comma_separated=__webpack_require__(9101),debounce=__webpack_require__(4441);let TRANSPARENT_PIXEL_SRC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function normalize(...args){return args.reduce((result,arg)=>{if("string"==typeof arg)return result[arg]=!0,result;for(let token of Object.keys(arg))result[token]=arg[token];return result},{})}function classNames(...args){let mapping=normalize(...args);return Object.keys(mapping).reduce((result,token)=>(mapping[token]&&result.push(token),result),[]).join(" ")}var parseCropPreset=__webpack_require__(5342),toolbar_constants=__webpack_require__(1583);let isTabIdValue=value=>toolbar_constants.nz.includes(value);var transformationUtils=__webpack_require__(8930);function _ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}let DEFAULT_TABS=(0,comma_separated.L)([...toolbar_constants.nz]);class CloudImageEditorBlock extends LitBlock.x{static{this.styleAttrs=["uc-cloud-image-editor"]}_scheduleInitialization(){this._isInitialized||this._pendingInitUpdate||(this._pendingInitUpdate=this.updateComplete.then(()=>{this._pendingInitUpdate=null,this._isInitialized=!0}))}initCallback(){super.initCallback(),this._syncTabListFromProp(),this._syncCropPresetState()}_assignSharedElements(){let faderEl=this._faderRef.value;faderEl&&(this.$["*faderEl"]=faderEl);let cropperEl=this._cropperRef.value;cropperEl&&(this.$["*cropperEl"]=cropperEl);let imgContainerEl=this._imgContainerRef.value;imgContainerEl&&(this.$["*imgContainerEl"]=imgContainerEl);let imgEl=this._imgRef.value;imgEl&&(this.$["*imgEl"]=imgEl)}_attachImageListeners(){let imgEl=this._imgRef.value;imgEl&&(imgEl.addEventListener("load",this._handleImageLoad),imgEl.addEventListener("error",this._handleImageError))}_detachImageListeners(){let imgEl=this._imgRef.value;imgEl&&(imgEl.removeEventListener("load",this._handleImageLoad),imgEl.removeEventListener("error",this._handleImageError))}get _imageClassName(){let tabId=this.$["*tabId"];return classNames("uc-image",{"uc-image_hidden_to_cropper":tabId===toolbar_constants.XB.CROP,"uc-image_hidden_effects":tabId!==toolbar_constants.XB.CROP})}_waitForSize(){return new Promise((resolve,reject)=>{let timeoutId=window.setTimeout(()=>{reject(Error("[cloud-image-editor] timeout waiting for non-zero container size"))},3e3),resizeObserver=new ResizeObserver(entries=>{let[element]=entries;element&&element.contentRect.width>0&&element.contentRect.height>0&&(window.clearTimeout(timeoutId),resizeObserver.disconnect(),window.setTimeout(()=>resolve(),0))});resizeObserver.observe(this)})}firstUpdated(changedProperties){super.firstUpdated(changedProperties),this._assignSharedElements(),this._attachImageListeners(),this.initEditor();let hasInitialSource=!!(this.uuid||this.cdnUrl),alreadyRequested=changedProperties.has("uuid")||changedProperties.has("cdnUrl");hasInitialSource&&!alreadyRequested&&this.updateImage()}disconnectedCallback(){this._detachImageListeners(),super.disconnectedCallback()}render(){var n,r,n1,r1;let fileType=this._fileType??"",message=this._statusMessage??"",src=this._imageSrc||TRANSPARENT_PIXEL_SRC,showLoader=this._showLoader,showNetworkProblems=this._hasNetworkProblems;return(0,lit.qy)`${unsafe_svg_o("<svg width='0' height='0' style='position:absolute'><symbol fill='none' viewBox='0 0 9 6' id='uc-icon-arrow-dropdown' xmlns='http://www.w3.org/2000/svg'><path stroke='currentColor' d='m1.5 1.667 3 2.666 3-2.666' opacity='.5'/></symbol><symbol viewBox='0 0 24 24' id='uc-icon-aspect-ratio' xmlns='http://www.w3.org/2000/svg'/><symbol viewBox='0 0 20 20' id='uc-icon-brightness' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M15 10a5 5 0 0 1-5 5m5-5a5 5 0 0 0-5-5m5 5h-5m0 5a5 5 0 0 1 0-10m0 10V5m0 15v-3M2.93 2.929 5.05 5.05M0 10h3m-.07 7.071 2.12-2.121M10 0v3m7.07 14.071-2.12-2.121M20 10h-3m.07-7.071L14.95 5.05m-.626 2.45H10m4.324 5H10'/></symbol><symbol fill='currentColor' viewBox='0 0 20 20' id='uc-icon-closeMax' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M8.232 10 3.585 5.353l1.768-1.768L10 8.232l4.648-4.647 1.767 1.768L11.768 10l4.647 4.648-1.767 1.767L10 11.768l-4.647 4.647-1.768-1.767L8.232 10Z' clip-rule='evenodd'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-contrast' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M2 10a8 8 0 1 0 16 0 8 8 0 1 0-16 0m8-8v16m8-8h-8m7.598 2.5H10m6.24 2.5H10m7.6-7.5H10M16.242 5H10'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-crop' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M20 14H7.005C6.45 14 6 13.55 6 12.995V0M0 6h13.067c.515 0 .933.418.933.933V20M14.5.4 13 2l1.5 1.6M13 2h2a3 3 0 0 1 3 3v2M5.5 19.6 7 18l-1.5-1.6M7 18H5a3 3 0 0 1-3-3v-2'/></symbol><symbol fill='currentColor' viewBox='0 0 20 20' id='uc-icon-done' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='m18.057 6.333-9.365 9.125a1.25 1.25 0 0 1-1.768-.023L1.92 10.296l1.791-1.744 4.132 4.243 8.47-8.253 1.744 1.79Z' clip-rule='evenodd'/></symbol><symbol fill='currentColor' viewBox='0 0 25 24' id='uc-icon-edit-file' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M18.558 2.804a.78.78 0 0 0-.557.235l-.008.007-2.472 2.46 3.847 3.848 2.46-2.473.004-.003a.78.78 0 0 0 0-1.108l-.004-.003-2.712-2.728a.78.78 0 0 0-.558-.235Zm-.248 7.613-3.852-3.852-8.93 8.887-1.516 5.41 5.41-1.515 8.888-8.93Zm-.636-8.934a2.28 2.28 0 0 1 2.512.505l2.702 2.717.002.002a2.278 2.278 0 0 1 0 3.234l-.002.002-12.541 12.602a.75.75 0 0 1-.33.193l-6.884 1.928a.75.75 0 0 1-.925-.924l1.928-6.885a.75.75 0 0 1 .193-.33l12.603-12.54a2.28 2.28 0 0 1 .742-.504Z' clip-rule='evenodd'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-enhance' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M19 13h-2m0 0a4 4 0 0 1-4-4m4 4a4 4 0 0 0-4 4m0-8V7m0 2a4 4 0 0 1-4 4m-2 0h2m0 0a4 4 0 0 1 4 4m0 0v2M8 8.5H6.5m0 0a2 2 0 0 1-2-2m2 2a2 2 0 0 0-2 2m0-4V5m0 1.5a2 2 0 0 1-2 2M1 8.5h1.5m0 0a2 2 0 0 1 2 2m0 0V12M12 3h-1m0 0a1 1 0 0 1-1-1m1 1a1 1 0 0 0-1 1m0-2V1m0 1a1 1 0 0 1-1 1M8 3h1m0 0a1 1 0 0 1 1 1m0 0v1'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-exposure' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M10 20v-3M2.93 2.929 5.05 5.05M0 10h3m-.07 7.071 2.12-2.121M10 0v3m7.07 14.071-2.12-2.121M20 10h-3m.07-7.071L14.95 5.05M5 10a5 5 0 1 0 10 0 5 5 0 1 0-10 0'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-filters' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M4.5 6.5a5.5 5.5 0 1 0 11 0 5.5 5.5 0 1 0-11 0m-3.5 6a5.5 5.5 0 1 0 11 0 5.5 5.5 0 1 0-11 0m7 0a5.5 5.5 0 1 0 11 0 5.5 5.5 0 1 0-11 0'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-flip' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M19.6 5 18 3.5 16.4 5m3.2 10L18 16.5 16.4 15M18 3.523v12.954M3.3 8.5h10.654c.301 0 .415-.395.159-.554L3.459 1.286A.3.3 0 0 0 3 1.542V8.2a.3.3 0 0 0 .3.3zm0 3h10.654c.301 0 .415.395.159.554l-10.654 6.66A.3.3 0 0 1 3 18.458v-6.66a.3.3 0 0 1 .3-.3z'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-gamma' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M17 3C9 6 2.5 11.5 2.5 17.5m0 0h1m-1 0v-1m14 1h1m-3 0h1m-3 0h1m-3 0h1m-3 0h1m-3 0h1m-3 0h1m-3-14v-1m0 3v-1m0 3v-1m0 3v-1m0 3v-1m0 3v-1m0 3v-1'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-mirror' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M5 .4 3.5 2 5 3.6M15 .4 16.5 2 15 3.6M3.52 2h12.957M8.5 16.7V6.046c0-.301-.394-.415-.554-.159L1.287 16.541a.3.3 0 0 0 .255.459H8.2a.3.3 0 0 0 .3-.3zm3 0V6.046c0-.301.395-.415.555-.159l6.659 10.654a.3.3 0 0 1-.255.459H11.8a.3.3 0 0 1-.3-.3z'/></symbol><symbol viewBox='0 0 40 40' id='uc-icon-original' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.5' d='M0 40 40 0'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-rotate' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M13.5.4 12 2l1.5 1.6M12.023 2H14.4A3.6 3.6 0 0 1 18 5.6V8M4 17h9a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1z'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-sad' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M2 17c4.418-4 11.582-4 16 0M16.5 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-11 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-saturation' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='ruc-icon-id__a' x1='10.001' y1='1' x2='10.001' y2='19' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient></defs><circle cx='10.001' cy='10' r='9' transform='rotate(90 10 10)' fill='url(#ruc-icon-id__a)'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-slider' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M0 10h11m0 0a2 2 0 1 0 4 0m-4 0a2 2 0 1 1 4 0m0 0h5'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-tuning' xmlns='http://www.w3.org/2000/svg'><path stroke-linejoin='round' fill='none' stroke='currentColor' stroke-width='1.2' d='M8 10h11M1 10h4M1 4.5h11m3 0h4m-18 11h11m3 0h4m-7-11a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0-3 0M5 10a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0-3 0m7 5.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0-3 0'/></symbol><symbol viewBox='0 0 20 20' id='uc-icon-vibrance' xmlns='http://www.w3.org/2000/svg'><path d='M2.125 5.64A8.96 8.96 0 0 0 1.001 10a8.96 8.96 0 0 0 1.124 4.36V5.64z' fill='url(#uuc-icon-id__a)'/><path d='M2.875 15.499V4.502a9.053 9.053 0 0 1 1.75-1.72v14.437a9.05 9.05 0 0 1-1.75-1.72z' fill='url(#uuc-icon-id__b)'/><path d='M5.375 17.722c.548.33 1.134.601 1.75.809V1.469a8.956 8.956 0 0 0-1.75.81v15.443z' fill='url(#uuc-icon-id__c)'/><path d='M7.875 1.253v17.495c.564.136 1.15.22 1.75.244V1.008a9 9 0 0 0-1.75.245z' fill='url(#uuc-icon-id__d)'/><path d='M10.375 1.008v17.984a9 9 0 0 0 1.75-.244V1.252a9 9 0 0 0-1.75-.244z' fill='url(#uuc-icon-id__e)'/><path d='M12.875 1.469V18.53a8.957 8.957 0 0 0 1.75-.808V2.277a8.957 8.957 0 0 0-1.75-.808z' fill='url(#uuc-icon-id__f)'/><path d='M15.375 2.78v14.44a9.053 9.053 0 0 0 1.75-1.72v-11a9.054 9.054 0 0 0-1.75-1.72z' fill='url(#uuc-icon-id__g)'/><path d='M17.875 5.638v8.724A8.959 8.959 0 0 0 19.001 10a8.96 8.96 0 0 0-1.126-4.362z' fill='url(#uuc-icon-id__h)'/><defs><linearGradient id='uuc-icon-id__a' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient><linearGradient id='uuc-icon-id__b' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient><linearGradient id='uuc-icon-id__c' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient><linearGradient id='uuc-icon-id__d' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient><linearGradient id='uuc-icon-id__e' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient><linearGradient id='uuc-icon-id__f' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient><linearGradient id='uuc-icon-id__g' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient><linearGradient id='uuc-icon-id__h' x1='19.001' y1='10' x2='1.001' y2='10' gradientUnits='userSpaceOnUse'><stop stop-color='#DE15FF'/><stop offset='.203' stop-color='#0029FF'/><stop offset='.479' stop-color='#2AE4F0'/><stop offset='.604' stop-color='#15EF11'/><stop offset='.75' stop-color='#FAE528'/><stop offset='1' stop-color='#EB2A2A'/></linearGradient></defs></symbol><symbol viewBox='0 0 20 20' id='uc-icon-warmth' xmlns='http://www.w3.org/2000/svg'><path d='m7.5 13.05.429.42.171-.175v-.244h-.6zm5 0h-.6v.245l.172.175.428-.42zM8.1 3.5c0-1.05.85-1.9 1.9-1.9V.4a3.1 3.1 0 0 0-3.1 3.1h1.2zm0 9.55V3.5H6.9v9.55h1.2zm-1 2.45c0-.79.315-1.506.829-2.03l-.858-.84A4.088 4.088 0 0 0 5.9 15.5h1.2zm2.9 2.9a2.9 2.9 0 0 1-2.9-2.9H5.9a4.1 4.1 0 0 0 4.1 4.1v-1.2zm2.9-2.9a2.9 2.9 0 0 1-2.9 2.9v1.2a4.1 4.1 0 0 0 4.1-4.1h-1.2zm-.829-2.03c.514.524.829 1.24.829 2.03h1.2c0-1.117-.447-2.13-1.171-2.87l-.858.84zM11.9 3.5v9.55h1.2V3.5h-1.2zM10 1.6c1.05 0 1.9.85 1.9 1.9h1.2A3.1 3.1 0 0 0 10 .4v1.2z' fill='currentColor'/><path d='M10 14V8' stroke='currentColor' stroke-width='1.2' stroke-linecap='round'/><path d='M14 3h3m-3 3h3m-3 3h3m-8 6.5a1 1 0 1 0 2 0 1 1 0 1 0-2 0' stroke='currentColor' stroke-width='1.2'/></symbol></svg>")} <div class="uc-wrapper uc-wrapper_desktop"><uc-presence-toggle class="uc-network_problems_splash" .visible=${showNetworkProblems}><div class="uc-network_problems_content"><div class="uc-network_problems_icon"><uc-icon name="sad"></uc-icon></div><div class="uc-network_problems_text">Network error</div></div><div class="uc-network_problems_footer"><uc-btn-ui theme="primary" text="Retry" @click=${this._handleRetryNetwork}></uc-btn-ui></div></uc-presence-toggle><div class="uc-viewport"><div class="uc-file_type_outer"><div class="uc-file_type">${fileType}</div></div><div class="uc-image_container" ${(0,ref.K)(this._imgContainerRef)}><img src=${src} class=${this._imageClassName} ${(0,ref.K)(this._imgRef)} /> ${n=this._isInitialized,r=()=>(0,lit.qy)`<uc-editor-image-cropper ${(0,ref.K)(this._cropperRef)}></uc-editor-image-cropper>`,n?r(n):void 0} <uc-editor-image-fader ${(0,ref.K)(this._faderRef)}></uc-editor-image-fader></div><div class="uc-info_pan">${message}</div></div><div class="uc-toolbar"><uc-line-loader-ui .active=${showLoader}></uc-line-loader-ui><div class="uc-toolbar_content uc-toolbar_content__editor"> ${n1=this._isInitialized,r1=()=>(0,lit.qy)`<uc-editor-toolbar></uc-editor-toolbar>`,n1?r1(n1):void 0} </div></div></div>`}updated(changedProperties){super.updated(changedProperties),changedProperties.has("uuid")&&this.uuid&&this.updateImage(),changedProperties.has("cdnUrl")&&this.cdnUrl&&this.updateImage(),changedProperties.has("tabs")&&this._syncTabListFromProp(),(changedProperties.has("cropPreset")||changedProperties.has("cdnUrl"))&&this._syncCropPresetState()}_syncTabListFromProp(){let tabsValue=this.tabs||DEFAULT_TABS;this.$["*tabList"]=(tabs=>{if(!tabs)return toolbar_constants.nz;let tabList=(0,comma_separated.A)(tabs).filter(isTabIdValue);return 0===tabList.length?toolbar_constants.nz:tabList})(tabsValue)}_syncCropPresetState(){let list=(0,parseCropPreset.j)(this.cropPreset??""),closest=null;if(this.cdnUrl){let operations=(0,cdn_utils.I1)(this.cdnUrl),transformations=(0,transformationUtils.ym)(operations);if(Array.isArray(transformations?.crop?.dimensions)){let[w,h]=transformations.crop.dimensions;closest=(0,parseCropPreset.t)(w,h,list,.1)}}this.$["*cropPresetList"]=list,this.$["*currentAspectRatio"]=closest??list?.[0]??null}async updateImage(){if(this.isConnected){if(await this._waitForSize(),this.cdnUrl){let cdnUrlValue=this.cdnUrl,uuid=(0,cdn_utils.p_)(cdnUrlValue),originalUrl=(0,cdn_utils.vo)(cdnUrlValue,uuid);if(originalUrl===this.$["*originalUrl"])return;this.$["*originalUrl"]=originalUrl;let operations=(0,cdn_utils.I1)(cdnUrlValue),transformations=(0,transformationUtils.ym)(operations);this.$["*editorTransformations"]=transformations}else if(this.uuid){let originalUrl=(0,cdn_utils.vo)(this.cfg.cdnCname,this.uuid);if(originalUrl===this.$["*originalUrl"])return;this.$["*originalUrl"]=originalUrl,Object.keys(this.$["*editorTransformations"]).length>0&&(this.$["*editorTransformations"]={})}else throw Error("No UUID nor CDN URL provided");this.$["*tabId"]===toolbar_constants.XB.CROP?this.$["*cropperEl"]?.deactivate({reset:!0}):this.$["*faderEl"]?.deactivate();try{let originalUrlValue=this.$["*originalUrl"],cdnUrl=await this.proxyUrl((0,cdn_utils.LN)(originalUrlValue,(0,cdn_utils.$z)("json"))),{width,height}=await fetch(cdnUrl).then(response=>response.json());this.$["*imageSize"]={width,height},this.$["*tabId"]===toolbar_constants.XB.CROP?this.$["*cropperEl"]?.activate(this.$["*imageSize"]):this.$["*faderEl"]?.activate({url:originalUrlValue})}catch(err){err&&(this.telemetryManager.sendEventError(err,"cloud editor image. Failed to load image info"),console.error("Failed to load image info",err))}this._scheduleInitialization()}}async initEditor(){try{await this._waitForSize()}catch(err){this.isConnected&&console.error(err.message);return}this.classList.add("uc-editor_ON"),this.sub("*networkProblems",networkProblems=>{this._hasNetworkProblems=!!networkProblems}),this.sub("*editorTransformations",transformations=>{if(0===Object.keys(transformations).length)return;let originalUrl=this.$["*originalUrl"],cdnUrlModifiers=(0,cdn_utils.$z)((0,transformationUtils.ON)(transformations),"preview"),cdnUrl=(0,cdn_utils.LN)(originalUrl,cdnUrlModifiers);this.dispatchEvent(new CustomEvent("change",{detail:{originalUrl,cdnUrlModifiers,cdnUrl,transformations},bubbles:!0,composed:!0}))},!1)}constructor(...args){var fnCtx;super(...args),this.ctxOwner=!0,this._statusMessage="",this._imageSrc=TRANSPARENT_PIXEL_SRC,this._fileType="",this._showLoader=!1,this.uuid=null,this.cdnUrl=null,this.cropPreset="",this.tabs=DEFAULT_TABS,this._hasNetworkProblems=!1,this._isInitialized=!1,this._pendingInitUpdate=null,this._debouncedShowLoader=(0,debounce.s)(show=>{this._showLoader=show},300),this._imgRef=(0,ref._)(),this._cropperRef=(0,ref._)(),this._faderRef=(0,ref._)(),this._imgContainerRef=(0,ref._)(),this._handleImageLoad=()=>{this._debouncedShowLoader(!1),this._imageSrc!==TRANSPARENT_PIXEL_SRC&&(this.$["*networkProblems"]=!1)},this._handleImageError=()=>{this._debouncedShowLoader(!1),this.$["*networkProblems"]=!0},this._handleRetryNetwork=()=>{let retry=this.$["*on.retryNetwork"];retry?.()},this.init$={...this.init$,...(fnCtx=this,{"*originalUrl":null,"*loadingOperations":new Map,"*faderEl":null,"*cropperEl":null,"*imgEl":null,"*imgContainerEl":null,"*networkProblems":!1,"*imageSize":null,"*editorTransformations":{},"*cropPresetList":[],"*currentAspectRatio":null,"*tabList":toolbar_constants.nz,"*tabId":toolbar_constants.XB.CROP,"*on.retryNetwork":()=>{for(let img of fnCtx.querySelectorAll("img")){let originalSrc=img.src;img.src=TRANSPARENT_PIXEL_SRC,img.src=originalSrc}fnCtx.$["*networkProblems"]=!1},"*on.apply":transformations=>{if(!transformations)return;let originalUrl=fnCtx.$["*originalUrl"];if(!originalUrl)return void console.warn("Original URL is null, cannot apply transformations");let cdnUrlModifiers=(0,cdn_utils.$z)((0,transformationUtils.ON)(transformations),"preview"),cdnUrl=(0,cdn_utils.LN)(originalUrl,cdnUrlModifiers);fnCtx.dispatchEvent(new CustomEvent("apply",{detail:{originalUrl,cdnUrlModifiers,cdnUrl,transformations},bubbles:!0,composed:!0})),fnCtx.remove()},"*on.cancel":()=>{fnCtx.remove(),fnCtx.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))}})}}}_ts_decorate([(0,lit_decorators.wk)()],CloudImageEditorBlock.prototype,"_statusMessage",void 0),_ts_decorate([(0,lit_decorators.wk)()],CloudImageEditorBlock.prototype,"_imageSrc",void 0),_ts_decorate([(0,lit_decorators.wk)()],CloudImageEditorBlock.prototype,"_fileType",void 0),_ts_decorate([(0,lit_decorators.wk)()],CloudImageEditorBlock.prototype,"_showLoader",void 0),_ts_decorate([(0,lit_decorators.MZ)({type:String,reflect:!0})],CloudImageEditorBlock.prototype,"uuid",void 0),_ts_decorate([(0,lit_decorators.MZ)({type:String,attribute:"cdn-url",reflect:!0})],CloudImageEditorBlock.prototype,"cdnUrl",void 0),_ts_decorate([(0,lit_decorators.MZ)({type:String,attribute:"crop-preset",reflect:!0})],CloudImageEditorBlock.prototype,"cropPreset",void 0),_ts_decorate([(0,lit_decorators.MZ)({type:String,reflect:!0})],CloudImageEditorBlock.prototype,"tabs",void 0),_ts_decorate([(0,lit_decorators.wk)()],CloudImageEditorBlock.prototype,"_hasNetworkProblems",void 0),_ts_decorate([(0,lit_decorators.wk)()],CloudImageEditorBlock.prototype,"_isInitialized",void 0);var UID=__webpack_require__(5446),crop_utils=__webpack_require__(8996);let GUIDE_THIRD=100/3;class CropFrame extends LitBlock.x{get _svgElement(){return this._svgRef.value??null}get _dragging(){return this._draggingValue}set _dragging(value){this._draggingValue!==value&&(this._draggingValue=value,this._applyGuidesDragState())}_applyGuidesDragState(){this._frameGuides&&this._frameGuides.setAttribute("class",classNames({"uc-guides--hidden":this._guidesHidden,"uc-guides--visible":!this._guidesHidden&&this._draggingValue,"uc-guides--semi-hidden":!this._guidesHidden&&!this._draggingValue}))}_shouldThumbBeDisabled(direction){let imageBox=this.$["*imageBox"];if(!imageBox)return!1;if(""===direction&&imageBox.height<=1&&imageBox.width<=1)return!0;let tooHigh=imageBox.height<=1&&(direction.includes("n")||direction.includes("s")),tooWide=imageBox.width<=1&&(direction.includes("e")||direction.includes("w"));return tooHigh||tooWide}_createBackdrop(){let cropBox=this.$["*cropBox"];if(!cropBox)return;let{x,y,width,height}=cropBox,svg=this._svgElement;if(!svg)return;let mask=(0,crop_utils.l8)("mask",{id:this._backdropMaskId}),maskRectOuter=(0,crop_utils.l8)("rect",{x:0,y:0,width:"100%",height:"100%",fill:"white"}),maskRectInner=(0,crop_utils.l8)("rect",{x,y,width,height,fill:"black"});mask.appendChild(maskRectOuter),mask.appendChild(maskRectInner);let backdropRect=(0,crop_utils.l8)("rect",{x:0,y:0,width:"100%",height:"100%",fill:"var(--color-image-background)","fill-opacity":.85,mask:`url(#${this._backdropMaskId})`});svg.appendChild(backdropRect),svg.appendChild(mask),this._backdropMask=mask,this._backdropMaskInner=maskRectInner}_resizeBackdrop(){this._backdropMask&&(this._backdropMask.style.display="none",window.requestAnimationFrame(()=>{this._backdropMask&&(this._backdropMask.style.display="block")}))}_updateBackdrop(){let cropBox=this.$["*cropBox"];if(!cropBox)return;let{x,y,width,height}=cropBox;this._backdropMaskInner&&(0,crop_utils.F2)(this._backdropMaskInner,{x,y,width,height})}_updateFrame(){let cropBox=this.$["*cropBox"];if(cropBox&&this._frameGuides&&this._frameThumbs){for(let thumb of Object.values(this._frameThumbs)){if(!thumb)continue;let{direction,pathNode,interactionNode,groupNode}=thumb,isCenter=""===direction,isCorner=2===direction.length,{x,y,width,height}=cropBox;if(isCenter){let moveThumbRect={x,y,width,height};(0,crop_utils.F2)(interactionNode,moveThumbRect)}else{let thumbSizeMultiplier=(0,crop_utils.qE)(Math.min(width,height)/82/2,0,1),pathInfo=isCorner?(0,crop_utils.VH)(cropBox,direction,thumbSizeMultiplier):(0,crop_utils.fN)(cropBox,direction,thumbSizeMultiplier),center=pathInfo.center;if(!center)continue;let size=Math.max(24*(0,crop_utils.qE)(Math.min(width,height)/24/3,0,1),6);(0,crop_utils.F2)(interactionNode,{x:center[0]-size,y:center[1]-size,width:2*size,height:2*size}),(0,crop_utils.F2)(pathNode,{d:pathInfo.d})}let disableThumb=this._shouldThumbBeDisabled(direction);groupNode.setAttribute("class",classNames("uc-thumb",{"uc-thumb--hidden":disableThumb,"uc-thumb--visible":!disableThumb}))}(0,crop_utils.F2)(this._frameGuides,{x:cropBox.x-.5,y:cropBox.y-.5,width:cropBox.width+1,height:cropBox.height+1})}}_createThumb(frameThumbs,direction){let groupNode=(0,crop_utils.l8)("g");groupNode.classList.add("uc-thumb"),groupNode.setAttribute("with-effects","");let interactionNode=(0,crop_utils.l8)("rect",{fill:"transparent"}),pathNode=(0,crop_utils.l8)("path",{stroke:"currentColor",fill:"none","stroke-width":3});groupNode.appendChild(pathNode),groupNode.appendChild(interactionNode),frameThumbs[direction]={direction,pathNode,interactionNode,groupNode},""===direction&&(groupNode.style.cursor="move"),interactionNode.addEventListener("pointerdown",this._handlePointerDown.bind(this,direction))}_createThumbs(){let frameThumbs={};for(let i=0;i<3;i++)for(let j=0;j<3;j++){let direction=`${["n","","s"][i]}${["w","","e"][j]}`;""!==direction&&this._createThumb(frameThumbs,direction)}return this._createThumb(frameThumbs,""),frameThumbs}_createGuides(){let svg=(0,crop_utils.l8)("svg"),rect=(0,crop_utils.l8)("rect",{x:0,y:0,width:"100%",height:"100%",fill:"none",stroke:"currentColor","stroke-width":1,"stroke-opacity":.5});svg.appendChild(rect);for(let i=1;i<=2;i++){let line=(0,crop_utils.l8)("line",{x1:`${GUIDE_THIRD*i}%`,y1:"0%",x2:`${GUIDE_THIRD*i}%`,y2:"100%",stroke:"currentColor","stroke-width":1,"stroke-opacity":.3});svg.appendChild(line)}for(let i=1;i<=2;i++){let line=(0,crop_utils.l8)("line",{x1:"0%",y1:`${GUIDE_THIRD*i}%`,x2:"100%",y2:`${GUIDE_THIRD*i}%`,stroke:"currentColor","stroke-width":1,"stroke-opacity":.3});svg.appendChild(line)}return svg.classList.add("uc-guides","uc-guides--semi-hidden"),svg}_createFrame(){let svg=this._svgElement;if(!svg)return;let fr=document.createDocumentFragment(),frameGuides=this._createGuides();fr.appendChild(frameGuides);let frameThumbs=this._createThumbs();for(let{groupNode}of Object.values(frameThumbs))fr.appendChild(groupNode);svg.appendChild(fr),this._frameThumbs=frameThumbs,this._frameGuides=frameGuides,this._applyGuidesDragState()}_handlePointerDown(direction,e){if(!this._frameThumbs)return;let thumb=this._frameThumbs[direction];if(!thumb||this._shouldThumbBeDisabled(direction))return;let cropBox=this.$["*cropBox"],svgElement=this._svgElement;if(!svgElement)return;let{x:svgX,y:svgY}=svgElement.getBoundingClientRect(),x=e.x-svgX,y=e.y-svgY;this._dragging=!0,this._draggingThumb=thumb,this._dragStartPoint=[x,y],this._dragStartCrop={...cropBox}}_calcCropBox(direction,delta){let[dx,dy]=delta,imageBox=this.$["*imageBox"],rect=this._dragStartCrop??this.$["*cropBox"],cropPreset=this.$["*currentAspectRatio"],aspectRatio=cropPreset?cropPreset.width/cropPreset.height:void 0;return Object.values(rect=""===direction?(0,crop_utils._J)({rect,delta:[dx,dy],imageBox}):(0,crop_utils.dz)({rect,delta:[dx,dy],direction,aspectRatio,imageBox})).every(number=>Number.isFinite(number)&&number>=0)?(0,crop_utils.YH)((0,crop_utils.rH)(rect),imageBox):void console.error("CropFrame is trying to create invalid rectangle",{payload:rect})}_updateCursor(){let hoverThumb=this._hoverThumb,svg=this._svgElement;svg&&(svg.style.cursor=hoverThumb?(0,crop_utils.vv)(hoverThumb.direction):"initial")}_createMask(href){if(this._frameImage)return void this._frameImage.setAttribute("href",href);let svg=this._svgElement;if(!svg){this._pendingMaskHref=href;return}this._pendingMaskHref=null;let fr=document.createDocumentFragment(),imageNode=(0,crop_utils.l8)("image",{href});imageNode.setAttribute("class","uc-cloud-mask"),fr.appendChild(imageNode),svg.appendChild(fr),this._frameImage=imageNode}_updateMask(){let cropBox=this.$["*cropBox"];if(!cropBox||!this._frameImage)return;let{x,y,width,height}=cropBox;(0,crop_utils.F2)(this._frameImage,{x,y,height,width})}_render(){this._svgReady&&(this._updateBackdrop(),this._updateFrame(),this._updateMask())}toggleThumbs(visible){if(this._frameThumbs)for(let thumb of Object.values(this._frameThumbs)){if(!thumb)continue;let{groupNode}=thumb;groupNode.setAttribute("class",classNames("uc-thumb",{"uc-thumb--hidden":!visible,"uc-thumb--visible":visible}))}}initCallback(){super.initCallback(),this.sub("*imageBox",()=>{this._resizeBackdrop(),this._svgReady&&window.requestAnimationFrame(()=>{this._render()})}),this.sub("*cropBox",cropBox=>{!cropBox||(this._guidesHidden=cropBox.height<=1||cropBox.width<=1,this._applyGuidesDragState(),this._svgReady&&window.requestAnimationFrame(()=>{this._render()}))}),this.subConfigValue("cloudImageEditorMaskHref",maskHref=>{maskHref&&this._createMask(maskHref)}),document.addEventListener("pointermove",this._handlePointerMove,!0),document.addEventListener("pointerup",this._handlePointerUp,!0)}firstUpdated(changedProperties){super.firstUpdated(changedProperties),this._initializeSvg()}_initializeSvg(){let svg=this._svgElement;if(svg&&!this._svgReady){if(this._createBackdrop(),this._createFrame(),this._svgReady=!0,svg.addEventListener("pointermove",this._handleSvgPointerMove,!0),this._pendingMaskHref){let pendingMask=this._pendingMaskHref;this._pendingMaskHref=null,this._createMask(pendingMask)}this._render()}}disconnectedCallback(){super.disconnectedCallback();let svg=this._svgElement;svg?.removeEventListener("pointermove",this._handleSvgPointerMove,!0),document.removeEventListener("pointermove",this._handlePointerMove,!0),document.removeEventListener("pointerup",this._handlePointerUp,!0)}render(){return(0,lit.qy)`<svg class="uc-svg" xmlns="http://www.w3.org/2000/svg" ${(0,ref.K)(this._svgRef)}></svg>`}constructor(...args){super(...args),this._backdropMaskId=`uc-backdrop-mask-${UID.V.generateFastUid()}`,this._guidesHidden=!1,this._draggingValue=!1,this._svgRef=(0,ref._)(),this._svgReady=!1,this._pendingMaskHref=null,this._handlePointerUp=e=>{this._updateCursor(),this._dragging&&(e.stopPropagation(),e.preventDefault(),this._dragging=!1)},this._handlePointerMove=e=>{if(!this._dragging||!this._dragStartPoint||!this._draggingThumb)return;e.stopPropagation(),e.preventDefault();let svg=this._svgElement;if(!svg)return;let{x:svgX,y:svgY}=svg.getBoundingClientRect(),x=e.x-svgX,y=e.y-svgY,dx=x-this._dragStartPoint[0],dy=y-this._dragStartPoint[1],{direction}=this._draggingThumb,movedCropBox=this._calcCropBox(direction,[dx,dy]);movedCropBox&&(this.$["*cropBox"]=movedCropBox)},this._handleSvgPointerMove=e=>{if(!this._frameThumbs)return;let hoverThumb=Object.values(this._frameThumbs).find(thumb=>{if(!thumb||this._shouldThumbBeDisabled(thumb.direction))return!1;let bounds=thumb.interactionNode.getBoundingClientRect(),rect={x:bounds.x,y:bounds.y,width:bounds.width,height:bounds.height};return(0,crop_utils._c)(rect,[e.x,e.y])});this._hoverThumb=hoverThumb,this._updateCursor()}}}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.wk)()],CropFrame.prototype,"_draggingValue",void 0);let class_map_e=(0,directive.u$)(class extends directive.WL{constructor(t){if(super(t),t.type!==directive.OA.ATTRIBUTE||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(s=>t[s]).join(" ")+" "}update(s,[i]){if(void 0===this.st){for(let t in this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter(t=>""!==t))),i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}let r=s.element.classList;for(let t of this.st)t in i||(r.remove(t),this.st.delete(t));for(let t in i){let s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return lit_html.c0}});var if_defined=__webpack_require__(3121);function EditorButtonControl_ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}class EditorButtonControl extends LitBlock.x{get buttonClasses(){let isActive=this.active;return{"uc-active":isActive,"uc-not_active":!isActive}}_updateHostStateClasses(){for(let[className,enabled]of Object.entries(this.buttonClasses))this.classList.toggle(className,enabled)}onClick(_event){}connectedCallback(){super.connectedCallback(),this._updateHostStateClasses()}updated(changedProperties){super.updated(changedProperties),changedProperties.has("active")&&this._updateHostStateClasses()}render(){let clickHandler=this.onClick,title=this.title;return(0,lit.qy)`<button role="option" type="button" aria-label=${(0,if_defined.J)(this.titleProp)} title=${(0,if_defined.J)(this.titleProp)} @click=${clickHandler} ><uc-icon name=${this.icon}></uc-icon><div class="uc-title" ?hidden=${!title}>${title}</div></button>`}constructor(...args){super(...args),this.active=!1,this.title="",this.icon="",this.titleProp=""}}EditorButtonControl_ts_decorate([(0,lit_decorators.wk)()],EditorButtonControl.prototype,"active",void 0),EditorButtonControl_ts_decorate([(0,lit_decorators.wk)()],EditorButtonControl.prototype,"title",void 0),EditorButtonControl_ts_decorate([(0,lit_decorators.wk)()],EditorButtonControl.prototype,"icon",void 0),EditorButtonControl_ts_decorate([(0,lit_decorators.wk)()],EditorButtonControl.prototype,"titleProp",void 0);class EditorFreeformButtonControl extends EditorButtonControl{initCallback(){super.initCallback(),this.icon="arrow-dropdown",this.sub("*currentAspectRatio",opt=>{let title=this._computeTitle(opt);this.title=title,this.titleProp=title})}onClick(){this.$["*showListAspectRatio"]=!0}_computeTitle(aspectRatio){return aspectRatio?aspectRatio.hasFreeform?this.l10n("freeform-crop"):this.l10n("crop-to-shape",{value:`${aspectRatio.width}:${aspectRatio.height}`}):""}render(){let clickHandler=this.onClick,title=this.title;return(0,lit.qy)`<button role="option" type="button" class=${class_map_e(this.buttonClasses)} aria-label=${(0,if_defined.J)(this.titleProp)} title=${(0,if_defined.J)(this.titleProp)} @click=${clickHandler} ><div class="uc-title" ?hidden=${!title}>${title}</div><uc-icon name=${this.icon}></uc-icon></button>`}}class EditorAspectRatioButtonControl extends EditorButtonControl{get aspectRatio(){return this._aspectRatio}set aspectRatio(value){if(this._aspectRatio===value)return;let previous=this._aspectRatio;this._aspectRatio=value,this.requestUpdate("aspectRatio",previous),value?this._updateAspectRatioPresentation(value):(this.removeAttribute("uc-aspect-ratio-freeform"),this.title="",this.titleProp="")}initCallback(){super.initCallback(),this._aspectRatio&&this._updateAspectRatioPresentation(this._aspectRatio),this.sub("*currentAspectRatio",opt=>{this.active=opt&&opt.id===this._aspectRatio?.id||opt?.width===this._aspectRatio?.width&&opt?.height===this._aspectRatio?.height})}onClick(){let currentAspectRatio=this.$["*currentAspectRatio"];currentAspectRatio?.id!==this._aspectRatio?.id&&(this.$["*currentAspectRatio"]=this._aspectRatio)}_updateAspectRatioPresentation(value){let titleText;if(!this.isConnected)return;let isFreeform=!!value.hasFreeform;this.toggleAttribute("uc-aspect-ratio-freeform",isFreeform);let resolveTitleProp=()=>{let label=this.l10n("a11y-cloud-editor-apply-aspect-ratio",{name:isFreeform?this.l10n("custom").toLowerCase():this.l10n("crop-to-shape",{value:`${value.width}:${value.height}`}).toLowerCase(),value:""});return this.titleProp=label,label};titleText=isFreeform?this.l10n("custom"):`${value.width}:${value.height}`,this.title=titleText,resolveTitleProp(),isFreeform||this.requestUpdate()}_renderIcon(){let width,height,ratio=this._aspectRatio;if(!ratio||ratio.hasFreeform)return(0,lit.qy)`<uc-icon name=${this.icon}></uc-icon>`;let{width:width1,height:height1}=(width=12,height=12,ratio.width/ratio.height>=1?(width=12,height=Math.round(12*ratio.height/ratio.width)):(height=12,width=Math.round(12*ratio.width/ratio.height)),{width,height});return(0,lit.qy)`<uc-icon><svg viewBox="0 0 ${16} ${16}" aria-hidden="true" focusable="false" ><rect x=${(16-width1)/2} y=${(16-height1)/2} width=${width1} height=${height1} rx="2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round" ></rect></svg></uc-icon>`}render(){let clickHandler=this.onClick,title=this.title;return(0,lit.qy)`<button role="option" type="button" class=${class_map_e(this.buttonClasses)} aria-label=${(0,if_defined.J)(this.titleProp)} title=${(0,if_defined.J)(this.titleProp)} @click=${clickHandler} > ${this._renderIcon()} <div class="uc-title" ?hidden=${!title}>${title}</div></button>`}constructor(...args){super(...args),this._aspectRatio=null}}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.MZ)({attribute:!1})],EditorAspectRatioButtonControl.prototype,"aspectRatio",null);class EditorCropButtonControl extends EditorButtonControl{willUpdate(changedProperties){super.willUpdate(changedProperties),this.operation?(this.titleProp=this.l10n("a11y-cloud-editor-apply-crop",{name:this.l10n(this.operation).toLowerCase()}),this.icon=this.operation):(this.icon="",this.titleProp="")}onClick(e){if(!this.operation)return;let cropper=this.$["*cropperEl"],prev=cropper.getValue(this.operation),next=function(operation,prev){if("rotate"===operation){let angle;return(angle=("number"==typeof prev?prev:0)+90)>=360?0:angle}if("mirror"===operation||"flip"===operation)return!prev;throw Error(`Unsupported operation: ${operation}`)}(this.operation,prev);this.telemetryManager.sendEventCloudImageEditor(e,this.$["*tabId"],{operation:this.operation,next,prev}),cropper.setValue(this.operation,next)}constructor(...args){super(...args),this.operation=void 0}}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.MZ)({type:String})],EditorCropButtonControl.prototype,"operation",void 0);var style_map=__webpack_require__(5350),env=__webpack_require__(5704);function preloadImage(src){let image=new Image;return{promise:new Promise((resolve,reject)=>{image.src=src,image.onload=()=>resolve(),image.onerror=err=>reject(err)}),image,cancel:()=>{0===image.naturalWidth&&(image.src=TRANSPARENT_PIXEL_SRC)}}}function batchPreloadImages(list){let preloaders=[];for(let src of list){let preload=preloadImage(src);preloaders.push(preload)}let images=preloaders.map(preload=>preload.image);return{promise:Promise.allSettled(preloaders.map(preload=>preload.promise)),images,cancel:()=>{preloaders.forEach(preload=>{preload.cancel()})}}}let FAKE_ORIGINAL_FILTER="original";class EditorSlider extends LitBlock.x{setOperation(operation,filter){this.state={...this.state,operation,filter},this._initializeValues();let fader=this.$["*faderEl"],originalUrl=this.state.originalUrl||this.$["*originalUrl"];fader&&originalUrl&&fader.activate({url:originalUrl,operation:this.state.operation,value:this.state.filter===FAKE_ORIGINAL_FILTER?void 0:this.state.value,filter:this.state.filter===FAKE_ORIGINAL_FILTER?void 0:this.state.filter,fromViewer:!1})}_initializeValues(){let operation=this.state.operation,{range,zero}=toolbar_constants.UA[operation],[min,max]=range;this.state={...this.state,min,max,zero};let transformation=this.$["*editorTransformations"][operation];if("filter"===operation){let value=Number(max);if(transformation){let{name,amount}=transformation;value=name===this.state.filter?amount:max}this.state={...this.state,value,defaultValue:value};return}let value=void 0!==transformation?transformation:zero;this.state={...this.state,value,defaultValue:value}}apply(){let transformations={...this.$["*editorTransformations"]};"filter"===this.state.operation?this.state.filter&&this.state.filter!==FAKE_ORIGINAL_FILTER?transformations.filter={name:this.state.filter,amount:this.state.value}:delete transformations.filter:transformations[this.state.operation]=this.state.value,this.$["*editorTransformations"]=transformations}cancel(){let fader=this.$["*faderEl"];fader?.deactivate({hide:!1})}initCallback(){super.initCallback(),this.sub("*originalUrl",originalUrl=>{originalUrl&&(this.state={...this.state,originalUrl})})}updated(changedProperties){if(super.updated(changedProperties),changedProperties.has("state")){let tooltip=`${this.state.filter??this.state.operation} ${this.state.value}`;this.$["*operationTooltip"]=tooltip}}render(){return(0,lit.qy)`<uc-slider-ui .disabled=${this.state.disabled} .min=${this.state.min} .max=${this.state.max} .defaultValue=${this.state.defaultValue} .zero=${this.state.zero} @slider-input=${this._handleInput} ></uc-slider-ui>`}constructor(...args){super(...args),this.state={operation:"filter",filter:void 0,originalUrl:"",disabled:!1,min:0,max:100,value:0,defaultValue:0,zero:0},this._handleInput=e=>{let{value}=e.detail,fader=this.$["*faderEl"];fader?.set(value),this.state={...this.state,value}}}}function parseFilterValue(str){if(!str)return null;let match=str.match(/^([A-Za-z]+)\s+(\d+)$/);if(!match)return null;let[,filter,amount]=match;return filter&&void 0!==amount?{filter,value:Number(amount)}:null}function EditorFilterControl_ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.wk)()],EditorSlider.prototype,"state",void 0);class EditorFilterControl extends EditorButtonControl{get filter(){return this._filter}set filter(value){let nextFilter=value??"";if(this._filter===nextFilter)return;let previousValue=this._filter;this._filter=nextFilter,this._operation="filter",this.isOriginal=nextFilter===FAKE_ORIGINAL_FILTER,this.icon=this.isOriginal?"original":"slider",this._iconSize=this.isOriginal?40:20,this.requestUpdate("filter",previousValue),this.isConnected&&this._updateFilterLabels(nextFilter)}onClick(e){if(this.active)this.isOriginal||(this.$["*sliderEl"].setOperation(this._operation,this._filter),this.$["*showSlider"]=!0);else{let slider=this.$["*sliderEl"];slider.setOperation(this._operation,this._filter),slider.apply()}this.telemetryManager.sendEventCloudImageEditor(e,this.$["*tabId"],{operation:parseFilterValue(this.$["*operationTooltip"])}),this.$["*currentFilter"]=this._filter}_previewSrc(){let cssSize=parseInt(window.getComputedStyle(this).getPropertyValue("--l-base-min-width"),10),previewSize=Number.isFinite(cssSize)&&cssSize>0?cssSize:this._iconSize||32,dpr=window.devicePixelRatio,size=Math.ceil(dpr*previewSize),transformations={...this.$["*editorTransformations"]};return transformations[this._operation]=this._filter!==FAKE_ORIGINAL_FILTER?{name:this._filter,amount:100}:void 0,(0,cdn_utils.LN)(this._originalUrl,(0,cdn_utils.$z)(transformationUtils.jO,(0,transformationUtils.ON)(transformations),`quality/${dpr>=2?"lightest":"normal"}`,`scale_crop/${size}x${size}/center`,`@clib/${env.r}/${env.i}/uc-cloud-image-editor/`))}async _observerCallback(entries,observer){let intersectionEntry=entries[0];intersectionEntry?.isIntersecting?await this._loadPreview(observer):this._cancelPreload?.()}initCallback(){super.initCallback(),this._observer=new window.IntersectionObserver(this._observerCallback.bind(this),{threshold:[0,1]});let originalUrl=this.$["*originalUrl"];this._originalUrl=originalUrl??"",this.sub("*originalUrl",nextUrl=>{this._originalUrl=nextUrl??"",!this.isOriginal&&this._originalUrl&&this.isConnected&&!this._previewImage&&(this._observer?.observe(this),this._schedulePreviewVisibilityCheck())}),this.isOriginal||(this._observer?.observe(this),this._schedulePreviewVisibilityCheck()),this._filter&&this._updateFilterLabels(this._filter),this.sub("*currentFilter",currentFilter=>{this.active=!!(currentFilter&&currentFilter===this._filter)}),this.sub("*networkProblems",async networkProblems=>{networkProblems||(this._previewImage?await this._loadPreview():this._schedulePreviewVisibilityCheck())})}disconnectedCallback(){super.disconnectedCallback(),this._observer?.disconnect(),this._cancelPreload?.(),this._clearPreviewVisibilityChecks()}updated(changedProperties){super.updated(changedProperties),changedProperties.has("isOriginal")&&(this.isOriginal?this._observer?.unobserve(this):(this._observer?.observe(this),this._schedulePreviewVisibilityCheck()))}_updateFilterLabels(filterName){if(!filterName){this.titleProp="";return}let label=this.l10n("a11y-cloud-editor-apply-filter",{name:filterName.toLowerCase()});this.titleProp=label}async _loadPreview(observer){if(!this.isConnected){observer?.unobserve(this),this._cancelPreload?.(),this._cancelPreload=void 0;return}if(!this._originalUrl){this._previewVisibilityCheckTimeout||this._previewVisibilityCheckRaf||this._schedulePreviewVisibilityCheck();return}let requestId=++this._lastPreviewRequestId,src="";try{src=await this.proxyUrl(this._previewSrc())}catch(err){this.$["*networkProblems"]=!0,console.error("Failed to resolve preview URL",{error:err});return}this._previewLoaded=!1,this._cancelPreload?.();let{promise,cancel}=preloadImage(src);this._cancelPreload=()=>{cancel(),this._lastPreviewRequestId===requestId&&(this._cancelPreload=void 0)};try{if(await promise,this._lastPreviewRequestId!==requestId||!this.isConnected)return;this._previewImage=src,this._previewLoaded=!0,this._clearPreviewVisibilityChecks(),(observer??this._observer)?.unobserve(this)}catch(err){this.$["*networkProblems"]=!0,console.error("Failed to load image",{error:err}),this._schedulePreviewVisibilityCheck()}finally{this._lastPreviewRequestId===requestId&&(this._cancelPreload=void 0)}}_schedulePreviewVisibilityCheck(){!this.isConnected||this._previewImage||this._previewLoaded||this.isOriginal||this.$["*networkProblems"]?this._clearPreviewVisibilityChecks():(this._previewVisibilityCheckRaf&&cancelAnimationFrame(this._previewVisibilityCheckRaf),this._previewVisibilityCheckRaf=requestAnimationFrame(()=>{if(this._previewVisibilityCheckRaf=void 0,!this.isConnected||this._previewImage||this._previewLoaded||this.isOriginal)return void this._clearPreviewVisibilityChecks();let rect=this.getBoundingClientRect(),hasSize=rect.width>0&&rect.height>0,viewportWidth=window.innerWidth||document.documentElement.clientWidth,viewportHeight=window.innerHeight||document.documentElement.clientHeight;hasSize&&rect.bottom>0&&rect.right>0&&rect.top<viewportHeight&&rect.left<viewportWidth?this._loadPreview():this._previewVisibilityCheckTimeout=window.setTimeout(()=>{this._previewVisibilityCheckTimeout=void 0,this._schedulePreviewVisibilityCheck()},500)}))}_clearPreviewVisibilityChecks(){this._previewVisibilityCheckRaf&&(cancelAnimationFrame(this._previewVisibilityCheckRaf),this._previewVisibilityCheckRaf=void 0),this._previewVisibilityCheckTimeout&&(window.clearTimeout(this._previewVisibilityCheckTimeout),this._previewVisibilityCheckTimeout=void 0)}get _shouldShowPreview(){return!!(this._previewLoaded&&!this.active&&!this.isOriginal)}render(){let clickHandler=this.onClick,previewStyles={opacity:this._shouldShowPreview?"1":"0"};this._previewImage&&(previewStyles.backgroundImage=`url(${this._previewImage})`);let iconStyles={opacity:this.active||this.isOriginal?"1":"0"};return(0,lit.qy)`<button role="option" type="button" class=${class_map_e(this.buttonClasses)} aria-label=${(0,if_defined.J)(this.titleProp)} title=${(0,if_defined.J)(this.titleProp)} @click=${clickHandler} ><div class="uc-preview" ?data-loaded=${this._previewLoaded} style=${(0,style_map.W)(previewStyles)}></div><uc-icon class=${class_map_e({"uc-original-icon":this.isOriginal})} name=${this.icon} style=${(0,style_map.W)(iconStyles)} ></uc-icon></button>`}constructor(...args){super(...args),this._operation="",this._filter="",this._originalUrl="",this._lastPreviewRequestId=0,this._previewImage=null,this._previewLoaded=!1,this.isOriginal=!1,this._iconSize=20}}function viewerImageSrc(originalUrl,width,transformations){let dpr=window.devicePixelRatio,size=Math.min(Math.ceil(width*dpr),3e3);return(0,cdn_utils.LN)(originalUrl,(0,cdn_utils.$z)(transformationUtils.jO,(0,transformationUtils.ON)(transformations),`quality/${dpr>=2?"lightest":"normal"}`,`stretch/off/-/resize/${size}x`,`@clib/${env.r}/${env.i}/uc-cloud-image-editor/`))}EditorFilterControl_ts_decorate([(0,lit_decorators.wk)()],EditorFilterControl.prototype,"_previewImage",void 0),EditorFilterControl_ts_decorate([(0,lit_decorators.wk)()],EditorFilterControl.prototype,"_previewLoaded",void 0),EditorFilterControl_ts_decorate([(0,lit_decorators.wk)()],EditorFilterControl.prototype,"isOriginal",void 0),EditorFilterControl_ts_decorate([(0,lit_decorators.wk)()],EditorFilterControl.prototype,"_iconSize",void 0),EditorFilterControl_ts_decorate([(0,lit_decorators.MZ)({type:String})],EditorFilterControl.prototype,"filter",null);class EditorImageCropper extends LitBlock.x{constructor(){var fn;let lastFn,inThrottle,lastTime,throttled;super(),this.ctxOwner=!0,this._imageSize={width:0,height:0},this._ctx=null,this._isActive=!1,this._image=null,this._canvasRef=(0,ref._)(),this._frameRef=(0,ref._)(),this.init$={...this.init$,"*padding":20,"*operations":{rotate:0,mirror:!1,flip:!1},"*imageBox":{x:0,y:0,width:0,height:0},"*cropBox":{x:0,y:0,width:0,height:0}},this._commitDebounced=(0,debounce.s)(this._commit.bind(this),300),this._handleResizeThrottled=(fn=()=>{this.isConnected&&this._isActive&&(this._initCanvas(),this._syncTransformations(),this._alignImage(),this._alignCrop(),this._draw())},inThrottle=!1,lastTime=0,Object.defineProperty(throttled=(...args)=>{inThrottle?(lastFn&&clearTimeout(lastFn),lastFn=setTimeout(()=>{Date.now()-lastTime>=100&&(fn(...args),lastTime=Date.now())},Math.max(100-(Date.now()-lastTime),0))):(fn(...args),lastTime=Date.now(),inThrottle=!0)},"cancel",{configurable:!1,writable:!1,enumerable:!1,value:()=>{lastFn&&clearTimeout(lastFn)}}),throttled)}firstUpdated(changedProperties){super.firstUpdated(changedProperties),this._initCanvas()}_syncTransformations(){let pickedTransformations=function(obj,keys){let result={};for(let key of keys){let value=obj[key];(Object.hasOwn(obj,key)||void 0!==value)&&(result[key]=value)}return result}(this.$["*editorTransformations"],Object.keys(this.$["*operations"])),operations={...this.$["*operations"],...pickedTransformations};this.$["*operations"]=operations}_initCanvas(){let canvas=this._canvasRef.value;if(!canvas)return;let ctx=canvas.getContext("2d"),width=this.offsetWidth,height=this.offsetHeight,dpr=window.devicePixelRatio;canvas.style.width=`${width}px`,canvas.style.height=`${height}px`,canvas.width=width*dpr,canvas.height=height*dpr,ctx?.scale(dpr,dpr),this._canvas=canvas,this._ctx=ctx}_alignImage(){let imageBox;if(!this._isActive||!this._image)return;let image=this._image,padding=this.$["*padding"],{rotate}=this.$["*operations"],bounds={width:this.offsetWidth,height:this.offsetHeight},naturalSize=(0,crop_utils.BT)({width:image.naturalWidth,height:image.naturalHeight},rotate);if(naturalSize.width>bounds.width-2*padding||naturalSize.height>bounds.height-2*padding){let imageAspectRatio=naturalSize.width/naturalSize.height;if(imageAspectRatio>bounds.width/bounds.height){let width=bounds.width-2*padding,height=width/imageAspectRatio;imageBox={x:0+padding,y:padding+(bounds.height-2*padding)/2-height/2,width,height}}else{let height=bounds.height-2*padding,width=height*imageAspectRatio;imageBox={x:padding+(bounds.width-2*padding)/2-width/2,y:0+padding,width,height}}}else{let{width,height}=naturalSize;imageBox={x:padding+(bounds.width-2*padding)/2-width/2,y:padding+(bounds.height-2*padding)/2-height/2,width,height}}this.$["*imageBox"]=(0,crop_utils.rH)(imageBox)}_alignCrop(){let cropBox=this.$["*cropBox"],imageBox=this.$["*imageBox"],{rotate}=this.$["*operations"],cropTransformation=this.$["*editorTransformations"].crop,{width:previewWidth,x:previewX,y:previewY}=imageBox;if(cropTransformation){let{dimensions:[width,height],coords:[x,y]}=cropTransformation,{width:sourceWidth}=(0,crop_utils.BT)(this._imageSize,rotate),ratio=previewWidth/sourceWidth;cropBox=(0,crop_utils.YH)((0,crop_utils.rH)({x:previewX+x*ratio,y:previewY+y*ratio,width:width*ratio,height:height*ratio}),imageBox)}let cropPreset=this.$["*currentAspectRatio"],cropAspectRatio=cropPreset?cropPreset.width/cropPreset.height:void 0;if(!(0,crop_utils.Ze)(cropBox,imageBox)||cropAspectRatio&&!(0,crop_utils.n)(cropBox,cropAspectRatio)){let imageAspectRatio=imageBox.width/imageBox.height,width=imageBox.width,height=imageBox.height;cropAspectRatio&&(imageAspectRatio>cropAspectRatio?width=Math.min(imageBox.height*cropAspectRatio,imageBox.width):height=Math.min(imageBox.width/cropAspectRatio,imageBox.height)),cropBox={x:imageBox.x+imageBox.width/2-width/2,y:imageBox.y+imageBox.height/2-height/2,width,height}}this.$["*cropBox"]=(0,crop_utils.YH)((0,crop_utils.rH)(cropBox),imageBox)}_drawImage(){let ctx=this._ctx;if(!ctx)return;let image=this._image;if(!image)return;let imageBox=this.$["*imageBox"],{mirror,flip,rotate}=this.$["*operations"],rotated=(0,crop_utils.BT)({width:imageBox.width,height:imageBox.height},rotate);ctx.save(),ctx.translate(imageBox.x+imageBox.width/2,imageBox.y+imageBox.height/2),ctx.rotate(-(rotate*Math.PI*1)/180),ctx.scale(mirror?-1:1,flip?-1:1),ctx.drawImage(image,-rotated.width/2,-rotated.height/2,rotated.width,rotated.height),ctx.restore()}_draw(){if(!this._isActive||!this._image||!this._canvas||!this._ctx)return;let canvas=this._canvas;this._ctx.clearRect(0,0,canvas.width,canvas.height),this._drawImage()}_animateIn({fromViewer}){this._image&&(this._frameRef.value?.toggleThumbs(!0),this._transitionToImage(),setTimeout(()=>{this.className=classNames({"uc-active_from_viewer":fromViewer,"uc-active_from_editor":!fromViewer,"uc-inactive_to_editor":!1})}))}_getCropDimensions(){let cropBox=this.$["*cropBox"],imageBox=this.$["*imageBox"],{rotate}=this.$["*operations"],{width:previewWidth,height:previewHeight}=imageBox,{width:sourceWidth,height:sourceHeight}=(0,crop_utils.BT)(this._imageSize,rotate),{width:cropWidth,height:cropHeight}=cropBox,ratioW=previewWidth/sourceWidth,ratioH=previewHeight/sourceHeight;return[(0,crop_utils.qE)(Math.round(cropWidth/ratioW),1,sourceWidth),(0,crop_utils.qE)(Math.round(cropHeight/ratioH),1,sourceHeight)]}_getCropTransformation(){let cropBox=this.$["*cropBox"],imageBox=this.$["*imageBox"],{rotate}=this.$["*operations"],{width:previewWidth,height:previewHeight,x:previewX,y:previewY}=imageBox,{width:sourceWidth,height:sourceHeight}=(0,crop_utils.BT)(this._imageSize,rotate),{x:cropX,y:cropY}=cropBox,dimensions=this._getCropDimensions(),crop={dimensions,coords:[(0,crop_utils.qE)(Math.round((cropX-previewX)/(previewWidth/sourceWidth)),0,sourceWidth-dimensions[0]),(0,crop_utils.qE)(Math.round((cropY-previewY)/(previewHeight/sourceHeight)),0,sourceHeight-dimensions[1])]};return!crop||[({dimensions,coords})=>[...dimensions,...coords].every(number=>Number.isInteger(number)&&Number.isFinite(number)),({dimensions,coords})=>dimensions.every(d=>d>0)&&coords.every(c=>c>=0)].every(matcher=>matcher(crop))?dimensions[0]!==sourceWidth||dimensions[1]!==sourceHeight?crop:void 0:void console.error("Cropper is trying to create invalid crop object",{payload:crop})}_commit(){if(!this.isConnected||!this._imageSize)return;let{rotate,mirror,flip}=this.$["*operations"],crop=this._getCropTransformation(),transformations={...this.$["*editorTransformations"],crop,rotate,mirror,flip};this.$["*editorTransformations"]=transformations}setValue(operation,value){this.$["*operations"]={...this.$["*operations"],[operation]:value},this._isActive&&(this._alignImage(),this._alignCrop(),this._draw())}getValue(operation){return this.$["*operations"][operation]}async activate(imageSize,{fromViewer}={}){if(!this._isActive){this._isActive=!0,await this.updateComplete,this._initCanvas(),this._imageSize=imageSize,this.removeEventListener("transitionend",this._reset);try{let originalUrl=this.$["*originalUrl"],transformations=this.$["*editorTransformations"];this._image=await this._waitForImage(originalUrl,transformations),this._syncTransformations(),this._handleResizeThrottled(),this._animateIn({fromViewer})}catch(err){console.error("Failed to activate cropper",{error:err}),this.telemetryManager.sendEventError(err,"cloud editor image. Failed to activate cropper")}this._observer=new ResizeObserver(entries=>{let[entry]=entries;!entry||entry.contentRect.width>0&&entry.contentRect.height>0&&this._isActive&&this._image&&this._handleResizeThrottled()}),this._observer.observe(this)}}deactivate({reset=!1}={}){this._isActive&&(reset||this._commit(),this._isActive=!1,this._transitionToCrop(),this.className=classNames({"uc-active_from_viewer":!1,"uc-active_from_editor":!1,"uc-inactive_to_editor":!0}),this._frameRef.value?.toggleThumbs(!1),this.addEventListener("transitionend",this._reset,{once:!0}),this._observer?.disconnect())}_transitionToCrop(){let dimensions=this._getCropDimensions(),cropBox=this.$["*cropBox"],scale=Math.min(Math.min(this.offsetWidth,dimensions[0])/cropBox.width,Math.min(this.offsetHeight,dimensions[1])/cropBox.height),cropCenterX=cropBox.x+cropBox.width/2,cropCenterY=cropBox.y+cropBox.height/2;this.style.transform=`scale(${scale}) translate(${(this.offsetWidth/2-cropCenterX)/scale}px, ${(this.offsetHeight/2-cropCenterY)/scale}px)`,this.style.transformOrigin=`${cropCenterX}px ${cropCenterY}px`}_transitionToImage(){let cropBox=this.$["*cropBox"],cropCenterX=cropBox.x+cropBox.width/2,cropCenterY=cropBox.y+cropBox.height/2;this.style.transform="scale(1)",this.style.transformOrigin=`${cropCenterX}px ${cropCenterY}px`}_reset(){this._isActive||(this._image=null)}async _waitForImage(originalUrl,transformations){let width=this.offsetWidth;transformations={...transformations,crop:void 0,rotate:void 0,flip:void 0,mirror:void 0};let src=await this.proxyUrl(viewerImageSrc(originalUrl,width,transformations)),{promise,cancel,image}=preloadImage(src),stop=this._handleImageLoading(src);return image.addEventListener("load",stop,{once:!0}),image.addEventListener("error",stop,{once:!0}),this._cancelPreload?.(),this._cancelPreload=cancel,promise.then(()=>image).catch(err=>(console.error("Failed to load image",{error:err}),this.$["*networkProblems"]=!0,image))}_handleImageLoading(src){let operation="crop",loadingOperations=this.$["*loadingOperations"],operationMap=loadingOperations.get(operation);return operationMap||(operationMap=new Map,loadingOperations.set(operation,operationMap)),operationMap.get(src)||(operationMap.set(src,!0),this.$["*loadingOperations"]=loadingOperations),()=>{let map=loadingOperations.get(operation);map?.has(src)&&(map.delete(src),this.$["*loadingOperations"]=loadingOperations)}}initCallback(){super.initCallback(),this.sub("*imageBox",()=>{this._draw()}),this.sub("*cropBox",()=>{this._image&&this._commitDebounced()}),this.sub("*currentAspectRatio",()=>{this._alignCrop()}),setTimeout(()=>{this.sub("*networkProblems",networkProblems=>{!networkProblems&&this._isActive&&this._imageSize&&this.activate(this._imageSize,{fromViewer:!1})})},0)}disconnectedCallback(){super.disconnectedCallback(),this._observer?.disconnect(),this._image&&(this._image=null)}render(){return(0,lit.qy)`<canvas class="uc-canvas" ${(0,ref.K)(this._canvasRef)}></canvas><uc-crop-frame ${(0,ref.K)(this._frameRef)}></uc-crop-frame>`}}function linspace(a,b,n){let lastIndex=n-1,ret=Array(n);for(let i=lastIndex;i>=0;i-=1)ret[i]=Math.ceil((i*b+(lastIndex-i)*a)/lastIndex);return ret}function keypointsRange(operation,value){let n=toolbar_constants.UA[operation].keypointsNumber,{range,zero}=toolbar_constants.UA[operation];return[...new Set([...linspace(range[0],zero,n+1),...linspace(zero,range[1],n+1),zero,value])].sort((a,b)=>a-b)}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.wk)()],EditorImageCropper.prototype,"_image",void 0);class EditorImageFader extends LitBlock.x{constructor(){super(),this._isActive=!1,this._hidden=!0,this._operation="initial",this._transformations={},this._keypoints=[],this._raf=0,this._previewHostRef=(0,ref._)(),this._layersHostRef=(0,ref._)(),this.classList.add("uc-inactive_to_cropper"),this._addKeypointDebounced=(0,debounce.s)(async(operation,filter,value)=>{let shouldSkip=()=>!this._isSame(operation,filter)||this._value!==value||!!this._keypoints.find(kp=>kp.value===value);if(shouldSkip())return;let keypoint=await this._constructKeypoint(operation,value),image=new Image;image.src=keypoint.src;let stop=this._handleImageLoading(keypoint.src);image.addEventListener("load",stop,{once:!0}),image.addEventListener("error",stop,{once:!0}),keypoint.image=image,image.classList.add("uc-fader-image"),image.addEventListener("load",()=>{if(shouldSkip())return;let keypoints=this._keypoints,insertIndex=keypoints.findIndex(kp=>kp.value>value);-1===insertIndex&&(insertIndex=keypoints.length);let nextKeypoint=keypoints[insertIndex],insertBeforeNode=nextKeypoint?.image,container=this._layersHostRef.value;container&&(!insertBeforeNode||container.contains(insertBeforeNode))&&(keypoints.splice(insertIndex,0,keypoint),insertBeforeNode?container.insertBefore(image,insertBeforeNode):container.appendChild(image),this._update(operation,value))},{once:!0}),image.addEventListener("error",()=>{this.$["*networkProblems"]=!0},{once:!0})},600)}_handleImageLoading(src){let operation=this._operation,loadingOperations=this.$["*loadingOperations"];loadingOperations.has(operation)||loadingOperations.set(operation,new Map);let operationMap=loadingOperations.get(operation);return operationMap&&!operationMap.get(src)&&(operationMap.set(src,!0),this.$["*loadingOperations"]=loadingOperations),()=>{let currentOperationMap=loadingOperations.get(operation);currentOperationMap?.has(src)&&(currentOperationMap.delete(src),this.$["*loadingOperations"]=loadingOperations)}}_flush(){window.cancelAnimationFrame(this._raf),this._raf=window.requestAnimationFrame(()=>{for(let kp of this._keypoints){let{image}=kp;image&&(image.style.opacity=kp.opacity.toString(),image.style.zIndex=kp.zIndex.toString())}})}_imageSrc({url=this._url,filter=this._filter??void 0,operation,value}={}){if(!url)throw Error("URL is not defined");let transformations={...this._transformations};operation&&("filter"===operation?filter&&"number"==typeof value&&(transformations.filter={name:filter,amount:value}):"number"==typeof value&&(transformations[operation]=value));let width=this.offsetWidth;return this.proxyUrl(viewerImageSrc(url,width,transformations))}async _constructKeypoint(operation,value){return{src:await this._imageSrc({operation,value}),image:void 0,opacity:0,zIndex:0,value}}_isSame(operation,filter){return this._operation===operation&&this._filter===filter}set(value){var value1;let numericValue="string"==typeof value?parseInt(value,10):value;"string"==typeof(value1=this._operation)&&value1 in toolbar_constants.UA&&Number.isFinite(numericValue)&&(this._update(this._operation,numericValue),this._addKeypointDebounced(this._operation,this._filter,numericValue))}_update(operation,value){this._operation=operation,this._value=value;let{zero}=toolbar_constants.UA[operation],keypointValues=this._keypoints.map(kp=>kp.value),opacities=function(keypoints,value,zero){let section=(function(numbers){let sections=[];for(let idx=0;idx<numbers.length-1;idx+=1){let current=numbers[idx],next=numbers[idx+1];"number"==typeof current&&"number"==typeof next&&sections.push([current,next])}return sections})(keypoints).find(([left,right])=>left<=value&&value<=right);if(!section)return keypoints.map(()=>0);let[left,right]=section;return keypoints.map(point=>{let distance=Math.abs(left-right)||1,relation=Math.abs(value-left)/distance;return left===point?value>zero?1:1-relation:right===point?value>=zero?relation:1:0})}(keypointValues,value,zero),zIndices=keypointValues.map((point,idx)=>point<zero?keypointValues.length-idx:idx);this._keypoints.forEach((kp,idx)=>{let opacity=opacities[idx],zIndex=zIndices[idx];"number"==typeof opacity&&(kp.opacity=opacity),"number"==typeof zIndex&&(kp.zIndex=zIndex)}),this._flush()}_createPreviewImage(){let image=new Image;return image.classList.add("uc-fader-image","uc-fader-image--preview"),image.style.opacity="0",image}async _initNodes(){this._previewImage=this._previewImage||this._createPreviewImage();let previewImage=this._previewImage;previewImage&&this._ensurePreviewAttached(previewImage);let{images,promise,cancel}=batchPreloadImages(this._keypoints.map(kp=>kp.src));images.forEach(node=>{let stop=this._handleImageLoading(node.src);node.addEventListener("load",stop),node.addEventListener("error",stop)}),this._cancelLastImages=()=>{cancel(),this._cancelLastImages=void 0};let operation=this._operation,filter=this._filter;if(await promise,this._isActive&&this._isSame(operation,filter)){let host=this._layersHostRef.value;if(!host)return;host.replaceChildren(),this._keypoints.forEach((kp,idx)=>{let kpImage=images[idx];kpImage&&(kpImage.classList.add("uc-fader-image"),kp.image=kpImage,host.appendChild(kpImage))}),this._flush()}}async setTransformations(transformations){if(this._transformations=transformations,this._previewImage){let src=await this._imageSrc(),stop=this._handleImageLoading(src);this._previewImage.src=src,this._previewImage.addEventListener("load",stop,{once:!0}),this._previewImage.addEventListener("error",stop,{once:!0}),this._previewImage.style.opacity="1",this._previewImage.addEventListener("error",()=>{this.$["*networkProblems"]=!0},{once:!0})}}async preload({url,filter,operation,value}){if(!operation||"number"!=typeof value)return;this._cancelBatchPreload?.();let keypoints=keypointsRange(operation,value),{cancel}=batchPreloadImages(await Promise.all(keypoints.map(kp=>this._imageSrc({url,filter,operation,value:kp}))));this._cancelBatchPreload=cancel}_setOriginalSrc(src){let image=this._previewImage||this._createPreviewImage();if(this._ensurePreviewAttached(image),this._previewImage=image,image.src===src){image.style.opacity="1",image.style.transform="scale(1)",this.className=classNames({"uc-active_from_viewer":this._fromViewer,"uc-active_from_cropper":!this._fromViewer,"uc-inactive_to_cropper":!1});return}image.style.opacity="0";let stop=this._handleImageLoading(src);image.addEventListener("error",stop,{once:!0}),image.src=src,image.addEventListener("load",()=>{stop(),image&&(image.style.opacity="1",image.style.transform="scale(1)",this.className=classNames({"uc-active_from_viewer":this._fromViewer,"uc-active_from_cropper":!this._fromViewer,"uc-inactive_to_cropper":!1}))},{once:!0}),image.addEventListener("error",()=>{this.$["*networkProblems"]=!0},{once:!0})}async activate({url,operation,value,filter,fromViewer}){if(this._isActive=!0,this._hidden=!1,await this.updateComplete,this._url=url,this._operation=operation??"initial",this._value=value,this._filter=filter,this._fromViewer=fromViewer,"number"!=typeof value&&!filter){let src=await this._imageSrc({operation,value});this._setOriginalSrc(src),this._clearLayersHost();return}operation&&"number"==typeof value&&(this._keypoints=await Promise.all(keypointsRange(operation,value).map(keyValue=>this._constructKeypoint(operation,keyValue))),this._update(operation,value),this._initNodes())}deactivate({hide=!0}={}){this._isActive=!1,this._cancelLastImages?.(),this._cancelBatchPreload?.(),hide&&!this._hidden?(this._hidden=!0,this._previewImage&&(this._previewImage.style.transform="scale(1)"),this.className=classNames({"uc-active_from_viewer":!1,"uc-active_from_cropper":!1,"uc-inactive_to_cropper":!0}),this.addEventListener("transitionend",()=>{this._clearLayersHost()},{once:!0})):this._clearLayersHost()}_ensurePreviewAttached(image){let host=this._previewHostRef.value;host&&(host.contains(image)||host.appendChild(image))}_clearLayersHost(){this._layersHostRef.value?.replaceChildren()}render(){return(0,lit.qy)`<div class="uc-fader-preview-host" ${(0,ref.K)(this._previewHostRef)}></div><div class="uc-fader-layers-host" ${(0,ref.K)(this._layersHostRef)}></div>`}}class EditorOperationControl extends EditorButtonControl{get operation(){return this._operation}set operation(value){let normalizedValue=value??"";if(this._operation===normalizedValue)return;let previousValue=this._operation;this._operation=normalizedValue,this.requestUpdate("operation",previousValue),this.isConnected&&normalizedValue&&this._updateOperationMetadata(normalizedValue)}_updateOperationMetadata(operation){let label;this.icon=operation;let resolveTitle=()=>{let titleText=this.l10n(operation);return this.title=titleText,titleText};label=this.l10n("a11y-cloud-editor-apply-tuning",{name:this.l10n(operation).toLowerCase()}),this.titleProp=label,resolveTitle()}initCallback(){super.initCallback(),this._operation&&this._updateOperationMetadata(this._operation),this.sub("*editorTransformations",editorTransformations=>{if(!this._operation)return;let{zero}=toolbar_constants.UA[this._operation],value=editorTransformations[this._operation];this.active=void 0!==value&&value!==zero})}onClick(e){let slider=this.$["*sliderEl"];slider?.setOperation(this._operation),this.$["*showSlider"]=!0,this.$["*currentOperation"]=this._operation,this.telemetryManager.sendEventCloudImageEditor(e,this.$["*tabId"],{operation:parseFilterValue(this.$["*operationTooltip"])})}constructor(...args){super(...args),this._operation=""}}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.MZ)({type:String})],EditorOperationControl.prototype,"operation",null);let noopScrollListener=()=>{};class EditorScroller extends LitBlock.x{connectedCallback(){super.connectedCallback(),this.addEventListener("wheel",this._handleWheel,{passive:!1}),this.addEventListener("scroll",noopScrollListener,{passive:!0})}disconnectedCallback(){this.removeEventListener("wheel",this._handleWheel),this.removeEventListener("scroll",noopScrollListener),super.disconnectedCallback()}constructor(...args){super(...args),this.hiddenScrollbar=!1,this._handleWheel=event=>{event.preventDefault();let{deltaY,deltaX}=event;if(Math.abs(deltaX)>1){this.scrollLeft+=deltaX;return}this.scrollLeft+=deltaY}}}function EditorToolbar_ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.MZ)({type:Boolean,noAccessor:!0,attribute:"hidden-scrollbar"})],EditorScroller.prototype,"hiddenScrollbar",void 0);class EditorToolbar extends LitBlock.x{_onSliderClose(){this.$["*showSlider"]=!1,this.$["*tabId"]===toolbar_constants.XB.CROP&&(this.$["*showListAspectRatio"]=!1),this.$["*tabId"]===toolbar_constants.XB.TUNING&&(this._tooltipVisible=!1)}_activateTab(id,{fromViewer=!1,force=!1}={}){this.$["*tabId"]!==id&&(this.$["*tabId"]=id),this._applyTabState(id,{fromViewer,force})}_applyTabState(id,{fromViewer,force=!1}){if(!force&&this.activeTab===id)return void this._syncTabIndicator();this.activeTab=id;let faderEl=this.$["*faderEl"],cropperEl=this.$["*cropperEl"];for(let tabId of(id===toolbar_constants.XB.CROP?(faderEl?.deactivate(),this.$["*imageSize"]&&cropperEl?.activate(this.$["*imageSize"],{fromViewer})):(faderEl?.activate({url:this.$["*originalUrl"],fromViewer}),cropperEl?.deactivate()),toolbar_constants.nz)){let isCurrentTab=tabId===id,toggleRef=this.tabToggleRefs[tabId],toggleEl=toggleRef?.value;toggleEl&&(toggleEl.active=isCurrentTab),isCurrentTab&&this._syncTabIndicator()}}_syncTabIndicator(){let toggleRef=this.tabToggleRefs[this.activeTab],toggleEl=toggleRef?.value,indicatorEl=this._tabIndicatorRef.value;if(!toggleEl||!indicatorEl)return;let offset=toggleEl.offsetLeft,width=toggleEl.offsetWidth||Number(getComputedStyle(toggleEl).width.replace("px",""));(this._tabIndicatorOffset!==offset||this._tabIndicatorWidth!==width)&&(this._tabIndicatorOffset=offset,this._tabIndicatorWidth=width,indicatorEl.style.transform=`translateX(${offset}px)`,indicatorEl.style.width=`${width}px`)}get _hasAspectRatioPicker(){return this._cropPresets.length>=3}_renderControlsByTab(tabId){switch(tabId){case toolbar_constants.XB.CROP:return this._renderCropTabControls();case toolbar_constants.XB.FILTERS:return this._renderFilterTabControls();case toolbar_constants.XB.TUNING:return this._renderTuningTabControls();default:return[]}}_renderCropTabControls(){let renderers=[];if(this._hasAspectRatioPicker)renderers.push(()=>this._renderFreeformControl());else for(let preset of this._cropPresets)renderers.push(()=>this._renderAspectRatioControl(preset));for(let operation of toolbar_constants.Y_)renderers.push(()=>this._renderCropOperationControl(operation));return this._renderControlGroup(renderers)}_renderFilterTabControls(){let renderers=[FAKE_ORIGINAL_FILTER,...toolbar_constants._6].map(filterId=>()=>this._renderFilterControl(filterId));return this._renderControlGroup(renderers)}_renderTuningTabControls(){let renderers=toolbar_constants.DY.map(operation=>()=>this._renderOperationControl(operation));return this._renderControlGroup(renderers)}_renderControlGroup(renderers){return renderers.length?renderers.map(renderControl=>renderControl()):[]}_renderFreeformControl(){return(0,lit.qy)`<uc-editor-freeform-button-control></uc-editor-freeform-button-control>`}_renderAspectRatioControl(preset){return(0,lit.qy)`<uc-editor-aspect-ratio-button-control .aspectRatio=${preset}></uc-editor-aspect-ratio-button-control>`}_renderCropOperationControl(operation){return(0,lit.qy)`<uc-editor-crop-button-control .operation=${operation}></uc-editor-crop-button-control>`}_renderFilterControl(filterId){return(0,lit.qy)`<uc-editor-filter-control .filter=${filterId}></uc-editor-filter-control>`}_renderOperationControl(operation){return(0,lit.qy)`<uc-editor-operation-control .operation=${operation}></uc-editor-operation-control>`}_renderAspectRatioList(){return this._hasAspectRatioPicker?this._cropPresets.map(preset=>this._renderAspectRatioControl(preset)):[]}async _preloadEditedImage(){if(this.$["*imgContainerEl"]&&this.$["*originalUrl"]){let width=this.$["*imgContainerEl"].offsetWidth,src=await this.proxyUrl(viewerImageSrc(this.$["*originalUrl"],width,this.$["*editorTransformations"]));this._cancelPreload?.();let{cancel}=batchPreloadImages([src]);this._cancelPreload=()=>{cancel(),this._cancelPreload=void 0}}}initCallback(){super.initCallback();let initialCropPresets=this.$["*cropPresetList"]??[];this._cropPresets=[...initialCropPresets],this.sub("*cropPresetList",cropPresetList=>{this._cropPresets=[...cropPresetList??[]]}),this.sub("*imageSize",imageSize=>{imageSize&&setTimeout(()=>{this._activateTab(this.$["*tabId"],{fromViewer:!0})},0)}),this.sub("*editorTransformations",editorTransformations=>{let appliedFilter=editorTransformations?.filter?.name;this.$["*currentFilter"]!==appliedFilter&&(this.$["*currentFilter"]=appliedFilter??"")}),this.sub("*currentFilter",()=>{this._updateInfoTooltip()}),this.sub("*currentOperation",()=>{this._updateInfoTooltip()}),this.sub("*tabId",tabId=>{this._applyTabState(tabId,{fromViewer:!1,force:!0}),this._updateInfoTooltip()}),this.sub("*originalUrl",()=>{this.$["*faderEl"]?.deactivate()}),this.sub("*editorTransformations",transformations=>{this._preloadEditedImage(),this.$["*faderEl"]?.setTransformations(transformations)}),this.sub("*loadingOperations",loadingOperations=>{let anyLoading=!1;for(let[,mapping]of loadingOperations.entries()){if(anyLoading)break;for(let[,loading]of mapping.entries())if(loading){anyLoading=!0;break}}this._debouncedShowLoader(anyLoading)}),this.sub("*showSlider",showSlider=>{showSlider?(this.showSubToolbar=!0,this.showMainToolbar=!1,this._useSliderPanel=!0):this.$["*showListAspectRatio"]||(this.showSubToolbar=!1,this.showMainToolbar=!0)}),this.sub("*showListAspectRatio",show=>{show?(this.showSubToolbar=!0,this.showMainToolbar=!1,this._useSliderPanel=!1):this.$["*showSlider"]||(this.showSubToolbar=!1,this.showMainToolbar=!0)}),this.sub("*tabList",tabList=>{if(this.tabList=tabList,this._showTabToggles=tabList.length>1,!tabList.includes(this.$["*tabId"])&&tabList.length>0){let[firstTab]=tabList;firstTab&&this._activateTab(firstTab,{fromViewer:!1});return}this._syncTabIndicator()}),this.sub("*operationTooltip",tooltip=>{this._operationTooltip=tooltip}),this._updateInfoTooltip()}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this._handleWindowResize)}firstUpdated(changedProperties){super.firstUpdated(changedProperties),this._assignSharedElements(),this._syncTabIndicator()}updated(changedProperties){super.updated(changedProperties),(changedProperties.has("activeTab")||changedProperties.has("tabList"))&&this.updateComplete.then(()=>this._syncTabIndicator()),(changedProperties.has("showSubToolbar")||changedProperties.has("showMainToolbar"))&&this._assignSharedElements()}disconnectedCallback(){window.removeEventListener("resize",this._handleWindowResize),super.disconnectedCallback(),this.$["*showSlider"]=!1,this.$["*showListAspectRatio"]=!1}_assignSharedElements(){let slider=this._sliderRef.value;slider&&(this.$["*sliderEl"]=slider)}_renderTabToggle(id){let isVisible=this.tabList.includes(id),isActive=this.activeTab===id,columnIndex=this.tabList.indexOf(id),style=columnIndex>=0?(0,style_map.W)({gridColumn:`${columnIndex+1}`}):lit.s6;return(0,lit.qy)` <uc-presence-toggle class="uc-tab-toggle" .visible=${isVisible} .styles=${this._tabToggleStyles}><uc-btn-ui theme="tab" data-id=${id} icon=${id} role="tab" aria-controls=${`tab_${id}`} aria-selected=${isActive?"true":"false"} title-prop=${`a11y-editor-tab-${id}`} .active=${isActive} style=${style} @click=${this._handleTabClick} ${(0,ref.K)(this.tabToggleRefs[id])} ></uc-btn-ui></uc-presence-toggle>`}_renderTabContent(id){let controls=this._renderControlsByTab(id);return(0,lit.qy)` <div id=${`tab_${id}`} class="uc-tab-content" ><uc-editor-scroller hidden-scrollbar><div class="uc-controls-list_align"><div role="listbox" aria-orientation="horizontal" class="uc-controls-list_inner"> ${controls.length?controls:lit.s6} </div></div></uc-editor-scroller></div>`}render(){let tooltipClasses=["uc-info-tooltip",this._tooltipVisible?"uc-info-tooltip_visible":"uc-info-tooltip_hidden"].join(" "),showAspectRatioList=this._hasAspectRatioPicker;return(0,lit.qy)`<uc-line-loader-ui .active=${this._showLoader}></uc-line-loader-ui><div class="uc-info-tooltip_container"><div class="uc-info-tooltip_wrapper"><div class=${tooltipClasses}>${this._operationTooltip??""}</div></div></div><div class="uc-toolbar-container"><uc-presence-toggle role="tablist" class="uc-sub-toolbar" .visible=${this.showMainToolbar} .styles=${this._subTopToolbarStyles} ><div class="uc-tab-content-row"> ${toolbar_constants.nz.map(tabId=>{var n,r;return n=this.activeTab===tabId,r=()=>this._renderTabContent(tabId),n?r(n):void 0})} </div><div class="uc-controls-row"><uc-presence-toggle class="uc-tab-toggles" .visible=${this._showTabToggles} .styles=${this._tabTogglesStyles} @initial-render=${()=>this._syncTabIndicator()} ><div class="uc-tab-toggles_indicator" ${(0,ref.K)(this._tabIndicatorRef)} ></div> ${toolbar_constants.nz.map(tabId=>this._renderTabToggle(tabId))} </uc-presence-toggle><uc-btn-ui style="order: -1" theme="secondary-icon" icon="closeMax" title-prop="cancel" @click=${this._handleCancel} ></uc-btn-ui><uc-btn-ui theme="primary-icon" icon="done" title-prop="apply" @click=${this._handleApply}></uc-btn-ui></div></uc-presence-toggle><uc-presence-toggle class="uc-sub-toolbar" .visible=${this.showSubToolbar} .styles=${this._subBottomToolbarStyles}><div class="uc-slider" ?hidden=${!this._useSliderPanel}><uc-editor-slider ${(0,ref.K)(this._sliderRef)}></uc-editor-slider></div><div class="uc-list-aspect-ratio-container" ?hidden=${this._useSliderPanel||!showAspectRatioList}> ${showAspectRatioList?(0,lit.qy)`<div class="uc-list-aspect-ratio">${this._renderAspectRatioList()}</div>`:lit.s6} </div><div class="uc-controls-row"><uc-btn-ui theme="secondary" @click=${this._handleCancelSlider} text=${this.l10n("cancel")}></uc-btn-ui><uc-btn-ui theme="primary" @click=${this._handleApplySlider} text=${this.l10n("apply")}></uc-btn-ui></div></uc-presence-toggle></div>`}constructor(...args){super(...args),this._showLoader=!1,this.showMainToolbar=!0,this.showSubToolbar=!1,this._showTabToggles=!0,this.tabList=[...toolbar_constants.nz],this.activeTab=toolbar_constants.XB.CROP,this._useSliderPanel=!0,this._tooltipVisible=!1,this._operationTooltip=null,this._tabIndicatorOffset=0,this._tabIndicatorWidth=0,this._sliderRef=(0,ref._)(),this._tabIndicatorRef=(0,ref._)(),this.tabToggleRefs={[toolbar_constants.XB.CROP]:(0,ref._)(),[toolbar_constants.XB.TUNING]:(0,ref._)(),[toolbar_constants.XB.FILTERS]:(0,ref._)()},this._handleWindowResize=()=>{this._syncTabIndicator()},this._cropPresets=[],this._debouncedShowLoader=(0,debounce.s)(show=>{this._showLoader=show},500),this._updateInfoTooltip=(0,debounce.s)(()=>{let transformations=this.$["*editorTransformations"],currentOperation=this.$["*currentOperation"],text="",visible=!1;if(this.$["*tabId"]===toolbar_constants.XB.FILTERS)if(visible=!0,this.$["*currentFilter"]&&transformations?.filter?.name===this.$["*currentFilter"]){let value=transformations?.filter?.amount||100;text=`${this.$["*currentFilter"]} ${value}`}else text=this.l10n(FAKE_ORIGINAL_FILTER);else if(this.showSubToolbar&&this.$["*tabId"]===toolbar_constants.XB.TUNING&&currentOperation){visible=!0;let value=transformations?.[currentOperation]||toolbar_constants.UA[currentOperation].zero;text=`${this.l10n(currentOperation)} ${value}`}visible&&(this.$["*operationTooltip"]=text),this._tooltipVisible=visible},0),this._subTopToolbarStyles={hidden:"uc-sub-toolbar--top-hidden",visible:"uc-sub-toolbar--visible"},this._subBottomToolbarStyles={hidden:"uc-sub-toolbar--bottom-hidden",visible:"uc-sub-toolbar--visible"},this._tabToggleStyles={hidden:"uc-tab-toggle--hidden",visible:"uc-tab-toggle--visible"},this._tabTogglesStyles={hidden:"uc-tab-toggles--hidden",visible:"uc-tab-toggles--visible"},this.init$={...this.init$,"*sliderEl":null,"*showSlider":!1,"*showListAspectRatio":!1,"*currentFilter":FAKE_ORIGINAL_FILTER,"*currentOperation":null,"*operationTooltip":null},this._handleCancel=e=>{this.telemetryManager.sendEventCloudImageEditor(e,this.$["*tabId"],{action:"cancel"}),this._cancelPreload?.();let onCancel=this.$["*on.cancel"];onCancel?.()},this._handleApply=e=>{this.telemetryManager.sendEventCloudImageEditor(e,this.$["*tabId"],{action:"apply"});let onApply=this.$["*on.apply"];onApply?.(this.$["*editorTransformations"])},this._handleApplySlider=e=>{this.telemetryManager.sendEventCloudImageEditor(e,this.$["*tabId"],{action:"apply-slider",operation:parseFilterValue(this.$["*operationTooltip"])});let slider=this._sliderRef.value;slider?.apply(),this._onSliderClose()},this._handleCancelSlider=e=>{this.telemetryManager.sendEventCloudImageEditor(e,this.$["*tabId"],{action:"cancel-slider"});let slider=this._sliderRef.value;slider?.cancel(),this._onSliderClose()},this._handleTabClick=e=>{let target=e.currentTarget,id=target?.getAttribute("data-id");id&&(this.telemetryManager.sendEventCloudImageEditor(e,id),this._activateTab(id,{fromViewer:!1}))}}}function BtnUi_ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"_showLoader",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"showMainToolbar",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"showSubToolbar",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"_showTabToggles",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"tabList",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"activeTab",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"_useSliderPanel",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"_tooltipVisible",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"_operationTooltip",void 0),EditorToolbar_ts_decorate([(0,lit_decorators.wk)()],EditorToolbar.prototype,"_cropPresets",void 0);class BtnUi extends LitBlock.x{firstUpdated(changed){super.firstUpdated(changed),this._applyReverse(),this._applyThemeClass()}updated(changed){super.updated(changed),changed.has("reverse")&&this._applyReverse(),changed.has("theme")&&this._applyThemeClass()}_applyReverse(){this.style.flexDirection=this.reverse?"row-reverse":""}_applyThemeClass(){this.theme&&"custom"!==this.theme&&(this.className=`uc-${this.theme}`)}get _iconClassMap(){let iconHidden=this._computedIconHidden;return{"uc-icon":!0,"uc-icon_left":!this.reverse,"uc-icon_right":this.reverse,"uc-icon_hidden":iconHidden,"uc-icon_single":this._computedIconSingle}}get _computedIconHidden(){return!this.icon}get _computedIconSingle(){return!this.text&&!this._computedIconHidden}render(){return(0,lit.qy)`<button type="button" role=${(0,if_defined.J)(this.ariaRole||void 0)} aria-controls=${(0,if_defined.J)(this.ariaControls||void 0)} aria-label=${(0,if_defined.J)(this.l10n(this.titleProp))} title=${(0,if_defined.J)(this.l10n(this.titleProp))} ><uc-icon class=${class_map_e(this._iconClassMap)} name=${(0,if_defined.J)(this.icon||void 0)} ?hidden=${this._computedIconHidden} ></uc-icon><div class="uc-text">${this.text}</div></button>`}constructor(...args){super(...args),this.text="",this.icon="",this.reverse=!1,this.theme="default",this.ariaRole=void 0,this.ariaControls="",this.titleProp="",this.active=!1}}BtnUi_ts_decorate([(0,lit_decorators.MZ)({type:String})],BtnUi.prototype,"text",void 0),BtnUi_ts_decorate([(0,lit_decorators.MZ)({type:String})],BtnUi.prototype,"icon",void 0),BtnUi_ts_decorate([(0,lit_decorators.MZ)({type:Boolean,reflect:!0})],BtnUi.prototype,"reverse",void 0),BtnUi_ts_decorate([(0,lit_decorators.MZ)({type:String,reflect:!0})],BtnUi.prototype,"theme",void 0),BtnUi_ts_decorate([(0,lit_decorators.MZ)({attribute:"aria-role"})],BtnUi.prototype,"ariaRole",void 0),BtnUi_ts_decorate([(0,lit_decorators.MZ)({attribute:"aria-controls"})],BtnUi.prototype,"ariaControls",void 0),BtnUi_ts_decorate([(0,lit_decorators.MZ)({attribute:"title-prop"})],BtnUi.prototype,"titleProp",void 0),BtnUi_ts_decorate([(0,lit_decorators.MZ)({type:Boolean,noAccessor:!0})],BtnUi.prototype,"active",void 0);class LineLoaderUi extends LitBlock.x{firstUpdated(changedProperties){super.firstUpdated(changedProperties),this.active&&this._start()}updated(changedProperties){super.updated(changedProperties),changedProperties.has("active")&&(this.active?this._start():this._stop())}_start(){let lineEl=this._lineRef.value;if(!lineEl)return;this._isAnimating=!0;let{width}=this.getBoundingClientRect();lineEl.removeEventListener("transitionend",this._handleTransitionEndRight),lineEl.style.transition="transform 1s",lineEl.style.opacity="1",lineEl.style.transform=`translateX(${width}px)`,lineEl.addEventListener("transitionend",this._handleTransitionEndRight,{once:!0})}_stop(){let lineEl=this._lineRef.value;lineEl&&(this._isAnimating=!1,lineEl.removeEventListener("transitionend",this._handleTransitionEndRight),this._resetLine(lineEl))}_resetLine(lineEl){lineEl.style.transition="initial",lineEl.style.opacity="0",lineEl.style.transform="translateX(-101%)"}render(){return(0,lit.qy)`<div class="uc-inner"><div class="uc-line" ${(0,ref.K)(this._lineRef)}></div></div>`}constructor(...args){super(...args),this.active=!1,this._lineRef=(0,ref._)(),this._isAnimating=!1,this._handleTransitionEndRight=()=>{let lineEl=this._lineRef.value;lineEl&&(this._resetLine(lineEl),this._isAnimating&&this.active&&this._start())}}}function PresenceToggle_ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}!function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);c>3&&r&&Object.defineProperty(target,key,r)}([(0,lit_decorators.MZ)({type:Boolean,reflect:!0})],LineLoaderUi.prototype,"active",void 0);let DEFAULT_STYLE={transition:"uc-transition",visible:"uc-visible",hidden:"uc-hidden"};class PresenceToggle extends LitBlock.x{set visible(value){this._visible=value,this._handleVisible()}get visible(){return this._visible}set styles(styles){this._styles=styles,this._externalTransitions=!0,this._visibleStyle=styles.visible??DEFAULT_STYLE.visible,this._hiddenStyle=styles.hidden??DEFAULT_STYLE.hidden}get styles(){return this._styles}_handleVisible(){this.style.visibility=this._visible?"inherit":"hidden",function(element,...args){let mapping=normalize(...args);for(let token of Object.keys(mapping))element.classList.toggle(token,!!mapping[token])}(this,{[DEFAULT_STYLE.transition]:!this._externalTransitions,[this._visibleStyle]:this._visible,[this._hiddenStyle]:!this._visible}),this.toggleAttribute("inert",!this._visible)}_dispatchInitialRenderEvent(){this._initialRenderComplete||(this._initialRenderComplete=!0,this.dispatchEvent(new CustomEvent("initial-render",{bubbles:!0,composed:!0})))}initCallback(){super.initCallback(),this.classList.toggle("uc-initial",!0),this._externalTransitions||this.classList.add(DEFAULT_STYLE.transition),this._handleVisible(),setTimeout(()=>{this.classList.toggle("uc-initial",!1),this._dispatchInitialRenderEvent()},0)}constructor(...args){super(...args),this._visible=!1,this._styles=DEFAULT_STYLE,this._visibleStyle=DEFAULT_STYLE.visible,this._hiddenStyle=DEFAULT_STYLE.hidden,this._externalTransitions=!1,this._initialRenderComplete=!1}}function SliderUi_ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}PresenceToggle_ts_decorate([(0,lit_decorators.MZ)({type:Boolean})],PresenceToggle.prototype,"visible",null),PresenceToggle_ts_decorate([(0,lit_decorators.MZ)({attribute:!1})],PresenceToggle.prototype,"styles",null);class SliderUi extends LitBlock.x{constructor(){super(),this._thumbSize=0,this._inputRef=(0,ref._)(),this._thumbRef=(0,ref._)(),this._stepsRef=(0,ref._)(),this.disabled=!1,this.min=0,this.max=100,this.defaultValue=0,this.zero=0,this._currentValue=0,this._handleSliderInput=event=>{event.stopPropagation();let value=this._extractEventValue(event);null!==value&&(this._setCurrentValue(value),this._emitSliderEvent("slider-input",value))},this._handleSliderChange=event=>{event.stopPropagation();let value=this._extractEventValue(event);null!==value&&this._setCurrentValue(value)},this._handleInputFocus=()=>{this.style.setProperty("--color-effect","var(--hover-color-rgb)")},this._handleInputBlur=()=>{this.style.setProperty("--color-effect","var(--idle-color-rgb)")},this.setAttribute("with-effects","")}_emitSliderEvent(type,value){this.dispatchEvent(new CustomEvent(type,{detail:{value},bubbles:!0,composed:!0}))}firstUpdated(changedProperties){super.firstUpdated(changedProperties),this._thumbSize=Number.parseInt(window.getComputedStyle(this).getPropertyValue("--l-thumb-size"),10)||0,this._syncInputValue(this._currentValue),this._updateSteps(),this._observer=new ResizeObserver(()=>{this._updateSteps(),this._updateValue(this._currentValue)}),this._observer.observe(this);let inputEl=this._inputRef.value;inputEl?.addEventListener("focus",this._handleInputFocus),inputEl?.addEventListener("blur",this._handleInputBlur),window.setTimeout(()=>{this._updateValue(this._currentValue)},0)}willUpdate(changedProperties){super.willUpdate(changedProperties),changedProperties.has("defaultValue")&&this.defaultValue!==this._currentValue&&this._setCurrentValue(this.defaultValue),(changedProperties.has("min")||changedProperties.has("max"))&&this.hasUpdated&&(this._updateSteps(),this._updateValue(this._currentValue)),changedProperties.has("zero")&&this.hasUpdated&&this._updateZeroDot(this._currentValue)}_updateValue(value){this._updateZeroDot(value);let range=this.max-this.min;if(0===range)return;let{width}=this.getBoundingClientRect(),offset=100/range*(value-this.min)*(width-this._thumbSize)/100;window.requestAnimationFrame(()=>{let thumbEl=this._thumbRef.value;thumbEl&&(thumbEl.style.transform=`translateX(${offset}px)`)})}_updateZeroDot(value){if(!this._zeroDotEl)return;let range=this.max-this.min;if(0===range)return;this._zeroDotEl.style.opacity=value===this.zero?"0":"1";let{width}=this.getBoundingClientRect(),offset=100/range*(this.zero-this.min)*(width-this._thumbSize)/100;window.requestAnimationFrame(()=>{this._zeroDotEl&&(this._zeroDotEl.style.transform=`translateX(${offset}px)`)})}_updateSteps(){let stepsEl=this._stepsRef.value;if(!stepsEl)return;let{width}=stepsEl.getBoundingClientRect(),count=Math.ceil(Math.ceil(width/2)/15)-2;if(this._stepsCount===count)return;let fragment=document.createDocumentFragment(),minorStepEl=document.createElement("div"),borderStepEl=document.createElement("div");minorStepEl.className="uc-minor-step",borderStepEl.className="uc-border-step",fragment.appendChild(borderStepEl);for(let i=0;i<count;i+=1)fragment.appendChild(minorStepEl.cloneNode());fragment.appendChild(borderStepEl.cloneNode());for(let i=0;i<count;i+=1)fragment.appendChild(minorStepEl.cloneNode());fragment.appendChild(borderStepEl.cloneNode());let zeroDotEl=document.createElement("div");zeroDotEl.className="uc-zero-dot",fragment.appendChild(zeroDotEl),this._zeroDotEl=zeroDotEl,stepsEl.innerHTML="",stepsEl.appendChild(fragment),this._stepsCount=count}disconnectedCallback(){super.disconnectedCallback();let inputEl=this._inputRef.value;inputEl?.removeEventListener("focus",this._handleInputFocus),inputEl?.removeEventListener("blur",this._handleInputBlur),this._observer?.disconnect(),this._observer=void 0}_setCurrentValue(value){Number.isFinite(value)&&(this._currentValue=value,this.hasUpdated&&(this._syncInputValue(value),this._updateValue(value)))}_syncInputValue(value){let inputEl=this._inputRef.value;inputEl&&(inputEl.value=String(value))}_extractEventValue(event){let target=event.currentTarget;if(!target)return null;let parsedValue=Number.parseInt(target.value,10);return Number.isFinite(parsedValue)?parsedValue:null}render(){return(0,lit.qy)`<div class="uc-steps" ${(0,ref.K)(this._stepsRef)}></div><div class="uc-thumb" ${(0,ref.K)(this._thumbRef)}></div><input class="uc-input" type="range" ${(0,ref.K)(this._inputRef)} .min=${String(this.min)} .max=${String(this.max)} .value=${String(this._currentValue)} ?disabled=${this.disabled} @input=${this._handleSliderInput} @change=${this._handleSliderChange} />`}}SliderUi_ts_decorate([(0,lit_decorators.MZ)({type:Boolean,reflect:!0})],SliderUi.prototype,"disabled",void 0),SliderUi_ts_decorate([(0,lit_decorators.MZ)({type:Number})],SliderUi.prototype,"min",void 0),SliderUi_ts_decorate([(0,lit_decorators.MZ)({type:Number})],SliderUi.prototype,"max",void 0),SliderUi_ts_decorate([(0,lit_decorators.MZ)({type:Number,attribute:!1})],SliderUi.prototype,"defaultValue",void 0),SliderUi_ts_decorate([(0,lit_decorators.MZ)({type:Number})],SliderUi.prototype,"zero",void 0),SliderUi_ts_decorate([(0,lit_decorators.wk)()],SliderUi.prototype,"_currentValue",void 0);var EventEmitter=__webpack_require__(9963);class CloudImageEditor extends CloudImageEditorBlock{static{this.styleAttrs=[...super.styleAttrs,"uc-wgt-common"]}constructor(){super(),this.init$={...this.init$,"*solution":this.tagName}}initCallback(){super.initCallback(),this.telemetryManager.sendEvent({eventType:EventEmitter.Kc.INIT_SOLUTION}),this.a11y?.registerBlock(this)}}var defineComponents=__webpack_require__(3962),sharedConfigKey=__webpack_require__(1971);let toKebabCase=str=>str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)?.map(x=>x.toLowerCase()).join("-");var warnOnce=__webpack_require__(6783);let ASSERTIONS=[{test:cfg=>!!cfg.accept&&!!cfg.imgOnly,message:"There could be a mistake.\nBoth `accept` and `imgOnly` parameters are set.\nThe value of `accept` will be concatenated with the internal image mime types list."},{test:cfg=>null!==cfg.enableVideoRecording,message:"The `enableVideoRecording` parameter is deprecated and will be removed in the next major release.\nPlease use the `cameraModes` parameter instead."},{test:cfg=>null!==cfg.defaultCameraMode,message:"The `defaultCameraMode` parameter is deprecated and will be removed in the next major release.\nPlease use the `cameraModes` parameter instead."}],runAssertions=(0,debounce.s)(cfg=>{for(let{test,message}of ASSERTIONS)test(cfg)&&(0,warnOnce.m)(message)},0),async_c=async n=>{let s=new TextEncoder().encode(n),e=Array.from(new Uint8Array(await window.crypto.subtle.digest("SHA-256",s))).map(a=>a.toString(16).padStart(2,"0")).join("");return BigInt(`0x${e}`)},async_d=async n=>(e=>{if(e<=0n)return"0";let r="";for(;e>0n;)r="0123456789abcdefghijklmnopqrstuvwxyz"[Number(e%36n)]+r,e/=36n;return r})(await async_c(n)).slice(0,10),f=async(n,s)=>{var e;let n1;return e=await async_d(n),(n1=new URL(s)).hostname=`${e}.${n1.hostname}`,n1.toString().replace(/\/$/,"")},isPromiseLike=value=>value instanceof Promise||!!(value&&"object"==typeof value&&"then"in value&&"function"==typeof value.then);var UploadSource=__webpack_require__(5730),initialConfig=__webpack_require__(318);let withLazyPlugins=async({plugins,entries,signal})=>{let current=plugins(),lazyIds=new Set(entries.map(e=>e.pluginId)),userPlugins=current.filter(p=>!lazyIds.has(p?.id)),loadResults=await Promise.all(entries.map(async entry=>{if(!entry.isEnabled())return null;let existing=current.find(p=>p?.id===entry.pluginId);if(existing)return existing;try{let plugin=await entry.load();if(signal.aborted||!entry.isEnabled())return null;return plugin??null}catch(error){return signal.aborted||console.warn(`[${entry.pluginId}] Failed to load plugin`,error),null}}));if(signal.aborted)return current;let next=[...userPlugins,...loadResults.filter(p=>null!==p)];return next.length===current.length&&next.every((p,i)=>p===current[i])?current:next},COMPUTED_PROPERTIES=[{key:"cameraModes",deps:["enableVideoRecording"],fn:({cameraModes,enableVideoRecording})=>{let evr=enableVideoRecording();if(null===evr)return cameraModes();let cameraModesCsv=(0,comma_separated.A)(cameraModes());return evr&&!cameraModesCsv.includes("video")?cameraModesCsv=cameraModesCsv.concat("video"):evr||(cameraModesCsv=cameraModesCsv.filter(mode=>"video"!==mode)),(0,comma_separated.L)(cameraModesCsv)}},{key:"cameraModes",deps:["defaultCameraMode"],fn:({cameraModes,defaultCameraMode})=>{let dcm=defaultCameraMode();if(null===dcm)return cameraModes();let cameraModesCsv=(0,comma_separated.A)(cameraModes());return cameraModesCsv=cameraModesCsv.sort((a,b)=>a===dcm?-1:+(b===dcm)),(0,comma_separated.L)(cameraModesCsv)}},{key:"cdnCname",deps:["pubkey","cdnCnamePrefixed"],fn:({pubkey,cdnCname,cdnCnamePrefixed})=>{let pk=pubkey(),cname=cdnCname(),prefixed=cdnCnamePrefixed();return pk&&(cname===initialConfig.Tw||((e,r)=>{try{let n=new URL(e),t=new URL(r);return n.hostname.endsWith(t.hostname)}catch{return!1}})(cname,prefixed))?f(pk,prefixed):cname}},{key:"plugins",deps:["useCloudImageEditor","imageShrink","sourceList"],fn:({plugins,useCloudImageEditor,imageShrink,sourceList},{signal})=>withLazyPlugins({plugins,entries:[{pluginId:"cloud-image-editor",isEnabled:()=>!!useCloudImageEditor(),load:async()=>{let{cloudImageEditorPlugin}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,139));return cloudImageEditorPlugin}},{pluginId:"image-shrink",isEnabled:()=>!!imageShrink(),load:async()=>{let{imageShrinkPlugin}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,5271));return imageShrinkPlugin}},{pluginId:"camera",isEnabled:()=>(0,comma_separated.A)(sourceList()).includes("camera"),load:async()=>{let{cameraPlugin}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,4020));return cameraPlugin}},{pluginId:"instagram",isEnabled:()=>(0,comma_separated.A)(sourceList()).includes("instagram"),load:async()=>{let{instagramPlugin}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,1746));return instagramPlugin}},{pluginId:"external-sources",isEnabled:()=>Object.values(UploadSource.y5).some(src=>(0,comma_separated.A)(sourceList()).includes(src)),load:async()=>{let{externalSourcesPlugin}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,3617));return externalSourcesPlugin}},{pluginId:"url-source",isEnabled:()=>(0,comma_separated.A)(sourceList()).includes("url"),load:async()=>{let{urlSourcePlugin}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,7748));return urlSourcePlugin}}],signal})}],computeProperty=({key,setValue,getValue,computationControllers})=>{for(let computed of COMPUTED_PROPERTIES)if(computed.deps.includes(key)){let result,args={[computed.key]:()=>getValue(computed.key)};for(let dep of computed.deps)args[dep]=()=>getValue(dep);let abortController=new AbortController;computationControllers.get(computed.fn)?.abort(),computationControllers.set(computed.fn,abortController);try{result=computed.fn(args,{signal:abortController.signal})}catch(error){computationControllers.get(computed.fn)===abortController&&computationControllers.delete(computed.fn),console.error(`Failed to compute value for "${computed.key}"`,error);return}isPromiseLike(result)?result.then(resolvedValue=>{abortController.signal.aborted||setValue(computed.key,resolvedValue)}).catch(error=>{abortController.signal.aborted||console.error(`Failed to compute value for "${computed.key}"`,error)}).finally(()=>{computationControllers.get(computed.fn)===abortController&&computationControllers.delete(computed.fn)}):setValue(computed.key,result)}};var constants=__webpack_require__(5973);let asString=value=>String(value),asNumber=value=>{let number=Number(value);if(Number.isNaN(number))throw Error(`Invalid number: "${value}"`);return number},asBoolean=value=>{if(null==value)return!1;if("boolean"==typeof value)return value;if("true"===value||""===value)return!0;if("false"===value)return!1;throw Error(`Invalid boolean: "${value}"`)},asObject=value=>{if("object"==typeof value)return value;throw Error("Invalid value. Must be an object.")},asFunction=value=>{if("function"==typeof value)return value;throw Error("Invalid value. Must be a function.")},asArray=value=>{if(Array.isArray(value))return value;throw Error("Must be an array.")},normalizeConfigValue_mapping={pubkey:asString,multiple:asBoolean,multipleMin:asNumber,multipleMax:asNumber,confirmUpload:asBoolean,imgOnly:asBoolean,accept:asString,externalSourcesPreferredTypes:asString,externalSourcesEmbedCss:asString,store:value=>"auto"===value?value:asBoolean(value),cameraMirror:asBoolean,cameraCapture:value=>{let strValue=asString(value);if("user"!==strValue&&"environment"!==strValue&&""!==strValue)throw Error(`Invalid value: "${strValue}"`);return strValue},sourceList:asString,topLevelOrigin:asString,maxLocalFileSizeBytes:asNumber,thumbSize:asNumber,showEmptyList:asBoolean,useLocalImageEditor:asBoolean,useCloudImageEditor:asBoolean,cloudImageEditorTabs:asString,removeCopyright:asBoolean,cropPreset:asString,imageShrink:asString,modalScrollLock:asBoolean,modalBackdropStrokes:asBoolean,sourceListWrap:asBoolean,remoteTabSessionKey:asString,cdnCname:asString,cdnCnamePrefixed:asString,baseUrl:asString,socialBaseUrl:asString,secureSignature:asString,secureExpire:asString,secureDeliveryProxy:asString,retryThrottledRequestMaxTimes:asNumber,retryNetworkErrorMaxTimes:asNumber,multipartMinFileSize:asNumber,multipartChunkSize:asNumber,maxConcurrentRequests:asNumber,multipartMaxConcurrentRequests:asNumber,multipartMaxAttempts:asNumber,checkForUrlDuplicates:asBoolean,saveUrlForRecurrentUploads:asBoolean,groupOutput:asBoolean,userAgentIntegration:asString,debug:asBoolean,localeName:asString,metadata:value=>{if("object"==typeof value&&!Array.isArray(value)||"function"==typeof value)return value;throw Error("Invalid metadata value. Must be an object or function.")},secureUploadsExpireThreshold:asNumber,localeDefinitionOverride:value=>asObject(value),secureUploadsSignatureResolver:value=>asFunction(value),secureDeliveryProxyUrlResolver:value=>asFunction(value),iconHrefResolver:value=>asFunction(value),plugins:value=>asArray(value),fileValidators:asArray,collectionValidators:asArray,validationTimeout:asNumber,validationConcurrency:asNumber,cameraModes:value=>{let str=asString(value),array=(0,comma_separated.A)(str);if(array.some(item=>!Object.values(constants.S).includes(item)))throw Error(`Invalid value: "${JSON.stringify(array)}"`);return str},defaultCameraMode:value=>{let strValue=asString(value);if(!Object.values(constants.S).includes(strValue))throw Error(`Invalid value: "${strValue}"`);return strValue},enableAudioRecording:asBoolean,enableVideoRecording:asBoolean,mediaRecorderOptions:asObject,maxVideoRecordingDuration:asNumber,filesViewMode:value=>{let strValue=asString(value);if(["grid","list"].includes(strValue))return strValue;throw Error(`Invalid value: "${strValue}"`)},gridShowFileNames:asBoolean,cloudImageEditorAutoOpen:asBoolean,cloudImageEditorMaskHref:asString,testMode:asBoolean,qualityInsights:asBoolean,pasteScope:value=>{let strValue=asString(value);if("local"===strValue||"global"===strValue)return strValue;if(!1===asBoolean(value))return!1;throw Error(`Invalid value: "${strValue}"`)}},allConfigKeys=[...new Set(["debug",...Object.keys(initialConfig.Dz)])],complexConfigKeys=["metadata","plugins","localeDefinitionOverride","secureUploadsSignatureResolver","secureDeliveryProxyUrlResolver","iconHrefResolver","fileValidators","collectionValidators","mediaRecorderOptions"],plainConfigKeys=allConfigKeys.filter(key=>!complexConfigKeys.includes(key)),builtinAttrKeyMapping={...Object.fromEntries(plainConfigKeys.map(key=>[toKebabCase(key),key])),...Object.fromEntries(plainConfigKeys.map(key=>[key.toLowerCase(),key]))},getLocalPropName=key=>`__${key}`;class Config extends LitBlock.x{_isCustomConfig(key){return this._customConfigKeys.has(key)}_getCustomConfigDefinition(key){let pluginManager=this._sharedInstancesBag.pluginManager;if(pluginManager)return pluginManager.configRegistry.get(key)}_getAttributeNames(key){return[...new Set([toKebabCase(key),key.toLowerCase()])]}_flushValueToAttribute(key,value){if(!complexConfigKeys.includes(key)){if(this._isCustomConfig(key)){let config=this._getCustomConfigDefinition(key);if(config?.attribute===!1)return}for(let attr of this._getAttributeNames(key))null==value?this.removeAttribute(attr):this.getAttribute(attr)!==value.toString()&&this.setAttribute(attr,value.toString())}}_flushValueToState(key,value){let stateKey=(0,sharedConfigKey.T)(key);if(this.$[stateKey]!==value)if(null==value){let defaultValue=initialConfig.Dz[key];this.$[stateKey]=void 0!==defaultValue?defaultValue:value}else this.$[stateKey]=value}_setValue(key,value){let normalizedValue;if(this._isCustomConfig(key)){let config=this._getCustomConfigDefinition(key);normalizedValue=config?.normalize?.(value)??value}else normalizedValue=((key,value)=>{if(null!=value)try{return normalizeConfigValue_mapping[key](value)}catch(reason){return console.error(`Invalid value for config key "${key}".`,reason),initialConfig.Dz[key]}})(key,value);let localPropName=getLocalPropName(key);this[localPropName]!==normalizedValue&&(this._assertSameValueDifferentReference(key,this[localPropName],normalizedValue),this[localPropName]=normalizedValue,this._flushValueToAttribute(key,normalizedValue),this._flushValueToState(key,normalizedValue),this.debugPrint(`"${key}"`,normalizedValue),this._isCustomConfig(key)||runAssertions(this.cfg))}_getValue(key){return this[getLocalPropName(key)]??this.$[(0,sharedConfigKey.T)(key)]}_assertSameValueDifferentReference(key,previousValue,nextValue){this.cfg.debug&&nextValue!==previousValue&&"object"==typeof nextValue&&"object"==typeof previousValue&&JSON.stringify(nextValue)===JSON.stringify(previousValue)&&(console.warn(`[uc-config] Option "${key}" value is the same as the previous one but the reference is different`),console.warn("[uc-config] You should avoid changing the reference of the object to prevent unnecessary calculations"),console.warn(`[uc-config] "${key}" previous value:`,previousValue),console.warn(`[uc-config] "${key}" new value:`,nextValue))}_processCustomConfigs(pluginManager){let customConfigs=pluginManager.configRegistry.getAll();for(let[name,unsub]of(this._customAttrKeyMapping={},this._customConfigKeys=new Set(customConfigs.keys()),this._customConfigSubscriptions))customConfigs.has(name)||(unsub(),this._customConfigSubscriptions.delete(name));for(let[name,definition]of customConfigs){let stateKey=(0,sharedConfigKey.T)(name);if(definition.attribute)for(let attrName of this._getAttributeNames(name))this._customAttrKeyMapping[attrName]=name;this.sharedCtx.has(stateKey)||this.sharedCtx.add(stateKey,definition.defaultValue);let descriptor=Object.getOwnPropertyDescriptor(this,name);if(descriptor&&descriptor.set&&descriptor.get||Object.defineProperty(this,name,{set:value=>{this._setValue(name,value)},get:()=>this._getValue(name),enumerable:!0,configurable:!0}),!this._customConfigSubscriptions.has(name)){let unsub=this.sub(stateKey,value=>{this._setValue(name,value)},!1);this._customConfigSubscriptions.set(name,unsub)}}}_setupCustomConfigs(){this._sharedInstancesBag.when("pluginManager",pluginManager=>{this._processCustomConfigs(pluginManager),this._pluginChangeUnsubscribe=pluginManager.onPluginsChange(()=>{this._processCustomConfigs(pluginManager)})})}_setupMutationObserver(){this._mutationObserver=new MutationObserver(mutations=>{for(let mutation of mutations)if("attributes"===mutation.type&&mutation.attributeName){let attrName=mutation.attributeName,oldValue=mutation.oldValue,newValue=this.getAttribute(attrName);if(oldValue===newValue||attrName in builtinAttrKeyMapping)continue;attrName in this._customAttrKeyMapping&&this.attributeChangedCallback(attrName,oldValue??"",newValue??"")}}),this._mutationObserver.observe(this,{attributes:!0,attributeOldValue:!0})}initCallback(){for(let key of(super.initCallback(),this._setupCustomConfigs(),this._setupMutationObserver(),plainConfigKeys))this.sub((0,sharedConfigKey.T)(key),value=>{this._setValue(key,value)},!1);for(let key of allConfigKeys){let initialValue=this[key]??this.$[(0,sharedConfigKey.T)(key)];initialValue!==initialConfig.Dz[key]&&this._setValue(key,initialValue);let descriptor=Object.getOwnPropertyDescriptor(this,key);descriptor&&descriptor.set&&descriptor.get||Object.defineProperty(this,key,{set:value=>{this._setValue(key,value)},get:()=>this._getValue(key)})}for(let key of allConfigKeys)this.sub((0,sharedConfigKey.T)(key),()=>{computeProperty({key,setValue:this._setValue.bind(this),getValue:this._getValue.bind(this),computationControllers:this._computationControllers})})}attributeChangedCallback(name,oldVal,newVal){if(super.attributeChangedCallback(name,oldVal,newVal),oldVal===newVal)return;let builtInKey=builtinAttrKeyMapping[name];builtInKey?this[builtInKey]=newVal:this._sharedInstancesBag.when("pluginManager",pluginManager=>{if(this.getAttribute(name)!==newVal)return;let key=this._customAttrKeyMapping[name],config=key?pluginManager.configRegistry.get(key):void 0;if(key&&config){let val=config.fromAttribute?config.fromAttribute(newVal):newVal;if(this._getValue(key)===val)return;this._setValue(key,val)}})}disconnectedCallback(){for(let unsub of(super.disconnectedCallback(),this._pluginChangeUnsubscribe&&(this._pluginChangeUnsubscribe(),this._pluginChangeUnsubscribe=void 0),this._mutationObserver&&(this._mutationObserver.disconnect(),this._mutationObserver=void 0),this._customConfigSubscriptions.values()))unsub();this._customConfigSubscriptions.clear()}static get observedAttributes(){return[...super.observedAttributes,...Object.keys(builtinAttrKeyMapping)]}constructor(...args){super(...args),this.init$={...this.init$,...Object.fromEntries(Object.entries(initialConfig.Dz).map(([key,value])=>[(0,sharedConfigKey.T)(key),value]))},this._computationControllers=new Map,this._customAttrKeyMapping={},this._customConfigKeys=new Set,this._customConfigSubscriptions=new Map}}for(let key of allConfigKeys)Config.prototype[key]=void 0;function Icon_ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}class Icon extends LitBlock.x{initCallback(){super.initCallback(),this.setAttribute("aria-hidden","true"),this.subConfigValue("iconHrefResolver",resolver=>{this._iconHrefResolver=resolver,this._updateResolvedHref()});let pluginManager=this._sharedInstancesBag.pluginManager;pluginManager?.onPluginsChange&&(this._unsubscribePlugins=pluginManager.onPluginsChange(()=>this._updateResolvedHref()))}willUpdate(changedProperties){super.willUpdate(changedProperties),changedProperties.has("name")&&this._updateResolvedHref()}_updateResolvedHref(){if(!this.name){this._resolvedHref="",this._pluginSvg=null;return}let pluginManager=this._sharedInstancesBag.pluginManager,pluginIcon=pluginManager?.snapshot().icons.find(icon=>icon.name===this.name);if(pluginIcon){this._pluginSvg=pluginIcon.svg,this._resolvedHref="";return}this._pluginSvg=null;let defaultHref=`#uc-icon-${this.name}`,customHref=this._iconHrefResolver?.(this.name);this._resolvedHref=customHref??defaultHref}render(){return this._pluginSvg?(0,lit.qy)`${this.yield("",(0,lit.qy)`${unsafe_svg_o(this._pluginSvg)}`)}`:(0,lit.qy)` ${this.yield("",(0,lit.qy)`<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><use href=${this._resolvedHref}></use></svg>`)} `}disconnectedCallback(){this._unsubscribePlugins?.(),this._unsubscribePlugins=void 0,super.disconnectedCallback()}constructor(...args){super(...args),this.name="",this._resolvedHref="",this._pluginSvg=null,this._iconHrefResolver=null}}Icon_ts_decorate([(0,lit_decorators.MZ)({type:String})],Icon.prototype,"name",void 0),Icon_ts_decorate([(0,lit_decorators.wk)()],Icon.prototype,"_resolvedHref",void 0),Icon_ts_decorate([(0,lit_decorators.wk)()],Icon.prototype,"_pluginSvg",void 0)},5446(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{V:()=>UID});class UID{static generateFastUid(){return`uid-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}`}static generateRandomUUID(){let cryptoObj=globalThis.crypto;return cryptoObj&&"function"==typeof cryptoObj.randomUUID?cryptoObj.randomUUID():UID.generateFastUid()}}},5730(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{pc:()=>UploadSource,y5:()=>ExternalUploadSource});let ExternalUploadSource=Object.freeze({FACEBOOK:"facebook",DROPBOX:"dropbox",GDRIVE:"gdrive",GPHOTOS:"gphotos",FLICKR:"flickr",VK:"vk",EVERNOTE:"evernote",BOX:"box",ONEDRIVE:"onedrive",HUDDLE:"huddle"}),UploadSource=Object.freeze({LOCAL:"local",DROP_AREA:"drop-area",CAMERA:"camera",EXTERNAL:"external",API:"js-api",URL:"url",...Object.freeze({MOBILE_VIDEO_CAMERA:"mobile-video-camera",MOBILE_PHOTO_CAMERA:"mobile-photo-camera"}),...ExternalUploadSource})},1633(__unused_rspack_module,__webpack_exports__,__webpack_require__){let ua;__webpack_require__.d(__webpack_exports__,{R5:()=>browserInfo,wN:()=>browserFeatures});let browserInfo={safariDesktop:(ua=navigator.userAgent,/Macintosh|Windows/.test(ua)&&/Version\/[\d.]+.*Safari/.test(ua)&&!/Chrome|Chromium|Edg|OPR/.test(ua))},browserFeatures={htmlMediaCapture:"capture"in document.createElement("input")}},6339(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{$z:()=>createCdnUrlModifiers,I1:()=>extractOperations,LN:()=>createCdnUrl,OB:()=>joinCdnOperations,_A:()=>extractCdnUrlModifiers,p_:()=>extractUuid,v6:()=>extractFilename,vo:()=>createOriginalUrl});let normalizeCdnOperation=operation=>{if("string"!=typeof operation||!operation)return"";let str=operation.trim();return str.startsWith("-/")?str=str.slice(2):str.startsWith("/")&&(str=str.slice(1)),str.endsWith("/")&&(str=str.slice(0,str.length-1)),str},joinCdnOperations=(...operations)=>operations.filter(op=>"string"==typeof op&&!!op).map(op=>normalizeCdnOperation(op)).join("/-/"),createCdnUrlModifiers=(...cdnOperations)=>{let joined=joinCdnOperations(...cdnOperations);return joined?`-/${joined}/`:""};function extractFilename(cdnUrl){let url=new URL(cdnUrl),noOrigin=url.pathname+url.search+url.hash,urlFilenameIdx=noOrigin.lastIndexOf("http"),plainFilenameIdx=noOrigin.lastIndexOf("/"),filename="";return urlFilenameIdx>=0?filename=noOrigin.slice(urlFilenameIdx):plainFilenameIdx>=0&&(filename=noOrigin.slice(plainFilenameIdx+1)),filename}function extractUuid(cdnUrl){let{pathname}=new URL(cdnUrl),slashIndex=pathname.indexOf("/"),secondSlashIndex=pathname.indexOf("/",slashIndex+1);return pathname.substring(slashIndex+1,secondSlashIndex)}function extractCdnUrlModifiers(cdnUrl){let url=new URL(trimFilename(cdnUrl)),operationsMarker=url.pathname.indexOf("/-/");return -1===operationsMarker?"":url.pathname.substring(operationsMarker).slice(1)}function extractOperations(cdnUrl){return extractCdnUrlModifiers(cdnUrl).split("/-/").filter(Boolean).map(operation=>normalizeCdnOperation(operation))}function trimFilename(cdnUrl){let url=new URL(cdnUrl),filename=extractFilename(cdnUrl),filenamePathPart=isFileUrl(filename)?splitFileUrl(filename).pathname:filename;return url.pathname=url.pathname.replace(filenamePathPart,""),url.search="",url.hash="",url.toString()}function isFileUrl(filename){return filename.startsWith("http")}function splitFileUrl(fileUrl){let url=new URL(fileUrl);return{pathname:`${url.origin}${url.pathname??""}`,search:url.search??"",hash:url.hash??""}}let createCdnUrl=(baseCdnUrl,cdnModifiers,filename)=>{let url=new URL(trimFilename(baseCdnUrl)),resolvedFilename=filename??extractFilename(baseCdnUrl),resolvedModifiers=cdnModifiers??"";if(url.pathname.startsWith("//")&&(url.pathname=url.pathname.replace("//","/")),resolvedFilename&&isFileUrl(resolvedFilename)){let splitted=splitFileUrl(resolvedFilename);url.pathname=`${url.pathname}${resolvedModifiers}${splitted.pathname||""}`,url.search=splitted.search,url.hash=splitted.hash}else url.pathname=`${url.pathname}${resolvedModifiers}${resolvedFilename||""}`;return url.toString()},createOriginalUrl=(cdnUrl,uuid)=>{let url=new URL(cdnUrl);return url.pathname=`${uuid}/`,url.toString()}},9101(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{A:()=>deserializeCsv,L:()=>serializeCsv});let deserializeCsv=value=>value?value.split(",").map(item=>item.trim()).filter(Boolean):[],serializeCsv=value=>value.join(",")},4441(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{s:()=>debounce});function debounce(callback,wait){let timer,debounced=(...args)=>{timer&&clearTimeout(timer),timer=setTimeout(()=>callback(...args),wait)};return debounced.cancel=()=>{timer&&clearTimeout(timer)},debounced}},9364(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Z:()=>getPluralForm});let getPluralForm=(locale,count)=>new Intl.PluralRules(locale).select(count)},2513(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{G:()=>stringToArray});let stringToArray=(str,delimiter=",")=>str.trim().split(delimiter).map(part=>part.trim()).filter(part=>part.length>0)},664(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Q:()=>getPluralObjects,x:()=>applyTemplateData});let DEFAULT_TRANSFORMER=value=>value,PLURAL_PREFIX="plural:";function applyTemplateData(template,data={},options={}){let{openToken="{{",closeToken="}}",transform=DEFAULT_TRANSFORMER}=options;for(let key in data){let rawValue=data[key],value=null!=rawValue?rawValue.toString():void 0,replacement="string"==typeof value?transform(value):String(value);template=template.replaceAll(openToken+key+closeToken,replacement)}return template}function getPluralObjects(template){let pluralObjects=[],open=template.indexOf("{{");for(;-1!==open;){let close=template.indexOf("}}",open);if(-1===close)break;let variable=template.substring(open+2,close);if(variable.startsWith(PLURAL_PREFIX)){let keyValue=template.substring(open+2,close).replace(PLURAL_PREFIX,""),key=keyValue.substring(0,keyValue.indexOf("(")),count=keyValue.substring(keyValue.indexOf("(")+1,keyValue.indexOf(")"));pluralObjects.push({variable,pluralKey:key,countVariable:count})}open=template.indexOf("{{",close)}return pluralObjects}},6783(__unused_rspack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{m:()=>warnOnce});let warnings=new Set;function warnOnce(message){warnings.has(message)||(warnings.add(message),console.warn(message))}},4434(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Ec:()=>f,W3:()=>u,mN:()=>y});let css_tag_t=globalThis,css_tag_e=css_tag_t.ShadowRoot&&(void 0===css_tag_t.ShadyCSS||css_tag_t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,css_tag_s=Symbol(),css_tag_o=new WeakMap;class css_tag_n{constructor(t,e,o){if(this._$cssResult$=!0,o!==css_tag_s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,s=this.t;if(css_tag_e&&void 0===t){let e=void 0!==s&&1===s.length;e&&(t=css_tag_o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&css_tag_o.set(s,t))}return t}toString(){return this.cssText}}let c=css_tag_e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let t1,e="";for(let s of t.cssRules)e+=s.cssText;return new css_tag_n("string"==typeof(t1=e)?t1:t1+"",void 0,css_tag_s)})(t):t,{is:reactive_element_i,defineProperty:reactive_element_e,getOwnPropertyDescriptor:reactive_element_h,getOwnPropertyNames:reactive_element_r,getOwnPropertySymbols:reactive_element_o,getPrototypeOf:reactive_element_n}=Object,a=globalThis,reactive_element_c=a.trustedTypes,l=reactive_element_c?reactive_element_c.emptyScript:"",p=a.reactiveElementPolyfillSupport,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!reactive_element_i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){let i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&reactive_element_e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){let{get:e,set:r}=reactive_element_h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){let h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty("elementProperties"))return;let t=reactive_element_n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty("finalized"))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty("properties")){let t=this.properties;for(let i of[...reactive_element_r(t),...reactive_element_o(t)])this.createProperty(i,t[i])}let t=this[Symbol.metadata];if(null!==t){let s=litPropertyMetadata.get(t);if(void 0!==s)for(let[t,i]of s)this.elementProperties.set(t,i)}for(let[t,s]of(this._$Eh=new Map,this.elementProperties)){let i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){let i=[];if(Array.isArray(s))for(let s1 of new Set(s.flat(1/0).reverse()))i.unshift(c(s1));else void 0!==s&&i.push(c(s));return i}static _$Eu(t,s){let i=s.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){let t=new Map;for(let i of this.constructor.elementProperties.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((s,o)=>{if(css_tag_e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(let e of o){let o=document.createElement("style"),n=css_tag_t.litNonce;void 0!==n&&o.setAttribute("nonce",n),o.textContent=e.cssText,s.appendChild(o)}})(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){let i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){let h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){let i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){let t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;let r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){let r=this.constructor;if(!1===e&&(h=this[t]),!(((i??=r.getPropertyOptions(t)).hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}let t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}let t=this.constructor.elementProperties;if(t.size>0)for(let[s,i]of t){let{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1,s=this._$AL;try{(t=this.shouldUpdate(s))?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y.elementProperties=new Map,y.finalized=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.2")},3074(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){function isObject(o){return"[object Object]"===Object.prototype.toString.call(o)}__webpack_require__.d(__webpack_exports__,{$t:()=>getUserAgent$1,Dr:()=>NetworkError,fB:()=>uploadFileGroup,oW:()=>UploadError,op:()=>Queue});let SEPARATOR=/\W|_/g;function camelizeArrayItems(array,{ignoreKeys}={ignoreKeys:[]}){return Array.isArray(array)?array.map(item=>camelizeKeys(item,{ignoreKeys})):array}function camelizeKeys(source,{ignoreKeys}={ignoreKeys:[]}){if(Array.isArray(source))return camelizeArrayItems(source,{ignoreKeys});if(!isObject(source))return source;let result={};for(let key of Object.keys(source)){let value=source[key];if(ignoreKeys.includes(key)){result[key]=value;continue}isObject(value)?value=camelizeKeys(value,{ignoreKeys}):Array.isArray(value)&&(value=camelizeArrayItems(value,{ignoreKeys})),result[key.split(SEPARATOR).map((word,index)=>word.charAt(0)[index>0?"toUpperCase":"toLowerCase"]()+word.slice(1)).join("")]=value}return result}function getUserAgent$1({libraryName,libraryVersion,userAgent,publicKey="",integration=""}){let languageName="JavaScript";if("string"==typeof userAgent)return userAgent;if("function"==typeof userAgent)return userAgent({publicKey,libraryName,libraryVersion,languageName,integration});let mainInfo=[libraryName,libraryVersion,publicKey].filter(Boolean).join("/"),additionInfo=[languageName,integration].filter(Boolean).join("; ");return`${mainInfo} (${additionInfo})`}let defaultOptions={factor:2,time:100};class UploadcareError extends Error{}class NetworkError extends UploadcareError{originalProgressEvent;constructor(progressEvent){super(),this.name="NetworkError",this.message="Network error",Object.setPrototypeOf(this,NetworkError.prototype),this.originalProgressEvent=progressEvent}}let onCancel=(signal,callback)=>{signal&&(signal.aborted?Promise.resolve().then(callback):signal.addEventListener("abort",()=>callback(),{once:!0}))};class CancelError extends UploadcareError{isCancel=!0;constructor(message="Request canceled"){super(message),this.name="CancelError",Object.setPrototypeOf(this,CancelError.prototype)}}let DEFAULT_INTERVAL=500,poll=({check,interval=DEFAULT_INTERVAL,timeout,signal})=>new Promise((resolve,reject)=>{let tickTimeoutId,timeoutId;onCancel(signal,()=>{tickTimeoutId&&clearTimeout(tickTimeoutId),reject(new CancelError("Poll cancelled"))}),timeout&&(timeoutId=setTimeout(()=>{tickTimeoutId&&clearTimeout(tickTimeoutId),reject(new CancelError("Timed out"))},timeout));let tick=()=>{try{Promise.resolve(check(signal)).then(result=>{result?(timeoutId&&clearTimeout(timeoutId),resolve(result)):tickTimeoutId=setTimeout(tick,interval)}).catch(error=>{timeoutId&&clearTimeout(timeoutId),reject(error)})}catch(error){timeoutId&&clearTimeout(timeoutId),reject(error)}};tickTimeoutId=setTimeout(tick,0)}),defaultSettings_baseCDN="https://ucarecdn.com",defaultSettings_baseURL="https://upload.uploadcare.com",defaultSettings_multipartMinFileSize=0x1900000,defaultSettings_multipartChunkSize=5242880,defaultSettings_maxConcurrentRequests=4,defaultSettings_pusherKey="79ae88bd931ea68464d9",defaultContentType="application/octet-stream",defaultFilename="original",request=({method,url,data,headers={},signal,onProgress})=>new Promise((resolve,reject)=>{let xhr=new XMLHttpRequest,requestMethod=method?.toUpperCase()||"GET",aborted=!1;xhr.open(requestMethod,url,!0),headers&&Object.entries(headers).forEach(entry=>{let[key,value]=entry;void 0===value||Array.isArray(value)||xhr.setRequestHeader(key,value)}),xhr.responseType="text",onCancel(signal,()=>{aborted=!0,xhr.abort(),reject(new CancelError)}),xhr.onload=()=>{if(200!=xhr.status)reject(Error(`Error ${xhr.status}: ${xhr.statusText}`));else{let headersArray=xhr.getAllResponseHeaders().trim().split(/[\r\n]+/),responseHeaders={};headersArray.forEach(function(line){let parts=line.split(": "),header=parts.shift(),value=parts.join(": ");header&&void 0!==header&&(responseHeaders[header]=value)}),resolve({request:{method:requestMethod,url,data,headers:headers||void 0,signal,onProgress},data:xhr.response,headers:responseHeaders,status:xhr.status})}},xhr.onerror=progressEvent=>{aborted||reject(new NetworkError(progressEvent))},onProgress&&"function"==typeof onProgress&&(xhr.upload.onprogress=event=>{event.lengthComputable?onProgress({isComputable:!0,value:event.loaded/event.total}):onProgress({isComputable:!1})}),data?xhr.send(data):xhr.send()}),isBlob=data=>"u">typeof Blob&&data instanceof Blob,isFile=data=>"u">typeof File&&data instanceof File,isReactNativeAsset=data=>!!data&&"object"==typeof data&&!Array.isArray(data)&&"uri"in data&&"string"==typeof data.uri,isFileData=data=>isBlob(data)||isFile(data)||isReactNativeAsset(data);function buildFormData(options){let formData=new FormData;for(let params of function(options){let params=[];for(let[key,value]of Object.entries(options))!function collectParams(params,inputKey,inputValue){if(Array.isArray(inputValue))for(let value of inputValue)collectParams(params,`${inputKey}[]`,value);else if(inputValue&&"object"==typeof inputValue&&"data"in inputValue&&isFileData(inputValue.data)){let{name,contentType}=inputValue,file=inputValue.data,options=(({name})=>name?[name]:[])({name,contentType});params.push([inputKey,file,...options])}else if(!inputValue||"object"!=typeof inputValue||Array.isArray(inputValue))("string"==typeof inputValue||"number"==typeof inputValue||void 0===inputValue)&&inputValue&&params.push([inputKey,inputValue.toString()]);else for(let[key,value]of Object.entries(inputValue))void 0!==value&&params.push([`${inputKey}[${key}]`,String(value)])}(params,key,value);return params}(options)){let[key,value,...rest]=params;formData.append(key,value,...rest)}return formData}class UploadError extends UploadcareError{code;request;response;headers;constructor(message,code,request,response,headers){super(),this.name="UploadError",this.message=message,this.code=code,this.request=request,this.response=response,this.headers=headers,Object.setPrototypeOf(this,UploadError.prototype)}}let getUrl=(base,path,query)=>{let url=new URL(base);return url.pathname=(url.pathname+path).replace("//","/"),query&&(url.search=(query=>{let searchParams=new URLSearchParams;for(let[key,value]of Object.entries(query))value&&"object"==typeof value&&!Array.isArray(value)?Object.entries(value).filter(entry=>entry[1]??!1).forEach(entry=>searchParams.set(`${key}[${entry[0]}]`,String(entry[1]))):Array.isArray(value)?value.forEach(val=>{searchParams.append(`${key}[]`,val)}):"string"==typeof value&&value?searchParams.set(key,value):"number"==typeof value&&searchParams.set(key,value.toString());return searchParams.toString()})(query)),url.toString()};function getUserAgent(options){return getUserAgent$1({libraryName:"UploadcareUploadClient",libraryVersion:"6.18.4",...options})}function retryIfFailed(fn,options){let{retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes}=options;return function(fn,options=defaultOptions){let attempts=0;return function runAttempt(fn){let defaultDelayTime=Math.round(options.time*options.factor**attempts);return fn({attempt:attempts,retry:ms=>{let ms1;return(ms1=ms??defaultDelayTime,new Promise(resolve=>setTimeout(resolve,ms1))).then(()=>(attempts+=1,runAttempt(fn)))}})}(fn)}(({attempt,retry})=>fn().catch(error=>{if("response"in error&&error?.code==="RequestThrottledError"&&attempt<retryThrottledRequestMaxTimes)return retry(function(error){let{headers}=error||{};if(!headers||"string"!=typeof headers["retry-after"])return 15e3;let seconds=parseInt(headers["retry-after"],10);return Number.isFinite(seconds)?1e3*seconds:15e3}(error));if(error instanceof NetworkError&&attempt<retryNetworkErrorMaxTimes)return retry((attempt+1)*1e3);throw error}))}let getContentType=file=>{let contentType="";return(isBlob(file)||isFile(file)||isReactNativeAsset(file))&&(contentType=file.type),contentType||defaultContentType},getFileName=file=>{let filename="";return isFile(file)&&file.name?filename=file.name:isBlob(file)?filename="":isReactNativeAsset(file)&&file.name&&(filename=file.name),filename||defaultFilename};function getStoreValue(store){return void 0===store||"auto"===store?"auto":store?"1":"0"}function info(uuid,{publicKey,baseURL=defaultSettings_baseURL,signal,source,integration,userAgent,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3}){return retryIfFailed(()=>request({method:"GET",headers:{"X-UC-User-Agent":getUserAgent({publicKey,integration,userAgent})},url:getUrl(baseURL,"/info/",{jsonerrors:1,pub_key:publicKey,file_id:uuid,source}),signal}).then(({data,headers,request})=>{let response=camelizeKeys(JSON.parse(data));if(!("error"in response))return response;throw new UploadError(response.error.content,response.error.errorCode,request,response,headers)}),{retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes})}function isReadyPoll(uuid,{publicKey,baseURL,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,signal,onProgress}){return poll({check:signal=>info(uuid,{publicKey,baseURL,signal,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes}).then(response=>response.isReady?response:(onProgress&&onProgress({isComputable:!0,value:1}),!1)),signal})}(TypeEnum1=TypeEnum||(TypeEnum={})).Token="token",TypeEnum1.FileInfo="file_info",(Status1=Status||(Status={})).Unknown="unknown",Status1.Waiting="waiting",Status1.Progress="progress",Status1.Error="error",Status1.Success="success";class UploadcareFile{uuid;name;size;isStored;isImage;mimeType;cdnUrl;s3Url;originalFilename;imageInfo;videoInfo;contentInfo;metadata;s3Bucket;defaultEffects=null;constructor(fileInfo,{baseCDN=defaultSettings_baseCDN,fileName}={}){let{uuid,s3Bucket}=fileInfo,cdnUrl=getUrl(baseCDN,`${uuid}/`),s3Url=s3Bucket?getUrl(`https://${s3Bucket}.s3.amazonaws.com/`,`${uuid}/${fileInfo.filename}`):null;this.uuid=uuid,this.name=fileName||fileInfo.filename,this.size=fileInfo.size,this.isStored=fileInfo.isStored,this.isImage=fileInfo.isImage,this.mimeType=fileInfo.mimeType,this.cdnUrl=cdnUrl,this.originalFilename=fileInfo.originalFilename,this.imageInfo=fileInfo.imageInfo,this.videoInfo=fileInfo.videoInfo,this.contentInfo=fileInfo.contentInfo,this.metadata=fileInfo.metadata||null,this.s3Bucket=s3Bucket||null,this.s3Url=s3Url,"defaultEffects"in fileInfo&&(this.defaultEffects=fileInfo.defaultEffects)}}var TypeEnum,Status,TypeEnum1,Status1,WebSocket=window.WebSocket;class Events{events=Object.create({});emit(event,data){this.events[event]?.forEach(fn=>fn(data))}on(event,callback){this.events[event]=this.events[event]||[],this.events[event].push(callback)}off(event,callback){callback?this.events[event]=this.events[event].filter(fn=>fn!==callback):this.events[event]=[]}}class Pusher{key;disconnectTime;ws=void 0;queue=[];isConnected=!1;subscribers=0;emmitter=new Events;disconnectTimeoutId=null;constructor(pusherKey,disconnectTime=3e4){this.key=pusherKey,this.disconnectTime=disconnectTime}connect(){if(this.disconnectTimeoutId&&clearTimeout(this.disconnectTimeoutId),!this.isConnected&&!this.ws){let pusherUrl=`wss://ws.pusherapp.com/app/${this.key}?protocol=5&client=js&version=1.12.2`;this.ws=new WebSocket(pusherUrl),this.ws.addEventListener("error",error=>{this.emmitter.emit("error",Error(error.message))}),this.emmitter.on("connected",()=>{this.isConnected=!0,this.queue.forEach(message=>this.send(message.event,message.data)),this.queue=[]}),this.ws.addEventListener("message",e=>{let data=JSON.parse(e.data.toString());switch(data.event){case"pusher:connection_established":this.emmitter.emit("connected",void 0);break;case"pusher:ping":this.send("pusher:pong",{});break;case"progress":case"success":case"fail":var type,data1;this.emmitter.emit(data.channel,(type=data.event,data1=JSON.parse(data.data),"success"===type?{status:Status.Success,...data1}:"progress"===type?{status:Status.Progress,...data1}:{status:Status.Error,...data1}))}})}}disconnect(){let actualDisconect=()=>{this.ws?.close(),this.ws=void 0,this.isConnected=!1};this.disconnectTime?this.disconnectTimeoutId=setTimeout(()=>{actualDisconect()},this.disconnectTime):actualDisconect()}send(event,data){let str=JSON.stringify({event,data});this.ws?.send(str)}subscribe(token,handler){this.subscribers+=1,this.connect();let channel=`task-status-${token}`,message={event:"pusher:subscribe",data:{channel}};this.emmitter.on(channel,handler),this.isConnected?this.send(message.event,message.data):this.queue.push(message)}unsubscribe(token){this.subscribers-=1;let channel=`task-status-${token}`;this.emmitter.off(channel),this.isConnected?this.send("pusher:unsubscribe",{channel}):this.queue=this.queue.filter(msg=>msg.data.channel!==channel),0===this.subscribers&&this.disconnect()}onError(callback){return this.emmitter.on("error",callback),()=>this.emmitter.off("error",callback)}}let pusher=null,getPusher=key=>(pusher||(pusher=new Pusher(key,3e4*("u">typeof window))),pusher),memo=new WeakMap,getBlobFromReactNativeAsset=async asset=>{if(memo.has(asset))return memo.get(asset);let blob=await fetch(asset.uri).then(res=>res.blob());return memo.set(asset,blob),blob},getFileSize=async file=>{if(isFile(file)||isBlob(file))return file.size;if(isReactNativeAsset(file))return(await getBlobFromReactNativeAsset(file)).size;throw Error("Unknown file type. Cannot determine file size.")},isUuid=data=>!isFileData(data)&&/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/.test(data),isUrl=data=>{let regExp=RegExp("^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$");return!isFileData(data)&&regExp.test(data)},prepareChunks=async(file,fileSize,chunkSize)=>index=>{let start,end;return end=Math.min((start=chunkSize*index)+chunkSize,fileSize),file.slice(start,end)},uploadMultipart=async(file,{publicKey,fileName,fileSize,baseURL,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,contentType,multipartChunkSize=defaultSettings_multipartChunkSize,maxConcurrentRequests=defaultSettings_maxConcurrentRequests,baseCDN,metadata})=>{let progressValues,size=fileSize??await getFileSize(file);return(function(size,{publicKey,contentType,fileName,multipartChunkSize=defaultSettings_multipartChunkSize,baseURL="",secureSignature,secureExpire,store,signal,source="local",integration,userAgent,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3,metadata}){return retryIfFailed(()=>request({method:"POST",url:getUrl(baseURL,"/multipart/start/",{jsonerrors:1}),headers:{"X-UC-User-Agent":getUserAgent({publicKey,integration,userAgent})},data:buildFormData({filename:fileName||defaultFilename,size:size,content_type:contentType||defaultContentType,part_size:multipartChunkSize,UPLOADCARE_STORE:getStoreValue(store),UPLOADCARE_PUB_KEY:publicKey,signature:secureSignature,expire:secureExpire,source:source,metadata}),signal}).then(({data,headers,request})=>{let response=camelizeKeys(JSON.parse(data));if(!("error"in response))return response.parts=Object.keys(response.parts).map(key=>response.parts[Number(key)]),response;throw new UploadError(response.error.content,response.error.errorCode,request,response,headers)}),{retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes})})(size,{publicKey,contentType:contentType||=getContentType(file),fileName:fileName||getFileName(file),baseURL,secureSignature,secureExpire,store,signal,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,metadata,multipartChunkSize}).then(async({uuid,parts})=>{let tasks,getChunk=await prepareChunks(file,size,multipartChunkSize);return Promise.all([uuid,(tasks=parts.map((url,index)=>()=>{var totalChunks;return((chunk,url,{publicKey,contentType,onProgress,signal,integration,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes})=>(function(part,url,{contentType,signal,onProgress,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3}){return retryIfFailed(()=>request({method:"PUT",url,data:part,onProgress:onProgress,signal,headers:{"Content-Type":contentType||defaultContentType}}).then(result=>(onProgress&&onProgress({isComputable:!0,value:1}),result)).then(({status})=>({code:status})),{retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes})})(chunk,url,{publicKey,contentType,onProgress,signal,integration,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes}))(getChunk(index),url,{publicKey,contentType,onProgress:(totalChunks=parts.length,onProgress?(progressValues||(progressValues=Array(totalChunks).fill(0)),info=>{info.isComputable&&(progressValues[index]=info.value,onProgress({isComputable:!0,value:progressValues.reduce((sum,next)=>sum+next,0)/totalChunks}))}):void 0),signal,integration,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes})}),new Promise((resolve,reject)=>{let results=[],rejected=!1,settled=tasks.length,forRun=[...tasks],run=()=>{let index=tasks.length-forRun.length,next=forRun.shift();next&&next().then(result=>{rejected||(results[index]=result,(settled-=1)?run():resolve(results))}).catch(error=>{rejected=!0,reject(error)})};for(let i=0;i<maxConcurrentRequests;i++)run()}))])}).then(([uuid])=>(function(uuid,{publicKey,baseURL=defaultSettings_baseURL,source="local",signal,integration,userAgent,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3}){return retryIfFailed(()=>request({method:"POST",url:getUrl(baseURL,"/multipart/complete/",{jsonerrors:1}),headers:{"X-UC-User-Agent":getUserAgent({publicKey,integration,userAgent})},data:buildFormData({uuid:uuid,UPLOADCARE_PUB_KEY:publicKey,source:source}),signal}).then(({data,headers,request})=>{let response=camelizeKeys(JSON.parse(data));if(!("error"in response))return response;throw new UploadError(response.error.content,response.error.errorCode,request,response,headers)}),{retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes})})(uuid,{publicKey,baseURL,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes})).then(fileInfo=>fileInfo.isReady?fileInfo:isReadyPoll(fileInfo.uuid,{publicKey,baseURL,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,onProgress,signal})).then(fileInfo=>new UploadcareFile(fileInfo,{baseCDN}))};async function uploadFile(data,{publicKey,fileName,baseURL=defaultSettings_baseURL,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,contentType,multipartMinFileSize,multipartChunkSize,maxConcurrentRequests,baseCDN=defaultSettings_baseCDN,checkForUrlDuplicates,saveUrlForRecurrentUploads,pusherKey,metadata}){if(isFileData(data)){let fileSize=await getFileSize(data);return((fileSize,multipartMinFileSize=defaultSettings_multipartMinFileSize)=>fileSize>=multipartMinFileSize)(fileSize,multipartMinFileSize)?uploadMultipart(data,{publicKey,contentType,multipartChunkSize,fileSize,fileName,baseURL,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,maxConcurrentRequests,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,baseCDN,metadata}):((file,{publicKey,fileName,baseURL,secureSignature,secureExpire,store,contentType,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,baseCDN,metadata})=>(function(file,{publicKey,fileName,contentType,baseURL=defaultSettings_baseURL,secureSignature,secureExpire,store,signal,onProgress,source="local",integration,userAgent,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3,metadata}){return retryIfFailed(()=>request({method:"POST",url:getUrl(baseURL,"/base/",{jsonerrors:1}),headers:{"X-UC-User-Agent":getUserAgent({publicKey,integration,userAgent})},data:buildFormData({file:{data:file,name:fileName||getFileName(file),contentType:contentType||getContentType(file)},UPLOADCARE_PUB_KEY:publicKey,UPLOADCARE_STORE:getStoreValue(store),signature:secureSignature,expire:secureExpire,source:source,metadata}),signal,onProgress}).then(({data,headers,request})=>{let response=camelizeKeys(JSON.parse(data));if(!("error"in response))return response;throw new UploadError(response.error.content,response.error.errorCode,request,response,headers)}),{retryNetworkErrorMaxTimes,retryThrottledRequestMaxTimes})})(file,{publicKey,fileName,contentType,baseURL,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,metadata}).then(({file})=>isReadyPoll(file,{publicKey,baseURL,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,onProgress,signal})).then(fileInfo=>new UploadcareFile(fileInfo,{baseCDN})))(data,{publicKey,fileName,contentType,baseURL,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,baseCDN,metadata})}if(isUrl(data))return((sourceUrl,{publicKey,fileName,baseURL,baseCDN,checkForUrlDuplicates,saveUrlForRecurrentUploads,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,pusherKey=defaultSettings_pusherKey,metadata})=>Promise.resolve(void getPusher(pusherKey).connect()).then(()=>(function(sourceUrl,{publicKey,baseURL=defaultSettings_baseURL,store,fileName,checkForUrlDuplicates,saveUrlForRecurrentUploads,secureSignature,secureExpire,source="url",signal,integration,userAgent,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3,metadata}){return retryIfFailed(()=>request({method:"POST",headers:{"X-UC-User-Agent":getUserAgent({publicKey,integration,userAgent})},url:getUrl(baseURL,"/from_url/",{jsonerrors:1,pub_key:publicKey,source_url:sourceUrl,store:getStoreValue(store),filename:fileName,check_URL_duplicates:checkForUrlDuplicates?1:void 0,save_URL_duplicates:saveUrlForRecurrentUploads?1:void 0,signature:secureSignature,expire:secureExpire,source:source,metadata}),signal}).then(({data,headers,request})=>{let response=camelizeKeys(JSON.parse(data));if(!("error"in response))return response;throw new UploadError(response.error.content,response.error.errorCode,request,response,headers)}),{retryNetworkErrorMaxTimes,retryThrottledRequestMaxTimes})})(sourceUrl,{publicKey,fileName,baseURL,checkForUrlDuplicates,saveUrlForRecurrentUploads,secureSignature,secureExpire,store,signal,source,integration,userAgent,retryThrottledRequestMaxTimes,metadata})).catch(error=>{let pusher=getPusher(pusherKey);return pusher?.disconnect(),Promise.reject(error)}).then(urlResponse=>urlResponse.type===TypeEnum.FileInfo?urlResponse:((fns,{signal}={})=>{let lastError=null,winnerIndex=null,controllers=fns.map(()=>new AbortController);return onCancel(signal,()=>{controllers.forEach(controller=>controller.abort())}),Promise.all(fns.map((fn,i)=>{let stopRace=()=>{winnerIndex=i,controllers.forEach((controller,index)=>index!==i&&controller.abort())};return Promise.resolve().then(()=>fn({stopRace,signal:controllers[i].signal})).then(result=>(stopRace(),result)).catch(error=>(lastError=error,null))})).then(results=>{if(null!==winnerIndex)return results[winnerIndex];throw lastError})})([({signal})=>(function({token,publicKey,baseURL,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,onProgress,signal}){return poll({check:signal=>(function(token,{publicKey,baseURL=defaultSettings_baseURL,signal,integration,userAgent,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3}={}){return retryIfFailed(()=>request({method:"GET",headers:publicKey?{"X-UC-User-Agent":getUserAgent({publicKey,integration,userAgent})}:void 0,url:getUrl(baseURL,"/from_url/status/",{jsonerrors:1,token}),signal}).then(({data,headers,request})=>{let response=camelizeKeys(JSON.parse(data));if(!("error"in response)||"status"in response&&response.status===Status.Error)return response;throw new UploadError(response.error.content,response.error.errorCode,request,response,headers)}),{retryNetworkErrorMaxTimes,retryThrottledRequestMaxTimes})})(token,{publicKey,baseURL,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,signal}).then(response=>{switch(response.status){case Status.Error:return new UploadError(response.error,response.errorCode);case Status.Waiting:return!1;case Status.Unknown:return new UploadError(`Token "${token}" was not found.`);case Status.Progress:return onProgress&&("unknown"===response.total?onProgress({isComputable:!1}):onProgress({isComputable:!0,value:response.done/response.total})),!1;case Status.Success:return onProgress&&onProgress({isComputable:!0,value:response.done/response.total}),response;default:throw Error("Unknown status")}}),signal})})({token:urlResponse.token,publicKey,baseURL,integration,userAgent,retryThrottledRequestMaxTimes,onProgress,signal}),({signal})=>(({token,pusherKey,signal,onProgress})=>new Promise((resolve,reject)=>{let pusher=getPusher(pusherKey),unsubErrorHandler=pusher.onError(reject),destroy=()=>{unsubErrorHandler(),pusher.unsubscribe(token)};onCancel(signal,()=>{destroy(),reject(new CancelError("pusher cancelled"))}),pusher.subscribe(token,result=>{switch(result.status){case Status.Progress:onProgress&&("unknown"===result.total?onProgress({isComputable:!1}):onProgress({isComputable:!0,value:result.done/result.total}));break;case Status.Success:destroy(),onProgress&&onProgress({isComputable:!0,value:result.done/result.total}),resolve(result);break;case Status.Error:destroy(),reject(new UploadError(result.msg,result.error_code))}})}))({token:urlResponse.token,pusherKey,signal,onProgress})],{signal})).then(result=>{if(result instanceof UploadError)throw result;return result}).then(result=>isReadyPoll(result.uuid,{publicKey,baseURL,integration,userAgent,retryThrottledRequestMaxTimes,onProgress,signal})).then(fileInfo=>new UploadcareFile(fileInfo,{baseCDN})))(data,{publicKey,fileName,baseURL,baseCDN,checkForUrlDuplicates,saveUrlForRecurrentUploads,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,pusherKey,metadata});if(isUuid(data))return((uuid,{publicKey,fileName,baseURL,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,baseCDN})=>info(uuid,{publicKey,baseURL,signal,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes}).then(fileInfo=>new UploadcareFile(fileInfo,{baseCDN,fileName})).then(result=>(onProgress&&onProgress({isComputable:!0,value:1}),result)))(data,{publicKey,fileName,baseURL,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,baseCDN});throw TypeError(`File uploading from "${data}" is not supported`)}class UploadcareGroup{uuid;filesCount;totalSize;isStored;isImage;cdnUrl;files;createdAt;storedAt=null;constructor(groupInfo,{baseCDN=defaultSettings_baseCDN}={}){this.uuid=groupInfo.id,this.filesCount=groupInfo.filesCount;let groupFiles=groupInfo.files.filter(Boolean);this.totalSize=Object.values(groupFiles).reduce((acc,file)=>acc+file.size,0),this.isStored=!!groupInfo.datetimeStored,this.isImage=!!Object.values(groupFiles).filter(file=>file.isImage).length,this.cdnUrl=((url,newBase)=>{try{let originalUrl=new URL(url),baseUrl=new URL(newBase);return originalUrl.protocol=baseUrl.protocol,originalUrl.hostname=baseUrl.hostname,originalUrl.port=baseUrl.port,originalUrl.toString()}catch{return url}})(groupInfo.cdnUrl,baseCDN),this.files=groupFiles.map(fileInfo=>new UploadcareFile(fileInfo,{baseCDN})),this.createdAt=groupInfo.datetimeCreated,this.storedAt=groupInfo.datetimeStored}}function uploadFileGroup(data,{publicKey,fileName,baseURL=defaultSettings_baseURL,secureSignature,secureExpire,store,signal,onProgress,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,contentType,multipartChunkSize=defaultSettings_multipartChunkSize,baseCDN=defaultSettings_baseCDN,checkForUrlDuplicates,saveUrlForRecurrentUploads,jsonpCallback}){let progressValues;if(!(data=>{for(let item of data)if(!isFileData(item))return!1;return!0})(data)&&!(data=>{for(let item of data)if(!isUrl(item))return!1;return!0})(data)&&!(data=>{for(let item of data)if(!isUuid(item))return!1;return!0})(data))throw TypeError(`Group uploading from "${data}" is not supported`);let isStillComputable=!0,filesCount=data.length;return Promise.all(data.map((file,index)=>isFileData(file)||isUrl(file)?uploadFile(file,{publicKey,fileName,baseURL,secureSignature,secureExpire,store,signal,onProgress:onProgress?(progressValues||(progressValues=Array(filesCount).fill(0)),info=>{if(!info.isComputable||!isStillComputable){isStillComputable=!1,onProgress({isComputable:!1});return}progressValues[index]=info.value,onProgress({isComputable:!0,value:progressValues.reduce((sum,next)=>sum+next)/filesCount})}):void 0,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes,contentType,multipartChunkSize,baseCDN,checkForUrlDuplicates,saveUrlForRecurrentUploads}).then(fileInfo=>fileInfo.uuid):file)).then(uuids=>(function(uuids,{publicKey,baseURL=defaultSettings_baseURL,jsonpCallback,secureSignature,secureExpire,signal,source,integration,userAgent,retryThrottledRequestMaxTimes=1,retryNetworkErrorMaxTimes=3}){return retryIfFailed(()=>request({method:"POST",headers:{"X-UC-User-Agent":getUserAgent({publicKey,integration,userAgent})},url:getUrl(baseURL,"/group/",{jsonerrors:1}),data:buildFormData({files:uuids,callback:jsonpCallback,pub_key:publicKey,signature:secureSignature,expire:secureExpire,source}),signal}).then(({data,headers,request})=>{let response=camelizeKeys(JSON.parse(data));if(!("error"in response))return response;throw new UploadError(response.error.content,response.error.errorCode,request,response,headers)}),{retryNetworkErrorMaxTimes,retryThrottledRequestMaxTimes})})(uuids,{publicKey,baseURL,jsonpCallback,secureSignature,secureExpire,signal,source,integration,userAgent,retryThrottledRequestMaxTimes,retryNetworkErrorMaxTimes}).then(groupInfo=>new UploadcareGroup(groupInfo,{baseCDN})).then(group=>(onProgress&&onProgress({isComputable:!0,value:1}),group)))}class Queue{_concurrency=1;_pending=[];_running=0;_resolvers=new Map;_rejectors=new Map;constructor(concurrency){this._concurrency=concurrency}run(){let tasksLeft=this._concurrency-this._running;for(let i=0;i<tasksLeft;i++){let task=this._pending.shift();if(!task)return;let resolver=this._resolvers.get(task),rejector=this._rejectors.get(task);if(!resolver||!rejector)throw Error("Unexpected behavior: resolver or rejector is undefined");this._running+=1,task().finally(()=>{this._resolvers.delete(task),this._rejectors.delete(task),this._running-=1,this.run()}).then(value=>resolver(value)).catch(error=>rejector(error))}}add(task,{autoRun}={autoRun:!0}){return new Promise((resolve,reject)=>{this._resolvers.set(task,resolve),this._rejectors.set(task,reject),this._pending.push(task),autoRun&&this.run()})}get pending(){return this._pending.length}get running(){return this._running}set concurrency(value){this._concurrency=value,this.run()}get concurrency(){return this._concurrency}}},7804(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{OA:()=>t,WL:()=>i,u$:()=>e});let t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}},6752(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{XX:()=>D,c0:()=>E,ge:()=>j,qy:()=>b,s6:()=>A});let t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy("lit-html",{createHTML:t=>t}):void 0,h="$lit$",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n="?"+o,r=`<${n}>`,l=document,c=()=>l.createComment(""),a=t=>null===t||"object"!=typeof t&&"function"!=typeof t,u=Array.isArray,d=t=>u(t)||"function"==typeof t?.[Symbol.iterator],f="[ \n\f\r]",v=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\s"'>=/]+)(${f}*=${f}*(?:[^
8
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,$=/"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),E=(x(2),x(3),Symbol.for("lit-noChange")),A=Symbol.for("lit-nothing"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==e?e.createHTML(i):i}let N=(t,i)=>{let s=t.length-1,e=[],n,l=2===i?"<svg>":3===i?"<math>":"",c=v;for(let i=0;i<s;i++){let s=t[i],a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,null!==(u=c.exec(s)));)f=c.lastIndex,c===v?"!--"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp("</"+u[2],"g")),c=p):void 0!==u[3]&&(c=p):c===p?">"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);let x=c===p&&t[i+1].startsWith("/>")?" ":"";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||"<?>")+(2===i?"</svg>":3===i?"</math>":"")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0,u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){let t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(let t of r.getAttributeNames())if(t.endsWith(h)){let i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:"."===e[1]?I:"?"===e[1]?L:"@"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){let t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:"";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){let s=l.createElement("template");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl,o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t))._$AT(t,s,e),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){let{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(let s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){a(t=M(this,t,i))?t===A||null==t||""===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){let{values:i,_$litType$:s}=t,e="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{let t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());let i=this._$AH,s,e=0;for(let h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){let s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){let h=this.strings,o=!1;if(void 0===h)(o=!a(t=M(this,t,i,0))||t!==this._$AH&&t!==E)&&(this._$AH=t);else{let n,r,e=t;for(t=h[0],n=0;n<h.length-1;n++)(r=M(this,e[s+n],i,n))===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??"")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;let s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}let j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push("3.3.2");let D=(t,i,s)=>{let e=s?.renderBefore??i,h=e._$litPart$;if(void 0===h){let t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h}},7093(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{wk:()=>state_r,MZ:()=>property_n});var reactive_element=__webpack_require__(4434);let property_o={attribute:!0,type:String,converter:reactive_element.W3,reflect:!1,hasChanged:reactive_element.Ec};function property_n(t){return(e,o)=>{let r;return"object"==typeof o?((t=property_o,e,r)=>{let{kind:n,metadata:i}=r,s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),"setter"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),"accessor"===n){let{name:o}=r;return{set(r){let n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if("setter"===n){let{name:o}=r;return function(r){let n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error("Unsupported decorator location: "+n)})(t,e,o):(r=e.hasOwnProperty(o),e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0)}}function state_r(r){return property_n({...r,state:!0,attribute:!1})}},3121(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{J:()=>if_defined_o});var lit_html=__webpack_require__(6752);let if_defined_o=o=>o??lit_html.s6},133(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{K:()=>ref_n,_:()=>ref_e});var lit_html=__webpack_require__(6752);let{I:directive_helpers_t}=lit_html.ge;var directive=__webpack_require__(7804);let async_directive_s=(i,t)=>{let e=i._$AN;if(void 0===e)return!1;for(let i of e)i._$AO?.(t,!1),async_directive_s(i,t);return!0},async_directive_o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;(e=t._$AN).delete(i),i=t}while(0===e?.size)},async_directive_r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),async_directive_c(t)}};function async_directive_h(i){void 0!==this._$AN?(async_directive_o(this),this._$AM=i,async_directive_r(this)):this._$AM=i}function async_directive_n(i,t=!1,e=0){let r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)async_directive_s(r[i],!1),async_directive_o(r[i]);else null!=r&&(async_directive_s(r,!1),async_directive_o(r));else async_directive_s(this,i)}let async_directive_c=i=>{i.type==directive.OA.CHILD&&(i._$AP??=async_directive_n,i._$AQ??=async_directive_h)};class async_directive_f extends directive.WL{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),async_directive_r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(async_directive_s(this,i),async_directive_o(this))}setValue(t){if(void 0===this._$Ct.strings)this._$Ct._$AI(t,this);else{let i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}let ref_e=()=>new ref_h;class ref_h{}let ref_o=new WeakMap,ref_n=(0,directive.u$)(class extends async_directive_f{render(i){return lit_html.s6}update(i,[s]){let e=s!==this.G;return e&&void 0!==this.G&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.G=s,this.ht=i.options?.host,this.rt(this.ct=i.element)),lit_html.s6}rt(t){if(this.isConnected||(t=void 0),"function"==typeof this.G){let i=this.ht??globalThis,s=ref_o.get(i);void 0===s&&(s=new WeakMap,ref_o.set(i,s)),void 0!==s.get(this.G)&&this.G.call(this.ht,void 0),s.set(this.G,t),void 0!==t&&this.G.call(this.ht,t)}else this.G.value=t}get lt(){return"function"==typeof this.G?ref_o.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}})},5350(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{W:()=>o});var lit_html=__webpack_require__(6752),directive=__webpack_require__(7804);let n="important",i=" !"+n,o=(0,directive.u$)(class extends directive.WL{constructor(t){if(super(t),t.type!==directive.OA.ATTRIBUTE||"style"!==t.name||t.strings?.length>2)throw Error("The`styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce((e,r)=>{let s=t[r];return null==s?e:e+`${r=r.includes("-")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${s};`},"")}update(e,[r]){let{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(let t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes("-")?s.removeProperty(t):s[t]=null);for(let t in r){let e=r[t];if(null!=e){this.ft.add(t);let r="string"==typeof e&&e.endsWith(i);t.includes("-")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:""):s[t]=e}}return lit_html.c0}})},7825(__unused_rspack___webpack_module__,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{s6:()=>lit_html.s6,qy:()=>lit_html.qy,WF:()=>i});var reactive_element=__webpack_require__(4434),lit_html=__webpack_require__(6752);let s=globalThis;class i extends reactive_element.mN{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=(0,lit_html.XX)(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return lit_html.c0}}i._$litElement$=!0,i.finalized=!0,s.litElementHydrateSupport?.({LitElement:i});let o=s.litElementPolyfillSupport;o?.({LitElement:i}),(s.litElementVersions??=[]).push("4.2.2")}},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={exports:{}};return __webpack_modules__[moduleId](module,module.exports,__webpack_require__),module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),__webpack_require__.r=exports=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(937),__webpack_exports__BtnUi=__webpack_exports__.BtnUi,__webpack_exports__CloudImageEditor=__webpack_exports__.CloudImageEditor,__webpack_exports__CloudImageEditorBlock=__webpack_exports__.CloudImageEditorBlock,__webpack_exports__Config=__webpack_exports__.Config,__webpack_exports__CropFrame=__webpack_exports__.CropFrame,__webpack_exports__EditorAspectRatioButtonControl=__webpack_exports__.EditorAspectRatioButtonControl,__webpack_exports__EditorCropButtonControl=__webpack_exports__.EditorCropButtonControl,__webpack_exports__EditorFilterControl=__webpack_exports__.EditorFilterControl,__webpack_exports__EditorFreeformButtonControl=__webpack_exports__.EditorFreeformButtonControl,__webpack_exports__EditorImageCropper=__webpack_exports__.EditorImageCropper,__webpack_exports__EditorImageFader=__webpack_exports__.EditorImageFader,__webpack_exports__EditorOperationControl=__webpack_exports__.EditorOperationControl,__webpack_exports__EditorScroller=__webpack_exports__.EditorScroller,__webpack_exports__EditorSlider=__webpack_exports__.EditorSlider,__webpack_exports__EditorToolbar=__webpack_exports__.EditorToolbar,__webpack_exports__Icon=__webpack_exports__.Icon,__webpack_exports__LineLoaderUi=__webpack_exports__.LineLoaderUi,__webpack_exports__PresenceToggle=__webpack_exports__.PresenceToggle,__webpack_exports__SliderUi=__webpack_exports__.SliderUi,__webpack_exports__defineComponents=__webpack_exports__.defineComponents;export{__webpack_exports__BtnUi as BtnUi,__webpack_exports__CloudImageEditor as CloudImageEditor,__webpack_exports__CloudImageEditorBlock as CloudImageEditorBlock,__webpack_exports__Config as Config,__webpack_exports__CropFrame as CropFrame,__webpack_exports__EditorAspectRatioButtonControl as EditorAspectRatioButtonControl,__webpack_exports__EditorCropButtonControl as EditorCropButtonControl,__webpack_exports__EditorFilterControl as EditorFilterControl,__webpack_exports__EditorFreeformButtonControl as EditorFreeformButtonControl,__webpack_exports__EditorImageCropper as EditorImageCropper,__webpack_exports__EditorImageFader as EditorImageFader,__webpack_exports__EditorOperationControl as EditorOperationControl,__webpack_exports__EditorScroller as EditorScroller,__webpack_exports__EditorSlider as EditorSlider,__webpack_exports__EditorToolbar as EditorToolbar,__webpack_exports__Icon as Icon,__webpack_exports__LineLoaderUi as LineLoaderUi,__webpack_exports__PresenceToggle as PresenceToggle,__webpack_exports__SliderUi as SliderUi,__webpack_exports__defineComponents as defineComponents};