@zydon/common 2.7.62 → 2.7.64

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 (172) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-CU7PKEY2.js → chunk-4RNGASI4.js} +2 -2
  3. package/dist/{chunk-75G5RNV4.js → chunk-5LQLLZ5L.js} +2 -2
  4. package/dist/chunk-5NIMUEW5.js +25 -0
  5. package/dist/chunk-5NIMUEW5.js.map +1 -0
  6. package/dist/chunk-7MVZYOHX.js +13 -0
  7. package/dist/chunk-7MVZYOHX.js.map +1 -0
  8. package/dist/{chunk-WDKKCLZ6.js → chunk-CWCEG2DZ.js} +2 -2
  9. package/dist/{chunk-HLMZQG27.js → chunk-HWYA3EGC.js} +2 -2
  10. package/dist/chunk-HWYA3EGC.js.map +1 -0
  11. package/dist/{chunk-5AWUE6JG.js → chunk-JZ55NEMI.js} +2 -2
  12. package/dist/{chunk-EKIESGNJ.js → chunk-LEMPYV5U.js} +2 -2
  13. package/dist/{chunk-QGMJKW7H.js → chunk-LNXA53QR.js} +2 -2
  14. package/dist/{chunk-FBSNLBJM.js → chunk-LY3IB5VH.js} +2 -2
  15. package/dist/{chunk-DIWJKSWV.js → chunk-MP2LAJS5.js} +3 -3
  16. package/dist/{chunk-IC3H2DXY.js → chunk-N4DW7EIC.js} +2 -2
  17. package/dist/{chunk-CMZI4PHD.js → chunk-NQNNMRLC.js} +1 -1
  18. package/dist/{chunk-CMZI4PHD.js.map → chunk-NQNNMRLC.js.map} +1 -1
  19. package/dist/{chunk-DOVOMWT6.js → chunk-OTVEMGF2.js} +2 -2
  20. package/dist/chunk-POTVACYB.js +8 -0
  21. package/dist/chunk-POTVACYB.js.map +1 -0
  22. package/dist/chunk-QVU6HSYP.js +12 -0
  23. package/dist/chunk-QVU6HSYP.js.map +1 -0
  24. package/dist/chunk-QVUHCBI2.js +35 -0
  25. package/dist/chunk-QVUHCBI2.js.map +1 -0
  26. package/dist/{chunk-RANEJERP.js → chunk-R76WTFYC.js} +2 -2
  27. package/dist/chunk-RBTYTONM.js +13 -0
  28. package/dist/chunk-RBTYTONM.js.map +1 -0
  29. package/dist/{chunk-DPT3E7PD.js → chunk-RFRLNTFN.js} +2 -2
  30. package/dist/{chunk-LBYTNLD3.js → chunk-U7BH6DMJ.js} +2 -2
  31. package/dist/{chunk-5SIAWCDO.js → chunk-XZFBTUAG.js} +2 -2
  32. package/dist/{chunk-N7R22QVG.js → chunk-ZFRNMT3P.js} +2 -2
  33. package/dist/{chunk-YPQCLH3D.js → chunk-ZGSSTXUO.js} +2 -2
  34. package/dist/components/ActionButton/index.js +2 -2
  35. package/dist/components/Autocomplete/index.js +2 -2
  36. package/dist/components/Avatar/index.d.ts +1 -1
  37. package/dist/components/AvatarButton/index.js +3 -3
  38. package/dist/components/BuilderLayout/index.js +2 -2
  39. package/dist/components/BuilderSidebar/index.js +1 -1
  40. package/dist/components/BulkEditModal/index.d.ts +64 -0
  41. package/dist/components/BulkEditModal/index.js +28 -0
  42. package/dist/components/BulkEditModal/index.js.map +1 -0
  43. package/dist/components/CardBrand/index.js +1 -1
  44. package/dist/components/Common/index.js +3 -3
  45. package/dist/components/CopyButton/index.js +2 -2
  46. package/dist/components/DataGrid/index.js +2 -1
  47. package/dist/components/DataView/index.js +8 -6
  48. package/dist/components/DatePicker/index.d.ts +2 -1
  49. package/dist/components/DatePicker/index.js +3 -3
  50. package/dist/components/DatePicker/index.js.map +1 -1
  51. package/dist/components/DragButton/index.js +2 -2
  52. package/dist/components/DragContainer/index.js +2 -2
  53. package/dist/components/DragContainer/index.js.map +1 -1
  54. package/dist/components/Drawer/index.js +1 -1
  55. package/dist/components/DynamicDataView/index.d.ts +4 -2
  56. package/dist/components/DynamicDataView/index.js +20 -14
  57. package/dist/components/DynamicDataView/index.js.map +1 -1
  58. package/dist/components/EasyCropModal/index.js +3 -3
  59. package/dist/components/Error/index.js +1 -1
  60. package/dist/components/ExpandableGroup/index.js +7 -7
  61. package/dist/components/ExpandableGroup/index.js.map +1 -1
  62. package/dist/components/FieldMentions/index.js.map +1 -1
  63. package/dist/components/FileUpload/index.js +6 -8
  64. package/dist/components/FrameSkeleton/index.js +4 -4
  65. package/dist/components/HelpButton/index.js +2 -2
  66. package/dist/components/Icon/index.js +1 -1
  67. package/dist/components/IconButton/index.js +2 -2
  68. package/dist/components/ImageCropModal/index.js +14 -4
  69. package/dist/components/ImageCropModal/index.js.map +1 -1
  70. package/dist/components/Incrementer/index.js +2 -2
  71. package/dist/components/InfoCircle/index.js +1 -1
  72. package/dist/components/ListBundles/index.js +2 -2
  73. package/dist/components/MenuItem/index.js +1 -1
  74. package/dist/components/Modal/index.js +2 -2
  75. package/dist/components/MoreMenu/index.js +1 -1
  76. package/dist/components/PasswordRules/index.js +1 -1
  77. package/dist/components/PopoverSelect/index.js +1 -1
  78. package/dist/components/SearchInput/index.js +2 -2
  79. package/dist/components/SelectableCards/index.js +3 -3
  80. package/dist/components/SeoPreview/index.js +1 -1
  81. package/dist/components/StateDisplay/index.js +2 -2
  82. package/dist/components/Steps/index.js +1 -1
  83. package/dist/components/StyledTab/index.js +1 -1
  84. package/dist/components/SwapList/index.js +2 -2
  85. package/dist/components/ToggleTheme/index.js +2 -2
  86. package/dist/components/WebhookCard/index.js +2 -2
  87. package/dist/components/carousel/index.js +2 -2
  88. package/dist/components/form/Address/index.js +3 -3
  89. package/dist/components/form/Autocomplete/index.js +3 -3
  90. package/dist/components/form/Codes/index.d.ts +2 -1
  91. package/dist/components/form/Codes/index.js +4 -4
  92. package/dist/components/form/Codes/index.js.map +1 -1
  93. package/dist/components/form/FileUpload/index.js +6 -8
  94. package/dist/components/form/FileUpload/index.js.map +1 -1
  95. package/dist/components/form/Incrementer/index.js +2 -2
  96. package/dist/components/form/Password/index.js +1 -1
  97. package/dist/components/form/SelectableCards/index.js +3 -3
  98. package/dist/components/form/Webhook/index.js +12 -12
  99. package/dist/components/form/Webhook/index.js.map +1 -1
  100. package/dist/components/lightbox/index.js +1 -1
  101. package/dist/components/table/index.js +2 -2
  102. package/dist/contexts/PushNotifications/index.js +1 -1
  103. package/dist/hooks/useCollapseSidebarOnMount.js +3 -3
  104. package/dist/hooks/useEventCallback.d.ts +2 -3
  105. package/dist/hooks/useEventCallback.js +1 -1
  106. package/dist/hooks/useLocalStorage.js +2 -2
  107. package/dist/hooks/useSnackbar.d.ts +1 -1
  108. package/dist/hooks/useThemeToggle.js +2 -2
  109. package/dist/hooks/useUpload.js +6 -1
  110. package/dist/hooks/useUpload.js.map +1 -1
  111. package/dist/hooks/useUploadImage.js +7 -2
  112. package/dist/hooks/useUploadImage.js.map +1 -1
  113. package/dist/index.d.ts +3 -5
  114. package/dist/index.js +2 -6
  115. package/dist/index.js.map +1 -1
  116. package/dist/theme/core/index.d.ts +1 -1
  117. package/dist/theme/styles/index.d.ts +13 -13
  118. package/dist/theme/theme-provider.js +2 -2
  119. package/dist/utils/dnd.js +4 -4
  120. package/dist/utils/dnd.js.map +1 -1
  121. package/package.json +4 -1
  122. package/dist/chunk-33C6UWPV.js +0 -7
  123. package/dist/chunk-33C6UWPV.js.map +0 -1
  124. package/dist/chunk-DTIGB5NW.js +0 -10
  125. package/dist/chunk-DTIGB5NW.js.map +0 -1
  126. package/dist/chunk-G4J47YPR.js +0 -23
  127. package/dist/chunk-G4J47YPR.js.map +0 -1
  128. package/dist/chunk-HLMZQG27.js.map +0 -1
  129. package/dist/chunk-IMKYDHP2.js +0 -16
  130. package/dist/chunk-IMKYDHP2.js.map +0 -1
  131. package/dist/chunk-JBPWWO5D.js +0 -15
  132. package/dist/chunk-JBPWWO5D.js.map +0 -1
  133. package/dist/chunk-L4FRE2NC.js +0 -42
  134. package/dist/chunk-L4FRE2NC.js.map +0 -1
  135. package/dist/chunk-MQAMSYYK.js +0 -8
  136. package/dist/chunk-MQAMSYYK.js.map +0 -1
  137. package/dist/chunk-SA2BESEB.js +0 -17
  138. package/dist/chunk-SA2BESEB.js.map +0 -1
  139. package/dist/chunk-SBMEL2IJ.js +0 -9
  140. package/dist/chunk-SBMEL2IJ.js.map +0 -1
  141. package/dist/chunk-TNSABPJ2.js +0 -27
  142. package/dist/chunk-TNSABPJ2.js.map +0 -1
  143. package/dist/chunk-UZ4EKQYP.js +0 -36
  144. package/dist/chunk-UZ4EKQYP.js.map +0 -1
  145. package/dist/chunk-YCEQDXLR.js +0 -8
  146. package/dist/chunk-YCEQDXLR.js.map +0 -1
  147. package/dist/components/form/UploadAvatarWithCrop/index.d.ts +0 -21
  148. package/dist/components/form/UploadAvatarWithCrop/index.js +0 -22
  149. package/dist/components/form/UploadAvatarWithCrop/index.js.map +0 -1
  150. package/dist/components/form/UploadWithCrop/index.d.ts +0 -21
  151. package/dist/components/form/UploadWithCrop/index.js +0 -28
  152. package/dist/components/form/UploadWithCrop/index.js.map +0 -1
  153. package/dist/components/upload/index.d.ts +0 -70
  154. package/dist/components/upload/index.js +0 -30
  155. package/dist/components/upload/index.js.map +0 -1
  156. package/dist/{chunk-CU7PKEY2.js.map → chunk-4RNGASI4.js.map} +0 -0
  157. package/dist/{chunk-75G5RNV4.js.map → chunk-5LQLLZ5L.js.map} +0 -0
  158. package/dist/{chunk-WDKKCLZ6.js.map → chunk-CWCEG2DZ.js.map} +0 -0
  159. package/dist/{chunk-5AWUE6JG.js.map → chunk-JZ55NEMI.js.map} +0 -0
  160. package/dist/{chunk-EKIESGNJ.js.map → chunk-LEMPYV5U.js.map} +0 -0
  161. package/dist/{chunk-QGMJKW7H.js.map → chunk-LNXA53QR.js.map} +0 -0
  162. package/dist/{chunk-FBSNLBJM.js.map → chunk-LY3IB5VH.js.map} +0 -0
  163. package/dist/{chunk-DIWJKSWV.js.map → chunk-MP2LAJS5.js.map} +0 -0
  164. package/dist/{chunk-IC3H2DXY.js.map → chunk-N4DW7EIC.js.map} +0 -0
  165. package/dist/{chunk-DOVOMWT6.js.map → chunk-OTVEMGF2.js.map} +0 -0
  166. package/dist/{chunk-RANEJERP.js.map → chunk-R76WTFYC.js.map} +0 -0
  167. package/dist/{chunk-DPT3E7PD.js.map → chunk-RFRLNTFN.js.map} +0 -0
  168. package/dist/{chunk-LBYTNLD3.js.map → chunk-U7BH6DMJ.js.map} +0 -0
  169. package/dist/{chunk-5SIAWCDO.js.map → chunk-XZFBTUAG.js.map} +0 -0
  170. package/dist/{chunk-N7R22QVG.js.map → chunk-ZFRNMT3P.js.map} +0 -0
  171. package/dist/{chunk-YPQCLH3D.js.map → chunk-ZGSSTXUO.js.map} +0 -0
  172. package/dist/{index-c8f1e6e7.d.ts → index-5a5e5dc8.d.ts} +12 -12
