@zydon/common 2.9.0 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/chunk-DW6BOI43.js +8 -0
  2. package/dist/chunk-DW6BOI43.js.map +1 -0
  3. package/dist/chunk-I3HQNMR3.js +9 -0
  4. package/dist/chunk-I3HQNMR3.js.map +1 -0
  5. package/dist/{chunk-CPHCMXWT.js → chunk-PSG5JWK7.js} +2 -2
  6. package/dist/chunk-XI3ZEBE3.js +18 -0
  7. package/dist/chunk-XI3ZEBE3.js.map +1 -0
  8. package/dist/components/Analytics/index.js +1 -1
  9. package/dist/components/Autocomplete/index.js +1 -1
  10. package/dist/components/BulkEditModal/index.js +2 -2
  11. package/dist/components/DynamicDataView/index.js +1 -1
  12. package/dist/components/Filters/index.js +1 -1
  13. package/dist/components/Incrementer/index.js +2 -2
  14. package/dist/components/NumberInput/index.js +1 -1
  15. package/dist/components/form/Address/index.js +2 -2
  16. package/dist/components/form/Autocomplete/index.js +2 -2
  17. package/dist/components/form/Incrementer/index.js +2 -2
  18. package/dist/components/form/NumberInput/index.js +3 -3
  19. package/dist/components/form/NumberInput/index.js.map +1 -1
  20. package/dist/components/form/RadioGroup/index.js +8 -8
  21. package/dist/components/form/RadioGroup/index.js.map +1 -1
  22. package/dist/components/form/Webhook/index.js +2 -2
  23. package/dist/types/autoCompleteProps.d.ts +2 -1
  24. package/package.json +1 -1
  25. package/dist/chunk-6N456D64.js +0 -18
  26. package/dist/chunk-6N456D64.js.map +0 -1
  27. package/dist/chunk-DLASFJON.js +0 -8
  28. package/dist/chunk-DLASFJON.js.map +0 -1
  29. package/dist/chunk-RS64MSST.js +0 -9
  30. package/dist/chunk-RS64MSST.js.map +0 -1
  31. /package/dist/{chunk-CPHCMXWT.js.map → chunk-PSG5JWK7.js.map} +0 -0
@@ -0,0 +1,8 @@
1
+ import { a } from './chunk-XI3ZEBE3.js';
2
+ import { useFormContext, Controller } from 'react-hook-form';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ var A=({name:t,helperText:u,rules:m,onSelectOption:r,InputLabelProps:p,onBlur:n,...c})=>{let{control:i}=useFormContext(),C=o=>e=>{r&&r(e,o.value),o.onChange(e);};return jsx(Controller,{name:t,control:i,rules:m,render:({field:{ref:o,...e},fieldState:{error:l}})=>{let g=d=>{e.onBlur(),n&&n(d);};return jsx(a,{"data-intercom-target":t,...e,...c,inputRef:o,onChange:C(e),onBlur:g,error:!!l,helperText:l?.message||u,InputLabelProps:p})}})},B=A;
6
+
7
+ export { B as a };
8
+ //# sourceMappingURL=chunk-DW6BOI43.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/Autocomplete/index.tsx"],"names":["Controller","useFormContext","jsx","Autocomplete","name","helperText","rules","onSelectOption","InputLabelProps","onBlurProp","other","control","handleChange","field","value","ref","error","handleBlur","event","Autocomplete_default"],"mappings":"mCAAA,OACE,cAAAA,EAGA,kBAAAC,MACK,kBAoCG,cAAAC,MAAA,oBA9BV,IAAMC,EAAe,CAAC,CACpB,KAAAC,EACA,WAAAC,EACA,MAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,OAAQC,EACR,GAAGC,CACL,IAAyB,CACvB,GAAM,CAAE,QAAAC,CAAQ,EAAIV,EAAe,EAE7BW,EACHC,GACAC,GAAyB,CACpBP,GAAgBA,EAAeO,EAAiBD,EAAM,KAAK,EAC/DA,EAAM,SAASC,CAAK,CACtB,EAEF,OACEZ,EAACF,EAAA,CACC,KAAMI,EACN,QAASO,EACT,MAAOL,EACP,OAAQ,CAAC,CAAE,MAAO,CAAE,IAAAS,EAAK,GAAGF,CAAM,EAAG,WAAY,CAAE,MAAAG,CAAM,CAAE,IAAM,CAC/D,IAAMC,EAAcC,GAA4C,CAC9DL,EAAM,OAAO,EACTJ,GAAYA,EAAWS,CAAK,CAClC,EAEA,OACEhB,EAACiB,EAAA,CACC,uBAAsBf,EACrB,GAAGS,EACH,GAAGH,EACJ,SAAUK,EACV,SAAUH,EAAaC,CAAK,EAC5B,OAAQI,EACR,MAAO,CAAC,CAACD,EACT,WAAYA,GAAO,SAAWX,EAC9B,gBAAiBG,EACnB,CAEJ,EACF,CAEJ,EAEOW,EAAQhB","sourcesContent":["import {\n Controller,\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\n\nimport AutocompleteComponent from 'components/Autocomplete';\n\nimport { AutocompleteProps, OnChangeValue } from './props';\n\nconst Autocomplete = ({\n name,\n helperText,\n rules,\n onSelectOption,\n InputLabelProps,\n onBlur: onBlurProp,\n ...other\n}: AutocompleteProps) => {\n const { control } = useFormContext();\n\n const handleChange =\n (field: Omit<ControllerRenderProps<FieldValues, string>, 'ref'>) =>\n (value: OnChangeValue) => {\n if (onSelectOption) onSelectOption(value as string, field.value);\n field.onChange(value);\n };\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field: { ref, ...field }, fieldState: { error } }) => {\n const handleBlur = (event: React.FocusEvent<HTMLDivElement>) => {\n field.onBlur();\n if (onBlurProp) onBlurProp(event);\n };\n\n return (\n <AutocompleteComponent\n data-intercom-target={name}\n {...field}\n {...other}\n inputRef={ref}\n onChange={handleChange(field)}\n onBlur={handleBlur}\n error={!!error}\n helperText={error?.message || helperText}\n InputLabelProps={InputLabelProps}\n />\n );\n }}\n />\n );\n};\n\nexport default Autocomplete;\n"]}
@@ -0,0 +1,9 @@
1
+ import { memo, forwardRef, useState, useRef, useEffect } from 'react';
2
+ import { NumericFormat } from 'react-number-format';
3
+ import Q from '@mui/material/TextField';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var s=memo(forwardRef(({decimalScale:c=0,fixedDecimalScale:d=!0,prefix:I,suffix:N,allowNegative:b,minValue:u,maxValue:a=1/0,maxLength:T,value:g,inputProps:h,InputProps:y,InputLabelProps:S,size:x,disabled:R,name:t,helperText:F,error:P,fullWidth:v,label:w,required:D,onChange:r,tabIndex:L,placeholder:k,margin:E,className:V,delay:l,id:i,inputRef:q},z)=>{let[C,H]=useState(Date.now()),e=useRef(null),p=()=>H(Date.now()),K=(M,o)=>{if(!r)return;e.current&&clearTimeout(e.current);let f=()=>{let{floatValue:n}=M,m=n||0;if(u!==void 0&&u>m){r({target:{name:t,value:u},event:o}),p();return}if(n!==void 0&&a<m){r({target:{name:t,value:a},event:o}),p();return}r({target:{name:t,value:n},event:o});};l===0?f():e.current=setTimeout(f,l||1e3);};return useEffect(()=>()=>{e.current&&clearTimeout(e.current);},[]),jsx(NumericFormat,{getInputRef:z,inputRef:q,value:g,prefix:I,suffix:N,decimalSeparator:",",thousandSeparator:".",decimalScale:c,fixedDecimalScale:d,autoComplete:"off",allowNegative:b,maxLength:T,onValueChange:K,customInput:Q,InputProps:{...y},inputProps:{...h,name:t,tabIndex:L,id:i},disabled:R,size:x,helperText:F,error:P,fullWidth:v,label:w,required:D,placeholder:k,margin:E,className:V,InputLabelProps:{...S,htmlFor:i}},C)}));s.displayName="NumberInput";var j=s;
7
+
8
+ export { j as a };
9
+ //# sourceMappingURL=chunk-I3HQNMR3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/NumberInput/index.tsx"],"names":["forwardRef","memo","useEffect","useRef","useState","NumericFormat","TextField","jsx","NumberInput","decimalScale","fixedDecimalScale","prefix","suffix","allowNegative","minValue","maxValue","maxLength","value","inputProps","InputProps","InputLabelProps","size","disabled","name","helperText","error","fullWidth","label","required","onChange","tabIndex","placeholder","margin","className","delay","id","inputRef","ref","inputkey","setInputKey","delayTimer","reRenderInput","handleChange","values","event","executeChange","floatValue","comparisonValue","NumberInput_default"],"mappings":"AAAA,OAAS,cAAAA,EAAY,QAAAC,EAAM,aAAAC,EAAW,UAAAC,EAAQ,YAAAC,MAAgB,QAC9D,OAEE,iBAAAC,MAEK,sBACP,OAAOC,MAAe,0BA4Fd,cAAAC,MAAA,oBAxFR,IAAMC,EAAcP,EAClBD,EACE,CACE,CACE,aAAAS,EAAe,EACf,kBAAAC,EAAoB,GACpB,OAAAC,EACA,OAAAC,EACA,cAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,IACX,UAAAC,EACA,MAAAC,EACA,WAAAC,EACA,WAAAC,EACA,gBAAAC,EACA,KAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAAC,EACA,MAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,OAAAC,EACA,UAAAC,EACA,MAAAC,EACA,GAAAC,EACA,SAAAC,CACF,EACAC,IACG,CACH,GAAM,CAACC,EAAUC,CAAW,EAAInC,EAAS,KAAK,IAAI,CAAC,EAC7CoC,EAAarC,EAA6C,IAAI,EAE9DsC,EAAgB,IAAMF,EAAY,KAAK,IAAI,CAAC,EAE5CG,EAAe,CAACC,EAA4BC,IAAsB,CACtE,GAAI,CAACf,EAAU,OAEXW,EAAW,SAAS,aAAaA,EAAW,OAAO,EAEvD,IAAMK,EAAgB,IAAM,CAC1B,GAAM,CAAE,WAAAC,CAAW,EAAIH,EACjBI,EAAkBD,GAAc,EAEtC,GAAIhC,IAAa,QAAaA,EAAWiC,EAAiB,CACxDlB,EAAS,CAAE,OAAQ,CAAE,KAAAN,EAAM,MAAOT,CAAS,EAAG,MAAA8B,CAAM,CAAC,EACrDH,EAAc,EAEd,OAGF,GAAIK,IAAe,QAAa/B,EAAWgC,EAAiB,CAC1DlB,EAAS,CAAE,OAAQ,CAAE,KAAAN,EAAM,MAAOR,CAAS,EAAG,MAAA6B,CAAM,CAAC,EACrDH,EAAc,EAEd,OAGFZ,EAAS,CACP,OAAQ,CACN,KAAAN,EACA,MAAOuB,CACT,EACA,MAAAF,CACF,CAAC,CACH,EAEIV,IAAU,EACZW,EAAc,EAEdL,EAAW,QAAU,WAAWK,EAAeX,GAAS,GAAI,CAEhE,EAEA,OAAAhC,EAAU,IACD,IAAM,CACPsC,EAAW,SACb,aAAaA,EAAW,OAAO,CAEnC,EACC,CAAC,CAAC,EAGHjC,EAACF,EAAA,CAEC,YAAagC,EACb,SAAUD,EACV,MAAOnB,EACP,OAAQN,EACR,OAAQC,EACR,iBAAiB,IACjB,kBAAkB,IAClB,aAAcH,EACd,kBAAmBC,EACnB,aAAa,MACb,cAAeG,EACf,UAAWG,EACX,cAAe0B,EACf,YAAapC,EACb,WAAY,CACV,GAAGa,CACL,EACA,WAAY,CAAE,GAAGD,EAAY,KAAAK,EAAM,SAAAO,EAAU,GAAAK,CAAG,EAChD,SAAUb,EACV,KAAMD,EACN,WAAYG,EACZ,MAAOC,EACP,UAAWC,EACX,MAAOC,EACP,SAAUC,EACV,YAAaG,EACb,OAAQC,EACR,UAAWC,EACX,gBAAiB,CAAE,GAAGb,EAAiB,QAASe,CAAG,GA7B9CG,CA8BP,CAEJ,CACF,CACF,EAEA9B,EAAY,YAAc,cAE1B,IAAOwC,EAAQxC","sourcesContent":["import { forwardRef, memo, useEffect, useRef, useState } from 'react';\nimport {\n NumberFormatValues,\n NumericFormat,\n SourceInfo,\n} from 'react-number-format';\nimport TextField from '@mui/material/TextField';\n\nimport { NumberInputProps } from 'types/numberInputProps';\n\nconst NumberInput = memo(\n forwardRef<HTMLDivElement, NumberInputProps>(\n (\n {\n decimalScale = 0,\n fixedDecimalScale = true,\n prefix,\n suffix,\n allowNegative,\n minValue,\n maxValue = Infinity,\n maxLength,\n value,\n inputProps,\n InputProps,\n InputLabelProps,\n size,\n disabled,\n name,\n helperText,\n error,\n fullWidth,\n label,\n required,\n onChange,\n tabIndex,\n placeholder,\n margin,\n className,\n delay,\n id,\n inputRef,\n },\n ref,\n ) => {\n const [inputkey, setInputKey] = useState(Date.now());\n const delayTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const reRenderInput = () => setInputKey(Date.now());\n\n const handleChange = (values: NumberFormatValues, event: SourceInfo) => {\n if (!onChange) return;\n\n if (delayTimer.current) clearTimeout(delayTimer.current);\n\n const executeChange = () => {\n const { floatValue } = values;\n const comparisonValue = floatValue || 0;\n\n if (minValue !== undefined && minValue > comparisonValue) {\n onChange({ target: { name, value: minValue }, event });\n reRenderInput();\n\n return;\n }\n\n if (floatValue !== undefined && maxValue < comparisonValue) {\n onChange({ target: { name, value: maxValue }, event });\n reRenderInput();\n\n return;\n }\n\n onChange({\n target: {\n name,\n value: floatValue,\n },\n event,\n });\n };\n\n if (delay === 0) {\n executeChange();\n } else {\n delayTimer.current = setTimeout(executeChange, delay || 1000);\n }\n };\n\n useEffect(() => {\n return () => {\n if (delayTimer.current) {\n clearTimeout(delayTimer.current);\n }\n };\n }, []);\n\n return (\n <NumericFormat\n key={inputkey}\n getInputRef={ref}\n inputRef={inputRef}\n value={value}\n prefix={prefix}\n suffix={suffix}\n decimalSeparator=\",\"\n thousandSeparator=\".\"\n decimalScale={decimalScale}\n fixedDecimalScale={fixedDecimalScale}\n autoComplete=\"off\"\n allowNegative={allowNegative}\n maxLength={maxLength}\n onValueChange={handleChange}\n customInput={TextField}\n InputProps={{\n ...InputProps,\n }}\n inputProps={{ ...inputProps, name, tabIndex, id }}\n disabled={disabled}\n size={size}\n helperText={helperText}\n error={error}\n fullWidth={fullWidth}\n label={label}\n required={required}\n placeholder={placeholder}\n margin={margin}\n className={className}\n InputLabelProps={{ ...InputLabelProps, htmlFor: id }}\n />\n );\n },\n ),\n);\n\nNumberInput.displayName = 'NumberInput';\n\nexport default NumberInput;\n"]}
@@ -1,4 +1,4 @@
1
- import { a } from './chunk-RS64MSST.js';
1
+ import { a } from './chunk-I3HQNMR3.js';
2
2
  import { f } from './chunk-OF6623HG.js';
