@zydon/common 2.8.66 → 2.8.67

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.
@@ -12,7 +12,7 @@ import k from '@mui/material/Stack';
12
12
  import Ee from '@mui/material/Popper';
13
13
  import { styled } from '@mui/material/styles';
14
14
 
15
- var X=memo(({params:e,name:r,placeholder:o,error:t,helperText:n,label:i,required:a,loading:p,tabIndex:m})=>jsx(Ce,{...e,name:r,placeholder:o,fullWidth:!0,error:!!t,helperText:n,label:i,required:a,InputProps:{...e.InputProps,endAdornment:jsxs(Fragment,{children:[p?jsx(Se,{color:"primary",size:20}):null,e.InputProps.endAdornment]})},inputProps:{...e.inputProps,name:r,tabIndex:m}}));X.displayName="AutocompleteDetailedInput";var q=X;var J=styled(Ee)({[`& .${autocompleteClasses.listbox}`]:{boxSizing:"border-box","& ul":{padding:0,margin:0}}}),K=styled(k)(({theme:e})=>({flex:1,width:"100%",gap:6,[e.breakpoints.down("md")]:{flexDirection:"column"},[e.breakpoints.up("md")]:{flexDirection:"row"}})),M=styled(k)(({theme:e})=>({flex:1,maxWidth:"100%",gap:6,[e.breakpoints.up("md")]:{flex:"1 1 calc(50% - 8px)",width:"calc(50% - 8px)",minWidth:"calc(50% - 8px)",maxWidth:"calc(50% - 8px)"}})),Q=styled(k)(({theme:e})=>({position:"relative",alignItems:"center",justifyContent:"center",width:68,height:68,borderRadius:8,overflow:"hidden",img:{position:"absolute",width:"100%",height:"100%",objectFit:"cover"},[e.breakpoints.down("sm")]:{display:"none"}})),Y=styled("hr")(({theme:e})=>({borderStyle:"dashed",position:"absolute",bottom:0,width:"100%",margin:0,borderColor:e.palette.divider,borderWidth:"0 0 thin"}));var ke={width:68,height:68,borderRadius:1},re=memo(({option:e})=>{let r=useMemo(()=>Object.keys(e).filter(t=>t.startsWith("field")).map((t,n)=>{let i=e[t];if(i&&typeof i=="object"){let a="label"in i?i.label:null,p="value"in i?i.value:null;return jsxs(te,{component:"span",variant:"body2",color:"textPrimary",noWrap:!0,children:[a,": ",p]},`${t}:${n}`)}}),[e]),o=useMemo(()=>e.image?jsx("img",{alt:"Imagem",src:e.image}):jsx(a,{alt:e.label||e.value.toString(),name:e.label||e.value.toString(),sx:ke}),[e]);return jsxs(Fragment,{children:[jsxs(k,{direction:"row",gap:2,margin:2,children:[jsx(Q,{children:o}),jsxs(k,{flex:1,overflow:"hidden",children:[jsxs(te,{variant:"subtitle2",color:"textPrimary",noWrap:!0,flex:1,children:[e.value," - ",e.label]}),r.length>0&&jsxs(K,{width:1,children:[jsxs(M,{children:[r[0]?r[0]:void 0,r[1]?r[1]:void 0]}),(r[2]||r[3])&&jsxs(M,{children:[r[2]?r[2]:void 0,r[3]?r[3]:void 0]})]})]})]}),jsx(Y,{className:"border"})]})});re.displayName="ListItem";var x=re;var H=8,oe=memo(e=>{let{data:r,index:o,style:t}=e,n=r[o],i={...t,top:t.top+H,paddingTop:8,display:"block"};if(Object.prototype.hasOwnProperty.call(n,"group")){let m=n;return jsx(He,{component:"div",style:i,children:m.group},`list-box-item-group-${m.group}`)}let a=n,p=a.props?.children?.props;return jsx(te,{component:"li",...a.props,noWrap:!0,style:i,children:jsx(x,{...p})})});oe.displayName="ListboxRow";var ne=oe;var se=$.createContext({}),pe=forwardRef((e,r)=>{let o=$.useContext(se);return jsx("div",{ref:r,...e,...o})});pe.displayName="OuterElementType";var We=e=>{let r=$.useRef(null);return useEffect(()=>{r.current!=null&&r.current.resetAfterIndex(0,!0);},[e]),r},Ve=forwardRef(function(r,o){let{children:t,"data-item-height":n,...i}=r,a=useMemo(()=>{let l=[];return t.forEach(c=>{l.push(c),Object.prototype.hasOwnProperty.call(c,"children")&&Array.isArray(c.children)&&l.push(...c.children);}),l},[t]),p=a.length,m=n>112?n:112,f=useCallback(l=>Object.prototype.hasOwnProperty.call(l,"group")?48:m,[m]),g=useMemo(()=>p>8?8*m:a.map(f).reduce((l,c)=>l+c,0),[p,m,a,f]),v=We(p),S=useCallback(l=>f(a[l]),[a,f]);return jsx("div",{ref:o,children:jsx(se.Provider,{value:i,children:jsx(VariableSizeList,{itemData:a,height:g+2*H,width:"100%",ref:v,outerElementType:pe,innerElementType:"ul",itemSize:S,overscanCount:5,itemCount:p,children:ne})})})}),me=Ve;var Xe=e=>e&&typeof e=="object"?e.value.toString():e.toString(),qe=e=>e,Je=(e,r)=>{let o=r.inputValue.toLocaleUpperCase();return e.filter(t=>`${t.field1?.value} ${t.field1?.label} ${t.field2?.label} ${t.field2?.value} ${t.field3?.label} ${t.field3?.value} ${t.field4?.label} ${t.field4?.value} ${t.field5?.label} ${t.field5?.value} ${t.label}${t.value}`.toLocaleUpperCase().includes(o))},Ke=({key:e,...r},o)=>jsx("li",{...r,style:{display:"block"},children:jsx(x,{option:o})},e),ce=memo(forwardRef(({name:e,label:r,value:o,options:t=[],loading:n,noOptionsText:i="Nenhum resultado encontrado.",loadingText:a="Carregando op\xE7\xF5es...",error:p,helperText:m,placeholder:f,onChange:g,groupBy:v,disabled:S,multiple:l,required:c,renderOption:de,tabIndex:N,onSearch:C,onInputChange:O,onBlur:T,...fe},be)=>{let[z,w]=useState(""),[W,E]=useState(null),D=useDeferredValue(z),y=useRef(!1),V=b("down","md"),ge=useMemo(()=>l?(Array.isArray(o)?o:[]).reduce((u,Le)=>{let j=t.find(Ie=>Ie.value.toString()===Le.toString());return j?[...u,j]:[...u]},[]):t.find(s=>s.value.toString()===o?.toString())||null,[t,o,l]),B=useMemo(()=>V&&t[0]?Object.keys(t[0]).length*24:void 0,[V,t]),he=useCallback((b,s,u)=>{if(O&&O(b,s,u),u==="input"){y.current=!0,E(u),C&&C(s),w(s);return}if(u==="reset"){if(y.current)return;E(u),w(s);return}u==="clear"&&(y.current=!1,E(u),w(""));},[O,C]),ye=useCallback((b,s)=>{if(y.current=!1,!s){g(l?[]:null);return}if(Array.isArray(s)){g(s.map(Xe));return}g(typeof s=="string"?s.toString():s.value.toString());},[g,l]),Re=useMemo(()=>({"data-item-height":B}),[B]),xe=useCallback(b=>jsx(q,{params:b,name:e,placeholder:f,error:p,helperText:m,label:r,required:c,loading:n,tabIndex:N}),[e,f,p,m,r,c,n,N]),Pe=useCallback(b=>{T&&T(b);},[T]),Ae=useMemo(()=>!D||W==="reset"?t:Je(t,{inputValue:D}),[t,D,W]);return jsx(Ue,{ref:be,value:ge,inputValue:z,onInputChange:he,options:Ae,loading:n,noOptionsText:i,loadingText:a,disabled:n||S,disableListWrap:!0,PopperComponent:J,ListboxProps:Re,ListboxComponent:de?void 0:me,onChange:ye,renderOption:Ke,renderGroup:qe,groupBy:v,multiple:l,renderInput:xe,onBlur:Pe,...fe})}));ce.displayName="Autocomplete";var $t=ce;
15
+ var X=memo(({params:e,name:r,placeholder:o,error:t,helperText:n,label:i,required:a,loading:p,tabIndex:m})=>jsx(Ce,{...e,name:r,placeholder:o,fullWidth:!0,error:!!t,helperText:n,label:i,required:a,InputProps:{...e.InputProps,endAdornment:jsxs(Fragment,{children:[p?jsx(Se,{color:"primary",size:20}):null,e.InputProps.endAdornment]})},inputProps:{...e.inputProps,name:r,tabIndex:m}}));X.displayName="AutocompleteDetailedInput";var q=X;var J=styled(Ee)({[`& .${autocompleteClasses.listbox}`]:{boxSizing:"border-box","& ul":{padding:0,margin:0}}}),K=styled(k)(({theme:e})=>({flex:1,width:"100%",gap:6,[e.breakpoints.down("md")]:{flexDirection:"column"},[e.breakpoints.up("md")]:{flexDirection:"row"}})),M=styled(k)(({theme:e})=>({flex:1,maxWidth:"100%",gap:6,[e.breakpoints.up("md")]:{flex:"1 1 calc(50% - 8px)",width:"calc(50% - 8px)",minWidth:"calc(50% - 8px)",maxWidth:"calc(50% - 8px)"}})),Q=styled(k)(({theme:e})=>({position:"relative",alignItems:"center",justifyContent:"center",width:68,height:68,borderRadius:8,overflow:"hidden",img:{position:"absolute",width:"100%",height:"100%",objectFit:"cover"},[e.breakpoints.down("sm")]:{display:"none"}})),Y=styled("hr")(({theme:e})=>({borderStyle:"dashed",position:"absolute",bottom:0,width:"100%",margin:0,borderColor:e.palette.divider,borderWidth:"0 0 thin"}));var ke={width:68,height:68,borderRadius:1},re=memo(({option:e})=>{let r=useMemo(()=>Object.keys(e).filter(t=>t.startsWith("field")).map((t,n)=>{let i=e[t];if(i&&typeof i=="object"){let a="label"in i?i.label:null,p="value"in i?i.value:null;return jsxs(te,{component:"span",variant:"body2",color:"textPrimary",noWrap:!0,children:[a,": ",p]},`${t}:${n}`)}}),[e]),o=useMemo(()=>e.image?jsx("img",{alt:"Imagem",src:e.image}):jsx(a,{alt:e.label||e.value.toString(),name:e.label||e.value.toString(),sx:ke}),[e]);return jsxs(Fragment,{children:[jsxs(k,{direction:"row",gap:2,margin:2,children:[jsx(Q,{children:o}),jsxs(k,{flex:1,overflow:"hidden",children:[jsxs(te,{variant:"subtitle2",color:"textPrimary",noWrap:!0,flex:1,children:[e.value," - ",e.label]}),r.length>0&&jsxs(K,{width:1,children:[jsxs(M,{children:[r[0]?r[0]:void 0,r[1]?r[1]:void 0]}),(r[2]||r[3])&&jsxs(M,{children:[r[2]?r[2]:void 0,r[3]?r[3]:void 0]})]})]})]}),jsx(Y,{className:"border"})]})});re.displayName="ListItem";var x=re;var H=8,oe=memo(e=>{let{data:r,index:o,style:t}=e,n=r[o],i={...t,top:t.top+H,paddingTop:8,display:"block"};if(Object.prototype.hasOwnProperty.call(n,"group")){let m=n;return jsx(He,{component:"div",style:i,children:m.group},`list-box-item-group-${m.group}`)}let a=n,p=a.props?.children?.props;return jsx(te,{component:"li",...a.props,noWrap:!0,style:i,children:jsx(x,{...p})})});oe.displayName="ListboxRow";var ne=oe;var se=$.createContext({}),pe=forwardRef((e,r)=>{let o=$.useContext(se);return jsx("div",{ref:r,...e,...o})});pe.displayName="OuterElementType";var We=e=>{let r=$.useRef(null);return useEffect(()=>{r.current!=null&&r.current.resetAfterIndex(0,!0);},[e]),r},Ve=forwardRef(function(r,o){let{children:t,"data-item-height":n,...i}=r,a=useMemo(()=>{let l=[];return t.forEach(c=>{l.push(c),Object.prototype.hasOwnProperty.call(c,"children")&&Array.isArray(c.children)&&l.push(...c.children);}),l},[t]),p=a.length,m=n>112?n:112,f=useCallback(l=>Object.prototype.hasOwnProperty.call(l,"group")?48:m,[m]),g=useMemo(()=>p>8?8*m:a.map(f).reduce((l,c)=>l+c,0),[p,m,a,f]),v=We(p),S=useCallback(l=>f(a[l]),[a,f]);return jsx("div",{ref:o,children:jsx(se.Provider,{value:i,children:jsx(VariableSizeList,{itemData:a,height:g+2*H,width:"100%",ref:v,outerElementType:pe,innerElementType:"ul",itemSize:S,overscanCount:5,itemCount:p,children:ne})})})}),me=Ve;var Xe=e=>e&&typeof e=="object"?e.value.toString():e.toString(),qe=e=>e,Je=(e,r)=>{let o=r.inputValue.toLocaleUpperCase();return e.filter(t=>`${t.field1?.value} ${t.field1?.label} ${t.field2?.label} ${t.field2?.value} ${t.field3?.label} ${t.field3?.value} ${t.field4?.label} ${t.field4?.value} ${t.field5?.label} ${t.field5?.value} ${t.label}${t.value}`.toLocaleUpperCase().includes(o))},Ke=({key:e,...r},o)=>jsx("li",{...r,style:{display:"block"},children:jsx(x,{option:o})},e),ce=memo(forwardRef(({name:e,label:r,value:o,options:t=[],loading:n,noOptionsText:i="Nenhum resultado encontrado.",loadingText:a="Carregando op\xE7\xF5es...",error:p,helperText:m,placeholder:f,onChange:g,groupBy:v,disabled:S,multiple:l,required:c,renderOption:de,tabIndex:N,onSearch:C,onInputChange:O,onBlur:T,...fe},be)=>{let[z,w]=useState(""),[W,E]=useState(null),D=useDeferredValue(z),h=useRef(!1),V=b("down","md"),ge=useMemo(()=>l?(Array.isArray(o)?o:[]).reduce((u,Le)=>{let j=t.find(Ie=>Ie.value.toString()===Le.toString());return j?[...u,j]:[...u]},[]):t.find(s=>s.value.toString()===o?.toString())||null,[t,o,l]),B=useMemo(()=>V&&t[0]?Object.keys(t[0]).length*24:void 0,[V,t]),he=useCallback((b,s,u)=>{if(O&&O(b,s,u),u==="input"){h.current=!0,E(u),C&&C(s),w(s);return}if(u==="reset"){if(h.current)return;E(u),w(s);return}u==="clear"&&(h.current=!1,E(u),w(""));},[O,C]),ye=useCallback((b,s)=>{if(h.current=!1,!s){g(l?[]:null);return}if(Array.isArray(s)){g(s.map(Xe));return}g(typeof s=="string"?s.toString():s.value.toString());},[g,l]),Re=useMemo(()=>({"data-item-height":B}),[B]),xe=useCallback(b=>jsx(q,{params:b,name:e,placeholder:f,error:p,helperText:m,label:r,required:c,loading:n,tabIndex:N}),[e,f,p,m,r,c,n,N]),Pe=useCallback(b=>{h.current=!1,T&&T(b);},[T]),Ae=useMemo(()=>!D||W==="reset"?t:Je(t,{inputValue:D}),[t,D,W]);return jsx(Ue,{ref:be,value:ge,inputValue:z,onInputChange:he,options:Ae,loading:n,noOptionsText:i,loadingText:a,disabled:n||S,disableListWrap:!0,PopperComponent:J,ListboxProps:Re,ListboxComponent:de?void 0:me,onChange:ye,renderOption:Ke,renderGroup:qe,groupBy:v,multiple:l,renderInput:xe,onBlur:Pe,...fe})}));ce.displayName="Autocomplete";var $t=ce;
16
16
 