@@ -1,7 +1,17 @@
1
- export { a as default } from '../../chunk-IMKYDHP2.js';
2
- import '../../chunk-DPT3E7PD.js';
3
- import '../../chunk-ESFOFEVL.js';
4
- import '../../chunk-CMZI4PHD.js';
1
+ import { a as a$2 } from '../../chunk-ESFOFEVL.js';
2
+ import { a } from '../../chunk-RFRLNTFN.js';
3
+ import { a as a$3 } from '../../chunk-NQNNMRLC.js';
5
4
  import '../../chunk-CIGSMWKF.js';
5
+ import { useState } from 'react';
6
+ import M from '@mui/lab/LoadingButton';
7
+ import r from '@mui/material/Button';
8
+ import v from '@mui/material/Slider';
9
+ import a$1 from '@mui/material/Stack';
10
+ import B from '@mui/material/Typography';
11
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
12
+
13
+ var y=({id:p,open:u,onClose:e,label:g,onSave:s,onRemove:f,onPreview:h,imageSrc:C,aspectRatio:I,onInitialized:S,loading:k})=>{let[l,m]=useState(.5);return jsx(a,{open:u,onClose:e,dialogTitle:g,actions:jsxs(Fragment,{children:[jsx(r,{variant:"outlined",size:"medium",onClick:e,color:"inherit",children:"Cancelar"}),jsx(M,{variant:"contained",size:"medium",onClick:s,loading:k,children:"Salvar"})]}),fullWidth:!0,maxWidth:"sm",keepMounted:!0,children:jsxs(a$1,{gap:2,children:[jsx(a$2,{imageSrc:C,aspectRatio:I,onInitialized:S,zoom:l,onZoomChange:m}),jsxs(a$1,{gap:1.5,children:[jsxs(a$1,{width:1,direction:"row",gap:3,flex:1,alignItems:"center",children:[jsx(B,{variant:"body1",children:"Zoom"}),jsx(v,{value:l,onChange:(E,n)=>m(Array.isArray(n)?n[0]:n),min:.1,max:2,size:"medium",step:.0125})]}),jsxs(a$1,{direction:"row",gap:2,children:[jsx(r,{variant:"outlined",color:"inherit",size:"large",fullWidth:!0,startIcon:jsx(a$3,{icon:"DELETE_MARK_BUTTON_02"}),onClick:f,children:"Remover"}),jsx(r,{variant:"outlined",color:"inherit",size:"large",fullWidth:!0,startIcon:jsx(a$3,{icon:"PLAY_SIMPLE"}),onClick:h,children:"Pr\xE9-visualizar"}),jsx(r,{variant:"outlined",color:"inherit",size:"large",fullWidth:!0,startIcon:jsx(a$3,{icon:"SEARCH_IMAGE"}),component:"label",htmlFor:p,children:"Alterar"})]})]})]})})},Z=y;
14
+
15
+ export { Z as default };
6
16
  //# sourceMappingURL=out.js.map
7
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
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":"oKAAA,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,7 +1,7 @@
1
- export { a as default } from '../../chunk-5SIAWCDO.js';
1
+ export { a as default } from '../../chunk-XZFBTUAG.js';
2
2
  import '../../chunk-KIWSLR76.js';
3
3
  import '../../chunk-OF6623HG.js';
4
- import '../../chunk-CMZI4PHD.js';
4
+ import '../../chunk-NQNNMRLC.js';
5
5
  import '../../chunk-CIGSMWKF.js';
6
6
  //# sourceMappingURL=out.js.map
7
7
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import { a } from '../../chunk-45OMMG7D.js';
2
- import { a as a$1 } from '../../chunk-CMZI4PHD.js';
2
+ import { a as a$1 } from '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -1,7 +1,7 @@
1
1
  import { a as a$2 } from '../../chunk-RUABKHIV.js';
2
2
  import { a as a$1 } from '../../chunk-IJZCVZ32.js';
3
- import { o, a, f, k as k$1 } from '../../chunk-RANEJERP.js';
4
- import '../../chunk-CMZI4PHD.js';
3
+ import { o, a, f, k as k$1 } from '../../chunk-R76WTFYC.js';
4
+ import '../../chunk-NQNNMRLC.js';
5
5
  import '../../chunk-CIGSMWKF.js';
6
6
  import '../../chunk-GLRLKFPS.js';
7
7
  import { Fragment } from 'react';
@@ -1,4 +1,4 @@
1
- import { a } from '../../chunk-CMZI4PHD.js';
1
+ import { a } from '../../chunk-NQNNMRLC.js';
2
2
  import '../../chunk-CIGSMWKF.js';
3
3
  import c from '@mui/material/CircularProgress';
4
4
  import d from '@mui/material/MenuItem';
@@ -1,5 +1,5 @@
1
- export { a as default } from '../../chunk-DPT3E7PD.js';
2
- import '../../chunk-CMZI4PHD.js';
1
+ export { a as default } from '../../chunk-RFRLNTFN.js';
2
+ import '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  //# sourceMappingURL=out.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import { a as a$2 } from '../../chunk-CO2KQFUN.js';
2
- import { a as a$1 } from '../../chunk-CMZI4PHD.js';
2
+ import { a as a$1 } from '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  import { a } from '../../chunk-LQRRMVFN.js';
5
5
  import M from '@mui/material/IconButton';
@@ -1,5 +1,5 @@
1
1
  import { d } from '../../chunk-ZMB2HEJV.js';
2
- import { a as a$1 } from '../../chunk-CMZI4PHD.js';
2
+ import { a as a$1 } from '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  import a from '@mui/material/Typography';
5
5
  import i from '@mui/material/Stack';
@@ -1,5 +1,5 @@
1
1
  import { a as a$3 } from '../../chunk-CO2KQFUN.js';
2
- import { a as a$1 } from '../../chunk-CMZI4PHD.js';
2
+ import { a as a$1 } from '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  import { a as a$2 } from '../../chunk-LQRRMVFN.js';
5
5
  import S from '@mui/material/MenuItem';
@@ -1,5 +1,5 @@
1
- export { a as default } from '../../chunk-DOVOMWT6.js';
2
- import '../../chunk-CMZI4PHD.js';
1
+ export { a as default } from '../../chunk-OTVEMGF2.js';
2
+ import '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  //# sourceMappingURL=out.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
- export { a as default } from '../../chunk-DIWJKSWV.js';
1
+ export { a as default } from '../../chunk-MP2LAJS5.js';
2
2
  import '../../chunk-6ZSTKYGL.js';
3
- import '../../chunk-DOVOMWT6.js';
3
+ import '../../chunk-OTVEMGF2.js';
4
4
  import '../../chunk-IJZCVZ32.js';
5
5
  import '../../chunk-NIQW2J3M.js';
6
- import '../../chunk-CMZI4PHD.js';
6
+ import '../../chunk-NQNNMRLC.js';
7
7
  import '../../chunk-CIGSMWKF.js';
8
8
  import '../../chunk-XWUVJ22J.js';
9
9
  //# sourceMappingURL=out.js.map
@@ -1,5 +1,5 @@
1
1
  import { a as a$1 } from '../../chunk-6LXCHHW2.js';
2
- import { a } from '../../chunk-CMZI4PHD.js';
2
+ import { a } from '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  import '../../chunk-RPO7AI5K.js';
5
5
  import p from '@mui/material/Box';