3
3
  import { a as a$1 } from './chunk-2GTD4JW2.js';
4
4
  import { forwardRef, useState, useRef, useEffect, useMemo, useCallback } from 'react';
@@ -9,4 +9,4 @@ import { jsx } from 'react/jsx-runtime';
9
9
  var C=forwardRef(({name:M,increment:e=1,updadteForMultiple:P,allowNegative:u=!1,value:m,onChange:c,minValue:r,maxValue:o,decimalScale:p,disabled:i,tabIndex:w,labelIncrementer:B,labelDecrementer:E,placeholder:O,InputProps:b,...z},L)=>{let[N,_]=useState(`incrementer-input-${Date.now()}`),I=useRef(null),s=Number(m||0),d=()=>{I.current&&(clearTimeout(I.current),I.current=null);};useEffect(()=>()=>d(),[]);let $=useMemo(()=>{let n=s-e;return typeof r=="number"&&n<r?!0:i||!u&&n<0},[i,s,e,r,u]),G=useMemo(()=>{let n=s+e;return typeof o=="number"&&n>o?!0:i},[i,s,e,o]),H=useCallback(()=>{if(d(),!u&&s-e<0)return;let n=s-e,t=r!==void 0&&n<r?r:f(n,p);c(t);},[s,e,r,p,c,u]),K=n=>r!==void 0&&n<r?r:o!==void 0&&n>o?o:f(n,p),U=useCallback(()=>{d();let n=s+e,t=K(n);c(t);},[s,e,o,r,p,c]),W=useCallback(n=>{d();let t=Number(n.target.value||0);(e!==1||P)&&(t=t+e/2,t-=t%e),!u&&t<0&&(t=0),typeof r=="number"&&t<r&&(t=r),typeof o=="number"&&t>o&&(t=o),t=f(t,p),(!t||t===m)&&(I.current=setTimeout(()=>{_(`incrementer-input-${Date.now()}`);},600)),c(t);},[m,e,r,o,p,c,P,u]);return jsx(a,{ref:L,name:M,value:m,minValue:r,maxValue:o,allowNegative:u,decimalScale:p,InputProps:{...b,startAdornment:jsx(R,{position:"start",sx:{ml:-1},children:jsx(T,{onClick:H,disabled:$,size:"small","aria-label":E||"Decrementa",sx:{p:.5},children:jsx(a$1,{icon:"MINUS_SIGN",width:14,height:14,color:"primary.main"})})}),endAdornment:jsx(R,{position:"end",sx:{mr:-1},children:jsx(T,{onClick:U,disabled:G,size:"small","aria-label":B||"Incrementa",sx:{p:.5},children:jsx(a$1,{icon:"SIMPLE_ADD",width:14,height:14,color:"primary.main"})})}),inputProps:{...b?.inputProps,style:{...b?.inputProps?.style,textAlign:"center"},sx:{mx:-2.5}}},inputProps:{tabIndex:w},onChange:W,disabled:i,placeholder:O,...z},N)});C.displayName="Incrementer";var F=C;
10
10
 
11
11
  export { F as a };
