Files
doormile_crm_build/dist/assets/Selector-D-0RMSQ0.js
2026-07-08 18:53:29 +05:30

2 lines
10 KiB
JavaScript

import{r as s,W as Ee,j as i,m as Oe,s as he,v as ye,p as be,o as He,Y as Re,n as J,t as me,D as ke,y as Le,Z as We}from"./index-TNj5auBr.js";import{F as Be,b as Ke,c as Ge,d as ge}from"./TextInput-DL-5979h.js";function ve(e){return typeof e=="string"?!0:!("type"in e)}function Ue(e){return typeof e=="object"&&"type"in e&&e.type==="divider"}function je(e){return typeof e=="object"&&"type"in e&&e.type==="section"}function Z(e){return typeof e=="string"?{value:e,label:e}:{...e,label:e.label??e.value}}function Ve(e){const u=[];for(const d of e)if(ve(d))u.push(Z(d));else if(je(d))for(const o of d.options)u.push(Z(o));return u}function _e({isOpen:e,selectedItemIndex:u,listboxId:d,listboxRef:o,triggerRef:f}){const[p,h]=s.useState(0),[y,C]=s.useState(!1),a=s.useCallback((l,z)=>{h(l),C(z)},[]);return Ee(()=>{if(!e){a(0,!1);return}if(!o.current||!f.current){a(0,!0);return}const l=u>=0?u:0,z=`${d}-item-${l}`,N=document.getElementById(z);if(!N){a(0,!0);return}const S=o.current.getBoundingClientRect(),r=N.getBoundingClientRect(),$=f.current.getBoundingClientRect(),j=S.height;if(j<=0){a(0,!0);return}const g=r.top-S.top+r.height/2,M=$.top+$.height/2-g,A=window.innerHeight,E=Math.max(0,A-j),n=Math.min(Math.max(M,0),E),c=Math.max(0,$.bottom-n);a(c,!0)},[e,u,d,o,f,a]),{offset:p,isPositioned:y}}function Fe({selectableItems:e,value:u,isDisabled:d=!1,isOpen:o,hasSearch:f=!1,onOpen:p,onClose:h,onSelect:y,listboxId:C}){const[a,l]=s.useState(-1),[z,N]=s.useState(""),S=s.useRef(void 0),r=s.useCallback(n=>`${C}-item-${n}`,[C]),$=s.useCallback(()=>e.map((n,c)=>n.disabled?-1:c).filter(n=>n>=0),[e]),j=s.useCallback(()=>e.findIndex(n=>n.value===u),[e,u]),g=s.useCallback(()=>{l(-1),h()},[h]),m=s.useCallback(n=>{n.disabled||(y==null||y(n.value),g())},[y,g]),M=s.useCallback(()=>{if(!d){if(o)g();else if(p(),!f){const n=j();l(n>=0?n:0)}}},[d,o,p,g,j,f]),A=s.useCallback((n,c)=>{n.disabled||l(c)},[]),E=s.useCallback(n=>{if(d)return;const c=$();switch(n.key){case"ArrowDown":if(n.preventDefault(),!o)p(),l(0);else{const x=c.indexOf(a),q=Math.min(x+1,c.length-1);l(c[q]??a)}break;case"ArrowUp":if(n.preventDefault(),!o)p(),l(e.length-1);else{const x=c.indexOf(a),q=Math.max(x-1,0);l(c[q]??a)}break;case" ":if(f)break;case"Enter":if(n.preventDefault(),o&&a>=0){const x=e[a];x&&!x.disabled&&m(x)}else if(!o&&(p(),!f)){const x=j();l(x>=0?x:0)}break;case"Escape":o&&(n.preventDefault(),g());break;case"Tab":o&&g();break;case"Home":n.preventDefault(),o&&c.length>0&&l(c[0]);break;case"End":n.preventDefault(),o&&c.length>0&&l(c[c.length-1]);break;default:if(!f&&n.key.length===1&&!n.ctrlKey&&!n.metaKey){const x=z+n.key.toLowerCase();N(x),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{N("")},500);const q=e.findIndex(H=>{var R;return!H.disabled&&((R=H.label)==null?void 0:R.toLowerCase().startsWith(x))});q>=0&&(o||p(),l(q))}break}},[d,o,p,g,e,a,m,j,$,z,f]);return{highlightedIndex:a,setHighlightedIndex:l,getItemId:r,onTriggerClick:M,onKeyDown:E,onItemSelect:m,onItemMouseEnter:A}}const Je={root:{k8WAf4:"xt970qd",kg3NbH:"xnjsko4",kaIpWk:"x2u8bby",$$css:!0}};function Ie({icon:e,label:u,description:d,endContent:o,xstyle:f,className:p,style:h}){return i.jsx(Oe,{startContent:e?be(e,{size:"sm",color:"secondary"}):void 0,label:u,description:d,endContent:o,xstyle:[Je.root,f],...he(ye("selector-option"),{className:p,style:h})})}Ie.displayName="SelectorOption";const w={triggerContainer:{kVAEAm:"x1n2onr6",k1xSpc:"x78zum5",kGNEyG:"x6s0dn4",kjj79g:"x1qughib",kOIVth:"x1txdalj",kzqmXN:"xh8yej3",k8WAf4:"xce4md1",kg3NbH:"xrrkdod",kMv6JI:"x9ynric",kGuDYH:"xcr08ib xdk3u5w",kLWn49:"x1kq96og",kMwMTN:"x1tgivj0",kkrTdU:"x1ypdohk",$$css:!0},triggerPlaceholder:{kMwMTN:"xv1l7n4",$$css:!0},popover:{k7Eaqz:"xrzjruh",$$css:!0},sectionDivider:{kqGvvJ:"xsq74q5",$$css:!0},divider:{kqGvvJ:"xsq74q5",$$css:!0},item:{kB7OPa:"x9f619",k1xSpc:"x78zum5",kGNEyG:"x6s0dn4",kjj79g:"x1qughib",kOIVth:"x1txdalj",kzqmXN:"xh8yej3",kmVPX3:"xlsj2fj",kaIpWk:"xh6dtrn",kMv6JI:"x9ynric",kGuDYH:"xcr08ib",kMwMTN:"x1tgivj0",kWkggS:"xjbqb8w",kkrTdU:"x1ypdohk",k9WMMc:"xdpxx8g",kI3sdo:"x1a2a7pz",$$css:!0},itemHighlighted:{kWkggS:"x1lmrjuc",$$css:!0},itemSelected:{k63SB2:"x1e4wzip",$$css:!0},itemDisabled:{kSiTet:"xbyyjgo",kkrTdU:"x1h6gzvc",$$css:!0}},Ze={sm:{kZKoxP:"x6k0iem",$$css:!0},md:{kZKoxP:"x1ueg155",$$css:!0},lg:{kZKoxP:"xssyfek",$$css:!0}},Xe={sm:{k8WAf4:"xu0wf1k",kg3NbH:"xf314gf",$$css:!0},md:{k8WAf4:"x1vofgu7",$$css:!0},lg:{$$css:!0}},Ye={warning:"warning",error:"error",success:"success"},Qe={warning:"warning",error:"error",success:"success"};function et({option:e}){return i.jsx(Ie,{icon:e.icon,label:e.label??e.value})}function tt(e){const{label:u,isLabelHidden:d=!1,description:o,isOptional:f=!1,isRequired:p=!1,isDisabled:h=!1,options:y,value:C,onChange:a,changeAction:l,isLoading:z=!1,placeholder:N="Select...",size:S,status:r,labelTooltip:$,startIcon:j,renderOption:g,hasSearch:m=!1,searchPlaceholder:M="Search...",placement:A,isDefaultOpen:E=!1,"data-testid":n,width:c,xstyle:x,className:q,style:H,hasClear:R,...we}=e,Ce=R===!0,L=He(S,"md"),O=C===null?void 0:C,W=s.useId(),D=s.useId(),ne=s.useId(),re=s.useId(),ie=s.useId(),X=s.useRef(null),oe=s.useRef(null),[P,ae]=s.useState(""),[,B]=s.useTransition(),[Y,K]=s.useOptimistic(O),le=z||Y!==O,ze=[o?ne:null,r!=null&&r.message?re:null].filter(Boolean).join(" ")||void 0,T=s.useMemo(()=>Ve(y),[y]),G=s.useMemo(()=>{if(!P)return T;const t=P.toLowerCase();return T.filter(b=>(b.label??b.value).toLowerCase().includes(t))},[T,P]),U=s.useMemo(()=>T.findIndex(t=>t.value===Y),[T,Y]),V=s.useMemo(()=>U>=0?T[U]:void 0,[T,U]),Q=s.useRef(null),Se=s.useCallback(()=>{var t;ae(""),(t=X.current)==null||t.focus()},[]),v=Re({onHide:Se,hasLightDismiss:!0,hasCloseButton:!1,hasAutoFocus:!1});s.useEffect(()=>{E&&v.show()},[]);const ee=A==null&&!m,{offset:$e,isPositioned:qe}=_e({isOpen:v.isOpen&&ee,selectedItemIndex:U,listboxId:D,listboxRef:Q,triggerRef:X}),ce=ee?$e:0,Ne=ee?qe:!0,de=A??"below",De=ce>0?{marginBlockStart:`-${ce}px`}:void 0,{highlightedIndex:_,getItemId:te,onTriggerClick:Pe,onKeyDown:se,onItemSelect:ue,onItemMouseEnter:xe}=Fe({selectableItems:G,value:O,isDisabled:h,isOpen:v.isOpen,hasSearch:m,onOpen:s.useCallback(()=>{v.show(),m&&requestAnimationFrame(()=>{var t;(t=oe.current)==null||t.focus()})},[v,m]),onClose:v.hide,onSelect:s.useCallback(t=>{a==null||a(t),l&&B(async()=>{K(t),await l(t)})},[a,l,B,K]),listboxId:D}),Te=s.useCallback(t=>{t.stopPropagation(),a==null||a(null),l&&B(async()=>{K(void 0),await l(null)})},[a,l,B,K]),Me=s.useCallback(()=>m?i.jsx("div",{className:"xf314gf xu0wf1k",children:i.jsx("input",{ref:oe,id:ie,role:"searchbox","aria-controls":D,"aria-label":"Search options",type:"text",value:P,onChange:t=>ae(t.target.value),onKeyDown:t=>{(t.key==="ArrowDown"||t.key==="ArrowUp"||t.key==="Escape"||t.key==="Tab")&&se(t)},placeholder:M,className:"x9f619 xh8yej3 xu0wf1k xf314gf x1litavf x1y0btm7 xvy26l8 xh6dtrn x10xzikg x9ynric xcr08ib xdk3u5w x1tgivj0 x1a2a7pz xzeu18z x1wfwxd8"})}):null,[m,ie,D,P,M,se]),F=s.useCallback((t,b)=>{const I=b===_,k=t.value===O;return i.jsxs("div",{id:te(b),role:"option","aria-selected":k,"aria-disabled":t.disabled,onClick:()=>ue(t),onMouseEnter:()=>xe(t,b),...me(w.item,Xe[L],I&&w.itemHighlighted,k&&w.itemSelected,t.disabled&&w.itemDisabled),children:[i.jsx("span",{className:"x78zum5 x6s0dn4 x1txdalj x98rzlu xeuugli",children:g?g(t):i.jsx(et,{option:t})}),k&&i.jsx(J,{icon:"check",size:"sm",color:"accent"})]},t.value)},[g,_,L,O,te,ue,xe]),fe=s.useCallback(()=>{if(m&&P)return G.length===0?[i.jsx("div",{className:"x1b2ylru x2b8uid xv1l7n4 x9ynric xcr08ib",children:"No results found"},"empty")]:G.map((I,k)=>F(I,k));let t=0;const b=[];for(let I=0;I<y.length;I++){const k=y[I];if(Ue(k))b.push(i.jsx(ke,{xstyle:w.divider},`divider-${I}`));else if(je(k)){const pe=[];for(const Ae of k.options)pe.push(F(Z(Ae),t)),t++;k.title&&b.push(i.jsx(ke,{label:k.title,xstyle:w.sectionDivider},`section-divider-${I}`)),b.push(i.jsx("div",{role:"group","aria-label":k.title,children:pe},`section-${I}`))}else ve(k)&&(b.push(F(Z(k),t)),t++)}return b},[y,F,m,P,G]);return i.jsxs(Be,{label:u,isLabelHidden:d,description:o,inputID:W,descriptionID:o?ne:void 0,isOptional:f,isRequired:p,isDisabled:h,status:r?{type:r.type,message:r.message,messageID:r.message?re:void 0}:void 0,labelTooltip:$,width:c,children:[i.jsxs("div",{ref:t=>{v.triggerRef(t)},onClick:Pe,"data-testid":n,...he(ye("selector",{size:L,status:(r==null?void 0:r.type)??null}),me(ge.base,w.triggerContainer,Ze[L],h&&ge.disabled,!V&&w.triggerPlaceholder,r&&Ge[r.type],r&&Ke[r.type],x),q,H),children:[j&&be(j,{size:"sm",color:"secondary"}),i.jsx("button",{ref:X,id:W,type:"button",role:"combobox",...we,"aria-haspopup":"listbox","aria-expanded":v.isOpen,"aria-controls":D,"aria-activedescendant":v.isOpen&&_>=0?te(_):void 0,"aria-describedby":ze,"aria-required":p?"true":void 0,"aria-invalid":(r==null?void 0:r.type)==="error"?"true":void 0,"aria-busy":le||void 0,disabled:h,onKeyDown:se,tabIndex:-1,className:"x78zum5 x6s0dn4 x1qughib x1txdalj x1iyjqo2 xs83m0k x1r8uery xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w xjb2p0i x1qlqyl8 x15bjb6t x1heor9g x1ypdohk x1a2a7pz",children:i.jsx("span",{className:"x1iyjqo2 xeuugli xb3r6kr xlyipyv xuxw1ft x1yc453h",children:(V==null?void 0:V.label)??N})}),le&&i.jsx(Le,{size:"sm"}),Ce&&C!=null&&!h&&i.jsx("button",{type:"button",tabIndex:-1,onClick:Te,"aria-label":`Clear ${u}`,className:"x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto",children:i.jsx(J,{icon:"close",size:"sm",color:"secondary"})}),i.jsx("span",{...{0:{className:"x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike"},2:{className:"x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike x19jd1h0"},1:{className:"x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike xq2gx43"},3:{className:"x2lah0s x78zum5 x6s0dn4 xl56j7k x1kky2od xlup9mm x11xpdln xuedmi6 xlr8y92 x1g0ag68 xv9yike x19jd1h0 xq2gx43"}}[!!(!r&&v.isOpen)<<1|!!r<<0],children:r?i.jsx(J,{icon:Ye[r.type],size:"sm",color:Qe[r.type]}):i.jsx(J,{icon:"chevronDown",size:"sm",color:"inherit"})})]}),v.render(m?i.jsxs("div",{children:[Me(),i.jsx("div",{ref:Q,id:D,role:"listbox","aria-labelledby":W,className:"x9f619 xuyqlj2 x1odjw0f x9epnlk x1hc1fzr x1ey1afo",children:fe()})]}):i.jsx("div",{ref:Q,id:D,role:"listbox","aria-labelledby":W,...{0:{className:"x9f619 xuyqlj2 x1odjw0f x9epnlk x1hc1fzr x1ey1afo"},1:{className:"x9f619 xuyqlj2 x1odjw0f x9epnlk xg01cxk xq2gx43"}}[!Ne<<0],children:fe()}),{placement:de,alignment:"start",xstyle:[w.popover,We[de]],style:De})]})}tt.displayName="Selector";export{tt as S};