@korautils/forms
Version:

6 lines • 1.81 kB
JavaScript
import {c}from'./chunk-MIZO24FD.mjs';import {d,c as c$1,a}from'./chunk-6DPEEXVJ.mjs';import R,{useCallback,useEffect}from'react';import {styled}from'@mui/material';import k from'@mui/material/TextField';import D from'@mui/material/Autocomplete';import {jsx}from'react/jsx-runtime';var F=styled("div")`
display: flex;
flex-direction: column;
width: 100%;
`;var h=(e,n)=>{let l=n.split("."),t=[],a=null;for(let r of l.reverse()){t.push(r);let i=[...t].reverse().join(".");c$1(e,i)&&(a=i);}return c$1(e,a||n)},P=(e,n)=>{let l=n.split("."),t=[],a=null;for(let r of l){t.push(r);let i=[...t].join("."),p=c$1(e,i);p&&Array.isArray(p)&&(a=i);let f=a||r;return ["[0]","0"].includes(f)?e:c$1(e,f)}};var w=({api:e,renderProps:n,options:l})=>{let{fetchData:t,loading:a,response:r}=c(),i=s=>{if(a||!s||!r)return [];let A=P(c$1(r,"data"),s.value);return d(A)?[]:A.map(m=>({...s.includeAll?{...m}:{},label:h(m,s.label),value:h(m,s.value)}))},p=useCallback(()=>{e&&t(e);},[e,t]);return useEffect(()=>{p();},[p]),{optionsList:(d(l)?i(n):l)||[]}},S=w;var H=R.forwardRef(function({name:n=a(),label:l,value:t=null,options:a$1=[],onChange:r,formHandler:i,error:p,helperText:f,renderProps:s,required:A,api:m,multiple:g,...V},b){let{optionsList:v}=S({renderProps:s,api:m,options:a$1}),q=g?v.filter(o=>t?.some(c=>c.value===o.value)):v.find(o=>o?.value===t?.value)||null;return jsx(F,{children:jsx(D,{ref:b,id:n||a(),value:q,multiple:g,onChange:(o,c)=>{typeof r=="function"&&r({target:{name:n,value:c}});},options:v,getOptionLabel:o=>o?.label||"",isOptionEqualToValue:(o,c)=>o?.value===c?.value,renderInput:o=>jsx(k,{...o,label:l,helperText:f,error:p}),fullWidth:!0,...V})})}),T=R.memo(H);var re=T;export{re as default};//# sourceMappingURL=AutocompleteField-VJG3HWL7.mjs.map
//# sourceMappingURL=AutocompleteField-VJG3HWL7.mjs.map