12
- //# sourceMappingURL=chunk-CPHCMXWT.js.map
12
+ //# sourceMappingURL=chunk-PSG5JWK7.js.map
@@ -0,0 +1,18 @@
1
+ import { a } from './chunk-2GTD4JW2.js';
2
+ import { memo, createContext, forwardRef, useContext, useMemo, useCallback, useRef, useEffect } from 'react';
3
+ import Ne, { autocompleteClasses } from '@mui/material/Autocomplete';
4
+ import be from '@mui/material/CircularProgress';
5
+ import ye from '@mui/material/TextField';
6
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
+ import { VariableSizeList } from 'react-window';
8
+ import { useTheme, styled } from '@mui/material/styles';
9
+ import Se from '@mui/material/useMediaQuery';
10
+ import Pe from '@mui/material/ListSubheader';
11
+ import Ie from '@mui/material/Stack';
12
+ import F from '@mui/material/Typography';
13
+ import Me from '@mui/material/Popper';
14
+
15
+ var D=memo(({params:e,name:t,placeholder:s,error:n,helperText:p,label:m,required:L,multiple:l,formattedValue:o,loading:a$1,tabIndex:u,InputLabelProps:y,inputRef:g})=>jsx(ye,{...e,name:t,placeholder:s,fullWidth:!0,error:!!n,helperText:p,label:m,required:L,inputRef:g,InputProps:{...e.InputProps,...!l&&{startAdornment:o&&!Array.isArray(o)&&o.icon?jsx(a,{icon:o.icon}):void 0},endAdornment:jsxs(Fragment,{children:[a$1?jsx(be,{color:"primary",size:20}):null,e.InputProps.endAdornment]})},inputProps:{...e.inputProps,name:t,tabIndex:u},InputLabelProps:y}));D.displayName="AutocompleteInput";var $=D;var w=8,B=memo(e=>{let{data:t,index:s,style:n}=e,p=t[s],m={...n,top:n.top+w,paddingTop:8};if(Object.prototype.hasOwnProperty.call(p,"group")){let y=p;return jsx(Pe,{component:"div",style:m,children:y.group},`list-box-item-group-${y.group}`)}let[L,l]=p,{showValueInLabel:o,key:a$1,...u}=L;return jsx(F,{component:"li",...u,noWrap:!0,style:m,children:jsxs(Ie,{component:"div",direction:"row",flex:1,gap:1,justifyContent:"start",children:[l.icon&&jsx(a,{icon:l.icon}),l.label,o&&jsxs(F,{variant:"inherit",color:"grey.400",children:["(",l.value,")"]})]})},`list-box-item-${a$1}`)});B.displayName="ListboxRow";var U=B;var Re=createContext(void 0),h=Re;var J=createContext({}),K=forwardRef((e,t)=>{let s=useContext(J);return jsx("div",{ref:t,...e,...s})});K.displayName="OuterElementType";var Te=e=>{let t=useRef(null);return useEffect(()=>{t.current!=null&&t.current.resetAfterIndex(0,!0);},[e]),t},ve=forwardRef(function(t,s){let{children:n,...p}=t,m=useMemo(()=>{let r=[];return n.forEach(b=>{r.push(b),Object.prototype.hasOwnProperty.call(b,"children")&&Array.isArray(b.children)&&r.push(...b.children);}),r},[n]),L=useTheme(),l=Se(L.breakpoints.up("sm")),o=m.length,a=l?36:48,u=useCallback(r=>Object.prototype.hasOwnProperty.call(r,"group")?48:a,[a]),y=useMemo(()=>o>8?8*a:m.map(u).reduce((r,b)=>r+b,0),[o,a,m,u]),g=Te(o),P=useContext(h),c=useRef(!1);useEffect(()=>{c.current=!1;},[o]);let x=useCallback(({visibleStopIndex:r})=>{P&&!c.current&&r>=o-3&&(c.current=!0,P());},[P,o]);return jsx("div",{ref:s,children:jsx(J.Provider,{value:p,children:jsx(VariableSizeList,{itemData:m,height:y+2*w,width:"100%",ref:g,outerElementType:K,innerElementType:"ul",itemSize:r=>u(m[r]),overscanCount:5,itemCount:o,onItemsRendered:x,children:U})})})}),Y=ve;var Z=styled(Me)({[`& .${autocompleteClasses.listbox}`]:{boxSizing:"border-box","& ul":{padding:0,margin:0}}});var ze=e=>e&&typeof e=="object"?e.value.toString():e.toString(),De=e=>e,$e=(e,t)=>{let s=t.inputValue.toLocaleUpperCase();return e.filter(n=>`${n.value} ${n.label}`.toLocaleUpperCase().includes(s))},te=memo(forwardRef(({name:e,label:t,value:s,options:n=[],loading:p,noOptionsText:m="Nenhum resultado encontrado.",loadingText:L="Carregando op\xE7\xF5es...",error:l,helperText:o,placeholder:a,onChange:u,groupBy:y,showValueInLabel:g,disabled:P,multiple:c,required:x,renderOption:r,tabIndex:b,onInputChange:C,onSearch:A,onBlur:S,onScrollEnd:oe,InputLabelProps:k,inputRef:G,filterOptions:re,...ne},ie)=>{let N=useRef(null),T=useMemo(()=>c?(Array.isArray(s)?s:[]).reduce((f,v)=>{let z=n.find(de=>de.value.toString()===v.toString());return z?[...f,z]:[...f]},[]):n.find(i=>i.value.toString()===s?.toString())||null,[n,s,c]),se=re??(N.current==="reset"?void 0:$e),pe=useCallback((d,i,f)=>{if(N.current=f,C&&C(d,i,f),f==="input"){A&&A(i);return}f==="reset"&&A&&A(void 0),f==="clear"&&A&&A("");},[C,A]),me=useCallback((d,i)=>{if(!i){u(c?[]:null);return}if(Array.isArray(i)){u(i.map(ze));return}u(typeof i=="string"?i.toString():i.value.toString());},[u,c]),ue=useCallback(d=>{S&&S(d);},[S]),le=useCallback((d,i,f,v)=>r?r(d,i,f,v):[{...d,showValueInLabel:g},i],[r,g]),ae=useMemo(()=>r?void 0:Y,[r]),ce=useCallback(d=>jsx($,{params:d,name:e,placeholder:a,error:l,helperText:o,label:t,required:x,multiple:c,formattedValue:T,loading:p,tabIndex:b,InputLabelProps:k,inputRef:G}),[e,a,l,o,t,x,c,T,p,b,k,G]);return jsx(h.Provider,{value:oe,children:jsx(Ne,{ref:ie,value:T,onInputChange:pe,options:n,loading:p,noOptionsText:m,loadingText:L,disabled:P,disableListWrap:!0,PopperComponent:Z,ListboxComponent:ae,filterOptions:se,onChange:me,onBlur:ue,renderOption:le,renderGroup:De,groupBy:y,multiple:c,renderInput:ce,...ne})})}));te.displayName="Autocomplete";var St=te;
16
+
17
+ export { St as a };
18
+ //# sourceMappingURL=chunk-XI3ZEBE3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Autocomplete/index.tsx","../src/components/Autocomplete/AutocompleteInput.tsx","../src/components/Autocomplete/Listbox.tsx","../src/components/Autocomplete/ListboxRow.tsx","../src/components/Autocomplete/ScrollEndContext.ts","../src/components/Autocomplete/styles.ts"],"names":["forwardRef","memo","useCallback","useMemo","useRef","MuiAutocomplete","CircularProgress","TextField","Fragment","jsx","jsxs","AutocompleteInput","params","name","placeholder","error","helperText","label","required","multiple","formattedValue","loading","tabIndex","InputLabelProps","inputRef","Icon_default","AutocompleteInput_default","createContext","useContext","useEffect","VariableSizeList","useTheme","useMediaQuery","ListSubheader","Stack","Typography","LISTBOX_PADDING","ListboxRow","props","data","index","style","dataSet","inlineStyle","groupItem","itemProps","option","showValueInLabel","key","otherItemProps","ListboxRow_default","ScrollEndContext","ScrollEndContext_default","OuterElementContext","OuterElementType","ref","outerProps","useResetCache","ListboxComponent","children","other","itemData","item","theme","smUp","itemCount","itemSize","getChildSize","child","itemsHeight","a","gridRef","onScrollEnd","firedRef","handleItemsRendered","visibleStopIndex","Listbox_default","autocompleteClasses","Popper","styled","StyledPopper","getOptionValue","optionValue","renderGroup","defaultFilterOptions","optionsFilter","state","searchValue","opt","Autocomplete","value","options","noOptionsText","loadingText","onChange","groupBy","disabled","renderOption","onInputChange","onSearch","onBlur","filterOptionsProp","inputReasonRef","acc","curr","resolvedFilterOptions","handleInputChange","event","eventValue","reason","handleChange","_","handleBlur","memoizedRenderOption","ownerState","renderListbox","memoizedRenderInput","Autocomplete_default"],"mappings":"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","sourcesContent":["import {\n forwardRef,\n memo,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport MuiAutocomplete, {\n AutocompleteOwnerState,\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n AutocompleteRenderOptionState,\n} from '@mui/material/Autocomplete';\n\nimport { AutocompleteProps } from 'types/autoCompleteProps';\nimport { Option } from 'types/option';\n\nimport AutocompleteInput from './AutocompleteInput';\nimport ListboxComponent from './Listbox';\nimport ScrollEndContext from './ScrollEndContext';\nimport { StyledPopper } from './styles';\n\nconst getOptionValue = (optionValue: Option | string | number): string =>\n optionValue && typeof optionValue === 'object'\n ? optionValue.value.toString()\n : optionValue.toString();\n\nconst renderGroup = (params: AutocompleteRenderGroupParams) =>\n params as unknown as ReactNode;\n\nconst defaultFilterOptions = (\n optionsFilter: Option[],\n state: { inputValue: string },\n) => {\n const searchValue = state.inputValue.toLocaleUpperCase();\n return optionsFilter.filter(opt => {\n const search = `${opt.value} ${opt.label}`;\n\n return search.toLocaleUpperCase().includes(searchValue);\n });\n};\n\nconst Autocomplete = memo(\n forwardRef<unknown, AutocompleteProps>(\n (\n {\n name,\n label,\n value,\n options = [],\n loading,\n noOptionsText = 'Nenhum resultado encontrado.',\n loadingText = 'Carregando opções...',\n error,\n helperText,\n placeholder,\n onChange,\n groupBy,\n showValueInLabel,\n disabled,\n multiple,\n required,\n renderOption,\n tabIndex,\n onInputChange,\n onSearch,\n onBlur,\n onScrollEnd,\n InputLabelProps,\n inputRef,\n filterOptions: filterOptionsProp,\n ...other\n },\n ref,\n ) => {\n const inputReasonRef = useRef<'input' | 'reset' | 'clear' | null>(null);\n\n const formattedValue = useMemo(() => {\n if (multiple) {\n const values = Array.isArray(value) ? value : [];\n\n return values.reduce<Option[]>((acc, curr) => {\n const item = options.find(\n opt => opt.value.toString() === curr.toString(),\n );\n\n if (item) return [...acc, item];\n\n return [...acc];\n }, []);\n }\n\n const item = options.find(\n opt => opt.value.toString() === value?.toString(),\n );\n\n return item || null;\n }, [options, value, multiple]);\n\n const resolvedFilterOptions =\n filterOptionsProp ??\n (inputReasonRef.current === 'reset' ? undefined : defaultFilterOptions);\n\n const handleInputChange = useCallback(\n (\n event: React.SyntheticEvent,\n eventValue: string,\n reason: 'input' | 'reset' | 'clear',\n ) => {\n inputReasonRef.current = reason;\n if (onInputChange) onInputChange(event, eventValue, reason);\n\n if (reason === 'input') {\n if (onSearch) onSearch(eventValue);\n return;\n }\n\n if (reason === 'reset') {\n if (onSearch) onSearch(undefined);\n }\n\n if (reason === 'clear') {\n if (onSearch) onSearch('');\n }\n },\n [onInputChange, onSearch],\n );\n\n const handleChange = useCallback(\n (\n _: React.SyntheticEvent,\n option: Option | (string | Option)[] | string | null,\n ) => {\n if (!option) {\n onChange(multiple ? [] : null);\n return;\n }\n\n if (Array.isArray(option)) {\n onChange(option.map(getOptionValue));\n return;\n }\n\n onChange(\n typeof option === 'string'\n ? option.toString()\n : option.value.toString(),\n );\n },\n [onChange, multiple],\n );\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) onBlur(event);\n },\n [onBlur],\n );\n\n const memoizedRenderOption = useCallback(\n (\n props: React.HTMLAttributes<HTMLLIElement> & { key: string },\n option: Option,\n state: AutocompleteRenderOptionState,\n ownerState: AutocompleteOwnerState<Option, boolean, boolean, boolean>,\n ) =>\n renderOption\n ? renderOption(props, option, state, ownerState)\n : ([{ ...props, showValueInLabel }, option] as ReactNode),\n [renderOption, showValueInLabel],\n );\n\n const renderListbox = useMemo(\n () => (renderOption ? undefined : ListboxComponent),\n [renderOption],\n );\n\n const memoizedRenderInput = useCallback(\n (params: AutocompleteRenderInputParams) => (\n <AutocompleteInput\n params={params}\n name={name}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n label={label}\n required={required}\n multiple={multiple}\n formattedValue={formattedValue}\n loading={loading}\n tabIndex={tabIndex}\n InputLabelProps={InputLabelProps}\n inputRef={inputRef}\n />\n ),\n [\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n multiple,\n formattedValue,\n loading,\n tabIndex,\n InputLabelProps,\n inputRef,\n ],\n );\n\n return (\n <ScrollEndContext.Provider value={onScrollEnd}>\n <MuiAutocomplete\n ref={ref}\n value={formattedValue}\n onInputChange={handleInputChange}\n options={options}\n loading={loading}\n noOptionsText={noOptionsText}\n loadingText={loadingText}\n disabled={disabled}\n disableListWrap\n PopperComponent={StyledPopper}\n ListboxComponent={renderListbox}\n filterOptions={resolvedFilterOptions}\n onChange={handleChange}\n onBlur={handleBlur}\n renderOption={memoizedRenderOption}\n renderGroup={renderGroup}\n groupBy={groupBy}\n multiple={multiple}\n renderInput={memoizedRenderInput}\n {...other}\n />\n </ScrollEndContext.Provider>\n );\n },\n ),\n);\n\nAutocomplete.displayName = 'Autocomplete';\n\nexport default Autocomplete;\n","import { memo } from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\n\nimport Icon from '../Icon';\n\nimport { AutocompleteInputProps } from './props';\n\nconst AutocompleteInput = memo(\n ({\n params,\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n multiple,\n formattedValue,\n loading,\n tabIndex,\n InputLabelProps,\n inputRef,\n }: AutocompleteInputProps) => (\n <TextField\n {...params}\n name={name}\n placeholder={placeholder}\n fullWidth\n error={!!error}\n helperText={helperText}\n label={label}\n required={required}\n inputRef={inputRef}\n InputProps={{\n ...params.InputProps,\n ...(!multiple && {\n startAdornment:\n formattedValue &&\n !Array.isArray(formattedValue) &&\n formattedValue.icon ? (\n <Icon icon={formattedValue.icon} />\n ) : undefined,\n }),\n endAdornment: (\n <>\n {loading ? <CircularProgress color=\"primary\" size={20} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n inputProps={{\n ...params.inputProps,\n name,\n tabIndex,\n }}\n InputLabelProps={InputLabelProps}\n />\n ),\n);\n\nAutocompleteInput.displayName = 'AutocompleteInput';\n\nexport default AutocompleteInput;\n","import {\n createContext,\n forwardRef,\n HTMLAttributes,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport { ListOnItemsRenderedProps, VariableSizeList } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport ListboxRow, { LISTBOX_PADDING } from './ListboxRow';\nimport type { ListboxItem } from './props';\nimport ScrollEndContext from './ScrollEndContext';\n\nconst OuterElementContext = createContext({});\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => {\n const outerProps = useContext(OuterElementContext);\n return <div ref={ref} {...props} {...outerProps} />;\n});\n\nOuterElementType.displayName = 'OuterElementType';\n\nconst useResetCache = (data: number) => {\n const ref = useRef<VariableSizeList>(null);\n\n useEffect(() => {\n if (ref.current != null) {\n ref.current.resetAfterIndex(0, true);\n }\n }, [data]);\n\n return ref;\n};\n\nconst ListboxComponent = forwardRef<\n HTMLDivElement,\n HTMLAttributes<HTMLElement>\n>(function ListboxComponent(props, ref) {\n const { children, ...other } = props;\n\n const itemData: ListboxItem[] = useMemo(() => {\n const data: ListboxItem[] = [];\n (children as ListboxItem[]).forEach(item => {\n data.push(item);\n if (\n Object.prototype.hasOwnProperty.call(item, 'children') &&\n Array.isArray((item as AutocompleteRenderGroupParams).children)\n ) {\n data.push(\n ...((item as AutocompleteRenderGroupParams)\n .children as ListboxItem[]),\n );\n }\n });\n return data;\n }, [children]);\n\n const theme = useTheme();\n const smUp = useMediaQuery(theme.breakpoints.up('sm'));\n const itemCount = itemData.length;\n const itemSize = smUp ? 36 : 48;\n\n const getChildSize = useCallback(\n (child: ListboxItem) => {\n if (Object.prototype.hasOwnProperty.call(child, 'group')) {\n return 48;\n }\n\n return itemSize;\n },\n [itemSize],\n );\n\n const itemsHeight = useMemo(() => {\n if (itemCount > 8) {\n return 8 * itemSize;\n }\n return itemData.map(getChildSize).reduce((a, b) => a + b, 0);\n }, [itemCount, itemSize, itemData, getChildSize]);\n\n const gridRef = useResetCache(itemCount);\n const onScrollEnd = useContext(ScrollEndContext);\n const firedRef = useRef(false);\n\n useEffect(() => {\n firedRef.current = false;\n }, [itemCount]);\n\n const handleItemsRendered = useCallback(\n ({ visibleStopIndex }: ListOnItemsRenderedProps) => {\n if (\n onScrollEnd &&\n !firedRef.current &&\n visibleStopIndex >= itemCount - 3\n ) {\n firedRef.current = true;\n onScrollEnd();\n }\n },\n [onScrollEnd, itemCount],\n );\n\n return (\n <div ref={ref}>\n <OuterElementContext.Provider value={other}>\n <VariableSizeList\n itemData={itemData}\n height={itemsHeight + 2 * LISTBOX_PADDING}\n width=\"100%\"\n ref={gridRef}\n outerElementType={OuterElementType}\n innerElementType=\"ul\"\n itemSize={index => getChildSize(itemData[index])}\n overscanCount={5}\n itemCount={itemCount}\n onItemsRendered={handleItemsRendered}\n >\n {ListboxRow}\n </VariableSizeList>\n </OuterElementContext.Provider>\n </div>\n );\n});\n\nexport default ListboxComponent;\n","import { HTMLAttributes, memo } from 'react';\nimport { ListChildComponentProps } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { Option } from 'types/option';\n\nimport Icon from '../Icon';\n\nimport type { IconName } from './props';\n\nconst LISTBOX_PADDING = 8;\n\nconst ListboxRow = memo((props: ListChildComponentProps) => {\n const { data, index, style } = props;\n const dataSet = data[index] as\n | AutocompleteRenderGroupParams\n | [HTMLAttributes<HTMLLIElement> & { showValueInLabel?: boolean }, Option];\n\n const inlineStyle = {\n ...style,\n top: (style.top as number) + LISTBOX_PADDING,\n paddingTop: 8,\n };\n\n if (Object.prototype.hasOwnProperty.call(dataSet, 'group')) {\n const groupItem = dataSet as AutocompleteRenderGroupParams;\n return (\n <ListSubheader\n key={`list-box-item-group-${groupItem.group}`}\n component=\"div\"\n style={inlineStyle}\n >\n {groupItem.group}\n </ListSubheader>\n );\n }\n\n const [itemProps, option] = dataSet as [\n HTMLAttributes<HTMLLIElement> & {\n showValueInLabel?: boolean;\n key: string;\n },\n Option,\n ];\n const { showValueInLabel, key, ...otherItemProps } = itemProps;\n\n return (\n <Typography\n component=\"li\"\n key={`list-box-item-${key}`}\n {...otherItemProps}\n noWrap\n style={inlineStyle}\n >\n <Stack\n component=\"div\"\n direction=\"row\"\n flex={1}\n gap={1}\n justifyContent=\"start\"\n >\n {option.icon && <Icon icon={option.icon as IconName} />}\n {option.label}\n\n {showValueInLabel && (\n <Typography variant=\"inherit\" color=\"grey.400\">\n ({option.value})\n </Typography>\n )}\n </Stack>\n </Typography>\n );\n});\n\nListboxRow.displayName = 'ListboxRow';\n\nexport { LISTBOX_PADDING };\nexport default ListboxRow;\n","import { createContext } from 'react';\n\nconst ScrollEndContext = createContext<(() => void) | undefined>(undefined);\n\nexport default ScrollEndContext;\n","import { autocompleteClasses } from '@mui/material/Autocomplete';\nimport Popper from '@mui/material/Popper';\nimport { styled } from '@mui/material/styles';\n\nexport const StyledPopper = styled(Popper)({\n [`& .${autocompleteClasses.listbox}`]: {\n boxSizing: 'border-box',\n '& ul': {\n padding: 0,\n margin: 0,\n },\n },\n});\n"]}
@@ -12,7 +12,7 @@ import { a as a$3 } from '../../chunk-4F2NKGF6.js';
12
12
  import { c } from '../../chunk-VGTQYKAC.js';
