@zydon/common 2.7.41 → 2.7.43

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 (605) hide show
  1. package/dist/{chunk-UAWK45GJ.js → chunk-24TEQF5G.js} +2 -0
  2. package/dist/chunk-24TEQF5G.js.map +1 -0
  3. package/dist/chunk-2WG6OWB4.js +8 -0
  4. package/dist/chunk-2WG6OWB4.js.map +1 -0
  5. package/dist/{chunk-2P4CXK3O.js → chunk-33C6UWPV.js} +2 -0
  6. package/dist/chunk-33C6UWPV.js.map +1 -0
  7. package/dist/{chunk-JWPSY2TM.js → chunk-3JELAFSE.js} +5 -3
  8. package/dist/chunk-3JELAFSE.js.map +1 -0
  9. package/dist/{chunk-4LP75UX2.js → chunk-3TGBDRKG.js} +2 -0
  10. package/dist/chunk-3TGBDRKG.js.map +1 -0
  11. package/dist/{chunk-2FXBVVBD.js → chunk-45OMMG7D.js} +2 -0
  12. package/dist/chunk-45OMMG7D.js.map +1 -0
  13. package/dist/{chunk-WIPXRHSG.js → chunk-57ZSTQXG.js} +2 -0
  14. package/dist/chunk-57ZSTQXG.js.map +1 -0
  15. package/dist/{chunk-QUIHUBLL.js → chunk-5BAO4KAB.js} +3 -1
  16. package/dist/chunk-5BAO4KAB.js.map +1 -0
  17. package/dist/chunk-5EKUS6HX.js +5 -0
  18. package/dist/chunk-5EKUS6HX.js.map +1 -0
  19. package/dist/{chunk-KFZEM7KS.js → chunk-62UHO7QG.js} +2 -0
  20. package/dist/chunk-62UHO7QG.js.map +1 -0
  21. package/dist/{chunk-RLMWIJKJ.js → chunk-6LXCHHW2.js} +3 -1
  22. package/dist/chunk-6LXCHHW2.js.map +1 -0
  23. package/dist/{chunk-FK7DDO5L.js → chunk-6U5LS7MP.js} +2 -0
  24. package/dist/chunk-6U5LS7MP.js.map +1 -0
  25. package/dist/{chunk-QCN7J3QD.js → chunk-6W52DPH4.js} +4 -2
  26. package/dist/chunk-6W52DPH4.js.map +1 -0
  27. package/dist/{chunk-INPRA4JV.js → chunk-6ZSTKYGL.js} +3 -1
  28. package/dist/chunk-6ZSTKYGL.js.map +1 -0
  29. package/dist/chunk-75G5RNV4.js +8 -0
  30. package/dist/chunk-75G5RNV4.js.map +1 -0
  31. package/dist/{chunk-NF42ENKE.js → chunk-7R6ZYEQS.js} +2 -0
  32. package/dist/chunk-7R6ZYEQS.js.map +1 -0
  33. package/dist/{chunk-62NY5ASU.js → chunk-AGTC2GFY.js} +5 -3
  34. package/dist/chunk-AGTC2GFY.js.map +1 -0
  35. package/dist/{chunk-SMRJS2UH.js → chunk-BNBE2OMA.js} +4 -2
  36. package/dist/chunk-BNBE2OMA.js.map +1 -0
  37. package/dist/{chunk-X2EIL7EB.js → chunk-CO2KQFUN.js} +2 -0
  38. package/dist/chunk-CO2KQFUN.js.map +1 -0
  39. package/dist/{chunk-2QUYG4AQ.js → chunk-DHRVSWFW.js} +2 -0
  40. package/dist/chunk-DHRVSWFW.js.map +1 -0
  41. package/dist/chunk-DJ22BFQ5.js +3 -0
  42. package/dist/chunk-DJ22BFQ5.js.map +1 -0
  43. package/dist/{chunk-H5L4ARDB.js → chunk-DTIGB5NW.js} +2 -0
  44. package/dist/chunk-DTIGB5NW.js.map +1 -0
  45. package/dist/{chunk-W3MYAMTH.js → chunk-E3R7W7GK.js} +2 -0
  46. package/dist/chunk-E3R7W7GK.js.map +1 -0
  47. package/dist/{chunk-5MFY3GOD.js → chunk-EQYL7U3J.js} +3 -1
  48. package/dist/chunk-EQYL7U3J.js.map +1 -0
  49. package/dist/{chunk-RQ5Q6X5Y.js → chunk-ESFOFEVL.js} +2 -0
  50. package/dist/chunk-ESFOFEVL.js.map +1 -0
  51. package/dist/{chunk-3APKMSVD.js → chunk-ET3WPQIO.js} +2 -0
  52. package/dist/chunk-ET3WPQIO.js.map +1 -0
  53. package/dist/{chunk-V2WK4RL5.js → chunk-F6H765KA.js} +2 -0
  54. package/dist/chunk-F6H765KA.js.map +1 -0
  55. package/dist/{chunk-QQB3DGHT.js → chunk-FG2BVR7Y.js} +2 -0
  56. package/dist/chunk-FG2BVR7Y.js.map +1 -0
  57. package/dist/{chunk-ZFNDQWIR.js → chunk-FK4XGRYF.js} +3 -1
  58. package/dist/chunk-FK4XGRYF.js.map +1 -0
  59. package/dist/{chunk-X3NSWXUJ.js → chunk-GLRLKFPS.js} +2 -0
  60. package/dist/chunk-GLRLKFPS.js.map +1 -0
  61. package/dist/{chunk-ZR3AIGIM.js → chunk-GPFANUMT.js} +2 -0
  62. package/dist/chunk-GPFANUMT.js.map +1 -0
  63. package/dist/{chunk-QQDMA4TE.js → chunk-HLMZQG27.js} +4 -2
  64. package/dist/chunk-HLMZQG27.js.map +1 -0
  65. package/dist/{chunk-4YLFZWLH.js → chunk-HZHHU42J.js} +3 -1
  66. package/dist/chunk-HZHHU42J.js.map +1 -0
  67. package/dist/{chunk-BA7W47G5.js → chunk-IG2JGSDF.js} +7 -5
  68. package/dist/chunk-IG2JGSDF.js.map +1 -0
  69. package/dist/{chunk-OBYJ5SJ2.js → chunk-IJZCVZ32.js} +2 -0
  70. package/dist/chunk-IJZCVZ32.js.map +1 -0
  71. package/dist/{chunk-7F7UOLDE.js → chunk-IL3EAU5G.js} +2 -0
  72. package/dist/chunk-IL3EAU5G.js.map +1 -0
  73. package/dist/{chunk-5YJTSVA2.js → chunk-IN7SP2ND.js} +2 -0
  74. package/dist/chunk-IN7SP2ND.js.map +1 -0
  75. package/dist/{chunk-WUQSPJPN.js → chunk-JNDZPNQJ.js} +2 -0
  76. package/dist/chunk-JNDZPNQJ.js.map +1 -0
  77. package/dist/{chunk-DUTOJBJU.js → chunk-JW3LMT7N.js} +2 -0
  78. package/dist/chunk-JW3LMT7N.js.map +1 -0
  79. package/dist/{chunk-7AZX7L27.js → chunk-KGLU4CR2.js} +2 -0
  80. package/dist/chunk-KGLU4CR2.js.map +1 -0
  81. package/dist/{chunk-U3MGKUUY.js → chunk-KIWSLR76.js} +2 -0
  82. package/dist/chunk-KIWSLR76.js.map +1 -0
  83. package/dist/{chunk-H7SJHIL3.js → chunk-KN22PA5V.js} +4 -2
  84. package/dist/chunk-KN22PA5V.js.map +1 -0
  85. package/dist/{chunk-4INDXVIX.js → chunk-L5URMM57.js} +2 -0
  86. package/dist/chunk-L5URMM57.js.map +1 -0
  87. package/dist/{chunk-ADHG7G36.js → chunk-LCQGL2LT.js} +2 -0
  88. package/dist/chunk-LCQGL2LT.js.map +1 -0
  89. package/dist/{chunk-SO64ZYQB.js → chunk-LDGBS7ZI.js} +2 -0
  90. package/dist/chunk-LDGBS7ZI.js.map +1 -0
  91. package/dist/{chunk-JAHXVWFM.js → chunk-LFHA3YUV.js} +2 -0
  92. package/dist/chunk-LFHA3YUV.js.map +1 -0
  93. package/dist/{chunk-OPPJJWVJ.js → chunk-LNHA4IG5.js} +14 -12
  94. package/dist/chunk-LNHA4IG5.js.map +1 -0
  95. package/dist/{chunk-ORYAES3Q.js → chunk-LQRRMVFN.js} +2 -0
  96. package/dist/chunk-LQRRMVFN.js.map +1 -0
  97. package/dist/{chunk-BFJVWSVF.js → chunk-LV6VSQQ2.js} +3 -1
  98. package/dist/chunk-LV6VSQQ2.js.map +1 -0
  99. package/dist/chunk-M7G7BBNO.js +18 -0
  100. package/dist/chunk-M7G7BBNO.js.map +1 -0
  101. package/dist/{chunk-Z2TDWMRU.js → chunk-MQAMSYYK.js} +3 -1
  102. package/dist/chunk-MQAMSYYK.js.map +1 -0
  103. package/dist/{chunk-6O66AMF6.js → chunk-N22KLIFJ.js} +4 -2
  104. package/dist/chunk-N22KLIFJ.js.map +1 -0
  105. package/dist/{chunk-TRI6XGH4.js → chunk-N7IK5EUP.js} +2 -0
  106. package/dist/chunk-N7IK5EUP.js.map +1 -0
  107. package/dist/{chunk-U26IUEAG.js → chunk-NIQW2J3M.js} +2 -0
  108. package/dist/chunk-NIQW2J3M.js.map +1 -0
  109. package/dist/{chunk-AYGCYCIP.js → chunk-NJJWOJLT.js} +4 -2
  110. package/dist/chunk-NJJWOJLT.js.map +1 -0
  111. package/dist/{chunk-2CH6QZ3E.js → chunk-NTKAC4NG.js} +3 -1
  112. package/dist/chunk-NTKAC4NG.js.map +1 -0
  113. package/dist/{chunk-ANAHA3L6.js → chunk-OF6623HG.js} +2 -0
  114. package/dist/chunk-OF6623HG.js.map +1 -0
  115. package/dist/{chunk-TF3JCVT7.js → chunk-P6HORLPW.js} +3 -1
  116. package/dist/chunk-P6HORLPW.js.map +1 -0
  117. package/dist/{chunk-XSNVHQNH.js → chunk-RFAAH7QG.js} +2 -0
  118. package/dist/chunk-RFAAH7QG.js.map +1 -0
  119. package/dist/chunk-ROVD7OGE.js +7 -0
  120. package/dist/chunk-ROVD7OGE.js.map +1 -0
  121. package/dist/{chunk-Q3ADZHO5.js → chunk-RP7PNTLJ.js} +2 -0
  122. package/dist/chunk-RP7PNTLJ.js.map +1 -0
  123. package/dist/{chunk-ILHUUK4X.js → chunk-RPO7AI5K.js} +2 -0
  124. package/dist/chunk-RPO7AI5K.js.map +1 -0
  125. package/dist/{chunk-Q7HPO5OB.js → chunk-RUABKHIV.js} +2 -0
  126. package/dist/chunk-RUABKHIV.js.map +1 -0
  127. package/dist/{chunk-3JXE4T4W.js → chunk-SA2BESEB.js} +4 -2
  128. package/dist/chunk-SA2BESEB.js.map +1 -0
  129. package/dist/{chunk-X24QANPC.js → chunk-SBMEL2IJ.js} +3 -1
  130. package/dist/chunk-SBMEL2IJ.js.map +1 -0
  131. package/dist/{chunk-2IKZ2Z55.js → chunk-SLDN2VKA.js} +5 -3
  132. package/dist/chunk-SLDN2VKA.js.map +1 -0
  133. package/dist/{chunk-UVJF63IA.js → chunk-SPC6IIEJ.js} +14 -12
  134. package/dist/chunk-SPC6IIEJ.js.map +1 -0
  135. package/dist/{chunk-KQGELCZT.js → chunk-SR36OFDX.js} +9 -7
  136. package/dist/chunk-SR36OFDX.js.map +1 -0
  137. package/dist/{chunk-GFJT57TO.js → chunk-SVX7EWV4.js} +2 -0
  138. package/dist/chunk-SVX7EWV4.js.map +1 -0
  139. package/dist/{chunk-6MUF35YU.js → chunk-TVKBRJHF.js} +2 -0
  140. package/dist/chunk-TVKBRJHF.js.map +1 -0
  141. package/dist/{chunk-SVZBOLAL.js → chunk-TWSAWMZ3.js} +5 -3
  142. package/dist/chunk-TWSAWMZ3.js.map +1 -0
  143. package/dist/{chunk-S3JMDRC4.js → chunk-TYWQEVTD.js} +3 -1
  144. package/dist/chunk-TYWQEVTD.js.map +1 -0
  145. package/dist/{chunk-AJW3AGOS.js → chunk-UHD4ZFH3.js} +3 -1
  146. package/dist/chunk-UHD4ZFH3.js.map +1 -0
  147. package/dist/{chunk-GLE7JXOO.js → chunk-UHXAPEIF.js} +3 -1
  148. package/dist/chunk-UHXAPEIF.js.map +1 -0
  149. package/dist/{chunk-NPXVOPB2.js → chunk-UVPQR2Q2.js} +2 -0
  150. package/dist/chunk-UVPQR2Q2.js.map +1 -0
  151. package/dist/{chunk-ZCLLRBC2.js → chunk-VCHDZXTF.js} +3 -1
  152. package/dist/chunk-VCHDZXTF.js.map +1 -0
  153. package/dist/{chunk-DMQW3LDF.js → chunk-VITOOMKK.js} +3 -1
  154. package/dist/chunk-VITOOMKK.js.map +1 -0
  155. package/dist/{chunk-GUFT6XPG.js → chunk-WUFEPE2G.js} +2 -0
  156. package/dist/chunk-WUFEPE2G.js.map +1 -0
  157. package/dist/{chunk-IHAHXNLH.js → chunk-WVOR4AJC.js} +2 -0
  158. package/dist/chunk-WVOR4AJC.js.map +1 -0
  159. package/dist/{chunk-EBTRMUBS.js → chunk-X2NG6VDB.js} +2 -0
  160. package/dist/chunk-X2NG6VDB.js.map +1 -0
  161. package/dist/{chunk-P6XKMQ5X.js → chunk-X4PUHUMT.js} +3 -1
  162. package/dist/chunk-X4PUHUMT.js.map +1 -0
  163. package/dist/{chunk-S7QQBC4I.js → chunk-XNKYJHNL.js} +2 -0
  164. package/dist/chunk-XNKYJHNL.js.map +1 -0
  165. package/dist/{chunk-26GV7WKC.js → chunk-XWUVJ22J.js} +2 -0
  166. package/dist/chunk-XWUVJ22J.js.map +1 -0
  167. package/dist/{chunk-COHTZ4TP.js → chunk-Y2BERZSA.js} +3 -1
  168. package/dist/chunk-Y2BERZSA.js.map +1 -0
  169. package/dist/{chunk-GA4A5P3S.js → chunk-YCEQDXLR.js} +2 -0
  170. package/dist/chunk-YCEQDXLR.js.map +1 -0
  171. package/dist/{chunk-NPVFMSND.js → chunk-YWSFODIB.js} +3 -1
  172. package/dist/chunk-YWSFODIB.js.map +1 -0
  173. package/dist/{chunk-NV2X5CYP.js → chunk-YXRL4O4H.js} +2 -0
  174. package/dist/chunk-YXRL4O4H.js.map +1 -0
  175. package/dist/{chunk-KOELUX3V.js → chunk-ZMB2HEJV.js} +2 -0
  176. package/dist/chunk-ZMB2HEJV.js.map +1 -0
  177. package/dist/{chunk-AMFNTDPM.js → chunk-ZMZIXWJA.js} +3 -1
  178. package/dist/chunk-ZMZIXWJA.js.map +1 -0
  179. package/dist/components/ActionButton/index.js +6 -4
  180. package/dist/components/ActionButton/index.js.map +1 -0
  181. package/dist/components/Autocomplete/index.js +6 -4
  182. package/dist/components/Autocomplete/index.js.map +1 -0
  183. package/dist/components/AutocompleteDetailed/index.js +5 -3
  184. package/dist/components/AutocompleteDetailed/index.js.map +1 -0
  185. package/dist/components/Avatar/index.js +2 -0
  186. package/dist/components/Avatar/index.js.map +1 -0
  187. package/dist/components/AvatarButton/index.js +20 -18
  188. package/dist/components/AvatarButton/index.js.map +1 -0
  189. package/dist/components/BuilderLayout/index.js +6 -4
  190. package/dist/components/BuilderLayout/index.js.map +1 -0
  191. package/dist/components/BuilderSidebar/index.js +6 -4
  192. package/dist/components/BuilderSidebar/index.js.map +1 -0
  193. package/dist/components/CardBrandText/index.js +4 -2
  194. package/dist/components/CardBrandText/index.js.map +1 -0
  195. package/dist/components/CardFlag/index.js +3 -1
  196. package/dist/components/CardFlag/index.js.map +1 -0
  197. package/dist/components/CardWithHeader/index.js +2 -0
  198. package/dist/components/CardWithHeader/index.js.map +1 -0
  199. package/dist/components/ColorPickerInput/index.js +4 -2
  200. package/dist/components/ColorPickerInput/index.js.map +1 -0
  201. package/dist/components/ColoredLabel/index.js +2 -0
  202. package/dist/components/ColoredLabel/index.js.map +1 -0
  203. package/dist/components/Common/index.js +14 -12
  204. package/dist/components/Common/index.js.map +1 -0
  205. package/dist/components/Confirm/index.js +2 -0
  206. package/dist/components/Confirm/index.js.map +1 -0
  207. package/dist/components/CustomAvatar/index.js +3 -1
  208. package/dist/components/CustomAvatar/index.js.map +1 -0
  209. package/dist/components/CustomAvatarGroup/index.js +2 -0
  210. package/dist/components/CustomAvatarGroup/index.js.map +1 -0
  211. package/dist/components/DashedDivider/index.js +3 -1
  212. package/dist/components/DashedDivider/index.js.map +1 -0
  213. package/dist/components/DataCards/index.js +8 -6
  214. package/dist/components/DataCards/index.js.map +1 -0
  215. package/dist/components/DataGrid/index.js +7 -5
  216. package/dist/components/DataGrid/index.js.map +1 -0
  217. package/dist/components/DataView/index.js +18 -16
  218. package/dist/components/DataView/index.js.map +1 -0
  219. package/dist/components/DatePicker/index.js +2 -0
  220. package/dist/components/DatePicker/index.js.map +1 -0
  221. package/dist/components/DateRangeCalendar/index.js +2 -0
  222. package/dist/components/DateRangeCalendar/index.js.map +1 -0
  223. package/dist/components/DateRangePicker/index.js +2 -0
  224. package/dist/components/DateRangePicker/index.js.map +1 -0
  225. package/dist/components/DateTimePicker/index.js +2 -0
  226. package/dist/components/DateTimePicker/index.js.map +1 -0
  227. package/dist/components/Delayed/index.js +2 -0
  228. package/dist/components/Delayed/index.js.map +1 -0
  229. package/dist/components/DisplayMode/index.js +2 -0
  230. package/dist/components/DisplayMode/index.js.map +1 -0
  231. package/dist/components/DragButton/index.js +6 -4
  232. package/dist/components/DragButton/index.js.map +1 -0
  233. package/dist/components/DragContainer/index.js +3 -1
  234. package/dist/components/DragContainer/index.js.map +1 -0
  235. package/dist/components/Drawer/index.js +6 -4
  236. package/dist/components/Drawer/index.js.map +1 -0
  237. package/dist/components/EasyCrop/index.js +3 -1
  238. package/dist/components/EasyCrop/index.js.map +1 -0
  239. package/dist/components/EasyCropModal/index.js +9 -7
  240. package/dist/components/EasyCropModal/index.js.map +1 -0
  241. package/dist/components/EmptyContent/index.js +5 -3
  242. package/dist/components/EmptyContent/index.js.map +1 -0
  243. package/dist/components/EmptyView/index.js +4 -2
  244. package/dist/components/EmptyView/index.js.map +1 -0
  245. package/dist/components/Error/index.js +5 -3
  246. package/dist/components/Error/index.js.map +1 -0
  247. package/dist/components/ExpandableGroup/index.js +6 -4
  248. package/dist/components/ExpandableGroup/index.js.map +1 -0
  249. package/dist/components/FieldMentions/index.js +4 -2
  250. package/dist/components/FieldMentions/index.js.map +1 -0
  251. package/dist/components/FileUpload/index.js +20 -18
  252. package/dist/components/FileUpload/index.js.map +1 -0
  253. package/dist/components/FixedProgressBar/index.js +3 -1
  254. package/dist/components/FixedProgressBar/index.js.map +1 -0
  255. package/dist/components/FrameSkeleton/index.js +13 -11
  256. package/dist/components/FrameSkeleton/index.js.map +1 -0
  257. package/dist/components/HelpButton/index.js +6 -4
  258. package/dist/components/HelpButton/index.js.map +1 -0
  259. package/dist/components/Icon/index.js +5 -3
  260. package/dist/components/Icon/index.js.map +1 -0
  261. package/dist/components/IconButton/index.js +6 -4
  262. package/dist/components/IconButton/index.js.map +1 -0
  263. package/dist/components/ImageCrop/index.js +3 -1
  264. package/dist/components/ImageCrop/index.js.map +1 -0
  265. package/dist/components/ImageCropModal/index.js +8 -6
  266. package/dist/components/ImageCropModal/index.js.map +1 -0
  267. package/dist/components/Incrementer/index.js +8 -6
  268. package/dist/components/Incrementer/index.js.map +1 -0
  269. package/dist/components/InfoCircle/index.js +6 -4
  270. package/dist/components/InfoCircle/index.js.map +1 -0
  271. package/dist/components/Label/index.js +4 -2
  272. package/dist/components/Label/index.js.map +1 -0
  273. package/dist/components/ListBundles/index.js +9 -7
  274. package/dist/components/ListBundles/index.js.map +1 -0
  275. package/dist/components/LoadingScreen/index.js +2 -0
  276. package/dist/components/LoadingScreen/index.js.map +1 -0
  277. package/dist/components/MaskedInput/index.js +3 -1
  278. package/dist/components/MaskedInput/index.js.map +1 -0
  279. package/dist/components/MenuItem/index.js +5 -3
  280. package/dist/components/MenuItem/index.js.map +1 -0
  281. package/dist/components/MenuPopover/index.js +3 -1
  282. package/dist/components/MenuPopover/index.js.map +1 -0
  283. package/dist/components/Modal/index.js +6 -4
  284. package/dist/components/Modal/index.js.map +1 -0
  285. package/dist/components/ModalActions/index.js +3 -1
  286. package/dist/components/ModalActions/index.js.map +1 -0
  287. package/dist/components/MoreMenu/index.js +7 -5
  288. package/dist/components/MoreMenu/index.js.map +1 -0
  289. package/dist/components/NumberInput/index.js +3 -1
  290. package/dist/components/NumberInput/index.js.map +1 -0
  291. package/dist/components/Panel/index.js +3 -1
  292. package/dist/components/Panel/index.js.map +1 -0
  293. package/dist/components/PasswordRules/index.js +6 -4
  294. package/dist/components/PasswordRules/index.js.map +1 -0
  295. package/dist/components/PopoverSelect/index.js +7 -5
  296. package/dist/components/PopoverSelect/index.js.map +1 -0
  297. package/dist/components/Portal/index.js +3 -1
  298. package/dist/components/Portal/index.js.map +1 -0
  299. package/dist/components/Result/index.js +3 -1
  300. package/dist/components/Result/index.js.map +1 -0
  301. package/dist/components/SavedChanges/index.js +3 -1
  302. package/dist/components/SavedChanges/index.js.map +1 -0
  303. package/dist/components/Scrollbar/index.js +3 -1
  304. package/dist/components/Scrollbar/index.js.map +1 -0
  305. package/dist/components/SearchInput/index.js +6 -4
  306. package/dist/components/SearchInput/index.js.map +1 -0
  307. package/dist/components/SelectableCards/index.js +11 -9
  308. package/dist/components/SelectableCards/index.js.map +1 -0
  309. package/dist/components/SeoPreview/index.js +7 -5
  310. package/dist/components/SeoPreview/index.js.map +1 -0
  311. package/dist/components/SimpleCard/index.js +2 -0
  312. package/dist/components/SimpleCard/index.js.map +1 -0
  313. package/dist/components/Skeleton/index.js +3 -1
  314. package/dist/components/Skeleton/index.js.map +1 -0
  315. package/dist/components/SmartText/index.js +2 -0
  316. package/dist/components/SmartText/index.js.map +1 -0
  317. package/dist/components/SplashScreen/index.js +3 -1
  318. package/dist/components/SplashScreen/index.js.map +1 -0
  319. package/dist/components/StateDisplay/index.js +6 -4
  320. package/dist/components/StateDisplay/index.js.map +1 -0
  321. package/dist/components/Steps/index.js +5 -3
  322. package/dist/components/Steps/index.js.map +1 -0
  323. package/dist/components/StyledTab/index.js +5 -3
  324. package/dist/components/StyledTab/index.js.map +1 -0
  325. package/dist/components/StyledTabs/index.js +2 -0
  326. package/dist/components/StyledTabs/index.js.map +1 -0
  327. package/dist/components/Summary/index.js +2 -0
  328. package/dist/components/Summary/index.js.map +1 -0
  329. package/dist/components/SwapList/index.js +10 -8
  330. package/dist/components/SwapList/index.js.map +1 -0
  331. package/dist/components/TabPanel/index.js +2 -0
  332. package/dist/components/TabPanel/index.js.map +1 -0
  333. package/dist/components/TextMaxLine/index.js +4 -2
  334. package/dist/components/TextMaxLine/index.js.map +1 -0
  335. package/dist/components/TimePicker/index.js +2 -0
  336. package/dist/components/TimePicker/index.js.map +1 -0
  337. package/dist/components/ToggleButtonGroup/index.js +2 -0
  338. package/dist/components/ToggleButtonGroup/index.js.map +1 -0
  339. package/dist/components/ToggleTheme/index.js +13 -11
  340. package/dist/components/ToggleTheme/index.js.map +1 -0
  341. package/dist/components/Tooltip/index.js +3 -1
  342. package/dist/components/Tooltip/index.js.map +1 -0
  343. package/dist/components/WebhookCard/index.js +11 -9
  344. package/dist/components/WebhookCard/index.js.map +1 -0
  345. package/dist/components/WhiteBox/index.js +3 -1
  346. package/dist/components/WhiteBox/index.js.map +1 -0
  347. package/dist/components/animate/index.js +4 -2
  348. package/dist/components/animate/index.js.map +1 -0
  349. package/dist/components/carousel/index.js +7 -5
  350. package/dist/components/carousel/index.js.map +1 -0
  351. package/dist/components/form/Address/index.js +10 -8
  352. package/dist/components/form/Address/index.js.map +1 -0
  353. package/dist/components/form/Autocomplete/index.js +7 -5
  354. package/dist/components/form/Autocomplete/index.js.map +1 -0
  355. package/dist/components/form/AutocompleteDetailed/index.js +5 -3
  356. package/dist/components/form/AutocompleteDetailed/index.js.map +1 -0
  357. package/dist/components/form/Checkbox/index.js +2 -0
  358. package/dist/components/form/Checkbox/index.js.map +1 -0
  359. package/dist/components/form/Codes/index.js +3 -1
  360. package/dist/components/form/Codes/index.js.map +1 -0
  361. package/dist/components/form/ColorPicker/index.js +4 -2
  362. package/dist/components/form/ColorPicker/index.js.map +1 -0
  363. package/dist/components/form/DateField/index.js +2 -0
  364. package/dist/components/form/DateField/index.js.map +1 -0
  365. package/dist/components/form/DatePicker/index.js +2 -0
  366. package/dist/components/form/DatePicker/index.js.map +1 -0
  367. package/dist/components/form/DateRangePicker/index.js +2 -0
  368. package/dist/components/form/DateRangePicker/index.js.map +1 -0
  369. package/dist/components/form/DateTimePicker/index.js +2 -0
  370. package/dist/components/form/DateTimePicker/index.js.map +1 -0
  371. package/dist/components/form/Field/index.js +3 -1
  372. package/dist/components/form/Field/index.js.map +1 -0
  373. package/dist/components/form/FileUpload/index.js +20 -18
  374. package/dist/components/form/FileUpload/index.js.map +1 -0
  375. package/dist/components/form/Form/index.js +2 -0
  376. package/dist/components/form/Form/index.js.map +1 -0
  377. package/dist/components/form/Incrementer/index.js +8 -6
  378. package/dist/components/form/Incrementer/index.js.map +1 -0
  379. package/dist/components/form/InputTags/index.js +2 -0
  380. package/dist/components/form/InputTags/index.js.map +1 -0
  381. package/dist/components/form/MaskedInput/index.js +4 -2
  382. package/dist/components/form/MaskedInput/index.js.map +1 -0
  383. package/dist/components/form/MultiCheckbox/index.js +2 -0
  384. package/dist/components/form/MultiCheckbox/index.js.map +1 -0
  385. package/dist/components/form/MultiChipField/index.js +2 -0
  386. package/dist/components/form/MultiChipField/index.js.map +1 -0
  387. package/dist/components/form/NumberInput/index.js +3 -1
  388. package/dist/components/form/NumberInput/index.js.map +1 -0
  389. package/dist/components/form/Password/index.js +7 -5
  390. package/dist/components/form/Password/index.js.map +1 -0
  391. package/dist/components/form/RadioGroup/index.js +2 -0
  392. package/dist/components/form/RadioGroup/index.js.map +1 -0
  393. package/dist/components/form/SelectableCards/index.js +11 -9
  394. package/dist/components/form/SelectableCards/index.js.map +1 -0
  395. package/dist/components/form/Switch/index.js +2 -0
  396. package/dist/components/form/Switch/index.js.map +1 -0
  397. package/dist/components/form/TimePicker/index.js +2 -0
  398. package/dist/components/form/TimePicker/index.js.map +1 -0
  399. package/dist/components/form/UploadAvatarWithCrop/index.js +16 -14
  400. package/dist/components/form/UploadAvatarWithCrop/index.js.map +1 -0
  401. package/dist/components/form/UploadWithCrop/index.js +22 -20
  402. package/dist/components/form/UploadWithCrop/index.js.map +1 -0
  403. package/dist/components/form/Webhook/index.js +9 -7
  404. package/dist/components/form/Webhook/index.js.map +1 -0
  405. package/dist/components/lightbox/index.js +5 -3
  406. package/dist/components/lightbox/index.js.map +1 -0
  407. package/dist/components/table/index.js +6 -4
  408. package/dist/components/table/index.js.map +1 -0
  409. package/dist/components/upload/index.js +23 -21
  410. package/dist/components/upload/index.js.map +1 -0
  411. package/dist/contexts/Messages/index.js +3 -1
  412. package/dist/contexts/Messages/index.js.map +1 -0
  413. package/dist/contexts/PushNotifications/index.js +6 -4
  414. package/dist/contexts/PushNotifications/index.js.map +1 -0
  415. package/dist/hooks/useActiveElement.js +2 -0
  416. package/dist/hooks/useActiveElement.js.map +1 -0
  417. package/dist/hooks/useApiMessage.js +3 -1
  418. package/dist/hooks/useApiMessage.js.map +1 -0
  419. package/dist/hooks/useAutocomplete.js +2 -0
  420. package/dist/hooks/useAutocomplete.js.map +1 -0
  421. package/dist/hooks/useCollapseSidebarOnMount.js +8 -6
  422. package/dist/hooks/useCollapseSidebarOnMount.js.map +1 -0
  423. package/dist/hooks/useCopyToClipboard.js +2 -0
  424. package/dist/hooks/useCopyToClipboard.js.map +1 -0
  425. package/dist/hooks/useDatagrid.js +2 -0
  426. package/dist/hooks/useDatagrid.js.map +1 -0
  427. package/dist/hooks/useDebounceValue.js +2 -0
  428. package/dist/hooks/useDebounceValue.js.map +1 -0
  429. package/dist/hooks/useDeepCompareEffect.js +3 -1
  430. package/dist/hooks/useDeepCompareEffect.js.map +1 -0
  431. package/dist/hooks/useEventCallback.js +4 -2
  432. package/dist/hooks/useEventCallback.js.map +1 -0
  433. package/dist/hooks/useEventListener.js +3 -1
  434. package/dist/hooks/useEventListener.js.map +1 -0
  435. package/dist/hooks/useIsMounting.js +2 -0
  436. package/dist/hooks/useIsMounting.js.map +1 -0
  437. package/dist/hooks/useIsVisible.js +2 -0
  438. package/dist/hooks/useIsVisible.js.map +1 -0
  439. package/dist/hooks/useIsomorphicLayoutEffect.js +3 -1
  440. package/dist/hooks/useIsomorphicLayoutEffect.js.map +1 -0
  441. package/dist/hooks/useLocalStorage.js +6 -4
  442. package/dist/hooks/useLocalStorage.js.map +1 -0
  443. package/dist/hooks/useMount.js +3 -1
  444. package/dist/hooks/useMount.js.map +1 -0
  445. package/dist/hooks/useOnClickOutside.js +3 -1
  446. package/dist/hooks/useOnClickOutside.js.map +1 -0
  447. package/dist/hooks/usePagination.js +2 -0
  448. package/dist/hooks/usePagination.js.map +1 -0
  449. package/dist/hooks/usePopover.js +3 -1
  450. package/dist/hooks/usePopover.js.map +1 -0
  451. package/dist/hooks/useResponsive.js +3 -1
  452. package/dist/hooks/useResponsive.js.map +1 -0
  453. package/dist/hooks/useScrollOffSetTop.js +2 -0
  454. package/dist/hooks/useScrollOffSetTop.js.map +1 -0
  455. package/dist/hooks/useSnackbar.js +3 -1
  456. package/dist/hooks/useSnackbar.js.map +1 -0
  457. package/dist/hooks/useTabs.js +2 -0
  458. package/dist/hooks/useTabs.js.map +1 -0
  459. package/dist/hooks/useThemeToggle.js +12 -10
  460. package/dist/hooks/useThemeToggle.js.map +1 -0
  461. package/dist/hooks/useToggle.js +3 -1
  462. package/dist/hooks/useToggle.js.map +1 -0
  463. package/dist/hooks/useUpload.js +3 -1
  464. package/dist/hooks/useUpload.js.map +1 -0
  465. package/dist/hooks/useUploadImage.js +4 -2
  466. package/dist/hooks/useUploadImage.js.map +1 -0
  467. package/dist/hooks/useWindowFocus.js +2 -0
  468. package/dist/hooks/useWindowFocus.js.map +1 -0
  469. package/dist/index.css +1 -0
  470. package/dist/index.css.map +1 -0
  471. package/dist/index.d.ts +1 -1
  472. package/dist/index.js +12 -10
  473. package/dist/index.js.map +1 -0
  474. package/dist/layouts/Admin/index.js +3 -1
  475. package/dist/layouts/Admin/index.js.map +1 -0
  476. package/dist/locales/all-langs.js +3 -1
  477. package/dist/locales/all-langs.js.map +1 -0
  478. package/dist/{settings-provider-d962dacc.d.ts → settings-provider-38d09283.d.ts} +0 -1
  479. package/dist/theme/core/index.js +5 -3
  480. package/dist/theme/core/index.js.map +1 -0
  481. package/dist/theme/settings-provider.d.ts +1 -1
  482. package/dist/theme/settings-provider.js +3 -1
  483. package/dist/theme/settings-provider.js.map +1 -0
  484. package/dist/theme/styles/index.js +3 -1
  485. package/dist/theme/styles/index.js.map +1 -0
  486. package/dist/theme/theme-provider.d.ts +2 -2
  487. package/dist/theme/theme-provider.js +11 -9
  488. package/dist/theme/theme-provider.js.map +1 -0
  489. package/dist/theme/with-settings/index.js +6 -4
  490. package/dist/theme/with-settings/index.js.map +1 -0
  491. package/dist/types/addressProps.js +2 -0
  492. package/dist/types/addressProps.js.map +1 -0
  493. package/dist/types/api.js +2 -0
  494. package/dist/types/api.js.map +1 -0
  495. package/dist/types/autoComplete.js +2 -0
  496. package/dist/types/autoComplete.js.map +1 -0
  497. package/dist/types/autoCompleteProps.js +2 -0
  498. package/dist/types/autoCompleteProps.js.map +1 -0
  499. package/dist/types/baseField.js +2 -0
  500. package/dist/types/baseField.js.map +1 -0
  501. package/dist/types/consoleLog.js +3 -1
  502. package/dist/types/consoleLog.js.map +1 -0
  503. package/dist/types/dataGridProps.js +2 -0
  504. package/dist/types/dataGridProps.js.map +1 -0
  505. package/dist/types/datagrid.js +2 -0
  506. package/dist/types/datagrid.js.map +1 -0
  507. package/dist/types/dateFieldProps.js +2 -0
  508. package/dist/types/dateFieldProps.js.map +1 -0
  509. package/dist/types/datePickerProps.js +2 -0
  510. package/dist/types/datePickerProps.js.map +1 -0
  511. package/dist/types/dateRangePickerProps.js +2 -0
  512. package/dist/types/dateRangePickerProps.js.map +1 -0
  513. package/dist/types/dateTimePickerProps.js +2 -0
  514. package/dist/types/dateTimePickerProps.js.map +1 -0
  515. package/dist/types/fieldMentions.js +3 -1
  516. package/dist/types/fieldMentions.js.map +1 -0
  517. package/dist/types/fieldProps.js +2 -0
  518. package/dist/types/fieldProps.js.map +1 -0
  519. package/dist/types/files.js +3 -1
  520. package/dist/types/files.js.map +1 -0
  521. package/dist/types/icon.js +3 -1
  522. package/dist/types/icon.js.map +1 -0
  523. package/dist/types/iconProps.js +3 -1
  524. package/dist/types/iconProps.js.map +1 -0
  525. package/dist/types/incrementerProps.js +2 -0
  526. package/dist/types/incrementerProps.js.map +1 -0
  527. package/dist/types/item.js +2 -0
  528. package/dist/types/item.js.map +1 -0
  529. package/dist/types/messages.js +2 -0
  530. package/dist/types/messages.js.map +1 -0
  531. package/dist/types/multiCheckboxProps.js +2 -0
  532. package/dist/types/multiCheckboxProps.js.map +1 -0
  533. package/dist/types/numberInputProps.js +2 -0
  534. package/dist/types/numberInputProps.js.map +1 -0
  535. package/dist/types/option.js +2 -0
  536. package/dist/types/option.js.map +1 -0
  537. package/dist/types/pushNotifications.js +3 -1
  538. package/dist/types/pushNotifications.js.map +1 -0
  539. package/dist/types/radioGroupProps.js +2 -0
  540. package/dist/types/radioGroupProps.js.map +1 -0
  541. package/dist/types/searchInputProps.js +2 -0
  542. package/dist/types/searchInputProps.js.map +1 -0
  543. package/dist/types/sectionProps.js +2 -0
  544. package/dist/types/sectionProps.js.map +1 -0
  545. package/dist/types/switchProps.js +2 -0
  546. package/dist/types/switchProps.js.map +1 -0
  547. package/dist/types/timePickerProps.js +2 -0
  548. package/dist/types/timePickerProps.js.map +1 -0
  549. package/dist/types/upload.js +2 -0
  550. package/dist/types/upload.js.map +1 -0
  551. package/dist/types/webhook.js +3 -1
  552. package/dist/types/webhook.js.map +1 -0
  553. package/dist/utils/color.js +3 -1
  554. package/dist/utils/color.js.map +1 -0
  555. package/dist/utils/compare.js +3 -1
  556. package/dist/utils/compare.js.map +1 -0
  557. package/dist/utils/consoleLog.js +4 -2
  558. package/dist/utils/consoleLog.js.map +1 -0
  559. package/dist/utils/date.js +2 -0
  560. package/dist/utils/date.js.map +1 -0
  561. package/dist/utils/diacritics.js +3 -1
  562. package/dist/utils/diacritics.js.map +1 -0
  563. package/dist/utils/dnd.js +3 -1
  564. package/dist/utils/dnd.js.map +1 -0
  565. package/dist/utils/execution.js +2 -0
  566. package/dist/utils/execution.js.map +1 -0
  567. package/dist/utils/files.js +3 -1
  568. package/dist/utils/files.js.map +1 -0
  569. package/dist/utils/flagCard.js +4 -2
  570. package/dist/utils/flagCard.js.map +1 -0
  571. package/dist/utils/formatNumber.js +3 -1
  572. package/dist/utils/formatNumber.js.map +1 -0
  573. package/dist/utils/formatTime.js +3 -1
  574. package/dist/utils/formatTime.js.map +1 -0
  575. package/dist/utils/loadable.js +3 -1
  576. package/dist/utils/loadable.js.map +1 -0
  577. package/dist/utils/mask.js +2 -0
  578. package/dist/utils/mask.js.map +1 -0
  579. package/dist/utils/number.js +3 -1
  580. package/dist/utils/number.js.map +1 -0
  581. package/dist/utils/object.js +3 -1
  582. package/dist/utils/object.js.map +1 -0
  583. package/dist/utils/paymentValidators.js +2 -0
  584. package/dist/utils/paymentValidators.js.map +1 -0
  585. package/dist/utils/popup.js +2 -0
  586. package/dist/utils/popup.js.map +1 -0
  587. package/dist/utils/sort.js +2 -0
  588. package/dist/utils/sort.js.map +1 -0
  589. package/dist/utils/string.js +2 -0
  590. package/dist/utils/string.js.map +1 -0
  591. package/dist/utils/urlBase64ToUint8Array.js +3 -1
  592. package/dist/utils/urlBase64ToUint8Array.js.map +1 -0
  593. package/dist/utils/user.js +3 -1
  594. package/dist/utils/user.js.map +1 -0
  595. package/dist/utils/uuidv4.js +3 -1
  596. package/dist/utils/uuidv4.js.map +1 -0
  597. package/dist/utils/validators.js +3 -1
  598. package/dist/utils/validators.js.map +1 -0
  599. package/package.json +1 -1
  600. package/dist/chunk-CFVUZ4S5.js +0 -5
  601. package/dist/chunk-FO7JCJ76.js +0 -1
  602. package/dist/chunk-FP2AYD66.js +0 -3
  603. package/dist/chunk-HONOUN5C.js +0 -6
  604. package/dist/chunk-KXEOEE4L.js +0 -6
  605. package/dist/chunk-PBELVP3C.js +0 -16
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ImageCropModal/index.tsx"],"names":["useState","LoadingButton","Button","Slider","Stack","Typography","Fragment","jsx","jsxs","ImageCropModal","id","open","onClose","label","onSave","onRemove","onPreview","imageSrc","aspectRatio","onInitialized","loading","zoom","setZoom","Modal_default","ImageCrop_default","_","v","Icon_default","ImageCropModal_default"],"mappings":"wHAAA,OAAS,YAAAA,MAAgB,QACzB,OAAOC,MAAmB,yBAC1B,OAAOC,MAAY,uBACnB,OAAOC,MAAY,uBACnB,OAAOC,MAAW,sBAClB,OAAOC,MAAgB,2BA6Bf,mBAAAC,EACE,OAAAC,EADF,QAAAC,MAAA,oBArBR,IAAMC,EAAiB,CAAC,CACtB,GAAAC,EACA,KAAAC,EACA,QAAAC,EACA,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,YAAAC,EACA,cAAAC,EACA,QAAAC,CACF,IAA0B,CACxB,GAAM,CAACC,EAAMC,CAAO,EAAItB,EAAiB,EAAG,EAE5C,OACEO,EAACgB,EAAA,CACC,KAAMZ,EACN,QAASC,EACT,YAAaC,EACb,QACEL,EAAAF,EAAA,CACE,UAAAC,EAACL,EAAA,CACC,QAAQ,WACR,KAAK,SACL,QAASU,EACT,MAAM,UACP,oBAED,EAEAL,EAACN,EAAA,CACC,QAAQ,YACR,KAAK,SACL,QAASa,EACT,QAASM,EACV,kBAED,GACF,EAEF,UAAS,GACT,SAAS,KACT,YAAW,GAEX,SAAAZ,EAACJ,EAAA,CAAM,IAAK,EACV,UAAAG,EAACiB,EAAA,CACC,SAAUP,EACV,YAAaC,EACb,cAAeC,EACf,KAAME,EACN,aAAcC,EAChB,EAEAd,EAACJ,EAAA,CAAM,IAAK,IACV,UAAAI,EAACJ,EAAA,CAAM,MAAO,EAAG,UAAU,MAAM,IAAK,EAAG,KAAM,EAAG,WAAW,SAC3D,UAAAG,EAACF,EAAA,CAAW,QAAQ,QAAQ,gBAAI,EAEhCE,EAACJ,EAAA,CACC,MAAOkB,EACP,SAAU,CAACI,EAAGC,IAAMJ,EAAQ,MAAM,QAAQI,CAAC,EAAIA,EAAE,CAAC,EAAIA,CAAC,EACvD,IAAK,GACL,IAAK,EACL,KAAK,SACL,KAAM,MACR,GACF,EAEAlB,EAACJ,EAAA,CAAM,UAAU,MAAM,IAAK,EAC1B,UAAAG,EAACL,EAAA,CACC,QAAQ,WACR,MAAM,UACN,KAAK,QACL,UAAS,GACT,UAAWK,EAACoB,EAAA,CAAK,KAAK,wBAAwB,EAC9C,QAASZ,EACV,mBAED,EAEAR,EAACL,EAAA,CACC,QAAQ,WACR,MAAM,UACN,KAAK,QACL,UAAS,GACT,UAAWK,EAACoB,EAAA,CAAK,KAAK,cAAc,EACpC,QAASX,EACV,6BAED,EAEAT,EAACL,EAAA,CACC,QAAQ,WACR,MAAM,UACN,KAAK,QACL,UAAS,GACT,UAAWK,EAACoB,EAAA,CAAK,KAAK,eAAe,EACrC,UAAU,QACV,QAASjB,EACV,mBAED,GACF,GACF,GACF,EACF,CAEJ,EAEOkB,EAAQnB","sourcesContent":["import { useState } from 'react';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport Button from '@mui/material/Button';\nimport Slider from '@mui/material/Slider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Icon from '../Icon';\nimport ImageCrop from '../ImageCrop';\nimport Modal from '../Modal';\n\nimport { ImageCropModalPros } from './props';\n\nconst ImageCropModal = ({\n id,\n open,\n onClose,\n label,\n onSave,\n onRemove,\n onPreview,\n imageSrc,\n aspectRatio,\n onInitialized,\n loading,\n}: ImageCropModalPros) => {\n const [zoom, setZoom] = useState<number>(0.5);\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n dialogTitle={label}\n actions={\n <>\n <Button\n variant=\"outlined\"\n size=\"medium\"\n onClick={onClose}\n color=\"inherit\"\n >\n Cancelar\n </Button>\n\n <LoadingButton\n variant=\"contained\"\n size=\"medium\"\n onClick={onSave}\n loading={loading}\n >\n Salvar\n </LoadingButton>\n </>\n }\n fullWidth\n maxWidth=\"sm\"\n keepMounted\n >\n <Stack gap={2}>\n <ImageCrop\n imageSrc={imageSrc}\n aspectRatio={aspectRatio}\n onInitialized={onInitialized}\n zoom={zoom}\n onZoomChange={setZoom}\n />\n\n <Stack gap={1.5}>\n <Stack width={1} direction=\"row\" gap={3} flex={1} alignItems=\"center\">\n <Typography variant=\"body1\">Zoom</Typography>\n\n <Slider\n value={zoom}\n onChange={(_, v) => setZoom(Array.isArray(v) ? v[0] : v)}\n min={0.1}\n max={2}\n size=\"medium\"\n step={0.0125}\n />\n </Stack>\n\n <Stack direction=\"row\" gap={2}>\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n size=\"large\"\n fullWidth\n startIcon={<Icon icon=\"DELETE_MARK_BUTTON_02\" />}\n onClick={onRemove}\n >\n Remover\n </Button>\n\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n size=\"large\"\n fullWidth\n startIcon={<Icon icon=\"PLAY_SIMPLE\" />}\n onClick={onPreview}\n >\n Pré-visualizar\n </Button>\n\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n size=\"large\"\n fullWidth\n startIcon={<Icon icon=\"SEARCH_IMAGE\" />}\n component=\"label\"\n htmlFor={id}\n >\n Alterar\n </Button>\n </Stack>\n </Stack>\n </Stack>\n </Modal>\n );\n};\n\nexport default ImageCropModal;\n"]}
@@ -1,15 +1,15 @@
1
- import { a as a$5 } from './chunk-H5L4ARDB.js';
2
- import { a } from './chunk-COHTZ4TP.js';
3
- import { e } from './chunk-ANAHA3L6.js';
4
- import { a as a$3 } from './chunk-2FXBVVBD.js';
5
- import { a as a$6 } from './chunk-JWPSY2TM.js';
6
- import { a as a$2 } from './chunk-NPVFMSND.js';
7
- import { x } from './chunk-2P4CXK3O.js';
8
- import { a as a$7 } from './chunk-FK7DDO5L.js';
9
- import { a as a$4 } from './chunk-UAWK45GJ.js';
10
- import { j } from './chunk-DMQW3LDF.js';
11
- import { a as a$8 } from './chunk-GFJT57TO.js';
12
- import { a as a$1 } from './chunk-S7QQBC4I.js';
1
+ import { a as a$5 } from './chunk-DTIGB5NW.js';
2
+ import { a } from './chunk-Y2BERZSA.js';
3
+ import { e } from './chunk-OF6623HG.js';
4
+ import { a as a$3 } from './chunk-45OMMG7D.js';
5
+ import { a as a$6 } from './chunk-3JELAFSE.js';
6
+ import { a as a$2 } from './chunk-YWSFODIB.js';
7
+ import { x } from './chunk-33C6UWPV.js';
8
+ import { a as a$7 } from './chunk-6U5LS7MP.js';
9
+ import { a as a$4 } from './chunk-24TEQF5G.js';
10
+ import { j } from './chunk-VITOOMKK.js';
11
+ import { a as a$8 } from './chunk-SVX7EWV4.js';
12
+ import { a as a$1 } from './chunk-XNKYJHNL.js';
13
13
  import { memo, forwardRef, useMemo, useLayoutEffect, useState, useCallback, useRef, useEffect } from 'react';