@@ -1,5 +1,5 @@
1
- export { a as default } from '../../chunk-WDKKCLZ6.js';
2
- import '../../chunk-CMZI4PHD.js';
1
+ export { a as default } from '../../chunk-CWCEG2DZ.js';
2
+ import '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  //# sourceMappingURL=out.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { a } from '../../chunk-CMZI4PHD.js';
1
+ import { a } from '../../chunk-NQNNMRLC.js';
2
2
  import '../../chunk-CIGSMWKF.js';
3
3
  import s from '@mui/material/Box';
4
4
  import S from '@mui/material/Stack';
@@ -1,4 +1,4 @@
1
- import { a } from '../../chunk-CMZI4PHD.js';
1
+ import { a } from '../../chunk-NQNNMRLC.js';
2
2
  import '../../chunk-CIGSMWKF.js';
3
3
  import n from '@mui/material/Stack';
4
4
  import { styled, alpha } from '@mui/material/styles';
@@ -1,8 +1,8 @@
1
1
  import { a as a$2 } from '../../chunk-6ZSTKYGL.js';
2
- import { a } from '../../chunk-DOVOMWT6.js';
2
+ import { a } from '../../chunk-OTVEMGF2.js';
3
3
  import { a as a$1 } from '../../chunk-IJZCVZ32.js';
4
4
  import '../../chunk-NIQW2J3M.js';
5
- import { a as a$4 } from '../../chunk-CMZI4PHD.js';
5
+ import { a as a$4 } from '../../chunk-NQNNMRLC.js';
6
6
  import '../../chunk-CIGSMWKF.js';
7
7
  import { a as a$3 } from '../../chunk-XWUVJ22J.js';
8
8
  import { useState } from 'react';
@@ -1,13 +1,13 @@
1
1
  export { a as default } from '../../chunk-VCHDZXTF.js';
2
2
  import '../../chunk-UHXAPEIF.js';
3
- import '../../chunk-CU7PKEY2.js';
3
+ import '../../chunk-4RNGASI4.js';
4
4
  import '../../chunk-LDGBS7ZI.js';
5
- import '../../chunk-2WG6OWB4.js';
6
5
  import '../../chunk-6W52DPH4.js';
7
6
  import '../../chunk-TWSAWMZ3.js';
8
7
  import '../../chunk-ROVD7OGE.js';
9
8
  import '../../chunk-EQYL7U3J.js';
10
9
  import '../../chunk-WUFEPE2G.js';
10
+ import '../../chunk-2WG6OWB4.js';
11
11
  import '../../chunk-GLRLKFPS.js';
12
12
  //# sourceMappingURL=out.js.map
13
13
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  import { d } from '../../chunk-JNDZPNQJ.js';
2
2
  import { a as a$3 } from '../../chunk-FK4XGRYF.js';
3
- import { a as a$2 } from '../../chunk-UVPQR2Q2.js';
4
3
  import { a } from '../../chunk-CO2KQFUN.js';
5
- import { a as a$4 } from '../../chunk-CMZI4PHD.js';
4
+ import { a as a$2 } from '../../chunk-UVPQR2Q2.js';
5
+ import { a as a$4 } from '../../chunk-NQNNMRLC.js';
6
6
  import '../../chunk-CIGSMWKF.js';
7
7
  import { a as a$1 } from '../../chunk-LQRRMVFN.js';
8
8
  import '../../chunk-GLRLKFPS.js';
@@ -1,5 +1,5 @@
1
- export { j as ArrowButton, f as Carousel, g as CarouselArrowBasicButtons, i as CarouselArrowFloatButtons, h as CarouselArrowNumberButtons, k as CarouselDotButtons, l as CarouselProgressBar, c as CarouselSlide, n as CarouselThumb, m as CarouselThumbs, e as StyledContainer, d as StyledRoot, a as carouselBreakpoints, b as carouselClasses, o as useCarousel } from '../../chunk-RANEJERP.js';
2
- import '../../chunk-CMZI4PHD.js';
1
+ export { j as ArrowButton, f as Carousel, g as CarouselArrowBasicButtons, i as CarouselArrowFloatButtons, h as CarouselArrowNumberButtons, k as CarouselDotButtons, l as CarouselProgressBar, c as CarouselSlide, n as CarouselThumb, m as CarouselThumbs, e as StyledContainer, d as StyledRoot, a as carouselBreakpoints, b as carouselClasses, o as useCarousel } from '../../chunk-R76WTFYC.js';
2
+ import '../../chunk-NQNNMRLC.js';
3
3
  import '../../chunk-CIGSMWKF.js';
4
4
  import '../../chunk-GLRLKFPS.js';
5
5
  //# sourceMappingURL=out.js.map
@@ -1,9 +1,9 @@
1
1
  import { a as a$1 } from '../../../chunk-P6HORLPW.js';
2
2
  import { a as a$2 } from '../../../chunk-YXRL4O4H.js';
3
- import { a as a$3 } from '../../../chunk-5AWUE6JG.js';
4
3
  import '../../../chunk-DHRVSWFW.js';
5
- import '../../../chunk-FBSNLBJM.js';
6
- import '../../../chunk-CMZI4PHD.js';
4
+ import { a as a$3 } from '../../../chunk-JZ55NEMI.js';
5
+ import '../../../chunk-LY3IB5VH.js';
6
+ import '../../../chunk-NQNNMRLC.js';
7
7
  import '../../../chunk-CIGSMWKF.js';
8
8
  import E from '@mui/material/CircularProgress';
9
9
  import g from '@mui/material/InputAdornment';
@@ -1,6 +1,6 @@
1
- export { a as default } from '../../../chunk-5AWUE6JG.js';
2
- import '../../../chunk-FBSNLBJM.js';
3
- import '../../../chunk-CMZI4PHD.js';
1
+ export { a as default } from '../../../chunk-JZ55NEMI.js';
2
+ import '../../../chunk-LY3IB5VH.js';
3
+ import '../../../chunk-NQNNMRLC.js';
4
4
  import '../../../chunk-CIGSMWKF.js';
5
5
  //# sourceMappingURL=out.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -6,8 +6,9 @@ import 'react-hook-form';
6
6
  type CodesProps = BaseField<TextFieldProps> & {
7
7
  keyName: string;
8
8
  inputs: string[];
9
+ autoFocusFirst?: boolean;
9
10
  };
10
11
 
11
- declare const Codes: ({ keyName, inputs, rules, tabIndex, ...other }: CodesProps) => react_jsx_runtime.JSX.Element;
12
+ declare const Codes: ({ keyName, inputs, rules, tabIndex, autoFocusFirst, ...other }: CodesProps) => react_jsx_runtime.JSX.Element;
12
13
 
13
14
  export { Codes as default };
@@ -1,13 +1,13 @@
1
1
  import { a } from '../../../chunk-L5URMM57.js';
2
2
  import { useRef } from 'react';
3
3
  import { useFormContext, Controller } from 'react-hook-form';
4
- import b from '@mui/material/FormHelperText';
4
+ import M from '@mui/material/FormHelperText';
5
5
  import u from '@mui/material/Stack';
6
- import M from '@mui/material/TextField';
6
+ import S from '@mui/material/TextField';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
8
8
 
9
- var S=({keyName:a$1,inputs:s=[],rules:d,tabIndex:f,...g})=>{let m=useRef(null),{control:h,setValue:C,formState:{errors:x}}=useFormContext(),E=e=>{let t=e.clipboardData.getData("text").split("");s.map((o,n)=>C(o,t[n])),e.preventDefault();},v=(e,t)=>{let{maxLength:o,value:n,name:r}=e.target,L=r.replace(a$1,""),p=Number(L),i=document.querySelector(`input[name=${a$1}${p+1}]`);n.length>o&&(e.target.value=n[0]),n.length>=o&&p<6&&i!==null&&i.focus(),t(e);};a("paste",E,m);let T=s.some(e=>x[e]);return jsxs(u,{children:[jsx(u,{direction:"row",spacing:2,justifyContent:"center",ref:m,children:s.map((e,t)=>jsx(Controller,{name:`${a$1}${t+1}`,control:h,rules:d,render:({field:o,fieldState:{error:n}})=>jsx(M,{...g,...o,autoComplete:"none",error:!!n,autoFocus:t===0,placeholder:"-",onChange:r=>{v(r,o.onChange);},onFocus:r=>r.currentTarget.select(),InputProps:{sx:{width:{xs:36,sm:56},height:{xs:36,sm:56},"& input":{p:0,textAlign:"center"}}},inputProps:{maxLength:1,type:"number",name:`${a$1}${t+1}`,tabIndex:f}})},e))}),T&&jsx(b,{error:!0,sx:{px:2},children:"C\xF3digo \xE9 obrigat\xF3rio"})]})},V=S;
9
+ var $=({keyName:a$1,inputs:s=[],rules:d,tabIndex:f,autoFocusFirst:g=!1,...h})=>{let m=useRef(null),{control:C,setValue:x,formState:{errors:E}}=useFormContext(),v=e=>{let t=e.clipboardData.getData("text").split("");s.map((o,n)=>x(o,t[n])),e.preventDefault();},T=(e,t)=>{let{maxLength:o,value:n,name:r}=e.target,F=r.replace(a$1,""),p=Number(F),i=document.querySelector(`input[name=${a$1}${p+1}]`);n.length>o&&(e.target.value=n[0]),n.length>=o&&p<6&&i!==null&&i.focus(),t(e);};a("paste",v,m);let L=s.some(e=>E[e]);return jsxs(u,{children:[jsx(u,{direction:"row",spacing:2,justifyContent:"center",ref:m,children:s.map((e,t)=>jsx(Controller,{name:`${a$1}${t+1}`,control:C,rules:d,render:({field:o,fieldState:{error:n}})=>jsx(S,{...h,...o,autoComplete:"none",error:!!n,autoFocus:g&&t===0,placeholder:"-",onChange:r=>{T(r,o.onChange);},onFocus:r=>r.currentTarget.select(),InputProps:{sx:{width:{xs:36,sm:56},height:{xs:36,sm:56},"& input":{p:0,textAlign:"center"}}},inputProps:{maxLength:1,type:"number",name:`${a$1}${t+1}`,tabIndex:f}})},e))}),L&&jsx(M,{error:!0,sx:{px:2},children:"C\xF3digo \xE9 obrigat\xF3rio"})]})},W=$;
10
10
 