13
13
  import { a as a$6 } from '../../chunk-CO2KQFUN.js';
14
14
  import '../../chunk-F65ZXAGV.js';
15
- import { a as a$a } from '../../chunk-6N456D64.js';
15
+ import { a as a$a } from '../../chunk-XI3ZEBE3.js';
16
16
  import { a as a$4 } from '../../chunk-2GTD4JW2.js';
17
17
  import '../../chunk-PBLSVXV5.js';
18
18
  import { a as a$2 } from '../../chunk-E3R7W7GK.js';
@@ -1,4 +1,4 @@
1
- export { a as default } from '../../chunk-6N456D64.js';
1
+ export { a as default } from '../../chunk-XI3ZEBE3.js';
2
2
  import '../../chunk-2GTD4JW2.js';
3
3
  import '../../chunk-PBLSVXV5.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,10 @@
1
- import { a } from '../../chunk-DLASFJON.js';
1
+ import { a } from '../../chunk-DW6BOI43.js';
2
2
  import { r } from '../../chunk-XUDTPZHF.js';
3
3
  import '../../chunk-UVPQR2Q2.js';
4
4
  import { a as a$1 } from '../../chunk-RBTYTONM.js';
5
5
  import '../../chunk-CO2KQFUN.js';
6
6
  import { a as a$3 } from '../../chunk-I4PPSW36.js';
7
- import '../../chunk-6N456D64.js';
7
+ import '../../chunk-XI3ZEBE3.js';
8
8
  import { a as a$2 } from '../../chunk-2GTD4JW2.js';
9
9
  import '../../chunk-PBLSVXV5.js';
10
10
  import { memo, useEffect, useState, useMemo, useCallback } from 'react';
@@ -20,7 +20,7 @@ import '../../chunk-CO2KQFUN.js';
20
20
  import { a as a$8 } from '../../chunk-F6H765KA.js';
21
21
  import '../../chunk-F65ZXAGV.js';
22
22
  import '../../chunk-I4PPSW36.js';
23
- import { a as a$3 } from '../../chunk-6N456D64.js';
23
+ import { a as a$3 } from '../../chunk-XI3ZEBE3.js';
24
24
  import { a } from '../../chunk-2GTD4JW2.js';
25
25
  import '../../chunk-PBLSVXV5.js';
26
26
  import '../../chunk-IAOMC4C4.js';
@@ -4,7 +4,7 @@ import { c } from '../../chunk-VGTQYKAC.js';
4
4
  import { a } from '../../chunk-CO2KQFUN.js';
5
5
  import { a as a$5 } from '../../chunk-F65ZXAGV.js';
6
6
  import { a as a$7 } from '../../chunk-NAGBHM6W.js';
7
- import { a as a$4 } from '../../chunk-6N456D64.js';
7
+ import { a as a$4 } from '../../chunk-XI3ZEBE3.js';
8
8
  import { a as a$6 } from '../../chunk-2GTD4JW2.js';
9
9
  import '../../chunk-PBLSVXV5.js';
10
10
  import { a as a$8 } from '../../chunk-LQRRMVFN.js';
@@ -1,5 +1,5 @@
1
- export { a as default } from '../../chunk-CPHCMXWT.js';
2
- import '../../chunk-RS64MSST.js';
1
+ export { a as default } from '../../chunk-PSG5JWK7.js';
2
+ import '../../chunk-I3HQNMR3.js';
3
3
  import '../../chunk-OF6623HG.js';
4
4
  import '../../chunk-2GTD4JW2.js';
5
5
  import '../../chunk-PBLSVXV5.js';
@@ -1,2 +1,2 @@
1
- export { a as default } from '../../chunk-RS64MSST.js';
1
+ export { a as default } from '../../chunk-I3HQNMR3.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -2,8 +2,8 @@ import { a as a$3 } from '../../../chunk-MSCOIJQ5.js';
2
2
  import { a as a$1 } from '../../../chunk-YXRL4O4H.js';
3
3
  import { a } from '../../../chunk-X64QHBVQ.js';
4
4
  import '../../../chunk-RTC7H5E5.js';
5
- import { a as a$2 } from '../../../chunk-DLASFJON.js';
6
- import '../../../chunk-6N456D64.js';
5
+ import { a as a$2 } from '../../../chunk-DW6BOI43.js';
6
+ import '../../../chunk-XI3ZEBE3.js';
7
7
  import '../../../chunk-2GTD4JW2.js';
8
8
  import '../../../chunk-PBLSVXV5.js';
9
9
  import L from '@mui/material/CircularProgress';
@@ -1,5 +1,5 @@
1
- export { a as default } from '../../../chunk-DLASFJON.js';
2
- import '../../../chunk-6N456D64.js';
1
+ export { a as default } from '../../../chunk-DW6BOI43.js';
2
+ import '../../../chunk-XI3ZEBE3.js';
3
3
  import '../../../chunk-2GTD4JW2.js';
4
4
  import '../../../chunk-PBLSVXV5.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import { a } from '../../../chunk-CPHCMXWT.js';
2
- import '../../../chunk-RS64MSST.js';
1
+ import { a } from '../../../chunk-PSG5JWK7.js';
2
+ import '../../../chunk-I3HQNMR3.js';
3
3
  import '../../../chunk-OF6623HG.js';
4
4
  import '../../../chunk-2GTD4JW2.js';
5
5
  import '../../../chunk-PBLSVXV5.js';
@@ -1,8 +1,8 @@
1
- import { a } from '../../../chunk-RS64MSST.js';
1
+ import { a } from '../../../chunk-I3HQNMR3.js';
2
2
  import { useFormContext, Controller } from 'react-hook-form';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
5
- var N=({name:r,helperText:p,rules:u,onChange:t,className:s,delay:a$1=0,...f})=>{let{control:d}=useFormContext();return jsx(Controller,{name:r,control:d,rules:u,render:({field:o,fieldState:{error:e}})=>jsx(a,{...o,onChange:n=>{o.onChange(n),t&&t(n);},fullWidth:!0,error:!!e,helperText:e?.message||p,"data-intercom-target":r,className:`field-${r} ${s}`,delay:a$1,...f})})},I=N;
5
+ var b=({name:t,helperText:p,rules:u,onChange:e,className:f,delay:s=0,...a$1})=>{let{control:i}=useFormContext();return jsx(Controller,{name:t,control:i,rules:u,render:({field:{ref:d,...r},fieldState:{error:o}})=>jsx(a,{...r,inputRef:d,onChange:n=>{r.onChange(n),e&&e(n);},fullWidth:!0,error:!!o,helperText:o?.message||p,"data-intercom-target":t,className:`field-${t} ${f}`,delay:s,...a$1})})},g=b;
6
6
 
7
- export { I as default };
7
+ export { g as default };
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/form/NumberInput/index.tsx"],"names":["Controller","useFormContext","jsx","NumberInput","name","helperText","rules","onChange","className","delay","other","control","field","error","NumberInput_default","e"],"mappings":"+CAAA,OAAS,cAAAA,EAAY,kBAAAC,MAAsB,kBAuBnC,cAAAC,MAAA,oBAjBR,IAAMC,EAAc,CAAC,CACnB,KAAAC,EACA,WAAAC,EACA,MAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EAAQ,EACR,GAAGC,CACL,IAAwB,CACtB,GAAM,CAAE,QAAAC,CAAQ,EAAIV,EAAe,EAEnC,OACEC,EAACF,EAAA,CACC,KAAMI,EACN,QAASO,EACT,MAAOL,EACP,OAAQ,CAAC,CAAE,MAAAM,EAAO,WAAY,CAAE,MAAAC,CAAM,CAAE,IACtCX,EAACY,EAAA,CACE,GAAGF,EACJ,SAAUG,GAAK,CACbH,EAAM,SAASG,CAAC,EAEZR,GAAUA,EAASQ,CAAC,CAC1B,EACA,UAAS,GACT,MAAO,CAAC,CAACF,EACT,WAAYA,GAAO,SAAWR,EAC9B,uBAAsBD,EACtB,UAAW,SAASA,KAAQI,IAC5B,MAAOC,EACN,GAAGC,EACN,EAEJ,CAEJ,EAEOI,EAAQX","sourcesContent":["import { Controller, useFormContext } from 'react-hook-form';\n\nimport NumberInputComponent from 'components/NumberInput';\n\nimport { NumberInputProps } from './props';\n\nconst NumberInput = ({\n name,\n helperText,\n rules,\n onChange,\n className,\n delay = 0,\n ...other\n}: NumberInputProps) => {\n const { control } = useFormContext();\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field, fieldState: { error } }) => (\n <NumberInputComponent\n {...field}\n onChange={e => {\n field.onChange(e);\n\n if (onChange) onChange(e);\n }}\n fullWidth\n error={!!error}\n helperText={error?.message || helperText}\n data-intercom-target={name}\n className={`field-${name} ${className}`}\n delay={delay}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default NumberInput;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/form/NumberInput/index.tsx"],"names":["Controller","useFormContext","jsx","NumberInput","name","helperText","rules","onChange","className","delay","other","control","ref","field","error","NumberInput_default","e"],"mappings":"+CAAA,OAAS,cAAAA,EAAY,kBAAAC,MAAsB,kBAuBnC,cAAAC,MAAA,oBAjBR,IAAMC,EAAc,CAAC,CACnB,KAAAC,EACA,WAAAC,EACA,MAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EAAQ,EACR,GAAGC,CACL,IAAwB,CACtB,GAAM,CAAE,QAAAC,CAAQ,EAAIV,EAAe,EAEnC,OACEC,EAACF,EAAA,CACC,KAAMI,EACN,QAASO,EACT,MAAOL,EACP,OAAQ,CAAC,CAAE,MAAO,CAAE,IAAAM,EAAK,GAAGC,CAAM,EAAG,WAAY,CAAE,MAAAC,CAAM,CAAE,IACzDZ,EAACa,EAAA,CACE,GAAGF,EACJ,SAAUD,EACV,SAAUI,GAAK,CACbH,EAAM,SAASG,CAAC,EAEZT,GAAUA,EAASS,CAAC,CAC1B,EACA,UAAS,GACT,MAAO,CAAC,CAACF,EACT,WAAYA,GAAO,SAAWT,EAC9B,uBAAsBD,EACtB,UAAW,SAASA,KAAQI,IAC5B,MAAOC,EACN,GAAGC,EACN,EAEJ,CAEJ,EAEOK,EAAQZ","sourcesContent":["import { Controller, useFormContext } from 'react-hook-form';\n\nimport NumberInputComponent from 'components/NumberInput';\n\nimport { NumberInputProps } from './props';\n\nconst NumberInput = ({\n name,\n helperText,\n rules,\n onChange,\n className,\n delay = 0,\n ...other\n}: NumberInputProps) => {\n const { control } = useFormContext();\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field: { ref, ...field }, fieldState: { error } }) => (\n <NumberInputComponent\n {...field}\n inputRef={ref}\n onChange={e => {\n field.onChange(e);\n\n if (onChange) onChange(e);\n }}\n fullWidth\n error={!!error}\n helperText={error?.message || helperText}\n data-intercom-target={name}\n className={`field-${name} ${className}`}\n delay={delay}\n {...other}\n />\n )}\n />\n );\n};\n\nexport default NumberInput;\n"]}
@@ -1,14 +1,14 @@
1
1
  import { useFormContext, Controller } from 'react-hook-form';
2
- import h from '@mui/material/FormControl';
3
- import G from '@mui/material/FormControlLabel';
4
- import k from '@mui/material/FormHelperText';
5
- import L from '@mui/material/FormLabel';
6
- import P from '@mui/material/Radio';
7
- import $ from '@mui/material/RadioGroup';
2
+ import k from '@mui/material/FormControl';
3
+ import L from '@mui/material/FormControlLabel';
4
+ import P from '@mui/material/FormHelperText';
5
+ import $ from '@mui/material/FormLabel';
6
+ import H from '@mui/material/Radio';
7
+ import M from '@mui/material/RadioGroup';
8
8
  import { alpha } from '@mui/material/styles';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
10
10
 