17
17
  export { $t as a };
18
- //# sourceMappingURL=chunk-QDYHWRND.js.map
18
+ //# sourceMappingURL=chunk-D7UUJ7FJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AutocompleteDetailed/index.tsx","../src/components/AutocompleteDetailed/AutocompleteDetailedInput.tsx","../src/components/AutocompleteDetailed/Listbox.tsx","../src/components/AutocompleteDetailed/ListboxRow.tsx","../src/components/AutocompleteDetailed/ListItem.tsx","../src/components/AutocompleteDetailed/styles.ts"],"names":["forwardRef","memo","useCallback","useDeferredValue","useMemo","useRef","useState","MuiAutocomplete","CircularProgress","TextField","Fragment","jsx","jsxs","AutocompleteDetailedInput","params","name","placeholder","error","helperText","label","required","loading","tabIndex","AutocompleteDetailedInput_default","React","useEffect","VariableSizeList","ListSubheader","Typography","Stack","autocompleteClasses","Popper","styled","StyledPopper","OptionBox","theme","OptionContent","ImageContainer","DividerStyled","AVATAR_SX","ListItem","option","options","key","index","data","value","image","CustomAvatar_default","ListItem_default","LISTBOX_PADDING","ListboxRow","props","style","dataSet","inlineStyle","groupItem","element","listItemProps","ListboxRow_default","OuterElementContext","OuterElementType","ref","outerProps","useResetCache","ListboxComponent","children","dataItemHeight","other","itemData","item","itemCount","itemSize","getChildSize","child","getHeight","a","b","gridRef","getItemSize","Listbox_default","getOptionValue","optionValue","renderGroup","filterOptions","opts","state","searchValue","opt","renderOptionListItem","AutocompleteDetailed","noOptionsText","loadingText","onChange","groupBy","disabled","multiple","renderOption","onSearch","onInputChange","onBlur","inputValue","setInputValue","inputReason","setInputReason","deferredInputValue","isTypingRef","mdDown","useResponsive_default","formattedValue","acc","curr","optionHeight","handleInputChange","event","eventValue","reason","handleChange","_","listboxProps","memoizedRenderInput","handleBlur","filteredOptions","AutocompleteDetailed_default"],"mappings":"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","sourcesContent":["import {\n forwardRef,\n HTMLAttributes,\n memo,\n ReactNode,\n useCallback,\n useDeferredValue,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport MuiAutocomplete, {\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n} from '@mui/material/Autocomplete';\n\nimport useResponsive from 'hooks/useResponsive';\nimport { Option } from 'types/option';\n\nimport AutocompleteDetailedInput from './AutocompleteDetailedInput';\nimport ListboxComponent from './Listbox';\nimport ListItem from './ListItem';\nimport { AutocompleteDetailedProps } from './props';\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 filterOptions = (opts: Option[], state: { inputValue: string }) => {\n const searchValue = state.inputValue.toLocaleUpperCase();\n return opts.filter(opt => {\n const search = `${opt.field1?.value} ${opt.field1?.label} ${opt.field2?.label} ${opt.field2?.value} ${opt.field3?.label} ${opt.field3?.value} ${opt.field4?.label} ${opt.field4?.value} ${opt.field5?.label} ${opt.field5?.value} ${opt.label}${opt.value}`;\n return search.toLocaleUpperCase().includes(searchValue);\n });\n};\n\nconst renderOptionListItem = (\n { key, ...props }: React.HTMLAttributes<HTMLLIElement> & { key: string },\n option: Option,\n) => {\n return (\n <li key={key} {...props} style={{ display: 'block' }}>\n <ListItem option={option} />\n </li>\n );\n};\n\nconst AutocompleteDetailed = memo(\n forwardRef<unknown, AutocompleteDetailedProps>(\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 disabled,\n multiple,\n required,\n renderOption,\n tabIndex,\n onSearch,\n onInputChange,\n onBlur,\n ...other\n },\n ref,\n ) => {\n const [inputValue, setInputValue] = useState<string>('');\n const [inputReason, setInputReason] = useState<\n 'input' | 'reset' | 'clear' | null\n >(null);\n const deferredInputValue = useDeferredValue(inputValue);\n const isTypingRef = useRef(false);\n\n const mdDown = useResponsive('down', 'md');\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 optionHeight = useMemo(\n () =>\n mdDown && options[0]\n ? Object.keys(options[0]).length * 24\n : undefined,\n [mdDown, options],\n );\n\n const handleInputChange = useCallback(\n (\n event: React.SyntheticEvent,\n eventValue: string,\n reason: 'input' | 'reset' | 'clear',\n ) => {\n if (onInputChange) onInputChange(event, eventValue, reason);\n\n if (reason === 'input') {\n isTypingRef.current = true;\n setInputReason(reason);\n if (onSearch) onSearch(eventValue);\n setInputValue(eventValue);\n\n return;\n }\n\n if (reason === 'reset') {\n if (isTypingRef.current) {\n return;\n }\n setInputReason(reason);\n setInputValue(eventValue);\n return;\n }\n\n if (reason === 'clear') {\n isTypingRef.current = false;\n setInputReason(reason);\n setInputValue('');\n }\n },\n [onInputChange, onSearch],\n );\n\n const handleChange = useCallback(\n (\n _: React.SyntheticEvent,\n option: Option | (string | Option)[] | string | null,\n ) => {\n isTypingRef.current = false;\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 listboxProps = useMemo(\n () =>\n ({\n 'data-item-height': optionHeight,\n }) as HTMLAttributes<HTMLUListElement>,\n [optionHeight],\n );\n\n const memoizedRenderInput = useCallback(\n (params: AutocompleteRenderInputParams) => (\n <AutocompleteDetailedInput\n params={params}\n name={name}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n label={label}\n required={required}\n loading={loading}\n tabIndex={tabIndex}\n />\n ),\n [\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n loading,\n tabIndex,\n ],\n );\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n isTypingRef.current = false;\n if (onBlur) onBlur(event);\n },\n [onBlur],\n );\n\n const filteredOptions = useMemo(() => {\n if (!deferredInputValue || inputReason === 'reset') return options;\n return filterOptions(options, { inputValue: deferredInputValue });\n }, [options, deferredInputValue, inputReason]);\n\n return (\n <MuiAutocomplete\n ref={ref}\n value={formattedValue}\n inputValue={inputValue}\n onInputChange={handleInputChange}\n options={filteredOptions}\n loading={loading}\n noOptionsText={noOptionsText}\n loadingText={loadingText}\n disabled={loading || disabled}\n disableListWrap\n PopperComponent={StyledPopper}\n ListboxProps={listboxProps}\n ListboxComponent={renderOption ? undefined : ListboxComponent}\n onChange={handleChange}\n renderOption={renderOptionListItem}\n renderGroup={renderGroup}\n groupBy={groupBy}\n multiple={multiple}\n renderInput={memoizedRenderInput}\n onBlur={handleBlur}\n {...other}\n />\n );\n },\n ),\n);\n\nAutocompleteDetailed.displayName = 'Autocomplete';\n\nexport default AutocompleteDetailed;\n","import { memo } from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\n\nimport { AutocompleteDetailedInputProps } from './props';\n\nconst AutocompleteDetailedInput = memo(\n ({\n params,\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n loading,\n tabIndex,\n }: AutocompleteDetailedInputProps) => (\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 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 />\n ),\n);\n\nAutocompleteDetailedInput.displayName = 'AutocompleteDetailedInput';\n\nexport default AutocompleteDetailedInput;\n","import React, {\n forwardRef,\n HTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n} from 'react';\nimport { VariableSizeList } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\n\nimport ListboxRow, { LISTBOX_PADDING } from './ListboxRow';\n\nconst OuterElementContext = React.createContext({});\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => {\n const outerProps = React.useContext(OuterElementContext);\n return <div ref={ref} {...props} {...outerProps} />;\n});\n\nOuterElementType.displayName = 'OuterElementType';\n\nconst useResetCache = (data: number) => {\n const ref = React.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 React.HTMLAttributes<HTMLElement>\n>(function ListboxComponent(props, ref) {\n const {\n children,\n // eslint-disable-next-line react/prop-types\n 'data-item-height': dataItemHeight,\n ...other\n } = props as { 'data-item-height': number } & HTMLAttributes<HTMLElement>;\n\n const itemData: (React.ReactElement | AutocompleteRenderGroupParams)[] =\n useMemo(() => {\n const data: (React.ReactElement | AutocompleteRenderGroupParams)[] = [];\n (\n children as (React.ReactElement | AutocompleteRenderGroupParams)[]\n ).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 React.ReactElement[]),\n );\n }\n });\n return data;\n }, [children]);\n const itemCount = itemData.length;\n const itemSize = dataItemHeight > 112 ? dataItemHeight : 112;\n\n const getChildSize = useCallback(\n (child: React.ReactElement | AutocompleteRenderGroupParams) => {\n if (Object.prototype.hasOwnProperty.call(child, 'group')) {\n return 48;\n }\n\n return itemSize;\n },\n [itemSize],\n );\n\n const getHeight = 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\n const getItemSize = useCallback(\n (index: number) => {\n return getChildSize(itemData[index]);\n },\n [itemData, getChildSize],\n );\n\n return (\n <div ref={ref}>\n <OuterElementContext.Provider value={other}>\n <VariableSizeList\n itemData={itemData}\n height={getHeight + 2 * LISTBOX_PADDING}\n width=\"100%\"\n ref={gridRef}\n outerElementType={OuterElementType}\n innerElementType=\"ul\"\n itemSize={getItemSize}\n overscanCount={5}\n itemCount={itemCount}\n >\n {ListboxRow}\n </VariableSizeList>\n </OuterElementContext.Provider>\n </div>\n );\n});\n\nexport default ListboxComponent;\n","import { memo } from 'react';\nimport { ListChildComponentProps } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Typography from '@mui/material/Typography';\n\nimport ListItem from './ListItem';\nimport { ListItemProps } 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 | React.ReactElement\n | AutocompleteRenderGroupParams;\n\n const inlineStyle = {\n ...style,\n top: (style.top as number) + LISTBOX_PADDING,\n paddingTop: 8,\n display: 'block',\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 element = dataSet as React.ReactElement;\n const listItemProps = element.props?.children?.props as ListItemProps;\n\n return (\n <Typography component=\"li\" {...element.props} noWrap style={inlineStyle}>\n <ListItem {...listItemProps} />\n </Typography>\n );\n});\n\nListboxRow.displayName = 'ListboxRow';\n\nexport { LISTBOX_PADDING };\nexport default ListboxRow;\n","import { memo, useMemo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport CustomAvatar from 'components/CustomAvatar';\n\nimport { ListItemProps } from './props';\nimport {\n DividerStyled,\n ImageContainer,\n OptionBox,\n OptionContent,\n} from './styles';\n\nconst AVATAR_SX = { width: 68, height: 68, borderRadius: 1 };\n\nconst ListItem = memo(({ option }: ListItemProps) => {\n const options = useMemo(\n () =>\n Object.keys(option)\n .filter(key => key.startsWith('field'))\n .map((key, index) => {\n const data = option[key];\n\n if (data && typeof data === 'object') {\n const label = ('label' in data ? data.label : null) as string;\n const value = ('value' in data ? data.value : null) as string;\n\n return (\n <Typography\n key={`${key}:${index}`}\n component=\"span\"\n variant=\"body2\"\n color=\"textPrimary\"\n noWrap\n >\n {label}: {value}\n </Typography>\n );\n }\n }),\n [option],\n );\n\n const image = useMemo(\n () =>\n option.image ? (\n <img alt=\"Imagem\" src={option.image} />\n ) : (\n <CustomAvatar\n alt={option.label || option.value.toString()}\n name={option.label || option.value.toString()}\n sx={AVATAR_SX}\n />\n ),\n [option],\n );\n\n return (\n <>\n <Stack direction=\"row\" gap={2} margin={2}>\n <ImageContainer>{image}</ImageContainer>\n\n <Stack flex={1} overflow=\"hidden\">\n <Typography variant=\"subtitle2\" color=\"textPrimary\" noWrap flex={1}>\n {option.value} - {option.label}\n </Typography>\n\n {options.length > 0 && (\n <OptionBox width={1}>\n <OptionContent>\n {options[0] ? options[0] : undefined}\n {options[1] ? options[1] : undefined}\n </OptionContent>\n\n {(options[2] || options[3]) && (\n <OptionContent>\n {options[2] ? options[2] : undefined}\n {options[3] ? options[3] : undefined}\n </OptionContent>\n )}\n </OptionBox>\n )}\n </Stack>\n </Stack>\n\n <DividerStyled className=\"border\" />\n </>\n );\n});\n\nListItem.displayName = 'ListItem';\n\nexport default ListItem;\n","import { autocompleteClasses } from '@mui/material/Autocomplete';\nimport Popper from '@mui/material/Popper';\nimport Stack from '@mui/material/Stack';\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\nexport const OptionBox = styled(Stack)(({ theme }) => ({\n flex: 1,\n width: '100%',\n gap: 6,\n\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n\n [theme.breakpoints.up('md')]: {\n flexDirection: 'row',\n },\n}));\n\nexport const OptionContent = styled(Stack)(({ theme }) => ({\n flex: 1,\n maxWidth: '100%',\n gap: 6,\n\n [theme.breakpoints.up('md')]: {\n flex: '1 1 calc(50% - 8px)',\n width: 'calc(50% - 8px)',\n minWidth: 'calc(50% - 8px)',\n maxWidth: 'calc(50% - 8px)',\n },\n}));\n\nexport const ImageContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n width: 68,\n height: 68,\n borderRadius: 8,\n overflow: 'hidden',\n\n img: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}));\n\nexport const DividerStyled = styled('hr')(({ theme }) => ({\n borderStyle: 'dashed',\n position: 'absolute',\n bottom: 0,\n width: '100%',\n margin: 0,\n borderColor: theme.palette.divider,\n borderWidth: '0 0 thin',\n}));\n"]}
@@ -1,4 +1,4 @@
1
- export { a as default } from '../../chunk-QDYHWRND.js';
1
+ export { a as default } from '../../chunk-D7UUJ7FJ.js';
2
2
  import '../../chunk-VR3K2Y2C.js';
