UNPKG

vue-autocomplete-plugin

Version:

A simple, powerful, lightweight and customizable autocomplete tool programmed for Vue projects!

3 lines (2 loc) 31.4 kB
(function(O,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(O=typeof globalThis<"u"?globalThis:O||self,l(O.Autocomplete={},O.Vue))})(this,function(O,l){"use strict";var Z=document.createElement("style");Z.textContent=`.auto-complete-remove-selection{display:inline-block;margin-top:5px;margin-left:-25px;cursor:pointer}.auto-complete-textfield{width:100%;height:2rem;outline:none;border:1px solid grey;border-radius:5px;cursor:text}.auto-complete-textfield:disabled{background-color:#e7e7e7;border:1px solid #d5d5d5;cursor:default}.arrow{height:0;width:0;border:4px solid transparent;display:inline-block;margin-top:5px;margin-left:-20px;cursor:pointer}.arrow.down{border-top-color:#000}.autocomplete-data-list{padding:1rem}.autocomplete-data-list:hover{background-color:#eeeded;cursor:pointer}.autocomplete-plugin-loader{width:2rem;height:2rem;border:3px solid #d4d3d3;border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}.auto-complete-list-spinner{padding:1rem}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.disable-list-element{cursor:context-menu!important;opacity:.5;background-color:#e5e5e5}.view-more{cursor:pointer;background-color:#f6f5f5;letter-spacing:.5px}.autocomplete-keydown-background{background-color:#f4f4f4}.autocomplete-keydown-viewmore{background-color:#c8c8c8}.auto-complete-list{position:absolute;width:inherit;background-color:#fff;display:none}.field-container{width:inherit}.unorder-list{list-style:none;max-height:20rem;overflow:auto;margin:0;padding:0;text-align:center;border:1px solid #e8e8e8;box-shadow:0 2px 3px -1px #0000001a;color:#000}.showDropdown{display:block}.auto-complete-textfield-container{width:inherit;height:inherit} /*$vite$:1*/`,document.head.appendChild(Z);const Le=["aria-label"],Ve=l.defineComponent({__name:"InputLabel",props:{inputLabel:{default:"Enter or Search value"},inputLabelContainerClass:{},inputLabelContainerStyle:{},inputLabelClass:{},inputLabelStyle:{},ariaInputLabel:{}},setup(P){const e=P;return(p,n)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["label-container",e.inputLabelContainerClass?e.inputLabelContainerClass:""]),style:l.normalizeStyle(e.inputLabelContainerStyle?e.inputLabelContainerStyle:{})},[l.createElementVNode("label",{class:l.normalizeClass(["label-value",e.inputLabelClass?e.inputLabelClass:""]),style:l.normalizeStyle(e.inputLabelStyle?e.inputLabelStyle:{}),for:"searchInput","aria-label":e!=null&&e.ariaInputLabel?e.ariaInputLabel:"Autocomplete search"},l.toDisplayString(e.inputLabel),15,Le)],6))}}),ke=["placeholder","disabled","aria-label","role","aria-roledescription"],De=l.defineComponent({__name:"InputField",props:{placeHolder:{default:"Select Value."},isAutoCompleteDisabled:{type:Boolean},showdropDownArrow:{type:Boolean},showClearOption:{type:Boolean},onFocus:{},onBlur:{},onInput:{},clearSearch:{},handleDropdownClick:{},inputFieldClass:{},inputFieldStyle:{},ariaInputField:{},ariaRole:{},ariaRoleDescription:{}},setup(P,{expose:e}){const p=l.ref(""),n=P;function V(y){var b;(b=n.onFocus)==null||b.call(n,y)}function o(y){var b;(b=n.onBlur)==null||b.call(n,y)}function k(y){var b;(b=n.onInput)==null||b.call(n,y)}return e({searchValue:p}),(y,b)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("input",{tabindex:"0",ref_key:"searchValue",ref:p,id:"searchInput",name:"searchValue",type:"text",class:l.normalizeClass(["auto-complete-textfield",n.inputFieldClass?n.inputFieldClass:""]),autocomplete:"off",placeholder:n.placeHolder,disabled:n.isAutoCompleteDisabled,style:l.normalizeStyle(n.inputFieldStyle?n.inputFieldStyle:{}),"aria-label":n!=null&&n.ariaInputField?n.ariaInputField:"Enter text to search autocomplete.",role:n!=null&&n.ariaRole?n.ariaRole:"autocomplete","aria-roledescription":n!=null&&n.ariaRoleDescription?n.ariaRoleDescription:"Autocomplete search",onFocus:V,onBlur:o,onInput:k},null,46,ke),y.showdropDownArrow?(l.openBlock(),l.createElementBlock("span",{key:0,tabindex:"0",class:"arrow down",onClick:b[0]||(b[0]=f=>y.handleDropdownClick(f))})):l.createCommentVNode("",!0),y.showClearOption?(l.openBlock(),l.createElementBlock("span",{key:1,onClick:b[1]||(b[1]=f=>y.clearSearch(f)),class:"auto-complete-remove-selection"},"×")):l.createCommentVNode("",!0)],64))}}),Ee=["id","aria-label","onClick","aria-disabled"],Fe={key:0,class:"auto-complete-list-spinner"},Be=["aria-label"],Re=["aria-label"],Ae=l.defineComponent({__name:"DropdownList",props:{objectProperty:{},filteredData:{default:[]},onSelect:{type:Function,default:()=>{}},disableListFn:{type:Function,default:()=>{}},disableProperty:{},customClass:{},customStyle:{},isOnFocus:{type:Boolean},showLoadingSpinner:{type:Boolean},noSearchResultMessage:{default:"No results found."},aria:{},isCustomSpinner:{type:Boolean,default:!1},onViewMore:{},viewMoreText:{},optViewMoreOnlyForApiCall:{type:Boolean},isEventEmitted:{type:Boolean},showSpinner:{type:Boolean},isApiLoad:{type:Boolean},displayViewMoreButton:{type:Boolean},viewMoreRef:{}},setup(P,{expose:e}){const p=l.ref([]),n=l.ref(),V=(o,k)=>{p.value[k]=o};return l.onBeforeUpdate(()=>{p.value=[]}),e({listElementsRef:p}),(o,k)=>{var y,b,f;return o.isOnFocus?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(o.filteredData,(w,S)=>{var j;return l.openBlock(),l.createElementBlock("li",{key:S,id:"autocomplete-li-element-"+S,tabindex:"0",class:l.normalizeClass(["autocomplete-data-list",[o.customClass&&o.customClass.dropdownListClass?o.customClass.dropdownListClass:"",(!o.customClass||!o.customClass.disableListClass)&&(o.disableListFn&&o.disableListFn(S,w)||o.disableProperty&&w[o.disableProperty])?"disable-list-element":"",o.customClass&&o.customClass.disableListClass&&(o.disableListFn&&o.disableListFn(S,w)||o.disableProperty&&w[o.disableProperty])?o.customClass.disableListClass:""]]),"aria-label":o.objectProperty?w[o.objectProperty]+"":w+"",onClick:d=>o.onSelect(S,w,!0),ref_for:!0,ref:d=>V(d,S),"aria-disabled":o.disableListFn?o.disableListFn(S,w):o.disableProperty?w[o.disableProperty]:!1,style:l.normalizeStyle((j=o.customStyle)!=null&&j.dropdownListStyle?o.customStyle.dropdownListStyle:{})},l.toDisplayString(o.objectProperty?w[o.objectProperty]:w),15,Ee)}),128)),o.showLoadingSpinner&&o.showSpinner&&!o.isCustomSpinner?(l.openBlock(),l.createElementBlock("li",Fe,k[1]||(k[1]=[l.createElementVNode("span",{class:"autocomplete-plugin-loader"},null,-1)]))):l.createCommentVNode("",!0),o.showLoadingSpinner&&o.showSpinner&&o.isCustomSpinner?(l.openBlock(),l.createElementBlock("li",{key:1,class:l.normalizeClass(["auto-complete-list-spinner",o.customClass&&o.customClass.customSpinnerClass]),style:l.normalizeStyle((y=o.customStyle)!=null&&y.customSpinnerStyle?o.customStyle.customSpinnerStyle:{})},null,6)):l.createCommentVNode("",!0),o.filteredData.length<=0&&o.isOnFocus?(l.openBlock(),l.createElementBlock("li",{key:2,class:l.normalizeClass(["autocomplete-data-list noSearchResult",o.customClass&&o.customClass.noResultClass?o.customClass.noResultClass:""]),"aria-label":(b=o.aria)!=null&&b.ariaNoSearchResult?o.aria.ariaNoSearchResult:"No results found.",style:l.normalizeStyle(o.customStyle&&o.customStyle.noResultStyle?o.customStyle.noResultStyle:{})},l.toDisplayString(o.noSearchResultMessage),15,Be)):l.createCommentVNode("",!0),o.optViewMoreOnlyForApiCall&&!o.isEventEmitted&&!o.showSpinner&&o.isApiLoad&&o.displayViewMoreButton?(l.openBlock(),l.createElementBlock("li",{key:3,class:l.normalizeClass(["autocomplete-data-list view-more",o.customClass&&o.customClass.viewMoreClass?o.customClass.viewMoreClass:""]),style:l.normalizeStyle(o.customStyle&&o.customStyle.viewMoreStyle?o.customStyle.viewMoreStyle:{}),"aria-label":(f=o.aria)!=null&&f.ariaViewMore?o.aria.ariaViewMore:"View more results",tabIndex:"0",onClick:k[0]||(k[0]=w=>o.onViewMore(w,!0)),ref_key:"viewMoreRef",ref:n},l.toDisplayString(o.viewMoreText),15,Re)):l.createCommentVNode("",!0)],64)):l.createCommentVNode("",!0)}}}),Pe=["aria-label"],Oe={id:"list-container"},je=["aria-label"],Me=l.defineComponent({__name:"Core",props:{dropdownData:{},placeHolder:{},objectProperty:{},defaultValue:{},initialVisibleData:{},scrollThreshold:{},totalRecords:{},disableProperty:{},noSearchResultMessage:{},isAutoCompleteDisabled:{type:Boolean},isCustomSpinner:{type:Boolean},showLoadingSpinner:{type:Boolean},showdropDownArrow:{type:Boolean},showClearOption:{type:Boolean},customClass:{},customStyle:{},searchFn:{type:Function},disableListFn:{type:Function},isScrollThresholdRequired:{type:Boolean},inspectAutoCompleteList:{type:Boolean},viewMoreText:{},optViewMoreOnlyForApiCall:{type:Boolean},aria:{},triggerOnFocusEvent:{type:Function},triggerBlurEvent:{type:Function},triggerApiLoadEvent:{type:Function},broadcastSelectedValue:{type:Function},triggerClearSelectionEvent:{type:Function},isApiLoad:{type:Boolean},loadAllDataAtOnce:{type:Boolean},additionalData:{}},setup(P){const e=P,p=l.computed(()=>e.dropdownData||[]),n=l.shallowRef([]),V=l.ref([]),o=l.ref(0),k=l.ref(!1),y=l.ref(!1),b=l.ref(!1),f=l.ref(-1),w=l.ref(!1),S=l.ref(!1),j=l.ref(!1),d=l.ref(""),J=l.ref(),B=l.ref(),D=l.ref(),M=l.ref();l.watch(()=>p.value,(t,a)=>{var s,u,h;x(),j.value=!1;const r=(s=J.value)==null?void 0:s.style,i=(h=(u=d.value)==null?void 0:u.searchValue)==null?void 0:h.clientWidth;(r==null?void 0:r.width)!==i+"px"&&G()},{deep:!0});const A=()=>{var t,a,r,i;if(typeof e.totalRecords<"u"&&p.value.length>=e.totalRecords){y.value=!1;return}if(p.value.length<=0){y.value=!1;return}if((a=(t=d.value)==null?void 0:t.searchValue)!=null&&a.value&&((i=(r=d.value)==null?void 0:r.searchValue)==null?void 0:i.value)!==""&&e.triggerApiLoadEvent&&!k.value){y.value=!0;return}if(o.value>=p.value.length){y.value=!0;return}y.value=!1};function x(){try{if(!S.value)return;setTimeout(()=>{Ie()},100)}catch(t){console.log(t)}}function _(t){var i,s,u,h,C,L,g,c,m,v,E,F,R,T,ue,ce,de,pe,fe,me,he,ye,ve,be;if(n.value.length<=0&&(t==null?void 0:t.keyCode)!==27)return;let a,r;switch(t==null?void 0:t.keyCode){case 27:S.value&&(S.value=!1,(s=(i=d.value)==null?void 0:i.searchValue)==null||s.blur(),K());return;case 13:if(w.value){le(null,!0),w.value=!1;return}if((C=(h=(u=D.value)==null?void 0:u.listElementsRef)==null?void 0:h[f.value])!=null&&C.classList.contains("disable-list-element"))return;const X=n.value[f.value];X!=null&&(ie(f.value,X,!0),(c=(g=(L=D.value)==null?void 0:L.listElementsRef)==null?void 0:g[f.value])==null||c.classList.remove("autocomplete-keydown-background")),(v=(m=d.value)==null?void 0:m.searchValue)==null||v.blur();return;case 40:if(f.value+1===((F=(E=D.value)==null?void 0:E.listElementsRef)==null?void 0:F.length)){M.value&&((R=M.value)==null||R.scrollIntoView({behavior:"smooth",block:"nearest"}),(T=M.value)==null||T.classList.add("autocomplete-keydown-viewmore"),(de=(ce=(ue=D.value)==null?void 0:ue.listElementsRef)==null?void 0:ce[f.value])==null||de.classList.remove("autocomplete-keydown-background"),w.value=!0);return}if(f.value=f.value+1,a=(me=(fe=(pe=D.value)==null?void 0:pe.listElementsRef)==null?void 0:fe[f.value])==null?void 0:me.id,a==null||!a.includes("autocomplete-li-element-")||(r=Number(a.substring(a.lastIndexOf("-")+1)),typeof r!="number"))return;setTimeout(()=>{var I,N,z,H,$,U,W,q,Y,ge,we,Se,Ce;(z=(N=(I=D.value)==null?void 0:I.listElementsRef)==null?void 0:N[f.value])==null||z.scrollIntoView({behavior:"smooth",block:"nearest"}),(U=($=(H=D.value)==null?void 0:H.listElementsRef)==null?void 0:$[f.value])==null||U.classList.add("autocomplete-keydown-background"),f.value>0&&((Y=(q=(W=D.value)==null?void 0:W.listElementsRef)==null?void 0:q[f.value-1])==null||Y.classList.remove("autocomplete-keydown-background"),f.value+1===((we=(ge=D.value)==null?void 0:ge.listElementsRef)==null?void 0:we.length)&&y&&((Ce=B.value)==null||Ce.scrollTo(0,((Se=B.value)==null?void 0:Se.scrollHeight)+10)))},20);return;case 38:if(f.value<=0||(w.value?((he=M.value)==null||he.classList.remove("autocomplete-keydown-viewmore"),w.value=!1):f.value=f.value-1,a=(be=(ve=(ye=D.value)==null?void 0:ye.listElementsRef)==null?void 0:ve[f.value])==null?void 0:be.id,a==null)||!a.includes("autocomplete-li-element-")||(r=Number(a.substring(a.lastIndexOf("-")+1)),typeof r!="number"))return;setTimeout(()=>{var I,N,z,H,$,U,W,q,Y;(z=(N=(I=D.value)==null?void 0:I.listElementsRef)==null?void 0:N[f.value])==null||z.scrollIntoView({behavior:"smooth",block:"nearest"}),(U=($=(H=D.value)==null?void 0:H.listElementsRef)==null?void 0:$[f.value])==null||U.classList.add("autocomplete-keydown-background"),(Y=(q=(W=D.value)==null?void 0:W.listElementsRef)==null?void 0:q[f.value+1])==null||Y.classList.remove("autocomplete-keydown-background")},20);return;default:return}}function ee(){G()}function Ie(){var a,r,i,s,u,h,C,L;const t=V.value.length>0?[...V.value]:[...p.value];if(p.value.length===o.value||V.value.length===o.value){if(!k.value&&e.isApiLoad&&e.triggerApiLoadEvent&&typeof e.triggerApiLoadEvent=="function"){if(e.optViewMoreOnlyForApiCall){y.value=!0,setTimeout(()=>{var g;(g=B.value)==null||g.scrollTo(0,B.value.scrollHeight+10)},75);return}e.triggerApiLoadEvent({dataIndex:p.value.length}),k.value=!0,e.showLoadingSpinner&&(j.value=!0,setTimeout(()=>{var g;(g=B.value)==null||g.scrollTo(0,B.value.scrollHeight+10)},75))}return}if(t.length>n.value.length){if(e.loadAllDataAtOnce){n.value=[...t];return}const g=Math.ceil(n.value.length/e.scrollThreshold);let c;if(e.isScrollThresholdRequired&&g>=e.initialVisibleData){const m=[...n.value];m.splice(0,e.initialVisibleData),c=t.slice(o.value,o.value+e.initialVisibleData),c.length>0&&(o.value=o.value+c.length,b.value&&((r=(a=d.value)==null?void 0:a.searchValue)!=null&&r.value)&&((s=(i=d.value)==null?void 0:i.searchValue)==null?void 0:s.value)!==""&&(e.objectProperty?c=c.filter(v=>{var E,F,R;return(R=v[e.objectProperty])==null?void 0:R.toString().toLowerCase().includes((F=(E=e.defaultValue)==null?void 0:E.toString())==null?void 0:F.toLowerCase().trim())}):c=c.filter(v=>{var E,F;return v==null?void 0:v.toString().toLowerCase().includes((F=(E=e.defaultValue)==null?void 0:E.toString())==null?void 0:F.toLowerCase().trim())})),n.value=[...m,...c])}else c=t.slice(o.value,o.value+e.initialVisibleData),c.length>0&&(o.value=o.value+c.length,b.value&&((h=(u=d.value)==null?void 0:u.searchValue)!=null&&h.value)&&((L=(C=d.value)==null?void 0:C.searchValue)==null?void 0:L.value)!==""&&(e.objectProperty?c=c.filter(m=>{var v,E,F,R,T;return(T=m[e.objectProperty])==null?void 0:T.toString().toLowerCase().includes((R=(F=(E=(v=d.value)==null?void 0:v.searchValue)==null?void 0:E.value)==null?void 0:F.toString())==null?void 0:R.toLowerCase().trim())}):c=c.filter(m=>{var v,E,F,R;return m==null?void 0:m.toString().toLowerCase().includes((R=(F=(E=(v=d.value)==null?void 0:v.searchValue)==null?void 0:E.value)==null?void 0:F.toString())==null?void 0:R.toLowerCase().trim())})),n.value=[...n.value,...c]);setTimeout(()=>{var m;(m=B.value)==null||m.scrollTo(0,Math.ceil(B.value.scrollHeight*50/100))},75)}}function te(){var t,a,r,i;try{const s=[...p.value];if(e.loadAllDataAtOnce){n.value=s,o.value=s.length,A();return}if(e.initialVisibleData!==void 0&&s.length<=e.initialVisibleData){n.value=s,o.value=s.length,A();return}let u=s.slice(0,e.initialVisibleData);o.value=u.length,b.value&&((a=(t=d.value)==null?void 0:t.searchValue)!=null&&a.value)&&((i=(r=d.value)==null?void 0:r.searchValue)==null?void 0:i.value)!==""&&(e.objectProperty?u=u.filter(h=>{var C,L,g,c,m;return(m=h[e.objectProperty])==null?void 0:m.toString().toLowerCase().includes((c=(g=(L=(C=d.value)==null?void 0:C.searchValue)==null?void 0:L.value)==null?void 0:g.toString())==null?void 0:c.toLowerCase().trim())}):u=u.filter(h=>{var C,L,g,c;return h==null?void 0:h.toString().toLowerCase().includes((c=(g=(L=(C=d.value)==null?void 0:C.searchValue)==null?void 0:L.value)==null?void 0:g.toString())==null?void 0:c.toLowerCase().trim())})),n.value=u,A();return}catch(s){console.log(s)}}const Ne=t=>{var a,r,i,s;if(!(n.value.length<=0)){if(t.target.offsetHeight+t.target.scrollTop>=t.target.scrollHeight){if(e.totalRecords&&o.value>=e.totalRecords){y.value=!1;return}x()}else e.isScrollThresholdRequired&&t.target.scrollTop<10&&n.value.length>e.initialVisibleData&&ae();t.target.scrollTop===0&&(f.value!==-1&&((i=(r=(a=D.value)==null?void 0:a.listElementsRef)==null?void 0:r[f.value])==null||i.classList.remove("autocomplete-keydown-background")),w.value&&((s=M.value)==null||s.classList.remove("autocomplete-keydown-viewmore")),f.value=-1,w.value=!1)}},le=(t,a)=>{var r,i;a&&e.isApiLoad&&!k.value&&typeof e.triggerApiLoadEvent=="function"&&(e.triggerApiLoadEvent({dataIndex:p.value.length}),(i=(r=d.value)==null?void 0:r.searchValue)==null||i.focus(),k.value=!0,e.showLoadingSpinner&&(j.value=!0))},G=()=>{var r,i;const t=(r=J.value)==null?void 0:r.style,a=(i=document.getElementById("searchInput"))==null?void 0:i.clientWidth;t&&a&&(t.width=a+"px")},ze=t=>{var a,r,i,s,u,h,C,L,g,c,m;if(window.removeEventListener("keydown",_),!((r=(a=t==null?void 0:t.relatedTarget)==null?void 0:a.classList)!=null&&r.contains("arrow"))){if((s=(i=t==null?void 0:t.relatedTarget)==null?void 0:i.classList)!=null&&s.contains("unorder-list")){(h=(u=d.value)==null?void 0:u.searchValue)==null||h.focus();return}if(!((L=(C=t==null?void 0:t.relatedTarget)==null?void 0:C.classList)!=null&&L.contains("disable-list-element"))&&!((c=(g=t==null?void 0:t.relatedTarget)==null?void 0:g.classList)!=null&&c.contains("autocomplete-data-list"))){if(e.inspectAutoCompleteList){console.warn("You have turned off blur event in autocomplete module which will not close autocomplete list. Hope you know what you are doing. Update to false after inspect is complete.");return}S.value=!1,n.value=[],K(),(m=B.value)==null||m.scrollTo(0,0),f.value=0,e.triggerBlurEvent&&typeof e.triggerBlurEvent=="function"&&e.triggerBlurEvent(t)}}},He=t=>{var a,r,i;e.isAutoCompleteDisabled||(S.value=!0,G(),e.triggerOnFocusEvent&&typeof e.triggerOnFocusEvent=="function"&&e.triggerOnFocusEvent(t),n.value.length<=0&&(b.value&&((r=(a=d.value)==null?void 0:a.searchValue)!=null&&r.value)&&((i=d.value.searchValue)==null?void 0:i.value)!==""?oe():te()),window.addEventListener("keydown",_))},$e=t=>{e.isAutoCompleteDisabled||(d.value.searchValue.value="",e.triggerClearSelectionEvent&&typeof e.triggerClearSelectionEvent=="function"&&e.triggerClearSelectionEvent(t))},ae=()=>{var a,r;const t=b.value&&V.value.length>0&&((r=(a=d.value)==null?void 0:a.searchValue)!=null&&r.value)?V.value.slice(0,e.initialVisibleData):p.value.slice(0,e.initialVisibleData);n.value=t,o.value=t.length};function Ue(t){return new Promise((a,r)=>{var s,u;const i=t((u=(s=d.value)==null?void 0:s.searchValue)==null?void 0:u.value,p.value);i&&a(i),r([])})}const oe=t=>{var a,r,i,s,u,h,C,L;try{if(!((r=(a=d.value)==null?void 0:a.searchValue)!=null&&r.value)||((s=(i=d.value)==null?void 0:i.searchValue)==null?void 0:s.value.trim())===""){V.value=[],ae(),A(),(u=B.value)==null||u.scrollTo(0,0);return}if(b.value||(b.value=!0),o.value=0,S.value||(S.value=!0),e.searchFn&&typeof e.searchFn=="function"){let c=Ue(e.searchFn);c.then(m=>{if(m&&m.length>0){V.value=m;const v=m.slice(0,e.initialVisibleData);o.value=o.value+v.length,n.value=[...v],A();return}n.value=[],V.value=[],o.value=0,A()}),c.catch(m=>{n.value=[],V.value=[],o.value=0,A()})}if(e.objectProperty){let c;if(!Q())c=p.value.filter(m=>{var v,E,F;return(F=m[e.objectProperty])==null?void 0:F.toString().toLowerCase().includes((E=(v=d.value)==null?void 0:v.searchValue)==null?void 0:E.value.toLowerCase().trim())});else if(typeof((h=e.additionalData)==null?void 0:h.relativeSearch)=="object"){const m=(C=e.additionalData)==null?void 0:C.relativeSearch;if(typeof m=="object"&&Object.prototype.hasOwnProperty.call(m,"customRelativeSearchFunction")&&typeof m.customRelativeSearchFunction=="function")return(L=qe())==null?void 0:L.then(v=>{re(v)}).catch(v=>{console.log(v),n.value=[]})}c=Ye(),re(c);return}const g=p.value.filter(c=>{var m,v;return c==null?void 0:c.toString().toLowerCase().includes((v=(m=d.value)==null?void 0:m.searchValue)==null?void 0:v.value.toLowerCase().trim())});if(g.length>0){const c=g.slice(0,e.initialVisibleData);o.value=o.value+c.length,V.value=g,n.value=c,A();return}n.value=[];return}catch(g){console.log(g)}};function re(t){if(t&&t.length>0){const a=t.slice(0,e.initialVisibleData);o.value=o.value+a.length,V.value=t,n.value=a,A();return}n.value=[]}const We=t=>{var a,r;e.isAutoCompleteDisabled||(S.value?S.value=!1:(r=(a=d.value)==null?void 0:a.searchValue)==null||r.focus())},K=()=>{var t,a,r,i;f.value!==-1&&((r=(a=(t=D.value)==null?void 0:t.listElementsRef)==null?void 0:a[f.value])==null||r.classList.remove("autocomplete-keydown-background")),w.value&&((i=M.value)==null||i.classList.remove("autocomplete-keydown-viewmore")),f.value=-1,w.value=!1,D.value.listElementsRef=[]},ie=(t,a,r)=>{if(!r)return!1;a!=null&&(e.disableProperty&&a[e.disableProperty]||e.disableListFn!==void 0&&e.disableListFn!==null&&e.disableListFn(t,a)||(e.objectProperty?d.value.searchValue.value=a[e.objectProperty]:d.value.searchValue.value=a,S.value=!1,b.value=!1,n.value=[],V.value=[],y.value=!1,K(),e.broadcastSelectedValue&&e.broadcastSelectedValue(a)))};l.onUnmounted(()=>{window.removeEventListener("resize",ee)});function Q(){return!!(e.additionalData&&e.additionalData.relativeSearch)}function ne(){var t,a;return typeof((t=e.additionalData)==null?void 0:t.relativeSearch)=="object"&&typeof((a=e.additionalData.relativeSearch)==null?void 0:a.setDefaultValueWithACustomFunction)=="function"}function se(){return new Promise((t,a)=>{var i,s,u,h;const r=(h=(i=e.additionalData)==null?void 0:i.relativeSearch)==null?void 0:h.setDefaultValueWithACustomFunction((u=(s=d.value)==null?void 0:s.searchValue)==null?void 0:u.value);r&&t(r),a([])})}function qe(){var a;const t=(a=e.additionalData)==null?void 0:a.relativeSearch;if(typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"customRelativeSearchFunction")&&typeof t.customRelativeSearchFunction=="function")return new Promise((r,i)=>{var u,h;const s=t.customRelativeSearchFunction((h=(u=d.value)==null?void 0:u.searchValue)==null?void 0:h.value);s&&r(s),i([])})}function Ye(){var r,i,s;const t=(r=e.additionalData)==null?void 0:r.relativeSearch;if(!t)return[];let a=[];if(typeof t=="boolean"&&t===!0)for(const u in p.value[0])a.push(u);else if(typeof t=="object"&&Object.keys(t).length>0){if(Object.prototype.hasOwnProperty.call(t,"includeOnly")&&t.includeOnly.length>0)a=[...t.includeOnly];else for(const u in p.value[0])a.push(u);Object.prototype.hasOwnProperty.call(t,"customRelativeSearchFunction")&&t.customRelativeSearchFunction}return a.length>0?Ge((s=(i=d.value)==null?void 0:i.searchValue)==null?void 0:s.value.toLowerCase().trim(),a):[]}function Ge(t,a){return t?p.value.filter(r=>a.some(i=>r[i].toString().toLowerCase().includes(t))):[]}return l.onMounted(()=>{if(te(),e.defaultValue)if(e.objectProperty){let t;if(typeof e.defaultValue=="object")if(Q()){if(!ne())return;se().then(a=>{a&&(a!=null&&a[e.objectProperty])&&(d.value.searchValue.value=a[e.objectProperty])}).catch(a=>console.log(a));return}else t=p.value.find(a=>{var r,i,s,u;return((i=(r=a[e.objectProperty].toString())==null?void 0:r.toLowerCase())==null?void 0:i.trim())===((u=(s=e.defaultValue[e.objectProperty].toString())==null?void 0:s.toLowerCase())==null?void 0:u.trim())});else if(Q()){if(!ne())return;se().then(a=>{a&&(a!=null&&a[e.objectProperty])&&(d.value.searchValue.value=a[e.objectProperty])}).catch(a=>console.log(a));return}else t=p.value.find(a=>{var r,i,s,u;return((i=(r=a[e.objectProperty].toString())==null?void 0:r.toLowerCase())==null?void 0:i.trim())===((u=(s=e.defaultValue.toString())==null?void 0:s.toLowerCase())==null?void 0:u.trim())});t&&(d.value.searchValue.value=t[e.objectProperty])}else{let t;typeof e.defaultValue=="object"?t=p.value.find(a=>{var r,i,s,u;return((i=(r=a==null?void 0:a.toString())==null?void 0:r.toLowerCase())==null?void 0:i.trim())===((u=(s=e.defaultValue[e.objectProperty].toString())==null?void 0:s.toLowerCase())==null?void 0:u.trim())}):t=p.value.find(a=>{var r,i,s,u;return((i=(r=a.toString())==null?void 0:r.toLowerCase())==null?void 0:i.trim())===((u=(s=e.defaultValue.toString())==null?void 0:s.toLowerCase())==null?void 0:u.trim())}),t&&(d.value.searchValue.value=t)}window.addEventListener("resize",ee),G()}),(t,a)=>{var r,i,s,u,h,C,L;return l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createVNode(De,{ref_key:"searchValue",ref:d,placeHolder:e.placeHolder,"is-auto-complete-disabled":e.isAutoCompleteDisabled,"input-field-class":(r=e.customClass)==null?void 0:r.inputFieldClass,"input-field-style":(i=e.customStyle)==null?void 0:i.inputFieldStyle,"aria-input-field":(s=e.aria)==null?void 0:s.ariaInputField,"aria-role":(u=e.aria)==null?void 0:u.ariaRole,"aria-role-description":(h=e.aria)==null?void 0:h.ariaRoleDescription,"on-focus":He,"on-blur":ze,"clear-search":$e,"handle-dropdown-click":We,"showdrop-down-arrow":e.showdropDownArrow,"show-clear-option":e.showClearOption,"on-input":oe},null,8,["placeHolder","is-auto-complete-disabled","input-field-class","input-field-style","aria-input-field","aria-role","aria-role-description","showdrop-down-arrow","show-clear-option"]),l.createElementVNode("div",{class:l.normalizeClass(["auto-complete-list",[t.customClass&&t.customClass.listContainerClass?t.customClass.listContainerClass:"",S.value?"showDropdown":""]]),ref_key:"listContainer",ref:J,"aria-label":(C=t.aria)!=null&&C.ariaListContainer?t.aria.ariaListContainer:"List container",style:l.normalizeStyle(t.customStyle&&t.customStyle.listContainerStyle?t.customStyle.listContainerStyle:{})},[l.createElementVNode("div",Oe,[S.value?(l.openBlock(),l.createElementBlock("ul",{key:0,id:"list-id",class:l.normalizeClass(["unorder-list",t.customClass&&t.customClass.dropdownUnorderedListClass?t.customClass.dropdownUnorderedListClass:""]),ref_key:"unOrderedList",ref:B,onScroll:Ne,"aria-label":(L=t.aria)!=null&&L.ariaULList?t.aria.ariaULList:"Parent List",style:l.normalizeStyle(t.customStyle&&t.customStyle.dropdownUnorderedListStyle?t.customStyle.dropdownUnorderedListStyle:{})},[l.createVNode(Ae,{ref_key:"listElementsRef",ref:D,isOnFocus:S.value,customClass:t.customClass,customStyle:t.customStyle,filteredData:n.value,disableListFn:t.disableListFn,onSelect:ie,objectProperty:t.objectProperty,disableProperty:t.disableProperty,showLoadingSpinner:t.showLoadingSpinner,noSearchResultMessage:t.noSearchResultMessage,aria:t.aria,isCustomSpinner:t.isCustomSpinner,onViewMore:le,viewMoreText:t.viewMoreText,isEventEmitted:k.value,showSpinner:j.value,isApiLoad:t.isApiLoad,displayViewMoreButton:y.value,viewMoreRef:M.value,optViewMoreOnlyForApiCall:t.optViewMoreOnlyForApiCall},null,8,["isOnFocus","customClass","customStyle","filteredData","disableListFn","objectProperty","disableProperty","showLoadingSpinner","noSearchResultMessage","aria","isCustomSpinner","viewMoreText","isEventEmitted","showSpinner","isApiLoad","displayViewMoreButton","viewMoreRef","optViewMoreOnlyForApiCall"])],46,je)):l.createCommentVNode("",!0)])],14,Pe)],64)}}}),Te=l.defineComponent({__name:"Autocomplete",props:{dropdownData:{},inputLabel:{default:"Enter or Search value"},showInputlabel:{type:Boolean,default:!1},placeHolder:{},objectProperty:{},defaultValue:{},initialVisibleData:{default:1e3},scrollThreshold:{default:3},totalRecords:{},disableProperty:{},noSearchResultMessage:{default:"No results found."},isAutoCompleteDisabled:{type:Boolean,default:!1},isCustomSpinner:{type:Boolean,default:!1},showLoadingSpinner:{type:Boolean,default:!0},showdropDownArrow:{type:Boolean,default:!0},showClearOption:{type:Boolean,default:!0},customClass:{},customStyle:{},searchFn:{},disableListFn:{},isScrollThresholdRequired:{type:Boolean,default:!0},inspectAutoCompleteList:{type:Boolean,default:!1},viewMoreText:{default:"View more"},optViewMoreOnlyForApiCall:{type:Boolean,default:!1},aria:{},triggerOnFocusEvent:{},triggerBlurEvent:{},triggerApiLoadEvent:{},broadcastSelectedValue:{},triggerClearSelectionEvent:{},isApiLoad:{type:Boolean,default:!1},loadAllDataAtOnce:{type:Boolean,default:!1},additionalData:{}},setup(P){const e=P;return l.onBeforeMount(()=>{if(!Array.isArray(e.dropdownData)&&e.dropdownData!==void 0)throw Error("Expected dropdownData to be an array.");if(e.disableProperty&&!e.objectProperty)throw Error("Expected objectProperty to be available when disableProperty is set.")}),(p,n)=>{var V,o,k,y;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["auto-complete-textfield-container",p.customClass&&p.customClass.parentContainerClass?p.customClass.parentContainerClass:""]),style:l.normalizeStyle(p.customStyle&&p.customStyle.parentContainerStyle?p.customStyle.parentContainerStyle:{})},[e.showInputlabel?(l.openBlock(),l.createBlock(Ve,{key:0,"input-label":e.inputLabel,"input-label-container-style":(V=e.customStyle)==null?void 0:V.inputLabelContainerStyle,"input-label-class":(o=e.customClass)==null?void 0:o.inputLabelClass,"input-label-style":(k=e.customStyle)==null?void 0:k.inputLabelStyle,"aria-input-label":(y=e.aria)==null?void 0:y.ariaInputLabel},null,8,["input-label","input-label-container-style","input-label-class","input-label-style","aria-input-label"])):l.createCommentVNode("",!0),l.createVNode(Me,{"dropdown-data":p.dropdownData,placeHolder:e.placeHolder,"object-property":e.objectProperty,"default-value":e.defaultValue,"initial-visible-data":e.initialVisibleData,"scroll-threshold":e.scrollThreshold,"total-records":e.totalRecords,"disable-property":e.disableProperty,"no-search-result-message":e.noSearchResultMessage,"is-auto-complete-disabled":e.isAutoCompleteDisabled,"is-custom-spinner":e.isCustomSpinner,"show-loading-spinner":e.showLoadingSpinner,"showdrop-down-arrow":e.showdropDownArrow,"show-clear-option":e.showClearOption,"custom-class":e.customClass,"custom-style":e.customStyle,"search-fn":e.searchFn,"disable-list-fn":e.disableListFn,"is-scroll-threshold-required":e.isScrollThresholdRequired,"inspect-auto-complete-list":e.inspectAutoCompleteList,"view-more-text":e.viewMoreText,"opt-view-more-only-for-api-call":e.optViewMoreOnlyForApiCall,aria:e.aria,"trigger-on-focus-event":e.triggerOnFocusEvent,"trigger-blur-event":e.triggerBlurEvent,"trigger-api-load-event":e.triggerApiLoadEvent,"trigger-clear-selection-event":e.triggerClearSelectionEvent,"broadcast-selected-value":e.broadcastSelectedValue,isApiLoad:e.isApiLoad,"load-all-data-at-once":e.loadAllDataAtOnce,"additional-data":e.additionalData},null,8,["dropdown-data","placeHolder","object-property","default-value","initial-visible-data","scroll-threshold","total-records","disable-property","no-search-result-message","is-auto-complete-disabled","is-custom-spinner","show-loading-spinner","showdrop-down-arrow","show-clear-option","custom-class","custom-style","search-fn","disable-list-fn","is-scroll-threshold-required","inspect-auto-complete-list","view-more-text","opt-view-more-only-for-api-call","aria","trigger-on-focus-event","trigger-blur-event","trigger-api-load-event","trigger-clear-selection-event","broadcast-selected-value","isApiLoad","load-all-data-at-once","additional-data"])],6)}}});O.Autocomplete=Te,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})});