11
- var H=({name:l,rules:b,row:i,label:e,options:y,spacing:d,helperText:p,decorated:n,onChange:u,tabIndex:g,required:C,disabled:s,...F})=>{let{control:R}=useFormContext(),c=e?`${l}-${e}`:"";return jsx(Controller,{name:l,control:R,rules:b,render:({field:a,fieldState:{error:m}})=>jsxs(h,{component:"fieldset",sx:{...n&&{paddingLeft:1.5}},"data-intercom-target":l,children:[e&&jsx(L,{component:"legend",id:c,sx:{typography:"body2"},required:C,children:e}),jsx($,{...F,...a,onChange:(o,t)=>{a.onChange(o),u&&u(o,t);},"aria-labelledby":c,row:i,children:y.map(o=>jsx(G,{value:o.value,control:jsx(P,{inputProps:{tabIndex:g},disabled:s,checked:o.value===a.value,icon:o.icon,checkedIcon:o.icon}),label:o.label,sx:({palette:t})=>({"&:not(:last-of-type)":{mb:d||0},...i&&{mr:0,"&:not(:last-of-type)":{mr:d||2}},...n&&{border:`1px solid ${alpha(t.grey[500],.32)}`,borderRadius:1,padding:.25,paddingRight:(d||0)/2||1,...a.value===o.value&&{borderColor:"primary.main",backgroundColor:alpha(t.primary.main,.05)}}})},o.value))}),(!!m||p)&&jsx(k,{error:!!m,sx:o=>({color:s?o.palette.grey[500]:void 0}),children:m?m?.message:p})]})})},D=H;
11
+ var q=({name:t,rules:y,row:i,label:e,options:g,spacing:l,helperText:n,decorated:p,onChange:u,tabIndex:R,required:C,disabled:f,...F})=>{let{control:x}=useFormContext(),s=e?`${t}-${e}`:"";return jsx(Controller,{name:t,control:x,rules:y,render:({field:{ref:v,...a},fieldState:{error:m}})=>jsxs(k,{component:"fieldset",sx:{...p&&{paddingLeft:1.5}},"data-intercom-target":t,children:[e&&jsx($,{component:"legend",id:s,sx:{typography:"body2"},required:C,children:e}),jsx(M,{...F,...a,onChange:(o,d)=>{a.onChange(o),u&&u(o,d);},"aria-labelledby":s,row:i,children:g.map((o,d)=>jsx(L,{value:o.value,control:jsx(H,{inputRef:d===0?v:void 0,inputProps:{tabIndex:R},disabled:f,checked:o.value===a.value,icon:o.icon,checkedIcon:o.icon}),label:o.label,sx:({palette:c})=>({"&:not(:last-of-type)":{mb:l||0},...i&&{mr:0,"&:not(:last-of-type)":{mr:l||2}},...p&&{border:`1px solid ${alpha(c.grey[500],.32)}`,borderRadius:1,padding:.25,paddingRight:(l||0)/2||1,...a.value===o.value&&{borderColor:"primary.main",backgroundColor:alpha(c.primary.main,.05)}}})},o.value))}),(!!m||n)&&jsx(P,{error:!!m,sx:o=>({color:f?o.palette.grey[500]:void 0}),children:m?m?.message:n})]})})},J=q;
12
12
 
13
- export { D as default };
13
+ export { J as default };
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/form/RadioGroup/index.tsx"],"names":["Controller","useFormContext","FormControl","FormControlLabel","FormHelperText","FormLabel","Radio","MuiRadioGroup","alpha","jsx","jsxs","RadioGroup","name","rules","row","label","options","spacing","helperText","decorated","onChange","tabIndex","required","disabled","other","control","labelledby","field","error","event","value","option","palette","theme","RadioGroup_default"],"mappings":"AAAA,OAAS,cAAAA,EAAY,kBAAAC,MAAsB,kBAC3C,OAAOC,MAAiB,4BACxB,OAAOC,MAAsB,iCAC7B,OAAOC,MAAoB,+BAC3B,OAAOC,MAAe,0BACtB,OAAOC,MAAW,sBAClB,OAAOC,MAAmB,2BAC1B,OAAS,SAAAC,MAAa,uBA6Bd,OAUI,OAAAC,EAVJ,QAAAC,MAAA,oBAzBR,IAAMC,EAAa,CAAC,CAClB,KAAAC,EACA,MAAAC,EACA,IAAAC,EACA,MAAAC,EACA,QAAAC,EACA,QAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAuB,CACrB,GAAM,CAAE,QAAAC,CAAQ,EAAIxB,EAAe,EAE7ByB,EAAaX,EAAQ,GAAGH,KAAQG,IAAU,GAEhD,OACEN,EAACT,EAAA,CACC,KAAMY,EACN,QAASa,EACT,MAAOZ,EACP,OAAQ,CAAC,CAAE,MAAAc,EAAO,WAAY,CAAE,MAAAC,CAAM,CAAE,IACtClB,EAACR,EAAA,CACC,UAAU,WACV,GAAI,CACF,GAAIiB,GAAa,CACf,YAAa,GACf,CACF,EACA,uBAAsBP,EAErB,UAAAG,GACCN,EAACJ,EAAA,CACC,UAAU,SACV,GAAIqB,EACJ,GAAI,CAAE,WAAY,OAAQ,EAC1B,SAAUJ,EAET,SAAAP,EACH,EAGFN,EAACF,EAAA,CACE,GAAGiB,EACH,GAAGG,EACJ,SAAU,CAACE,EAAOC,IAAU,CAC1BH,EAAM,SAASE,CAAK,EAChBT,GAAUA,EAASS,EAAOC,CAAK,CACrC,EACA,kBAAiBJ,EACjB,IAAKZ,EAEJ,SAAAE,EAAQ,IAAIe,GACXtB,EAACN,EAAA,CAEC,MAAO4B,EAAO,MACd,QACEtB,EAACH,EAAA,CACC,WAAY,CAAE,SAAAe,CAAS,EACvB,SAAUE,EACV,QAASQ,EAAO,QAAUJ,EAAM,MAChC,KAAMI,EAAO,KACb,YAAaA,EAAO,KACtB,EAEF,MAAOA,EAAO,MACd,GAAI,CAAC,CAAE,QAAAC,CAAQ,KAAO,CACpB,uBAAwB,CACtB,GAAIf,GAAW,CACjB,EACA,GAAIH,GAAO,CACT,GAAI,EACJ,uBAAwB,CACtB,GAAIG,GAAW,CACjB,CACF,EAEA,GAAIE,GAAa,CACf,OAAQ,aAAaX,EAAMwB,EAAQ,KAAK,GAAG,EAAG,GAAI,IAClD,aAAc,EACd,QAAS,IACT,cAAef,GAAW,GAAK,GAAK,EAEpC,GAAIU,EAAM,QAAUI,EAAO,OAAS,CAClC,YAAa,eACb,gBAAiBvB,EAAMwB,EAAQ,QAAQ,KAAM,GAAI,CACnD,CACF,CACF,IAlCKD,EAAO,KAmCd,CACD,EACH,GAEE,CAAC,CAACH,GAASV,IACXT,EAACL,EAAA,CACC,MAAO,CAAC,CAACwB,EACT,GAAIK,IAAU,CACZ,MAAOV,EAAWU,EAAM,QAAQ,KAAK,GAAG,EAAI,MAC9C,GAEC,SAAAL,EAAQA,GAAO,QAAUV,EAC5B,GAEJ,EAEJ,CAEJ,EAEOgB,EAAQvB","sourcesContent":["import { Controller, useFormContext } from 'react-hook-form';\nimport FormControl from '@mui/material/FormControl';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormLabel from '@mui/material/FormLabel';\nimport Radio from '@mui/material/Radio';\nimport MuiRadioGroup from '@mui/material/RadioGroup';\nimport { alpha } from '@mui/material/styles';\n\nimport { RadioGroupProps } from 'types/radioGroupProps';\n\nconst RadioGroup = ({\n name,\n rules,\n row,\n label,\n options,\n spacing,\n helperText,\n decorated,\n onChange,\n tabIndex,\n required,\n disabled,\n ...other\n}: RadioGroupProps) => {\n const { control } = useFormContext();\n\n const labelledby = label ? `${name}-${label}` : '';\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field, fieldState: { error } }) => (\n <FormControl\n component=\"fieldset\"\n sx={{\n ...(decorated && {\n paddingLeft: 1.5,\n }),\n }}\n data-intercom-target={name}\n >\n {label && (\n <FormLabel\n component=\"legend\"\n id={labelledby}\n sx={{ typography: 'body2' }}\n required={required}\n >\n {label}\n </FormLabel>\n )}\n\n <MuiRadioGroup\n {...other}\n {...field}\n onChange={(event, value) => {\n field.onChange(event);\n if (onChange) onChange(event, value);\n }}\n aria-labelledby={labelledby}\n row={row}\n >\n {options.map(option => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n control={\n <Radio\n inputProps={{ tabIndex }}\n disabled={disabled}\n checked={option.value === field.value}\n icon={option.icon}\n checkedIcon={option.icon}\n />\n }\n label={option.label}\n sx={({ palette }) => ({\n '&:not(:last-of-type)': {\n mb: spacing || 0,\n },\n ...(row && {\n mr: 0,\n '&:not(:last-of-type)': {\n mr: spacing || 2,\n },\n }),\n\n ...(decorated && {\n border: `1px solid ${alpha(palette.grey[500], 0.32)}`,\n borderRadius: 1,\n padding: 0.25,\n paddingRight: (spacing || 0) / 2 || 1,\n\n ...(field.value === option.value && {\n borderColor: 'primary.main',\n backgroundColor: alpha(palette.primary.main, 0.05),\n }),\n }),\n })}\n />\n ))}\n </MuiRadioGroup>\n\n {(!!error || helperText) && (\n <FormHelperText\n error={!!error}\n sx={theme => ({\n color: disabled ? theme.palette.grey[500] : undefined,\n })}\n >\n {error ? error?.message : helperText}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n );\n};\n\nexport default RadioGroup;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/form/RadioGroup/index.tsx"],"names":["Controller","useFormContext","FormControl","FormControlLabel","FormHelperText","FormLabel","Radio","MuiRadioGroup","alpha","jsx","jsxs","RadioGroup","name","rules","row","label","options","spacing","helperText","decorated","onChange","tabIndex","required","disabled","other","control","labelledby","ref","field","error","event","value","option","index","palette","theme","RadioGroup_default"],"mappings":"AAAA,OAAS,cAAAA,EAAY,kBAAAC,MAAsB,kBAC3C,OAAOC,MAAiB,4BACxB,OAAOC,MAAsB,iCAC7B,OAAOC,MAAoB,+BAC3B,OAAOC,MAAe,0BACtB,OAAOC,MAAW,sBAClB,OAAOC,MAAmB,2BAC1B,OAAS,SAAAC,MAAa,uBA6Bd,OAUI,OAAAC,EAVJ,QAAAC,MAAA,oBAzBR,IAAMC,EAAa,CAAC,CAClB,KAAAC,EACA,MAAAC,EACA,IAAAC,EACA,MAAAC,EACA,QAAAC,EACA,QAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAuB,CACrB,GAAM,CAAE,QAAAC,CAAQ,EAAIxB,EAAe,EAE7ByB,EAAaX,EAAQ,GAAGH,KAAQG,IAAU,GAEhD,OACEN,EAACT,EAAA,CACC,KAAMY,EACN,QAASa,EACT,MAAOZ,EACP,OAAQ,CAAC,CAAE,MAAO,CAAE,IAAAc,EAAK,GAAGC,CAAM,EAAG,WAAY,CAAE,MAAAC,CAAM,CAAE,IACzDnB,EAACR,EAAA,CACC,UAAU,WACV,GAAI,CACF,GAAIiB,GAAa,CACf,YAAa,GACf,CACF,EACA,uBAAsBP,EAErB,UAAAG,GACCN,EAACJ,EAAA,CACC,UAAU,SACV,GAAIqB,EACJ,GAAI,CAAE,WAAY,OAAQ,EAC1B,SAAUJ,EAET,SAAAP,EACH,EAGFN,EAACF,EAAA,CACE,GAAGiB,EACH,GAAGI,EACJ,SAAU,CAACE,EAAOC,IAAU,CAC1BH,EAAM,SAASE,CAAK,EAChBV,GAAUA,EAASU,EAAOC,CAAK,CACrC,EACA,kBAAiBL,EACjB,IAAKZ,EAEJ,SAAAE,EAAQ,IAAI,CAACgB,EAAQC,IACpBxB,EAACN,EAAA,CAEC,MAAO6B,EAAO,MACd,QACEvB,EAACH,EAAA,CACC,SAAU2B,IAAU,EAAIN,EAAM,OAC9B,WAAY,CAAE,SAAAN,CAAS,EACvB,SAAUE,EACV,QAASS,EAAO,QAAUJ,EAAM,MAChC,KAAMI,EAAO,KACb,YAAaA,EAAO,KACtB,EAEF,MAAOA,EAAO,MACd,GAAI,CAAC,CAAE,QAAAE,CAAQ,KAAO,CACpB,uBAAwB,CACtB,GAAIjB,GAAW,CACjB,EACA,GAAIH,GAAO,CACT,GAAI,EACJ,uBAAwB,CACtB,GAAIG,GAAW,CACjB,CACF,EAEA,GAAIE,GAAa,CACf,OAAQ,aAAaX,EAAM0B,EAAQ,KAAK,GAAG,EAAG,GAAI,IAClD,aAAc,EACd,QAAS,IACT,cAAejB,GAAW,GAAK,GAAK,EAEpC,GAAIW,EAAM,QAAUI,EAAO,OAAS,CAClC,YAAa,eACb,gBAAiBxB,EAAM0B,EAAQ,QAAQ,KAAM,GAAI,CACnD,CACF,CACF,IAnCKF,EAAO,KAoCd,CACD,EACH,GAEE,CAAC,CAACH,GAASX,IACXT,EAACL,EAAA,CACC,MAAO,CAAC,CAACyB,EACT,GAAIM,IAAU,CACZ,MAAOZ,EAAWY,EAAM,QAAQ,KAAK,GAAG,EAAI,MAC9C,GAEC,SAAAN,EAAQA,GAAO,QAAUX,EAC5B,GAEJ,EAEJ,CAEJ,EAEOkB,EAAQzB","sourcesContent":["import { Controller, useFormContext } from 'react-hook-form';\nimport FormControl from '@mui/material/FormControl';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormLabel from '@mui/material/FormLabel';\nimport Radio from '@mui/material/Radio';\nimport MuiRadioGroup from '@mui/material/RadioGroup';\nimport { alpha } from '@mui/material/styles';\n\nimport { RadioGroupProps } from 'types/radioGroupProps';\n\nconst RadioGroup = ({\n name,\n rules,\n row,\n label,\n options,\n spacing,\n helperText,\n decorated,\n onChange,\n tabIndex,\n required,\n disabled,\n ...other\n}: RadioGroupProps) => {\n const { control } = useFormContext();\n\n const labelledby = label ? `${name}-${label}` : '';\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field: { ref, ...field }, fieldState: { error } }) => (\n <FormControl\n component=\"fieldset\"\n sx={{\n ...(decorated && {\n paddingLeft: 1.5,\n }),\n }}\n data-intercom-target={name}\n >\n {label && (\n <FormLabel\n component=\"legend\"\n id={labelledby}\n sx={{ typography: 'body2' }}\n required={required}\n >\n {label}\n </FormLabel>\n )}\n\n <MuiRadioGroup\n {...other}\n {...field}\n onChange={(event, value) => {\n field.onChange(event);\n if (onChange) onChange(event, value);\n }}\n aria-labelledby={labelledby}\n row={row}\n >\n {options.map((option, index) => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n control={\n <Radio\n inputRef={index === 0 ? ref : undefined}\n inputProps={{ tabIndex }}\n disabled={disabled}\n checked={option.value === field.value}\n icon={option.icon}\n checkedIcon={option.icon}\n />\n }\n label={option.label}\n sx={({ palette }) => ({\n '&:not(:last-of-type)': {\n mb: spacing || 0,\n },\n ...(row && {\n mr: 0,\n '&:not(:last-of-type)': {\n mr: spacing || 2,\n },\n }),\n\n ...(decorated && {\n border: `1px solid ${alpha(palette.grey[500], 0.32)}`,\n borderRadius: 1,\n padding: 0.25,\n paddingRight: (spacing || 0) / 2 || 1,\n\n ...(field.value === option.value && {\n borderColor: 'primary.main',\n backgroundColor: alpha(palette.primary.main, 0.05),\n }),\n }),\n })}\n />\n ))}\n </MuiRadioGroup>\n\n {(!!error || helperText) && (\n <FormHelperText\n error={!!error}\n sx={theme => ({\n color: disabled ? theme.palette.grey[500] : undefined,\n })}\n >\n {error ? error?.message : helperText}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n );\n};\n\nexport default RadioGroup;\n"]}
@@ -1,7 +1,7 @@
1
1
  import { a as a$1 } from '../../../chunk-YXRL4O4H.js';
