1import{_ as ue,r as f,h as de,E as ce,w as ve,o,c as u,ad as fe,ae as O,X as c,P as b,W as L,as as B,I as y,am as Q,a as be,z as W,ag as X,H as ge,aA as he,aE as me,Q as F,S as G,G as pe,f as T,T as j}from"./3IBV6Oo9.js";import ye from"./PpAmRE1s.js";const we={class:"relative w-full"},ke=["for"],xe={key:0,class:"text-error"},De=["id","disabled","aria-expanded","aria-describedby"],Ie={class:"flex items-center"},Oe=["aria-labelledby"],Ee={key:0,class:"sticky top-0 z-[var(--z-index-raised)] bg-base-0 p-2 border-b border-base-300"},Se=["placeholder"],Ve={key:1},qe=["aria-selected","onClick","onMouseenter","onDragover","onDrop"],Ce={class:"flex items-center"},Le={class:"flex-1 min-w-0"},Be={key:0,class:"block truncate text-small text-base-600"},ze={key:0,class:"absolute inset-y-0 right-0 flex items-center pr-3 gap-2 text-base-900"},Me=["onDragstart"],Re=["id"],Te={__name:"ODropdown",props:{modelValue:{type:[String,Number,null],required:!1},options:{type:Array,required:!1,default:()=>[]},placeholder:{type:String,required:!1,default:"Select an option..."},label:{type:String,required:!1},disabled:{type:Boolean,required:!1},isInvalid:{type:Boolean,required:!1},errorMessage:{type:String,required:!1},required:{type:Boolean,required:!1},searchable:{type:Boolean,required:!1},searchPlaceholder:{type:String,required:!1,default:"Search..."},loading:{type:Boolean,required:!1},clearable:{type:Boolean,required:!1,default:!0},reorderable:{type:Boolean,required:!1,default:!1}},emits:["update:modelValue","update:options","change","open","close"],setup(t,{emit:J}){const d=t,g=J,w=f(),k=f(),E=f(),N=f([]),v=f(!1),m=f(""),n=f(-1),x=f(`dropdown-${Math.random().toString(36).substr(2,9)}`),Y=f({}),S=T(()=>d.options.find(e=>e.value===d.modelValue)),A=T(()=>{if(S.value?.icon)return S.value.icon}),s=T(()=>{if(!d.searchable||!m.value)return d.options;const e=m.value.toLowerCase();return d.options.filter(l=>l.fieldLabel.toLowerCase().includes(e)||l.description?.toLowerCase().includes(e))}),Z=(e,l)=>{e instanceof Element&&(N.value[l]=e)},_=()=>{d.disabled||d.loading||(v.value?D():$())},$=async()=>{if(v.value=!0,n.value=-1,m.value="",await j(),p(),d.searchable&&E.value)try{E.value.focus({preventScroll:!0})}catch{E.value.focus()}g("open")},D=()=>{v.value=!1,n.value=-1,m.value="",g("close")},z=e=>{e.disabled||(g("update:modelValue",e.value),g("change",e.value),D(),w.value?.focus())},ee=()=>{g("update:modelValue",null),g("change",null)},p=()=>{!w.value||k.value},ae=e=>{switch(e.key){case"Enter":if(e.preventDefault(),n.value>=0){const l=s.value[n.value];l&&!l.disabled&&z(l)}break;case"ArrowDown":e.preventDefault(),v.value?P():$();break;case"ArrowUp":e.preventDefault(),v.value&&K();break;case"Escape":v.value&&D();break}},te=e=>{switch(e.key){case"ArrowDown":e.preventDefault(),P();break;case"ArrowUp":e.preventDefault(),K();break;case"Enter":if(e.preventDefault(),n.value>=0){const l=s.value[n.value];l&&!l.disabled&&z(l)}break;case"Escape":D();break}},P=()=>{if(s.value.filter(a=>!a.disabled).length===0)return;let l=n.value+1;for(;l<s.value.length;){const a=s.value[l];if(a&&!a.disabled){n.value=l,V();return}l++}for(let a=0;a<s.value.length;a++){const r=s.value[a];if(r&&!r.disabled){n.value=a,V();return}}},K=()=>{if(s.value.filter(a=>!a.disabled).length===0)return;let l=n.value-1;for(;l>=0;){const a=s.value[l];if(a&&!a.disabled){n.value=l,V();return}l--}for(let a=s.value.length-1;a>=0;a--){const r=s.value[a];if(r&&!r.disabled){n.value=a,V();return}}},V=()=>{const e=N.value[n.value];e&&k.value&&e.scrollIntoView({block:"nearest",behavior:"smooth"})},h=f(null),q=f(null),le=(e,l)=>{d.reorderable&&(h.value=l,e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",String(l))))},re=(e,l)=>{!d.reorderable||h.value===null||(e.preventDefault(),q.value=l,e.dataTransfer&&(e.dataTransfer.dropEffect="move"))},oe=(e,l)=>{if(!d.reorderable||h.value===null)return;e.preventDefault();const a=h.value,r=l;if(h.value=null,q.value=null,a===r)return;const i=s.value[a],H=s.value[r];if(!i||!H)return;const I=d.options.slice(),M=I.findIndex(R=>R.value===i.value),C=I.findIndex(R=>R.value===H.value);if(M===-1||C===-1)return;const[se]=I.splice(M,1),ie=M<C?C-1:C;I.splice(ie,0,se),g("update:options",I)},ne=()=>{h.value=null,q.value=null},U=e=>{v.value&&w.value&&k.value&&!w.value.contains(e.target)&&!k.value.contains(e.target)&&D()};return de(()=>{document.addEventListener("click",U,!0),window.addEventListener("resize",p),window.addEventListener("scroll",p)}),ce(()=>{document.removeEventListener("click",U,!0),window.removeEventListener("resize",p),window.removeEventListener("scroll",p)}),ve(v,e=>{e&&j(()=>{p()})}),(e,l)=>(o(),u("div",we,[t.label?(o(),u("label",{key:0,for:x.value,class:"block text-sm text-tertiary font-bold leading-none mt-[var(--spacing-lg)]"},[fe(O(t.label),1),t.required?(o(),u("span",xe,"*")):c("",!0)],8,ke)):c("",!0),b("button",{id:x.value,ref_key:"buttonRef",ref:w,type:"button",disabled:t.disabled||t.loading,"aria-expanded":v.value,"aria-haspopup":!0,"aria-describedby":t.errorMessage?`${x.value}-error`:void 0,class:y(["dropdown-trigger relative w-full border py-2 pl-3 pr-10 text-left focus:outline-none focus:inset-ring-2 focus:inset-ring-tertiary focus:border-tertiary",[t.disabled||t.loading?"bg-base-50 text-base-900 cursor-not-allowed":"bg-white text-primary hover:border-base-300",t.isInvalid?"border-error focus:inset-ring-error focus:border-error":"border-base-300"]]),onClick:_,onKeydown:ae},[b("span",Ie,[A.value?(o(),L(B,{key:0,icon:A.value,class:"mr-2 text-base-300"},null,8,["icon"])):c("",!0),b("span",{class:y(["block truncate",[t.disabled||t.loading?"text-base-600":"text-primary"]])},O(S.value?.fieldLabel||t.placeholder),3)]),S.value&&!t.disabled&&!t.loading&&t.clearable?(o(),u("button",{key:0,t
1ype:"button",class:"absolute inset-y-0 right-8 flex items-center pr-2 hover:text-base-900 hover:cursor-pointer",onClick:Q(ee,["stop"])},[be(B,{icon:W(X).X},null,8,["icon"])])):c("",!0),b("span",{class:y(["dropdown-chevron absolute inset-y-0 right-0 flex items-center pr-2",[{"cursor-pointer":!t.disabled&&!t.loading},v.value&&!t.loading?"dropdown-chevron--open":"dropdown-chevron--closed"]])},[t.loading?(o(),L(ye,{key:0,color:"primary",size:24})):(o(),L(B,{key:1,icon:W(X).CHEVRON_DOWN,size:"l",class:y({"pointer-events-none":t.disabled})},null,8,["icon","class"]))],2)],42,De),v.value?(o(),u("div",{key:1,ref_key:"menuRef",ref:k,class:"absolute z-[var(--z-index-overlay)] mt-0 max-h-60 w-full overflow-auto bg-base-0 text-base border border-base-300 focus:outline-none",style:ge(Y.value),role:"listbox","aria-labelledby":x.value},[t.searchable?(o(),u("div",Ee,[he(b("input",{ref_key:"searchRef",ref:E,"onUpdate:modelValue":l[0]||(l[0]=a=>m.value=a),type:"text",placeholder:t.searchPlaceholder,class:"w-full px-3 py-2 border border-base-300 rounded-md text-small focus:outline-none focus:inset-ring-2 focus:inset-ring-tertiary focus:border-tertiary",onKeydown:te},null,40,Se),[[me,m.value]])])):c("",!0),s.value.length>0?(o(),u("div",Ve,[(o(!0),u(F,null,G(s.value,(a,r)=>(o(),u("div",{key:a.value,ref_for:!0,ref:i=>Z(i,r),role:"option","aria-selected":a.value===t.modelValue,class:y(["dropdown-item relative select-none py-2 pl-3 pr-9 border-b border-base-300 last:border-b-0 hover:bg-base-50 focus:bg-base-50 focus:outline-none",{"text-secondary":a.value===t.modelValue,"text-primary":a.value!==t.modelValue,"opacity-50 cursor-not-allowed":a.disabled,"bg-base-100":r===n.value&&a.value!==t.modelValue,"dropdown-item--drag-over":q.value===r&&h.value!==r}]),onClick:i=>!a.disabled&&z(a),onMouseenter:i=>n.value=r,onDragover:i=>re(i,r),onDrop:i=>oe(i,r)},[b("div",Ce,[a.icon?(o(),L(B,{key:0,icon:a.icon,class:"mr-2 text-base-300"},null,8,["icon"])):c("",!0),b("div",Le,[b("span",{class:y(["block truncate font-normal",a.value===t.modelValue?"font-bold":"font-medium"])},O(a.fieldLabel),3),a.description?(o(),u("span",Be,O(a.description),1)):c("",!0)])]),e.$slots["option-trailing"]||t.reorderable&&!a.disabled?(o(),u("span",ze,[pe(e.$slots,"option-trailing",{option:a,index:r,selected:a.value===t.modelValue},void 0,!0),t.reorderable&&!a.disabled?(o(),u("span",{key:0,class:"dropdown-grip","aria-hidden":"true",draggable:!0,onClick:l[1]||(l[1]=Q(()=>{},["stop"])),onDragstart:i=>le(i,r),onDragend:ne},[(o(),u(F,null,G(6,i=>b("span",{key:i,class:"dropdown-grip__dot"})),64))],40,Me)):c("",!0)])):c("",!0)],42,qe))),128))])):c("",!0)],12,Oe)):c("",!0),t.errorMessage&&t.isInvalid?(o(),u("p",{key:2,id:`${x.value}-error`,class:"mt-1 text-small text-error"},O(t.errorMessage),9,Re)):c("",!0)]))}},$e=ue(Te,[["__scopeId","data-v-347f90be"]]);export{$e as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.