3
3
  import '../../chunk-RPO7AI5K.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { a } from '../../../chunk-QDYHWRND.js';
1
+ import { a } from '../../../chunk-D7UUJ7FJ.js';
2
2
  import '../../../chunk-VR3K2Y2C.js';
3
3
  import '../../../chunk-RPO7AI5K.js';
4
4
  import { useFormContext, Controller } from 'react-hook-form';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.8.66",
3
+ "version": "2.8.67",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/AutocompleteDetailed/index.tsx","../src/components/AutocompleteDetailed/AutocompleteDetailedInput.tsx","../src/components/AutocompleteDetailed/Listbox.tsx","../src/components/AutocompleteDetailed/ListboxRow.tsx","../src/components/AutocompleteDetailed/ListItem.tsx","../src/components/AutocompleteDetailed/styles.ts"],"names":["forwardRef","memo","useCallback","useDeferredValue","useMemo","useRef","useState","MuiAutocomplete","CircularProgress","TextField","Fragment","jsx","jsxs","AutocompleteDetailedInput","params","name","placeholder","error","helperText","label","required","loading","tabIndex","AutocompleteDetailedInput_default","React","useEffect","VariableSizeList","ListSubheader","Typography","Stack","autocompleteClasses","Popper","styled","StyledPopper","OptionBox","theme","OptionContent","ImageContainer","DividerStyled","AVATAR_SX","ListItem","option","options","key","index","data","value","image","CustomAvatar_default","ListItem_default","LISTBOX_PADDING","ListboxRow","props","style","dataSet","inlineStyle","groupItem","element","listItemProps","ListboxRow_default","OuterElementContext","OuterElementType","ref","outerProps","useResetCache","ListboxComponent","children","dataItemHeight","other","itemData","item","itemCount","itemSize","getChildSize","child","getHeight","a","b","gridRef","getItemSize","Listbox_default","getOptionValue","optionValue","renderGroup","filterOptions","opts","state","searchValue","opt","renderOptionListItem","AutocompleteDetailed","noOptionsText","loadingText","onChange","groupBy","disabled","multiple","renderOption","onSearch","onInputChange","onBlur","inputValue","setInputValue","inputReason","setInputReason","deferredInputValue","isTypingRef","mdDown","useResponsive_default","formattedValue","acc","curr","optionHeight","handleInputChange","event","eventValue","reason","handleChange","_","listboxProps","memoizedRenderInput","handleBlur","filteredOptions","AutocompleteDetailed_default"],"mappings":"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","sourcesContent":["import {\n forwardRef,\n HTMLAttributes,\n memo,\n ReactNode,\n useCallback,\n useDeferredValue,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport MuiAutocomplete, {\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n} from '@mui/material/Autocomplete';\n\nimport useResponsive from 'hooks/useResponsive';\nimport { Option } from 'types/option';\n\nimport AutocompleteDetailedInput from './AutocompleteDetailedInput';\nimport ListboxComponent from './Listbox';\nimport ListItem from './ListItem';\nimport { AutocompleteDetailedProps } from './props';\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 filterOptions = (opts: Option[], state: { inputValue: string }) => {\n const searchValue = state.inputValue.toLocaleUpperCase();\n return opts.filter(opt => {\n const search = `${opt.field1?.value} ${opt.field1?.label} ${opt.field2?.label} ${opt.field2?.value} ${opt.field3?.label} ${opt.field3?.value} ${opt.field4?.label} ${opt.field4?.value} ${opt.field5?.label} ${opt.field5?.value} ${opt.label}${opt.value}`;\n return search.toLocaleUpperCase().includes(searchValue);\n });\n};\n\nconst renderOptionListItem = (\n { key, ...props }: React.HTMLAttributes<HTMLLIElement> & { key: string },\n option: Option,\n) => {\n return (\n <li key={key} {...props} style={{ display: 'block' }}>\n <ListItem option={option} />\n </li>\n );\n};\n\nconst AutocompleteDetailed = memo(\n forwardRef<unknown, AutocompleteDetailedProps>(\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 disabled,\n multiple,\n required,\n renderOption,\n tabIndex,\n onSearch,\n onInputChange,\n onBlur,\n ...other\n },\n ref,\n ) => {\n const [inputValue, setInputValue] = useState<string>('');\n const [inputReason, setInputReason] = useState<\n 'input' | 'reset' | 'clear' | null\n >(null);\n const deferredInputValue = useDeferredValue(inputValue);\n const isTypingRef = useRef(false);\n\n const mdDown = useResponsive('down', 'md');\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 optionHeight = useMemo(\n () =>\n mdDown && options[0]\n ? Object.keys(options[0]).length * 24\n : undefined,\n [mdDown, options],\n );\n\n const handleInputChange = useCallback(\n (\n event: React.SyntheticEvent,\n eventValue: string,\n reason: 'input' | 'reset' | 'clear',\n ) => {\n if (onInputChange) onInputChange(event, eventValue, reason);\n\n if (reason === 'input') {\n isTypingRef.current = true;\n setInputReason(reason);\n if (onSearch) onSearch(eventValue);\n setInputValue(eventValue);\n\n return;\n }\n\n if (reason === 'reset') {\n if (isTypingRef.current) {\n return;\n }\n setInputReason(reason);\n setInputValue(eventValue);\n return;\n }\n\n if (reason === 'clear') {\n isTypingRef.current = false;\n setInputReason(reason);\n setInputValue('');\n }\n },\n [onInputChange, onSearch],\n );\n\n const handleChange = useCallback(\n (\n _: React.SyntheticEvent,\n option: Option | (string | Option)[] | string | null,\n ) => {\n isTypingRef.current = false;\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 listboxProps = useMemo(\n () =>\n ({\n 'data-item-height': optionHeight,\n }) as HTMLAttributes<HTMLUListElement>,\n [optionHeight],\n );\n\n const memoizedRenderInput = useCallback(\n (params: AutocompleteRenderInputParams) => (\n <AutocompleteDetailedInput\n params={params}\n name={name}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n label={label}\n required={required}\n loading={loading}\n tabIndex={tabIndex}\n />\n ),\n [\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n loading,\n tabIndex,\n ],\n );\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) onBlur(event);\n },\n [onBlur],\n );\n\n const filteredOptions = useMemo(() => {\n if (!deferredInputValue || inputReason === 'reset') return options;\n return filterOptions(options, { inputValue: deferredInputValue });\n }, [options, deferredInputValue, inputReason]);\n\n return (\n <MuiAutocomplete\n ref={ref}\n value={formattedValue}\n inputValue={inputValue}\n onInputChange={handleInputChange}\n options={filteredOptions}\n loading={loading}\n noOptionsText={noOptionsText}\n loadingText={loadingText}\n disabled={loading || disabled}\n disableListWrap\n PopperComponent={StyledPopper}\n ListboxProps={listboxProps}\n ListboxComponent={renderOption ? undefined : ListboxComponent}\n onChange={handleChange}\n renderOption={renderOptionListItem}\n renderGroup={renderGroup}\n groupBy={groupBy}\n multiple={multiple}\n renderInput={memoizedRenderInput}\n onBlur={handleBlur}\n {...other}\n />\n );\n },\n ),\n);\n\nAutocompleteDetailed.displayName = 'Autocomplete';\n\nexport default AutocompleteDetailed;\n","import { memo } from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\n\nimport { AutocompleteDetailedInputProps } from './props';\n\nconst AutocompleteDetailedInput = memo(\n ({\n params,\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n loading,\n tabIndex,\n }: AutocompleteDetailedInputProps) => (\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 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 />\n ),\n);\n\nAutocompleteDetailedInput.displayName = 'AutocompleteDetailedInput';\n\nexport default AutocompleteDetailedInput;\n","import React, {\n forwardRef,\n HTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n} from 'react';\nimport { VariableSizeList } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\n\nimport ListboxRow, { LISTBOX_PADDING } from './ListboxRow';\n\nconst OuterElementContext = React.createContext({});\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => {\n const outerProps = React.useContext(OuterElementContext);\n return <div ref={ref} {...props} {...outerProps} />;\n});\n\nOuterElementType.displayName = 'OuterElementType';\n\nconst useResetCache = (data: number) => {\n const ref = React.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 React.HTMLAttributes<HTMLElement>\n>(function ListboxComponent(props, ref) {\n const {\n children,\n // eslint-disable-next-line react/prop-types\n 'data-item-height': dataItemHeight,\n ...other\n } = props as { 'data-item-height': number } & HTMLAttributes<HTMLElement>;\n\n const itemData: (React.ReactElement | AutocompleteRenderGroupParams)[] =\n useMemo(() => {\n const data: (React.ReactElement | AutocompleteRenderGroupParams)[] = [];\n (\n children as (React.ReactElement | AutocompleteRenderGroupParams)[]\n ).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 React.ReactElement[]),\n );\n }\n });\n return data;\n }, [children]);\n const itemCount = itemData.length;\n const itemSize = dataItemHeight > 112 ? dataItemHeight : 112;\n\n const getChildSize = useCallback(\n (child: React.ReactElement | AutocompleteRenderGroupParams) => {\n if (Object.prototype.hasOwnProperty.call(child, 'group')) {\n return 48;\n }\n\n return itemSize;\n },\n [itemSize],\n );\n\n const getHeight = 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\n const getItemSize = useCallback(\n (index: number) => {\n return getChildSize(itemData[index]);\n },\n [itemData, getChildSize],\n );\n\n return (\n <div ref={ref}>\n <OuterElementContext.Provider value={other}>\n <VariableSizeList\n itemData={itemData}\n height={getHeight + 2 * LISTBOX_PADDING}\n width=\"100%\"\n ref={gridRef}\n outerElementType={OuterElementType}\n innerElementType=\"ul\"\n itemSize={getItemSize}\n overscanCount={5}\n itemCount={itemCount}\n >\n {ListboxRow}\n </VariableSizeList>\n </OuterElementContext.Provider>\n </div>\n );\n});\n\nexport default ListboxComponent;\n","import { memo } from 'react';\nimport { ListChildComponentProps } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Typography from '@mui/material/Typography';\n\nimport ListItem from './ListItem';\nimport { ListItemProps } 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 | React.ReactElement\n | AutocompleteRenderGroupParams;\n\n const inlineStyle = {\n ...style,\n top: (style.top as number) + LISTBOX_PADDING,\n paddingTop: 8,\n display: 'block',\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 element = dataSet as React.ReactElement;\n const listItemProps = element.props?.children?.props as ListItemProps;\n\n return (\n <Typography component=\"li\" {...element.props} noWrap style={inlineStyle}>\n <ListItem {...listItemProps} />\n </Typography>\n );\n});\n\nListboxRow.displayName = 'ListboxRow';\n\nexport { LISTBOX_PADDING };\nexport default ListboxRow;\n","import { memo, useMemo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport CustomAvatar from 'components/CustomAvatar';\n\nimport { ListItemProps } from './props';\nimport {\n DividerStyled,\n ImageContainer,\n OptionBox,\n OptionContent,\n} from './styles';\n\nconst AVATAR_SX = { width: 68, height: 68, borderRadius: 1 };\n\nconst ListItem = memo(({ option }: ListItemProps) => {\n const options = useMemo(\n () =>\n Object.keys(option)\n .filter(key => key.startsWith('field'))\n .map((key, index) => {\n const data = option[key];\n\n if (data && typeof data === 'object') {\n const label = ('label' in data ? data.label : null) as string;\n const value = ('value' in data ? data.value : null) as string;\n\n return (\n <Typography\n key={`${key}:${index}`}\n component=\"span\"\n variant=\"body2\"\n color=\"textPrimary\"\n noWrap\n >\n {label}: {value}\n </Typography>\n );\n }\n }),\n [option],\n );\n\n const image = useMemo(\n () =>\n option.image ? (\n <img alt=\"Imagem\" src={option.image} />\n ) : (\n <CustomAvatar\n alt={option.label || option.value.toString()}\n name={option.label || option.value.toString()}\n sx={AVATAR_SX}\n />\n ),\n [option],\n );\n\n return (\n <>\n <Stack direction=\"row\" gap={2} margin={2}>\n <ImageContainer>{image}</ImageContainer>\n\n <Stack flex={1} overflow=\"hidden\">\n <Typography variant=\"subtitle2\" color=\"textPrimary\" noWrap flex={1}>\n {option.value} - {option.label}\n </Typography>\n\n {options.length > 0 && (\n <OptionBox width={1}>\n <OptionContent>\n {options[0] ? options[0] : undefined}\n {options[1] ? options[1] : undefined}\n </OptionContent>\n\n {(options[2] || options[3]) && (\n <OptionContent>\n {options[2] ? options[2] : undefined}\n {options[3] ? options[3] : undefined}\n </OptionContent>\n )}\n </OptionBox>\n )}\n </Stack>\n </Stack>\n\n <DividerStyled className=\"border\" />\n </>\n );\n});\n\nListItem.displayName = 'ListItem';\n\nexport default ListItem;\n","import { autocompleteClasses } from '@mui/material/Autocomplete';\nimport Popper from '@mui/material/Popper';\nimport Stack from '@mui/material/Stack';\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\nexport const OptionBox = styled(Stack)(({ theme }) => ({\n flex: 1,\n width: '100%',\n gap: 6,\n\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n\n [theme.breakpoints.up('md')]: {\n flexDirection: 'row',\n },\n}));\n\nexport const OptionContent = styled(Stack)(({ theme }) => ({\n flex: 1,\n maxWidth: '100%',\n gap: 6,\n\n [theme.breakpoints.up('md')]: {\n flex: '1 1 calc(50% - 8px)',\n width: 'calc(50% - 8px)',\n minWidth: 'calc(50% - 8px)',\n maxWidth: 'calc(50% - 8px)',\n },\n}));\n\nexport const ImageContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n width: 68,\n height: 68,\n borderRadius: 8,\n overflow: 'hidden',\n\n img: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}));\n\nexport const DividerStyled = styled('hr')(({ theme }) => ({\n borderStyle: 'dashed',\n position: 'absolute',\n bottom: 0,\n width: '100%',\n margin: 0,\n borderColor: theme.palette.divider,\n borderWidth: '0 0 thin',\n}));\n"]}