11
- export { V as default };
11
+ export { W as default };
12
12
  //# sourceMappingURL=out.js.map
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/form/Codes/index.tsx"],"names":["useRef","Controller","useFormContext","FormHelperText","Stack","TextField","jsx","jsxs","Codes","keyName","inputs","rules","tabIndex","other","codesRef","control","setValue","errors","handlePaste","event","data","input","index","handleChangeWithNextField","handleChange","maxLength","value","name","fieldIndex","fieldIntIndex","nextfield","useEventListener_default","hasCodeNotFilled","field","error","Codes_default"],"mappings":"+CAAA,OAAsC,UAAAA,MAAc,QACpD,OAAS,cAAAC,EAAY,kBAAAC,MAAsB,kBAC3C,OAAOC,MAAoB,+BAC3B,OAAOC,MAAW,sBAClB,OAAOC,MAAe,0BA4DlB,OASU,OAAAC,EATV,QAAAC,MAAA,oBAtDJ,IAAMC,EAAQ,CAAC,CACb,QAAAC,EACA,OAAAC,EAAS,CAAC,EACV,MAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAkB,CAChB,IAAMC,EAAWd,EAAuB,IAAI,EAEtC,CACJ,QAAAe,EACA,SAAAC,EACA,UAAW,CAAE,OAAAC,CAAO,CACtB,EAAIf,EAAe,EAEbgB,EAAeC,GAA0B,CAC7C,IAAMC,EAAOD,EAAM,cAAc,QAAQ,MAAM,EAAE,MAAM,EAAE,EAEzDT,EAAO,IAAI,CAACW,EAAOC,IAAUN,EAASK,EAAOD,EAAKE,CAAK,CAAC,CAAC,EAEzDH,EAAM,eAAe,CACvB,EAEMI,EAA4B,CAChCJ,EACAK,IACG,CACH,GAAM,CAAE,UAAAC,EAAW,MAAAC,EAAO,KAAAC,CAAK,EAAIR,EAAM,OAEnCS,EAAaD,EAAK,QAAQlB,EAAS,EAAE,EAErCoB,EAAgB,OAAOD,CAAU,EAEjCE,EAAgC,SAAS,cAC7C,cAAcrB,IAAUoB,EAAgB,IAC1C,EAEIH,EAAM,OAASD,IACjBN,EAAM,OAAO,MAAQO,EAAM,CAAC,GAG1BA,EAAM,QAAUD,GAAaI,EAAgB,GAAKC,IAAc,MACjEA,EAA0B,MAAM,EAGnCN,EAAaL,CAAK,CACpB,EAGAY,EAAiB,QAASb,EAAoBJ,CAAQ,EAEtD,IAAMkB,EAAmBtB,EAAO,KAAKW,GAASJ,EAAOI,CAAK,CAAC,EAE3D,OACEd,EAACH,EAAA,CACC,UAAAE,EAACF,EAAA,CAAM,UAAU,MAAM,QAAS,EAAG,eAAe,SAAS,IAAKU,EAC7D,SAAAJ,EAAO,IAAI,CAACiB,EAAML,IACjBhB,EAACL,EAAA,CAEC,KAAM,GAAGQ,IAAUa,EAAQ,IAC3B,QAASP,EACT,MAAOJ,EACP,OAAQ,CAAC,CAAE,MAAAsB,EAAO,WAAY,CAAE,MAAAC,CAAM,CAAE,IACtC5B,EAACD,EAAA,CACE,GAAGQ,EACH,GAAGoB,EACJ,aAAa,OACb,MAAO,CAAC,CAACC,EACT,UAAWZ,IAAU,EACrB,YAAY,IACZ,SAAWH,GAAyC,CAClDI,EAA0BJ,EAAOc,EAAM,QAAQ,CACjD,EACA,QAASd,GAASA,EAAM,cAAc,OAAO,EAC7C,WAAY,CACV,GAAI,CACF,MAAO,CAAE,GAAI,GAAI,GAAI,EAAG,EACxB,OAAQ,CAAE,GAAI,GAAI,GAAI,EAAG,EACzB,UAAW,CAAE,EAAG,EAAG,UAAW,QAAS,CACzC,CACF,EACA,WAAY,CACV,UAAW,EACX,KAAM,SACN,KAAM,GAAGV,IAAUa,EAAQ,IAC3B,SAAAV,CACF,EACF,GA7BGe,CA+BP,CACD,EACH,EAECK,GACC1B,EAACH,EAAA,CAAe,MAAK,GAAC,GAAI,CAAE,GAAI,CAAE,EAAG,yCAErC,GAEJ,CAEJ,EAEOgC,EAAQ3B","sourcesContent":["import { ChangeEvent, ClipboardEvent, useRef } from 'react';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport Stack from '@mui/material/Stack';\nimport TextField from '@mui/material/TextField';\n\nimport useEventListener from 'hooks/useEventListener';\n\nimport { CodesProps } from './props';\n\nconst Codes = ({\n keyName,\n inputs = [],\n rules,\n tabIndex,\n ...other\n}: CodesProps) => {\n const codesRef = useRef<HTMLDivElement>(null);\n\n const {\n control,\n setValue,\n formState: { errors },\n } = useFormContext();\n\n const handlePaste = (event: ClipboardEvent) => {\n const data = event.clipboardData.getData('text').split('');\n\n inputs.map((input, index) => setValue(input, data[index]));\n\n event.preventDefault();\n };\n\n const handleChangeWithNextField = (\n event: ChangeEvent<HTMLInputElement>,\n handleChange: (event: ChangeEvent<HTMLInputElement>) => void,\n ) => {\n const { maxLength, value, name } = event.target;\n\n const fieldIndex = name.replace(keyName, '');\n\n const fieldIntIndex = Number(fieldIndex);\n\n const nextfield: HTMLElement | null = document.querySelector(\n `input[name=${keyName}${fieldIntIndex + 1}]`,\n );\n\n if (value.length > maxLength) {\n event.target.value = value[0];\n }\n\n if (value.length >= maxLength && fieldIntIndex < 6 && nextfield !== null) {\n (nextfield as HTMLElement).focus();\n }\n\n handleChange(event);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useEventListener('paste', handlePaste as any, codesRef);\n\n const hasCodeNotFilled = inputs.some(input => errors[input]);\n\n return (\n <Stack>\n <Stack direction=\"row\" spacing={2} justifyContent=\"center\" ref={codesRef}>\n {inputs.map((name, index) => (\n <Controller\n key={name}\n name={`${keyName}${index + 1}`}\n control={control}\n rules={rules}\n render={({ field, fieldState: { error } }) => (\n <TextField\n {...other}\n {...field}\n autoComplete=\"none\"\n error={!!error}\n autoFocus={index === 0}\n placeholder=\"-\"\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n handleChangeWithNextField(event, field.onChange);\n }}\n onFocus={event => event.currentTarget.select()}\n InputProps={{\n sx: {\n width: { xs: 36, sm: 56 },\n height: { xs: 36, sm: 56 },\n '& input': { p: 0, textAlign: 'center' },\n },\n }}\n inputProps={{\n maxLength: 1,\n type: 'number',\n name: `${keyName}${index + 1}`,\n tabIndex,\n }}\n />\n )}\n />\n ))}\n </Stack>\n\n {hasCodeNotFilled && (\n <FormHelperText error sx={{ px: 2 }}>\n Código é obrigatório\n </FormHelperText>\n )}\n </Stack>\n );\n};\n\nexport default Codes;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/form/Codes/index.tsx"],"names":["useRef","Controller","useFormContext","FormHelperText","Stack","TextField","jsx","jsxs","Codes","keyName","inputs","rules","tabIndex","autoFocusFirst","other","codesRef","control","setValue","errors","handlePaste","event","data","input","index","handleChangeWithNextField","handleChange","maxLength","value","name","fieldIndex","fieldIntIndex","nextfield","useEventListener_default","hasCodeNotFilled","field","error","Codes_default"],"mappings":"+CAAA,OAAsC,UAAAA,MAAc,QACpD,OAAS,cAAAC,EAAY,kBAAAC,MAAsB,kBAC3C,OAAOC,MAAoB,+BAC3B,OAAOC,MAAW,sBAClB,OAAOC,MAAe,0BA6DlB,OASU,OAAAC,EATV,QAAAC,MAAA,oBAvDJ,IAAMC,EAAQ,CAAC,CACb,QAAAC,EACA,OAAAC,EAAS,CAAC,EACV,MAAAC,EACA,SAAAC,EACA,eAAAC,EAAiB,GACjB,GAAGC,CACL,IAAkB,CAChB,IAAMC,EAAWf,EAAuB,IAAI,EAEtC,CACJ,QAAAgB,EACA,SAAAC,EACA,UAAW,CAAE,OAAAC,CAAO,CACtB,EAAIhB,EAAe,EAEbiB,EAAeC,GAA0B,CAC7C,IAAMC,EAAOD,EAAM,cAAc,QAAQ,MAAM,EAAE,MAAM,EAAE,EAEzDV,EAAO,IAAI,CAACY,EAAOC,IAAUN,EAASK,EAAOD,EAAKE,CAAK,CAAC,CAAC,EAEzDH,EAAM,eAAe,CACvB,EAEMI,EAA4B,CAChCJ,EACAK,IACG,CACH,GAAM,CAAE,UAAAC,EAAW,MAAAC,EAAO,KAAAC,CAAK,EAAIR,EAAM,OAEnCS,EAAaD,EAAK,QAAQnB,EAAS,EAAE,EAErCqB,EAAgB,OAAOD,CAAU,EAEjCE,EAAgC,SAAS,cAC7C,cAActB,IAAUqB,EAAgB,IAC1C,EAEIH,EAAM,OAASD,IACjBN,EAAM,OAAO,MAAQO,EAAM,CAAC,GAG1BA,EAAM,QAAUD,GAAaI,EAAgB,GAAKC,IAAc,MACjEA,EAA0B,MAAM,EAGnCN,EAAaL,CAAK,CACpB,EAGAY,EAAiB,QAASb,EAAoBJ,CAAQ,EAEtD,IAAMkB,EAAmBvB,EAAO,KAAKY,GAASJ,EAAOI,CAAK,CAAC,EAE3D,OACEf,EAACH,EAAA,CACC,UAAAE,EAACF,EAAA,CAAM,UAAU,MAAM,QAAS,EAAG,eAAe,SAAS,IAAKW,EAC7D,SAAAL,EAAO,IAAI,CAACkB,EAAML,IACjBjB,EAACL,EAAA,CAEC,KAAM,GAAGQ,IAAUc,EAAQ,IAC3B,QAASP,EACT,MAAOL,EACP,OAAQ,CAAC,CAAE,MAAAuB,EAAO,WAAY,CAAE,MAAAC,CAAM,CAAE,IACtC7B,EAACD,EAAA,CACE,GAAGS,EACH,GAAGoB,EACJ,aAAa,OACb,MAAO,CAAC,CAACC,EACT,UAAWtB,GAAkBU,IAAU,EACvC,YAAY,IACZ,SAAWH,GAAyC,CAClDI,EAA0BJ,EAAOc,EAAM,QAAQ,CACjD,EACA,QAASd,GAASA,EAAM,cAAc,OAAO,EAC7C,WAAY,CACV,GAAI,CACF,MAAO,CAAE,GAAI,GAAI,GAAI,EAAG,EACxB,OAAQ,CAAE,GAAI,GAAI,GAAI,EAAG,EACzB,UAAW,CAAE,EAAG,EAAG,UAAW,QAAS,CACzC,CACF,EACA,WAAY,CACV,UAAW,EACX,KAAM,SACN,KAAM,GAAGX,IAAUc,EAAQ,IAC3B,SAAAX,CACF,EACF,GA7BGgB,CA+BP,CACD,EACH,EAECK,GACC3B,EAACH,EAAA,CAAe,MAAK,GAAC,GAAI,CAAE,GAAI,CAAE,EAAG,yCAErC,GAEJ,CAEJ,EAEOiC,EAAQ5B","sourcesContent":["import { ChangeEvent, ClipboardEvent, useRef } from 'react';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport Stack from '@mui/material/Stack';\nimport TextField from '@mui/material/TextField';\n\nimport useEventListener from 'hooks/useEventListener';\n\nimport { CodesProps } from './props';\n\nconst Codes = ({\n keyName,\n inputs = [],\n rules,\n tabIndex,\n autoFocusFirst = false,\n ...other\n}: CodesProps) => {\n const codesRef = useRef<HTMLDivElement>(null);\n\n const {\n control,\n setValue,\n formState: { errors },\n } = useFormContext();\n\n const handlePaste = (event: ClipboardEvent) => {\n const data = event.clipboardData.getData('text').split('');\n\n inputs.map((input, index) => setValue(input, data[index]));\n\n event.preventDefault();\n };\n\n const handleChangeWithNextField = (\n event: ChangeEvent<HTMLInputElement>,\n handleChange: (event: ChangeEvent<HTMLInputElement>) => void,\n ) => {\n const { maxLength, value, name } = event.target;\n\n const fieldIndex = name.replace(keyName, '');\n\n const fieldIntIndex = Number(fieldIndex);\n\n const nextfield: HTMLElement | null = document.querySelector(\n `input[name=${keyName}${fieldIntIndex + 1}]`,\n );\n\n if (value.length > maxLength) {\n event.target.value = value[0];\n }\n\n if (value.length >= maxLength && fieldIntIndex < 6 && nextfield !== null) {\n (nextfield as HTMLElement).focus();\n }\n\n handleChange(event);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useEventListener('paste', handlePaste as any, codesRef);\n\n const hasCodeNotFilled = inputs.some(input => errors[input]);\n\n return (\n <Stack>\n <Stack direction=\"row\" spacing={2} justifyContent=\"center\" ref={codesRef}>\n {inputs.map((name, index) => (\n <Controller\n key={name}\n name={`${keyName}${index + 1}`}\n control={control}\n rules={rules}\n render={({ field, fieldState: { error } }) => (\n <TextField\n {...other}\n {...field}\n autoComplete=\"none\"\n error={!!error}\n autoFocus={autoFocusFirst && index === 0}\n placeholder=\"-\"\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n handleChangeWithNextField(event, field.onChange);\n }}\n onFocus={event => event.currentTarget.select()}\n InputProps={{\n sx: {\n width: { xs: 36, sm: 56 },\n height: { xs: 36, sm: 56 },\n '& input': { p: 0, textAlign: 'center' },\n },\n }}\n inputProps={{\n maxLength: 1,\n type: 'number',\n name: `${keyName}${index + 1}`,\n tabIndex,\n }}\n />\n )}\n />\n ))}\n </Stack>\n\n {hasCodeNotFilled && (\n <FormHelperText error sx={{ px: 2 }}>\n Código é obrigatório\n </FormHelperText>\n )}\n </Stack>\n );\n};\n\nexport default Codes;\n"]}
@@ -1,15 +1,13 @@
1
- import { v, s, t, u } from '../../../chunk-UZ4EKQYP.js';
2
- import '../../../chunk-DTIGB5NW.js';
3
- import '../../../chunk-N7R22QVG.js';
4
- import '../../../chunk-DPT3E7PD.js';
1
+ import { v, s, t, u } from '../../../chunk-QVUHCBI2.js';
2
+ import '../../../chunk-ZFRNMT3P.js';
3
+ import '../../../chunk-RFRLNTFN.js';
5
4
  import '../../../chunk-KGLU4CR2.js';
6
- import '../../../chunk-QGMJKW7H.js';
5
+ import '../../../chunk-LNXA53QR.js';
7
6
  import '../../../chunk-OF6623HG.js';
8
- import '../../../chunk-IC3H2DXY.js';
9
- import '../../../chunk-33C6UWPV.js';
7
+ import '../../../chunk-N4DW7EIC.js';
10
8
  import '../../../chunk-45OMMG7D.js';
11
9
  import '../../../chunk-6U5LS7MP.js';
12
- import '../../../chunk-CMZI4PHD.js';
10
+ import '../../../chunk-NQNNMRLC.js';
13
11
  import '../../../chunk-CIGSMWKF.js';
14
12
  import '../../../chunk-VITOOMKK.js';
15
13
  import '../../../chunk-RPO7AI5K.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/form/FileUpload/AvatarUpload.tsx","../../../../src/components/form/FileUpload/useFormFileUpload.ts","../../../../src/components/form/FileUpload/MultiFileUpload.tsx","../../../../src/components/form/FileUpload/MultiImageUpload.tsx","../../../../src/components/form/FileUpload/SingleFileUpload.tsx","../../../../src/components/form/FileUpload/SingleImageUpload.tsx"],"names":["Controller","useFormContext","useEffect","useMemo","useRef","useState","useSingleFileUpload","name","getFileQuery","setValue","watch","value","fileDetails","setFileDetails","file","useMultiFileUpload","watchedValue","currentValue","filesDetails","setFilesDetails","cacheRef","uniqueIds","cache","newIds","id","promises","fallback","results","files","updatedIds","oldIndex","newIndex","removed","jsx","AvatarUpload","rules","createFilesMutation","disableRemove","aspectRatio","enableCrop","maxSize","other","control","handleFileSelect","handleRemove","error","SingleImageUpload_default","AvatarUpload_default","MultiFileUpload","disableReorder","handleFilesSelect","handleReorder","MultipleFileUpload_default","MultiFileUpload_default","MultiImageUpload","MultipleImageUpload_default","MultiImageUpload_default","SingleFileUpload","SingleFileUpload_default","SingleImageUpload","hoverAlt"],"mappings":"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","sourcesContent":["import { Controller, useFormContext } from 'react-hook-form';\n\nimport SingleImageUploadComponent from 'components/FileUpload/SingleImageUpload';\n\nimport { FormSingleImageUploadProps } from './props';\nimport { useSingleFileUpload } from './useFormFileUpload';\n\n/**\n * AvatarUpload integrado ao React Hook Form\n * Componente especializado para upload de avatar (imagem circular de perfil)\n * Gerencia automaticamente o estado do arquivo e retorna apenas o resource_file_id\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { AvatarUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation, useGetFileQuery } from 'services/filesApi';\n *\n * interface FormData {\n * avatar_id: string | null;\n * }\n *\n * const ProfileForm = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const getFileQuery = useGetFileQuery();\n * const methods = useForm<FormData>();\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <AvatarUpload\n * name=\"avatar_id\"\n * createFilesMutation={createFilesMutation}\n * getFileQuery={getFileQuery}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst AvatarUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n aspectRatio = 1,\n enableCrop = true,\n maxSize = 5242880,\n ...other\n}: FormSingleImageUploadProps) => {\n const { control } = useFormContext();\n const { fileDetails, handleFileSelect, handleRemove } = useSingleFileUpload(\n name,\n getFileQuery,\n );\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <SingleImageUploadComponent\n name={name}\n fileDetails={fileDetails}\n createFilesMutation={createFilesMutation}\n onFileSelect={handleFileSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n aspectRatio={aspectRatio}\n enableCrop={enableCrop}\n maxSize={maxSize}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default AvatarUpload;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { FileDetails } from 'components/FileUpload/props';\n\nimport { LazyQueryTrigger } from './props';\n\n/**\n * Hook para gerenciar upload de arquivo único\n */\nexport const useSingleFileUpload = (\n name: string,\n getFileQuery: LazyQueryTrigger,\n) => {\n const { setValue, watch } = useFormContext();\n const value = watch(name);\n const [fileDetails, setFileDetails] = useState<FileDetails | undefined>();\n\n useEffect(() => {\n if (!value) {\n setFileDetails(undefined);\n return;\n }\n const fetchFile = async () => {\n try {\n const file = await getFileQuery(value).unwrap();\n setFileDetails({\n id: file.id,\n url: file.url,\n name: file.name,\n });\n } catch {\n setFileDetails({ id: value, url: '' });\n }\n };\n fetchFile();\n }, [value, getFileQuery]);\n\n const handleFileSelect = (file: FileDetails) => {\n setValue(name, file.id, { shouldValidate: true, shouldDirty: true });\n };\n\n const handleRemove = () => {\n setValue(name, null, { shouldValidate: true, shouldDirty: true });\n };\n\n return {\n fileDetails,\n handleFileSelect,\n handleRemove,\n };\n};\n\n/**\n * Hook para gerenciar upload de múltiplos arquivos\n */\nexport const useMultiFileUpload = (\n name: string,\n getFileQuery: LazyQueryTrigger,\n) => {\n const { setValue, watch } = useFormContext();\n const watchedValue = watch(name);\n const currentValue = useMemo(() => watchedValue || [], [watchedValue]);\n const [filesDetails, setFilesDetails] = useState<FileDetails[]>([]);\n const cacheRef = useRef<Map<string, FileDetails>>(new Map());\n\n useEffect(() => {\n if (!currentValue || currentValue.length === 0) {\n setFilesDetails([]);\n return;\n }\n const fetchFiles = async () => {\n try {\n // Remove duplicatas mantendo a ordem\n const uniqueIds = [...new Set(currentValue)] as string[];\n\n const cache = cacheRef.current;\n const newIds = uniqueIds.filter(id => !cache.has(id));\n\n if (newIds.length > 0) {\n const promises = newIds.map(async (id: string) => {\n try {\n const file = await getFileQuery(id).unwrap();\n const fileDetails = {\n id: file.id,\n url: file.url,\n name: file.name,\n };\n cache.set(id, fileDetails);\n return fileDetails;\n } catch {\n const fallback = { id, url: '' };\n cache.set(id, fallback);\n return fallback;\n }\n });\n await Promise.all(promises);\n }\n\n const results = uniqueIds.map(id => cache.get(id)!);\n setFilesDetails(results);\n } catch {\n setFilesDetails(currentValue.map((id: string) => ({ id, url: '' })));\n }\n };\n fetchFiles();\n }, [currentValue, getFileQuery]);\n\n const handleFilesSelect = (files: FileDetails[]) => {\n const newIds = files.map(file => file.id);\n const updatedIds = [...new Set([...currentValue, ...newIds])];\n setValue(name, updatedIds, {\n shouldValidate: true,\n shouldDirty: true,\n });\n };\n\n const handleRemove = (file?: { id: string }) => {\n if (!file) return;\n const updatedIds = currentValue.filter((id: string) => id !== file.id);\n setValue(name, updatedIds, {\n shouldValidate: true,\n shouldDirty: true,\n });\n };\n\n const handleReorder = (oldIndex: number, newIndex: number) => {\n const newIds = [...currentValue];\n const [removed] = newIds.splice(oldIndex, 1);\n newIds.splice(newIndex, 0, removed);\n setValue(name, newIds, {\n shouldValidate: true,\n shouldDirty: true,\n });\n };\n\n return {\n currentValue,\n filesDetails,\n handleFilesSelect,\n handleRemove,\n handleReorder,\n };\n};\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport MultiFileUploadComponent from 'components/FileUpload/MultipleFileUpload';\n\nimport { FormMultiFileUploadProps } from './props';\nimport { useMultiFileUpload } from './useFormFileUpload';\n\n/**\n * MultiFileUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado dos arquivos e retorna array de resource_file_ids\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { MultiFileUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * document_ids: [],\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.document_ids); // Array de IDs\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <MultiFileUpload\n * name=\"document_ids\"\n * label=\"Documentos\"\n * createFilesMutation={createFilesMutation}\n * maxFiles={5}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst MultiFileUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n disableReorder,\n ...other\n}: FormMultiFileUploadProps) => {\n const { control } = useFormContext();\n const { filesDetails, handleFilesSelect, handleRemove, handleReorder } =\n useMultiFileUpload(name, getFileQuery);\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <MultiFileUploadComponent\n name={name}\n filesDetails={filesDetails}\n createFilesMutation={createFilesMutation}\n onFilesSelect={handleFilesSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n onReorder={disableReorder ? undefined : handleReorder}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default MultiFileUpload;\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport MultiImageUploadComponent from 'components/FileUpload/MultipleImageUpload';\n\nimport { FormMultiImageUploadProps } from './props';\nimport { useMultiFileUpload } from './useFormFileUpload';\n\n/**\n * MultiImageUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado dos arquivos e retorna array de resource_file_ids\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { MultiImageUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * image_ids: [],\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.image_ids); // Array de IDs\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <MultiImageUpload\n * name=\"image_ids\"\n * label=\"Imagens\"\n * createFilesMutation={createFilesMutation}\n * maxFiles={5}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst MultiImageUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n disableReorder,\n ...other\n}: FormMultiImageUploadProps) => {\n const { control } = useFormContext();\n const { filesDetails, handleFilesSelect, handleRemove, handleReorder } =\n useMultiFileUpload(name, getFileQuery);\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <MultiImageUploadComponent\n name={name}\n filesDetails={filesDetails}\n createFilesMutation={createFilesMutation}\n onFilesSelect={handleFilesSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n onReorder={disableReorder ? undefined : handleReorder}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default MultiImageUpload;\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport SingleFileUploadComponent from 'components/FileUpload/SingleFileUpload';\n\nimport { FormSingleFileUploadProps } from './props';\nimport { useSingleFileUpload } from './useFormFileUpload';\n\n/**\n * SingleFileUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado do arquivo e retorna apenas o resource_file_id\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { SingleFileUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * document_id: null,\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.document_id); // ID do arquivo\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <SingleFileUpload\n * name=\"document_id\"\n * label=\"Documento\"\n * createFilesMutation={createFilesMutation}\n * maxSize={1024 * 1024 * 10}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst SingleFileUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n ...other\n}: FormSingleFileUploadProps) => {\n const { control } = useFormContext();\n const { fileDetails, handleFileSelect, handleRemove } = useSingleFileUpload(\n name,\n getFileQuery,\n );\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <SingleFileUploadComponent\n name={name}\n fileDetails={fileDetails}\n createFilesMutation={createFilesMutation}\n onFileSelect={handleFileSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default SingleFileUpload;\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport SingleImageUploadComponent from 'components/FileUpload/SingleImageUpload';\n\nimport { FormSingleImageUploadProps } from './props';\nimport { useSingleFileUpload } from './useFormFileUpload';\n\n/**\n * SingleImageUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado do arquivo e retorna apenas o resource_file_id\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { SingleImageUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * resource_id: null,\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.resource_id); // ID do arquivo\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <SingleImageUpload\n * name=\"resource_id\"\n * label=\"Imagem\"\n * createFilesMutation={createFilesMutation}\n * maxSize={1024 * 1024 * 5}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst SingleImageUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n hoverAlt,\n ...other\n}: FormSingleImageUploadProps) => {\n const { control } = useFormContext();\n const { fileDetails, handleFileSelect, handleRemove } = useSingleFileUpload(\n name,\n getFileQuery,\n );\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <SingleImageUploadComponent\n name={name}\n fileDetails={fileDetails}\n createFilesMutation={createFilesMutation}\n onFileSelect={handleFileSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n error={error?.message}\n hoverAlt={hoverAlt}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default SingleImageUpload;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/form/FileUpload/AvatarUpload.tsx","../../../../src/components/form/FileUpload/useFormFileUpload.ts","../../../../src/components/form/FileUpload/MultiFileUpload.tsx","../../../../src/components/form/FileUpload/MultiImageUpload.tsx","../../../../src/components/form/FileUpload/SingleFileUpload.tsx","../../../../src/components/form/FileUpload/SingleImageUpload.tsx"],"names":["Controller","useFormContext","useEffect","useMemo","useRef","useState","useSingleFileUpload","name","getFileQuery","setValue","watch","value","fileDetails","setFileDetails","file","useMultiFileUpload","watchedValue","currentValue","filesDetails","setFilesDetails","cacheRef","uniqueIds","cache","newIds","id","promises","fallback","results","files","updatedIds","oldIndex","newIndex","removed","jsx","AvatarUpload","rules","createFilesMutation","disableRemove","aspectRatio","enableCrop","maxSize","other","control","handleFileSelect","handleRemove","error","SingleImageUpload_default","AvatarUpload_default","MultiFileUpload","disableReorder","handleFilesSelect","handleReorder","MultipleFileUpload_default","MultiFileUpload_default","MultiImageUpload","MultipleImageUpload_default","MultiImageUpload_default","SingleFileUpload","SingleFileUpload_default","SingleImageUpload","hoverAlt"],"mappings":"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","sourcesContent":["import { Controller, useFormContext } from 'react-hook-form';\n\nimport SingleImageUploadComponent from 'components/FileUpload/SingleImageUpload';\n\nimport { FormSingleImageUploadProps } from './props';\nimport { useSingleFileUpload } from './useFormFileUpload';\n\n/**\n * AvatarUpload integrado ao React Hook Form\n * Componente especializado para upload de avatar (imagem circular de perfil)\n * Gerencia automaticamente o estado do arquivo e retorna apenas o resource_file_id\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { AvatarUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation, useGetFileQuery } from 'services/filesApi';\n *\n * interface FormData {\n * avatar_id: string | null;\n * }\n *\n * const ProfileForm = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const getFileQuery = useGetFileQuery();\n * const methods = useForm<FormData>();\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <AvatarUpload\n * name=\"avatar_id\"\n * createFilesMutation={createFilesMutation}\n * getFileQuery={getFileQuery}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst AvatarUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n aspectRatio = 1,\n enableCrop = true,\n maxSize = 5242880,\n ...other\n}: FormSingleImageUploadProps) => {\n const { control } = useFormContext();\n const { fileDetails, handleFileSelect, handleRemove } = useSingleFileUpload(\n name,\n getFileQuery,\n );\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <SingleImageUploadComponent\n name={name}\n fileDetails={fileDetails}\n createFilesMutation={createFilesMutation}\n onFileSelect={handleFileSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n aspectRatio={aspectRatio}\n enableCrop={enableCrop}\n maxSize={maxSize}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default AvatarUpload;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { FileDetails } from 'components/FileUpload/props';\n\nimport { LazyQueryTrigger } from './props';\n\n/**\n * Hook para gerenciar upload de arquivo único\n */\nexport const useSingleFileUpload = (\n name: string,\n getFileQuery: LazyQueryTrigger,\n) => {\n const { setValue, watch } = useFormContext();\n const value = watch(name);\n const [fileDetails, setFileDetails] = useState<FileDetails | undefined>();\n\n useEffect(() => {\n if (!value) {\n setFileDetails(undefined);\n return;\n }\n const fetchFile = async () => {\n try {\n const file = await getFileQuery(value).unwrap();\n setFileDetails({\n id: file.id,\n url: file.url,\n name: file.name,\n });\n } catch {\n setFileDetails({ id: value, url: '' });\n }\n };\n fetchFile();\n }, [value, getFileQuery]);\n\n const handleFileSelect = (file: FileDetails) => {\n setValue(name, file.id, { shouldValidate: true, shouldDirty: true });\n };\n\n const handleRemove = () => {\n setValue(name, null, { shouldValidate: true, shouldDirty: true });\n };\n\n return {\n fileDetails,\n handleFileSelect,\n handleRemove,\n };\n};\n\n/**\n * Hook para gerenciar upload de múltiplos arquivos\n */\nexport const useMultiFileUpload = (\n name: string,\n getFileQuery: LazyQueryTrigger,\n) => {\n const { setValue, watch } = useFormContext();\n const watchedValue = watch(name);\n const currentValue = useMemo(() => watchedValue || [], [watchedValue]);\n const [filesDetails, setFilesDetails] = useState<FileDetails[]>([]);\n const cacheRef = useRef<Map<string, FileDetails>>(new Map());\n\n useEffect(() => {\n if (!currentValue || currentValue.length === 0) {\n setFilesDetails([]);\n return;\n }\n const fetchFiles = async () => {\n try {\n // Remove duplicatas mantendo a ordem\n const uniqueIds = [...new Set(currentValue)] as string[];\n\n const cache = cacheRef.current;\n const newIds = uniqueIds.filter(id => !cache.has(id));\n\n if (newIds.length > 0) {\n const promises = newIds.map(async (id: string) => {\n try {\n const file = await getFileQuery(id).unwrap();\n const fileDetails = {\n id: file.id,\n url: file.url,\n name: file.name,\n };\n cache.set(id, fileDetails);\n return fileDetails;\n } catch {\n const fallback = { id, url: '' };\n cache.set(id, fallback);\n return fallback;\n }\n });\n await Promise.all(promises);\n }\n\n const results = uniqueIds.map(id => cache.get(id)!);\n setFilesDetails(results);\n } catch {\n setFilesDetails(currentValue.map((id: string) => ({ id, url: '' })));\n }\n };\n fetchFiles();\n }, [currentValue, getFileQuery]);\n\n const handleFilesSelect = (files: FileDetails[]) => {\n const newIds = files.map(file => file.id);\n const updatedIds = [...new Set([...currentValue, ...newIds])];\n setValue(name, updatedIds, {\n shouldValidate: true,\n shouldDirty: true,\n });\n };\n\n const handleRemove = (file?: { id: string }) => {\n if (!file) return;\n const updatedIds = currentValue.filter((id: string) => id !== file.id);\n setValue(name, updatedIds, {\n shouldValidate: true,\n shouldDirty: true,\n });\n };\n\n const handleReorder = (oldIndex: number, newIndex: number) => {\n const newIds = [...currentValue];\n const [removed] = newIds.splice(oldIndex, 1);\n newIds.splice(newIndex, 0, removed);\n setValue(name, newIds, {\n shouldValidate: true,\n shouldDirty: true,\n });\n };\n\n return {\n currentValue,\n filesDetails,\n handleFilesSelect,\n handleRemove,\n handleReorder,\n };\n};\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport MultiFileUploadComponent from 'components/FileUpload/MultipleFileUpload';\n\nimport { FormMultiFileUploadProps } from './props';\nimport { useMultiFileUpload } from './useFormFileUpload';\n\n/**\n * MultiFileUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado dos arquivos e retorna array de resource_file_ids\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { MultiFileUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * document_ids: [],\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.document_ids); // Array de IDs\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <MultiFileUpload\n * name=\"document_ids\"\n * label=\"Documentos\"\n * createFilesMutation={createFilesMutation}\n * maxFiles={5}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst MultiFileUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n disableReorder,\n ...other\n}: FormMultiFileUploadProps) => {\n const { control } = useFormContext();\n const { filesDetails, handleFilesSelect, handleRemove, handleReorder } =\n useMultiFileUpload(name, getFileQuery);\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <MultiFileUploadComponent\n name={name}\n filesDetails={filesDetails}\n createFilesMutation={createFilesMutation}\n onFilesSelect={handleFilesSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n onReorder={disableReorder ? undefined : handleReorder}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default MultiFileUpload;\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport MultiImageUploadComponent from 'components/FileUpload/MultipleImageUpload';\n\nimport { FormMultiImageUploadProps } from './props';\nimport { useMultiFileUpload } from './useFormFileUpload';\n\n/**\n * MultiImageUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado dos arquivos e retorna array de resource_file_ids\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { MultiImageUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * image_ids: [],\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.image_ids); // Array de IDs\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <MultiImageUpload\n * name=\"image_ids\"\n * label=\"Imagens\"\n * createFilesMutation={createFilesMutation}\n * maxFiles={5}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst MultiImageUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n disableReorder,\n ...other\n}: FormMultiImageUploadProps) => {\n const { control } = useFormContext();\n const { filesDetails, handleFilesSelect, handleRemove, handleReorder } =\n useMultiFileUpload(name, getFileQuery);\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <MultiImageUploadComponent\n name={name}\n filesDetails={filesDetails}\n createFilesMutation={createFilesMutation}\n onFilesSelect={handleFilesSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n onReorder={disableReorder ? undefined : handleReorder}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default MultiImageUpload;\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport SingleFileUploadComponent from 'components/FileUpload/SingleFileUpload';\n\nimport { FormSingleFileUploadProps } from './props';\nimport { useSingleFileUpload } from './useFormFileUpload';\n\n/**\n * SingleFileUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado do arquivo e retorna apenas o resource_file_id\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { SingleFileUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * document_id: null,\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.document_id); // ID do arquivo\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <SingleFileUpload\n * name=\"document_id\"\n * label=\"Documento\"\n * createFilesMutation={createFilesMutation}\n * maxSize={1024 * 1024 * 10}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst SingleFileUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n ...other\n}: FormSingleFileUploadProps) => {\n const { control } = useFormContext();\n const { fileDetails, handleFileSelect, handleRemove } = useSingleFileUpload(\n name,\n getFileQuery,\n );\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <SingleFileUploadComponent\n name={name}\n fileDetails={fileDetails}\n createFilesMutation={createFilesMutation}\n onFileSelect={handleFileSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n error={error?.message}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default SingleFileUpload;\n","import { Controller, useFormContext } from 'react-hook-form';\n\nimport SingleImageUploadComponent from 'components/FileUpload/SingleImageUpload';\n\nimport { FormSingleImageUploadProps } from './props';\nimport { useSingleFileUpload } from './useFormFileUpload';\n\n/**\n * SingleImageUpload integrado ao React Hook Form\n * Gerencia automaticamente o estado do arquivo e retorna apenas o resource_file_id\n *\n * @example\n * ```tsx\n * import { Form } from 'components/form';\n * import { SingleImageUpload } from 'components/form/FileUpload';\n * import { useCreateFilesMutation } from 'services/filesApi';\n *\n * const FormExample = () => {\n * const createFilesMutation = useCreateFilesMutation();\n * const methods = useForm({\n * defaultValues: {\n * resource_id: null,\n * },\n * });\n *\n * const handleSubmit = (data: any) => {\n * console.log(data.resource_id); // ID do arquivo\n * };\n *\n * return (\n * <Form methods={methods} onSubmit={handleSubmit}>\n * <SingleImageUpload\n * name=\"resource_id\"\n * label=\"Imagem\"\n * createFilesMutation={createFilesMutation}\n * maxSize={1024 * 1024 * 5}\n * />\n * </Form>\n * );\n * };\n * ```\n */\nconst SingleImageUpload = ({\n name,\n rules,\n createFilesMutation,\n getFileQuery,\n disableRemove,\n hoverAlt,\n ...other\n}: FormSingleImageUploadProps) => {\n const { control } = useFormContext();\n const { fileDetails, handleFileSelect, handleRemove } = useSingleFileUpload(\n name,\n getFileQuery,\n );\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ fieldState: { error } }) => (\n <SingleImageUploadComponent\n name={name}\n fileDetails={fileDetails}\n createFilesMutation={createFilesMutation}\n onFileSelect={handleFileSelect}\n onRemove={disableRemove ? undefined : handleRemove}\n error={error?.message}\n hoverAlt={hoverAlt}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default SingleImageUpload;\n"]}
@@ -1,7 +1,7 @@
1
- import { a } from '../../../chunk-5SIAWCDO.js';
1
+ import { a } from '../../../chunk-XZFBTUAG.js';
2
2
  import '../../../chunk-KIWSLR76.js';
3
3
  import '../../../chunk-OF6623HG.js';
4
- import '../../../chunk-CMZI4PHD.js';
4
+ import '../../../chunk-NQNNMRLC.js';
5
5
  import '../../../chunk-CIGSMWKF.js';
6
6
  import { useFormContext, Controller } from 'react-hook-form';
7
7
  import { jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  import { a } from '../../../chunk-YXRL4O4H.js';
2
2
  import { d } from '../../../chunk-ZMB2HEJV.js';
3
- import { a as a$1 } from '../../../chunk-CMZI4PHD.js';
3
+ import { a as a$1 } from '../../../chunk-NQNNMRLC.js';
4
4
  import '../../../chunk-CIGSMWKF.js';
5
5
  import { useState } from 'react';
6
6
  import { useFormContext } from 'react-hook-form';
@@ -1,9 +1,9 @@
1
- import { a } from '../../../chunk-DIWJKSWV.js';
1
+ import { a } from '../../../chunk-MP2LAJS5.js';
2
2
  import '../../../chunk-6ZSTKYGL.js';
3
- import '../../../chunk-DOVOMWT6.js';
3
+ import '../../../chunk-OTVEMGF2.js';
4
4
  import '../../../chunk-IJZCVZ32.js';
5
5
  import '../../../chunk-NIQW2J3M.js';
6
- import '../../../chunk-CMZI4PHD.js';
6
+ import '../../../chunk-NQNNMRLC.js';
7
7
  import '../../../chunk-CIGSMWKF.js';
8
8
  import '../../../chunk-XWUVJ22J.js';
9
9
  import { useFormContext, Controller } from 'react-hook-form';
@@ -1,21 +1,21 @@
1
1
  import { a } from '../../../chunk-YXRL4O4H.js';
2
- import { a as a$2 } from '../../../chunk-5AWUE6JG.js';
3
- import { a as a$3 } from '../../../chunk-EKIESGNJ.js';
4
- import '../../../chunk-FBSNLBJM.js';
5
- import { a as a$1 } from '../../../chunk-CMZI4PHD.js';
2
+ import { a as a$3 } from '../../../chunk-LEMPYV5U.js';
3
+ import { a as a$2 } from '../../../chunk-JZ55NEMI.js';
4
+ import '../../../chunk-LY3IB5VH.js';
5
+ import { a as a$1 } from '../../../chunk-NQNNMRLC.js';
6
6
  import '../../../chunk-CIGSMWKF.js';
7
7
  import { useFormContext, useFieldArray } from 'react-hook-form';
8
- import D from '@mui/material/Divider';
9
- import T from '@mui/material/IconButton';
10
- import q from '@mui/material/InputAdornment';
11
- import l from '@mui/material/Stack';
12
- import O from '@mui/material/Typography';
13
- import I from '@mui/material/Alert';
8
+ import N from '@mui/material/Divider';
9
+ import B from '@mui/material/IconButton';
10
+ import D from '@mui/material/InputAdornment';
11
+ import n from '@mui/material/Stack';
12
+ import I from '@mui/material/Typography';
13
+ import O from '@mui/material/Alert';
14
14
  import { styled, alpha } from '@mui/material/styles';
15
15
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
16
16
 
17
- var s=[{label:"XML",value:"XML"},{label:"JSON",value:"JSON"},{label:"BYTEA",value:"BYTEA"}],c=[{label:"GET",value:"GET"},{label:"POST",value:"POST"},{label:"DELETE",value:"DELETE"},{label:"PUT",value:"PUT"}];var b=styled(T)(({theme:o})=>({svg:{color:`${o.palette.primary.main} !important`}}));styled(T)(()=>({height:"38px",alignSelf:"center"}));var y=styled(O)(()=>({textDecoration:"underline",fontWeight:"600",cursor:"pointer"})),h=styled(I)(({theme:o})=>({backgroundColor:`${alpha(o.palette.primary.main,.03)}`,border:`1px solid ${alpha(o.palette.primary.main,.4)}`,flexDirection:"row",alignItems:"center",padding:"2px 12px",gap:8,borderRadius:8,marginBottom:16,"& svg":{color:o.palette.primary.main}}));var W=()=>{let o=()=>{let a="https://ajuda.zydon.com.br/pt-BR/articles/9180603-sobre-webhooks";window.open(a,"_blank");};return jsx(h,{severity:"info",children:jsxs(O,{color:"grey",variant:"caption",children:["Webhooks permitem que servi\xE7os externos sejam notificados quando determinados eventos acontecem. Saiba mais"," ",jsx(y,{variant:"caption",color:"primary",onClick:()=>o(),children:"acessando a documenta\xE7\xE3o do Webhook"})]})})},g=W;var _=({webhookData:o,isEditing:a$4=!1,haveTip:S=!1})=>{let{control:k}=useFormContext(),{fields:E,append:A,remove:C}=useFieldArray({name:"headers",control:k}),P=()=>{A({value:"",name:""});};return jsxs(Fragment,{children:[S&&jsx(g,{}),a$4&&jsx(a,{name:"name",label:"Nome do webhook"}),jsxs(l,{direction:"row",gap:2,children:[jsx(a,{name:"url",label:"URL de endpoint",rules:{required:{value:!0,message:"Url \xE9 obrigat\xF3rio"}}}),jsx(a,{name:"filter",label:"Filtro"})]}),a$4&&o&&jsxs(Fragment,{children:[jsx(a,{variant:"filled",name:"solution",label:"Solu\xE7\xE3o",disabled:!0}),jsxs(l,{direction:"row",gap:2,children:[jsx(a,{variant:"filled",name:"resource",label:"Origem",disabled:!0}),jsx(a,{variant:"filled",name:"resource_id",label:"ID origem",disabled:!0,InputProps:{endAdornment:jsx(q,{position:"end",children:jsx(b,{onClick:()=>navigator.clipboard.writeText(o.resource_id),children:jsx(a$1,{className:"copyIcon",icon:"COPY_CONTENT"})})})}}),jsx(a,{variant:"filled",name:"event",label:"Evento",disabled:!0})]})]}),jsxs(l,{direction:"row",gap:2,alignItems:"center",children:[jsx(a$2,{fullWidth:!0,options:s,name:"content_type",label:"Tipo de conte\xFAdo",required:!0,rules:{required:{value:!0,message:"Campo Tipo de conte\xFAdo \xE9 obrigat\xF3rio"}}}),jsx(a$2,{fullWidth:!0,options:c,name:"http_method",label:"M\xE9todo HTTP",required:!0,rules:{required:{value:!0,message:"Campo M\xE9todo HTTP \xE9 obrigat\xF3rio"}}})]}),jsx(O,{variant:"overline",color:"grey",children:"Cabe\xE7alho"}),E?.map((x,i)=>jsxs(l,{direction:"row",gap:2,alignItems:"center",children:[jsx(a,{name:`headers.${i}.name`,label:"Chave",required:!0,rules:{required:{value:!0,message:""}}}),jsx(a,{name:`headers.${i}.value`,label:"Valor"}),jsx(T,{color:"error",onClick:()=>C(i),children:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02"})})]},x.id)),jsx(a$3,{actionType:"NEW",size:"large",variant:"outlined",color:"inherit",fullWidth:!0,onClick:()=>P(),children:"Adicionar novo cabe\xE7alho"}),jsx(D,{})]})},se=_;
17
+ var s=[{label:"XML",value:"XML"},{label:"JSON",value:"JSON"},{label:"BYTEA",value:"BYTEA"}],c=[{label:"GET",value:"GET"},{label:"POST",value:"POST"},{label:"DELETE",value:"DELETE"},{label:"PUT",value:"PUT"}];var T=styled(B)(({theme:o})=>({svg:{color:`${o.palette.primary.main} !important`}})),b=styled(I)(()=>({textDecoration:"underline",fontWeight:"600",cursor:"pointer"})),y=styled(O)(({theme:o})=>({backgroundColor:`${alpha(o.palette.primary.main,.03)}`,border:`1px solid ${alpha(o.palette.primary.main,.4)}`,flexDirection:"row",alignItems:"center",padding:"2px 12px",gap:8,borderRadius:8,marginBottom:16,"& svg":{color:o.palette.primary.main}}));var x=()=>{let o=()=>{let a="https://ajuda.zydon.com.br/pt-BR/articles/9180603-sobre-webhooks";window.open(a,"_blank");};return jsx(y,{severity:"info",children:jsxs(I,{color:"grey",variant:"caption",children:["Webhooks permitem que servi\xE7os externos sejam notificados quando determinados eventos acontecem. Saiba mais"," ",jsx(b,{variant:"caption",color:"primary",onClick:()=>o(),children:"acessando a documenta\xE7\xE3o do Webhook"})]})})},f=x;var _=({webhookData:o,isEditing:a$4=!1,haveTip:v=!1})=>{let{control:S}=useFormContext(),{fields:k,append:E,remove:A}=useFieldArray({name:"headers",control:S}),C=()=>{E({value:"",name:""});};return jsxs(Fragment,{children:[v&&jsx(f,{}),a$4&&jsx(a,{name:"name",label:"Nome do webhook"}),jsxs(n,{direction:"row",gap:2,children:[jsx(a,{name:"url",label:"URL de endpoint",rules:{required:{value:!0,message:"Url \xE9 obrigat\xF3rio"}}}),jsx(a,{name:"filter",label:"Filtro"})]}),a$4&&o&&jsxs(Fragment,{children:[jsx(a,{variant:"filled",name:"solution",label:"Solu\xE7\xE3o",disabled:!0}),jsxs(n,{direction:"row",gap:2,children:[jsx(a,{variant:"filled",name:"resource",label:"Origem",disabled:!0}),jsx(a,{variant:"filled",name:"resource_id",label:"ID origem",disabled:!0,InputProps:{endAdornment:jsx(D,{position:"end",children:jsx(T,{onClick:()=>navigator.clipboard.writeText(o.resource_id),children:jsx(a$1,{className:"copyIcon",icon:"COPY_CONTENT"})})})}}),jsx(a,{variant:"filled",name:"event",label:"Evento",disabled:!0})]})]}),jsxs(n,{direction:"row",gap:2,alignItems:"center",children:[jsx(a$2,{fullWidth:!0,options:s,name:"content_type",label:"Tipo de conte\xFAdo",required:!0,rules:{required:{value:!0,message:"Campo Tipo de conte\xFAdo \xE9 obrigat\xF3rio"}}}),jsx(a$2,{fullWidth:!0,options:c,name:"http_method",label:"M\xE9todo HTTP",required:!0,rules:{required:{value:!0,message:"Campo M\xE9todo HTTP \xE9 obrigat\xF3rio"}}})]}),jsx(I,{variant:"overline",color:"grey",children:"Cabe\xE7alho"}),k?.map((P,l)=>jsxs(n,{direction:"row",gap:2,alignItems:"center",children:[jsx(a,{name:`headers.${l}.name`,label:"Chave",required:!0,rules:{required:{value:!0,message:""}}}),jsx(a,{name:`headers.${l}.value`,label:"Valor"}),jsx(B,{color:"error",onClick:()=>A(l),children:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02"})})]},P.id)),jsx(a$3,{actionType:"NEW",size:"large",variant:"outlined",color:"inherit",fullWidth:!0,onClick:()=>C(),children:"Adicionar novo cabe\xE7alho"}),jsx(N,{})]})},de=_;
18
18
 
19
- export { se as default };
19
+ export { de as default };
20
20
  //# sourceMappingURL=out.js.map
21
21
  //# sourceMappingURL=index.js.map