14
14
  import $o from '@mui/material/FormHelperText';
15
15
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -32,3 +32,5 @@ import Wt from '@mui/material/CircularProgress';
32
32
  var Xo=({helperText:e,disabled:o,isError:r})=>e?jsx($o,{error:r,sx:t=>({mx:"14px",color:o?t.palette.grey[500]:void 0}),children:e}):null,y=memo(Xo);var Me=styled(de)({position:"relative",width:"100%",borderRadius:8,overflow:"hidden","&:hover .actions":{display:"flex"}}),ke=styled(de)({position:"absolute",top:4,right:4,gap:.5,"& svg":{width:16,height:16}}),no=styled(De,{shouldForwardProp:e=>!["isDragActive","isError","disabled"].includes(e)})(({theme:e,isDragActive:o,isError:r,disabled:t})=>({outline:"none",cursor:"pointer",overflow:"hidden",position:"relative",padding:e.spacing(5),borderRadius:e.shape.borderRadius,transition:e.transitions.create("padding"),backgroundColor:e.palette.background.neutral,border:`dashed 1px ${e.palette.divider}`,...o&&{opacity:.72},...r&&{color:e.palette.error.main,backgroundColor:e.palette.error.lighter,borderColor:e.palette.error.light},...t&&{opacity:.48,pointerEvents:"none"},"&:hover":{opacity:.72}}));styled(de)(({theme:e})=>({display:"none",position:"absolute",alignItems:"center",justifyContent:"center",flexDirection:"row",gap:12,width:"100%",height:"100%",backgroundColor:alpha(e.palette.primary.main,.9),zIndex:999,button:{"&, &:hover, &:focus":{backgroundColor:e.palette.background.paper}}}));var so=styled(Vo)(({theme:e})=>({position:"relative",zIndex:999,pointerEvents:"auto",color:e.palette.grey[700],backgroundColor:e.palette.grey[100],"&:hover":{color:e.palette.grey[900],backgroundColor:e.palette.grey[300]}})),He=styled("div")({position:"relative",zIndex:1,userSelect:"none","&:hover":{zIndex:2}}),lo=styled(de,{shouldForwardProp:e=>!["isDragging"].includes(e)})(({theme:e,width:o,isDragging:r})=>({width:o,height:100,alignItems:"center",display:"inline-flex",justifyContent:"center",margin:e.spacing(.5),padding:e.spacing(2,1,2,1),gap:e.spacing(1),borderRadius:e.spacing(1.25),overflow:"hidden",position:"relative",border:`solid 1px ${e.palette.divider}`,backgroundColor:e.palette.common.white,zIndex:1,transition:"box-shadow 150ms ease-in-out",boxShadow:r?`0 0 0 2px ${e.palette.primary.main}, ${e.customShadows.z8}, inset 0 0 0 1000px ${alpha(e.palette.primary.main,.06)}`:"0px 0px 0px 0px rgba(0, 0, 0, 0)"})),po=styled(m.div)(({theme:e,width:o,isDragging:r})=>({width:o,height:60,alignItems:"center",display:"inline-flex",justifyContent:"center",margin:e.spacing(.5),padding:e.spacing(2),borderRadius:e.spacing(1.25),overflow:"hidden",position:"relative",border:`solid 1px ${e.palette.divider}`,backgroundColor:e.palette.common.white,zIndex:1,transition:"box-shadow 150ms ease-in-out",boxShadow:r?`0 0 0 2px ${e.palette.primary.main}, ${e.customShadows.z8}, inset 0 0 0 1000px ${alpha(e.palette.primary.main,.06)}`:"0px 0px 0px 0px rgba(0, 0, 0, 0)"})),mo=styled(a)(({theme:e})=>({top:16,right:16,zIndex:9,position:"absolute",color:e.palette.common.white,backgroundColor:alpha(e.palette.grey[900],.72),"&:hover":{backgroundColor:alpha(e.palette.grey[900],.48)}})),co=styled(De,{shouldForwardProp:e=>e!=="isDragActive"&&e!=="disabled"&&e!=="hasError"})(({theme:e,isDragActive:o,disabled:r,hasError:t})=>({width:64,height:64,flexShrink:0,display:"flex",borderRadius:1,cursor:"pointer",alignItems:"center",color:e.palette.text.disabled,justifyContent:"center",backgroundColor:alpha(e.palette.grey[500],.08),border:`dashed 1px ${alpha(e.palette.grey[500],.16)}`,...o&&{opacity:.72},...r&&{opacity:.48,pointerEvents:"none"},...t&&{color:e.palette.error.main,borderColor:e.palette.error.main,backgroundColor:alpha(e.palette.error.main,.08)},"&:hover":{opacity:.72}})),go=styled(De)(({theme:e})=>({padding:e.spacing(1),top:0,left:0,width:"100%",height:"100%",position:"absolute",display:"flex",justifyContent:"center",alignItems:"center",transition:"all 0.3s ease-in-out",filter:"blur(0)","&:hover .single-file-preview-img":{filter:"blur(3px)",transition:"all 0.1s ease-in-out"},"&:hover .single-file-preview-hover-overlay":{opacity:1}})),uo=styled("img",{shouldForwardProp:e=>e!=="aspectRatio"&&e!=="isLoading"&&e!=="isUploading"&&e!=="maxWidth"&&e!=="maxHeight"&&e!=="cropSize"&&e!=="fill"})(({theme:e,aspectRatio:o,maxWidth:r,maxHeight:t,isLoading:l,isUploading:s,fill:i})=>({borderRadius:e.shape.borderRadius,objectFit:"cover",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%) scale(1)",filter:"blur(0)",zIndex:1,backgroundColor:e.palette.background.paper,...i&&{width:"100%",height:"100%"},...!i&&Math.abs(o)>=1&&{maxWidth:r,maxHeight:t,aspectRatio:Math.abs(o),width:"calc(100% - 16px)",height:void 0},...!i&&Math.abs(o)<1&&{maxWidth:r,maxHeight:t,aspectRatio:Math.abs(o),width:void 0,height:"calc(100% - 16px)"},transition:"all 0.3s ease-in-out",...l||s?{opacity:0,filter:"blur(1.5rem)",transform:"translate(-50%, -50%) scale(0.7)"}:{}})),fo=styled("img",{shouldForwardProp:e=>e!=="isLoading"&&e!=="isUploading"})(({isLoading:e,isUploading:o})=>({width:"100%",height:"100%",objectFit:"cover",top:0,left:0,filter:"blur(1.5rem)",transform:"scale(1.1)",position:"absolute",zIndex:0,transition:"opacity 0.3s ease-in-out",...e&&{opacity:0},...o&&{opacity:.7,filter:"blur(2rem)"}})),xo=styled(de)(({theme:e})=>({position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:alpha(e.palette.primary.darker,.75),zIndex:2,pointerEvents:"none",opacity:0,transition:"opacity 0.3s ease-in-out"})),ho=styled(de)({width:"100%",height:"100%",position:"relative",overflow:"hidden",borderRadius:"50%",justifyContent:"center",alignItems:"center"});styled(Ko)(({theme:e})=>({py:1,px:2,mt:3,textAlign:"left",borderStyle:"dashed",borderColor:"error.main",backgroundColor:alpha(e.palette.error.main,.08)}));var $e=styled(De,{shouldForwardProp:e=>e!=="isError"&&e!=="hasFile"})(({theme:e,isError:o,hasFile:r})=>({top:0,gap:e.spacing(1),left:0,width:"100%",height:"100%",zIndex:9,display:"flex",borderRadius:"50%",position:"absolute",alignItems:"center",color:e.palette.text.disabled,flexDirection:"column",justifyContent:"center",backgroundColor:alpha(e.palette.grey[500],.08),transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.shorter}),"&:hover":{opacity:.92},...o&&{color:e.palette.error.main},...r&&{zIndex:9,opacity:0,color:e.palette.common.white,backgroundColor:alpha(e.palette.common.black,.54)}})),bo=styled(de)({top:0,left:0,right:0,bottom:0,position:"absolute",zIndex:10,alignItems:"center",justifyContent:"center",opacity:.8});styled(de)(({theme:e})=>({padding:20,justifyContent:"center",alignItems:"center",gap:4,alignSelf:"stretch",borderRadius:12,background:e.palette.divider,color:e.palette.text.disabled,height:160}));var Io=styled(De,{shouldForwardProp:e=>e!=="isDragActive"&&e!=="isError"&&e!=="hasFile"})(({theme:e,isDragActive:o,disabled:r,isError:t,hasFile:l})=>({padding:e.spacing(1),margin:"auto",width:144,height:144,cursor:"pointer",overflow:"hidden",borderRadius:"50%",border:`1px dashed ${e.palette.divider}`,...o&&{opacity:.72},...r&&{opacity:.48,pointerEvents:"none"},...t&&{borderColor:"error.main"},...l&&{...t&&{bgcolor:alpha(e.palette.error.main,.08)},"&:hover .upload-placeholder":{opacity:1},"& img":{filter:"blur(0)"},"&:hover img":{filter:"blur(3px)"}}})),Po=styled("img")({width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover",transition:"all 0.3s ease-in-out"}),vo=styled(a)(({theme:e})=>({backgroundColor:alpha(e.palette.grey[900],.72),color:e.palette.common.white,"&:hover":{backgroundColor:alpha(e.palette.grey[600],.64),color:e.palette.common.white},"& svg":{width:14,height:14}}));var er=({onRemove:e,sx:o,file:r,disableDrag:t,attributes:l,listeners:s,innerWidth:i,isDragging:p})=>{let d=r?.id;return d?jsx(Yo,{anchorOrigin:{vertical:"top",horizontal:"left"},children:jsxs(po,{width:i,isDragging:p,"data-testid":`preview-multi-img-${d}`,...j().inUp,sx:o,children:[jsx(a$2,{disableDrag:t,...l,...s}),jsx(Ee,{imageView:!0,file:r}),jsx(ke,{sx:{position:"absolute",right:3,top:3,zIndex:1},children:e&&jsx(vo,{size:"small",label:"Remover arquivo",onClick:()=>e(r),icon:"DELETE_MARK_BUTTON_02"})})]})},`badge-${d}`):null},Eo=memo(er);var ar=({file:e$1,thumbnail:o,onRemove:r,sx:t,disableDrag:l=!1,disableTransitions:s=!1})=>{let i=e$1.size||0,p=e$1.name||e$1.id,d=e$1.id,m=typeof e$1=="string",a$1=l?70:80,{attributes:g,listeners:h,setNodeRef:P,transform:w,transition:b,isDragging:C}=useSortable({id:d,disabled:l}),I={transform:s?void 0:x.Transform.toString(w),transition:s?"none":b,opacity:s?.2:1,display:"inline-block",alignItems:"center",justifyContent:"center",width:`${a$1+8}px`,height:"68px"};return o&&e$1?jsx(He,{ref:P,style:I,children:jsx(Eo,{innerWidth:a$1,isDragging:C,sx:t,file:e$1,disableDrag:l,attributes:g,listeners:h,onRemove:r})}):jsx(He,{ref:P,style:{...I,height:"80px",width:`${a$1+38}px`},children:jsxs(lo,{width:a$1+30,isDragging:C,"data-testid":`preview-multi-img-${d}`,...j().inUp,sx:t,children:[jsx(a$2,{disableDrag:l,...g,...h}),e$1&&jsx(Ee,{file:e$1}),jsxs(de,{flexGrow:1,sx:{width:"100%"},children:[jsx(a$3,{title:p,children:jsx(Qe,{variant:"subtitle2",noWrap:!0,children:p})}),jsx(Qe,{variant:"caption",sx:{color:"text.secondary"},children:m?"":e(i)})]}),jsx(ke,{children:r&&jsx(a,{size:"small",label:"Remover arquivo",onClick:()=>r(e$1),icon:"DELETE_MARK_BUTTON_02"})})]})})},Ao=memo(ar);var vr=({thumbnail:e,files:o,onRemove:r,onReorder:t,sx:l})=>{let[s,i]=useState(!1),p=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:8}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),d=useCallback(a=>{let{active:g,over:h}=a;if(!(!g||!h||g.id===h.id)&&t){let P=o.findIndex(({id:b})=>b===g.id),w=o.findIndex(({id:b})=>b===h.id);P!==-1&&w!==-1&&(t(P,w,o),i(!0),setTimeout(()=>{i(!1);},300));}},[o,t]),m=jsx(AnimatePresence,{initial:!1,children:o.map(a=>jsx(Ao,{sx:l,id:`preview-file-${a.id}`,file:a,onRemove:r,thumbnail:e,disableDrag:!t,disableTransitions:s},`preview-file-${a.id}`))});return t?jsx(DndContext,{sensors:p,collisionDetection:closestCenter,onDragEnd:d,modifiers:[restrictToHorizontalAxis,restrictToParentElement,restrictToWindowEdges],children:jsx(SortableContext,{items:o.map(a=>a.id),strategy:horizontalListSortingStrategy,children:m})}):m},_e=memo(vr);var Ro=forwardRef(({onLoading:e,aspectRatio:o,cropSize:r,...t},l)=>{let{maxWidth:s,maxHeight:i}=useMemo(()=>r&&typeof r=="object"?{maxWidth:r.width,maxHeight:r.height}:r&&typeof r=="number"?{maxWidth:r,maxHeight:r}:{maxWidth:"100%",maxHeight:"100%"},[r]);a$1(()=>{e?.(!0);}),useLayoutEffect(()=>{typeof l=="object"&&l?.current?e?.(!l.current.complete):e?.(!1);},[l,e]);function p(){e?.(!1);}return jsx(uo,{...t,maxWidth:s,maxHeight:i,ref:l,aspectRatio:o,onLoad:p,onError:p})});Ro.displayName="LoadingPreviewImage";var _o=Ro;var _r=({file:e,aspectRatio:o=1,isUploading:r,isLoading:t,onLoading:l,cropSize:s,maxWidth:i,maxHeight:p,hoverAlt:d,fill:m})=>{let a=useRef(null),g=e?.id||"",h=e?.name||"",P=URL.createObjectURL(e);return g?jsxs(go,{className:"single-file-preview-box",children:[jsx(_o,{className:"single-file-preview-img",aspectRatio:o,cropSize:s,isLoading:t,isUploading:r,alt:h,src:P,ref:a,loading:"lazy",onLoading:l,onLoad:()=>l?.(!1),onError:()=>l?.(!1),maxWidth:i,maxHeight:p,fill:m},`image-preview-${g}`),jsx(fo,{className:"single-file-preview-bg",alt:h,src:P,isLoading:t,isUploading:r}),d&&jsx(xo,{className:"single-file-preview-hover-overlay",children:d})]}):null},qe=memo(_r);var Tr=["pdf"],Or=["txt"],yr=["psd"],Ur=["doc","docx"],Cr=["xls","xlsx"],Lr=["zip","rar","iso"],Mr=["ai","eps"],kr=["ppt","pptx"],zr=["wav","aif","mp3","aac"],Nr=["jpg","jpeg","gif","bmp","png","svg","webp"],Br=["m4v","avi","mpg","mp4","webm"];function Ve(e){let o,r=So(e);return Or.includes(r)?o="txt":Lr.includes(r)?o="zip":zr.includes(r)?o="audio":Nr.includes(r)?o="image":Br.includes(r)?o="video":Ur.includes(r)?o="word":Cr.includes(r)?o="excel":kr.includes(r)?o="powerpoint":Tr.includes(r)?o="pdf":yr.includes(r)?o="photoshop":Mr.includes(r)?o="illustrator":e?.startsWith("http")?o="image":o=So(e),o}function To(e){let o;switch(Ve(e)){case"folder":o="IC_FOLDER";break;case"txt":o="IC_TXT";break;case"zip":o="IC_ZIP";break;case"audio":o="IC_AUDIO";break;case"video":o="IC_VIDEO";break;case"word":o="IC_WORD";break;case"excel":o="IC_EXCEL";break;case"powerpoint":o="IC_POWER_POINT";break;case"pdf":o="IC_PDF";break;case"photoshop":o="IC_PTS";break;case"illustrator":o="IC_AI";break;case"image":o="IC_IMG";break;default:o="IC_FILE";}return o}function So(e){return e&&e.split(".").pop()||""}function oa(e){return e.split("/").pop()}var Ne={root:"mnl__file__thumbnail__root",img:"mnl__file__thumbnail__img",icon:"mnl__file__thumbnail__icon",removeBtn:"mnl__file__thumbnail__remove__button",downloadBtn:"mnl__file__thumbnail__download__button"},Ee=({sx:e,file:o,tooltip:r,onRemove:t,imageView:l,slotProps:s,onDownload:i,...p})=>{let d=URL.createObjectURL(o),m=o?.name||"",g=o.type.startsWith("image/")?"image":Ve(d),h=jsx(De,{component:"img",src:d,className:Ne.img,sx:{width:1,height:1,objectFit:"cover",borderRadius:"inherit",...s?.img}}),P=jsx(a$4,{icon:To(g),sx:{width:32,height:32,flexShrink:0,...e}}),w=jsxs(de,{component:"span",className:Ne.root,sx:{width:36,height:36,flexShrink:0,borderRadius:1.25,alignItems:"center",position:"relative",display:"inline-flex",justifyContent:"center",...e},...p,children:[g==="image"&&l?h:P,t&&jsx(Gr,{onClick:t,className:Ne.removeBtn,sx:s?.removeBtn,children:jsx(a$4,{icon:"CLOSE_MARK_BUTTON",width:24})}),i&&jsx(Vo,{onClick:i,className:Ne.downloadBtn,sx:s?.downloadBtn,size:"small",children:jsx(a$4,{icon:"ARROW_DOWN_CICLE",width:12})})]});return r?jsx(Hr,{arrow:!0,title:m,slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,-12]}}]}},children:w}):w};var ca=e=>e.startsWith("image/"),Oo=(e,o=.8)=>new Promise((r,t)=>{let l=document.createElement("canvas"),s=l.getContext("2d"),i=new Image;i.onload=()=>{l.width=i.width,l.height=i.height,s?(s.drawImage(i,0,0),l.toBlob(p=>{if(p){let d=new File([p],e.name.replace(/\.[^/.]+$/,".webp"),{type:"image/webp",lastModified:Date.now()});r(d);}else t(new Error("Falha ao converter para WebP"));},"image/webp",o)):t(new Error("N\xE3o foi poss\xEDvel obter contexto do canvas"));},i.onerror=()=>t(new Error("Falha ao carregar imagem")),i.src=URL.createObjectURL(e);}),yo=(e,o=.8,r,t)=>new Promise((l,s)=>{let i=document.createElement("canvas"),p=i.getContext("2d"),d=new Image;d.onload=()=>{let{width:m,height:a}=d;r&&m>r&&(a=a*r/m,m=r),t&&a>t&&(m=m*t/a,a=t),i.width=m,i.height=a,p?(p.imageSmoothingEnabled=!0,p.imageSmoothingQuality="high",p.drawImage(d,0,0,m,a),i.toBlob(g=>{if(g){let h=new File([g],e.name.replace(/\.[^/.]+$/,".webp"),{type:"image/webp",lastModified:Date.now()});l(h);}else s(new Error("Falha ao comprimir imagem"));},"image/webp",o)):s(new Error("N\xE3o foi poss\xEDvel obter contexto do canvas"));},d.onerror=()=>s(new Error("Falha ao carregar imagem")),d.src=URL.createObjectURL(e);}),Uo=e=>{let o=e.match(/filename\*=UTF-8''([^;]+)|filename="?([^";]+)"?/i);return o?.[1]||o?.[2]||""},Co=e=>`UTF-8''${encodeURIComponent(e)}`;var Jr=({onFilesSelect:e$1,onFileSelect:o,onReorder:r,onRemove:t,uploadFiles:l,filesPreview:s,dropzoneOptions:i,enableCrop:p=!1,customAspectRatio:d,convertToWebp:m=!0,cropSize:a,maxFiles:g,compressionQuality:h=.8,maxCompressedWidth:P,maxCompressedHeight:w})=>{let{showErrorMessage:b}=a$8(),C=useMemo(()=>d||(a&&typeof a!="number"?a.width/a.height:1),[d,a]),[I,u]=useState([]),[v,A]=useState(!1),[S,L]=useState(null),[f,E]=useState(null),[c,D]=useState(""),[M,U]=useState(!1),[T,N]=useState([]),[ee,q]=useState(0),[oe,G]=useState(0),ne=x=>{if(x.length<1)return;let F=x[0];L(F),q(O=>O+1);let R=new FileReader;R.onload=()=>{D(R.result),A(!0);},R.readAsDataURL(F);},ue=(x,F)=>{E(F);},se=async x=>!S||!f?null:new Promise(F=>{let R=document.createElement("canvas"),O=R.getContext("2d"),k=new Image;k.onload=async()=>{let{width:B,height:pe,x:Se,y:Go}=f,jo=Math.abs(C),Te=B,Oe=pe;a&&typeof a=="object"?(Te=a.width,Oe=a.height):a&&typeof a=="number"&&(Te=a,Oe=a/jo),R.width=Te,R.height=Oe,O?(O.drawImage(k,Se,Go,B,pe,0,0,Te,Oe),R.toBlob(async oo=>{if(oo){let Ze=new File([oo],S.name,{type:S.type,lastModified:Date.now()});if(m)try{Ze=await Oo(Ze,h);}catch(Zo){b(Zo,"Erro ao converter para WebP");}let ro=Ze;ro.id=x,F(ro);}else F(null);},"image/png")):F(null);},k.src=c;}),le=async()=>{if(!(!S||!f||T.length===0)){U(!0);try{let x=T[0],F=await se(x.id);if(F){let O=await l([F]);O&&(!e$1&&!o&&u(k=>[...k,...O]),e$1?.([...s||[],...O]),o?.(F));}A(!1),U(!1),D(""),L(null);let R=T.slice(1);N(R),ne(R);}catch(x){b(x,"Erro ao processar imagem"),U(!1);}}},j=()=>{A(!1),U(!1),D(""),L(null),N([]),q(0),G(0);},V=async x=>{if(x.length===0)return;let F=Object.keys(i?.accept||{}).some(O=>O.includes("image/")),R=I.length+x.length;if(g&&R>g){b(new Error(`M\xE1ximo de ${g} arquivos`),"Erro ao fazer upload");return}try{if(F&&p){let k=x.filter(B=>B.type.startsWith("image/")).map((B,pe)=>{let Se=B;return Se.id=`temp-crop-${Date.now()}-${pe}`,Se});G(k.length),q(0),N(k),ne(k);}else {let O=[];for(let B of x)if(B.type.startsWith("image/")&&m)try{let pe=await yo(B,h,P,w);O.push(pe);}catch(pe){b(pe,"Erro ao comprimir imagem"),O.push(B);}else O.push(B);let k=await l(O);k&&(!e$1&&!o&&u(B=>[...B,...k]),e$1?.([...s||[],...k]),o?.(k[0]));}}catch(O){b(O,"Erro ao processar arquivos");}},K=x=>{if(!x.length)return;let F=x[0]?.errors[0]?.code,R=i?.maxSize||3145728;b(F==="file-too-large"?new Error(`O arquivo excede o tamanho m\xE1ximo de ${e(R)}`):F==="file-invalid-type"?new Error("Formato de arquivo n\xE3o suportado"):x[0]?.errors[0]||new Error("Erro ao enviar arquivo"),"Erro ao fazer upload");},{getRootProps:re,getInputProps:Z,isDragActive:n,isDragReject:fe,fileRejections:te}=useDropzone({onDrop:V,onDropRejected:K,...i}),we=x=>{if(!x){t||u([]),t?.(void 0);return}let F=I.filter(R=>R.id!==x.id);t||u(F),t?.(x);},xe=(x,F,R)=>{r?.(x,F,R);},be=useRef("");return useEffect(()=>{let x=s?.map(F=>F.id).join(",")||"";x!==be.current&&(be.current=x,u(s||[]));},[s]),{file:I?.[0],files:I,aspectRatio:C,dropzoneProps:{getRootProps:re,getInputProps:Z,isDragActive:n,isDragReject:fe,fileRejections:te},cropState:{cropModalOpen:v,imagePreview:c,cropLoading:M,setCropModalOpen:A,onCropInitialized:ue,handleCropSave:le,handleCropCancel:j,currentImageIndex:ee,totalPendingImages:oe},setInitialFiles:u,handleRemove:we,handleReorder:xe}},$=Jr;var Ke=(n=>(n.APPLICATION_OCTET_STREAM="application/octet-stream",n.IMAGE_JPEG="image/jpeg",n.IMAGE_JPG="image/jpg",n.IMAGE_PNG="image/png",n.IMAGE_GIF="image/gif",n.IMAGE_WEBP="image/webp",n.IMAGE_SVG="image/svg+xml",n.IMAGE_BMP="image/bmp",n.IMAGE_TIFF="image/tiff",n.IMAGE_ICO="image/x-icon",n.IMAGE_AVIF="image/avif",n.APPLICATION_PDF="application/pdf",n.TEXT_PLAIN="text/plain",n.TEXT_CSV="text/csv",n.APPLICATION_RTF="application/rtf",n.APPLICATION_MSWORD="application/msword",n.APPLICATION_DOCX="application/vnd.openxmlformats-officedocument.wordprocessingml.document",n.APPLICATION_MSEXCEL="application/vnd.ms-excel",n.APPLICATION_XLSX="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",n.APPLICATION_MSPOWERPOINT="application/vnd.ms-powerpoint",n.APPLICATION_PPTX="application/vnd.openxmlformats-officedocument.presentationml.presentation",n.APPLICATION_ODT="application/vnd.oasis.opendocument.text",n.APPLICATION_ODS="application/vnd.oasis.opendocument.spreadsheet",n.APPLICATION_ODP="application/vnd.oasis.opendocument.presentation",n.APPLICATION_XML="application/xml",n.TEXT_XML="text/xml",n.TEXT_HTML="text/html",n.TEXT_CSS="text/css",n.APPLICATION_JSON="application/json",n.TEXT_JAVASCRIPT="text/javascript",n.APPLICATION_ZIP="application/zip",n.APPLICATION_GZIP="application/gzip",n.APPLICATION_RAR="application/vnd.rar",n.APPLICATION_7Z="application/x-7z-compressed",n.AUDIO_MPEG="audio/mpeg",n.AUDIO_WAV="audio/wav",n.AUDIO_OGG="audio/ogg",n.AUDIO_WEBM="audio/webm",n.AUDIO_AAC="audio/aac",n.VIDEO_MP4="video/mp4",n.VIDEO_MPEG="video/mpeg",n.VIDEO_OGG="video/ogg",n.VIDEO_WEBM="video/webm",n.VIDEO_QUICKTIME="video/quicktime",n))(Ke||{}),Be=(e=>(e["application/octet-stream"]="APPLICATION_OCTET_STREAM",e["image/jpeg"]="IMAGE_JPEG",e["image/jpg"]="IMAGE_JPG",e["image/png"]="IMAGE_PNG",e["image/gif"]="IMAGE_GIF",e["image/webp"]="IMAGE_WEBP",e["image/svg+xml"]="IMAGE_SVG",e["image/bmp"]="IMAGE_BMP",e["image/tiff"]="IMAGE_TIFF",e["image/x-icon"]="IMAGE_ICO",e["image/avif"]="IMAGE_AVIF",e["application/pdf"]="APPLICATION_PDF",e["text/plain"]="TEXT_PLAIN",e["text/csv"]="TEXT_CSV",e["application/rtf"]="APPLICATION_RTF",e["application/msword"]="APPLICATION_MSWORD",e["application/vnd.openxmlformats-officedocument.wordprocessingml.document"]="APPLICATION_DOCX",e["application/vnd.ms-excel"]="APPLICATION_MSEXCEL",e["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]="APPLICATION_XLSX",e["application/vnd.ms-powerpoint"]="APPLICATION_MSPOWERPOINT",e["application/vnd.openxmlformats-officedocument.presentationml.presentation"]="APPLICATION_PPTX",e["application/vnd.oasis.opendocument.text"]="APPLICATION_ODT",e["application/vnd.oasis.opendocument.spreadsheet"]="APPLICATION_ODS",e["application/vnd.oasis.opendocument.presentation"]="APPLICATION_ODP",e["application/xml"]="APPLICATION_XML",e["text/xml"]="TEXT_XML",e["text/html"]="TEXT_HTML",e["text/css"]="TEXT_CSS",e["application/json"]="APPLICATION_JSON",e["text/javascript"]="TEXT_JAVASCRIPT",e["application/zip"]="APPLICATION_ZIP",e["application/gzip"]="APPLICATION_GZIP",e["application/vnd.rar"]="APPLICATION_RAR",e["application/x-7z-compressed"]="APPLICATION_7Z",e["audio/mpeg"]="AUDIO_MPEG",e["audio/wav"]="AUDIO_WAV",e["audio/ogg"]="AUDIO_OGG",e["audio/webm"]="AUDIO_WEBM",e["audio/aac"]="AUDIO_AAC",e["video/mp4"]="VIDEO_MP4",e["video/mpeg"]="VIDEO_MPEG",e["video/ogg"]="VIDEO_OGG",e["video/webm"]="VIDEO_WEBM",e["video/quicktime"]="VIDEO_QUICKTIME",e))(Be||{});var ot=({createFilesMutation:e,filesDetails:o})=>{let{showErrorMessage:r}=a$8(),[t,l]=useState(!1),[s,i]=useState(!1),[p,d]=useState(null),[m,a]=useState([]),g=useMemo(()=>m?.[0],[m]),h=s||t,P=useCallback(async I=>{if(!I.length){a([]),i(!1);return}i(!0);try{let v=(await Promise.all(I.map(async({url:A,id:S,name:L})=>{try{if(!A)return null;let f=await fetch(A);if(!f.ok)throw new Error(f.statusText);let E=await f.blob(),c=null;if(!L){let U=f.headers.get("content-disposition")||void 0;if(U){let T=Uo(U);if(T)try{c=decodeURIComponent(T);}catch{c=T;}}}let D=c||L||S,M=new File([E],D,{type:E.type});return M.id=S,M.url=A,M}catch{return null}}))).filter(Boolean);a(v),i(!1);}catch(u){r(u,"Erro ao carregar arquivos"),a([]),i(!1);}},[r]),w=useRef("");useEffect(()=>{let I=o?.map(({id:u})=>u).join(",")||"";I!==w.current&&(async()=>(w.current=I,await P(o)))();},[o,P]);let b=async I=>{if(!I||!Array.isArray(I))throw new Error("Arquivos inv\xE1lidos");let u=I.filter(v=>v instanceof File);if(u?.length){l(!0);try{let v=u.map(f=>{let E=f.type||"application/octet-stream",c=Be[E];if(!c)throw new Error(`Tipo de arquivo n\xE3o suportado: ${E}`);return {file:f,mimeType:E,contentTypeEnum:c}}),A=await e({files:v.map(({file:f,contentTypeEnum:E})=>({content_type:E,name:f.name}))}).unwrap(),S=A.files.map((f,E)=>{let c=v[E].file,D=c;return D.id=f.id,D.url=URL.createObjectURL(c),D});return await(await Promise.all(A.files.map((f,E)=>{let{mimeType:c}=v[E],D=S[E];return fetch(f.url,{method:"PUT",headers:{"Content-Type":c,"Content-Disposition":`inline; filename*=${Co(D.name)}`,"X-File-Id":f.id},body:D})}))).forEach(async f=>{if(!f.ok)throw new Error("Erro no upload do arquivo.")}),S}catch(v){throw d(v),r(v,"Erro no upload"),v}finally{l(!1);}}},C=useMemo(()=>p&&p instanceof Error?p.message:p,[p]);return {setFilesPreview:a,uploadFiles:b,filesPreview:m,filePreview:g,isLoadingPreview:s,isUploadingFiles:t,isUploadOrLoadingFiles:h,uploadErrorText:C}},X=ot;var tt=({sx:e,id:o,name:r,tabIndex:t,uploading:l,getRootProps:s,getInputProps:i,isDragActive:p,isError:d,disabled:m,dropZoneSxProps:a,dropZoneContent:g,children:h,...P})=>jsxs(Me,{children:[l&&jsx(a$7,{"data-testid":"uploading-progress-bar",sx:{zIndex:1}}),jsxs(De,{sx:{width:1,position:"relative",...e},children:[jsxs(no,{...s(),"data-testid":"drop-zone-styled-area",isError:d,isDragActive:p,disabled:!!m,sx:a,...P,children:[jsx("input",{...i(),id:o,tabIndex:t,name:r}),g]}),h]})]}),me=tt;var nt=({header:e,description:o,sx:r,...t})=>jsxs(de,{spacing:5,alignItems:"center",justifyContent:"center",direction:{xs:"column",md:"row"},sx:{width:1,textAlign:{xs:"center",md:"left"},...r},...t,children:[jsx(a$5,{sx:{width:220}}),jsxs("div",{children:[jsx(Qe,{gutterBottom:!0,variant:"h5",children:e||"Soltar ou selecionar arquivos"}),jsx(Qe,{variant:"body2",sx:{color:"text.secondary"},children:o||jsxs(Fragment,{children:["Solte os arquivos aqui ou clique",jsx(Qe,{variant:"body2",component:"span",sx:{mx:.5,color:"primary.main",textDecoration:"underline"},children:"procurar"}),"na sua m\xE1quina"]})})]})]}),ce=memo(nt);var mt=({onRemove:e,onReorder:o,onFilesSelect:r,createFilesMutation:t,filesDetails:l=[],id:s,disabled:i,error:p,helperText:d,thumbnail:m,dropZoneSxProps:a,uploading:g,tabIndex:h,maxFiles:P,placeholderAlt:w,placeholderProps:b,...C})=>{let{filesPreview:I,isUploadOrLoadingFiles:u,uploadErrorText:v,uploadFiles:A}=X({createFilesMutation:t,filesDetails:l}),{files:S,dropzoneProps:L,handleRemove:f,handleReorder:E}=$({onFilesSelect:r,onReorder:o,onRemove:e,filesPreview:I,dropzoneOptions:{multiple:!0,disabled:i,...C},maxFiles:P,uploadFiles:A}),{getRootProps:c,getInputProps:D,isDragActive:M,isDragReject:U}=L,T=!!S?.filter(ee=>!!ee.id).length,N=U||!!p||!!v;return jsxs(me,{id:s,uploading:g||u,disabled:i,dropZoneSxProps:a,tabIndex:h,getRootProps:c,getInputProps:D,isDragActive:M,isError:N,dropZoneContent:jsx(Fragment,{children:w?jsx(de,{children:w}):jsx(ce,{header:b?.header,description:b?.description})}),children:[jsx(y,{disabled:i,helperText:d,isError:N}),p?jsx(y,{helperText:p,isError:!0}):null,v?jsx(y,{helperText:v,isError:!0}):null,T&&jsx(De,{sx:{my:3},children:jsx(_e,{files:S,thumbnail:!!m,onRemove:e?f:void 0,onReorder:o?E:void 0})})]})},ct=memo(mt);var It=({onRemove:e,onReorder:o,onFilesSelect:r,createFilesMutation:t,filesDetails:l=[],id:s,disabled:i,error:p,helperText:d,dropZoneSxProps:m,placeholderProps:a,placeholderAlt:g,uploading:h,tabIndex:P,maxFiles:w,aspectRatio:b,enableCrop:C=!0,convertToWebp:I=!0,cropSize:u,name:v,label:A,...S})=>{let{filesPreview:L,isUploadOrLoadingFiles:f,uploadErrorText:E,uploadFiles:c}=X({createFilesMutation:t,filesDetails:l}),D=h||f,{files:M,dropzoneProps:U,cropState:T,aspectRatio:N,handleRemove:ee,handleReorder:q}=$({onFilesSelect:r,onReorder:o,onRemove:e,filesPreview:L,dropzoneOptions:{accept:{"image/*":[".jpeg",".jpg",".png",".gif",".webp"]},multiple:!0,disabled:i,...S},enableCrop:C,customAspectRatio:b,convertToWebp:I,maxFiles:w,cropSize:u,uploadFiles:c}),{getRootProps:oe,getInputProps:G,isDragActive:ne,isDragReject:ue}=U,{cropModalOpen:se,imagePreview:le,cropLoading:j,onCropInitialized:V,handleCropSave:K,handleCropCancel:re,currentImageIndex:Z,totalPendingImages:n}=T,fe=!!M?.filter(xe=>!!xe.id).length,te=ue||!!p||!!E,we=useMemo(()=>{let xe=A??"Ajustar Imagem",be=n>1||Z>1?` (${Z} de ${n})`:"";return `${xe}${be}`},[A,n,Z]);return jsxs(me,{id:s,name:v,uploading:D,disabled:i,dropZoneSxProps:m,tabIndex:P,getRootProps:oe,getInputProps:G,isDragActive:ne,isError:te,dropZoneContent:jsx(Fragment,{children:g?jsx(de,{children:g}):jsx(ce,{header:a?.header,description:a?.description})}),children:[jsx(y,{disabled:i,helperText:d,isError:te}),p?jsx(y,{helperText:p,isError:!0}):null,E?jsx(y,{helperText:E,isError:!0}):null,fe&&jsx(De,{sx:{my:3,ml:.5},children:jsx(_e,{files:M,thumbnail:!0,onRemove:ee,onReorder:o?q:void 0})}),jsx(a$6,{open:se,onClose:re,label:we,imageSrc:le,aspectRatio:N,onInitialized:V,onSave:K,loading:j,cropSize:u})]})},Pt=memo(It);var Dt=({onFileSelect:e$1,onRemove:o,createFilesMutation:r,fileDetails:t,id:l,disabled:s,error:i,helperText:p,sx:d,dropZoneSxProps:m$1,uploading:a,tabIndex:g,...h})=>{let{filesPreview:P,isUploadOrLoadingFiles:w,uploadErrorText:b,uploadFiles:C}=X({createFilesMutation:r,filesDetails:t?[t]:[]}),I=w||a,{file:u,dropzoneProps:v,handleRemove:A}=$({uploadFiles:C,onFileSelect:e$1,onRemove:o,filesPreview:P,dropzoneOptions:{multiple:!1,disabled:s,...h}}),{getRootProps:S,getInputProps:L,isDragActive:f,isDragReject:E}=v,c=useCallback(T=>{T.stopPropagation(),A(u||void 0);},[u,A]),D=!!u,M=typeof u=="string",U=E||!!i||!!b;return jsxs(me,{id:l,uploading:I,disabled:s,dropZoneSxProps:m$1,tabIndex:g,getRootProps:S,getInputProps:L,isDragActive:f,isError:U,dropZoneContent:jsxs(Fragment,{children:[!D&&jsx(ce,{}),D&&jsxs(de,{component:m.div,...j().inUp,spacing:2,direction:"row",alignItems:"center",sx:{my:1,px:1,py:.75,borderRadius:.75,border:T=>`solid 1px ${T.palette.divider}`,...d},children:[jsx(Ee,{file:u}),jsxs(de,{flexGrow:1,sx:{minWidth:0},children:[jsx(Qe,{variant:"subtitle2",noWrap:!0,children:M?u:u.name}),jsx(Qe,{variant:"caption",sx:{color:"text.secondary"},children:M?"":e(u.size)})]}),o&&jsx(a$3,{title:"Remover arquivo",children:jsx(so,{edge:"end",size:"small",disabled:s,"aria-label":"Remover arquivo",onClick:c,children:jsx(a$4,{icon:"DELETE_MARK_BUTTON_02",width:16})})})]})]}),children:[jsx(y,{disabled:s,helperText:p,isError:U}),i?jsx(y,{helperText:i,isError:!0}):null,b?jsx(y,{helperText:b,isError:!0}):null]})},Rt=memo(Dt);var Ct=({onRemove:e,onFileSelect:o,createFilesMutation:r,fileDetails:t,id:l,disabled:s,error:i,helperText:p,dropZoneSxProps:d,placeholderProps:m,placeholderAlt:a,hoverAlt:g,uploading:h,tabIndex:P,aspectRatio:w,enableCrop:b=!0,convertToWebp:C=!0,name:I,label:u,cropSize:v,sx:A,maxWidth:S,maxHeight:L,compressionQuality:f=.8,maxCompressedWidth:E,maxCompressedHeight:c,fill:D,...M})=>{let{filesPreview:U,isUploadOrLoadingFiles:T,uploadErrorText:N,uploadFiles:ee}=X({createFilesMutation:r,filesDetails:t?[t]:[]}),[q,oe]=useState(!1),{file:G,dropzoneProps:ne,cropState:ue,handleRemove:se,aspectRatio:le}=$({onFileSelect:o,onRemove:e,dropzoneOptions:{accept:{"image/*":[".jpeg",".jpg",".png",".gif",".webp"]},multiple:!1,disabled:s,...M},filesPreview:U,enableCrop:b,customAspectRatio:w,convertToWebp:C,cropSize:v,uploadFiles:ee,compressionQuality:f,maxCompressedWidth:E,maxCompressedHeight:c}),{getRootProps:j,getInputProps:V,isDragActive:K,isDragReject:re}=ne,{cropModalOpen:Z,imagePreview:n,cropLoading:fe,onCropInitialized:te,handleCropSave:we,handleCropCancel:xe}=ue,be=useCallback(()=>{se(G||void 0);},[G,se]),x=!!G,F=re||!!i||!!N,R=h||T,O=x?{opacity:0}:{opacity:1},k=d?.width;return useEffect(()=>{x||oe(!1);},[x]),jsxs(Me,{sx:{...A,...k&&{width:k}},children:[(R||q)&&jsx(a$7,{}),jsxs(me,{id:l,uploading:R,disabled:s,dropZoneSxProps:d,tabIndex:P,getRootProps:j,getInputProps:V,isDragActive:K,isError:F,name:I,dropZoneContent:jsxs(Fragment,{children:[a?jsx(de,{sx:O,children:a}):jsx(ce,{sx:O,header:m?.title,description:m?.description}),x&&jsx(qe,{file:G,cropSize:v,isLoading:q,isUploading:R,onLoading:oe,aspectRatio:le,maxWidth:S,maxHeight:L,hoverAlt:g,fill:D})]}),children:[jsx(y,{disabled:s,helperText:p,isError:F}),i?jsx(y,{helperText:i,isError:!0}):null,N?jsx(y,{helperText:N,isError:!0}):null,x&&e&&jsx(mo,{size:"small",onClick:be,disabled:s,label:"Remover arquivo",children:jsx(a$4,{icon:"DELETE_MARK_BUTTON_02",width:16})}),jsx(a$6,{open:Z,onClose:xe,label:u??"Ajustar Imagem",imageSrc:n,aspectRatio:le,onInitialized:te,onSave:we,loading:fe,cropSize:v})]})]})},Lt=memo(Ct);var Gt=({onRemove:e,onFileSelect:o,createFilesMutation:r,fileDetails:t,disabled:l,label:s,id:i,tabIndex:p,error:d,helperText:m,sx:a,name:g,maxSize:h,uploading:P,aspectRatio:w=1,enableCrop:b=!0,convertToWebp:C=!0,cropSize:I,...u})=>{let[v,A]=useState(!1),{filesPreview:S,isUploadOrLoadingFiles:L,uploadErrorText:f,uploadFiles:E}=X({createFilesMutation:r,filesDetails:t?[t]:[]}),{file:c,dropzoneProps:D,cropState:M,handleRemove:U}=$({filesPreview:S,onFileSelect:o,onRemove:e,dropzoneOptions:{accept:{"image/*":[".jpeg",".jpg",".png",".gif",".webp"]},multiple:!1,disabled:l,maxSize:h,...u},enableCrop:b,customAspectRatio:w,convertToWebp:C,cropSize:I,uploadFiles:E}),{getRootProps:T,getInputProps:N,isDragActive:ee,isDragReject:q}=D,{cropModalOpen:oe,imagePreview:G,cropLoading:ne,onCropInitialized:ue,handleCropSave:se,handleCropCancel:le}=M,j=q||!!d||!!f,V=v||L||P,K=!!e,re=useRef(t?.url||""),Z=useRef();useEffect(()=>{if(!c){re.current="",Z.current=void 0;return}if(Z.current===c.id)return;Z.current=c.id,A(!0);let te=URL.createObjectURL(c);return re.current=te,()=>{URL.revokeObjectURL(te);}},[c]);let n=()=>{A(!1);},fe=useCallback(()=>K&&c?()=>U(c):T().onClick,[K,c,T,U]);return jsxs(Fragment,{children:[jsxs(de,{sx:{alignItems:"center"},children:[jsxs(Io,{sx:a,isError:j,isDragActive:ee,hasFile:!!c,...T(),onClick:fe(),children:[jsxs(ho,{children:[V&&jsx(bo,{children:jsx(Wt,{size:135,thickness:2,color:"primary"})}),c&&jsx(Po,{alt:"Avatar Preview",src:re.current,onLoad:n,...V&&{sx:{filter:"blur(5px) !important",scale:1.2,opacity:.7}}}),!c&&!V&&jsxs($e,{isError:j,hasFile:!1,children:[jsx(a$4,{icon:"ADD_IMAGE",width:32}),jsx(Qe,{variant:"caption",textAlign:"center",sx:{color:j?"error.main":"text.disabled"},children:"Adicionar foto"})]}),c&&!V&&jsxs($e,{isError:j,hasFile:!0,children:[jsx(a$4,{icon:K?"DELETE_MARK_BUTTON_02":"ADD_IMAGE",width:32}),jsx(Qe,{variant:"caption",textAlign:"center",sx:{color:j?"error.main":"common.white"},children:K?"Remover foto":"Alterar foto"})]})]}),jsx("input",{name:g,id:i,tabIndex:p,...N()})]}),jsx(de,{sx:{alignItems:"center",mt:-.5},children:jsx(y,{helperText:m,disabled:l,isError:j})}),f?jsx(y,{helperText:f,isError:!0}):null,d?jsx(y,{helperText:d,isError:!0}):null]}),oe&&G&&jsx(a$6,{open:oe,onClose:le,label:s??"Ajustar Imagem",imageSrc:G,aspectRatio:w,onInitialized:ue,onSave:se,loading:ne,cropSize:I,cropShape:"round"})]})},jt=memo(Gt);var Xt=({error:e,name:o,disabled:r,sx:t,...l})=>{let{getRootProps:s,getInputProps:i,isDragActive:p,isDragReject:d}=useDropzone({disabled:r,...l}),m=d||e;return jsxs(co,{...s(),isDragActive:p,hasError:!!m,disabled:!!r,sx:t,"data-testid":"upload-box",children:[jsx("input",{name:o,...i()}),"Selecionar arquivo"]})},qt=memo(Xt);
