@zydon/common 2.7.63 → 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.
- package/README.md +1 -0
- package/dist/{chunk-VPKUUY5Q.js → chunk-4RNGASI4.js} +3 -3
- package/dist/chunk-QVUHCBI2.js +35 -0
- package/dist/chunk-QVUHCBI2.js.map +1 -0
- package/dist/components/AvatarButton/index.js +3 -3
- package/dist/components/Common/index.js +3 -3
- package/dist/components/DatePicker/index.d.ts +2 -1
- package/dist/components/DatePicker/index.js +3 -3
- package/dist/components/DatePicker/index.js.map +1 -1
- package/dist/components/DragContainer/index.js +2 -2
- package/dist/components/DragContainer/index.js.map +1 -1
- package/dist/components/FileUpload/index.js +1 -4
- package/dist/components/ImageCropModal/index.js +14 -4
- package/dist/components/ImageCropModal/index.js.map +1 -1
- package/dist/components/ToggleTheme/index.js +3 -3
- package/dist/components/form/Codes/index.d.ts +2 -1
- package/dist/components/form/Codes/index.js +4 -4
- package/dist/components/form/Codes/index.js.map +1 -1
- package/dist/components/form/FileUpload/index.js +2 -5
- package/dist/components/form/FileUpload/index.js.map +1 -1
- package/dist/contexts/PushNotifications/index.js +1 -1
- package/dist/hooks/useThemeToggle.js +3 -3
- package/dist/hooks/useUpload.js +6 -1
- package/dist/hooks/useUpload.js.map +1 -1
- package/dist/hooks/useUploadImage.js +7 -2
- package/dist/hooks/useUploadImage.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.js +3 -7
- package/dist/index.js.map +1 -1
- package/dist/theme/theme-provider.js +3 -3
- package/dist/utils/dnd.js +4 -4
- package/dist/utils/dnd.js.map +1 -1
- package/package.json +4 -1
- package/dist/chunk-33C6UWPV.js +0 -7
- package/dist/chunk-33C6UWPV.js.map +0 -1
- package/dist/chunk-6WGKIN5L.js +0 -18
- package/dist/chunk-6WGKIN5L.js.map +0 -1
- package/dist/chunk-DTIGB5NW.js +0 -10
- package/dist/chunk-DTIGB5NW.js.map +0 -1
- package/dist/chunk-IEGF6HVV.js +0 -43
- package/dist/chunk-IEGF6HVV.js.map +0 -1
- package/dist/chunk-JFZOAS75.js +0 -23
- package/dist/chunk-JFZOAS75.js.map +0 -1
- package/dist/chunk-KR3DUHA6.js +0 -16
- package/dist/chunk-KR3DUHA6.js.map +0 -1
- package/dist/chunk-SBMEL2IJ.js +0 -9
- package/dist/chunk-SBMEL2IJ.js.map +0 -1
- package/dist/chunk-VYNBVZSA.js +0 -37
- package/dist/chunk-VYNBVZSA.js.map +0 -1
- package/dist/chunk-WQSRNCNF.js +0 -5
- package/dist/chunk-WQSRNCNF.js.map +0 -1
- package/dist/chunk-YCEQDXLR.js +0 -8
- package/dist/chunk-YCEQDXLR.js.map +0 -1
- package/dist/components/form/UploadAvatarWithCrop/index.d.ts +0 -21
- package/dist/components/form/UploadAvatarWithCrop/index.js +0 -23
- package/dist/components/form/UploadAvatarWithCrop/index.js.map +0 -1
- package/dist/components/form/UploadWithCrop/index.d.ts +0 -21
- package/dist/components/form/UploadWithCrop/index.js +0 -29
- package/dist/components/form/UploadWithCrop/index.js.map +0 -1
- package/dist/components/upload/index.d.ts +0 -70
- package/dist/components/upload/index.js +0 -31
- package/dist/components/upload/index.js.map +0 -1
- /package/dist/{chunk-VPKUUY5Q.js.map → chunk-4RNGASI4.js.map} +0 -0
|
@@ -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,13 +1,13 @@
|
|
|
1
1
|
export { a as default } from '../../chunk-VCHDZXTF.js';
|
|
2
2
|
import '../../chunk-UHXAPEIF.js';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-4RNGASI4.js';
|
|
4
4
|
import '../../chunk-LDGBS7ZI.js';
|
|
5
|
-
import '../../chunk-WUFEPE2G.js';
|
|
6
|
-
import '../../chunk-2WG6OWB4.js';
|
|
7
5
|
import '../../chunk-6W52DPH4.js';
|
|
8
6
|
import '../../chunk-TWSAWMZ3.js';
|
|
9
7
|
import '../../chunk-ROVD7OGE.js';
|
|
10
8
|
import '../../chunk-EQYL7U3J.js';
|
|
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
|
|
@@ -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
|
|
4
|
+
import M from '@mui/material/FormHelperText';
|
|
5
5
|
import u from '@mui/material/Stack';
|
|
6
|
-
import
|
|
6
|
+
import S from '@mui/material/TextField';
|
|
7
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
|
-
var
|
|
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 {
|
|
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,
|
|
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,13 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import '../../../chunk-DTIGB5NW.js';
|
|
3
|
-
import '../../../chunk-WQSRNCNF.js';
|
|
1
|
+
import { v, s, t, u } from '../../../chunk-QVUHCBI2.js';
|
|
4
2
|
import '../../../chunk-ZFRNMT3P.js';
|
|
5
3
|
import '../../../chunk-RFRLNTFN.js';
|
|
6
4
|
import '../../../chunk-KGLU4CR2.js';
|
|
7
5
|
import '../../../chunk-LNXA53QR.js';
|
|
8
6
|
import '../../../chunk-OF6623HG.js';
|
|
9
7
|
import '../../../chunk-N4DW7EIC.js';
|
|
10
|
-
import '../../../chunk-33C6UWPV.js';
|
|
11
8
|
import '../../../chunk-45OMMG7D.js';
|
|
12
9
|
import '../../../chunk-6U5LS7MP.js';
|
|
13
10
|
import '../../../chunk-NQNNMRLC.js';
|
|
@@ -20,7 +17,7 @@ import { useFormContext, Controller } from 'react-hook-form';
|
|
|
20
17
|
import { useState, useEffect, useMemo, useRef } from 'react';
|
|
21
18
|
import { jsx } from 'react/jsx-runtime';
|
|
22
19
|
|
|
23
|
-
var h=(e,r)=>{let{setValue:l,watch:s}=useFormContext(),t=s(e),[o,i]=useState();return useEffect(()=>{if(!t){i(void 0);return}(async()=>{try{let a=await r(t).unwrap();i({id:a.id,url:a.url,name:a.name});}catch{i({id:t,url:""});}})();},[t,r]),{fileDetails:o,handleFileSelect:d=>{l(e,d.id,{shouldValidate:!0,shouldDirty:!0});},handleRemove:()=>{l(e,null,{shouldValidate:!0,shouldDirty:!0});}}},R=(e,r)=>{let{setValue:l,watch:s}=useFormContext(),t=s(e),o=useMemo(()=>t||[],[t]),[i,n]=useState([]),u=useRef(new Map);return useEffect(()=>{if(!o||o.length===0){n([]);return}(async()=>{try{let p=[...new Set(o)],c=u.current,F=p.filter(S=>!c.has(S));if(F.length>0){let S=F.map(async U=>{try{let g=await r(U).unwrap(),M={id:g.id,url:g.url,name:g.name};return c.set(U,M),M}catch{let g={id:U,url:""};return c.set(U,g),g}});await Promise.all(S);}let T=p.map(S=>c.get(S));n(T);}catch{n(o.map(p=>({id:p,url:""})));}})();},[o,r]),{currentValue:o,filesDetails:i,handleFilesSelect:m=>{let p=m.map(F=>F.id),c=[...new Set([...o,...p])];l(e,c,{shouldValidate:!0,shouldDirty:!0});},handleRemove:m=>{if(!m)return;let p=o.filter(c=>c!==m.id);l(e,p,{shouldValidate:!0,shouldDirty:!0});},handleReorder:(m,p)=>{let c=[...o],[F]=c.splice(m,1);c.splice(p,0,F),l(e,c,{shouldValidate:!0,shouldDirty:!0});}}};var E=({name:e,rules:r
|
|
20
|
+
var h=(e,r)=>{let{setValue:l,watch:s}=useFormContext(),t=s(e),[o,i]=useState();return useEffect(()=>{if(!t){i(void 0);return}(async()=>{try{let a=await r(t).unwrap();i({id:a.id,url:a.url,name:a.name});}catch{i({id:t,url:""});}})();},[t,r]),{fileDetails:o,handleFileSelect:d=>{l(e,d.id,{shouldValidate:!0,shouldDirty:!0});},handleRemove:()=>{l(e,null,{shouldValidate:!0,shouldDirty:!0});}}},R=(e,r)=>{let{setValue:l,watch:s}=useFormContext(),t=s(e),o=useMemo(()=>t||[],[t]),[i,n]=useState([]),u=useRef(new Map);return useEffect(()=>{if(!o||o.length===0){n([]);return}(async()=>{try{let p=[...new Set(o)],c=u.current,F=p.filter(S=>!c.has(S));if(F.length>0){let S=F.map(async U=>{try{let g=await r(U).unwrap(),M={id:g.id,url:g.url,name:g.name};return c.set(U,M),M}catch{let g={id:U,url:""};return c.set(U,g),g}});await Promise.all(S);}let T=p.map(S=>c.get(S));n(T);}catch{n(o.map(p=>({id:p,url:""})));}})();},[o,r]),{currentValue:o,filesDetails:i,handleFilesSelect:m=>{let p=m.map(F=>F.id),c=[...new Set([...o,...p])];l(e,c,{shouldValidate:!0,shouldDirty:!0});},handleRemove:m=>{if(!m)return;let p=o.filter(c=>c!==m.id);l(e,p,{shouldValidate:!0,shouldDirty:!0});},handleReorder:(m,p)=>{let c=[...o],[F]=c.splice(m,1);c.splice(p,0,F),l(e,c,{shouldValidate:!0,shouldDirty:!0});}}};var E=({name:e,rules:r,createFilesMutation:l,getFileQuery:s,disableRemove:t,aspectRatio:o=1,enableCrop:i=!0,maxSize:n=5242880,...u})=>{let{control:d}=useFormContext(),{fileDetails:a,handleFileSelect:f,handleRemove:m}=h(e,s);return jsx(Controller,{name:e,control:d,rules:r,render:({fieldState:{error:p}})=>jsx(v,{name:e,fileDetails:a,createFilesMutation:l,onFileSelect:f,onRemove:t?void 0:m,aspectRatio:o,enableCrop:i,maxSize:n,error:p?.message,...u})})},G=E;var J=({name:e,rules:r,createFilesMutation:l,getFileQuery:s$1,disableRemove:t,disableReorder:o,...i})=>{let{control:n}=useFormContext(),{filesDetails:u,handleFilesSelect:d,handleRemove:a,handleReorder:f}=R(e,s$1);return jsx(Controller,{name:e,control:n,rules:r,render:({fieldState:{error:m}})=>jsx(s,{name:e,filesDetails:u,createFilesMutation:l,onFilesSelect:d,onRemove:t?void 0:a,onReorder:o?void 0:f,error:m?.message,...i})})},K=J;var W=({name:e,rules:r,createFilesMutation:l,getFileQuery:s,disableRemove:t$1,disableReorder:o,...i})=>{let{control:n}=useFormContext(),{filesDetails:u,handleFilesSelect:d,handleRemove:a,handleReorder:f}=R(e,s);return jsx(Controller,{name:e,control:n,rules:r,render:({fieldState:{error:m}})=>jsx(t,{name:e,filesDetails:u,createFilesMutation:l,onFilesSelect:d,onRemove:t$1?void 0:a,onReorder:o?void 0:f,error:m?.message,...i})})},X=W;var _=({name:e,rules:r,createFilesMutation:l,getFileQuery:s,disableRemove:t,...o})=>{let{control:i}=useFormContext(),{fileDetails:n,handleFileSelect:u$1,handleRemove:d}=h(e,s);return jsx(Controller,{name:e,control:i,rules:r,render:({fieldState:{error:a}})=>jsx(u,{name:e,fileDetails:n,createFilesMutation:l,onFileSelect:u$1,onRemove:t?void 0:d,error:a?.message,...o})})},$=_;var oe=({name:e,rules:r,createFilesMutation:l,getFileQuery:s,disableRemove:t,hoverAlt:o,...i})=>{let{control:n}=useFormContext(),{fileDetails:u,handleFileSelect:d,handleRemove:a}=h(e,s);return jsx(Controller,{name:e,control:n,rules:r,render:({fieldState:{error:f}})=>jsx(v,{name:e,fileDetails:u,createFilesMutation:l,onFileSelect:d,onRemove:t?void 0:a,error:f?.message,hoverAlt:o,...i})})},te=oe;
|
|
24
21
|
|
|
25
22
|
export { G as AvatarUpload, K as MultiFileUpload, X as MultiImageUpload, $ as SingleFileUpload, te as SingleImageUpload };
|
|
26
23
|
//# sourceMappingURL=out.js.map
|
|
@@ -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":"8iBAAA,OAAS,cAAAA,EAAY,kBAAAC,MAAsB,kBCA3C,OAAS,aAAAC,EAAW,WAAAC,EAAS,UAAAC,EAAQ,YAAAC,MAAgB,QACrD,OAAS,kBAAAJ,MAAsB,kBASxB,IAAMK,EAAsB,CACjCC,EACAC,IACG,CACH,GAAM,CAAE,SAAAC,EAAU,MAAAC,CAAM,EAAIT,EAAe,EACrCU,EAAQD,EAAMH,CAAI,EAClB,CAACK,EAAaC,CAAc,EAAIR,EAAkC,EAExE,OAAAH,EAAU,IAAM,CACd,GAAI,CAACS,EAAO,CACVE,EAAe,MAAS,EACxB,QAEgB,SAAY,CAC5B,GAAI,CACF,IAAMC,EAAO,MAAMN,EAAaG,CAAK,EAAE,OAAO,EAC9CE,EAAe,CACb,GAAIC,EAAK,GACT,IAAKA,EAAK,IACV,KAAMA,EAAK,IACb,CAAC,CACH,MAAE,CACAD,EAAe,CAAE,GAAIF,EAAO,IAAK,EAAG,CAAC,CACvC,CACF,GACU,CACZ,EAAG,CAACA,EAAOH,CAAY,CAAC,EAUjB,CACL,YAAAI,EACA,iBAVwBE,GAAsB,CAC9CL,EAASF,EAAMO,EAAK,GAAI,CAAE,eAAgB,GAAM,YAAa,EAAK,CAAC,CACrE,EASE,aAPmB,IAAM,CACzBL,EAASF,EAAM,KAAM,CAAE,eAAgB,GAAM,YAAa,EAAK,CAAC,CAClE,CAMA,CACF,EAKaQ,EAAqB,CAChCR,EACAC,IACG,CACH,GAAM,CAAE,SAAAC,EAAU,MAAAC,CAAM,EAAIT,EAAe,EACrCe,EAAeN,EAAMH,CAAI,EACzBU,EAAed,EAAQ,IAAMa,GAAgB,CAAC,EAAG,CAACA,CAAY,CAAC,EAC/D,CAACE,EAAcC,CAAe,EAAId,EAAwB,CAAC,CAAC,EAC5De,EAAWhB,EAAiC,IAAI,GAAK,EAE3D,OAAAF,EAAU,IAAM,CACd,GAAI,CAACe,GAAgBA,EAAa,SAAW,EAAG,CAC9CE,EAAgB,CAAC,CAAC,EAClB,QAEiB,SAAY,CAC7B,GAAI,CAEF,IAAME,EAAY,CAAC,GAAG,IAAI,IAAIJ,CAAY,CAAC,EAErCK,EAAQF,EAAS,QACjBG,EAASF,EAAU,OAAOG,GAAM,CAACF,EAAM,IAAIE,CAAE,CAAC,EAEpD,GAAID,EAAO,OAAS,EAAG,CACrB,IAAME,EAAWF,EAAO,IAAI,MAAOC,GAAe,CAChD,GAAI,CACF,IAAMV,EAAO,MAAMN,EAAagB,CAAE,EAAE,OAAO,EACrCZ,EAAc,CAClB,GAAIE,EAAK,GACT,IAAKA,EAAK,IACV,KAAMA,EAAK,IACb,EACA,OAAAQ,EAAM,IAAIE,EAAIZ,CAAW,EAClBA,CACT,MAAE,CACA,IAAMc,EAAW,CAAE,GAAAF,EAAI,IAAK,EAAG,EAC/B,OAAAF,EAAM,IAAIE,EAAIE,CAAQ,EACfA,CACT,CACF,CAAC,EACD,MAAM,QAAQ,IAAID,CAAQ,EAG5B,IAAME,EAAUN,EAAU,IAAIG,GAAMF,EAAM,IAAIE,CAAE,CAAE,EAClDL,EAAgBQ,CAAO,CACzB,MAAE,CACAR,EAAgBF,EAAa,IAAKO,IAAgB,CAAE,GAAAA,EAAI,IAAK,EAAG,EAAE,CAAC,CACrE,CACF,GACW,CACb,EAAG,CAACP,EAAcT,CAAY,CAAC,EA8BxB,CACL,aAAAS,EACA,aAAAC,EACA,kBA/ByBU,GAAyB,CAClD,IAAML,EAASK,EAAM,IAAId,GAAQA,EAAK,EAAE,EAClCe,EAAa,CAAC,GAAG,IAAI,IAAI,CAAC,GAAGZ,EAAc,GAAGM,CAAM,CAAC,CAAC,EAC5Dd,EAASF,EAAMsB,EAAY,CACzB,eAAgB,GAChB,YAAa,EACf,CAAC,CACH,EAyBE,aAvBoBf,GAA0B,CAC9C,GAAI,CAACA,EAAM,OACX,IAAMe,EAAaZ,EAAa,OAAQO,GAAeA,IAAOV,EAAK,EAAE,EACrEL,EAASF,EAAMsB,EAAY,CACzB,eAAgB,GAChB,YAAa,EACf,CAAC,CACH,EAiBE,cAfoB,CAACC,EAAkBC,IAAqB,CAC5D,IAAMR,EAAS,CAAC,GAAGN,CAAY,EACzB,CAACe,CAAO,EAAIT,EAAO,OAAOO,EAAU,CAAC,EAC3CP,EAAO,OAAOQ,EAAU,EAAGC,CAAO,EAClCvB,EAASF,EAAMgB,EAAQ,CACrB,eAAgB,GAChB,YAAa,EACf,CAAC,CACH,CAQA,CACF,EDjFQ,cAAAU,MAAA,oBAvBR,IAAMC,EAAe,CAAC,CACpB,KAAA3B,EACA,MAAA4B,EACA,oBAAAC,EACA,aAAA5B,EACA,cAAA6B,EACA,YAAAC,EAAc,EACd,WAAAC,EAAa,GACb,QAAAC,EAAU,QACV,GAAGC,CACL,IAAkC,CAChC,GAAM,CAAE,QAAAC,CAAQ,EAAIzC,EAAe,EAC7B,CAAE,YAAAW,EAAa,iBAAA+B,EAAkB,aAAAC,CAAa,EAAItC,EACtDC,EACAC,CACF,EAEA,OACEyB,EAACjC,EAAA,CACC,KAAMO,EACN,QAASmC,EACT,MAAOP,EACP,OAAQ,CAAC,CAAE,WAAY,CAAE,MAAAU,CAAM,CAAE,IAC/BZ,EAACa,EAAA,CACC,KAAMvC,EACN,YAAaK,EACb,oBAAqBwB,EACrB,aAAcO,EACd,SAAUN,EAAgB,OAAYO,EACtC,YAAaN,EACb,WAAYC,EACZ,QAASC,EACT,MAAOK,GAAO,QACb,GAAGJ,EACN,EAEJ,CAEJ,EAEOM,EAAQb,EE/Ef,OAAS,cAAAlC,EAAY,kBAAAC,MAAsB,kBA6DnC,cAAAgC,MAAA,oBAnBR,IAAMe,EAAkB,CAAC,CACvB,KAAAzC,EACA,MAAA4B,EACA,oBAAAC,EACA,aAAA5B,EACA,cAAA6B,EACA,eAAAY,EACA,GAAGR,CACL,IAAgC,CAC9B,GAAM,CAAE,QAAAC,CAAQ,EAAIzC,EAAe,EAC7B,CAAE,aAAAiB,EAAc,kBAAAgC,EAAmB,aAAAN,EAAc,cAAAO,CAAc,EACnEpC,EAAmBR,EAAMC,CAAY,EAEvC,OACEyB,EAACjC,EAAA,CACC,KAAMO,EACN,QAASmC,EACT,MAAOP,EACP,OAAQ,CAAC,CAAE,WAAY,CAAE,MAAAU,CAAM,CAAE,IAC/BZ,EAACmB,EAAA,CACC,KAAM7C,EACN,aAAcW,EACd,oBAAqBkB,EACrB,cAAec,EACf,SAAUb,EAAgB,OAAYO,EACtC,UAAWK,EAAiB,OAAYE,EACxC,MAAON,GAAO,QACb,GAAGJ,EACN,EAEJ,CAEJ,EAEOY,EAAQL,EC5Ef,OAAS,cAAAhD,EAAY,kBAAAC,MAAsB,kBA6DnC,cAAAgC,MAAA,oBAnBR,IAAMqB,EAAmB,CAAC,CACxB,KAAA/C,EACA,MAAA4B,EACA,oBAAAC,EACA,aAAA5B,EACA,cAAA6B,EACA,eAAAY,EACA,GAAGR,CACL,IAAiC,CAC/B,GAAM,CAAE,QAAAC,CAAQ,EAAIzC,EAAe,EAC7B,CAAE,aAAAiB,EAAc,kBAAAgC,EAAmB,aAAAN,EAAc,cAAAO,CAAc,EACnEpC,EAAmBR,EAAMC,CAAY,EAEvC,OACEyB,EAACjC,EAAA,CACC,KAAMO,EACN,QAASmC,EACT,MAAOP,EACP,OAAQ,CAAC,CAAE,WAAY,CAAE,MAAAU,CAAM,CAAE,IAC/BZ,EAACsB,EAAA,CACC,KAAMhD,EACN,aAAcW,EACd,oBAAqBkB,EACrB,cAAec,EACf,SAAUb,EAAgB,OAAYO,EACtC,UAAWK,EAAiB,OAAYE,EACxC,MAAON,GAAO,QACb,GAAGJ,EACN,EAEJ,CAEJ,EAEOe,EAAQF,EC5Ef,OAAS,cAAAtD,EAAY,kBAAAC,MAAsB,kBA8DnC,cAAAgC,MAAA,oBApBR,IAAMwB,EAAmB,CAAC,CACxB,KAAAlD,EACA,MAAA4B,EACA,oBAAAC,EACA,aAAA5B,EACA,cAAA6B,EACA,GAAGI,CACL,IAAiC,CAC/B,GAAM,CAAE,QAAAC,CAAQ,EAAIzC,EAAe,EAC7B,CAAE,YAAAW,EAAa,iBAAA+B,EAAkB,aAAAC,CAAa,EAAItC,EACtDC,EACAC,CACF,EAEA,OACEyB,EAACjC,EAAA,CACC,KAAMO,EACN,QAASmC,EACT,MAAOP,EACP,OAAQ,CAAC,CAAE,WAAY,CAAE,MAAAU,CAAM,CAAE,IAC/BZ,EAACyB,EAAA,CACC,KAAMnD,EACN,YAAaK,EACb,oBAAqBwB,EACrB,aAAcO,EACd,SAAUN,EAAgB,OAAYO,EACtC,MAAOC,GAAO,QACb,GAAGJ,EACN,EAEJ,CAEJ,EAEOiB,EAAQD,EC5Ef,OAAS,cAAAzD,EAAY,kBAAAC,OAAsB,kBA+DnC,cAAAgC,MAAA,oBArBR,IAAM0B,GAAoB,CAAC,CACzB,KAAApD,EACA,MAAA4B,EACA,oBAAAC,EACA,aAAA5B,EACA,cAAA6B,EACA,SAAAuB,EACA,GAAGnB,CACL,IAAkC,CAChC,GAAM,CAAE,QAAAC,CAAQ,EAAIzC,GAAe,EAC7B,CAAE,YAAAW,EAAa,iBAAA+B,EAAkB,aAAAC,CAAa,EAAItC,EACtDC,EACAC,CACF,EAEA,OACEyB,EAACjC,EAAA,CACC,KAAMO,EACN,QAASmC,EACT,MAAOP,EACP,OAAQ,CAAC,CAAE,WAAY,CAAE,MAAAU,CAAM,CAAE,IAC/BZ,EAACa,EAAA,CACC,KAAMvC,EACN,YAAaK,EACb,oBAAqBwB,EACrB,aAAcO,EACd,SAAUN,EAAgB,OAAYO,EACtC,MAAOC,GAAO,QACd,SAAUe,EACT,GAAGnB,EACN,EAEJ,CAEJ,EAEOK,GAAQa","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,6 +1,6 @@
|
|
|
1
1
|
import { a as a$1 } from '../../chunk-RP7PNTLJ.js';
|
|
2
|
-
import { a } from '../../chunk-GPFANUMT.js';
|
|
3
2
|
import '../../chunk-E5ULJSWF.js';
|
|
3
|
+
import { a } from '../../chunk-GPFANUMT.js';
|
|
4
4
|
import '../../chunk-TVKBRJHF.js';
|
|
5
5
|
import { createContext, useState, useRef, useMemo, useEffect, useCallback, useContext } from 'react';
|
|
6
6
|
import { jsx } from 'react/jsx-runtime';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export { a as useThemeToggle } from '../chunk-UHXAPEIF.js';
|
|
2
|
-
import '../chunk-
|
|
2
|
+
import '../chunk-4RNGASI4.js';
|
|
3
3
|
import '../chunk-LDGBS7ZI.js';
|
|
4
|
-
import '../chunk-WUFEPE2G.js';
|
|
5
|
-
import '../chunk-2WG6OWB4.js';
|
|
6
4
|
import '../chunk-6W52DPH4.js';
|
|
7
5
|
import '../chunk-TWSAWMZ3.js';
|
|
8
6
|
import '../chunk-ROVD7OGE.js';
|
|
9
7
|
import '../chunk-EQYL7U3J.js';
|
|
8
|
+
import '../chunk-WUFEPE2G.js';
|
|
9
|
+
import '../chunk-2WG6OWB4.js';
|
|
10
10
|
import '../chunk-GLRLKFPS.js';
|
|
11
11
|
//# sourceMappingURL=out.js.map
|
|
12
12
|
//# sourceMappingURL=useThemeToggle.js.map
|
package/dist/hooks/useUpload.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { useFormContext } from 'react-hook-form';
|
|
3
|
+
|
|
4
|
+
function F(t,i){let{watch:r,setValue:n}=useFormContext(),[u,o]=useState(i),l=r(t)||[];return {uploadFile:async e=>{if(!e){n(t,void 0),o(void 0);return}n(t,e),o(Object.assign(e,{preview:URL.createObjectURL(e)}));},uploadFiles:async e=>{n(t,[...l,...e.map(s=>Object.assign(s,{preview:URL.createObjectURL(s)}))]);},handleDeleteFile:()=>{n(t,void 0),o(void 0);},handleRemoveAll:()=>{n(t,void 0);},handleRemove:e=>{let s=l.filter(a=>a!==e);n(t,s);},file:u,setFileValue:o}}var b=F;
|
|
5
|
+
|
|
6
|
+
export { b as default };
|
|
2
7
|
//# sourceMappingURL=out.js.map
|
|
3
8
|
//# sourceMappingURL=useUpload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useUpload.ts"],"names":["useState","useFormContext","useUpload","fieldName","urlImage","watch","setValue","fileValue","setFileValue","filesValues","file","files","filteredItems","f","useUpload_default"],"mappings":"AAAA,OAAS,YAAAA,MAAgB,QACzB,OAAS,kBAAAC,MAAsB,kBAI/B,SAASC,EAAUC,EAAmBC,EAAmB,CACvD,GAAM,CAAE,MAAAC,EAAO,SAAAC,CAAS,EAAIL,EAAe,EACrC,CAACM,EAAWC,CAAY,EAAIR,EAChCI,CACF,EACMK,EAAwBJ,EAAMF,CAAS,GAAK,CAAC,EA4CnD,MAAO,CACL,WA3CiB,MAAOO,GAAgB,CACxC,GAAI,CAACA,EAAM,CACTJ,EAASH,EAAW,MAAS,EAC7BK,EAAa,MAAS,EACtB,OAGFF,EAASH,EAAWO,CAAI,EAExBF,EACE,OAAO,OAAOE,EAAM,CAClB,QAAS,IAAI,gBAAgBA,CAAI,CACnC,CAAC,CACH,CACF,EA8BE,YA5BkB,MAAOC,GAAkB,CAC3CL,EAASH,EAAW,CAClB,GAAGM,EACH,GAAGE,EAAM,IAAKD,GACZ,OAAO,OAAOA,EAAM,CAClB,QAAS,IAAI,gBAAgBA,CAAI,CACnC,CAAC,CACH,CACF,CAAC,CACH,EAoBE,iBAlBuB,IAAM,CAC7BJ,EAASH,EAAW,MAAS,EAC7BK,EAAa,MAAS,CACxB,EAgBE,gBAdsB,IAAM,CAC5BF,EAASH,EAAW,MAAS,CAC/B,EAaE,aAXoBO,GAAwB,CAC5C,IAAME,EAAgBH,EAAY,OAAOI,GAAKA,IAAMH,CAAI,EAExDJ,EAASH,EAAWS,CAAa,CACnC,EAQE,KAAML,EACN,aAAAC,CACF,CACF,CAEA,IAAOM,EAAQZ","sourcesContent":["import { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { CustomFile } from 'types/upload';\n\nfunction useUpload(fieldName: string, urlImage?: string) {\n const { watch, setValue } = useFormContext();\n const [fileValue, setFileValue] = useState<CustomFile | string | undefined>(\n urlImage,\n );\n const filesValues: string[] = watch(fieldName) || [];\n\n const uploadFile = async (file?: File) => {\n if (!file) {\n setValue(fieldName, undefined);\n setFileValue(undefined);\n return;\n }\n\n setValue(fieldName, file);\n\n setFileValue(\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n );\n };\n\n const uploadFiles = async (files: File[]) => {\n setValue(fieldName, [\n ...filesValues,\n ...files.map((file: Blob | MediaSource) =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n ),\n ]);\n };\n\n const handleDeleteFile = () => {\n setValue(fieldName, undefined);\n setFileValue(undefined);\n };\n\n const handleRemoveAll = () => {\n setValue(fieldName, undefined);\n };\n\n const handleRemove = (file: File | string) => {\n const filteredItems = filesValues.filter(f => f !== file);\n\n setValue(fieldName, filteredItems);\n };\n\n return {\n uploadFile,\n uploadFiles,\n handleDeleteFile,\n handleRemoveAll,\n handleRemove,\n file: fileValue,\n setFileValue,\n };\n}\n\nexport default useUpload;\n"]}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import '
|
|
1
|
+
import { a } from '../chunk-E3R7W7GK.js';
|
|
2
|
+
import { useId, useState } from 'react';
|
|
3
|
+
import I from 'browser-image-compression';
|
|
4
|
+
|
|
5
|
+
var h=5242880,y=({onFileCropped:n,onImageUploaded:d,onCancel:i})=>{let l=useId(),[e,m]=useState(),[f,o,a$1]=a(),[u,r]=useState(),[v,p]=useState(!1);return {id:l,setCropModalOpen:a$1,handleRemove:()=>{n(void 0),d(void 0),a$1(!1);},toggleCropModalOpen:o,cropModalOpen:f,cancelChanges:()=>{i&&i(),a$1(!1);},saveChanges:()=>{e!==void 0&&e.getCroppedCanvas().toBlob(async g=>{try{if(!g)return;p(!0);let s=new File([g],"imagem.png",{type:"image/png"});if(s.size>h){let C=await I(s,{maxSizeMB:5});n(C),o();return}n(s),o();}finally{p(!1);}},"image/png",1);},previewImage:()=>{e!==void 0&&r(e.getCroppedCanvas().toDataURL());},setCropper:m,preview:u,closePreviewImage:()=>r(void 0),saving:v}},x=y;
|
|
6
|
+
|
|
7
|
+
export { x as default };
|
|
3
8
|
//# sourceMappingURL=out.js.map
|
|
4
9
|
//# sourceMappingURL=useUploadImage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useUploadImage.ts"],"names":["useId","useState","imageCompression","FIVE_MB","useUploadImage","onFileCropped","onImageUploaded","onCancel","id","cropper","setCropper","cropModalOpen","toggleCropModalOpen","setCropModalOpen","useToggle_default","preview","setPreview","saving","setSaving","blob","file","compressedFile","useUploadImage_default"],"mappings":"yCACA,OAAS,SAAAA,EAAO,YAAAC,MAAgB,QAChC,OAAOC,MAAsB,4BAU7B,IAAMC,EAAU,QAEVC,EAAiB,CAAC,CACtB,cAAAC,EACA,gBAAAC,EACA,SAAAC,CACF,IAAa,CACX,IAAMC,EAAKR,EAAM,EACX,CAACS,EAASC,CAAU,EAAIT,EAAc,EACtC,CAACU,EAAeC,EAAqBC,CAAgB,EAAIC,EAAU,EACnE,CAACC,EAASC,CAAU,EAAIf,EAAiB,EACzC,CAACgB,EAAQC,CAAS,EAAIjB,EAAS,EAAK,EAuD1C,MAAO,CACL,GAAAO,EACA,iBAAAK,EACA,aATmB,IAAM,CACzBR,EAAc,MAAS,EACvBC,EAAgB,MAAS,EACzBO,EAAiB,EAAK,CACxB,EAME,oBAAAD,EACA,cAAAD,EACA,cA3DoB,IAAM,CACtBJ,GAAUA,EAAS,EACvBM,EAAiB,EAAK,CACxB,EAyDE,YA/CkB,IAAM,CACpBJ,IAAY,QAEhBA,EAAQ,iBAAiB,EAAE,OACzB,MAAOU,GAAc,CACnB,GAAI,CACF,GAAI,CAACA,EAAM,OAEXD,EAAU,EAAI,EAEd,IAAME,EAAO,IAAI,KAAK,CAACD,CAAI,EAAG,aAAc,CAAE,KAAM,WAAY,CAAC,EAEjE,GAAIC,EAAK,KAAOjB,EAAS,CACvB,IAAMkB,EAAiB,MAAMnB,EAAiBkB,EAAM,CAClD,UAAW,CACb,CAAC,EAEDf,EAAcgB,CAAc,EAC5BT,EAAoB,EAEpB,OAGFP,EAAce,CAAI,EAClBR,EAAoB,CACtB,QAAE,CACAM,EAAU,EAAK,CACjB,CACF,EACA,YACA,CACF,CACF,EAgBE,aAxDmB,IAAM,CACrBT,IAAY,QAEhBO,EAAWP,EAAQ,iBAAiB,EAAE,UAAU,CAAC,CACnD,EAqDE,WAAAC,EACA,QAAAK,EACA,kBArDwB,IAAMC,EAAW,MAAS,EAsDlD,OAAAC,CACF,CACF,EAEOK,EAAQlB","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useId, useState } from 'react';\nimport imageCompression from 'browser-image-compression';\n\nimport useToggle from './useToggle';\n\ninterface Props {\n onFileCropped(file?: File): void;\n onImageUploaded(image?: string): void;\n onCancel?: VoidFunction;\n}\n\nconst FIVE_MB = 5242880;\n\nconst useUploadImage = ({\n onFileCropped,\n onImageUploaded,\n onCancel,\n}: Props) => {\n const id = useId();\n const [cropper, setCropper] = useState<any>();\n const [cropModalOpen, toggleCropModalOpen, setCropModalOpen] = useToggle();\n const [preview, setPreview] = useState<string>();\n const [saving, setSaving] = useState(false);\n\n const cancelChanges = () => {\n if (onCancel) onCancel();\n setCropModalOpen(false);\n };\n\n const previewImage = () => {\n if (cropper === undefined) return;\n\n setPreview(cropper.getCroppedCanvas().toDataURL());\n };\n\n const closePreviewImage = () => setPreview(undefined);\n\n const saveChanges = () => {\n if (cropper === undefined) return;\n\n cropper.getCroppedCanvas().toBlob(\n async (blob: any) => {\n try {\n if (!blob) return;\n\n setSaving(true);\n\n const file = new File([blob], 'imagem.png', { type: 'image/png' });\n\n if (file.size > FIVE_MB) {\n const compressedFile = await imageCompression(file, {\n maxSizeMB: 5,\n });\n\n onFileCropped(compressedFile);\n toggleCropModalOpen();\n\n return;\n }\n\n onFileCropped(file);\n toggleCropModalOpen();\n } finally {\n setSaving(false);\n }\n },\n 'image/png',\n 1,\n );\n };\n\n const handleRemove = () => {\n onFileCropped(undefined);\n onImageUploaded(undefined);\n setCropModalOpen(false);\n };\n\n return {\n id,\n setCropModalOpen,\n handleRemove,\n toggleCropModalOpen,\n cropModalOpen,\n cancelChanges,\n saveChanges,\n previewImage,\n setCropper,\n preview,\n closePreviewImage,\n saving,\n };\n};\n\nexport default useUploadImage;\n"]}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
export { a as useThemeToggle } from './chunk-UHXAPEIF.js';
|
|
2
|
-
export { b as ThemeProvider, a as createTheme } from './chunk-
|
|
2
|
+
export { b as ThemeProvider, a as createTheme } from './chunk-4RNGASI4.js';
|
|
3
3
|
import './chunk-LDGBS7ZI.js';
|
|
4
|
-
import './chunk-WUFEPE2G.js';
|
|
5
|
-
export { c as SettingsProvider, b as useSettingsContext } from './chunk-2WG6OWB4.js';
|
|
6
4
|
export { b as defaultFont, c as primaryFont, d as secondaryFont, a as shadows, e as typography } from './chunk-6W52DPH4.js';
|
|
7
5
|
import './chunk-TWSAWMZ3.js';
|
|
8
6
|
import './chunk-ROVD7OGE.js';
|
|
9
7
|
export { l as action, k as background, m as basePalette, p as colorSchemes, i as common, a as components, q as createShadowColor, r as customShadows, o as darkPalette, h as error, b as grey, e as info, n as lightPalette, c as primary, d as secondary, f as success, j as text, g as warning } from './chunk-EQYL7U3J.js';
|
|
8
|
+
import './chunk-WUFEPE2G.js';
|
|
9
|
+
export { c as SettingsProvider, b as useSettingsContext } from './chunk-2WG6OWB4.js';
|
|
10
10
|
export { a as THEME_CONFIG, q as bgBlur, p as bgGradient, o as borderGradient, j as createPaletteChannel, h as hexToRgbChannel, i as hexToRgbaChannel, l as hideScrollX, m as hideScrollY, r as maxLine, c as mediaQueries, t as menuItem, s as paper, f as pxToRem, e as remToPx, g as responsiveFontSizes, d as setFont, b as stylesMode, n as textGradient, k as varAlpha } from './chunk-GLRLKFPS.js';
|
|
11
|
-
|
|
12
|
-
var Y=()=>!0;
|
|
13
|
-
|
|
14
|
-
export { Y as test };
|
|
15
11
|
//# sourceMappingURL=out.js.map
|
|
16
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { b as default } from '../chunk-
|
|
1
|
+
export { b as default } from '../chunk-4RNGASI4.js';
|
|
2
2
|
import '../chunk-LDGBS7ZI.js';
|
|
3
|
-
import '../chunk-WUFEPE2G.js';
|
|
4
|
-
export { b as useSettingsContext } from '../chunk-2WG6OWB4.js';
|
|
5
3
|
import '../chunk-6W52DPH4.js';
|
|
6
4
|
import '../chunk-TWSAWMZ3.js';
|
|
7
5
|
import '../chunk-ROVD7OGE.js';
|
|
8
6
|
import '../chunk-EQYL7U3J.js';
|
|
7
|
+
import '../chunk-WUFEPE2G.js';
|
|
8
|
+
export { b as useSettingsContext } from '../chunk-2WG6OWB4.js';
|
|
9
9
|
export { a as THEME_CONFIG } from '../chunk-GLRLKFPS.js';
|
|
10
10
|
//# sourceMappingURL=out.js.map
|
|
11
11
|
//# sourceMappingURL=theme-provider.js.map
|
package/dist/utils/dnd.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export
|
|
2
|
-
import i, { useState, useCallback } from 'react';
|
|
1
|
+
export * from '@dnd-kit/accessibility';
|
|
3
2
|
export * from '@dnd-kit/core';
|
|
4
3
|
export * from '@dnd-kit/modifiers';
|
|
5
4
|
export * from '@dnd-kit/sortable';
|
|
5
|
+
export * from '@dnd-kit/utilities';
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var t=(e,r)=>{if(e?.data?.current)return e.data.current[r]},n=e=>t(e,"index")||0;
|
|
8
8
|
|
|
9
|
-
export {
|
|
9
|
+
export { t as getData, n as getIndex };
|
|
10
10
|
//# sourceMappingURL=out.js.map
|
|
11
11
|
//# sourceMappingURL=dnd.js.map
|
package/dist/utils/dnd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../
|
|
1
|
+
{"version":3,"sources":["../../src/utils/dnd.ts"],"names":["getData","data","propName","getIndex"],"mappings":"AAEA,WAAc,yBACd,WAAc,gBACd,WAAc,qBACd,WAAc,oBACd,WAAc,qBAEP,IAAMA,EAAU,CACrBC,EACAC,IACkB,CAClB,GAAKD,GAAM,MAAM,QAEjB,OAAOA,EAAK,KAAK,QAAQC,CAAQ,CACnC,EAEaC,EAAYF,GAChBD,EAAgBC,EAAM,OAAO,GAAK","sourcesContent":["import { Active, Over } from '@dnd-kit/core';\n\nexport * from '@dnd-kit/accessibility';\nexport * from '@dnd-kit/core';\nexport * from '@dnd-kit/modifiers';\nexport * from '@dnd-kit/sortable';\nexport * from '@dnd-kit/utilities';\n\nexport const getData = <T>(\n data: Active | Over | undefined,\n propName: string,\n): T | undefined => {\n if (!data?.data?.current) return undefined;\n\n return data.data.current[propName];\n};\n\nexport const getIndex = (data: Active | Over | undefined) => {\n return getData<number>(data, 'index') || 0;\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zydon/common",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.64",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -116,6 +116,7 @@
|
|
|
116
116
|
"autoprefixer": "^10.4.20",
|
|
117
117
|
"eslint": "^8.47.0",
|
|
118
118
|
"eslint-config-prettier": "^9.0.0",
|
|
119
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
119
120
|
"eslint-plugin-prettier": "^5.0.0",
|
|
120
121
|
"eslint-plugin-react": "^7.33.2",
|
|
121
122
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
@@ -138,9 +139,11 @@
|
|
|
138
139
|
"vite": "^6.0.7"
|
|
139
140
|
},
|
|
140
141
|
"dependencies": {
|
|
142
|
+
"@dnd-kit/accessibility": "^3.1.1",
|
|
141
143
|
"@dnd-kit/core": "^6.3.1",
|
|
142
144
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
143
145
|
"@dnd-kit/sortable": "^10.0.0",
|
|
146
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
144
147
|
"browser-image-compression": "^2.0.2",
|
|
145
148
|
"card-validator": "^10.0.3",
|
|
146
149
|
"color": "^4.2.3",
|
package/dist/chunk-33C6UWPV.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';
|
|
2
|
-
|
|
3
|
-
function Y(){for(var n=arguments.length,t=new Array(n),e=0;e<n;e++)t[e]=arguments[e];return useMemo(()=>u=>{t.forEach(r=>r(u));},t)}var D=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function a(n){let t=Object.prototype.toString.call(n);return t==="[object Window]"||t==="[object global]"}function b(n){return "nodeType"in n}function c(n){var t,e;return n?a(n)?n:b(n)&&(t=(e=n.ownerDocument)==null?void 0:e.defaultView)!=null?t:window:window}function j(n){let{Document:t}=c(n);return n instanceof t}function C(n){return a(n)?!1:n instanceof c(n).HTMLElement}function L(n){return n instanceof c(n).SVGElement}function x(n){return n?a(n)?n.document:b(n)?j(n)?n:C(n)||L(n)?n.ownerDocument:document:document:document}var E=D?useLayoutEffect:useEffect;function M(n){let t=useRef(n);return E(()=>{t.current=n;}),useCallback(function(){for(var e=arguments.length,u=new Array(e),r=0;r<e;r++)u[r]=arguments[r];return t.current==null?void 0:t.current(...u)},[])}function A(){let n=useRef(null),t=useCallback((u,r)=>{n.current=setInterval(u,r);},[]),e=useCallback(()=>{n.current!==null&&(clearInterval(n.current),n.current=null);},[]);return [t,e]}function I(n,t){t===void 0&&(t=[n]);let e=useRef(n);return E(()=>{e.current!==n&&(e.current=n);},t),e}function v(n,t){let e=useRef();return useMemo(()=>{let u=n(e.current);return e.current=u,u},[...t])}function N(n){let t=M(n),e=useRef(null),u=useCallback(r=>{r!==e.current&&t?.(r,e.current),e.current=r;},[]);return [e,u]}function F(n){let t=useRef();return useEffect(()=>{t.current=n;},[n]),t.current}var f={};function H(n,t){return useMemo(()=>{if(t)return t;let e=f[n]==null?0:f[n]+1;return f[n]=e,n+"-"+e},[n,t])}function S(n){return function(t){for(var e=arguments.length,u=new Array(e>1?e-1:0),r=1;r<e;r++)u[r-1]=arguments[r];return u.reduce((s,T)=>{let y=Object.entries(T);for(let[d,p]of y){let m=s[d];m!=null&&(s[d]=m+n*p);}return s},{...t})}}var W=S(1),q=S(-1);function O(n){return "clientX"in n&&"clientY"in n}function z(n){if(!n)return !1;let{KeyboardEvent:t}=c(n.target);return t&&n instanceof t}function V(n){if(!n)return !1;let{TouchEvent:t}=c(n.target);return t&&n instanceof t}function G(n){if(V(n)){if(n.touches&&n.touches.length){let{clientX:t,clientY:e}=n.touches[0];return {x:t,y:e}}else if(n.changedTouches&&n.changedTouches.length){let{clientX:t,clientY:e}=n.changedTouches[0];return {x:t,y:e}}}return O(n)?{x:n.clientX,y:n.clientY}:null}var w=Object.freeze({Translate:{toString(n){if(!n)return;let{x:t,y:e}=n;return "translate3d("+(t?Math.round(t):0)+"px, "+(e?Math.round(e):0)+"px, 0)"}},Scale:{toString(n){if(!n)return;let{scaleX:t,scaleY:e}=n;return "scaleX("+t+") scaleY("+e+")"}},Transform:{toString(n){if(n)return [w.Translate.toString(n),w.Scale.toString(n)].join(" ")}},Transition:{toString(n){let{property:t,duration:e,easing:u}=n;return t+" "+e+"ms "+u}}}),h="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function K(n){return n.matches(h)?n:n.querySelector(h)}
|
|
4
|
-
|
|
5
|
-
export { Y as a, D as b, a as c, b as d, c as e, j as f, C as g, L as h, x as i, E as j, M as k, A as l, I as m, v as n, N as o, F as p, H as q, W as r, q as s, O as t, z as u, V as v, G as w, w as x, K as y };
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=chunk-33C6UWPV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/@dnd-kit/utilities/src/hooks/useCombinedRefs.ts","../node_modules/@dnd-kit/utilities/src/execution-context/canUseDOM.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isWindow.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isNode.ts","../node_modules/@dnd-kit/utilities/src/execution-context/getWindow.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isDocument.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isHTMLElement.ts","../node_modules/@dnd-kit/utilities/src/type-guards/isSVGElement.ts","../node_modules/@dnd-kit/utilities/src/execution-context/getOwnerDocument.ts","../node_modules/@dnd-kit/utilities/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/@dnd-kit/utilities/src/hooks/useEvent.ts","../node_modules/@dnd-kit/utilities/src/hooks/useInterval.ts","../node_modules/@dnd-kit/utilities/src/hooks/useLatestValue.ts","../node_modules/@dnd-kit/utilities/src/hooks/useLazyMemo.ts","../node_modules/@dnd-kit/utilities/src/hooks/useNodeRef.ts","../node_modules/@dnd-kit/utilities/src/hooks/usePrevious.ts","../node_modules/@dnd-kit/utilities/src/hooks/useUniqueId.ts","../node_modules/@dnd-kit/utilities/src/adjustment.ts","../node_modules/@dnd-kit/utilities/src/event/hasViewportRelativeCoordinates.ts","../node_modules/@dnd-kit/utilities/src/event/isKeyboardEvent.ts","../node_modules/@dnd-kit/utilities/src/event/isTouchEvent.ts","../node_modules/@dnd-kit/utilities/src/coordinates/getEventCoordinates.ts","../node_modules/@dnd-kit/utilities/src/css.ts","../node_modules/@dnd-kit/utilities/src/focus/findFirstFocusableNode.ts"],"names":["useCombinedRefs","refs","useMemo","node","forEach","ref","canUseDOM","window","document","createElement","isWindow","element","elementString","Object","prototype","toString","call","isNode","getWindow","target","_target$ownerDocument","_target$ownerDocument2","ownerDocument","defaultView","isDocument","Document","isHTMLElement","HTMLElement","isSVGElement","SVGElement","getOwnerDocument","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useEvent","handler","handlerRef","useRef","current","useCallback","args","useInterval","intervalRef","set","listener","duration","setInterval","clear","clearInterval","useLatestValue","value","dependencies","valueRef","useLazyMemo","callback","newValue","useNodeRef","onChange","onChangeHandler","setNodeRef","usePrevious","ids","useUniqueId","prefix","id","createAdjustmentFn","modifier","object","adjustments","reduce","accumulator","adjustment","entries","key","valueAdjustment","add","subtract","hasViewportRelativeCoordinates","event","isKeyboardEvent","KeyboardEvent","isTouchEvent","TouchEvent","getEventCoordinates","touches","length","clientX","x","clientY","y","changedTouches","CSS","freeze","Translate","transform","Math","round","Scale","scaleX","scaleY","Transform","join","Transition","_ref","property","easing","SELECTOR","findFirstFocusableNode","matches","querySelector"],"mappings":"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","sourcesContent":["import {useMemo} from 'react';\n\nexport function useCombinedRefs<T>(\n ...refs: ((node: T) => void)[]\n): (node: T) => void {\n return useMemo(\n () => (node: T) => {\n refs.forEach((ref) => ref(node));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n refs\n );\n}\n","// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nexport const canUseDOM =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined';\n","export function isWindow(element: Object): element is typeof window {\n const elementString = Object.prototype.toString.call(element);\n return (\n elementString === '[object Window]' ||\n // In Electron context the Window object serializes to [object global]\n elementString === '[object global]'\n );\n}\n","export function isNode(node: Object): node is Node {\n return 'nodeType' in node;\n}\n","import {isWindow} from '../type-guards/isWindow';\nimport {isNode} from '../type-guards/isNode';\n\nexport function getWindow(target: Event['target']): typeof window {\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return target.ownerDocument?.defaultView ?? window;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nexport function isDocument(node: Node): node is Document {\n const {Document} = getWindow(node);\n\n return node instanceof Document;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nimport {isWindow} from './isWindow';\n\nexport function isHTMLElement(node: Node | Window): node is HTMLElement {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n","import {getWindow} from '../execution-context/getWindow';\n\nexport function isSVGElement(node: Node): node is SVGElement {\n return node instanceof getWindow(node).SVGElement;\n}\n","import {\n isWindow,\n isHTMLElement,\n isDocument,\n isNode,\n isSVGElement,\n} from '../type-guards';\n\nexport function getOwnerDocument(target: Event['target']): Document {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n","import {useEffect, useLayoutEffect} from 'react';\n\nimport {canUseDOM} from '../execution-context';\n\n/**\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\n */\nexport const useIsomorphicLayoutEffect = canUseDOM\n ? useLayoutEffect\n : useEffect;\n","import {useCallback, useRef} from 'react';\n\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport function useEvent<T extends Function>(handler: T | undefined) {\n const handlerRef = useRef<T | undefined>(handler);\n\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n\n return useCallback(function (...args: any) {\n return handlerRef.current?.(...args);\n }, []);\n}\n","import {useCallback, useRef} from 'react';\n\nexport function useInterval() {\n const intervalRef = useRef<number | null>(null);\n\n const set = useCallback((listener: Function, duration: number) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n\n return [set, clear] as const;\n}\n","import {useRef} from 'react';\nimport type {DependencyList} from 'react';\n\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport function useLatestValue<T extends any>(\n value: T,\n dependencies: DependencyList = [value]\n) {\n const valueRef = useRef<T>(value);\n\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n\n return valueRef;\n}\n","import {useMemo, useRef} from 'react';\n\nexport function useLazyMemo<T>(\n callback: (prevValue: T | undefined) => T,\n dependencies: any[]\n) {\n const valueRef = useRef<T>();\n\n return useMemo(\n () => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n\n return newValue;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]\n );\n}\n","import {useRef, useCallback} from 'react';\n\nimport {useEvent} from './useEvent';\n\nexport function useNodeRef(\n onChange?: (\n newElement: HTMLElement | null,\n previousElement: HTMLElement | null\n ) => void\n) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef<HTMLElement | null>(null);\n const setNodeRef = useCallback(\n (element: HTMLElement | null) => {\n if (element !== node.current) {\n onChangeHandler?.(element, node.current);\n }\n\n node.current = element;\n },\n //eslint-disable-next-line\n []\n );\n\n return [node, setNodeRef] as const;\n}\n","import {useRef, useEffect} from 'react';\n\nexport function usePrevious<T>(value: T) {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n","import {useMemo} from 'react';\n\nlet ids: Record<string, number> = {};\n\nexport function useUniqueId(prefix: string, value?: string) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n\n return `${prefix}-${id}`;\n }, [prefix, value]);\n}\n","function createAdjustmentFn(modifier: number) {\n return <T extends Record<U, number>, U extends string>(\n object: T,\n ...adjustments: Partial<T>[]\n ): T => {\n return adjustments.reduce<T>(\n (accumulator, adjustment) => {\n const entries = Object.entries(adjustment) as [U, number][];\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = (value + modifier * valueAdjustment) as T[U];\n }\n }\n\n return accumulator;\n },\n {\n ...object,\n }\n );\n };\n}\n\nexport const add = createAdjustmentFn(1);\nexport const subtract = createAdjustmentFn(-1);\n","export function hasViewportRelativeCoordinates(\n event: Event\n): event is Event & Pick<PointerEvent, 'clientX' | 'clientY'> {\n return 'clientX' in event && 'clientY' in event;\n}\n","import {getWindow} from '../execution-context';\n\nexport function isKeyboardEvent(\n event: Event | undefined | null\n): event is KeyboardEvent {\n if (!event) {\n return false;\n }\n\n const {KeyboardEvent} = getWindow(event.target);\n\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n","import {getWindow} from '../execution-context';\n\nexport function isTouchEvent(\n event: Event | undefined | null\n): event is TouchEvent {\n if (!event) {\n return false;\n }\n\n const {TouchEvent} = getWindow(event.target);\n\n return TouchEvent && event instanceof TouchEvent;\n}\n","import type {Coordinates} from './types';\nimport {isTouchEvent, hasViewportRelativeCoordinates} from '../event';\n\n/**\n * Returns the normalized x and y coordinates for mouse and touch events.\n */\nexport function getEventCoordinates(event: Event): Coordinates | null {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {clientX: x, clientY: y} = event.touches[0];\n\n return {\n x,\n y,\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {clientX: x, clientY: y} = event.changedTouches[0];\n\n return {\n x,\n y,\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n }\n\n return null;\n}\n","export type Transform = {\n x: number;\n y: number;\n scaleX: number;\n scaleY: number;\n};\n\nexport interface Transition {\n property: string;\n easing: string;\n duration: number;\n}\n\nexport const CSS = Object.freeze({\n Translate: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n const {x, y} = transform;\n\n return `translate3d(${x ? Math.round(x) : 0}px, ${\n y ? Math.round(y) : 0\n }px, 0)`;\n },\n },\n Scale: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n const {scaleX, scaleY} = transform;\n\n return `scaleX(${scaleX}) scaleY(${scaleY})`;\n },\n },\n Transform: {\n toString(transform: Transform | null) {\n if (!transform) {\n return;\n }\n\n return [\n CSS.Translate.toString(transform),\n CSS.Scale.toString(transform),\n ].join(' ');\n },\n },\n Transition: {\n toString({property, duration, easing}: Transition) {\n return `${property} ${duration}ms ${easing}`;\n },\n },\n});\n","const SELECTOR =\n 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\n\nexport function findFirstFocusableNode(\n element: HTMLElement\n): HTMLElement | null {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n"]}
|
package/dist/chunk-6WGKIN5L.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { d, c } from './chunk-WQSRNCNF.js';
|
|
2
|
-
import { e } from './chunk-OF6623HG.js';
|
|
3
|
-
import { k } from './chunk-GLRLKFPS.js';
|
|
4
|
-
import b from '@mui/material/Box';
|
|
5
|
-
import h from '@mui/material/Paper';
|
|
6
|
-
import f from '@mui/material/Typography';
|
|
7
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
|
-
import C from '@mui/material/CircularProgress';
|
|
9
|
-
import a from '@mui/material/IconButton';
|
|
10
|
-
import l from '@mui/material/Stack';
|
|
11
|
-
import { styled, alpha } from '@mui/material/styles';
|
|
12
|
-
import { m } from 'framer-motion';
|
|
13
|
-
|
|
14
|
-
function x(o){return typeof o=="string"?{key:o,preview:o,name:d(o),type:c(o),size:void 0,path:o,lastModified:void 0,lastModifiedDate:void 0}:{key:`key:${o.name}`,name:o.name,size:o.size,path:o.path,type:o.type,preview:o.preview,lastModified:o.lastModified,lastModifiedDate:o.lastModifiedDate}}function M({files:o}){return o.length?jsx(h,{variant:"outlined",sx:{py:1,px:2,mt:3,textAlign:"left",borderStyle:"dashed",borderColor:"error.main",bgcolor:t=>k(t.vars.palette.error.mainChannel,.08)},children:o.map(({file:t,errors:i})=>{let{path:n,size:s}=x(t),y=s?e(s):"";return jsxs(b,{sx:{my:1},children:[jsxs(f,{variant:"subtitle2",noWrap:!0,children:[n," - ",y," "]}),i.map(d=>jsxs(b,{component:"span",sx:{typography:"caption"},children:["- ",d.message]},d.code))]},n)})}):null}var q=styled(l)({position:"relative",width:"100%",borderRadius:8,overflow:"hidden","&:hover .actions":{display:"flex"}}),G=styled(l)(({theme:o})=>({display:"none",position:"absolute",alignItems:"center",justifyContent:"center",flexDirection:"row",gap:12,width:"100%",height:"100%",backgroundColor:alpha(o.palette.primary.main,.9),zIndex:999,button:{"&, &:hover, &:focus":{backgroundColor:o.palette.background.paper}}})),H=styled(C)(({theme:o})=>({position:"absolute",width:"100%",height:"100%",zIndex:99,backgroundColor:o.palette.background.paper,borderRadius:"50%"})),J=styled(a)(({theme:o})=>({position:"relative",zIndex:999,pointerEvents:"auto",bgcolor:alpha(o.palette.grey[900],.72),"&:hover":{backgroundColor:alpha(o.palette.grey[900],.48)}})),K=styled("div")({position:"relative",zIndex:1,userSelect:"none",WebkitUserSelect:"none",WebkitTouchCallout:"none","&:hover":{zIndex:2}}),Q=styled(l)(({theme:o,width:t,isDragging:i})=>({width:t,height:80,alignItems:"center",display:"inline-flex",justifyContent:"center",margin:o.spacing(.5),padding:o.spacing(2,1,2,1),borderRadius:o.spacing(1.25),overflow:"hidden",position:"relative",border:`solid 1px ${o.palette.divider}`,backgroundColor:o.palette.common.white,zIndex:1,transition:"box-shadow 150ms ease-in-out",boxShadow:i?`0 0 0 2px ${o.palette.primary.main}, ${o.customShadows.z8}, inset 0 0 0 1000px ${alpha(o.palette.primary.main,.06)}`:"0px 0px 0px 0px rgba(0, 0, 0, 0)"})),V=styled(m.div)(({theme:o,width:t,isDragging:i})=>({width:t,height:60,alignItems:"center",display:"inline-flex",justifyContent:"center",margin:o.spacing(.5),padding:o.spacing(2),borderRadius:o.spacing(1.25),overflow:"hidden",position:"relative",border:`solid 1px ${o.palette.divider}`,backgroundColor:o.palette.common.white,zIndex:1,transition:"box-shadow 150ms ease-in-out",boxShadow:i?`0 0 0 2px ${o.palette.primary.main}, ${o.customShadows.z8}, inset 0 0 0 1000px ${alpha(o.palette.primary.main,.06)}`:"0px 0px 0px 0px rgba(0, 0, 0, 0)"})),X=styled(a)(({theme:o})=>({width:36,height:36,position:"absolute",top:10,right:10,borderRadius:0,zIndex:1,opacity:0,transition:"opacity 50ms ease-in-out",color:o.palette.error.main,backgroundColor:alpha(o.palette.common.white,.8),"&:hover":{backgroundColor:alpha(o.palette.common.white,.8),opacity:1}})),Y=styled(a)(({theme:o})=>({width:24,height:24,position:"absolute",top:18,right:8,borderRadius:12,opacity:1,zIndex:1,transition:"opacity 50ms ease-in-out",color:o.palette.grey[500],backgroundColor:o.palette.common.white,"&:hover":{backgroundColor:o.palette.common.white}})),Z=styled(a,{shouldForwardProp:o=>o!=="isMainImage"})(({theme:o,isMainImage:t})=>({color:t?o.palette.secondary.main:o.palette.action.disabled,backgroundColor:o.palette.common.white," &:hover":{backgroundColor:o.palette.common.white},top:4,left:8,padding:o.spacing(.5),border:"1px solid",borderColor:t?o.palette.secondary.main:o.palette.divider})),_=styled(a)(({theme:o})=>({top:16,right:16,zIndex:9,position:"absolute",color:alpha(o.palette.common.white,.8),bgcolor:alpha(o.palette.grey[900],.72),"&:hover":{bgcolor:alpha(o.palette.grey[900],.48)}})),oo=styled(b,{shouldForwardProp:o=>o!=="isDragActive"&&o!=="disabled"&&o!=="hasError"})(({theme:o,isDragActive:t,disabled:i,hasError:n})=>({width:64,height:64,flexShrink:0,display:"flex",borderRadius:1,cursor:"pointer",alignItems:"center",color:o.palette.text.disabled,justifyContent:"center",bgcolor:alpha(o.palette.grey[500],.08),border:`dashed 1px ${alpha(o.palette.grey[500],.16)}`,...t&&{opacity:.72},...i&&{opacity:.48,pointerEvents:"none"},...n&&{color:o.palette.error.main,borderColor:o.palette.error.main,bgcolor:alpha(o.palette.error.main,.08)},"&:hover":{opacity:.72}}));
|
|
15
|
-
|
|
16
|
-
export { x as a, q as b, G as c, H as d, J as e, K as f, Q as g, V as h, X as i, Y as j, Z as k, _ as l, oo as m, M as n };
|
|
17
|
-
//# sourceMappingURL=out.js.map
|
|
18
|
-
//# sourceMappingURL=chunk-6WGKIN5L.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/upload/components/rejection-files.tsx","../src/components/file-thumbnail/utils.ts","../src/components/upload/styles.ts"],"names":["Box","Paper","Typography","fileData","file","fileNameByUrl","fileTypeByUrl","jsx","jsxs","RejectionFiles","files","theme","varAlpha","errors","path","size","sizeText","fData","error","CircularProgress","IconButton","Stack","alpha","styled","m","Container","OverlayActions","AvatarLoading","CloseIconButton","DragWrapper","FrameFileThumbnail","width","isDragging","FrameImageThumbnail","DeleteItemButton","DeleteFileButton","StarButton","prop","isMainImage","DeleteButton","BoxUpload","isDragActive","disabled","hasError"],"mappings":"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","sourcesContent":["/* eslint-disable react/function-component-definition */\nimport type { FileRejection } from 'react-dropzone';\nimport Box from '@mui/material/Box';\nimport Paper from '@mui/material/Paper';\nimport Typography from '@mui/material/Typography';\n\nimport { varAlpha } from 'theme/styles';\nimport { fData } from 'utils/formatNumber';\n\nimport { fileData } from '../../file-thumbnail';\n\n// ----------------------------------------------------------------------\n\ntype Props = {\n files: FileRejection[];\n};\n\nexport function RejectionFiles({ files }: Props) {\n if (!files.length) {\n return null;\n }\n\n return (\n <Paper\n variant=\"outlined\"\n sx={{\n py: 1,\n px: 2,\n mt: 3,\n textAlign: 'left',\n borderStyle: 'dashed',\n borderColor: 'error.main',\n bgcolor: theme => varAlpha(theme.vars.palette.error.mainChannel, 0.08),\n }}\n >\n {files.map(({ file, errors }) => {\n const { path, size } = fileData(file);\n /* istanbul ignore else */\n const sizeText = size ? fData(size) : '';\n return (\n <Box key={path} sx={{ my: 1 }}>\n <Typography variant=\"subtitle2\" noWrap>\n {path} - {sizeText}{' '}\n </Typography>\n {errors.map(error => (\n <Box\n key={error.code}\n component=\"span\"\n sx={{ typography: 'caption' }}\n >\n - {error.message}\n </Box>\n ))}\n </Box>\n );\n })}\n </Paper>\n );\n}\n","import {\n fileFormat,\n fileNameByUrl,\n fileThumb,\n fileTypeByUrl,\n} from '../FileUpload/FileThumbnail/utils';\n\nimport type { ExtendFile } from './types';\n\nexport { fileFormat, fileNameByUrl, fileThumb, fileTypeByUrl };\n\nexport function fileData(file: File | string) {\n // From url\n if (typeof file === 'string') {\n return {\n key: file,\n preview: file,\n name: fileNameByUrl(file),\n type: fileTypeByUrl(file),\n size: undefined,\n path: file,\n lastModified: undefined,\n lastModifiedDate: undefined,\n };\n }\n\n // From file\n return {\n key: `key:${file.name}`,\n name: file.name,\n size: file.size,\n path: (file as ExtendFile).path,\n type: file.type,\n preview: (file as ExtendFile).preview,\n lastModified: file.lastModified,\n lastModifiedDate: (file as ExtendFile).lastModifiedDate,\n };\n}\n","import Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport IconButton from '@mui/material/IconButton';\nimport Stack from '@mui/material/Stack';\nimport { alpha, styled } from '@mui/material/styles';\nimport { m } from 'framer-motion';\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 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 AvatarLoading = styled(CircularProgress)(({ theme }) => ({\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 99,\n backgroundColor: theme.palette.background.paper,\n borderRadius: '50%',\n}));\n\nexport const CloseIconButton = styled(IconButton)(({ theme }) => ({\n position: 'relative',\n zIndex: 999,\n pointerEvents: 'auto',\n bgcolor: alpha(theme.palette.grey[900], 0.72),\n\n '&:hover': {\n backgroundColor: alpha(theme.palette.grey[900], 0.48),\n },\n}));\n\nexport const DragWrapper = styled('div')({\n position: 'relative',\n zIndex: 1,\n userSelect: 'none',\n WebkitUserSelect: 'none',\n WebkitTouchCallout: 'none',\n '&:hover': {\n zIndex: 2,\n },\n});\n\nexport const FrameFileThumbnail = styled(Stack)<{\n width: number;\n isDragging: boolean;\n}>(({ theme, width, isDragging }) => ({\n width,\n height: 80,\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 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 DeleteItemButton = styled(IconButton)(({ theme }) => ({\n width: 36,\n height: 36,\n position: 'absolute',\n top: 10,\n right: 10,\n borderRadius: 0,\n zIndex: 1,\n opacity: 0,\n transition: 'opacity 50ms ease-in-out',\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.common.white, 0.8),\n '&:hover': {\n backgroundColor: alpha(theme.palette.common.white, 0.8),\n opacity: 1,\n },\n}));\n\nexport const DeleteFileButton = styled(IconButton)(({ theme }) => ({\n width: 24,\n height: 24,\n position: 'absolute',\n top: 18,\n right: 8,\n borderRadius: 12,\n opacity: 1,\n zIndex: 1,\n transition: 'opacity 50ms ease-in-out',\n color: theme.palette.grey[500],\n backgroundColor: theme.palette.common.white,\n '&:hover': {\n backgroundColor: theme.palette.common.white,\n },\n}));\n\nexport const StarButton = styled(IconButton, {\n shouldForwardProp: prop => prop !== 'isMainImage',\n})<{\n isMainImage: boolean;\n}>(({ theme, isMainImage }) => ({\n color: isMainImage\n ? theme.palette.secondary.main\n : theme.palette.action.disabled,\n backgroundColor: theme.palette.common.white,\n ' &:hover': {\n backgroundColor: theme.palette.common.white,\n },\n top: 4,\n left: 8,\n padding: theme.spacing(0.5),\n border: '1px solid',\n borderColor: isMainImage\n ? theme.palette.secondary.main\n : theme.palette.divider,\n}));\n\nexport const DeleteButton = styled(IconButton)(({ theme }) => ({\n top: 16,\n right: 16,\n zIndex: 9,\n position: 'absolute',\n color: alpha(theme.palette.common.white, 0.8),\n bgcolor: alpha(theme.palette.grey[900], 0.72),\n '&:hover': {\n bgcolor: 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 bgcolor: 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 bgcolor: alpha(theme.palette.error.main, 0.08),\n }),\n '&:hover': { opacity: 0.72 },\n}));\n"]}
|