2
- import { a as a$2 } from '../../../chunk-DLASFJON.js';
2
+ import { a as a$2 } from '../../../chunk-DW6BOI43.js';
3
3
  import { a as a$3 } from '../../../chunk-NAGBHM6W.js';
4
- import '../../../chunk-6N456D64.js';
4
+ import '../../../chunk-XI3ZEBE3.js';
5
5
  import { a } from '../../../chunk-2GTD4JW2.js';
6
6
  import '../../../chunk-PBLSVXV5.js';
7
7
  import { useCallback, useMemo } from 'react';
@@ -1,7 +1,7 @@
1
+ import { Ref } from 'react';
1
2
  import { InputLabelProps } from '@mui/material/InputLabel';
2
3
  import { BaseAutoComplete } from './autoComplete.js';
3
4
  import { Option } from './option.js';
4
- import 'react';
5
5
  import '@mui/material/Autocomplete';
6
6
  import './icon.js';
7
7
 
@@ -14,6 +14,7 @@ type AutocompleteProps = Omit<BaseAutoComplete, 'onChange'> & {
14
14
  showValueInLabel?: boolean;
15
15
  showAdditionalFields?: boolean;
16
16
  InputLabelProps?: Partial<InputLabelProps>;
17
+ inputRef?: Ref<HTMLInputElement>;
17
18
  };
18
19
 