33
33
 
34
34
  export { y as a, _e as b, qe as c, Ve as d, To as e, So as f, oa as g, Ne as h, Ee as i, ca as j, Oo as k, yo as l, Uo as m, Co as n, $ as o, Ke as p, Be as q, X as r, ct as s, Pt as t, Rt as u, Lt as v, jt as w, qt as x };
35
+ //# sourceMappingURL=out.js.map
36
+ //# sourceMappingURL=chunk-SPC6IIEJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/FileUpload/components/HelperText.tsx","../src/components/FileUpload/components/MultiFilePreview.tsx","../src/components/FileUpload/components/SortableFile.tsx","../src/components/FileUpload/styles.ts","../src/components/FileUpload/components/ThumbnailBadge.tsx","../src/components/FileUpload/components/SingleFilePreview.tsx","../src/components/FileUpload/components/LoadingPreviewImage.tsx","../src/components/FileUpload/FileThumbnail/index.tsx","../src/components/FileUpload/FileThumbnail/utils.ts","../src/components/FileUpload/hooks/useDropzoneUploader.ts","../src/components/FileUpload/utils.ts","../src/components/FileUpload/hooks/useFileUploadService.ts","../src/components/FileUpload/props.ts","../src/components/FileUpload/MultipleFileUpload.tsx","../src/components/FileUpload/components/DropZone.tsx","../src/components/FileUpload/components/DropZonePlaceholder.tsx","../src/components/FileUpload/MultipleImageUpload.tsx","../src/components/FileUpload/SingleFileUpload.tsx","../src/components/FileUpload/SingleImageUpload.tsx","../src/components/FileUpload/UploadAvatar.tsx","../src/components/FileUpload/UploadSimpleBox.tsx"],"names":["memo","FormHelperText","jsx","HelperText","helperText","disabled","isError","theme","HelperText_default","useCallback","useState","closestCenter","DndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","restrictToHorizontalAxis","restrictToParentElement","restrictToWindowEdges","horizontalListSortingStrategy","SortableContext","sortableKeyboardCoordinates","AnimatePresence","useSortable","Stack","Typography","Box","IconButtonMui","Paper","alpha","styled","m","Container","Actions","StyledDropZone","prop","isDragActive","OverlayActions","CloseIconButton","DragWrapper","FrameFileThumbnail","width","isDragging","FrameImageThumbnail","DeleteButton","IconButton_default","BoxUpload","hasError","SingleFilePreviewBox","SingleFilePreviewImg","aspectRatio","maxWidth","maxHeight","isLoading","isUploading","fill","SingleFilePreviewBlurImg","SingleFilePreviewHoverOverlay","AvatarContainer","RejectionFilesPaper","UploadPlaceholder","hasFile","PlaceholderLoading","PlaceholderUploadImageAltBox","UploadAvatarBox","ImagePreview","ActionsIconButton","Badge","jsxs","ThumbnailBadge","onRemove","sx","file","disableDrag","attributes","listeners","innerWidth","id","varFade","DragButton_default","FileThumbnail","ThumbnailBadge_default","SortableFile","thumbnail","disableTransitions","size","name","isNotFormatFile","setNodeRef","transform","transition","style","CSS","Tooltip_default","fData","SortableFile_default","MultiFilePreview","files","onReorder","setDisableTransitions","sensors","handleDragEnd","event","active","over","oldIndex","newIndex","sortableFile","MultiFilePreview_default","useRef","forwardRef","useLayoutEffect","useMemo","LoadingPreviewImage","onLoading","cropSize","props","imageRef","useMount_default","handleFinish","LoadingPreviewImage_default","SingleFilePreview","hoverAlt","fileId","fileName","previewUrl","SingleFilePreview_default","ButtonBase","IconButton","Tooltip","FORMAT_PDF","FORMAT_TEXT","FORMAT_PHOTOSHOP","FORMAT_WORD","FORMAT_EXCEL","FORMAT_ZIP","FORMAT_ILLUSTRATOR","FORMAT_POWERPOINT","FORMAT_AUDIO","FORMAT_IMG","FORMAT_VIDEO","fileFormat","fileUrl","format","fileByUrl","fileTypeByUrl","fileThumb","thumb","fileNameByUrl","fileThumbnailClasses","tooltip","imageView","slotProps","onDownload","other","renderImg","renderIcon","Icon_default","renderContent","useEffect","useDropzone","isImageFile","mimeType","convertToWebP","quality","resolve","reject","canvas","ctx","img","blob","webpFile","compressImageWithoutCrop","height","compressedFile","getFileNameFromContentDisposition","contentDisposition","match","encodeFilenameForHeader","filename","useDropzoneUploader","onFilesSelect","onFileSelect","uploadFiles","filesPreview","dropzoneOptions","enableCrop","customAspectRatio","convertToWebp","maxFiles","compressionQuality","maxCompressedWidth","maxCompressedHeight","showErrorMessage","useApiMessage_default","internalFiles","setInternalFiles","cropModalOpen","setCropModalOpen","originalImage","setOriginalImage","croppedAreaPixels","setCroppedAreaPixels","imagePreview","setImagePreview","cropLoading","setCropLoading","pendingImages","setPendingImages","currentImageIndex","setCurrentImageIndex","totalPendingImages","setTotalPendingImages","processNextImage","images","nextImageData","prev","reader","onCropInitialized","_croppedArea","createCroppedImage","x","y","ratio","finalWidth","finalHeight","croppedFile","error","extendedFile","handleCropSave","currentImageData","croppedImage","remainingImages","handleCropCancel","onDrop","acceptedFiles","isImageUpload","key","totalFiles","imageFilesWithTempIds","index","processedFiles","handleDropRejected","fileRejections","errorCode","maxSizeInBytes","getRootProps","getInputProps","isDragReject","handleRemove","fileToRemove","newFiles","handleReorder","filesIdRef","idRef","useDropzoneUploader_default","ContentType","FileContentType","useFileUploadService","createFilesMutation","filesDetails","isUploadingFiles","setIsUploadingFiles","isLoadingPreview","setIsLoadingPreview","uploadFilesError","setUploadFilesError","setFilesPreview","filePreview","isUploadOrLoadingFiles","fetchFiles","details","validFiles","url","response","nameFromDisposition","previewFile","filesUrlRef","urlKey","filesWithContentType","contentTypeEnum","createResponse","extendedFiles","responseFile","originalFile","uploadErrorText","useFileUploadService_default","DropZone","tabIndex","uploading","dropZoneSxProps","dropZoneContent","children","FixedProgressBar_default","DropZone_default","Fragment","DropZonePlaceholder","header","description","UploadIllustration_default","DropZonePlaceholder_default","MultipleFileUpload","placeholderAlt","placeholderProps","dropzoneProps","hasFiles","MultipleFileUpload_default","MultipleImageUpload","customLabel","cropState","label","labelText","labelProcessing","EasyCropModal_default","MultipleImageUpload_default","SingleFileUpload","fileDetails","onRemoveFile","e","SingleFileUpload_default","SingleImageUpload","imagePreviewLoading","setImagePreviewLoading","hidePlaceholder","dropZoneSxWidth","SingleImageUpload_default","CircularProgress","UploadAvatar","maxSize","canRemove","imgSrc","loadedFileKey","objectUrl","handleImageLoad","handleClick","UploadAvatar_default","UploadBox","UploadSimpleBox_default"],"mappings":"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","sourcesContent":["import { memo } from 'react';\nimport FormHelperText from '@mui/material/FormHelperText';\n\nimport { HelperTextProps } from '../props';\n\nconst HelperText = ({ helperText, disabled, isError }: HelperTextProps) => {\n if (!helperText) return null;\n\n return (\n <FormHelperText\n error={isError}\n sx={theme => ({\n mx: '14px',\n color: disabled ? theme.palette.grey[500] : undefined,\n })}\n >\n {helperText}\n </FormHelperText>\n );\n};\n\nexport default memo(HelperText);\n","import { memo, useCallback, useState } from 'react';\nimport {\n closestCenter,\n DndContext,\n DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n restrictToHorizontalAxis,\n restrictToParentElement,\n restrictToWindowEdges,\n} from '@dnd-kit/modifiers';\nimport {\n horizontalListSortingStrategy,\n SortableContext,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport { AnimatePresence } from 'framer-motion';\n\nimport { ExtendFile, MultiFilePreviewProps } from '../props';\n\nimport SortableFile from './SortableFile';\n\nconst MultiFilePreview = ({\n thumbnail,\n files,\n onRemove,\n onReorder,\n sx,\n}: MultiFilePreviewProps) => {\n const [disableTransitions, setDisableTransitions] = useState(false);\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 8,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (!active || !over || active.id === over.id) return;\n\n if (onReorder) {\n const oldIndex = files.findIndex(\n ({ id }: ExtendFile) => id === active.id,\n );\n const newIndex = files.findIndex(\n ({ id }: ExtendFile) => id === over.id,\n );\n\n if (oldIndex !== -1 && newIndex !== -1) {\n onReorder(oldIndex, newIndex, files);\n setDisableTransitions(true);\n setTimeout(() => {\n setDisableTransitions(false);\n }, 300);\n }\n }\n },\n [files, onReorder],\n );\n\n const sortableFile = (\n <AnimatePresence initial={false}>\n {files.map((file: ExtendFile) => (\n <SortableFile\n sx={sx}\n id={`preview-file-${file.id}`}\n file={file}\n onRemove={onRemove}\n thumbnail={thumbnail}\n disableDrag={!onReorder}\n disableTransitions={disableTransitions}\n key={`preview-file-${file.id}`}\n />\n ))}\n </AnimatePresence>\n );\n\n if (!onReorder) {\n return sortableFile;\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n modifiers={[\n restrictToHorizontalAxis,\n restrictToParentElement,\n restrictToWindowEdges,\n ]}\n >\n <SortableContext\n items={files.map((file: ExtendFile) => file.id as UniqueIdentifier)}\n strategy={horizontalListSortingStrategy}\n >\n {sortableFile}\n </SortableContext>\n </DndContext>\n );\n};\n\nexport default memo(MultiFilePreview);\n","import { memo } from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { varFade } from 'components/animate';\nimport DragButton from 'components/DragButton';\nimport { FileThumbnail } from 'components/FileUpload';\nimport IconButton from 'components/IconButton';\nimport Tooltip from 'components/Tooltip';\nimport { fData } from 'utils/formatNumber';\n\nimport { SortableItemProps } from '../props';\nimport { Actions, DragWrapper, FrameFileThumbnail } from '../styles';\n\nimport ThumbnailBadge from './ThumbnailBadge';\n\nconst SortableFile = ({\n file,\n thumbnail,\n onRemove,\n sx,\n disableDrag = false,\n disableTransitions = false,\n}: SortableItemProps) => {\n /* istanbul ignore next */\n const size = file.size || 0;\n /* istanbul ignore next */\n const name = file.name || file.id;\n const id = file.id;\n const isNotFormatFile = typeof file === 'string';\n const innerWidth = disableDrag ? 70 : 80;\n\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id,\n disabled: disableDrag,\n });\n\n const style = {\n transform: disableTransitions\n ? undefined\n : CSS.Transform.toString(transform),\n transition: disableTransitions ? 'none' : transition,\n opacity: disableTransitions ? 0.2 : 1,\n display: 'inline-block',\n alignItems: 'center',\n justifyContent: 'center',\n width: `${innerWidth + 8}px`,\n height: '68px',\n };\n\n if (thumbnail && file) {\n return (\n <DragWrapper ref={setNodeRef} style={style}>\n <ThumbnailBadge\n innerWidth={innerWidth}\n isDragging={isDragging}\n sx={sx}\n file={file}\n disableDrag={disableDrag}\n attributes={attributes}\n listeners={listeners}\n onRemove={onRemove}\n />\n </DragWrapper>\n );\n }\n\n return (\n <DragWrapper\n ref={setNodeRef}\n style={{\n ...style,\n height: '80px',\n width: `${innerWidth + 38}px`,\n }}\n >\n <FrameFileThumbnail\n width={innerWidth + 30}\n isDragging={isDragging}\n data-testid={`preview-multi-img-${id}`}\n {...varFade().inUp}\n sx={sx}\n >\n <DragButton disableDrag={disableDrag} {...attributes} {...listeners} />\n\n {file && <FileThumbnail file={file} />}\n\n <Stack flexGrow={1} sx={{ width: '100%' }}>\n <Tooltip title={name}>\n <Typography variant=\"subtitle2\" noWrap>\n {name}\n </Typography>\n </Tooltip>\n\n <Typography variant=\"caption\" sx={{ color: 'text.secondary' }}>\n {isNotFormatFile ? '' : fData(size)}\n </Typography>\n </Stack>\n\n <Actions>\n {onRemove && (\n <IconButton\n size=\"small\"\n label=\"Remover arquivo\"\n onClick={() => onRemove(file)}\n icon=\"DELETE_MARK_BUTTON_02\"\n />\n )}\n </Actions>\n </FrameFileThumbnail>\n </DragWrapper>\n );\n};\n\nexport default memo(SortableFile);\n","import Box from '@mui/material/Box';\nimport IconButtonMui from '@mui/material/IconButton';\nimport Paper from '@mui/material/Paper';\nimport Stack from '@mui/material/Stack';\nimport { alpha, styled } from '@mui/material/styles';\nimport { m } from 'framer-motion';\n\nimport IconButton from 'components/IconButton';\n\nimport { LoadingPreviewImageProps, StyledDropZonePropsType } from './props';\n\nexport const Container = styled(Stack)({\n position: 'relative',\n width: '100%',\n borderRadius: 8,\n overflow: 'hidden',\n\n '&:hover .actions': {\n display: 'flex',\n },\n});\n\nexport const Actions = styled(Stack)({\n position: 'absolute',\n top: 4,\n right: 4,\n gap: 0.5,\n '& svg': {\n width: 16,\n height: 16,\n },\n});\n\nexport const StyledDropZone = styled(Box, {\n shouldForwardProp: prop =>\n !['isDragActive', 'isError', 'disabled'].includes(prop as string),\n})<StyledDropZonePropsType>(({ theme, isDragActive, isError, disabled }) => ({\n outline: 'none',\n cursor: 'pointer',\n overflow: 'hidden',\n position: 'relative',\n padding: theme.spacing(5),\n borderRadius: theme.shape.borderRadius,\n transition: theme.transitions.create('padding'),\n backgroundColor: theme.palette.background.neutral,\n border: `dashed 1px ${theme.palette.divider}`,\n ...(isDragActive && {\n opacity: 0.72,\n }),\n ...(isError && {\n color: theme.palette.error.main,\n backgroundColor: theme.palette.error.lighter,\n borderColor: theme.palette.error.light,\n }),\n ...(disabled && {\n opacity: 0.48,\n pointerEvents: 'none',\n }),\n '&:hover': {\n opacity: 0.72,\n },\n}));\n\nexport const OverlayActions = styled(Stack)(({ theme }) => ({\n display: 'none',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n gap: 12,\n width: '100%',\n height: '100%',\n backgroundColor: alpha(theme.palette.primary.main, 0.9),\n zIndex: 999,\n\n button: {\n '&, &:hover, &:focus': {\n backgroundColor: theme.palette.background.paper,\n },\n },\n}));\n\nexport const CloseIconButton = styled(IconButtonMui)(({ theme }) => ({\n position: 'relative',\n zIndex: 999,\n pointerEvents: 'auto',\n color: theme.palette.grey[700],\n backgroundColor: theme.palette.grey[100],\n\n '&:hover': {\n color: theme.palette.grey[900],\n backgroundColor: theme.palette.grey[300],\n },\n}));\n\nexport const DragWrapper = styled('div')({\n position: 'relative',\n zIndex: 1,\n userSelect: 'none',\n '&:hover': {\n zIndex: 2,\n },\n});\n\nexport const FrameFileThumbnail = styled(Stack, {\n shouldForwardProp: prop => !['isDragging'].includes(prop as string),\n})<{\n width: number;\n isDragging: boolean;\n}>(({ theme, width, isDragging }) => ({\n width,\n height: 100,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n margin: theme.spacing(0.5),\n padding: theme.spacing(2, 1, 2, 1),\n gap: theme.spacing(1),\n borderRadius: theme.spacing(1.25),\n overflow: 'hidden',\n position: 'relative',\n border: `solid 1px ${theme.palette.divider}`,\n backgroundColor: theme.palette.common.white,\n zIndex: 1,\n transition: 'box-shadow 150ms ease-in-out',\n boxShadow: !isDragging\n ? '0px 0px 0px 0px rgba(0, 0, 0, 0)'\n : `0 0 0 2px ${theme.palette.primary.main}, ${theme.customShadows.z8}, inset 0 0 0 1000px ${alpha(\n theme.palette.primary.main,\n 0.06,\n )}`,\n}));\n\nexport const FrameImageThumbnail = styled(m.div)<{\n width: number;\n isDragging: boolean;\n}>(({ theme, width, isDragging }) => ({\n width,\n height: 60,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n margin: theme.spacing(0.5),\n padding: theme.spacing(2),\n borderRadius: theme.spacing(1.25),\n overflow: 'hidden',\n position: 'relative',\n border: `solid 1px ${theme.palette.divider}`,\n backgroundColor: theme.palette.common.white,\n zIndex: 1,\n transition: 'box-shadow 150ms ease-in-out',\n boxShadow: !isDragging\n ? '0px 0px 0px 0px rgba(0, 0, 0, 0)'\n : `0 0 0 2px ${theme.palette.primary.main}, ${theme.customShadows.z8}, inset 0 0 0 1000px ${alpha(\n theme.palette.primary.main,\n 0.06,\n )}`,\n}));\n\nexport const DeleteButton = styled(IconButton)(({ theme }) => ({\n top: 16,\n right: 16,\n zIndex: 9,\n position: 'absolute',\n color: theme.palette.common.white,\n backgroundColor: alpha(theme.palette.grey[900], 0.72),\n '&:hover': {\n backgroundColor: alpha(theme.palette.grey[900], 0.48),\n },\n}));\n\nexport const BoxUpload = styled(Box, {\n shouldForwardProp: prop =>\n prop !== 'isDragActive' && prop !== 'disabled' && prop !== 'hasError',\n})<{\n isDragActive: boolean;\n disabled: boolean;\n hasError: boolean;\n}>(({ theme, isDragActive, disabled, hasError }) => ({\n width: 64,\n height: 64,\n flexShrink: 0,\n display: 'flex',\n borderRadius: 1,\n cursor: 'pointer',\n alignItems: 'center',\n color: theme.palette.text.disabled,\n justifyContent: 'center',\n backgroundColor: alpha(theme.palette.grey[500], 0.08),\n border: `dashed 1px ${alpha(theme.palette.grey[500], 0.16)}`,\n ...(isDragActive && { opacity: 0.72 }),\n ...(disabled && { opacity: 0.48, pointerEvents: 'none' }),\n ...(hasError && {\n color: theme.palette.error.main,\n borderColor: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.error.main, 0.08),\n }),\n '&:hover': { opacity: 0.72 },\n}));\n\nexport const SingleFilePreviewBox = styled(Box)(({ theme }) => ({\n padding: theme.spacing(1),\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n transition: 'all 0.3s ease-in-out',\n filter: 'blur(0)',\n '&:hover .single-file-preview-img': {\n filter: 'blur(3px)',\n transition: 'all 0.1s ease-in-out',\n },\n '&:hover .single-file-preview-hover-overlay': {\n opacity: 1,\n },\n}));\n\nexport const SingleFilePreviewImg = styled('img', {\n shouldForwardProp: prop =>\n prop !== 'aspectRatio' &&\n prop !== 'isLoading' &&\n prop !== 'isUploading' &&\n prop !== 'maxWidth' &&\n prop !== 'maxHeight' &&\n prop !== 'cropSize' &&\n prop !== 'fill',\n})<\n LoadingPreviewImageProps & {\n maxWidth: number | string;\n maxHeight: number | string;\n }\n>(\n ({\n theme,\n aspectRatio,\n maxWidth,\n maxHeight,\n isLoading,\n isUploading,\n fill,\n }) => ({\n borderRadius: theme.shape.borderRadius,\n objectFit: 'cover',\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%) scale(1)',\n filter: 'blur(0)',\n zIndex: 1,\n backgroundColor: theme.palette.background.paper,\n ...(fill && {\n width: '100%',\n height: '100%',\n }),\n ...(!fill &&\n Math.abs(aspectRatio) >= 1 && {\n maxWidth,\n maxHeight,\n aspectRatio: Math.abs(aspectRatio),\n width: 'calc(100% - 16px)',\n height: undefined,\n }),\n ...(!fill &&\n Math.abs(aspectRatio) < 1 && {\n maxWidth,\n maxHeight,\n aspectRatio: Math.abs(aspectRatio),\n width: undefined,\n height: 'calc(100% - 16px)',\n }),\n transition: 'all 0.3s ease-in-out',\n ...(isLoading || isUploading\n ? {\n opacity: 0,\n filter: 'blur(1.5rem)',\n transform: 'translate(-50%, -50%) scale(0.7)',\n }\n : {}),\n }),\n);\n\nexport const SingleFilePreviewBlurImg = styled('img', {\n shouldForwardProp: prop => prop !== 'isLoading' && prop !== 'isUploading',\n})<{\n isLoading?: boolean;\n isUploading?: boolean;\n}>(({ isLoading, isUploading }) => ({\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n top: 0,\n left: 0,\n filter: 'blur(1.5rem)',\n transform: 'scale(1.1)',\n position: 'absolute',\n zIndex: 0,\n transition: 'opacity 0.3s ease-in-out',\n ...(isLoading && { opacity: 0 }),\n ...(isUploading && { opacity: 0.7, filter: 'blur(2rem)' }),\n}));\n\nexport const SingleFilePreviewHoverOverlay = styled(Stack)(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: alpha(theme.palette.primary.darker, 0.75),\n zIndex: 2,\n pointerEvents: 'none',\n opacity: 0,\n transition: 'opacity 0.3s ease-in-out',\n}));\n\nexport const AvatarContainer = styled(Stack)({\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n borderRadius: '50%',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nexport const RejectionFilesPaper = styled(Paper)(({ theme }) => ({\n py: 1,\n px: 2,\n mt: 3,\n textAlign: 'left',\n borderStyle: 'dashed',\n borderColor: 'error.main',\n backgroundColor: alpha(theme.palette.error.main, 0.08),\n}));\n\nexport const UploadPlaceholder = styled(Box, {\n shouldForwardProp: prop => prop !== 'isError' && prop !== 'hasFile',\n})<{ isError: boolean; hasFile: boolean }>(({ theme, isError, hasFile }) => ({\n top: 0,\n gap: theme.spacing(1),\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 9,\n display: 'flex',\n borderRadius: '50%',\n position: 'absolute',\n alignItems: 'center',\n color: theme.palette.text.disabled,\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: alpha(theme.palette.grey[500], 0.08),\n transition: theme.transitions.create(['opacity'], {\n duration: theme.transitions.duration.shorter,\n }),\n '&:hover': { opacity: 0.92 },\n ...(isError && {\n color: theme.palette.error.main,\n }),\n ...(hasFile && {\n zIndex: 9,\n opacity: 0,\n color: theme.palette.common.white,\n backgroundColor: alpha(theme.palette.common.black, 0.54),\n }),\n}));\n\nexport const PlaceholderLoading = styled(Stack)({\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n position: 'absolute',\n zIndex: 10,\n alignItems: 'center',\n justifyContent: 'center',\n opacity: 0.8,\n});\n\nexport const PlaceholderUploadImageAltBox = styled(Stack)(({ theme }) => ({\n padding: 20,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 4,\n alignSelf: 'stretch',\n borderRadius: 12,\n background: theme.palette.divider,\n color: theme.palette.text.disabled,\n height: 160,\n}));\n\nexport const UploadAvatarBox = styled(Box, {\n shouldForwardProp: prop =>\n prop !== 'isDragActive' && prop !== 'isError' && prop !== 'hasFile',\n})<{\n isDragActive: boolean;\n disabled?: string;\n isError: boolean;\n hasFile: boolean;\n}>(({ theme, isDragActive, disabled, isError, hasFile }) => ({\n padding: theme.spacing(1),\n margin: 'auto',\n width: 144,\n height: 144,\n cursor: 'pointer',\n overflow: 'hidden',\n borderRadius: '50%',\n border: `1px dashed ${theme.palette.divider}`,\n ...(isDragActive && { opacity: 0.72 }),\n ...(disabled && { opacity: 0.48, pointerEvents: 'none' }),\n ...(isError && { borderColor: 'error.main' }),\n ...(hasFile && {\n ...(isError && {\n bgcolor: alpha(theme.palette.error.main, 0.08),\n }),\n '&:hover .upload-placeholder': { opacity: 1 },\n '& img': {\n filter: 'blur(0)',\n },\n '&:hover img': {\n filter: 'blur(3px)',\n },\n }),\n}));\n\nexport const ImagePreview = styled('img')({\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n objectFit: 'cover',\n transition: 'all 0.3s ease-in-out',\n});\n\nexport const ActionsIconButton = styled(IconButton)<{\n icon: string;\n}>(({ theme }) => ({\n backgroundColor: alpha(theme.palette.grey[900], 0.72),\n color: theme.palette.common.white,\n '&:hover': {\n backgroundColor: alpha(theme.palette.grey[600], 0.64),\n color: theme.palette.common.white,\n },\n '& svg': {\n width: 14,\n height: 14,\n },\n}));\n","import { memo } from 'react';\nimport Badge from '@mui/material/Badge';\n\nimport { varFade } from 'components/animate';\nimport DragButton from 'components/DragButton';\nimport { FileThumbnail } from 'components/FileUpload';\n\nimport { ThumbnailBadgeProps } from '../props';\nimport { Actions, ActionsIconButton, FrameImageThumbnail } from '../styles';\n\nconst ThumbnailBadge = ({\n onRemove,\n sx,\n file,\n disableDrag,\n attributes,\n listeners,\n innerWidth,\n isDragging,\n}: ThumbnailBadgeProps) => {\n const id = file?.id;\n if (!id) return null;\n\n return (\n <Badge\n key={`badge-${id}`}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n >\n <FrameImageThumbnail\n width={innerWidth}\n isDragging={isDragging}\n data-testid={`preview-multi-img-${id}`}\n {...varFade().inUp}\n sx={sx}\n >\n <DragButton disableDrag={disableDrag} {...attributes} {...listeners} />\n\n <FileThumbnail imageView file={file} />\n\n <Actions sx={{ position: 'absolute', right: 3, top: 3, zIndex: 1 }}>\n {onRemove && (\n <ActionsIconButton\n size=\"small\"\n label=\"Remover arquivo\"\n onClick={() => onRemove(file)}\n icon=\"DELETE_MARK_BUTTON_02\"\n />\n )}\n </Actions>\n </FrameImageThumbnail>\n </Badge>\n );\n};\n\nexport default memo(ThumbnailBadge);\n","import { memo, useRef } from 'react';\n\nimport type { SingleFilePreviewProps } from '../props';\nimport {\n SingleFilePreviewBlurImg,\n SingleFilePreviewBox,\n SingleFilePreviewHoverOverlay,\n} from '../styles';\n\nimport LoadingPreviewImage from './LoadingPreviewImage';\n\nconst SingleFilePreview = ({\n file,\n aspectRatio = 1,\n isUploading,\n isLoading,\n onLoading,\n cropSize,\n maxWidth,\n maxHeight,\n hoverAlt,\n fill,\n}: SingleFilePreviewProps) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const fileId = file?.id || '';\n const fileName = file?.name || '';\n const previewUrl = URL.createObjectURL(file);\n\n if (!fileId) {\n return null;\n }\n\n return (\n <SingleFilePreviewBox className=\"single-file-preview-box\">\n <LoadingPreviewImage\n className=\"single-file-preview-img\"\n key={`image-preview-${fileId}`}\n aspectRatio={aspectRatio}\n cropSize={cropSize}\n isLoading={isLoading}\n isUploading={isUploading}\n alt={fileName}\n src={previewUrl}\n ref={imageRef}\n loading=\"lazy\"\n onLoading={onLoading}\n onLoad={() => onLoading?.(false)}\n onError={() => onLoading?.(false)}\n maxWidth={maxWidth}\n maxHeight={maxHeight}\n fill={fill}\n />\n <SingleFilePreviewBlurImg\n className=\"single-file-preview-bg\"\n alt={fileName}\n src={previewUrl}\n isLoading={isLoading}\n isUploading={isUploading}\n />\n\n {hoverAlt && (\n <SingleFilePreviewHoverOverlay className=\"single-file-preview-hover-overlay\">\n {hoverAlt}\n </SingleFilePreviewHoverOverlay>\n )}\n </SingleFilePreviewBox>\n );\n};\n\nexport default memo(SingleFilePreview);\n","import { forwardRef, useLayoutEffect, useMemo } from 'react';\n\nimport useMount from 'hooks/useMount';\n\nimport { LoadingPreviewImageProps } from '../props';\nimport { SingleFilePreviewImg } from '../styles';\n\n// Componente de imagem que gerencia o estado de carrisLoadingegamento e o cálculo de tamanho\nconst LoadingPreviewImage = forwardRef<\n HTMLImageElement,\n LoadingPreviewImageProps\n>(({ onLoading, aspectRatio, cropSize, ...props }, imageRef) => {\n const { maxWidth, maxHeight } = useMemo(() => {\n if (cropSize && typeof cropSize === 'object') {\n return {\n maxWidth: cropSize.width,\n maxHeight: cropSize.height,\n };\n }\n if (cropSize && typeof cropSize === 'number') {\n return {\n maxWidth: cropSize,\n maxHeight: cropSize,\n };\n }\n\n return {\n maxWidth: '100%',\n maxHeight: '100%',\n };\n }, [cropSize]);\n\n useMount(() => {\n onLoading?.(true);\n });\n\n useLayoutEffect(() => {\n if (typeof imageRef === 'object' && imageRef?.current) {\n onLoading?.(!imageRef.current.complete);\n } else {\n onLoading?.(false);\n }\n }, [imageRef, onLoading]);\n\n function handleFinish() {\n onLoading?.(false);\n }\n\n return (\n <SingleFilePreviewImg\n {...props}\n maxWidth={maxWidth}\n maxHeight={maxHeight}\n ref={imageRef}\n aspectRatio={aspectRatio}\n onLoad={handleFinish}\n onError={handleFinish}\n />\n );\n});\n\nLoadingPreviewImage.displayName = 'LoadingPreviewImage';\n\nexport default LoadingPreviewImage;\n","import Box from '@mui/material/Box';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport IconButton from '@mui/material/IconButton';\nimport Stack from '@mui/material/Stack';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport Icon from 'components/Icon';\nimport { Icon as IconEnum } from 'types/icon';\n\nimport type { FileThumbnailProps } from './types';\nimport { fileFormat, fileThumb } from './utils';\n\nexport const fileThumbnailClasses = {\n root: 'mnl__file__thumbnail__root',\n img: 'mnl__file__thumbnail__img',\n icon: 'mnl__file__thumbnail__icon',\n removeBtn: 'mnl__file__thumbnail__remove__button',\n downloadBtn: 'mnl__file__thumbnail__download__button',\n};\n\nexport const FileThumbnail = ({\n sx,\n file,\n tooltip,\n onRemove,\n imageView,\n slotProps,\n onDownload,\n ...other\n}: FileThumbnailProps) => {\n const previewUrl = URL.createObjectURL(file);\n const name = file?.name || '';\n const isImageFile = file.type.startsWith('image/');\n const format = isImageFile ? 'image' : fileFormat(previewUrl);\n\n const renderImg = (\n <Box\n component=\"img\"\n src={previewUrl}\n className={fileThumbnailClasses.img}\n sx={{\n width: 1,\n height: 1,\n objectFit: 'cover',\n borderRadius: 'inherit',\n ...slotProps?.img,\n }}\n />\n );\n\n const renderIcon = (\n <Icon\n icon={fileThumb(format) as keyof typeof IconEnum}\n sx={{\n width: 32,\n height: 32,\n flexShrink: 0,\n ...sx,\n }}\n />\n );\n\n const renderContent = (\n <Stack\n component=\"span\"\n className={fileThumbnailClasses.root}\n sx={{\n width: 36,\n height: 36,\n flexShrink: 0,\n borderRadius: 1.25,\n alignItems: 'center',\n position: 'relative',\n display: 'inline-flex',\n justifyContent: 'center',\n ...sx,\n }}\n {...other}\n >\n {format === 'image' && imageView ? renderImg : renderIcon}\n\n {onRemove && (\n <ButtonBase\n onClick={onRemove}\n className={fileThumbnailClasses.removeBtn}\n sx={slotProps?.removeBtn}\n >\n <Icon icon=\"CLOSE_MARK_BUTTON\" width={24} />\n </ButtonBase>\n )}\n\n {onDownload && (\n <IconButton\n onClick={onDownload}\n className={fileThumbnailClasses.downloadBtn}\n sx={slotProps?.downloadBtn}\n size=\"small\"\n >\n <Icon icon=\"ARROW_DOWN_CICLE\" width={12} />\n </IconButton>\n )}\n </Stack>\n );\n\n if (tooltip) {\n return (\n <Tooltip\n arrow\n title={name}\n slotProps={{\n popper: {\n modifiers: [{ name: 'offset', options: { offset: [0, -12] } }],\n },\n }}\n >\n {renderContent}\n </Tooltip>\n );\n }\n\n return renderContent;\n};\n","const FORMAT_PDF = ['pdf'];\nconst FORMAT_TEXT = ['txt'];\nconst FORMAT_PHOTOSHOP = ['psd'];\nconst FORMAT_WORD = ['doc', 'docx'];\nconst FORMAT_EXCEL = ['xls', 'xlsx'];\nconst FORMAT_ZIP = ['zip', 'rar', 'iso'];\nconst FORMAT_ILLUSTRATOR = ['ai', 'eps'];\nconst FORMAT_POWERPOINT = ['ppt', 'pptx'];\nconst FORMAT_AUDIO = ['wav', 'aif', 'mp3', 'aac'];\nconst FORMAT_IMG = ['jpg', 'jpeg', 'gif', 'bmp', 'png', 'svg', 'webp'];\nconst FORMAT_VIDEO = ['m4v', 'avi', 'mpg', 'mp4', 'webm'];\n\nexport function fileFormat(fileUrl: string) {\n let format;\n\n const fileByUrl = fileTypeByUrl(fileUrl);\n\n if (FORMAT_TEXT.includes(fileByUrl)) {\n format = 'txt';\n } else if (FORMAT_ZIP.includes(fileByUrl)) {\n format = 'zip';\n } else if (FORMAT_AUDIO.includes(fileByUrl)) {\n format = 'audio';\n } else if (FORMAT_IMG.includes(fileByUrl)) {\n format = 'image';\n } else if (FORMAT_VIDEO.includes(fileByUrl)) {\n format = 'video';\n } else if (FORMAT_WORD.includes(fileByUrl)) {\n format = 'word';\n } else if (FORMAT_EXCEL.includes(fileByUrl)) {\n format = 'excel';\n } else if (FORMAT_POWERPOINT.includes(fileByUrl)) {\n format = 'powerpoint';\n } else if (FORMAT_PDF.includes(fileByUrl)) {\n format = 'pdf';\n } else if (FORMAT_PHOTOSHOP.includes(fileByUrl)) {\n format = 'photoshop';\n } else if (FORMAT_ILLUSTRATOR.includes(fileByUrl)) {\n format = 'illustrator';\n } else if (fileUrl?.startsWith('http')) {\n format = 'image';\n } else {\n format = fileTypeByUrl(fileUrl);\n }\n\n return format;\n}\n\nexport function fileThumb(fileUrl: string) {\n let thumb;\n\n switch (fileFormat(fileUrl)) {\n case 'folder':\n thumb = 'IC_FOLDER';\n break;\n case 'txt':\n thumb = 'IC_TXT';\n break;\n case 'zip':\n thumb = 'IC_ZIP';\n break;\n case 'audio':\n thumb = 'IC_AUDIO';\n break;\n case 'video':\n thumb = 'IC_VIDEO';\n break;\n case 'word':\n thumb = 'IC_WORD';\n break;\n case 'excel':\n thumb = 'IC_EXCEL';\n break;\n case 'powerpoint':\n thumb = 'IC_POWER_POINT';\n break;\n case 'pdf':\n thumb = 'IC_PDF';\n break;\n case 'photoshop':\n thumb = 'IC_PTS';\n break;\n case 'illustrator':\n thumb = 'IC_AI';\n break;\n case 'image':\n thumb = 'IC_IMG';\n break;\n default:\n thumb = 'IC_FILE';\n }\n return thumb;\n}\n\nexport function fileTypeByUrl(fileUrl: string) {\n return (fileUrl && fileUrl.split('.').pop()) || '';\n}\n\nexport function fileNameByUrl(fileUrl: string) {\n return fileUrl.split('/').pop();\n}\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { FileRejection, useDropzone } from 'react-dropzone';\nimport { Area } from 'react-easy-crop';\n\nimport useApiMessage from 'hooks/useApiMessage';\nimport { fData } from 'utils/formatNumber';\n\nimport {\n ExtendFile,\n UseDropzoneUploaderProps,\n UseDropzoneUploaderReturn,\n} from '../props';\nimport { compressImageWithoutCrop, convertToWebP } from '../utils';\n\nexport const useDropzoneUploader = ({\n onFilesSelect,\n onFileSelect,\n onReorder,\n onRemove,\n uploadFiles,\n filesPreview,\n dropzoneOptions,\n enableCrop = false,\n customAspectRatio,\n convertToWebp = true,\n cropSize,\n maxFiles,\n compressionQuality = 0.8,\n maxCompressedWidth,\n maxCompressedHeight,\n}: UseDropzoneUploaderProps): UseDropzoneUploaderReturn => {\n const { showErrorMessage } = useApiMessage();\n\n const aspectRatio = useMemo(() => {\n if (customAspectRatio) {\n return customAspectRatio;\n }\n\n if (cropSize && typeof cropSize !== 'number') {\n return cropSize.width / cropSize.height;\n }\n\n return 1;\n }, [customAspectRatio, cropSize]);\n\n const [internalFiles, setInternalFiles] = useState<Array<ExtendFile>>([]);\n const [cropModalOpen, setCropModalOpen] = useState(false);\n const [originalImage, setOriginalImage] = useState<File | null>(null);\n const [croppedAreaPixels, setCroppedAreaPixels] = useState<Area | null>(null);\n const [imagePreview, setImagePreview] = useState<string>('');\n const [cropLoading, setCropLoading] = useState(false);\n const [pendingImages, setPendingImages] = useState<Array<ExtendFile>>([]);\n const [currentImageIndex, setCurrentImageIndex] = useState<number>(0);\n const [totalPendingImages, setTotalPendingImages] = useState<number>(0);\n\n const processNextImage = (images: Array<ExtendFile>) => {\n if (images.length < 1) return;\n const nextImageData = images[0];\n setOriginalImage(nextImageData);\n setCurrentImageIndex(prev => prev + 1);\n\n const reader = new FileReader();\n reader.onload = () => {\n setImagePreview(reader.result as string);\n setCropModalOpen(true);\n };\n reader.readAsDataURL(nextImageData);\n };\n\n const onCropInitialized = (_croppedArea: Area, croppedAreaPixels: Area) => {\n setCroppedAreaPixels(croppedAreaPixels);\n };\n\n const createCroppedImage = async (\n fileId: string,\n ): Promise<ExtendFile | null> => {\n if (!originalImage || !croppedAreaPixels) return null;\n\n return new Promise(resolve => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const img = new Image();\n\n img.onload = async () => {\n const { width, height, x, y } = croppedAreaPixels;\n const ratio = Math.abs(aspectRatio);\n let finalWidth = width;\n let finalHeight = height;\n\n if (cropSize && typeof cropSize === 'object') {\n finalWidth = cropSize.width;\n finalHeight = cropSize.height;\n } else if (cropSize && typeof cropSize === 'number') {\n finalWidth = cropSize;\n finalHeight = cropSize / ratio;\n }\n\n canvas.width = finalWidth;\n canvas.height = finalHeight;\n\n if (ctx) {\n ctx.drawImage(\n img,\n x,\n y,\n width,\n height,\n 0,\n 0,\n finalWidth,\n finalHeight,\n );\n\n canvas.toBlob(async blob => {\n if (blob) {\n let croppedFile = new File([blob], originalImage.name, {\n type: originalImage.type,\n lastModified: Date.now(),\n });\n\n if (convertToWebp) {\n try {\n croppedFile = await convertToWebP(\n croppedFile,\n compressionQuality,\n );\n } catch (error) {\n showErrorMessage(error, 'Erro ao converter para WebP');\n }\n }\n\n // Converter File para ExtendFile adicionando o ID\n const extendedFile = croppedFile as ExtendFile;\n extendedFile.id = fileId;\n\n resolve(extendedFile);\n } else {\n resolve(null);\n }\n }, 'image/png');\n } else {\n resolve(null);\n }\n };\n\n img.src = imagePreview;\n });\n };\n\n const handleCropSave = async () => {\n if (!originalImage || !croppedAreaPixels || pendingImages.length === 0)\n return;\n\n setCropLoading(true);\n try {\n const currentImageData = pendingImages[0];\n const croppedImage = await createCroppedImage(currentImageData.id);\n\n if (croppedImage) {\n const files = await uploadFiles([croppedImage]);\n if (files) {\n if (!onFilesSelect && !onFileSelect) {\n setInternalFiles(prev => [...prev, ...files]);\n }\n onFilesSelect?.([...(filesPreview || []), ...files]);\n onFileSelect?.(croppedImage);\n }\n }\n\n setCropModalOpen(false);\n setCropLoading(false);\n setImagePreview('');\n setOriginalImage(null);\n\n const remainingImages = pendingImages.slice(1);\n setPendingImages(remainingImages);\n processNextImage(remainingImages);\n } catch (error) {\n showErrorMessage(error, 'Erro ao processar imagem');\n setCropLoading(false);\n }\n };\n\n const handleCropCancel = () => {\n setCropModalOpen(false);\n setCropLoading(false);\n setImagePreview('');\n setOriginalImage(null);\n setPendingImages([]);\n setCurrentImageIndex(0);\n setTotalPendingImages(0);\n };\n\n const onDrop = async (acceptedFiles: File[]) => {\n if (acceptedFiles.length === 0) return;\n\n const isImageUpload = Object.keys(dropzoneOptions?.accept || {}).some(key =>\n key.includes('image/'),\n );\n const totalFiles = internalFiles.length + acceptedFiles.length;\n\n if (maxFiles && totalFiles > maxFiles) {\n showErrorMessage(\n new Error(`Máximo de ${maxFiles} arquivos`),\n 'Erro ao fazer upload',\n );\n return;\n }\n\n try {\n if (isImageUpload && enableCrop) {\n const imageFiles = acceptedFiles.filter(file =>\n file.type.startsWith('image/'),\n );\n\n const imageFilesWithTempIds = imageFiles.map((file, index) => {\n const extendedFile = file as ExtendFile;\n extendedFile.id = `temp-crop-${Date.now()}-${index}`;\n return extendedFile;\n });\n\n setTotalPendingImages(imageFilesWithTempIds.length);\n setCurrentImageIndex(0);\n setPendingImages(imageFilesWithTempIds);\n processNextImage(imageFilesWithTempIds);\n } else {\n const processedFiles: File[] = [];\n\n for (const file of acceptedFiles) {\n if (file.type.startsWith('image/') && convertToWebp) {\n try {\n const compressedFile = await compressImageWithoutCrop(\n file,\n compressionQuality,\n maxCompressedWidth,\n maxCompressedHeight,\n );\n processedFiles.push(compressedFile);\n } catch (error) {\n showErrorMessage(error, 'Erro ao comprimir imagem');\n processedFiles.push(file);\n }\n } else {\n processedFiles.push(file);\n }\n }\n\n const files = await uploadFiles(processedFiles);\n if (files) {\n if (!onFilesSelect && !onFileSelect) {\n setInternalFiles(prev => [...prev, ...files]);\n }\n onFilesSelect?.([...(filesPreview || []), ...files]);\n onFileSelect?.(files[0]);\n }\n }\n } catch (error) {\n showErrorMessage(error, 'Erro ao processar arquivos');\n }\n };\n\n const handleDropRejected = (fileRejections: FileRejection[]) => {\n if (!fileRejections.length) return;\n\n const errorCode = fileRejections[0]?.errors[0]?.code;\n const maxSizeInBytes = dropzoneOptions?.maxSize || 3145728; // 3MB padrão\n if (errorCode === 'file-too-large') {\n showErrorMessage(\n new Error(\n `O arquivo excede o tamanho máximo de ${fData(maxSizeInBytes)}`,\n ),\n 'Erro ao fazer upload',\n );\n } else if (errorCode === 'file-invalid-type') {\n showErrorMessage(\n new Error('Formato de arquivo não suportado'),\n 'Erro ao fazer upload',\n );\n } else {\n showErrorMessage(\n fileRejections[0]?.errors[0] || new Error('Erro ao enviar arquivo'),\n 'Erro ao fazer upload',\n );\n }\n };\n\n const {\n getRootProps,\n getInputProps,\n isDragActive,\n isDragReject,\n fileRejections,\n } = useDropzone({\n onDrop,\n onDropRejected: handleDropRejected,\n ...dropzoneOptions,\n });\n\n const handleRemove = (fileToRemove?: ExtendFile) => {\n if (!fileToRemove) {\n if (!onRemove) setInternalFiles([]);\n onRemove?.(undefined);\n return;\n }\n\n const newFiles = internalFiles.filter(file => file.id !== fileToRemove.id);\n if (!onRemove) setInternalFiles(newFiles);\n onRemove?.(fileToRemove);\n };\n\n const handleReorder = (\n oldIndex: number,\n newIndex: number,\n files: ExtendFile[],\n ) => {\n onReorder?.(oldIndex, newIndex, files);\n };\n\n const filesIdRef = useRef<string>('');\n useEffect(() => {\n const idRef = filesPreview?.map(file => file.id).join(',') || '';\n if (idRef !== filesIdRef.current) {\n filesIdRef.current = idRef;\n setInternalFiles(filesPreview || []);\n }\n }, [filesPreview]);\n\n return {\n file: internalFiles?.[0],\n files: internalFiles,\n aspectRatio,\n dropzoneProps: {\n getRootProps,\n getInputProps,\n isDragActive,\n isDragReject,\n fileRejections,\n },\n cropState: {\n cropModalOpen,\n imagePreview,\n cropLoading,\n setCropModalOpen,\n onCropInitialized,\n handleCropSave,\n handleCropCancel,\n currentImageIndex,\n totalPendingImages,\n },\n setInitialFiles: setInternalFiles,\n handleRemove,\n handleReorder,\n };\n};\n\nexport default useDropzoneUploader;\n","export const isImageFile = (mimeType: string): boolean => {\n return mimeType.startsWith('image/');\n};\n\nexport const convertToWebP = (file: File, quality = 0.8): Promise<File> => {\n return new Promise((resolve, reject) => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const img = new Image();\n\n img.onload = () => {\n canvas.width = img.width;\n canvas.height = img.height;\n\n if (ctx) {\n ctx.drawImage(img, 0, 0);\n\n canvas.toBlob(\n blob => {\n if (blob) {\n const webpFile = new File(\n [blob],\n file.name.replace(/\\.[^/.]+$/, '.webp'),\n {\n type: 'image/webp',\n lastModified: Date.now(),\n },\n );\n resolve(webpFile);\n } else {\n reject(new Error('Falha ao converter para WebP'));\n }\n },\n 'image/webp',\n quality,\n );\n } else {\n reject(new Error('Não foi possível obter contexto do canvas'));\n }\n };\n\n img.onerror = () => reject(new Error('Falha ao carregar imagem'));\n img.src = URL.createObjectURL(file);\n });\n};\n\nexport const compressImageWithoutCrop = (\n file: File,\n quality = 0.8,\n maxWidth?: number,\n maxHeight?: number,\n): Promise<File> => {\n return new Promise((resolve, reject) => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const img = new Image();\n\n img.onload = () => {\n let { width, height } = img;\n\n if (maxWidth && width > maxWidth) {\n height = (height * maxWidth) / width;\n width = maxWidth;\n }\n if (maxHeight && height > maxHeight) {\n width = (width * maxHeight) / height;\n height = maxHeight;\n }\n\n canvas.width = width;\n canvas.height = height;\n\n if (ctx) {\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = 'high';\n\n ctx.drawImage(img, 0, 0, width, height);\n\n canvas.toBlob(\n blob => {\n if (blob) {\n const compressedFile = new File(\n [blob],\n file.name.replace(/\\.[^/.]+$/, '.webp'),\n {\n type: 'image/webp',\n lastModified: Date.now(),\n },\n );\n resolve(compressedFile);\n } else {\n reject(new Error('Falha ao comprimir imagem'));\n }\n },\n 'image/webp',\n quality,\n );\n } else {\n reject(new Error('Não foi possível obter contexto do canvas'));\n }\n };\n\n img.onerror = () => reject(new Error('Falha ao carregar imagem'));\n img.src = URL.createObjectURL(file);\n });\n};\n\nexport const getFileNameFromContentDisposition = (\n contentDisposition: string,\n): string => {\n const match = contentDisposition.match(\n /filename\\*=UTF-8''([^;]+)|filename=\"?([^\";]+)\"?/i,\n );\n const filename = match?.[1] || match?.[2];\n\n return filename || '';\n};\n\nexport const encodeFilenameForHeader = (filename: string): string => {\n const encodedFilename = encodeURIComponent(filename);\n\n return `UTF-8''${encodedFilename}`;\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport useApiMessage from 'hooks/useApiMessage';\n\nimport {\n ContentType,\n ExtendFile,\n FileContentType,\n FileDetails,\n FileUploadProps,\n} from '../props';\nimport {\n encodeFilenameForHeader,\n getFileNameFromContentDisposition,\n} from '../utils';\n\nconst useFileUploadService = ({\n createFilesMutation,\n filesDetails,\n}: FileUploadProps) => {\n const { showErrorMessage } = useApiMessage();\n const [isUploadingFiles, setIsUploadingFiles] = useState(false);\n const [isLoadingPreview, setIsLoadingPreview] = useState(false);\n const [uploadFilesError, setUploadFilesError] = useState<unknown | null>(\n null,\n );\n const [filesPreview, setFilesPreview] = useState<ExtendFile[]>([]);\n\n const filePreview = useMemo(() => filesPreview?.[0], [filesPreview]);\n const isUploadOrLoadingFiles = isLoadingPreview || isUploadingFiles;\n\n const fetchFiles = useCallback(\n async (details: FileDetails[]) => {\n if (!details.length) {\n setFilesPreview([]);\n setIsLoadingPreview(false);\n return;\n }\n\n setIsLoadingPreview(true);\n try {\n const newFiles = await Promise.all(\n details.map(async ({ url, id, name }) => {\n try {\n if (!url) return null;\n\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n const blob = await response.blob();\n\n let nameFromDisposition: string | null = null;\n if (!name) {\n const contentDisposition =\n response.headers.get('content-disposition') || undefined;\n\n if (contentDisposition) {\n const filename =\n getFileNameFromContentDisposition(contentDisposition);\n if (filename) {\n try {\n nameFromDisposition = decodeURIComponent(filename);\n } catch {\n nameFromDisposition = filename;\n }\n }\n }\n }\n\n const filename = nameFromDisposition || name || id;\n const previewFile = new File([blob], filename, {\n type: blob.type,\n }) as ExtendFile;\n previewFile.id = id;\n previewFile.url = url;\n\n return previewFile;\n } catch (error) {\n return null;\n }\n }),\n );\n\n const validFiles = newFiles.filter(Boolean) as ExtendFile[];\n setFilesPreview(validFiles);\n setIsLoadingPreview(false);\n } catch (error) {\n showErrorMessage(error, 'Erro ao carregar arquivos');\n setFilesPreview([]);\n setIsLoadingPreview(false);\n }\n },\n [showErrorMessage],\n );\n\n const filesUrlRef = useRef('');\n useEffect(() => {\n const urlKey = filesDetails?.map(({ id }) => id).join(',') || '';\n\n if (urlKey !== filesUrlRef.current) {\n const run = async () => {\n filesUrlRef.current = urlKey;\n await fetchFiles(filesDetails);\n };\n\n run();\n }\n }, [filesDetails, fetchFiles]);\n\n const uploadFiles = async (files: File[]) => {\n if (!files || !Array.isArray(files)) {\n throw new Error('Arquivos inválidos');\n }\n\n const newFiles = files.filter(file => file instanceof File);\n if (!newFiles?.length) return;\n\n setIsUploadingFiles(true);\n\n try {\n const filesWithContentType = newFiles.map(file => {\n const mimeType =\n (file.type as ContentType) || ContentType.APPLICATION_OCTET_STREAM;\n const contentTypeEnum = FileContentType[mimeType];\n\n if (!contentTypeEnum) {\n throw new Error(`Tipo de arquivo não suportado: ${mimeType}`);\n }\n\n return { file, mimeType, contentTypeEnum };\n });\n\n const createResponse = await createFilesMutation({\n files: filesWithContentType.map(({ file, contentTypeEnum }) => ({\n content_type: contentTypeEnum,\n name: file.name,\n })),\n }).unwrap();\n\n // Converte cada File para ExtendFile adicionando o ID e URL recebidos\n const extendedFiles: ExtendFile[] = createResponse.files.map(\n (responseFile, index) => {\n const originalFile = filesWithContentType[index].file;\n const extendedFile = originalFile as ExtendFile;\n extendedFile.id = responseFile.id;\n extendedFile.url = URL.createObjectURL(originalFile);\n return extendedFile;\n },\n );\n\n // Upload dos arquivos com ID e nome no header\n const responses = await Promise.all(\n createResponse.files.map((responseFile, index) => {\n const { mimeType } = filesWithContentType[index];\n const extendedFile = extendedFiles[index];\n\n return fetch(responseFile.url, {\n method: 'PUT',\n headers: {\n 'Content-Type': mimeType,\n 'Content-Disposition': `inline; filename*=${encodeFilenameForHeader(extendedFile.name)}`,\n 'X-File-Id': responseFile.id,\n },\n body: extendedFile,\n });\n }),\n );\n\n // Garante que o upload foi concluído\n await responses.forEach(async response => {\n if (!response.ok) {\n throw new Error('Erro no upload do arquivo.');\n }\n });\n\n return extendedFiles;\n } catch (error) {\n setUploadFilesError(error);\n showErrorMessage(error, 'Erro no upload');\n throw error;\n } finally {\n setIsUploadingFiles(false);\n }\n };\n\n const uploadErrorText = useMemo(() => {\n if (uploadFilesError && uploadFilesError instanceof Error) {\n return uploadFilesError.message;\n }\n\n return uploadFilesError as string;\n }, [uploadFilesError]);\n\n return {\n setFilesPreview,\n uploadFiles,\n filesPreview,\n filePreview,\n isLoadingPreview,\n isUploadingFiles,\n isUploadOrLoadingFiles,\n uploadErrorText,\n };\n};\n\nexport default useFileUploadService;\n","import type {\n DropzoneInputProps,\n DropzoneRootProps,\n FileRejection,\n useDropzone,\n} from 'react-dropzone';\nimport type { DropzoneOptions } from 'react-dropzone';\nimport { Area } from 'react-easy-crop';\nimport {\n DraggableAttributes,\n DraggableSyntheticListeners,\n} from '@dnd-kit/core';\nimport type { StackProps } from '@mui/material/Stack';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nimport type { FileThumbnailProps } from 'components/FileUpload';\n\nexport interface ExtendFile extends File {\n id: string;\n url: string;\n}\n\nexport interface FileDetails {\n id: string;\n url: string;\n name?: string;\n}\n\nexport interface FileUpload {\n url: string;\n file: ExtendFile;\n contentType: string;\n resourceIds: string[];\n}\n\nexport type CropSize =\n | {\n width: number;\n height: number;\n }\n | number;\n\nexport type CreateFilesMutation = (\n files: ExtendFile[],\n) => Promise<string[] | undefined>;\n\nexport interface FileCreateRequest {\n files: Array<{\n content_type: keyof typeof ContentType;\n name: string;\n }>;\n}\n\nexport interface FileGetResponse {\n id: string;\n name: string;\n organization_id: string;\n url: string;\n status: 'PENDING' | 'COMPLETED' | 'FAILED';\n content_type: string;\n content_length: number;\n created_by: string;\n created_at: string;\n updated_by: string;\n updated_at: string;\n}\n\nexport interface FileCreateResponse {\n files: FileGetResponse[];\n}\n\nexport interface FileQueryRequest {\n ids: string[];\n}\n\nexport interface FileQueryResponse {\n files: FileGetResponse[];\n}\n\nexport interface SingleFilePreviewProps extends StackProps {\n file: ExtendFile;\n aspectRatio?: number;\n isLoading?: boolean;\n cropSize?: CropSize;\n onLoading?: (isLoading: boolean) => void;\n isUploading?: boolean;\n maxWidth?: number;\n maxHeight?: number;\n hoverAlt?: React.ReactNode;\n fill?: boolean;\n}\n\nexport interface LoadingPreviewImageProps\n extends React.ImgHTMLAttributes<HTMLImageElement> {\n aspectRatio: number;\n maxWidth?: number | string;\n maxHeight?: number | string;\n isLoading?: boolean;\n isUploading?: boolean;\n cropSize?: CropSize;\n onLoading?: (isLoading: boolean) => void;\n alt?: string;\n src?: string;\n loading: 'lazy';\n fill?: boolean;\n}\n\nexport interface PlaceholderProps extends StackProps {\n header?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface FileUploadProps {\n createFilesMutation: (params: FileCreateRequest) => {\n unwrap: () => Promise<FileCreateResponse>;\n };\n filesDetails: FileDetails[];\n}\n\nexport interface SingleFileUploadProps extends DropzoneOptions {\n onRemove?: (file?: ExtendFile) => void;\n onFileSelect?: (file: ExtendFile) => void;\n createFilesMutation: FileUploadProps['createFilesMutation'];\n fileDetails?: FileDetails;\n placeholderProps?: PlaceholderProps;\n placeholderAlt?: React.ReactNode;\n name?: string;\n label?: string;\n id?: string;\n disabled?: boolean;\n error?: string;\n helperText?: string | React.ReactNode;\n sx?: SxProps<Theme>;\n dropZoneSxProps?: SxProps<Theme>;\n uploading?: boolean;\n tabIndex?: number;\n maxSize?: number;\n}\n\nexport interface SingleImageUploadProps extends SingleFileUploadProps {\n aspectRatio?: number;\n enableCrop?: boolean;\n convertToWebp?: boolean;\n cropSize?: CropSize;\n maxWidth?: number;\n maxHeight?: number;\n compressionQuality?: number;\n maxCompressedWidth?: number;\n maxCompressedHeight?: number;\n hoverAlt?: React.ReactNode;\n fill?: boolean;\n}\n\nexport interface MultiFileUploadProps\n extends Omit<SingleFileUploadProps, 'filesDetails' | 'onFileSelect'> {\n onFilesSelect?: (files: ExtendFile[]) => void;\n onRemoveAll?: (files?: ExtendFile[]) => void;\n onReorder?: (oldIndex: number, newIndex: number, files: ExtendFile[]) => void;\n filesDetails?: FileDetails[];\n maxFiles?: number;\n thumbnail?: boolean;\n}\n\nexport interface MultiImageUploadProps extends MultiFileUploadProps {\n aspectRatio?: number;\n enableCrop?: boolean;\n convertToWebp?: boolean;\n cropSize?: CropSize;\n maxWidth?: number;\n maxHeight?: number;\n compressionQuality?: number;\n maxCompressedWidth?: number;\n maxCompressedHeight?: number;\n}\n\nexport interface SortableItemProps extends StackProps {\n onRemove?: (file?: ExtendFile) => void;\n file: ExtendFile;\n thumbnail?: boolean;\n disableDrag?: boolean;\n disableTransitions?: boolean;\n}\n\nexport interface MultiFilePreviewProps extends StackProps {\n onReorder?: (oldIndex: number, newIndex: number, files: ExtendFile[]) => void;\n onRemove?: (file?: ExtendFile) => void;\n files: ExtendFile[];\n lastNode?: React.ReactNode;\n firstNode?: React.ReactNode;\n thumbnail: boolean;\n slotProps?: {\n thumbnail?: Omit<FileThumbnailProps, 'file'>;\n };\n}\n\nexport interface StyledDropZoneProps extends StackProps {\n isDragActive: boolean;\n isError: boolean;\n disabled: boolean;\n}\n\nexport type StyledDropZonePropsType = Omit<\n DropzoneRootProps,\n 'children' | 'onDrop' | 'onError'\n> &\n StyledDropZoneProps;\n\nexport interface RejectionFilesProps extends StackProps {\n files: FileRejection[];\n}\n\nexport interface ThumbnailBadgeProps {\n onRemove?: (file?: ExtendFile) => void;\n file: ExtendFile;\n attributes: DraggableAttributes;\n listeners: DraggableSyntheticListeners;\n innerWidth: number;\n isDragging: boolean;\n disableDrag?: boolean;\n sx?: SxProps<Theme>;\n}\n\nexport interface DropZoneProps {\n sx?: SxProps;\n uploading?: boolean;\n id?: string;\n tabIndex?: number;\n getRootProps: () => DropzoneRootProps;\n getInputProps: () => DropzoneInputProps;\n isDragActive: boolean;\n isError: boolean;\n disabled?: boolean;\n dropZoneSxProps?: SxProps<Theme>;\n dropZoneContent?: React.ReactNode;\n children?: React.ReactNode;\n name?: string;\n}\n\nexport interface HelperTextProps {\n helperText?: string | React.ReactNode;\n disabled?: boolean;\n isError?: boolean;\n}\n\nexport interface UseDropzoneUploaderProps {\n onReorder?: (oldIndex: number, newIndex: number, files: ExtendFile[]) => void;\n onFileSelect?: (file: ExtendFile) => void;\n onFilesSelect?: (files: ExtendFile[]) => void;\n onRemove?: (file?: ExtendFile) => void;\n uploadFiles: (files: File[]) => Promise<ExtendFile[] | undefined>;\n filesPreview?: ExtendFile[];\n dropzoneOptions?: Omit<DropzoneOptions, 'onDrop' | 'onDropRejected'>;\n enableCrop?: boolean;\n customAspectRatio?: number;\n convertToWebp?: boolean;\n maxFiles?: number;\n cropSize?: { width: number; height: number } | number;\n compressionQuality?: number;\n maxCompressedWidth?: number;\n maxCompressedHeight?: number;\n}\n\nexport interface UseDropzoneUploaderReturn {\n file: ExtendFile | null;\n files: ExtendFile[];\n aspectRatio: number;\n dropzoneProps: {\n getRootProps: ReturnType<typeof useDropzone>['getRootProps'];\n getInputProps: ReturnType<typeof useDropzone>['getInputProps'];\n isDragActive: boolean;\n isDragReject: boolean;\n fileRejections: readonly FileRejection[];\n };\n cropState: {\n cropModalOpen: boolean;\n imagePreview: string;\n cropLoading: boolean;\n setCropModalOpen: React.Dispatch<React.SetStateAction<boolean>>;\n onCropInitialized: (croppedArea: Area, croppedAreaPixels: Area) => void;\n handleCropSave: () => Promise<void>;\n handleCropCancel: () => void;\n currentImageIndex: number;\n totalPendingImages: number;\n };\n setInitialFiles?: (files: ExtendFile[]) => void;\n handleRemove: (fileToRemove?: ExtendFile) => void;\n handleReorder: (\n oldIndex: number,\n newIndex: number,\n files: ExtendFile[],\n ) => void;\n}\n\nexport enum ContentType {\n APPLICATION_OCTET_STREAM = 'application/octet-stream',\n IMAGE_JPEG = 'image/jpeg',\n IMAGE_JPG = 'image/jpg',\n IMAGE_PNG = 'image/png',\n IMAGE_GIF = 'image/gif',\n IMAGE_WEBP = 'image/webp',\n IMAGE_SVG = 'image/svg+xml',\n IMAGE_BMP = 'image/bmp',\n IMAGE_TIFF = 'image/tiff',\n IMAGE_ICO = 'image/x-icon',\n IMAGE_AVIF = 'image/avif',\n APPLICATION_PDF = 'application/pdf',\n TEXT_PLAIN = 'text/plain',\n TEXT_CSV = 'text/csv',\n APPLICATION_RTF = 'application/rtf',\n APPLICATION_MSWORD = 'application/msword',\n APPLICATION_DOCX = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n APPLICATION_MSEXCEL = 'application/vnd.ms-excel',\n APPLICATION_XLSX = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n APPLICATION_MSPOWERPOINT = 'application/vnd.ms-powerpoint',\n APPLICATION_PPTX = 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n APPLICATION_ODT = 'application/vnd.oasis.opendocument.text',\n APPLICATION_ODS = 'application/vnd.oasis.opendocument.spreadsheet',\n APPLICATION_ODP = 'application/vnd.oasis.opendocument.presentation',\n APPLICATION_XML = 'application/xml',\n TEXT_XML = 'text/xml',\n TEXT_HTML = 'text/html',\n TEXT_CSS = 'text/css',\n APPLICATION_JSON = 'application/json',\n TEXT_JAVASCRIPT = 'text/javascript',\n APPLICATION_ZIP = 'application/zip',\n APPLICATION_GZIP = 'application/gzip',\n APPLICATION_RAR = 'application/vnd.rar',\n APPLICATION_7Z = 'application/x-7z-compressed',\n AUDIO_MPEG = 'audio/mpeg',\n AUDIO_WAV = 'audio/wav',\n AUDIO_OGG = 'audio/ogg',\n AUDIO_WEBM = 'audio/webm',\n AUDIO_AAC = 'audio/aac',\n VIDEO_MP4 = 'video/mp4',\n VIDEO_MPEG = 'video/mpeg',\n VIDEO_OGG = 'video/ogg',\n VIDEO_WEBM = 'video/webm',\n VIDEO_QUICKTIME = 'video/quicktime',\n}\n\nexport enum FileContentType {\n 'application/octet-stream' = 'APPLICATION_OCTET_STREAM',\n 'image/jpeg' = 'IMAGE_JPEG',\n 'image/jpg' = 'IMAGE_JPG',\n 'image/png' = 'IMAGE_PNG',\n 'image/gif' = 'IMAGE_GIF',\n 'image/webp' = 'IMAGE_WEBP',\n 'image/svg+xml' = 'IMAGE_SVG',\n 'image/bmp' = 'IMAGE_BMP',\n 'image/tiff' = 'IMAGE_TIFF',\n 'image/x-icon' = 'IMAGE_ICO',\n 'image/avif' = 'IMAGE_AVIF',\n 'application/pdf' = 'APPLICATION_PDF',\n 'text/plain' = 'TEXT_PLAIN',\n 'text/csv' = 'TEXT_CSV',\n 'application/rtf' = 'APPLICATION_RTF',\n 'application/msword' = 'APPLICATION_MSWORD',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' = 'APPLICATION_DOCX',\n 'application/vnd.ms-excel' = 'APPLICATION_MSEXCEL',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' = 'APPLICATION_XLSX',\n 'application/vnd.ms-powerpoint' = 'APPLICATION_MSPOWERPOINT',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation' = 'APPLICATION_PPTX',\n 'application/vnd.oasis.opendocument.text' = 'APPLICATION_ODT',\n 'application/vnd.oasis.opendocument.spreadsheet' = 'APPLICATION_ODS',\n 'application/vnd.oasis.opendocument.presentation' = 'APPLICATION_ODP',\n 'application/xml' = 'APPLICATION_XML',\n 'text/xml' = 'TEXT_XML',\n 'text/html' = 'TEXT_HTML',\n 'text/css' = 'TEXT_CSS',\n 'application/json' = 'APPLICATION_JSON',\n 'text/javascript' = 'TEXT_JAVASCRIPT',\n 'application/zip' = 'APPLICATION_ZIP',\n 'application/gzip' = 'APPLICATION_GZIP',\n 'application/vnd.rar' = 'APPLICATION_RAR',\n 'application/x-7z-compressed' = 'APPLICATION_7Z',\n 'audio/mpeg' = 'AUDIO_MPEG',\n 'audio/wav' = 'AUDIO_WAV',\n 'audio/ogg' = 'AUDIO_OGG',\n 'audio/webm' = 'AUDIO_WEBM',\n 'audio/aac' = 'AUDIO_AAC',\n 'video/mp4' = 'VIDEO_MP4',\n 'video/mpeg' = 'VIDEO_MPEG',\n 'video/ogg' = 'VIDEO_OGG',\n 'video/webm' = 'VIDEO_WEBM',\n 'video/quicktime' = 'VIDEO_QUICKTIME',\n}\n","import { memo } from 'react';\nimport Box from '@mui/material/Box';\nimport Stack from '@mui/material/Stack';\n\nimport DropZone from './components/DropZone';\nimport DropZonePlaceholder from './components/DropZonePlaceholder';\nimport HelperText from './components/HelperText';\nimport MultiFilePreview from './components/MultiFilePreview';\nimport useDropzoneUploader from './hooks/useDropzoneUploader';\nimport useFileUploadService from './hooks/useFileUploadService';\nimport { MultiFileUploadProps } from './props';\n\nconst MultipleFileUpload = ({\n onRemove,\n onReorder,\n onFilesSelect,\n createFilesMutation,\n filesDetails = [],\n id,\n disabled,\n error,\n helperText,\n thumbnail,\n dropZoneSxProps,\n uploading,\n tabIndex,\n maxFiles,\n placeholderAlt,\n placeholderProps,\n ...other\n}: MultiFileUploadProps) => {\n const { filesPreview, isUploadOrLoadingFiles, uploadErrorText, uploadFiles } =\n useFileUploadService({\n createFilesMutation,\n filesDetails,\n });\n\n const { files, dropzoneProps, handleRemove, handleReorder } =\n useDropzoneUploader({\n onFilesSelect,\n onReorder,\n onRemove,\n filesPreview,\n dropzoneOptions: {\n multiple: true,\n disabled,\n ...other,\n },\n maxFiles,\n uploadFiles,\n });\n\n const { getRootProps, getInputProps, isDragActive, isDragReject } =\n dropzoneProps;\n const hasFiles = !!files?.filter(file => !!file.id).length;\n const isError = isDragReject || !!error || !!uploadErrorText;\n\n return (\n <DropZone\n id={id}\n uploading={uploading || isUploadOrLoadingFiles}\n disabled={disabled}\n dropZoneSxProps={dropZoneSxProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n dropZoneContent={\n <>\n {placeholderAlt ? (\n <Stack>{placeholderAlt}</Stack>\n ) : (\n <DropZonePlaceholder\n header={placeholderProps?.header}\n description={placeholderProps?.description}\n />\n )}\n </>\n }\n >\n <HelperText\n disabled={disabled}\n helperText={helperText}\n isError={isError}\n />\n {error ? <HelperText helperText={error} isError /> : null}\n {uploadErrorText ? (\n <HelperText helperText={uploadErrorText} isError />\n ) : null}\n\n {hasFiles && (\n <Box sx={{ my: 3 }}>\n <MultiFilePreview\n files={files}\n thumbnail={!!thumbnail}\n onRemove={onRemove ? handleRemove : undefined}\n onReorder={onReorder ? handleReorder : undefined}\n />\n </Box>\n )}\n </DropZone>\n );\n};\n\nexport default memo(MultipleFileUpload);\n","import Box from '@mui/material/Box';\n\nimport FixedProgressBar from 'components/FixedProgressBar';\n\nimport { DropZoneProps } from '../props';\nimport { Container, StyledDropZone } from '../styles';\n\nconst DropZone = ({\n sx,\n id,\n name,\n tabIndex,\n uploading,\n getRootProps,\n getInputProps,\n isDragActive,\n isError,\n disabled,\n dropZoneSxProps,\n dropZoneContent,\n children,\n ...props\n}: DropZoneProps) => {\n return (\n <Container>\n {uploading && (\n <FixedProgressBar\n data-testid=\"uploading-progress-bar\"\n sx={{ zIndex: 1 }}\n />\n )}\n <Box sx={{ width: 1, position: 'relative', ...sx }}>\n <StyledDropZone\n {...getRootProps()}\n data-testid=\"drop-zone-styled-area\"\n isError={isError}\n isDragActive={isDragActive}\n disabled={!!disabled}\n sx={dropZoneSxProps}\n {...props}\n >\n <input {...getInputProps()} id={id} tabIndex={tabIndex} name={name} />\n\n {dropZoneContent}\n </StyledDropZone>\n {children}\n </Box>\n </Container>\n );\n};\n\nexport default DropZone;\n","import { memo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport UploadIllustration from 'assets/illustrations/UploadIllustration';\n\nimport { PlaceholderProps } from '../props';\n\nconst DropZonePlaceholder = ({\n header,\n description,\n sx,\n ...other\n}: PlaceholderProps) => {\n return (\n <Stack\n spacing={5}\n alignItems=\"center\"\n justifyContent=\"center\"\n direction={{\n xs: 'column',\n md: 'row',\n }}\n sx={{\n width: 1,\n textAlign: {\n xs: 'center',\n md: 'left',\n },\n ...sx,\n }}\n {...other}\n >\n <UploadIllustration sx={{ width: 220 }} />\n\n <div>\n <Typography gutterBottom variant=\"h5\">\n {header || 'Soltar ou selecionar arquivos'}\n </Typography>\n\n <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\n {description || (\n <>\n Solte os arquivos aqui ou clique\n <Typography\n variant=\"body2\"\n component=\"span\"\n sx={{\n mx: 0.5,\n color: 'primary.main',\n textDecoration: 'underline',\n }}\n >\n procurar\n </Typography>\n na sua máquina\n </>\n )}\n </Typography>\n </div>\n </Stack>\n );\n};\n\nexport default memo(DropZonePlaceholder);\n","import { memo, useMemo } from 'react';\nimport Box from '@mui/material/Box';\nimport Stack from '@mui/material/Stack';\n\nimport ImageCropModal from '../EasyCropModal';\n\nimport DropZone from './components/DropZone';\nimport DropZonePlaceholder from './components/DropZonePlaceholder';\nimport HelperText from './components/HelperText';\nimport MultiFilePreview from './components/MultiFilePreview';\nimport useDropzoneUploader from './hooks/useDropzoneUploader';\nimport useFileUploadService from './hooks/useFileUploadService';\nimport { MultiImageUploadProps } from './props';\n\nconst MultipleImageUpload = ({\n onRemove,\n onReorder,\n onFilesSelect,\n createFilesMutation,\n filesDetails = [],\n id,\n disabled,\n error,\n helperText,\n dropZoneSxProps,\n placeholderProps,\n placeholderAlt,\n uploading,\n tabIndex,\n maxFiles,\n aspectRatio: customAspectRatio,\n enableCrop = true,\n convertToWebp = true,\n cropSize,\n name,\n label: customLabel,\n ...other\n}: MultiImageUploadProps) => {\n const { filesPreview, isUploadOrLoadingFiles, uploadErrorText, uploadFiles } =\n useFileUploadService({\n createFilesMutation,\n filesDetails,\n });\n const isLoading = uploading || isUploadOrLoadingFiles;\n\n const {\n files,\n dropzoneProps,\n cropState,\n aspectRatio,\n handleRemove,\n handleReorder,\n } = useDropzoneUploader({\n onFilesSelect,\n onReorder,\n onRemove,\n filesPreview,\n dropzoneOptions: {\n accept: {\n 'image/*': ['.jpeg', '.jpg', '.png', '.gif', '.webp'],\n },\n multiple: true,\n disabled,\n ...other,\n },\n enableCrop,\n customAspectRatio,\n convertToWebp,\n maxFiles,\n cropSize,\n uploadFiles,\n });\n\n const { getRootProps, getInputProps, isDragActive, isDragReject } =\n dropzoneProps;\n\n const {\n cropModalOpen,\n imagePreview,\n cropLoading,\n onCropInitialized,\n handleCropSave,\n handleCropCancel,\n currentImageIndex,\n totalPendingImages,\n } = cropState;\n\n const hasFiles = !!files?.filter(file => !!file.id).length;\n const isError = isDragReject || !!error || !!uploadErrorText;\n\n const label = useMemo(() => {\n const labelText = customLabel ?? 'Ajustar Imagem';\n const labelProcessing =\n totalPendingImages > 1 || currentImageIndex > 1\n ? ` (${currentImageIndex} de ${totalPendingImages})`\n : '';\n return `${labelText}${labelProcessing}`;\n }, [customLabel, totalPendingImages, currentImageIndex]);\n\n return (\n <DropZone\n id={id}\n name={name}\n uploading={isLoading}\n disabled={disabled}\n dropZoneSxProps={dropZoneSxProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n dropZoneContent={\n <>\n {placeholderAlt ? (\n <Stack>{placeholderAlt}</Stack>\n ) : (\n <DropZonePlaceholder\n header={placeholderProps?.header}\n description={placeholderProps?.description}\n />\n )}\n </>\n }\n >\n <HelperText\n disabled={disabled}\n helperText={helperText}\n isError={isError}\n />\n {error ? <HelperText helperText={error} isError /> : null}\n {uploadErrorText ? (\n <HelperText helperText={uploadErrorText} isError />\n ) : null}\n\n {hasFiles && (\n <Box sx={{ my: 3, ml: 0.5 }}>\n <MultiFilePreview\n files={files}\n thumbnail={true}\n onRemove={handleRemove}\n onReorder={onReorder ? handleReorder : undefined}\n />\n </Box>\n )}\n <ImageCropModal\n open={cropModalOpen}\n onClose={handleCropCancel}\n label={label}\n imageSrc={imagePreview}\n aspectRatio={aspectRatio}\n onInitialized={onCropInitialized}\n onSave={handleCropSave}\n loading={cropLoading}\n cropSize={cropSize}\n />\n </DropZone>\n );\n};\n\nexport default memo(MultipleImageUpload);\n","import { memo, useCallback } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { m } from 'framer-motion';\n\nimport { varFade } from 'components/animate';\nimport { FileThumbnail, useFileUploadService } from 'components/FileUpload';\nimport Icon from 'components/Icon';\nimport Tooltip from 'components/Tooltip';\nimport { fData } from 'utils/formatNumber';\n\nimport DropZone from './components/DropZone';\nimport DropZonePlaceholder from './components/DropZonePlaceholder';\nimport HelperText from './components/HelperText';\nimport useDropzoneUploader from './hooks/useDropzoneUploader';\nimport { SingleFileUploadProps } from './props';\nimport { CloseIconButton } from './styles';\n\nconst SingleFileUpload = ({\n onFileSelect,\n onRemove,\n createFilesMutation,\n fileDetails,\n id,\n disabled,\n error,\n helperText,\n sx,\n dropZoneSxProps,\n uploading,\n tabIndex,\n ...other\n}: SingleFileUploadProps) => {\n const { filesPreview, isUploadOrLoadingFiles, uploadErrorText, uploadFiles } =\n useFileUploadService({\n createFilesMutation,\n filesDetails: fileDetails ? [fileDetails] : [],\n });\n const isLoading = isUploadOrLoadingFiles || uploading;\n const {\n file,\n dropzoneProps,\n handleRemove: onRemoveFile,\n } = useDropzoneUploader({\n uploadFiles,\n onFileSelect,\n onRemove,\n filesPreview,\n dropzoneOptions: {\n multiple: false,\n disabled,\n ...other,\n },\n });\n\n const { getRootProps, getInputProps, isDragActive, isDragReject } =\n dropzoneProps;\n\n const handleRemove = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onRemoveFile(file || undefined);\n },\n [file, onRemoveFile],\n );\n\n const hasFile = !!file;\n const isNotFormatFile = typeof file === 'string';\n const isError = isDragReject || !!error || !!uploadErrorText;\n\n return (\n <DropZone\n id={id}\n uploading={isLoading}\n disabled={disabled}\n dropZoneSxProps={dropZoneSxProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n dropZoneContent={\n <>\n {!hasFile && <DropZonePlaceholder />}\n\n {hasFile && (\n <Stack\n component={m.div}\n {...varFade().inUp}\n spacing={2}\n direction=\"row\"\n alignItems=\"center\"\n sx={{\n my: 1,\n px: 1,\n py: 0.75,\n borderRadius: 0.75,\n border: theme => `solid 1px ${theme.palette.divider}`,\n ...sx,\n }}\n >\n <FileThumbnail file={file} />\n\n <Stack flexGrow={1} sx={{ minWidth: 0 }}>\n <Typography variant=\"subtitle2\" noWrap>\n {isNotFormatFile ? file : file.name}\n </Typography>\n\n <Typography variant=\"caption\" sx={{ color: 'text.secondary' }}>\n {isNotFormatFile ? '' : fData(file.size)}\n </Typography>\n </Stack>\n\n {onRemove && (\n <Tooltip title=\"Remover arquivo\">\n <CloseIconButton\n edge=\"end\"\n size=\"small\"\n disabled={disabled}\n aria-label=\"Remover arquivo\"\n onClick={handleRemove}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </CloseIconButton>\n </Tooltip>\n )}\n </Stack>\n )}\n </>\n }\n >\n <HelperText\n disabled={disabled}\n helperText={helperText}\n isError={isError}\n />\n {error ? <HelperText helperText={error} isError /> : null}\n {uploadErrorText ? (\n <HelperText helperText={uploadErrorText} isError />\n ) : null}\n </DropZone>\n );\n};\n\nexport default memo(SingleFileUpload);\n","import { CSSProperties, memo, useCallback, useEffect, useState } from 'react';\nimport Stack from '@mui/material/Stack';\n\nimport ImageCropModal from 'components/EasyCropModal';\nimport FixedProgressBar from 'components/FixedProgressBar';\nimport Icon from 'components/Icon';\n\nimport DropZone from './components/DropZone';\nimport DropZonePlaceholder from './components/DropZonePlaceholder';\nimport HelperText from './components/HelperText';\nimport SingleFilePreview from './components/SingleFilePreview';\nimport useDropzoneUploader from './hooks/useDropzoneUploader';\nimport useFileUploadService from './hooks/useFileUploadService';\nimport { SingleImageUploadProps } from './props';\nimport { Container, DeleteButton } from './styles';\n\nconst SingleImageUpload = ({\n onRemove,\n onFileSelect,\n createFilesMutation,\n fileDetails,\n id,\n disabled,\n error,\n helperText,\n dropZoneSxProps,\n placeholderProps,\n placeholderAlt,\n hoverAlt,\n uploading,\n tabIndex,\n aspectRatio: customAspectRatio,\n enableCrop = true,\n convertToWebp = true,\n name,\n label,\n cropSize,\n sx,\n maxWidth,\n maxHeight,\n compressionQuality = 0.8,\n maxCompressedWidth,\n maxCompressedHeight,\n fill,\n ...other\n}: SingleImageUploadProps) => {\n const { filesPreview, isUploadOrLoadingFiles, uploadErrorText, uploadFiles } =\n useFileUploadService({\n createFilesMutation,\n filesDetails: fileDetails ? [fileDetails] : [],\n });\n\n const [imagePreviewLoading, setImagePreviewLoading] = useState(false);\n const {\n file,\n dropzoneProps,\n cropState,\n handleRemove: onRemoveFile,\n aspectRatio,\n } = useDropzoneUploader({\n onFileSelect,\n onRemove,\n dropzoneOptions: {\n accept: {\n 'image/*': ['.jpeg', '.jpg', '.png', '.gif', '.webp'],\n },\n multiple: false,\n disabled,\n ...other,\n },\n filesPreview,\n enableCrop,\n customAspectRatio,\n convertToWebp,\n cropSize,\n uploadFiles,\n compressionQuality,\n maxCompressedWidth,\n maxCompressedHeight,\n });\n\n const { getRootProps, getInputProps, isDragActive, isDragReject } =\n dropzoneProps;\n\n const {\n cropModalOpen,\n imagePreview,\n cropLoading,\n onCropInitialized,\n handleCropSave,\n handleCropCancel,\n } = cropState;\n\n const handleRemove = useCallback(() => {\n onRemoveFile(file || undefined);\n }, [file, onRemoveFile]);\n\n const hasFile = !!file;\n const isError = isDragReject || !!error || !!uploadErrorText;\n const isLoading = uploading || isUploadOrLoadingFiles;\n\n const hidePlaceholder = hasFile ? { opacity: 0 } : { opacity: 1 };\n const dropZoneSxWidth = (dropZoneSxProps as CSSProperties)?.width;\n\n useEffect(() => {\n if (!hasFile) setImagePreviewLoading(false);\n }, [hasFile]);\n\n return (\n <Container\n sx={{\n ...sx,\n ...(dropZoneSxWidth && { width: dropZoneSxWidth }),\n }}\n >\n {(isLoading || imagePreviewLoading) && <FixedProgressBar />}\n <DropZone\n id={id}\n uploading={isLoading}\n disabled={disabled}\n dropZoneSxProps={dropZoneSxProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n name={name}\n dropZoneContent={\n <>\n {placeholderAlt ? (\n <Stack sx={hidePlaceholder}>{placeholderAlt}</Stack>\n ) : (\n <DropZonePlaceholder\n sx={hidePlaceholder}\n header={placeholderProps?.title}\n description={placeholderProps?.description}\n />\n )}\n\n {hasFile && (\n <SingleFilePreview\n file={file}\n cropSize={cropSize}\n isLoading={imagePreviewLoading}\n isUploading={isLoading}\n onLoading={setImagePreviewLoading}\n aspectRatio={aspectRatio}\n maxWidth={maxWidth}\n maxHeight={maxHeight}\n hoverAlt={hoverAlt}\n fill={fill}\n />\n )}\n </>\n }\n >\n <HelperText\n disabled={disabled}\n helperText={helperText}\n isError={isError}\n />\n {error ? <HelperText helperText={error} isError /> : null}\n {uploadErrorText ? (\n <HelperText helperText={uploadErrorText} isError />\n ) : null}\n\n {hasFile && onRemove && (\n <DeleteButton\n size=\"small\"\n onClick={handleRemove}\n disabled={disabled}\n label=\"Remover arquivo\"\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </DeleteButton>\n )}\n\n <ImageCropModal\n open={cropModalOpen}\n onClose={handleCropCancel}\n label={label ?? 'Ajustar Imagem'}\n imageSrc={imagePreview}\n aspectRatio={aspectRatio}\n onInitialized={onCropInitialized}\n onSave={handleCropSave}\n loading={cropLoading}\n cropSize={cropSize}\n />\n </DropZone>\n </Container>\n );\n};\n\nexport default memo(SingleImageUpload);\n","import { memo, useCallback, useEffect, useRef, useState } from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport ImageCropModal from 'components/EasyCropModal';\nimport Icon from 'components/Icon';\n\nimport HelperText from './components/HelperText';\nimport useDropzoneUploader from './hooks/useDropzoneUploader';\nimport useFileUploadService from './hooks/useFileUploadService';\nimport { SingleImageUploadProps } from './props';\nimport {\n AvatarContainer,\n ImagePreview,\n PlaceholderLoading,\n UploadAvatarBox,\n UploadPlaceholder,\n} from './styles';\n\nconst UploadAvatar = ({\n onRemove,\n onFileSelect,\n createFilesMutation,\n fileDetails,\n disabled,\n label,\n id,\n tabIndex,\n error,\n helperText,\n sx,\n name,\n maxSize,\n uploading,\n aspectRatio = 1,\n enableCrop = true,\n convertToWebp = true,\n cropSize,\n ...other\n}: SingleImageUploadProps) => {\n const [imagePreviewLoading, setImagePreviewLoading] = useState(false);\n const { filesPreview, isUploadOrLoadingFiles, uploadErrorText, uploadFiles } =\n useFileUploadService({\n createFilesMutation,\n filesDetails: fileDetails ? [fileDetails] : [],\n });\n\n const {\n file,\n dropzoneProps,\n cropState,\n handleRemove: onRemoveFile,\n } = useDropzoneUploader({\n filesPreview,\n onFileSelect,\n onRemove,\n dropzoneOptions: {\n accept: {\n 'image/*': ['.jpeg', '.jpg', '.png', '.gif', '.webp'],\n },\n multiple: false,\n disabled,\n maxSize,\n ...other,\n },\n enableCrop,\n customAspectRatio: aspectRatio,\n convertToWebp,\n cropSize,\n uploadFiles,\n });\n\n const { getRootProps, getInputProps, isDragActive, isDragReject } =\n dropzoneProps;\n const {\n cropModalOpen,\n imagePreview,\n cropLoading,\n onCropInitialized,\n handleCropSave,\n handleCropCancel,\n } = cropState;\n\n const isError = isDragReject || !!error || !!uploadErrorText;\n const isLoading = imagePreviewLoading || isUploadOrLoadingFiles || uploading;\n const canRemove = !!onRemove;\n\n const imgSrc = useRef(fileDetails?.url || '');\n const loadedFileKey = useRef<string | number | undefined>();\n\n useEffect(() => {\n if (!file) {\n imgSrc.current = '';\n loadedFileKey.current = undefined;\n return;\n }\n\n if (loadedFileKey.current === file.id) return;\n loadedFileKey.current = file.id;\n setImagePreviewLoading(true);\n const objectUrl = URL.createObjectURL(file);\n imgSrc.current = objectUrl;\n\n return () => {\n URL.revokeObjectURL(objectUrl);\n };\n }, [file]);\n\n const handleImageLoad = () => {\n setImagePreviewLoading(false);\n };\n\n const handleClick = useCallback(() => {\n if (canRemove && file) {\n return () => onRemoveFile(file);\n }\n\n return getRootProps().onClick;\n }, [canRemove, file, getRootProps, onRemoveFile]);\n\n return (\n <>\n <Stack sx={{ alignItems: 'center' }}>\n <UploadAvatarBox\n sx={sx}\n isError={isError}\n isDragActive={isDragActive}\n hasFile={!!file}\n {...getRootProps()}\n onClick={handleClick()}\n >\n <AvatarContainer>\n {isLoading && (\n <PlaceholderLoading>\n <CircularProgress size={135} thickness={2} color=\"primary\" />\n </PlaceholderLoading>\n )}\n\n {file && (\n <ImagePreview\n alt=\"Avatar Preview\"\n src={imgSrc.current}\n onLoad={handleImageLoad}\n {...(isLoading && {\n sx: {\n filter: 'blur(5px) !important',\n scale: 1.2,\n opacity: 0.7,\n },\n })}\n />\n )}\n\n {!file && !isLoading && (\n <UploadPlaceholder isError={isError} hasFile={false}>\n <Icon icon=\"ADD_IMAGE\" width={32} />\n\n <Typography\n variant=\"caption\"\n textAlign=\"center\"\n sx={{ color: isError ? 'error.main' : 'text.disabled' }}\n >\n Adicionar foto\n </Typography>\n </UploadPlaceholder>\n )}\n\n {file && !isLoading && (\n <UploadPlaceholder isError={isError} hasFile={true}>\n <Icon\n icon={!canRemove ? 'ADD_IMAGE' : 'DELETE_MARK_BUTTON_02'}\n width={32}\n />\n\n <Typography\n variant=\"caption\"\n textAlign=\"center\"\n sx={{ color: isError ? 'error.main' : 'common.white' }}\n >\n {!canRemove ? 'Alterar foto' : 'Remover foto'}\n </Typography>\n </UploadPlaceholder>\n )}\n </AvatarContainer>\n <input name={name} id={id} tabIndex={tabIndex} {...getInputProps()} />\n </UploadAvatarBox>\n\n <Stack sx={{ alignItems: 'center', mt: -0.5 }}>\n <HelperText\n helperText={helperText}\n disabled={disabled}\n isError={isError}\n />\n </Stack>\n {uploadErrorText ? (\n <HelperText helperText={uploadErrorText} isError />\n ) : null}\n {error ? <HelperText helperText={error} isError /> : null}\n </Stack>\n\n {cropModalOpen && imagePreview && (\n <ImageCropModal\n open={cropModalOpen}\n onClose={handleCropCancel}\n label={label ?? 'Ajustar Imagem'}\n imageSrc={imagePreview}\n aspectRatio={aspectRatio}\n onInitialized={onCropInitialized}\n onSave={handleCropSave}\n loading={cropLoading}\n cropSize={cropSize}\n cropShape=\"round\"\n />\n )}\n </>\n );\n};\n\nexport default memo(UploadAvatar);\n","import { memo } from 'react';\nimport { useDropzone } from 'react-dropzone';\n\nimport { SingleFileUploadProps } from './props';\nimport { BoxUpload } from './styles';\n\nconst UploadBox = ({\n error,\n name,\n disabled,\n sx,\n ...other\n}: SingleFileUploadProps) => {\n const { getRootProps, getInputProps, isDragActive, isDragReject } =\n useDropzone({\n disabled,\n ...other,\n });\n\n const hasError = isDragReject || error;\n\n return (\n <BoxUpload\n {...getRootProps()}\n isDragActive={isDragActive}\n hasError={!!hasError}\n disabled={!!disabled}\n sx={sx}\n data-testid=\"upload-box\"\n >\n <input name={name} {...getInputProps()} />\n Selecionar arquivo\n </BoxUpload>\n );\n};\n\nexport default memo(UploadBox);\n"]}
@@ -1,10 +1,10 @@
1
- import { p, f } from './chunk-3JXE4T4W.js';
2
- import { a as a$3 } from './chunk-2IKZ2Z55.js';
3
- import { e } from './chunk-ANAHA3L6.js';
4
- import { a } from './chunk-UAWK45GJ.js';
5
- import { a as a$1 } from './chunk-X24QANPC.js';
6
- import { a as a$2 } from './chunk-KFZEM7KS.js';
7
- import { k } from './chunk-X3NSWXUJ.js';
1
+ import { p, f } from './chunk-SA2BESEB.js';
2
+ import { a as a$3 } from './chunk-SLDN2VKA.js';
3
+ import { e } from './chunk-OF6623HG.js';
4
+ import { a } from './chunk-24TEQF5G.js';
5
+ import { a as a$1 } from './chunk-SBMEL2IJ.js';
6
+ import { a as a$2 } from './chunk-62UHO7QG.js';
7
+ import { k } from './chunk-GLRLKFPS.js';
8
8
  import { useState, useEffect } from 'react';
