UNPKG

vue-next-select

Version:

The complete selecting solution for Vue.js 3.x

2 lines (1 loc) 25 kB
import{ref as e,onMounted as n,onUpdated as t,openBlock as a,createElementBlock as l,renderSlot as o,createElementVNode as u,withKeys as i,withModifiers as r,inject as c,mergeProps as d,Fragment as s,renderList as v,normalizeClass as p,toDisplayString as f,createCommentVNode as g,reactive as y,toRef as m,watchEffect as h,computed as b,defineComponent as B,getCurrentInstance as I,watch as x,nextTick as w,provide as M,resolveComponent as k,createVNode as O,withCtx as F,createBlock as V,withDirectives as S,vShow as A}from"vue";function T(e){return(T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function C(e){return function(e){if(Array.isArray(e))return N(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||D(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function D(e,n){if(e){if("string"==typeof e)return N(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?N(e,n):void 0}}function N(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=new Array(n);t<n;t++)a[t]=e[t];return a}function E(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=D(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var a=0,l=function(){};return{s:l,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,u=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return u=e.done,e},e:function(e){i=!0,o=e},f:function(){try{u||null==t.return||t.return()}finally{if(i)throw o}}}}var L={inheritAttrs:!1,name:"vue-input",props:{autocomplete:{required:!1,type:String},modelValue:{required:!0,type:String},placeholder:{required:!0,type:String},disabled:{required:!0,type:Boolean},tabindex:{required:!0,type:Number},autofocus:{required:!0,type:Boolean},comboboxUid:{required:!0,type:Number}},emits:["update:modelValue","input","change","focus","blur","escape"],setup:function(a,l){var o=e(null);return n((function(){a.autofocus&&o.value.focus()})),t((function(){a.autofocus&&o.value.focus()})),{handleInput:function(e){l.emit("input",e),l.emit("update:modelValue",e.target.value)},handleChange:function(e){l.emit("change",e),l.emit("update:modelValue",e.target.value)},handleFocus:function(e){l.emit("focus",e)},handleBlur:function(e){l.emit("blur",e)},input:o,handleEscape:function(e){o.value.blur(),l.emit("escape",e)}}}},j={class:"vue-input"},$=["autocomplete","modelValue","placeholder","disabled","tabindex","autofocus","aria-controls","aria-labelledby"];L.render=function(e,n,t,c,d,s){return a(),l("div",j,[o(e.$slots,"prepend"),u("input",{ref:"input",autocomplete:t.autocomplete,modelValue:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,onInput:n[0]||(n[0]=function(){return c.handleInput&&c.handleInput.apply(c,arguments)}),onChange:n[1]||(n[1]=function(){return c.handleChange&&c.handleChange.apply(c,arguments)}),onFocus:n[2]||(n[2]=function(){return c.handleFocus&&c.handleFocus.apply(c,arguments)}),onBlur:n[3]||(n[3]=function(){return c.handleBlur&&c.handleBlur.apply(c,arguments)}),onKeyup:n[4]||(n[4]=i(r((function(){return c.handleEscape&&c.handleEscape.apply(c,arguments)}),["exact"]),["esc"])),tabindex:t.tabindex,autofocus:t.autofocus,"aria-autocomplete":"list","aria-controls":"vs".concat(t.comboboxUid,"-listbox"),"aria-labelledby":"vs".concat(t.comboboxUid,"-combobox")},null,40,$),o(e.$slots,"append")])},L.__file="src/components/input.vue";var U={inheritAttrs:!1,name:"vue-tags",props:{modelValue:{required:!0,type:Array,validator:function(e){return e.every((function(e){return void 0!==T(e.key)&&void 0!==e.label&&"boolean"==typeof e.selected}))}},collapseTags:{type:Boolean}},emits:["click"],setup:function(e,n){return{dataAttrs:c("dataAttrs"),handleClick:function(e){n.emit("click",e)}}}};U.render=function(e,n,t,i,c,y){return a(),l("ul",d({class:["vue-tags",{collapsed:t.collapseTags}],onMousedown:n[0]||(n[0]=r((function(){}),["prevent"])),tabindex:"-1",onClick:n[1]||(n[1]=function(){return i.handleClick&&i.handleClick.apply(i,arguments)})},i.dataAttrs),[(a(!0),l(s,null,v(t.modelValue,(function(n){return a(),l(s,{key:n.key},[n.group?g("v-if",!0):(a(),l("li",{key:0,class:p(["vue-tag",{selected:n.selected}])},[o(e.$slots,"default",{option:n},(function(){return[u("span",null,f(n.label),1)]}))],2))],64)})),128))],16)},U.__file="src/components/tags.vue";var z={inheritAttrs:!1,name:"vue-dropdown",props:{modelValue:{required:!0,type:Array,validator:function(e){return e.every((function(e){return void 0!==T(e.key)&&void 0!==e.label&&"boolean"==typeof e.selected}))}},comboboxUid:{required:!0,type:Number},maxHeight:{required:!0},highlightedOriginalIndex:{required:!0}},emits:["click-item","mouseenter"],setup:function(e,n){return{dataAttrs:c("dataAttrs"),handleClickItem:function(e,t){t.disabled||n.emit("click-item",e,t)},handleMouseenter:function(e,t){n.emit("mouseenter",e,t)}}}},P=["id","aria-multiselectable","aria-busy","aria-disabled"],q=["onClick","onMouseenter","id","aria-selected","aria-disabled"];z.render=function(e,n,t,i,c,y){return a(),l("ul",d({class:"vue-dropdown",style:{maxHeight:t.maxHeight+"px"},onMousedown:n[0]||(n[0]=r((function(){}),["prevent"]))},i.dataAttrs,{role:"listbox",id:"vs".concat(t.comboboxUid,"-listbox"),"aria-multiselectable":i.dataAttrs["data-multiple"],"aria-busy":i.dataAttrs["data-loading"],"aria-disabled":i.dataAttrs["data-disabled"]}),[(a(!0),l(s,null,v(t.modelValue,(function(n,r){return a(),l(s,{key:n.key},[n.visible&&!1===n.hidden?(a(),l("li",{key:0,onClick:function(e){return i.handleClickItem(e,n)},class:p(["vue-dropdown-item",{selected:n.selected,disabled:n.disabled,highlighted:n.originalIndex===t.highlightedOriginalIndex,group:n.group}]),onMouseenter:function(e){return i.handleMouseenter(e,n)},role:"option",id:"vs".concat(t.comboboxUid,"-option-").concat(r),"aria-selected":!!n.selected||!!n.disabled&&void 0,"aria-disabled":n.disabled},[o(e.$slots,"default",{option:n},(function(){return[u("span",null,f(n.label),1)]}))],42,q)):g("v-if",!0)],64)})),128))],16,P)},z.__file="src/components/dropdown.vue";var H=function(e,n,t){var a=t.valueBy;return a(e)===a(n)},_=function(e,n,t){var a=t.valueBy;return e.some((function(e){return H(e,n,{valueBy:a})}))},W=function(e,n,t){var a=t.valueBy;return e.find((function(e){return a(e)===n}))},Z=function(e,n,t){var a=t.max,l=t.valueBy;return _(e,n,{valueBy:l})||e.length>=a?e:e.concat(n)},R=function(e,n,t){var a=t.min,l=t.valueBy;return!1===_(e,n,{valueBy:l})||e.length<=a?e:e.filter((function(e){return!1===H(e,n,{valueBy:l})}))},G=function(e){return b((function(){return"function"==typeof e.value?e.value:"string"==typeof e.value?function(n){return e.value.split(".").reduce((function(e,n){return e[n]}),n)}:function(e){return e}}))},Q=function(e,n){var t=b((function(){return e.value.reduce((function(e,n){return Object.assign(e,(t={},a=n.originalIndex,l=n,a in t?Object.defineProperty(t,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):t[a]=l,t));var t,a,l}),{})})),a=function(e){var a=t.value[e];return void 0!==a&&(!1!==l(a)&&(n.value=e,!0))},l=function(e){return!e.disabled&&!e.hidden&&e.visible},o=b((function(){return e.value.some((function(e){return l(e)}))}));return h((function(){if(!1===o.value&&(n.value=null),null!==n.value&&e.value.length<=n.value){var t,u=E(e.value.reverse());try{for(u.s();!(t=u.n()).done;){var i=t.value;if(a(i.originalIndex))break}}catch(e){u.e(e)}finally{u.f()}}if(null===n.value||!1===l(e.value[n.value])){var r,c=E(e.value);try{for(c.s();!(r=c.n()).done;){var d=r.value;if(a(d.originalIndex))break}}catch(e){c.e(e)}finally{c.f()}}})),{pointerForward:function(){if(!1!==o.value&&null!==n.value)for(var t=n.value+1,l=0;t!==n.value&&l++<e.value.length&&(e.value.length<=t&&(t=0),!a(t));)++t},pointerBackward:function(){if(!1!==o.value&&null!==n.value)for(var t=n.value-1,l=0;t!==n.value&&l++<e.value.length&&(t<0&&(t=e.value.length-1),!a(t));)--t},pointerSet:a}};var Y=B({name:"vue-select",inheritAttrs:!1,props:{modelValue:{required:!0},emptyModelValue:{},options:{required:!0,type:Array},labelBy:{type:[String,Function]},valueBy:{type:[String,Function]},disabledBy:{default:"disabled",type:[String,Function]},groupBy:{default:"group",type:[String,Function]},visibleOptions:{type:Array,default:null},multiple:{default:!1,type:Boolean},min:{default:0,type:Number},max:{default:1/0,type:Number},searchable:{default:!1,type:Boolean},searchPlaceholder:{default:"Type to search",type:String},clearOnSelect:{default:!1,type:Boolean},clearOnClose:{default:!1,type:Boolean},taggable:{default:!1,type:Boolean},collapseTags:{default:!1,type:Boolean},autocomplete:{default:"off",type:String},disabled:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},closeOnSelect:{default:!1,type:Boolean},hideSelected:{default:!1,type:Boolean},placeholder:{default:"Select option",type:String},tabindex:{default:0,type:Number},autofocus:{default:!1,type:Boolean},maxHeight:{default:300,type:Number},openDirection:{type:String,validator:function(e){return["top","bottom"].includes(e)}}},emits:["selected","removed","update:modelValue","focus","blur","toggle","opened","closed","search:input","search:change","search:focus","search:blur"],setup:function(n,t){var a=function(e){var n=y({}),t=G(m(e,"labelBy"));h((function(){return n.labelBy=t.value}));var a=G(m(e,"valueBy"));h((function(){return n.valueBy=a.value}));var l=G(m(e,"disabledBy"));h((function(){return n.disabledBy=l.value}));var o=G(m(e,"groupBy"));h((function(){return n.groupBy=o.value}));var u=b((function(){return e.multiple?e.min:Math.min(1,e.min)}));h((function(){return n.min=u.value}));var i=b((function(){return e.multiple?e.max:1}));return h((function(){return n.max=i.value})),h((function(){return n.options=e.options})),n}(n),l=b((function(){var e;return null!==(e=n.emptyModelValue)&&void 0!==e?e:null})),o=I(),u=e(),i=e(),r=e(),c=b((function(){var e;return null===(e=r.value)||void 0===e?void 0:e._.refs.input})),d=e(!1);x((function(){return d.value}),(function(){var e,a;d.value?(t.emit("opened"),t.emit("focus"),n.searchable?(c.value!==document.activeElement&&c.value.focus(),t.emit("search:focus")):null===(e=u.value)||void 0===e||e.focus()):(n.searchable?(c.value===document.activeElement&&c.value.blur(),n.clearOnClose&&D(),t.emit("search:blur")):null===(a=u.value)||void 0===a||a.blur(),t.emit("closed"),t.emit("blur")),t.emit("toggle")}));var s=function(){n.disabled||(d.value=!0)},v=function(e){var n;(null===(n=u.value)||void 0===n?void 0:n.contains(null==e?void 0:e.relatedTarget))?setTimeout((function(){var e;null===(e=u.value)||void 0===e||e.focus()})):d.value=!1};x((function(){return n.disabled}),(function(){return v()}));var p=e(""),f=b((function(){return new RegExp(p.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i")})),g=b((function(){return p.value?a.options.filter((function(e){return f.value.test(a.labelBy(e))})):void 0})),B=e([]),k=b((function(){return new Set(B.value.map((function(e){return a.valueBy(e)})))})),O=function(){if(n.multiple){if(!1===Array.isArray(n.modelValue))return!1;if(B.value.length!==n.modelValue.length)return!1;if(Object.keys(B.value).some((function(e){return B.value[e]!==W(a.options,n.modelValue[e],{valueBy:a.valueBy})})))return!1}else{if(0===B.value.length&&n.modelValue!==l.value)return!1;if(1===B.value.length&&n.modelValue===l.value)return!1;if(B.value[0]!==W(a.options,n.modelValue,{valueBy:a.valueBy}))return!1}return!0},F=function(){if(!O()){B.value=[];var e,t=E(n.multiple?n.modelValue:n.modelValue===l.value?[]:[n.modelValue]);try{for(t.s();!(e=t.n()).done;){var o=e.value,u=W(a.options,o,{valueBy:a.valueBy});!1!==_(a.options,u,{valueBy:a.valueBy})&&(B.value=Z(B.value,u,{max:1/0,valueBy:a.valueBy}))}}catch(e){t.e(e)}finally{t.f()}}};F(),x((function(){return n.modelValue}),(function(){return F()}),{deep:!0}),x((function(){return a.options}),(function(){B.value=a.options.filter((function(e){return k.value.has(a.valueBy(e))}))}),{deep:!0});var V,S=function(e,n){(n=n.originalOption).value.every((function(e){var n=W(a.options,e,{valueBy:a.valueBy});return _(B.value,n,{valueBy:a.valueBy})}))?n.value.forEach((function(e){var n=W(a.options,e,{valueBy:a.valueBy});B.value=R(B.value,n,{min:a.min,valueBy:a.valueBy}),t.emit("removed",n)})):n.value.forEach((function(e){var n=W(a.options,e,{valueBy:a.valueBy});_(B.value,n,{valueBy:a.valueBy})||(B.value=Z(B.value,n,{max:a.max,valueBy:a.valueBy}),t.emit("selected",n))}))},A=function(e,l){if(l=l.originalOption,_(B.value,l,{valueBy:a.valueBy}))B.value=R(B.value,l,{min:a.min,valueBy:a.valueBy}),t.emit("removed",l);else{if(!n.multiple&&1===B.value.length){var o=B.value[0];B.value=R(B.value,B.value[0],{min:0,valueBy:a.valueBy}),t.emit("removed",o)}B.value=Z(B.value,l,{max:a.max,valueBy:a.valueBy}),t.emit("selected",l)}},T=function(){if(!O()){var e=B.value.map((function(e){return a.valueBy(e)}));n.multiple?t.emit("update:modelValue",e):e.length?t.emit("update:modelValue",e[0]):t.emit("update:modelValue",l.value)}},D=function(){c.value.value="",c.value.dispatchEvent(new Event("input")),c.value.dispatchEvent(new Event("change"))},N=b((function(){var e,t;return null!==(t=null!==(e=n.visibleOptions)&&void 0!==e?e:g.value)&&void 0!==t?t:a.options})),L=e(0),j=b((function(){var e,t=new Set(N.value.map((function(e){return a.valueBy(e)}))),l=a.options.map((function(e,l){var o,u={key:a.valueBy(e),label:a.labelBy(e),group:null!==(o=a.groupBy(e))&&void 0!==o&&o,originalIndex:l,originalOption:e};return u.selected=u.group?e.value.every((function(e){return k.value.has(e)})):k.value.has(a.valueBy(e)),u.disabled=u.group?a.disabledBy(e)||e.value.every((function(e){var n=W(a.options,e,{valueBy:a.valueBy});return a.disabledBy(n)})):a.disabledBy(e),u.visible=u.group?e.value.some((function(e){return t.has(e)})):t.has(a.valueBy(e)),u.hidden=!!n.hideSelected&&(u.group?e.value.every((function(e){return k.value.has(e)})):k.value.has(a.valueBy(e))),u})),o=E(l);try{for(o.s();!(e=o.n()).done;){var u=e.value;!1!==u.group&&(u.disabled&&function(){var e=new Set(u.originalOption.value);l.filter((function(n){return e.has(a.valueBy(n.originalOption))})).forEach((function(e){return e.disabled=!0}))}())}}catch(e){o.e(e)}finally{o.f()}return l})),$=Q(j,L),U=$.pointerForward,z=$.pointerBackward,P=$.pointerSet,q="",H=/^[\w]$/,Y=b((function(){var e=C(a.options.keys());return e.slice(L.value).concat(e.slice(0,L.value))})),K=function(){var e,n=null===(e=u.value)||void 0===e?void 0:e.querySelector(".highlighted");if(n&&i.value){var t,a=getComputedStyle(n);for(t=0;n.offsetTop+parseFloat(a.height)+parseFloat(a.paddingTop)+parseFloat(a.paddingBottom)>i.value.$el.clientHeight+i.value.$el.scrollTop&&t++<j.value.length;)i.value.$el.scrollTop=i.value.$el.scrollTop+parseFloat(a.height)+parseFloat(a.paddingTop)+parseFloat(a.paddingBottom);for(t=0;n.offsetTop<i.value.$el.scrollTop&&t++<j.value.length;)i.value.$el.scrollTop=i.value.$el.scrollTop-parseFloat(a.height)-parseFloat(a.paddingTop)-parseFloat(a.paddingBottom)}};x((function(){return[d.value,a.options,k.value]}),(function(e,n){!0!==(null==n?void 0:n[0])&&!1!==d.value&&0!==B.value.length&&(P(a.options.findIndex((function(e){return k.value.has(a.valueBy(e))}))),w(K))}),{deep:!0,immediate:!0});var J=b((function(){return{"data-is-focusing":d.value,"data-visible-length":j.value.filter((function(e){return e.visible&&!1===e.hidden})).length,"data-not-selected-length":a.options.length-j.value.filter((function(e){return e.selected})).length,"data-selected-length":j.value.filter((function(e){return e.selected})).length,"data-addable":j.value.filter((function(e){return e.selected})).length<a.max,"data-removable":j.value.filter((function(e){return e.selected})).length>a.min,"data-total-length":a.options.length,"data-multiple":n.multiple,"data-loading":n.loading,"data-disabled":n.disabled}}));M("dataAttrs",J);var X=b((function(){return j.value.filter((function(e){return e.selected})).filter((function(e){return!e.group}))})),ee=b((function(){return n.multiple?0===X.value.length?n.placeholder:1===X.value.length?"1 option selected":X.value.length+" options selected":0===X.value.length?n.placeholder:X.value[0].label+""})),ne=b((function(){var e=X.value.map((function(e){return e.originalOption}));return n.multiple?e:e[0]||l.value})),te=e();return x((function(){return[n.openDirection,d.value]}),(function(){var e,t;te.value=null!==(t=null!==(e=n.openDirection)&&void 0!==e?e:function(){if(void 0===u.value)return;if(void 0===window)return;return window.innerHeight-u.value.getBoundingClientRect().bottom>=n.maxHeight?"bottom":"top"}())&&void 0!==t?t:"bottom"}),{immediate:!0}),{instance:o,isFocusing:d,wrapper:u,dropdown:i,input:r,focus:s,blur:v,toggle:function(){d.value?v():s()},searchingInputValue:p,handleInputForInput:function(e){t.emit("search:input",e)},handleChangeForInput:function(e){t.emit("search:change",e)},handleFocusForInput:function(e){s()},handleBlurForInput:function(e){v()},optionsWithInfo:j,addOrRemoveOption:function(e,t){n.disabled||(t.group&&n.multiple?S(e,t):A(e,t),T(),!0===n.closeOnSelect&&(d.value=!1),!0===n.clearOnSelect&&p.value&&D())},dataAttrs:J,innerPlaceholder:ee,selected:ne,highlightedOriginalIndex:L,pointerForward:function(){U(),w(K)},pointerBackward:function(){z(),w(K)},pointerFirst:function(){var e,n=E(a.options.keys());try{for(n.s();!(e=n.n()).done;){var t=e.value;if(P(t))break}}catch(e){n.e(e)}finally{n.f()}w(K)},pointerLast:function(){var e,n=E(C(a.options.keys()).reverse());try{for(n.s();!(e=n.n()).done;){var t=e.value;if(P(t))break}}catch(e){n.e(e)}finally{n.f()}w(K)},typeAhead:function(e){var t,l;if(!n.searchable){var o=!1;if(H.test(e.key)?(q+=e.key.toLowerCase(),o=!0):"Space"===e.code&&(q+=" "),o){var u,i=E(Y.value);try{for(i.s();!(u=i.n()).done;){var r=u.value;if(!0===(null===(l=null===(t=a.labelBy(a.options[r]))||void 0===t?void 0:t.toLowerCase())||void 0===l?void 0:l.startsWith(q))&&P(r))break}}catch(e){i.e(e)}finally{i.f()}clearTimeout(V),V=setTimeout((function(){q=""}),500)}}},pointerSet:P,direction:te}},components:{VInput:L,VTags:U,VDropdown:z}});Y.__VERSION__="2.10.5";var K=["tabindex","id","role","aria-expanded","aria-owns","aria-activedescendant","aria-busy","aria-disabled"],J={class:"vue-select-header"},X={key:0,class:"vue-input"},ee=["placeholder","autocomplete"],ne=["onClick"],te=u("span",{class:"icon loading"},[u("div"),u("div"),u("div")],-1),ae={key:0,class:"vue-select-input-wrapper"},le=u("span",{class:"icon loading"},[u("div"),u("div"),u("div")],-1);Y.render=function(e,n,t,c,v,y){var m=k("v-tags"),h=k("v-input"),b=k("v-dropdown");return a(),l("div",d({ref:"wrapper",class:["vue-select",["direction-".concat(e.direction)]],tabindex:e.isFocusing?-1:e.tabindex,onFocus:n[9]||(n[9]=function(){return e.focus&&e.focus.apply(e,arguments)}),onBlur:n[10]||(n[10]=function(n){return!e.searchable&&e.blur(n)})},Object.assign({},e.dataAttrs,e.$attrs),{onKeypress:n[11]||(n[11]=i(r((function(){return null!==e.highlightedOriginalIndex&&e.addOrRemoveOption(e.$event,e.optionsWithInfo[e.highlightedOriginalIndex])}),["prevent","exact"]),["enter"])),onKeydown:[n[12]||(n[12]=i(r((function(){return e.pointerForward&&e.pointerForward.apply(e,arguments)}),["prevent","exact"]),["down"])),n[13]||(n[13]=i(r((function(){return e.pointerBackward&&e.pointerBackward.apply(e,arguments)}),["prevent","exact"]),["up"])),n[14]||(n[14]=i(r((function(){return e.pointerFirst&&e.pointerFirst.apply(e,arguments)}),["prevent","exact"]),["home"])),n[15]||(n[15]=i(r((function(){return e.pointerLast&&e.pointerLast.apply(e,arguments)}),["prevent","exact"]),["end"])),n[16]||(n[16]=function(){return e.typeAhead&&e.typeAhead.apply(e,arguments)})],id:"vs".concat(e.instance.uid,"-combobox"),role:e.searchable?"combobox":null,"aria-expanded":e.isFocusing,"aria-haspopup":"listbox","aria-owns":"vs".concat(e.instance.uid,"-listbox"),"aria-activedescendant":null===e.highlightedOriginalIndex?null:"vs".concat(e.instance.uid,"-option-").concat(e.highlightedOriginalIndex),"aria-busy":e.loading,"aria-disabled":e.disabled}),[u("div",J,[e.multiple&&e.taggable&&0===e.modelValue.length||!1===e.searchable&&!1===e.taggable?(a(),l("div",X,[o(e.$slots,"label",{selected:e.selected},(function(){return[u("input",{placeholder:e.innerPlaceholder,autocomplete:e.autocomplete,readonly:"",onClick:n[0]||(n[0]=function(){return e.focus&&e.focus.apply(e,arguments)})},null,8,ee)]}))])):g("v-if",!0),e.multiple&&e.taggable?(a(),l(s,{key:1},[O(m,{modelValue:e.optionsWithInfo,"collapse-tags":e.collapseTags,tabindex:"-1",onClick:e.focus},{default:F((function(n){var t=n.option;return[o(e.$slots,"tag",{option:t.originalOption,remove:function(){return e.addOrRemoveOption(e.$event,t)}},(function(){return[u("span",null,f(t.label),1),u("img",{src:"data:image/svg+xml;base64,PHN2ZyBpZD0iZGVsZXRlIiBkYXRhLW5hbWU9ImRlbGV0ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHRpdGxlPmRlbGV0ZTwvdGl0bGU+PHBhdGggZD0iTTI1NiwyNEMzODMuOSwyNCw0ODgsMTI4LjEsNDg4LDI1NlMzODMuOSw0ODgsMjU2LDQ4OCwyNC4wNiwzODMuOSwyNC4wNiwyNTYsMTI4LjEsMjQsMjU2LDI0Wk0wLDI1NkMwLDM5Ny4xNiwxMTQuODQsNTEyLDI1Niw1MTJTNTEyLDM5Ny4xNiw1MTIsMjU2LDM5Ny4xNiwwLDI1NiwwLDAsMTE0Ljg0LDAsMjU2WiIgZmlsbD0iIzViNWI1ZiIvPjxwb2x5Z29uIHBvaW50cz0iMzgyIDE3Mi43MiAzMzkuMjkgMTMwLjAxIDI1NiAyMTMuMjkgMTcyLjcyIDEzMC4wMSAxMzAuMDEgMTcyLjcyIDIxMy4yOSAyNTYgMTMwLjAxIDMzOS4yOCAxNzIuNzIgMzgyIDI1NiAyOTguNzEgMzM5LjI5IDM4MS45OSAzODIgMzM5LjI4IDI5OC43MSAyNTYgMzgyIDE3Mi43MiIgZmlsbD0iIzViNWI1ZiIvPjwvc3ZnPg==",alt:"delete tag",class:"icon delete",onClick:r((function(){return e.addOrRemoveOption(e.$event,t)}),["prevent","stop"])},null,8,ne)]}))]})),_:3},8,["modelValue","collapse-tags","onClick"]),o(e.$slots,"toggle",{isFocusing:e.isFocusing,toggle:e.toggle},(function(){return[u("span",{class:p(["icon arrow-downward",{active:e.isFocusing}]),onClick:n[1]||(n[1]=function(){return e.toggle&&e.toggle.apply(e,arguments)}),onMousedown:n[2]||(n[2]=r((function(){}),["prevent","stop"]))},null,34)]}))],64)):(a(),l(s,{key:2},[e.searchable?(a(),V(h,{key:0,ref:"input",modelValue:e.searchingInputValue,"onUpdate:modelValue":n[3]||(n[3]=function(n){return e.searchingInputValue=n}),disabled:e.disabled,autocomplete:e.autocomplete,placeholder:e.isFocusing?e.searchPlaceholder:e.innerPlaceholder,onInput:e.handleInputForInput,onChange:e.handleChangeForInput,onFocus:e.handleFocusForInput,onBlur:e.handleBlurForInput,onEscape:e.blur,autofocus:e.autofocus||e.taggable&&e.searchable,tabindex:e.tabindex,comboboxUid:e.instance.uid},null,8,["modelValue","disabled","autocomplete","placeholder","onInput","onChange","onFocus","onBlur","onEscape","autofocus","tabindex","comboboxUid"])):g("v-if",!0),e.loading?o(e.$slots,"loading",{key:1},(function(){return[te]})):o(e.$slots,"toggle",{key:2,isFocusing:e.isFocusing,toggle:e.toggle},(function(){return[u("span",{class:p(["icon arrow-downward",{active:e.isFocusing}]),onClick:n[4]||(n[4]=function(){return e.toggle&&e.toggle.apply(e,arguments)}),onMousedown:n[5]||(n[5]=r((function(){}),["prevent","stop"]))},null,34)]}))],64))]),e.multiple&&e.taggable&&e.searchable?(a(),l("div",ae,[S(O(h,{ref:"input",modelValue:e.searchingInputValue,"onUpdate:modelValue":n[6]||(n[6]=function(n){return e.searchingInputValue=n}),disabled:e.disabled,autocomplete:e.autocomplete,placeholder:e.isFocusing?e.searchPlaceholder:e.innerPlaceholder,onInput:e.handleInputForInput,onChange:e.handleChangeForInput,onFocus:e.handleFocusForInput,onBlur:e.handleBlurForInput,onEscape:e.blur,autofocus:e.autofocus||e.taggable&&e.searchable,tabindex:e.tabindex,comboboxUid:e.instance.uid},null,8,["modelValue","disabled","autocomplete","placeholder","onInput","onChange","onFocus","onBlur","onEscape","autofocus","tabindex","comboboxUid"]),[[A,e.isFocusing]]),e.loading?o(e.$slots,"loading",{key:0},(function(){return[le]})):g("v-if",!0)])):g("v-if",!0),O(b,{ref:"dropdown",modelValue:e.optionsWithInfo,"onUpdate:modelValue":n[7]||(n[7]=function(n){return e.optionsWithInfo=n}),onClickItem:e.addOrRemoveOption,onMouseenter:n[8]||(n[8]=function(n,t){return e.pointerSet(t.originalIndex)}),comboboxUid:e.instance.uid,maxHeight:e.maxHeight,highlightedOriginalIndex:e.highlightedOriginalIndex},{default:F((function(n){var t=n.option;return[o(e.$slots,"dropdown-item",{option:t.originalOption},(function(){return[u("span",null,f(t.label),1)]}))]})),_:3},8,["modelValue","onClickItem","comboboxUid","maxHeight","highlightedOriginalIndex"])],16,K)},Y.__file="src/index.vue";export{Y as default};