19
20
  export { AutocompleteProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.9.0",
3
+ "version": "2.9.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1,18 +0,0 @@
1
- import { a } from './chunk-2GTD4JW2.js';
2
- import { memo, createContext, forwardRef, useContext, useMemo, useCallback, useRef, useEffect } from 'react';
3
- import Ge, { autocompleteClasses } from '@mui/material/Autocomplete';
4
- import fe from '@mui/material/CircularProgress';
5
- import be from '@mui/material/TextField';
6
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
- import { VariableSizeList } from 'react-window';
8
- import { useTheme, styled } from '@mui/material/styles';
9
- import Ce from '@mui/material/useMediaQuery';
10
- import ge from '@mui/material/ListSubheader';
11
- import Pe from '@mui/material/Stack';
12
- import $ from '@mui/material/Typography';
13
- import Ee from '@mui/material/Popper';
14
-
15
- var z=memo(({params:e,name:t,placeholder:s,error:n,helperText:p,label:m,required:L,multiple:l,formattedValue:o,loading:a$1,tabIndex:u,InputLabelProps:y})=>jsx(be,{...e,name:t,placeholder:s,fullWidth:!0,error:!!n,helperText:p,label:m,required:L,InputProps:{...e.InputProps,...!l&&{startAdornment:o&&!Array.isArray(o)&&o.icon?jsx(a,{icon:o.icon}):void 0},endAdornment:jsxs(Fragment,{children:[a$1?jsx(fe,{color:"primary",size:20}):null,e.InputProps.endAdornment]})},inputProps:{...e.inputProps,name:t,tabIndex:u},InputLabelProps:y}));z.displayName="AutocompleteInput";var D=z;var w=8,V=memo(e=>{let{data:t,index:s,style:n}=e,p=t[s],m={...n,top:n.top+w,paddingTop:8};if(Object.prototype.hasOwnProperty.call(p,"group")){let y=p;return jsx(ge,{component:"div",style:m,children:y.group},`list-box-item-group-${y.group}`)}let[L,l]=p,{showValueInLabel:o,key:a$1,...u}=L;return jsx($,{component:"li",...u,noWrap:!0,style:m,children:jsxs(Pe,{component:"div",direction:"row",flex:1,gap:1,justifyContent:"start",children:[l.icon&&jsx(a,{icon:l.icon}),l.label,o&&jsxs($,{variant:"inherit",color:"grey.400",children:["(",l.value,")"]})]})},`list-box-item-${a$1}`)});V.displayName="ListboxRow";var B=V;var xe=createContext(void 0),R=xe;var Q=createContext({}),J=forwardRef((e,t)=>{let s=useContext(Q);return jsx("div",{ref:t,...e,...s})});J.displayName="OuterElementType";var Se=e=>{let t=useRef(null);return useEffect(()=>{t.current!=null&&t.current.resetAfterIndex(0,!0);},[e]),t},Te=forwardRef(function(t,s){let{children:n,...p}=t,m=useMemo(()=>{let r=[];return n.forEach(b=>{r.push(b),Object.prototype.hasOwnProperty.call(b,"children")&&Array.isArray(b.children)&&r.push(...b.children);}),r},[n]),L=useTheme(),l=Ce(L.breakpoints.up("sm")),o=m.length,a=l?36:48,u=useCallback(r=>Object.prototype.hasOwnProperty.call(r,"group")?48:a,[a]),y=useMemo(()=>o>8?8*a:m.map(u).reduce((r,b)=>r+b,0),[o,a,m,u]),I=Se(o),g=useContext(R),c=useRef(!1);useEffect(()=>{c.current=!1;},[o]);let x=useCallback(({visibleStopIndex:r})=>{g&&!c.current&&r>=o-3&&(c.current=!0,g());},[g,o]);return jsx("div",{ref:s,children:jsx(Q.Provider,{value:p,children:jsx(VariableSizeList,{itemData:m,height:y+2*w,width:"100%",ref:I,outerElementType:J,innerElementType:"ul",itemSize:r=>u(m[r]),overscanCount:5,itemCount:o,onItemsRendered:x,children:B})})})}),K=Te;var Y=styled(Ee)({[`& .${autocompleteClasses.listbox}`]:{boxSizing:"border-box","& ul":{padding:0,margin:0}}});var Ne=e=>e&&typeof e=="object"?e.value.toString():e.toString(),ze=e=>e,De=(e,t)=>{let s=t.inputValue.toLocaleUpperCase();return e.filter(n=>`${n.value} ${n.label}`.toLocaleUpperCase().includes(s))},ee=memo(forwardRef(({name:e,label:t,value:s,options:n=[],loading:p,noOptionsText:m="Nenhum resultado encontrado.",loadingText:L="Carregando op\xE7\xF5es...",error:l,helperText:o,placeholder:a,onChange:u,groupBy:y,showValueInLabel:I,disabled:g,multiple:c,required:x,renderOption:r,tabIndex:b,onInputChange:C,onSearch:A,onBlur:S,onScrollEnd:te,InputLabelProps:k,filterOptions:oe,...re},ne)=>{let G=useRef(null),T=useMemo(()=>c?(Array.isArray(s)?s:[]).reduce((f,v)=>{let N=n.find(ce=>ce.value.toString()===v.toString());return N?[...f,N]:[...f]},[]):n.find(i=>i.value.toString()===s?.toString())||null,[n,s,c]),ie=oe??(G.current==="reset"?void 0:De),se=useCallback((d,i,f)=>{if(G.current=f,C&&C(d,i,f),f==="input"){A&&A(i);return}f==="reset"&&A&&A(void 0),f==="clear"&&A&&A("");},[C,A]),pe=useCallback((d,i)=>{if(!i){u(c?[]:null);return}if(Array.isArray(i)){u(i.map(Ne));return}u(typeof i=="string"?i.toString():i.value.toString());},[u,c]),me=useCallback(d=>{S&&S(d);},[S]),ue=useCallback((d,i,f,v)=>r?r(d,i,f,v):[{...d,showValueInLabel:I},i],[r,I]),le=useMemo(()=>r?void 0:K,[r]),ae=useCallback(d=>jsx(D,{params:d,name:e,placeholder:a,error:l,helperText:o,label:t,required:x,multiple:c,formattedValue:T,loading:p,tabIndex:b,InputLabelProps:k}),[e,a,l,o,t,x,c,T,p,b,k]);return jsx(R.Provider,{value:te,children:jsx(Ge,{ref:ne,value:T,onInputChange:se,options:n,loading:p,noOptionsText:m,loadingText:L,disabled:g,disableListWrap:!0,PopperComponent:Y,ListboxComponent:le,filterOptions:ie,onChange:pe,onBlur:me,renderOption:ue,renderGroup:ze,groupBy:y,multiple:c,renderInput:ae,...re})})}));ee.displayName="Autocomplete";var Ct=ee;
16
-
17
- export { Ct as a };
18
- //# sourceMappingURL=chunk-6N456D64.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Autocomplete/index.tsx","../src/components/Autocomplete/AutocompleteInput.tsx","../src/components/Autocomplete/Listbox.tsx","../src/components/Autocomplete/ListboxRow.tsx","../src/components/Autocomplete/ScrollEndContext.ts","../src/components/Autocomplete/styles.ts"],"names":["forwardRef","memo","useCallback","useMemo","useRef","MuiAutocomplete","CircularProgress","TextField","Fragment","jsx","jsxs","AutocompleteInput","params","name","placeholder","error","helperText","label","required","multiple","formattedValue","loading","tabIndex","InputLabelProps","Icon_default","AutocompleteInput_default","createContext","useContext","useEffect","VariableSizeList","useTheme","useMediaQuery","ListSubheader","Stack","Typography","LISTBOX_PADDING","ListboxRow","props","data","index","style","dataSet","inlineStyle","groupItem","itemProps","option","showValueInLabel","key","otherItemProps","ListboxRow_default","ScrollEndContext","ScrollEndContext_default","OuterElementContext","OuterElementType","ref","outerProps","useResetCache","ListboxComponent","children","other","itemData","item","theme","smUp","itemCount","itemSize","getChildSize","child","itemsHeight","a","gridRef","onScrollEnd","firedRef","handleItemsRendered","visibleStopIndex","Listbox_default","autocompleteClasses","Popper","styled","StyledPopper","getOptionValue","optionValue","renderGroup","defaultFilterOptions","optionsFilter","state","searchValue","opt","Autocomplete","value","options","noOptionsText","loadingText","onChange","groupBy","disabled","renderOption","onInputChange","onSearch","onBlur","filterOptionsProp","inputReasonRef","acc","curr","resolvedFilterOptions","handleInputChange","event","eventValue","reason","handleChange","_","handleBlur","memoizedRenderOption","ownerState","renderListbox","memoizedRenderInput","Autocomplete_default"],"mappings":"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","sourcesContent":["import {\n forwardRef,\n memo,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport MuiAutocomplete, {\n AutocompleteOwnerState,\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n AutocompleteRenderOptionState,\n} from '@mui/material/Autocomplete';\n\nimport { AutocompleteProps } from 'types/autoCompleteProps';\nimport { Option } from 'types/option';\n\nimport AutocompleteInput from './AutocompleteInput';\nimport ListboxComponent from './Listbox';\nimport ScrollEndContext from './ScrollEndContext';\nimport { StyledPopper } from './styles';\n\nconst getOptionValue = (optionValue: Option | string | number): string =>\n optionValue && typeof optionValue === 'object'\n ? optionValue.value.toString()\n : optionValue.toString();\n\nconst renderGroup = (params: AutocompleteRenderGroupParams) =>\n params as unknown as ReactNode;\n\nconst defaultFilterOptions = (\n optionsFilter: Option[],\n state: { inputValue: string },\n) => {\n const searchValue = state.inputValue.toLocaleUpperCase();\n return optionsFilter.filter(opt => {\n const search = `${opt.value} ${opt.label}`;\n\n return search.toLocaleUpperCase().includes(searchValue);\n });\n};\n\nconst Autocomplete = memo(\n forwardRef<unknown, AutocompleteProps>(\n (\n {\n name,\n label,\n value,\n options = [],\n loading,\n noOptionsText = 'Nenhum resultado encontrado.',\n loadingText = 'Carregando opções...',\n error,\n helperText,\n placeholder,\n onChange,\n groupBy,\n showValueInLabel,\n disabled,\n multiple,\n required,\n renderOption,\n tabIndex,\n onInputChange,\n onSearch,\n onBlur,\n onScrollEnd,\n InputLabelProps,\n filterOptions: filterOptionsProp,\n ...other\n },\n ref,\n ) => {\n const inputReasonRef = useRef<'input' | 'reset' | 'clear' | null>(null);\n\n const formattedValue = useMemo(() => {\n if (multiple) {\n const values = Array.isArray(value) ? value : [];\n\n return values.reduce<Option[]>((acc, curr) => {\n const item = options.find(\n opt => opt.value.toString() === curr.toString(),\n );\n\n if (item) return [...acc, item];\n\n return [...acc];\n }, []);\n }\n\n const item = options.find(\n opt => opt.value.toString() === value?.toString(),\n );\n\n return item || null;\n }, [options, value, multiple]);\n\n const resolvedFilterOptions =\n filterOptionsProp ??\n (inputReasonRef.current === 'reset' ? undefined : defaultFilterOptions);\n\n const handleInputChange = useCallback(\n (\n event: React.SyntheticEvent,\n eventValue: string,\n reason: 'input' | 'reset' | 'clear',\n ) => {\n inputReasonRef.current = reason;\n if (onInputChange) onInputChange(event, eventValue, reason);\n\n if (reason === 'input') {\n if (onSearch) onSearch(eventValue);\n return;\n }\n\n if (reason === 'reset') {\n if (onSearch) onSearch(undefined);\n }\n\n if (reason === 'clear') {\n if (onSearch) onSearch('');\n }\n },\n [onInputChange, onSearch],\n );\n\n const handleChange = useCallback(\n (\n _: React.SyntheticEvent,\n option: Option | (string | Option)[] | string | null,\n ) => {\n if (!option) {\n onChange(multiple ? [] : null);\n return;\n }\n\n if (Array.isArray(option)) {\n onChange(option.map(getOptionValue));\n return;\n }\n\n onChange(\n typeof option === 'string'\n ? option.toString()\n : option.value.toString(),\n );\n },\n [onChange, multiple],\n );\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) onBlur(event);\n },\n [onBlur],\n );\n\n const memoizedRenderOption = useCallback(\n (\n props: React.HTMLAttributes<HTMLLIElement> & { key: string },\n option: Option,\n state: AutocompleteRenderOptionState,\n ownerState: AutocompleteOwnerState<Option, boolean, boolean, boolean>,\n ) =>\n renderOption\n ? renderOption(props, option, state, ownerState)\n : ([{ ...props, showValueInLabel }, option] as ReactNode),\n [renderOption, showValueInLabel],\n );\n\n const renderListbox = useMemo(\n () => (renderOption ? undefined : ListboxComponent),\n [renderOption],\n );\n\n const memoizedRenderInput = useCallback(\n (params: AutocompleteRenderInputParams) => (\n <AutocompleteInput\n params={params}\n name={name}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n label={label}\n required={required}\n multiple={multiple}\n formattedValue={formattedValue}\n loading={loading}\n tabIndex={tabIndex}\n InputLabelProps={InputLabelProps}\n />\n ),\n [\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n multiple,\n formattedValue,\n loading,\n tabIndex,\n InputLabelProps,\n ],\n );\n\n return (\n <ScrollEndContext.Provider value={onScrollEnd}>\n <MuiAutocomplete\n ref={ref}\n value={formattedValue}\n onInputChange={handleInputChange}\n options={options}\n loading={loading}\n noOptionsText={noOptionsText}\n loadingText={loadingText}\n disabled={disabled}\n disableListWrap\n PopperComponent={StyledPopper}\n ListboxComponent={renderListbox}\n filterOptions={resolvedFilterOptions}\n onChange={handleChange}\n onBlur={handleBlur}\n renderOption={memoizedRenderOption}\n renderGroup={renderGroup}\n groupBy={groupBy}\n multiple={multiple}\n renderInput={memoizedRenderInput}\n {...other}\n />\n </ScrollEndContext.Provider>\n );\n },\n ),\n);\n\nAutocomplete.displayName = 'Autocomplete';\n\nexport default Autocomplete;\n","import { memo } from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\n\nimport Icon from '../Icon';\n\nimport { AutocompleteInputProps } from './props';\n\nconst AutocompleteInput = memo(\n ({\n params,\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n multiple,\n formattedValue,\n loading,\n tabIndex,\n InputLabelProps,\n }: AutocompleteInputProps) => (\n <TextField\n {...params}\n name={name}\n placeholder={placeholder}\n fullWidth\n error={!!error}\n helperText={helperText}\n label={label}\n required={required}\n InputProps={{\n ...params.InputProps,\n ...(!multiple && {\n startAdornment:\n formattedValue &&\n !Array.isArray(formattedValue) &&\n formattedValue.icon ? (\n <Icon icon={formattedValue.icon} />\n ) : undefined,\n }),\n endAdornment: (\n <>\n {loading ? <CircularProgress color=\"primary\" size={20} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n inputProps={{\n ...params.inputProps,\n name,\n tabIndex,\n }}\n InputLabelProps={InputLabelProps}\n />\n ),\n);\n\nAutocompleteInput.displayName = 'AutocompleteInput';\n\nexport default AutocompleteInput;\n","import {\n createContext,\n forwardRef,\n HTMLAttributes,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport { ListOnItemsRenderedProps, VariableSizeList } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport ListboxRow, { LISTBOX_PADDING } from './ListboxRow';\nimport type { ListboxItem } from './props';\nimport ScrollEndContext from './ScrollEndContext';\n\nconst OuterElementContext = createContext({});\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => {\n const outerProps = useContext(OuterElementContext);\n return <div ref={ref} {...props} {...outerProps} />;\n});\n\nOuterElementType.displayName = 'OuterElementType';\n\nconst useResetCache = (data: number) => {\n const ref = useRef<VariableSizeList>(null);\n\n useEffect(() => {\n if (ref.current != null) {\n ref.current.resetAfterIndex(0, true);\n }\n }, [data]);\n\n return ref;\n};\n\nconst ListboxComponent = forwardRef<\n HTMLDivElement,\n HTMLAttributes<HTMLElement>\n>(function ListboxComponent(props, ref) {\n const { children, ...other } = props;\n\n const itemData: ListboxItem[] = useMemo(() => {\n const data: ListboxItem[] = [];\n (children as ListboxItem[]).forEach(item => {\n data.push(item);\n if (\n Object.prototype.hasOwnProperty.call(item, 'children') &&\n Array.isArray((item as AutocompleteRenderGroupParams).children)\n ) {\n data.push(\n ...((item as AutocompleteRenderGroupParams)\n .children as ListboxItem[]),\n );\n }\n });\n return data;\n }, [children]);\n\n const theme = useTheme();\n const smUp = useMediaQuery(theme.breakpoints.up('sm'));\n const itemCount = itemData.length;\n const itemSize = smUp ? 36 : 48;\n\n const getChildSize = useCallback(\n (child: ListboxItem) => {\n if (Object.prototype.hasOwnProperty.call(child, 'group')) {\n return 48;\n }\n\n return itemSize;\n },\n [itemSize],\n );\n\n const itemsHeight = useMemo(() => {\n if (itemCount > 8) {\n return 8 * itemSize;\n }\n return itemData.map(getChildSize).reduce((a, b) => a + b, 0);\n }, [itemCount, itemSize, itemData, getChildSize]);\n\n const gridRef = useResetCache(itemCount);\n const onScrollEnd = useContext(ScrollEndContext);\n const firedRef = useRef(false);\n\n useEffect(() => {\n firedRef.current = false;\n }, [itemCount]);\n\n const handleItemsRendered = useCallback(\n ({ visibleStopIndex }: ListOnItemsRenderedProps) => {\n if (\n onScrollEnd &&\n !firedRef.current &&\n visibleStopIndex >= itemCount - 3\n ) {\n firedRef.current = true;\n onScrollEnd();\n }\n },\n [onScrollEnd, itemCount],\n );\n\n return (\n <div ref={ref}>\n <OuterElementContext.Provider value={other}>\n <VariableSizeList\n itemData={itemData}\n height={itemsHeight + 2 * LISTBOX_PADDING}\n width=\"100%\"\n ref={gridRef}\n outerElementType={OuterElementType}\n innerElementType=\"ul\"\n itemSize={index => getChildSize(itemData[index])}\n overscanCount={5}\n itemCount={itemCount}\n onItemsRendered={handleItemsRendered}\n >\n {ListboxRow}\n </VariableSizeList>\n </OuterElementContext.Provider>\n </div>\n );\n});\n\nexport default ListboxComponent;\n","import { HTMLAttributes, memo } from 'react';\nimport { ListChildComponentProps } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { Option } from 'types/option';\n\nimport Icon from '../Icon';\n\nimport type { IconName } from './props';\n\nconst LISTBOX_PADDING = 8;\n\nconst ListboxRow = memo((props: ListChildComponentProps) => {\n const { data, index, style } = props;\n const dataSet = data[index] as\n | AutocompleteRenderGroupParams\n | [HTMLAttributes<HTMLLIElement> & { showValueInLabel?: boolean }, Option];\n\n const inlineStyle = {\n ...style,\n top: (style.top as number) + LISTBOX_PADDING,\n paddingTop: 8,\n };\n\n if (Object.prototype.hasOwnProperty.call(dataSet, 'group')) {\n const groupItem = dataSet as AutocompleteRenderGroupParams;\n return (\n <ListSubheader\n key={`list-box-item-group-${groupItem.group}`}\n component=\"div\"\n style={inlineStyle}\n >\n {groupItem.group}\n </ListSubheader>\n );\n }\n\n const [itemProps, option] = dataSet as [\n HTMLAttributes<HTMLLIElement> & {\n showValueInLabel?: boolean;\n key: string;\n },\n Option,\n ];\n const { showValueInLabel, key, ...otherItemProps } = itemProps;\n\n return (\n <Typography\n component=\"li\"\n key={`list-box-item-${key}`}\n {...otherItemProps}\n noWrap\n style={inlineStyle}\n >\n <Stack\n component=\"div\"\n direction=\"row\"\n flex={1}\n gap={1}\n justifyContent=\"start\"\n >\n {option.icon && <Icon icon={option.icon as IconName} />}\n {option.label}\n\n {showValueInLabel && (\n <Typography variant=\"inherit\" color=\"grey.400\">\n ({option.value})\n </Typography>\n )}\n </Stack>\n </Typography>\n );\n});\n\nListboxRow.displayName = 'ListboxRow';\n\nexport { LISTBOX_PADDING };\nexport default ListboxRow;\n","import { createContext } from 'react';\n\nconst ScrollEndContext = createContext<(() => void) | undefined>(undefined);\n\nexport default ScrollEndContext;\n","import { autocompleteClasses } from '@mui/material/Autocomplete';\nimport Popper from '@mui/material/Popper';\nimport { styled } from '@mui/material/styles';\n\nexport const StyledPopper = styled(Popper)({\n [`& .${autocompleteClasses.listbox}`]: {\n boxSizing: 'border-box',\n '& ul': {\n padding: 0,\n margin: 0,\n },\n },\n});\n"]}
@@ -1,8 +0,0 @@
1
- import { a } from './chunk-6N456D64.js';
2
- import { useFormContext, Controller } from 'react-hook-form';
3
- import { jsx } from 'react/jsx-runtime';
4
-
5
- var f=({name:t,helperText:s,rules:u,onSelectOption:r,InputLabelProps:m,onBlur:n,...p})=>{let{control:c}=useFormContext(),C=e=>o=>{r&&r(o,e.value),e.onChange(o);};return jsx(Controller,{name:t,control:c,rules:u,render:({field:e,fieldState:{error:o}})=>{let g=h=>{e.onBlur(),n&&n(h);};return jsx(a,{"data-intercom-target":t,...e,...p,onChange:C(e),onBlur:g,error:!!o,helperText:o?.message||s,InputLabelProps:m})}})},B=f;
6
-
7
- export { B as a };
8
- //# sourceMappingURL=chunk-DLASFJON.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Autocomplete/index.tsx"],"names":["Controller","useFormContext","jsx","Autocomplete","name","helperText","rules","onSelectOption","InputLabelProps","onBlurProp","other","control","handleChange","field","value","error","handleBlur","event","Autocomplete_default"],"mappings":"wCAAA,OACE,cAAAA,EAGA,kBAAAC,MACK,kBAoCG,cAAAC,MAAA,oBA9BV,IAAMC,EAAe,CAAC,CACpB,KAAAC,EACA,WAAAC,EACA,MAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,OAAQC,EACR,GAAGC,CACL,IAAyB,CACvB,GAAM,CAAE,QAAAC,CAAQ,EAAIV,EAAe,EAE7BW,EACHC,GACAC,GAAyB,CACpBP,GAAgBA,EAAeO,EAAiBD,EAAM,KAAK,EAC/DA,EAAM,SAASC,CAAK,CACtB,EAEF,OACEZ,EAACF,EAAA,CACC,KAAMI,EACN,QAASO,EACT,MAAOL,EACP,OAAQ,CAAC,CAAE,MAAAO,EAAO,WAAY,CAAE,MAAAE,CAAM,CAAE,IAAM,CAC5C,IAAMC,EAAcC,GAA4C,CAC9DJ,EAAM,OAAO,EACTJ,GAAYA,EAAWQ,CAAK,CAClC,EAEA,OACEf,EAACgB,EAAA,CACC,uBAAsBd,EACrB,GAAGS,EACH,GAAGH,EACJ,SAAUE,EAAaC,CAAK,EAC5B,OAAQG,EACR,MAAO,CAAC,CAACD,EACT,WAAYA,GAAO,SAAWV,EAC9B,gBAAiBG,EACnB,CAEJ,EACF,CAEJ,EAEOU,EAAQf","sourcesContent":["import {\n Controller,\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\n\nimport AutocompleteComponent from 'components/Autocomplete';\n\nimport { AutocompleteProps, OnChangeValue } from './props';\n\nconst Autocomplete = ({\n name,\n helperText,\n rules,\n onSelectOption,\n InputLabelProps,\n onBlur: onBlurProp,\n ...other\n}: AutocompleteProps) => {\n const { control } = useFormContext();\n\n const handleChange =\n (field: ControllerRenderProps<FieldValues, string>) =>\n (value: OnChangeValue) => {\n if (onSelectOption) onSelectOption(value as string, field.value);\n field.onChange(value);\n };\n\n return (\n <Controller\n name={name}\n control={control}\n rules={rules}\n render={({ field, fieldState: { error } }) => {\n const handleBlur = (event: React.FocusEvent<HTMLDivElement>) => {\n field.onBlur();\n if (onBlurProp) onBlurProp(event);\n };\n\n return (\n <AutocompleteComponent\n data-intercom-target={name}\n {...field}\n {...other}\n onChange={handleChange(field)}\n onBlur={handleBlur}\n error={!!error}\n helperText={error?.message || helperText}\n InputLabelProps={InputLabelProps}\n />\n );\n }}\n />\n );\n};\n\nexport default Autocomplete;\n"]}
@@ -1,9 +0,0 @@
1
- import { memo, forwardRef, useState, useRef, useEffect } from 'react';
2
- import { NumericFormat } from 'react-number-format';
3
- import J from '@mui/material/TextField';
4
- import { jsx } from 'react/jsx-runtime';
5
-
6
- var s=memo(forwardRef(({decimalScale:m=0,fixedDecimalScale:c=!0,prefix:d,suffix:I,allowNegative:N,minValue:u,maxValue:n=1/0,maxLength:b,value:T,inputProps:g,InputProps:y,InputLabelProps:S,size:h,disabled:x,name:t,helperText:P,error:R,fullWidth:v,label:w,required:D,onChange:r,tabIndex:F,placeholder:L,margin:k,className:E,delay:l},V)=>{let[q,z]=useState(Date.now()),e=useRef(null),i=()=>z(Date.now()),C=(H,o)=>{if(!r)return;e.current&&clearTimeout(e.current);let p=()=>{let{floatValue:a}=H,f=a||0;if(u!==void 0&&u>f){r({target:{name:t,value:u},event:o}),i();return}if(a!==void 0&&n<f){r({target:{name:t,value:n},event:o}),i();return}r({target:{name:t,value:a},event:o});};l===0?p():e.current=setTimeout(p,l||1e3);};return useEffect(()=>()=>{e.current&&clearTimeout(e.current);},[]),jsx(NumericFormat,{getInputRef:V,value:T,prefix:d,suffix:I,decimalSeparator:",",thousandSeparator:".",decimalScale:m,fixedDecimalScale:c,autoComplete:"off",allowNegative:N,maxLength:b,onValueChange:C,customInput:J,InputProps:{...y},inputProps:{...g,name:t,tabIndex:F},disabled:x,size:h,helperText:P,error:R,fullWidth:v,label:w,required:D,placeholder:L,margin:k,className:E,InputLabelProps:S},q)}));s.displayName="NumberInput";var _=s;
7
-
8
- export { _ as a };
9
- //# sourceMappingURL=chunk-RS64MSST.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/NumberInput/index.tsx"],"names":["forwardRef","memo","useEffect","useRef","useState","NumericFormat","TextField","jsx","NumberInput","decimalScale","fixedDecimalScale","prefix","suffix","allowNegative","minValue","maxValue","maxLength","value","inputProps","InputProps","InputLabelProps","size","disabled","name","helperText","error","fullWidth","label","required","onChange","tabIndex","placeholder","margin","className","delay","ref","inputkey","setInputKey","delayTimer","reRenderInput","handleChange","values","event","executeChange","floatValue","comparisonValue","NumberInput_default"],"mappings":"AAAA,OAAS,cAAAA,EAAY,QAAAC,EAAM,aAAAC,EAAW,UAAAC,EAAQ,YAAAC,MAAgB,QAC9D,OAEE,iBAAAC,MAEK,sBACP,OAAOC,MAAe,0BA0Fd,cAAAC,MAAA,oBAtFR,IAAMC,EAAcP,EAClBD,EACE,CACE,CACE,aAAAS,EAAe,EACf,kBAAAC,EAAoB,GACpB,OAAAC,EACA,OAAAC,EACA,cAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,IACX,UAAAC,EACA,MAAAC,EACA,WAAAC,EACA,WAAAC,EACA,gBAAAC,EACA,KAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAAC,EACA,MAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,OAAAC,EACA,UAAAC,EACA,MAAAC,CACF,EACAC,IACG,CACH,GAAM,CAACC,EAAUC,CAAW,EAAIjC,EAAS,KAAK,IAAI,CAAC,EAC7CkC,EAAanC,EAA6C,IAAI,EAE9DoC,EAAgB,IAAMF,EAAY,KAAK,IAAI,CAAC,EAE5CG,EAAe,CAACC,EAA4BC,IAAsB,CACtE,GAAI,CAACb,EAAU,OAEXS,EAAW,SAAS,aAAaA,EAAW,OAAO,EAEvD,IAAMK,EAAgB,IAAM,CAC1B,GAAM,CAAE,WAAAC,CAAW,EAAIH,EACjBI,EAAkBD,GAAc,EAEtC,GAAI9B,IAAa,QAAaA,EAAW+B,EAAiB,CACxDhB,EAAS,CAAE,OAAQ,CAAE,KAAAN,EAAM,MAAOT,CAAS,EAAG,MAAA4B,CAAM,CAAC,EACrDH,EAAc,EAEd,OAGF,GAAIK,IAAe,QAAa7B,EAAW8B,EAAiB,CAC1DhB,EAAS,CAAE,OAAQ,CAAE,KAAAN,EAAM,MAAOR,CAAS,EAAG,MAAA2B,CAAM,CAAC,EACrDH,EAAc,EAEd,OAGFV,EAAS,CACP,OAAQ,CACN,KAAAN,EACA,MAAOqB,CACT,EACA,MAAAF,CACF,CAAC,CACH,EAEIR,IAAU,EACZS,EAAc,EAEdL,EAAW,QAAU,WAAWK,EAAeT,GAAS,GAAI,CAEhE,EAEA,OAAAhC,EAAU,IACD,IAAM,CACPoC,EAAW,SACb,aAAaA,EAAW,OAAO,CAEnC,EACC,CAAC,CAAC,EAGH/B,EAACF,EAAA,CAEC,YAAa8B,EACb,MAAOlB,EACP,OAAQN,EACR,OAAQC,EACR,iBAAiB,IACjB,kBAAkB,IAClB,aAAcH,EACd,kBAAmBC,EACnB,aAAa,MACb,cAAeG,EACf,UAAWG,EACX,cAAewB,EACf,YAAalC,EACb,WAAY,CACV,GAAGa,CACL,EACA,WAAY,CAAE,GAAGD,EAAY,KAAAK,EAAM,SAAAO,CAAS,EAC5C,SAAUR,EACV,KAAMD,EACN,WAAYG,EACZ,MAAOC,EACP,UAAWC,EACX,MAAOC,EACP,SAAUC,EACV,YAAaG,EACb,OAAQC,EACR,UAAWC,EACX,gBAAiBb,GA5BZgB,CA6BP,CAEJ,CACF,CACF,EAEA5B,EAAY,YAAc,cAE1B,IAAOsC,EAAQtC","sourcesContent":["import { forwardRef, memo, useEffect, useRef, useState } from 'react';\nimport {\n NumberFormatValues,\n NumericFormat,\n SourceInfo,\n} from 'react-number-format';\nimport TextField from '@mui/material/TextField';\n\nimport { NumberInputProps } from 'types/numberInputProps';\n\nconst NumberInput = memo(\n forwardRef<HTMLDivElement, NumberInputProps>(\n (\n {\n decimalScale = 0,\n fixedDecimalScale = true,\n prefix,\n suffix,\n allowNegative,\n minValue,\n maxValue = Infinity,\n maxLength,\n value,\n inputProps,\n InputProps,\n InputLabelProps,\n size,\n disabled,\n name,\n helperText,\n error,\n fullWidth,\n label,\n required,\n onChange,\n tabIndex,\n placeholder,\n margin,\n className,\n delay,\n },\n ref,\n ) => {\n const [inputkey, setInputKey] = useState(Date.now());\n const delayTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const reRenderInput = () => setInputKey(Date.now());\n\n const handleChange = (values: NumberFormatValues, event: SourceInfo) => {\n if (!onChange) return;\n\n if (delayTimer.current) clearTimeout(delayTimer.current);\n\n const executeChange = () => {\n const { floatValue } = values;\n const comparisonValue = floatValue || 0;\n\n if (minValue !== undefined && minValue > comparisonValue) {\n onChange({ target: { name, value: minValue }, event });\n reRenderInput();\n\n return;\n }\n\n if (floatValue !== undefined && maxValue < comparisonValue) {\n onChange({ target: { name, value: maxValue }, event });\n reRenderInput();\n\n return;\n }\n\n onChange({\n target: {\n name,\n value: floatValue,\n },\n event,\n });\n };\n\n if (delay === 0) {\n executeChange();\n } else {\n delayTimer.current = setTimeout(executeChange, delay || 1000);\n }\n };\n\n useEffect(() => {\n return () => {\n if (delayTimer.current) {\n clearTimeout(delayTimer.current);\n }\n };\n }, []);\n\n return (\n <NumericFormat\n key={inputkey}\n getInputRef={ref}\n value={value}\n prefix={prefix}\n suffix={suffix}\n decimalSeparator=\",\"\n thousandSeparator=\".\"\n decimalScale={decimalScale}\n fixedDecimalScale={fixedDecimalScale}\n autoComplete=\"off\"\n allowNegative={allowNegative}\n maxLength={maxLength}\n onValueChange={handleChange}\n customInput={TextField}\n InputProps={{\n ...InputProps,\n }}\n inputProps={{ ...inputProps, name, tabIndex }}\n disabled={disabled}\n size={size}\n helperText={helperText}\n error={error}\n fullWidth={fullWidth}\n label={label}\n required={required}\n placeholder={placeholder}\n margin={margin}\n className={className}\n InputLabelProps={InputLabelProps}\n />\n );\n },\n ),\n);\n\nNumberInput.displayName = 'NumberInput';\n\nexport default NumberInput;\n"]}