9
9
  import { useDropzone } from 'react-dropzone';
10
10
  import I from '@mui/material/Box';
@@ -19,3 +19,5 @@ Migra\xE7\xE3o: import { UploadAvatar } from "@zydon/common/components/FileUploa
19
19
  O novo UploadAvatar oferece melhor gerenciamento de upload e integra\xE7\xE3o com APIs.`);function B({sx:i,error:n,file:e,disabled:m,uploading:u,helperText:s,...y}){let{getRootProps:C,getInputProps:b,isDragActive:f,isDragReject:g,fileRejections:w}=useDropzone({multiple:!1,disabled:m,accept:{"image/*":[]},...y}),r=!!e,p$1=g||!!n,[P,v]=useState();useEffect(()=>{typeof e=="string"?v(e):e instanceof File&&v(URL.createObjectURL(e));},[e]);let R=u&&jsx(q,{size:30,color:"primary"}),A=r&&jsx("img",{alt:"avatar",src:P,style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover"}}),U=jsxs(I,{className:"upload-placeholder",sx:{top:0,gap:1,left:0,width:1,height:1,zIndex:9,display:"flex",borderRadius:"50%",position:"absolute",alignItems:"center",color:"text.disabled",flexDirection:"column",justifyContent:"center",bgcolor:o=>k(o.vars.palette.grey["500Channel"],.08),transition:o=>o.transitions.create(["opacity"],{duration:o.transitions.duration.shorter}),"&:hover":{opacity:.72},...p$1&&{color:"error.main",bgcolor:o=>k(o.vars.palette.error.mainChannel,.08)},...r&&{zIndex:9,opacity:0,color:"common.white",bgcolor:o=>k(o.vars.palette.grey["900Channel"],.64)}},children:[jsx(a,{icon:"ADD_IMAGE",width:32}),jsx(G,{variant:"caption",children:r?"Atualizar foto":"Enviar foto"})]}),x=jsxs(I,{sx:{width:1,height:1,overflow:"hidden",borderRadius:"50%",position:"relative"},children:[R,A,U]});return jsxs(Fragment,{children:[jsxs(I,{...C(),sx:{p:1,m:"auto",width:144,height:144,cursor:"pointer",overflow:"hidden",borderRadius:"50%",border:o=>`1px dashed ${o.palette.divider}`,...f&&{opacity:.72},...m&&{opacity:.48,pointerEvents:"none"},...p$1&&{borderColor:"error.main"},...r&&{...p$1&&{bgcolor:o=>k(o.vars.palette.error.mainChannel,.08)},"&:hover .upload-placeholder":{opacity:1}},...i},children:[jsx("input",{...b()}),x]}),s&&s,jsx(p,{files:w})]})}var K=({onFileCropped:i,onImageUploaded:n,onCancel:e$1,aspect:m,label:u,image:s="",uploading:y,file:C,tabIndex:b,maxSize:f$1,onDropRejected:g,...w})=>{let{id:r,setCropModalOpen:p,handleRemove:P,cropModalOpen:v,cancelChanges:R,saveChanges:A,previewImage:U,setCropper:x,preview:o,closePreviewImage:k,saving:N}=a$1({onFileCropped:i,onImageUploaded:n,onCancel:e$1}),{error:W}=a$2();return jsxs(Fragment,{children:[jsxs(J,{position:"relative",alignItems:"center",justifyContent:"center",children:[y&&jsx(f,{}),jsx(B,{...w,maxSize:f$1,id:r,file:C,onDrop:t=>{if(t.length>0){p(!0);let l=new FileReader;l.addEventListener("load",()=>{let D=l.result?.toString()||"";n(D),i(t[0]);}),l.readAsDataURL(t[0]);}},image:s,tabIndex:b,onDropRejected:(t,l)=>{let D=t[0]?.errors[0]?.code;n(void 0),i(void 0),W(D==="file-too-large"?`Imagem n\xE3o pode ser maior que ${e(f$1)}`:"Erro ao enviar imagem"),g&&g(t,l);}})]}),jsx(a$3,{id:r,open:v,onClose:R,label:u,aspectRatio:m,imageSrc:s,onRemove:P,onSave:A,onPreview:U,onInitialized:x,loading:N}),jsx(H,{open:!!o,onClose:k,scroll:"body",PaperProps:{sx:{p:2}},children:o&&jsx("img",{src:o,alt:"Preview"})})]})},uo=K;
20
20
 
21
21
  export { B as a, uo as b };
22
+ //# sourceMappingURL=out.js.map
23
+ //# sourceMappingURL=chunk-SR36OFDX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/upload/upload-avatar.tsx","../src/components/upload/upload-avatar-with-crop.tsx"],"names":["useEffect","useState","useDropzone","Box","CircularProgress","Typography","Fragment","jsx","jsxs","UploadAvatar","sx","error","value","disabled","uploading","helperText","other","getRootProps","getInputProps","isDragActive","isDragReject","fileRejections","hasFile","hasError","preview","setPreview","renderLoading","renderPreview","renderPlaceholder","theme","varAlpha","Icon_default","renderContent","RejectionFiles","Dialog","Stack","UploadAvatarWithCrop","onFileCropped","onImageUploaded","onCancel","aspect","label","image","file","tabIndex","maxSize","onDropRejected","id","setCropModalOpen","handleRemove","cropModalOpen","cancelChanges","saveChanges","previewImage","setCropper","closePreviewImage","saving","useUploadImage_default","useSnackbar_default","AvatarLoading","acceptedFiles","reader","src","event","errorCode","fData","ImageCropModal_default","upload_avatar_with_crop_default"],"mappings":"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","sourcesContent":["/* eslint-disable react/function-component-definition */\nimport { useEffect, useState } from 'react';\nimport { FileRejection, useDropzone } from 'react-dropzone';\nimport Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Typography from '@mui/material/Typography';\n\nimport Icon from 'components/Icon';\nimport { varAlpha } from 'theme/styles';\nimport { UploadProps } from 'types/upload';\n\nimport { RejectionFiles } from './components/rejection-files';\n\nif (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '⚠️ DEPRECATED: UploadAvatar está obsoleto. Use UploadAvatar do @zydon/common em seu lugar.\\n' +\n 'Migração: import { UploadAvatar } from \"@zydon/common/components/FileUpload\";\\n' +\n 'O novo UploadAvatar oferece melhor gerenciamento de upload e integração com APIs.',\n );\n}\n\nexport function UploadAvatar({\n sx,\n error,\n file: value,\n disabled,\n uploading,\n helperText,\n ...other\n}: UploadProps) {\n const {\n getRootProps,\n getInputProps,\n isDragActive,\n isDragReject,\n fileRejections,\n } = useDropzone({\n multiple: false,\n disabled,\n accept: { 'image/*': [] },\n ...other,\n });\n\n const hasFile = !!value;\n\n const hasError = isDragReject || !!error;\n\n const [preview, setPreview] = useState<string>();\n\n useEffect(() => {\n if (typeof value === 'string') {\n setPreview(value);\n } else if (value instanceof File) {\n setPreview(URL.createObjectURL(value));\n }\n }, [value]);\n\n const renderLoading = uploading && (\n <CircularProgress size={30} color=\"primary\" />\n );\n\n const renderPreview = hasFile && (\n <img\n alt=\"avatar\"\n src={preview}\n style={{\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n );\n\n const renderPlaceholder = (\n <Box\n className=\"upload-placeholder\"\n sx={{\n top: 0,\n gap: 1,\n left: 0,\n width: 1,\n height: 1,\n zIndex: 9,\n display: 'flex',\n borderRadius: '50%',\n position: 'absolute',\n alignItems: 'center',\n color: 'text.disabled',\n flexDirection: 'column',\n justifyContent: 'center',\n bgcolor: theme => varAlpha(theme.vars.palette.grey['500Channel'], 0.08),\n transition: theme =>\n theme.transitions.create(['opacity'], {\n duration: theme.transitions.duration.shorter,\n }),\n '&:hover': { opacity: 0.72 },\n ...(hasError && {\n color: 'error.main',\n bgcolor: theme =>\n varAlpha(theme.vars.palette.error.mainChannel, 0.08),\n }),\n ...(hasFile && {\n zIndex: 9,\n opacity: 0,\n color: 'common.white',\n bgcolor: theme =>\n varAlpha(theme.vars.palette.grey['900Channel'], 0.64),\n }),\n }}\n >\n <Icon icon=\"ADD_IMAGE\" width={32} />\n\n <Typography variant=\"caption\">\n {hasFile ? 'Atualizar foto' : 'Enviar foto'}\n </Typography>\n </Box>\n );\n\n const renderContent = (\n <Box\n sx={{\n width: 1,\n height: 1,\n overflow: 'hidden',\n borderRadius: '50%',\n position: 'relative',\n }}\n >\n {renderLoading}\n {renderPreview}\n {renderPlaceholder}\n </Box>\n );\n\n return (\n <>\n <Box\n {...getRootProps()}\n sx={{\n p: 1,\n m: 'auto',\n width: 144,\n height: 144,\n cursor: 'pointer',\n overflow: 'hidden',\n borderRadius: '50%',\n border: theme => `1px dashed ${theme.palette.divider}`,\n ...(isDragActive && { opacity: 0.72 }),\n ...(disabled && { opacity: 0.48, pointerEvents: 'none' }),\n ...(hasError && { borderColor: 'error.main' }),\n ...(hasFile && {\n ...(hasError && {\n bgcolor: theme =>\n varAlpha(theme.vars.palette.error.mainChannel, 0.08),\n }),\n '&:hover .upload-placeholder': { opacity: 1 },\n }),\n ...sx,\n }}\n >\n <input {...getInputProps()} />\n\n {renderContent}\n </Box>\n\n {helperText && helperText}\n\n <RejectionFiles files={fileRejections as FileRejection[]} />\n </>\n );\n}\n","import Dialog from '@mui/material/Dialog';\nimport Stack from '@mui/material/Stack';\n\nimport useSnackbar from 'hooks/useSnackbar';\nimport useUploadImage from 'hooks/useUploadImage';\nimport { fData } from 'utils/formatNumber';\n\nimport ImageCropModal from '../ImageCropModal';\n\nimport { AvatarLoading } from './styles';\nimport { UploadWithCropProps } from './types';\nimport { UploadAvatar } from './upload-avatar';\n\nconst UploadAvatarWithCrop = ({\n onFileCropped,\n onImageUploaded,\n onCancel,\n aspect,\n label,\n image = '',\n uploading,\n file,\n tabIndex,\n maxSize,\n onDropRejected,\n ...other\n}: UploadWithCropProps) => {\n const {\n id,\n setCropModalOpen,\n handleRemove,\n cropModalOpen,\n cancelChanges,\n saveChanges,\n previewImage,\n setCropper,\n preview,\n closePreviewImage,\n saving,\n } = useUploadImage({ onFileCropped, onImageUploaded, onCancel });\n const { error } = useSnackbar();\n\n return (\n <>\n <Stack position=\"relative\" alignItems=\"center\" justifyContent=\"center\">\n {uploading && <AvatarLoading />}\n\n <UploadAvatar\n {...other}\n maxSize={maxSize}\n id={id}\n file={file}\n onDrop={acceptedFiles => {\n if (acceptedFiles.length > 0) {\n setCropModalOpen(true);\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n const src = reader.result?.toString() || '';\n\n onImageUploaded(src);\n onFileCropped(acceptedFiles[0]);\n });\n\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }}\n image={image}\n tabIndex={tabIndex}\n onDropRejected={(fileRejections, event) => {\n const errorCode = fileRejections[0]?.errors[0]?.code;\n onImageUploaded(undefined);\n onFileCropped(undefined);\n\n error(\n errorCode === 'file-too-large'\n ? `Imagem não pode ser maior que ${fData(maxSize)}`\n : 'Erro ao enviar imagem',\n );\n\n if (onDropRejected) onDropRejected(fileRejections, event);\n }}\n />\n </Stack>\n\n <ImageCropModal\n id={id}\n open={cropModalOpen}\n onClose={cancelChanges}\n label={label}\n aspectRatio={aspect}\n imageSrc={image}\n onRemove={handleRemove}\n onSave={saveChanges}\n onPreview={previewImage}\n onInitialized={setCropper}\n loading={saving}\n />\n\n <Dialog\n open={!!preview}\n onClose={closePreviewImage}\n scroll=\"body\"\n PaperProps={{\n sx: {\n p: 2,\n },\n }}\n >\n {preview && <img src={preview} alt=\"Preview\" />}\n </Dialog>\n </>\n );\n};\n\nexport default UploadAvatarWithCrop;\n"]}
@@ -4,3 +4,5 @@ import { toast } from 'sonner';
4
4
  var c=(s,t)=>{try{return "message"in s?s.message||t:"data"in s&&s.data&&typeof s.data=="object"&&"message"in s.data&&typeof s.data.message=="string"?s.data.message:t}catch{return t}},o=()=>{let s=useCallback(a=>{toast.success(a);},[]),t=useCallback((a,i)=>{toast.error(c(a,i));},[]);return {showSuccessMessage:s,showErrorMessage:t}},m=o;
5
5
 
6
6
  export { m as a };
7
+ //# sourceMappingURL=out.js.map
8
+ //# sourceMappingURL=chunk-SVX7EWV4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useApiMessage.ts"],"names":["useCallback","toast","apiErrorMessage","error","defaultMessage","useApiMessage","showSuccessMessage","message","showErrorMessage","useApiMessage_default"],"mappings":"AACA,OAAS,eAAAA,MAAmB,QAC5B,OAAS,SAAAC,MAAa,SAEtB,IAAMC,EAAkB,CAACC,EAAYC,IAA2B,CAC9D,GAAI,CACF,MAAI,YAAaD,EAAcA,EAAM,SAAWC,EAE5C,SAAUD,GAEVA,EAAM,MACN,OAAOA,EAAM,MAAS,UACtB,YAAaA,EAAM,MACnB,OAAOA,EAAM,KAAK,SAAY,SAEvBA,EAAM,KAAK,QAMfC,CACT,MAAE,CACA,OAAOA,CACT,CACF,EAEMC,EAAgB,IAAM,CAC1B,IAAMC,EAAqBN,EAAaO,GAAoB,CAC1DN,EAAM,QAAQM,CAAO,CACvB,EAAG,CAAC,CAAC,EAECC,EAAmBR,EAAY,CAACG,EAAYI,IAAoB,CACpEN,EAAM,MAAMC,EAAgBC,EAAOI,CAAO,CAAC,CAC7C,EAAG,CAAC,CAAC,EAEL,MAAO,CACL,mBAAAD,EACA,iBAAAE,CACF,CACF,EAEOC,EAAQJ","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback } from 'react';\nimport { toast } from 'sonner';\n\nconst apiErrorMessage = (error: any, defaultMessage: string) => {\n try {\n if ('message' in error) return error.message || defaultMessage;\n\n if ('data' in error) {\n if (\n error.data &&\n typeof error.data === 'object' &&\n 'message' in error.data &&\n typeof error.data.message === 'string'\n ) {\n return error.data.message;\n }\n\n return defaultMessage;\n }\n\n return defaultMessage;\n } catch {\n return defaultMessage;\n }\n};\n\nconst useApiMessage = () => {\n const showSuccessMessage = useCallback((message: string) => {\n toast.success(message);\n }, []);\n\n const showErrorMessage = useCallback((error: any, message: string) => {\n toast.error(apiErrorMessage(error, message));\n }, []);\n\n return {\n showSuccessMessage,\n showErrorMessage,\n };\n};\n\nexport default useApiMessage;\n"]}
@@ -1,3 +1,5 @@
1
1
  var o=(n=>(n.LOG="LOG",n.WARN="WARN",n.ERROR="ERROR",n))(o||{}),e=(n=>(n.DEVELOPMENT="development",n.HOMOLOGATION="homologation",n.PRODUCTION="production",n))(e||{});
2
2
 
3
3
  export { o as a, e as b };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=chunk-TVKBRJHF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/consoleLog.ts"],"names":["ConsoleType","Environment"],"mappings":"AAAO,IAAKA,OACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,MAAQ,QAHEA,OAAA,IAMAC,OACVA,EAAA,YAAc,cACdA,EAAA,aAAe,eACfA,EAAA,WAAa,aAHHA,OAAA","sourcesContent":["export enum ConsoleType {\n LOG = 'LOG',\n WARN = 'WARN',\n ERROR = 'ERROR',\n}\n\nexport enum Environment {\n DEVELOPMENT = 'development',\n HOMOLOGATION = 'homologation',\n PRODUCTION = 'production',\n}\n\nexport interface ConsoleLogProps {\n type: ConsoleType;\n environment: Environment | Environment[];\n message: string;\n data?: unknown;\n args?: unknown[];\n}\n"]}