{"version":3,"sources":["webpack:///./node_modules/@vueform/multiselect/dist/multiselect.js"],"names":["isNullish","val","undefined","indexOf","useData","props","context","dep","object","valueProp","mode","$this","proxy","iv","update","value","makeInternal","externalVal","makeExternal","emit","Array","isArray","map","v","useValue","modelValue","ev","plainValue","textValue","join","internalValue","externalValue","useSearch","regex","isOpen","open","search","input","clearSearch","handleSearchInput","e","target","handleKeypress","regexp","RegExp","key","match","preventDefault","handlePaste","clipboardData","window","pastedData","getData","split","every","c","usePointer$1","groupSelect","groups","disabledProp","pointer","setPointer","option","group","clearPointer","normalize","str","strict","String","toLowerCase","trim","replace","isObject","variable","Object","prototype","toString","call","arraysEqual","array1","array2","array2Sorted","slice","sort","length","index","useOptions","options","trackBy","trackBy_","limit","hideSelected","createTag","createOption","createOption_","label","appendNewTag","appendNewOption","appendNewOption_","multipleLabel","loading","delay","resolveOnLoad","minChars","filterResults","clearOnSearch","clearOnSelect","canDeselect","max","closeOnSelect","groupped","reverse","infinite","groupOptions","groupHideEmpty","onCreate","searchStart","focus","deactivate","close","ap","ro","resolving","searchWatcher","offset","eo","forEach","optionsToArray","push","assign","concat","fg","filterGroups","arrayOptions","filterOptions","o","__VISIBLE__","pfo","createdOption","fo","hasSelected","multipleLabelText","noOptions","noResults","getOptionByTrackBy","__CREATE__","nullValue","busy","select","getOption","finalValue","deselect","clear","filter","remove","handleTagRemove","button","isSelected","areAllSelected","isDisabled","isMax","handleOptionClick","Promise","then","result","handleOptionSelect","handleOptionAppend","handleGroupClick","areAllEnabledSelected","k","appendOption","selectAll","find","norm","parseInt","shouldHideOption","g","excludeHideSelected","startsWith","uo","keys","initInternalValue","resolveOptions","callback","resolve","reject","response","catch","console","error","finally","refreshLabels","newLabel","i","refreshOptions","initSearchWatcher","query","setTimeout","flush","Error","old","newValue","deep","n","filteredOptions","extendedOptions","filteredGroups","usePointer","showOptions","searchable","groupLabel","multiselect","canPointGroups","isPointerGroup","currentGroup","getParentGroup","prevGroup","groupIndex","lastGroup","nextGroup","nextIndex","currentGroupFirstEnabledOption","currentGroupPrevEnabledOption","currentGroupNextEnabledOption","prevGroupLastEnabledOption","lastGroupLastEnabledOption","isPointed","setPointerFirst","selectPointer","forwardPointer","nextPointer","next","adjustWrapperScrollToPointer","backwardPointer","prevPointer","prevIndex","pointedOption","querySelector","wrapper","parentElement","offsetTop","offsetHeight","clientHeight","scrollTop","firstSelected","querySelectorAll","useDropdown","disabled","useMultiselect","tags","isActive","mouseClicked","tabindex","blur","activate","shouldOpen","handleFocusIn","handleFocusOut","handleCaretClick","handleMousedown","isEqualNode","document","activeElement","useKeyboard","addTagOn","openDirection","addOptionOn","addOptionOn_","preparePointer","handleKeydown","tagList","activeIndex","findIndex","selectionStart","shiftKey","handleKeyup","useClasses","dependencies","classes","classes_","container","containerDisabled","containerOpen","containerOpenTop","containerActive","singleLabel","singleLabelText","tag","tagDisabled","tagRemove","tagRemoveIcon","tagsSearchWrapper","tagsSearch","tagsSearchCopy","placeholder","caret","caretOpen","clearIcon","spinner","inifinite","inifiniteSpinner","dropdown","dropdownTop","dropdownHidden","optionsTop","groupLabelPointable","groupLabelPointed","groupLabelSelected","groupLabelDisabled","groupLabelSelectedPointed","groupLabelSelectedDisabled","optionPointed","optionSelected","optionDisabled","optionSelectedPointed","optionSelectedDisabled","fakeInput","spacer","showDropdown","classList","useScroll$1","observer","infiniteLoader","hasMore","handleIntersectionObserver","entries","isIntersecting","parent","offsetParent","observe","disconnect","immediate","IntersectionObserver","useScroll","id","labelProp","ariaOwns","texts","ariaActiveDescendant","ariaPlaceholder","ariaMultiselectable","ariaOptionId","ariaGroupId","ariaOptionLabel","ariaGroupLabel","ariaTagLabel","forTag","innerText","resolveDeps","features","deps","composable","script","name","emits","required","type","Function","default","Number","Boolean","noOptionsText","noResultsText","canClear","nativeSupport","autocomplete","inputType","attrs","rtl","aria","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","render","_ctx","_cache","$props","$setup","$data","$options","ref","class","dir","onFocusin","args","onFocusout","onKeydown","onKeyup","onMousedown","role","onInput","onKeypress","onPaste","$slots","$event","onClick","innerHTML","values","onMouseenter","__file"],"mappings":"gHAAA,kDAEA,SAASA,EAAWC,GAClB,OAA2C,IAApC,CAAC,UAAMC,GAAWC,QAAQF,GAGnC,SAASG,EAASC,EAAOC,EAASC,GAEhC,MAAM,OAAEC,EAAM,UAAEC,EAAS,KAAEC,GAAS,eAAOL,GAErCM,EAAQ,iBAAqBC,MAI7BC,EAAKN,EAAIM,GAITC,EAAUb,IAEdY,EAAGE,MAAQC,EAAaf,GAIxB,MAAMgB,EAAcC,EAAajB,GAEjCK,EAAQa,KAAK,SAAUF,EAAaN,GACpCL,EAAQa,KAAK,QAASF,GACtBX,EAAQa,KAAK,oBAAqBF,IAI9BC,EAAgBjB,GAGhBO,EAAOO,OAKPf,EAAUC,GAJLA,EAUDmB,MAAMC,QAAQpB,GAA8BA,EAAIqB,IAAIC,GAAKA,EAAEd,EAAUM,QAAhDd,EAAIQ,EAAUM,OAIvCC,EAAgBf,GAChBD,EAAUC,GACU,WAAfS,EAAKK,MAAqB,GAAK,GAGjCd,EAGT,MAAO,CACLa,UAIJ,SAASU,EAAUnB,EAAOC,GAExB,MAAM,MAAES,EAAK,WAAEU,EAAU,KAAEf,EAAI,UAAED,GAAc,eAAOJ,GAKhDQ,EAAK,eAAmB,WAAfH,EAAKK,MAAqB,GAAK,IAMxCW,EAAKD,QAAmCvB,IAArBuB,EAAWV,MAAsBU,EAAaV,EAEjEY,EAAa,eAAS,IACJ,WAAfjB,EAAKK,MAAqBF,EAAGE,MAAMN,EAAUM,OAASF,EAAGE,MAAMO,IAAIC,GAAGA,EAAEd,EAAUM,SAGrFa,EAAY,eAAS,IACH,WAAflB,EAAKK,MAAqBF,EAAGE,MAAMO,IAAIC,GAAGA,EAAEd,EAAUM,QAAQc,KAAK,KAAOhB,EAAGE,MAAMN,EAAUM,QAGtG,MAAO,CACLF,KACAiB,cAAejB,EACfa,KACAK,cAAeL,EACfE,YACAD,cAIJ,SAASK,EAAW3B,EAAOC,EAASC,GACjC,MAAM,MAAE0B,GAAU,eAAO5B,GAEpBM,EAAQ,iBAAqBC,MAI7BsB,EAAS3B,EAAI2B,OACbC,EAAO5B,EAAI4B,KAIXC,EAAS,eAAI,MAEbC,EAAQ,eAAI,MAIZC,EAAc,KAClBF,EAAOrB,MAAQ,IAGXwB,EAAqBC,IACzBJ,EAAOrB,MAAQyB,EAAEC,OAAO1B,OAGpB2B,EAAkBF,IACtB,GAAIP,GAASA,EAAMlB,MAAO,CACxB,IAAI4B,EAASV,EAAMlB,MAEG,kBAAX4B,IACTA,EAAS,IAAIC,OAAOD,IAGjBH,EAAEK,IAAIC,MAAMH,IACfH,EAAEO,mBAKFC,EAAeR,IACnB,GAAIP,GAASA,EAAMlB,MAAO,CACxB,IAAIkC,EAAgBT,EAAES,eAA4CC,OAAOD,cACrEE,EAAaF,EAAcG,QAAQ,QAEnCT,EAASV,EAAMlB,MAEG,kBAAX4B,IACTA,EAAS,IAAIC,OAAOD,IAGjBQ,EAAWE,MAAM,IAAIC,MAAMC,KAAOA,EAAET,MAAMH,KAC7CH,EAAEO,iBAINzC,EAAQa,KAAK,QAASqB,EAAG7B,IAa3B,OARA,gBAAMyB,EAASnC,KACRiC,EAAOnB,OAASd,GACnBkC,IAGF7B,EAAQa,KAAK,gBAAiBlB,EAAKU,KAG9B,CACLyB,SACAC,QACAC,cACAC,oBACAG,iBACAM,eAIJ,SAASQ,EAAcnD,EAAOC,EAASC,GAErC,MAAM,YAAEkD,EAAW,KAAE/C,EAAI,OAAEgD,EAAM,aAAEC,GAAiB,eAAOtD,GAIrDuD,EAAU,eAAI,MAIdC,EAAcC,SACH5D,IAAX4D,GAAoC,OAAXA,GAAmBA,EAAOH,EAAa5C,QAIhE2C,EAAO3C,OAAS+C,GAAUA,EAAOC,QAAyB,WAAfrD,EAAKK,QAAuB0C,EAAY1C,SAIvF6C,EAAQ7C,MAAQ+C,IAGZE,EAAe,KACnBH,EAAW,OAGb,MAAO,CACLD,UACAC,aACAG,gBAIJ,SAASC,EAAWC,EAAKC,GAAS,GAChC,OAAOA,EACHC,OAAOF,GAAKG,cAAcC,OAC1BF,OAAOF,GAAKD,UAAU,OAAOM,QAAQ,kBAAmB,IAAIF,cAAcC,OAGhF,SAASE,EAAUC,GACjB,MAAoD,oBAA7CC,OAAOC,UAAUC,SAASC,KAAKJ,GAGxC,SAASK,EAAaC,EAAQC,GAC5B,MAAMC,EAAeD,EAAOE,QAAQC,OAEpC,OAAOJ,EAAOK,SAAWJ,EAAOI,QAAUL,EAAOG,QAAQC,OAAO7B,OAAM,SAASvC,EAAOsE,GAClF,OAAOtE,IAAUkE,EAAaI,MAIpC,SAASC,EAAYjF,EAAOC,EAASC,GAEnC,MAAM,QACJgF,EAAO,KAAE7E,EAAM8E,QAASC,EAAQ,MAAEC,EAAK,aAAEC,EAAY,UAAEC,EAAWC,aAAcC,EAAa,MAAEC,EAAK,aACpGC,EAAcC,gBAAiBC,EAAgB,cAAEC,EAAa,OAAE3F,EAAM,QAAE4F,EAAO,MAAEC,EAAK,cAAEC,EAAa,SACrGC,EAAQ,cAAEC,EAAa,cAAEC,EAAa,cAAEC,EAAa,UAAEjG,EAAS,YAChEkG,EAAW,IAAEC,EAAG,OAAEzC,EAAM,cAAE0C,EAAenD,OAAQoD,EAAQ,QAAEC,EAAO,SAAEC,EAAQ,aAC5EC,EAAY,eAAEC,EAAc,YAAEzD,EAAW,SAAE0D,EAAQ,aAAExD,EAAY,YAAEyD,GACjE,eAAO/G,GAELM,EAAQ,iBAAqBC,MAI7BC,EAAKN,EAAIM,GACTa,EAAKnB,EAAImB,GACTU,EAAS7B,EAAI6B,OACbE,EAAc/B,EAAI+B,YAClBxB,EAASP,EAAIO,OACb8C,EAAUrD,EAAIqD,QACdI,EAAezD,EAAIyD,aACnBqD,EAAQ9G,EAAI8G,MACZC,EAAa/G,EAAI+G,WACjBC,EAAQhH,EAAIgH,MAMZC,EAAK,eAAI,IAITC,EAAK,eAAI,IAETC,GAAY,gBAAI,GAGhBC,GAAgB,eAAI,MAEpBC,GAAS,eAAIZ,EAASjG,QAA0B,IAAjB2E,EAAM3E,MAAe,GAAK2E,EAAM3E,OAK/D8E,GAAe,eAAS,IACrBD,EAAU7E,OAAS+E,EAAc/E,QAAS,GAI7CkF,GAAkB,eAAS,SACJ/F,IAAvB8F,EAAajF,MACRiF,EAAajF,WACgBb,IAA3BgG,EAAiBnF,OACnBmF,EAAiBnF,OAQtB8G,GAAK,eAAS,KAClB,GAAIf,EAAS/F,MAAO,CAClB,IAAI2C,EAAS+D,EAAG1G,OAAoC,GAEhD8G,EAAK,GAQT,OANAnE,EAAOoE,QAAS/D,IACdgE,GAAehE,EAAMkD,EAAalG,QAAQ+G,QAAShE,IACjD+D,EAAGG,KAAKtD,OAAOuD,OAAO,GAAInE,EAAQC,EAAMJ,EAAa5C,OAAS,CAAE,CAAC4C,EAAa5C,QAAQ,GAAS,SAI5F8G,EACF,CACL,IAAIA,EAAKE,GAAeN,EAAG1G,OAAoC,IAM/D,OAJIyG,EAAGzG,MAAMqE,SACXyC,EAAKA,EAAGK,OAAOV,EAAGzG,QAGb8G,KAILM,GAAK,eAAS,IACbrB,EAAS/F,MAIPqH,IAAcX,EAAG1G,OAAoC,IAAIO,IAAI,CAACyC,EAAOsB,KAC1E,MAAMgD,EAAeN,GAAehE,EAAMkD,EAAalG,QAEvD,MAAO,IACFgD,EACHsB,QACAtB,OAAO,EACP,CAACkD,EAAalG,OAAQuH,GAAcD,GAAc,GAAO/G,IAAIiH,GAAK7D,OAAOuD,OAAO,GAAIM,EAAGxE,EAAMJ,EAAa5C,OAAS,CAAE,CAAC4C,EAAa5C,QAAQ,GAAS,KACpJyH,YAAaF,GAAcD,GAAc/G,IAAIiH,GAAK7D,OAAOuD,OAAO,GAAIM,EAAGxE,EAAMJ,EAAa5C,OAAS,CAAE,CAAC4C,EAAa5C,QAAQ,GAAS,SAX/H,IAkBL0H,GAAM,eAAS,KACnB,IAAIlD,EAAUsC,GAAG9G,MAUjB,OARIgG,EAAQhG,QACVwE,EAAUA,EAAQwB,WAGhB2B,GAAc3H,MAAMqE,SACtBG,EAAUmD,GAAc3H,MAAMmH,OAAO3C,IAGhC+C,GAAc/C,KAIjBoD,GAAK,eAAS,KAClB,IAAIpD,EAAUkD,GAAI1H,MAMlB,OAJI6G,GAAO7G,MAAQ,IACjBwE,EAAUA,EAAQL,MAAM,EAAG0C,GAAO7G,QAG7BwE,IAGHqD,GAAc,eAAS,KAC3B,OAAQlI,EAAKK,OACX,IAAK,SACH,OAAQf,EAAUa,EAAGE,MAAMN,EAAUM,QAEvC,IAAK,WACL,IAAK,OACH,OAAQf,EAAUa,EAAGE,QAAUF,EAAGE,MAAMqE,OAAS,KAIjDyD,GAAoB,eAAS,SACR3I,IAAlBiG,QAAuDjG,IAAxBiG,EAAcpF,MAChDoF,EAAcpF,MAAMF,EAAGE,MAAOJ,GAC7BE,EAAGE,OAASF,EAAGE,MAAMqE,OAAS,EAAOvE,EAAGE,MAAMqE,OAAZ,oBAAwC,qBAG3E0D,GAAY,eAAS,KACjBjB,GAAG9G,MAAMqE,SAAWsC,GAAU3G,QAAU2H,GAAc3H,MAAMqE,QAIhE2D,GAAY,eAAS,IAClBlB,GAAG9G,MAAMqE,OAAS,GAAwB,GAAnBuD,GAAG5H,MAAMqE,SAAiBhD,EAAOrB,OAAS+F,EAAS/F,QAAW+F,EAAS/F,QAIjG2H,GAAgB,eAAS,KACF,IAAvB7C,GAAa9E,OAAoBqB,EAAOrB,OAIC,IAAtCiI,GAAmB5G,EAAOrB,OAAgB,GAAK,CAAC,CACrD,CAACN,EAAUM,OAAQqB,EAAOrB,MAC1B,CAACgF,EAAMhF,OAAQqB,EAAOrB,MACtB,CAACyE,GAAQzE,OAAQqB,EAAOrB,MACxBkI,YAAY,IAPL,IAWLzD,GAAU,eAAS,IAChBC,EAAS1E,OAASgF,EAAMhF,OAI3BmI,GAAY,eAAS,KACzB,OAAQxI,EAAKK,OACX,IAAK,SACH,OAAO,KAET,IAAK,WACL,IAAK,OACH,MAAO,MAIPoI,GAAO,eAAS,IACb/C,EAAQrF,OAAS2G,GAAU3G,OAQ9BqI,GAAUtF,IAKd,OAJsB,kBAAXA,IACTA,EAASuF,GAAUvF,IAGbpD,EAAKK,OACX,IAAK,SACHD,EAAOgD,GACP,MAEF,IAAK,WACL,IAAK,OACHhD,EAAQD,EAAQ,MAAEqH,OAAOpE,IACzB,MAGJxD,EAAQa,KAAK,SAAUmI,GAAWxF,GAASA,EAAQnD,IAG/C4I,GAAYzF,IAKhB,OAJsB,kBAAXA,IACTA,EAASuF,GAAUvF,IAGbpD,EAAKK,OACX,IAAK,SACHyI,KACA,MAEF,IAAK,OACL,IAAK,WACH1I,EAAOM,MAAMC,QAAQyC,GACjBjD,EAAGE,MAAM0I,OAAOlI,IAA0E,IAArEuC,EAAOxC,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQoB,EAAEd,EAAUM,SAC7EF,EAAGE,MAAM0I,OAAOlI,GAAKA,EAAEd,EAAUM,QAAU+C,EAAOrD,EAAUM,SAChE,MAGJT,EAAQa,KAAK,WAAYmI,GAAWxF,GAASA,EAAQnD,IAIjD2I,GAAcxF,GACXtD,EAAOO,MAAQ+C,EAASA,EAAOrD,EAAUM,OAG5C2I,GAAU5F,IACdyF,GAASzF,IAGL6F,GAAkB,CAAC7F,EAAQtB,KACd,IAAbA,EAAEoH,OAKNF,GAAO5F,GAJLtB,EAAEO,kBAOAyG,GAAQ,KACZlJ,EAAQa,KAAK,QAASR,GACtBG,EAAOoI,GAAUnI,QAGb8I,GAAc/F,IAClB,QAAqB5D,IAAjB4D,EAAOC,MACT,MAAsB,WAAfrD,EAAKK,QAA6B+I,GAAehG,EAAOmD,EAAalG,SAAW+C,EAAOmD,EAAalG,OAAOqE,QAGpH,OAAQ1E,EAAKK,OACX,IAAK,SACH,OAAQf,EAAUa,EAAGE,QAAUF,EAAGE,MAAMN,EAAUM,QAAU+C,EAAOrD,EAAUM,OAE/E,IAAK,OACL,IAAK,WACH,OAAQf,EAAUa,EAAGE,SAAsF,IAA5EF,EAAGE,MAAMO,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQ2D,EAAOrD,EAAUM,UAI9FgJ,GAAcjG,IACoB,IAA/BA,EAAOH,EAAa5C,OAGvBiJ,GAAQ,WACA9J,IAAR0G,IAAoC,IAAfA,EAAI7F,QAAkB6H,GAAY7H,OAAS6F,EAAI7F,MAAQ,IAIzEF,EAAGE,MAAMqE,QAAUwB,EAAI7F,MAG1BkJ,GAAqBnG,IACzB,IAAIiG,GAAWjG,GAIf,OAAIqD,GAAYA,EAASpG,QAAU8I,GAAW/F,IAAWA,EAAOmF,aAC9DnF,EAAS,IAAKA,UACPA,EAAOmF,WAEdnF,EAASqD,EAASpG,MAAM+C,EAAQnD,GAE5BmD,aAAkBoG,UACpBxC,GAAU3G,OAAQ,OAClB+C,EAAOqG,KAAMC,IACX1C,GAAU3G,OAAQ,EAClBsJ,GAAmBD,WAOzBC,GAAmBvG,IAGfuG,GAAsBvG,IAM1B,OALIA,EAAOmF,aACTnF,EAAS,IAAKA,UACPA,EAAOmF,YAGRvI,EAAKK,OACX,IAAK,SACH,GAAI+C,GAAU+F,GAAW/F,GAIvB,YAHI6C,EAAY5F,OACdwI,GAASzF,IAKTA,GACFwG,GAAmBxG,GAIjB4C,EAAc3F,OAChBuB,IAGEuE,EAAc9F,QAChBiD,IACAuD,KAGEzD,GACFsF,GAAOtF,GAET,MAEF,IAAK,WACH,GAAIA,GAAU+F,GAAW/F,GAEvB,YADAyF,GAASzF,GAIX,GAAIkG,KACF,OAGElG,IACFwG,GAAmBxG,GACnBsF,GAAOtF,IAGL4C,EAAc3F,OAChBuB,IAGEqD,EAAa5E,OACfiD,IAGE6C,EAAc9F,OAChBwG,IAEF,MAEF,IAAK,OACH,GAAIzD,GAAU+F,GAAW/F,GAEvB,YADAyF,GAASzF,GAIX,GAAIkG,KACF,OAGElG,GACFwG,GAAmBxG,GAGjB4C,EAAc3F,OAChBuB,IAGEwB,GACFsF,GAAOtF,GAGL6B,EAAa5E,OACfiD,IAGE6C,EAAc9F,OAChBwG,IAEF,MAGCV,EAAc9F,OACjBsG,KAIEkD,GAAoBxG,IACxB,IAAIgG,GAAWhG,IAAyB,WAAfrD,EAAKK,OAAuB0C,EAAY1C,MAAjE,CAIA,OAAQL,EAAKK,OACX,IAAK,WACL,IAAK,OACCyJ,GAAsBzG,EAAMkD,EAAalG,QAC3CwI,GAASxF,EAAMkD,EAAalG,QAE5BqI,GAAOrF,EAAMkD,EAAalG,OACvB0I,OAAOlB,IAA4E,IAAvE1H,EAAGE,MAAMO,IAAIC,GAAKA,EAAEd,EAAUM,QAAQZ,QAAQoI,EAAE9H,EAAUM,SACtE0I,OAAOlB,IAAMA,EAAE5E,EAAa5C,QAC5B0I,OAAO,CAAClB,EAAGkC,IAAM5J,EAAGE,MAAMqE,OAAS,EAAIqF,GAAK7D,EAAI7F,QAAwB,IAAf6F,EAAI7F,QAGlE,MAGA8F,EAAc9F,OAChBuG,MAIEgD,GAAsBxG,SACiB5D,IAAvCmJ,GAAUvF,EAAOrD,EAAUM,SAAyB8E,GAAa9E,QACnET,EAAQa,KAAK,MAAO2C,EAAOrD,EAAUM,OAAQJ,GAC7CL,EAAQa,KAAK,SAAU2C,EAAOrD,EAAUM,OAAQJ,GAE5CsF,GAAgBlF,OAClB2J,GAAa5G,GAGfxB,MAIEqI,GAAY,KACG,WAAfjK,EAAKK,OAITqI,GAAOT,GAAG5H,QAINyJ,GAAyBjF,QAC0CrF,IAAhEqF,EAAQqF,KAAKrC,IAAMsB,GAAWtB,KAAOA,EAAE5E,EAAa5C,QAIvD+I,GAAkBvE,QACuBrF,IAAtCqF,EAAQqF,KAAKrC,IAAMsB,GAAWtB,IAGjCc,GAAapJ,GACV4H,GAAG9G,MAAM8G,GAAG9G,MAAMO,IAAIiH,GAAKnE,OAAOmE,EAAE9H,EAAUM,SAASZ,QAAQiE,OAAOnE,KAIzE+I,GAAqB,CAAC/I,EAAK4K,GAAO,IAC/BhD,GAAG9G,MAAMO,IAAIiH,GAAKuC,SAASvC,EAAE/C,GAAQzE,SAAWwH,EAAE/C,GAAQzE,OAAS+J,SAASvC,EAAE/C,GAAQzE,QAAUwH,EAAE/C,GAAQzE,QAAQZ,QACvH2K,SAAS7K,IAAQA,EAAM6K,SAAS7K,GAAOA,GAKrC8K,GAAoBjH,IAC6B,IAA9C,CAAC,OAAQ,YAAY3D,QAAQO,EAAKK,QAAiB4E,EAAa5E,OAAS8I,GAAW/F,GAIvF4G,GAAgB5G,IACpB0D,EAAGzG,MAAMiH,KAAKlE,IAIVsE,GAAgB1E,GAKbwD,EAAenG,MAClB2C,EAAO+F,OAAOuB,GAAK5I,EAAOrB,MACtBiK,EAAExC,YAAYpD,OACd4F,EAAE/D,EAAalG,OAAOqE,QAE1B1B,EAAO+F,OAAOuB,IAAK5I,EAAOrB,OAAQiK,EAAExC,YAAYpD,QAIhDkD,GAAgB,CAAC/C,EAAS0F,GAAsB,KACpD,IAAItC,EAAKpD,EAcT,OAZInD,EAAOrB,OAASyF,EAAczF,QAChC4H,EAAKA,EAAGc,OAAQ3F,GACPsD,EAAYrG,MACfkD,EAAUH,EAAO0B,GAAQzE,OAAQoD,EAAOpD,OAAOmK,WAAWjH,EAAU7B,EAAOrB,MAAOoD,EAAOpD,SACU,IAAnGkD,EAAUH,EAAO0B,GAAQzE,OAAQoD,EAAOpD,OAAOZ,QAAQ8D,EAAU7B,EAAOrB,MAAOoD,EAAOpD,UAI1F4E,EAAa5E,OAASkK,IACxBtC,EAAKA,EAAGc,OAAQ3F,IAAYiH,GAAiBjH,KAGxC6E,GAIHZ,GAAkBxC,IACtB,IAAI4F,EAAK5F,EAgBT,OAbIf,EAAS2G,KACXA,EAAKzG,OAAO0G,KAAKD,GAAI7J,IAAKuB,IACxB,IAAI5C,EAAMkL,EAAGtI,GAEb,MAAO,CAAE,CAACpC,EAAUM,OAAQ8B,EAAK,CAAC2C,GAAQzE,OAAQd,EAAK,CAAC8F,EAAMhF,OAAQd,MAK1EkL,EAAKA,EAAG7J,IAAKrB,GACW,kBAARA,EAAmBA,EAAM,CAAE,CAACQ,EAAUM,OAAQd,EAAK,CAACuF,GAAQzE,OAAQd,EAAK,CAAC8F,EAAMhF,OAAQd,IAGjGkL,GAIHE,GAAoB,KACnBrL,EAAU0B,EAAGX,SAChBF,EAAGE,MAAQC,GAAaU,EAAGX,SAIzBuK,GAAkBC,IACtB7D,GAAU3G,OAAQ,EAEX,IAAImJ,QAAQ,CAACsB,EAASC,KAC3BlG,EAAQxE,MAAMqB,EAAOrB,MAAOJ,GAAOwJ,KAAMuB,IACvCjE,EAAG1G,MAAQ2K,GAAY,GAEA,mBAAZH,GACTA,EAASG,GAGXhE,GAAU3G,OAAQ,IACjB4K,MAAOnJ,IACRoJ,QAAQC,MAAMrJ,GAEdiF,EAAG1G,MAAQ,GAEX2G,GAAU3G,OAAQ,IACjB+K,QAAQ,KACTN,SAMAO,GAAgB,KACpB,GAAKnD,GAAY7H,MAIjB,GAAmB,WAAfL,EAAKK,MAAoB,CAC3B,IAAI+C,EAASuF,GAAUxI,EAAGE,MAAMN,EAAUM,QAG1C,QAAeb,IAAX4D,EAAsB,CACxB,IAAIkI,EAAWlI,EAAOiC,EAAMhF,OAE5BF,EAAGE,MAAMgF,EAAMhF,OAASiL,EAEpBxL,EAAOO,QACTW,EAAGX,MAAMgF,EAAMhF,OAASiL,SAI5BnL,EAAGE,MAAM+G,QAAQ,CAAC7H,EAAKgM,KACrB,IAAInI,EAASuF,GAAUxI,EAAGE,MAAMkL,GAAGxL,EAAUM,QAG7C,QAAeb,IAAX4D,EAAsB,CACxB,IAAIkI,EAAWlI,EAAOiC,EAAMhF,OAE5BF,EAAGE,MAAMkL,GAAGlG,EAAMhF,OAASiL,EAEvBxL,EAAOO,QACTW,EAAGX,MAAMkL,GAAGlG,EAAMhF,OAASiL,OAO/BE,GAAkBX,IACtBD,GAAeC,IAIXvK,GAAgBf,GAChBD,EAAUC,GACU,WAAfS,EAAKK,MAAqB,GAAK,GAGpCP,EAAOO,MACFd,EAKa,WAAfS,EAAKK,MAAqBsI,GAAUpJ,IAAQ,GAAKA,EAAIwJ,OAAOlI,KAAQ8H,GAAU9H,IAAID,IAAIC,GAAK8H,GAAU9H,IAIxG4K,GAAoB,KACxBxE,GAAc5G,MAAQ,gBAAMqB,EAASgK,IAC/BA,EAAMhH,OAASmB,EAASxF,QAAWqL,GAA4B,IAAnB7F,EAASxF,QAIzD2G,GAAU3G,OAAQ,EAEd0F,EAAc1F,QAChB0G,EAAG1G,MAAQ,IAEbsL,WAAW,KACLD,GAAShK,EAAOrB,OAIpBwE,EAAQxE,MAAMqB,EAAOrB,MAAOJ,GAAOwJ,KAAMuB,IACnCU,GAAShK,EAAOrB,OAAUqB,EAAOrB,QACnC0G,EAAG1G,MAAQ2K,EACX9H,EAAQ7C,MAAQ4H,GAAG5H,MAAM0I,OAAOlB,IAA+B,IAA1BA,EAAE5E,EAAa5C,QAAiB,IAAM,KAC3E2G,GAAU3G,OAAQ,KAEnB4K,MAAmCnJ,IACpCoJ,QAAQC,MAAMrJ,MAEf6D,EAAMtF,SAER,CAAEuL,MAAO,UAKd,GAAmB,WAAf5L,EAAKK,QAAuBf,EAAU0B,EAAGX,SAAWK,MAAMC,QAAQK,EAAGX,OACvE,MAAM,IAAIwL,MAAM,wCAAwC7L,EAAKK,eAyE/D,OAtEIwE,GAAmC,mBAAjBA,EAAQxE,MACxBuF,EAAcvF,MAChBuK,GAAeD,IACU,GAAhB7K,EAAOO,OAChBsK,MAIF5D,EAAG1G,MAAQwE,EAAQxE,MAEnBsK,MAKEhF,EAAMtF,OAAS,GACjBoL,KAGF,gBAAM9F,EAAO,CAACtF,EAAOyL,KAEf7E,GAAc5G,OAChB4G,GAAc5G,QAGZA,GAAS,GACXoL,OAIJ,gBAAMzK,EAAK+K,IACT,GAAIzM,EAAUyM,GACZ5L,EAAGE,MAAQC,GAAayL,QAI1B,OAAQ/L,EAAKK,OACX,IAAK,UACCP,EAAOO,MAAQ0L,EAAShM,EAAUM,QAAUF,EAAGE,MAAMN,EAAUM,OAAS0L,GAAY5L,EAAGE,MAAMN,EAAUM,UACzGF,EAAGE,MAAQC,GAAayL,IAE1B,MAEF,IAAK,WACL,IAAK,OACE3H,EAAYtE,EAAOO,MAAQ0L,EAASnL,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAU0L,EAAU5L,EAAGE,MAAMO,IAAIiH,GAAKA,EAAE9H,EAAUM,WAC9GF,EAAGE,MAAQC,GAAayL,IAE1B,QAEH,CAAEC,MAAM,IAEX,gBAAMnH,EAAS,CAACoH,EAAGpE,KACY,oBAAlBlI,EAAMkF,QACXe,EAAcvF,SAAWwH,GAAMoE,GAAKA,EAAE/H,aAAe2D,EAAE3D,aACzD0G,MAGF7D,EAAG1G,MAAQV,EAAMkF,QAEZb,OAAO0G,KAAKvK,EAAGE,OAAOqE,QACzBiG,KAGFU,QAIJ,gBAAMhG,EAAOgG,IAEN,CACLtD,OACAE,MACAiE,gBAAiBjE,GACjBC,eACAC,qBACAhB,MACAgF,gBAAiBhF,GACjBM,MACA2E,eAAgB3E,GAChBW,aACAC,aACArB,aACAyB,QACAvB,UACAwB,UACAG,YACAG,UACAiB,aACAnB,SACAK,cACAE,cACAC,SACAX,aACAY,qBACAM,oBACAZ,mBACAuC,kBACAZ,kBACAS,kBAIJ,SAASgB,EAAY1M,EAAOC,EAASC,GAEnC,MAAM,UACJE,EAAS,YAAEuM,EAAW,WAAEC,EAAU,WAAEC,EACpCxJ,OAAQoD,EAAQ,KAAEpG,EAAI,YAAE+C,EAAW,aAAEE,GACnC,eAAOtD,GAILsI,EAAKpI,EAAIoI,GACTR,EAAK5H,EAAI4H,GACT8B,EAAoB1J,EAAI0J,kBACxBM,EAAmBhK,EAAIgK,iBACvBnI,EAAS7B,EAAI6B,OACbwB,EAAUrD,EAAIqD,QACdC,EAAatD,EAAIsD,WACjBG,EAAezD,EAAIyD,aACnBmJ,EAAc5M,EAAI4M,YAClBjL,EAAS3B,EAAI2B,OAKbqD,EAAU,eAAS,IAChBoD,EAAG5H,MAAM0I,OAAOlB,IAAMA,EAAE5E,EAAa5C,SAGxC2C,EAAS,eAAS,IACfyE,EAAGpH,MAAM0I,OAAOlB,IAAMA,EAAE5E,EAAa5C,SAGxCqM,EAAiB,eAAS,IACR,WAAf1M,EAAKK,OAAsB0C,EAAY1C,OAG1CsM,EAAiB,eAAS,IACvBzJ,EAAQ7C,OAAS6C,EAAQ7C,MAAMgD,OAGlCuJ,EAAe,eAAS,IACrBC,EAAe3J,EAAQ7C,QAG1ByM,EAAY,eAAS,KACzB,MAAMzJ,EAAQsJ,EAAetM,MAAQ6C,EAAQ7C,MAAmCwM,EAAe3J,EAAQ7C,OACjG0M,EAAa/J,EAAO3C,MAAMO,IAAI0J,GAAKA,EAAEkC,EAAWnM,QAAQZ,QAAQ4D,EAAMmJ,EAAWnM,QACvF,IAAIyM,EAAY9J,EAAO3C,MAAM0M,EAAa,GAM1C,YAJkBvN,IAAdsN,IACFA,EAAYE,EAAU3M,OAGjByM,IAGHG,EAAY,eAAS,KACzB,IAAIC,EAAYlK,EAAO3C,MAAMO,IAAI0J,GAAKA,EAAEjF,OAAO5F,QAAQkN,EAAetM,MAClE6C,EAAQ7C,MAAMmM,EAAWnM,OACzBwM,EAAe3J,EAAQ7C,OAAOmM,EAAWnM,QAAU,EAMvD,OAJI2C,EAAO3C,MAAMqE,QAAUwI,IACzBA,EAAY,GAGPlK,EAAO3C,MAAM6M,KAGhBF,EAAY,eAAS,IAClB,IAAIhK,EAAO3C,OAAOmE,OAAO,GAAG,IAG/B2I,EAAiC,eAAS,IACvCjK,EAAQ7C,MAAMyH,YAAYiB,OAAOlB,IAAMA,EAAE5E,EAAa5C,QAAQ,IAGjE+M,EAAgC,eAAS,KAC7C,MAAMvI,EAAU+H,EAAavM,MAAMyH,YAAYiB,OAAOlB,IAAMA,EAAE5E,EAAa5C,QAC3E,OAAOwE,EAAQA,EAAQjE,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQyD,EAAQ7C,MAAMN,EAAUM,QAAU,KAG1FgN,EAAgC,eAAS,KAC7C,MAAMxI,EAAUgI,EAAe3J,EAAQ7C,OAAOyH,YAAYiB,OAAOlB,IAAMA,EAAE5E,EAAa5C,QACtF,OAAOwE,EAAQA,EAAQjE,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQyD,EAAQ7C,MAAMN,EAAUM,QAAU,KAG1FiN,EAA6B,eAAS,IACnC,IAAIR,EAAUzM,MAAMyH,YAAYiB,OAAOlB,IAAMA,EAAE5E,EAAa5C,SAASmE,OAAO,GAAG,IAGlF+I,EAA6B,eAAS,IACnC,IAAIP,EAAU3M,MAAMyH,YAAYiB,OAAOlB,IAAMA,EAAE5E,EAAa5C,SAASmE,OAAO,GAAG,IAKlFgJ,EAAapK,MACPF,EAAQ7C,UACd+C,EAAOC,OAASH,EAAQ7C,MAAMN,EAAUM,QAAU+C,EAAOrD,EAAUM,aACnDb,IAAjB4D,EAAOC,OAAuBH,EAAQ7C,MAAMmM,EAAWnM,QAAU+C,EAAOoJ,EAAWnM,eAC1Eb,EAGRiO,EAAkB,KACtBtK,EAAW0B,EAAQxE,MAAM,IAAM,OAG3BqN,EAAgB,KACfxK,EAAQ7C,QAA+C,IAAtC6C,EAAQ7C,MAAM4C,EAAa5C,SAI7CsM,EAAetM,MACjBwJ,EAAiB3G,EAAQ7C,OAEzBkJ,EAAkBrG,EAAQ7C,SAIxBsN,EAAiB,KACrB,GAAsB,OAAlBzK,EAAQ7C,MACV8C,GAAYiD,EAAS/F,OAASqM,EAAerM,MAAQ2C,EAAO3C,MAAM,GAAKwE,EAAQxE,MAAM,KAAO,WAEzF,GAAI+F,EAAS/F,OAASqM,EAAerM,MAAO,CAC/C,IAAIuN,EAAcjB,EAAetM,MAAQ8M,EAA+B9M,MAAQgN,EAA8BhN,WAE1Fb,IAAhBoO,IACFA,EAAcX,EAAU5M,OAG1B8C,EAAWyK,GAA0C,UAChD,CACL,IAAIC,EAAOhJ,EAAQxE,MAAMO,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQyD,EAAQ7C,MAAMN,EAAUM,QAAU,EAE5FwE,EAAQxE,MAAMqE,QAAUmJ,IAC1BA,EAAO,GAGT1K,EAAW0B,EAAQxE,MAAMwN,IAAS,MAGpC,eAAS,KACPC,OAIEC,EAAkB,KACtB,GAAsB,OAAlB7K,EAAQ7C,MAAgB,CAC1B,IAAI2N,EAAcnJ,EAAQxE,MAAMwE,EAAQxE,MAAMqE,OAAS,GAEnD0B,EAAS/F,OAASqM,EAAerM,QACnC2N,EAAcT,EAA2BlN,WAErBb,IAAhBwO,IACFA,EAAchB,EAAU3M,QAI5B8C,EAAW6K,GAAgB,WAExB,GAAI5H,EAAS/F,OAASqM,EAAerM,MAAO,CAC/C,IAAI2N,EAAcrB,EAAetM,MAAQiN,EAA2BjN,MAAQ+M,EAA8B/M,WAEtFb,IAAhBwO,IACFA,EAAcrB,EAAetM,MAAQyM,EAAUzM,MAAQuM,EAAavM,OAGtE8C,EAAW6K,GAA0C,UAChD,CACL,IAAIC,EAAYpJ,EAAQxE,MAAMO,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQyD,EAAQ7C,MAAMN,EAAUM,QAAU,EAEjG4N,EAAY,IACdA,EAAYpJ,EAAQxE,MAAMqE,OAAS,GAGrCvB,EAAW0B,EAAQxE,MAAM4N,IAAc,MAGzC,eAAS,KACPH,OAIEjB,EAAkBzJ,GACfJ,EAAO3C,MAAM6J,KAAM7G,IACoE,IAArFA,EAAMyE,YAAYlH,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQ2D,EAAOrD,EAAUM,SAM7EyN,EAA+B,KACnC,IAAII,EAAgBzB,EAAYpM,MAAM8N,cAAc,kBAEpD,IAAKD,EACH,OAGF,IAAIE,EAAUF,EAAcG,cAAcA,cAEtCjI,EAAS/F,QACX+N,EAAUzB,EAAetM,MACrB6N,EAAcG,cAAcA,cAAcA,cAC1CH,EAAcG,cAAcA,cAAcA,cAAcA,eAG1DH,EAAcI,UAAYJ,EAAcK,aAAeH,EAAQI,aAAeJ,EAAQK,YACxFL,EAAQK,UAAYP,EAAcI,UAAYJ,EAAcK,aAAeH,EAAQI,cAGjFN,EAAcI,UAAYF,EAAQK,YACpCL,EAAQK,UAAYP,EAAcI,YAqCtC,OA/BA,gBAAM5M,EAASnC,IACTgN,EAAWlM,QACTd,EAAImF,QAAU4H,EAAYjM,MAC5BoN,IAEAnK,OAKN,gBAAM9B,EAASjC,IACb,GAAIA,EAAK,CACP,IAAImP,EAAgBjC,EAAYpM,MAAMsO,iBAAiB,mBAAmB,GAE1E,IAAKD,EACH,OAGF,IAAIN,EAAUM,EAAcL,cAAcA,cAE1C,eAAS,KAEHD,EAAQK,UAAY,IAIxBL,EAAQK,UAAYC,EAAcJ,gBAKjC,CACLpL,UACAwJ,iBACAc,YACAC,kBACAC,gBACAC,iBACAI,mBAIJ,SAASa,EAAajP,EAAOC,EAASC,GAEpC,MAAM,SAAEgP,GAAa,eAAOlP,GAEtBM,EAAQ,iBAAqBC,MAI7BsB,EAAS,gBAAI,GAIbC,EAAO,KACPD,EAAOnB,OAASwO,EAASxO,QAI7BmB,EAAOnB,OAAQ,EACfT,EAAQa,KAAK,OAAQR,KAGjB4G,EAAQ,KACPrF,EAAOnB,QAIZmB,EAAOnB,OAAQ,EACfT,EAAQa,KAAK,QAASR,KAGxB,MAAO,CACLuB,SACAC,OACAoF,SAIJ,SAASiI,EAAgBnP,EAAOC,EAASC,GAEvC,MAAM,WAAE0M,EAAU,SAAEsC,GAAa,eAAOlP,GAIlCgC,EAAQ9B,EAAI8B,MACZF,EAAO5B,EAAI4B,KACXoF,EAAQhH,EAAIgH,MACZjF,EAAc/B,EAAI+B,YAClBJ,EAAS3B,EAAI2B,OAIbiL,EAAc,eAAI,MAElBsC,EAAO,eAAI,MAEXC,EAAW,gBAAI,GAEfC,EAAe,gBAAI,GAInBC,EAAW,eAAS,IACjB3C,EAAWlM,OAASwO,EAASxO,OAAS,EAAI,GAK7C8O,EAAO,KACP5C,EAAWlM,OACbsB,EAAMtB,MAAM8O,OAGd1C,EAAYpM,MAAM8O,QAGdxI,EAAQ,KACR4F,EAAWlM,QAAUwO,EAASxO,OAChCsB,EAAMtB,MAAMsG,SAIVyI,EAAW,CAACC,GAAa,KACzBR,EAASxO,QAIb2O,EAAS3O,OAAQ,EAEbgP,GACF5N,MAIEmF,EAAa,KACjBoI,EAAS3O,OAAQ,EAEjBsL,WAAW,KACJqD,EAAS3O,QACZwG,IACAjF,MAED,IAGC0N,EAAgB,KACpBF,EAASH,EAAa5O,QAGlBkP,EAAiB,KACrB3I,KAGI4I,EAAmB,KACvB5I,IACAuI,KAIIM,EAAmB3N,IACvBmN,EAAa5O,OAAQ,EAEjBmB,EAAOnB,QAAUyB,EAAEC,OAAO2N,YAAYjD,EAAYpM,QAAUyB,EAAEC,OAAO2N,YAAYX,EAAK1O,QACxFsL,WAAW,KACT/E,KACC,GACM+I,SAASC,cAAcF,YAAYjD,EAAYpM,SAAWmB,EAAOnB,OAC1E+O,IAGFzD,WAAW,KACTsD,EAAa5O,OAAQ,GACpB,IAGL,MAAO,CACLoM,cACAsC,OACAG,WACAF,WACAC,eACAE,OACAxI,QACAyI,WACAxI,aACA0I,gBACAC,iBACAC,mBACAC,mBAIJ,SAASI,EAAalQ,EAAOC,EAASC,GAEpC,MAAM,KACJG,EAAI,SAAE8P,EAAQ,cAAEC,EAAa,WAAExD,EAAU,YACzCD,EAAW,UAAEvM,EAAWiD,OAAQoD,EAChC4J,YAAaC,EAAY,UAAE/K,EAAWC,aAAcC,EAAa,QACjEiB,GACE,eAAO1G,GAELM,EAAQ,iBAAqBC,MAI7BC,EAAKN,EAAIM,GACTC,EAASP,EAAIO,OACbsB,EAAS7B,EAAI6B,OACbyB,EAAatD,EAAIsD,WACjBuK,EAAgB7N,EAAI6N,cACpBK,EAAkBlO,EAAIkO,gBACtBJ,EAAiB9N,EAAI8N,eACrBlB,EAAc5M,EAAI4M,YAClBsC,EAAOlP,EAAIkP,KACXvN,EAAS3B,EAAI2B,OACbC,EAAO5B,EAAI4B,KACX0N,EAAOtP,EAAIsP,KACXlH,EAAKpI,EAAIoI,GAKT9C,EAAe,eAAS,IACrBD,EAAU7E,OAAS+E,EAAc/E,QAAS,GAI7C2P,EAAc,eAAS,SACJxQ,IAAnBsQ,EAASzP,MACJyP,EAASzP,WAEcb,IAAvByQ,EAAa5P,MACb4P,EAAa5P,MAGf,CAAC,UAMJ6P,EAAiB,KAMF,SAAflQ,EAAKK,QAAqBiM,EAAYjM,OAAS8E,EAAa9E,OAASkM,EAAWlM,QAAU+F,EAAS/F,OACrG8C,EAAW8E,EAAG5H,MAAM4H,EAAG5H,MAAMO,IAAIiH,GAAKA,EAAE9H,EAAUM,QAAQZ,QAAQiC,EAAOrB,UAIvE8P,EAAiBrO,IAGrB,IAAIsO,EACAC,EAOJ,OAVAzQ,EAAQa,KAAK,UAAWqB,EAAG7B,IAKkC,IAAzD,CAAC,YAAa,aAAc,SAASR,QAAQqC,EAAEK,MAA8B,SAAfnC,EAAKK,QACrE+P,EAAU,IAAK3D,EAAYpM,MAAMsO,iBAAiB,oBAAqB5F,OAAOjH,GAAKA,IAAMiN,EAAK1O,OAC9FgQ,EAAcD,EAAQE,UAAUxO,GAAKA,IAAM6N,SAASC,gBAG9C9N,EAAEK,KACR,IAAK,YACH,GAAmB,WAAfnC,EAAKK,MACP,OAGF,GAAIkM,EAAWlM,QAA+C,IAAtC,CAAC,KAAM,IAAIZ,QAAQiC,EAAOrB,OAChD,OAGF,GAAwB,IAApBF,EAAGE,MAAMqE,OACX,OAGFtE,EAAO,IAAID,EAAGE,OAAOmE,MAAM,GAAG,IAC9B,MAEF,IAAK,QAGH,GAFA1C,EAAEO,kBAEmB,IAAjBgO,QAAsC7Q,IAAhB6Q,EAYxB,OAXAjQ,EAAO,IAAID,EAAGE,OAAO0I,OAAO,CAAClI,EAAGkJ,IAAMA,IAAMsG,SAExCA,IAAgBD,EAAQ1L,OAAS,IAC/B0L,EAAQ1L,OAAS,EACnB0L,EAAQA,EAAQ1L,OAAS,GAAGiC,QACnB4F,EAAWlM,MACpB0O,EAAK1O,MAAM8N,cAAc,SAASxH,QAElC8F,EAAYpM,MAAMsG,UAMxB,IAA4C,IAAxCqJ,EAAY3P,MAAMZ,QAAQ,UAAmB0F,EAAa9E,MAC5D,OAGF6P,IACAxC,IACA,MAEF,IAAK,IACH,IAAKvI,EAAa9E,QAAUkM,EAAWlM,MAKrC,OAJAyB,EAAEO,iBAEF6N,SACAxC,IAIF,IAAKvI,EAAa9E,MAChB,OAAO,EAGT,IAA4C,IAAxC2P,EAAY3P,MAAMZ,QAAQ,UAAmB0F,EAAa9E,MAC5D,OAGFyB,EAAEO,iBAEF6N,IACAxC,IACA,MAEF,IAAK,MACL,IAAK,IACL,IAAK,IACH,IAAwD,IAApDsC,EAAY3P,MAAMZ,QAAQqC,EAAEK,IAAIwB,iBAA0BwB,EAAa9E,MACzE,OAGF6P,IACAxC,IACA5L,EAAEO,iBACF,MAEF,IAAK,SACH8M,IACA,MAEF,IAAK,UAGH,GAFArN,EAAEO,kBAEGiK,EAAYjM,MACf,OAIGmB,EAAOnB,OACVoB,IAGFsM,IACA,MAEF,IAAK,YAGH,GAFAjM,EAAEO,kBAEGiK,EAAYjM,MACf,OAIGmB,EAAOnB,OACVoB,IAGFkM,IACA,MAEF,IAAK,YACH,GAAKpB,EAAWlM,OAAS0O,EAAK1O,MAAM8N,cAAc,SAASoC,gBAAmBzO,EAAE0O,UAA2B,SAAfxQ,EAAKK,QAAqBF,EAAGE,QAAUF,EAAGE,MAAMqE,OAC1I,OAGF5C,EAAEO,kBAEmB,IAAjBgO,EACFD,EAAQA,EAAQ1L,OAAO,GAAGiC,QAEnB0J,EAAc,GACrBD,EAAQC,EAAY,GAAG1J,QAEzB,MAEF,IAAK,aACH,IAAqB,IAAjB0J,GAAsBvO,EAAE0O,UAA2B,SAAfxQ,EAAKK,QAAqBF,EAAGE,QAAUF,EAAGE,MAAMqE,OACtF,OAGF5C,EAAEO,iBAGE+N,EAAQ1L,OAAS2L,EAAc,EACjCD,EAAQC,EAAY,GAAG1J,QAEhB4F,EAAWlM,MAClB0O,EAAK1O,MAAM8N,cAAc,SAASxH,QAE1B4F,EAAWlM,OACnBoM,EAAYpM,MAAMsG,QAGpB,QAIA8J,EAAe3O,IACnBlC,EAAQa,KAAK,QAASqB,EAAG7B,IAG3B,MAAO,CACLkQ,gBACAM,cACAP,kBAIJ,SAASQ,EAAY/Q,EAAOC,EAAS+Q,GACpC,MACGC,QAASC,EAAQ,SAAEhC,EAAQ,cAAEkB,EAAa,YAAEzD,GAC1C,eAAO3M,GAIL6B,EAASmP,EAAanP,OACtBgM,EAAYmD,EAAanD,UACzBrE,EAAawH,EAAaxH,WAC1BE,EAAasH,EAAatH,WAC1B2F,EAAW2B,EAAa3B,SACxBtC,EAAiBiE,EAAajE,eAC9B1F,EAAY2J,EAAa3J,UACzBiB,EAAK0I,EAAa1I,GAElB2I,EAAU,eAAS,KAAM,CAC7BE,UAAW,cACXC,kBAAmB,cACnBC,cAAe,UACfC,iBAAkB,cAClBC,gBAAiB,YACjBC,YAAa,2BACbC,gBAAiB,gCACjB3L,cAAe,6BACf/D,OAAQ,qBACRqN,KAAM,mBACNsC,IAAK,kBACLC,YAAa,cACbC,UAAW,yBACXC,cAAe,8BACfC,kBAAmB,kCACnBC,WAAY,0BACZC,eAAgB,+BAChBC,YAAa,0BACbC,MAAO,oBACPC,UAAW,UACXhJ,MAAO,oBACPiJ,UAAW,yBACXC,QAAS,sBACTC,UAAW,sBACXC,iBAAkB,8BAClBC,SAAU,uBACVC,YAAa,SACbC,eAAgB,YAChBxN,QAAS,sBACTyN,WAAY,SACZjP,MAAO,oBACPmJ,WAAY,0BACZ+F,oBAAqB,eACrBC,kBAAmB,aACnBC,mBAAoB,cACpBC,mBAAoB,cACpBC,0BAA2B,yBAC3BC,2BAA4B,0BAC5BrM,aAAc,4BACdnD,OAAQ,qBACRyP,cAAe,aACfC,eAAgB,cAChBC,eAAgB,cAChBC,sBAAuB,yBACvBC,uBAAwB,0BACxB7K,UAAW,yBACXC,UAAW,yBACX6K,UAAW,yBACXC,OAAQ,wBACLtC,EAASxQ,SAKR+S,EAAe,eAAS,OAClB5R,EAAOnB,OAASiM,EAAYjM,SAAW2G,EAAU3G,OAAU2G,EAAU3G,OAAS4H,EAAG5H,MAAMqE,UAG7F2O,EAAY,eAAS,KACzB,MAAMxQ,EAAI+N,EAAQvQ,MAElB,MAAO,CACLyQ,UAAW,CAACjO,EAAEiO,WACXtJ,OAAOqH,EAASxO,MAAQwC,EAAEkO,kBAAoB,IAC9CvJ,OAAO4L,EAAa/S,OAAiC,QAAxB0P,EAAc1P,MAAmBwC,EAAEoO,iBAAmB,IACnFzJ,OAAO4L,EAAa/S,OAAiC,QAAxB0P,EAAc1P,MAAkBwC,EAAEmO,cAAgB,IAC/ExJ,OAAOwH,EAAS3O,MAAQwC,EAAEqO,gBAAkB,IAC/CiC,OAAQtQ,EAAEsQ,OACVhC,YAAatO,EAAEsO,YACfC,gBAAiBvO,EAAEuO,gBACnB3L,cAAe5C,EAAE4C,cACjB/D,OAAQmB,EAAEnB,OACVqN,KAAMlM,EAAEkM,KACRsC,IAAK,CAACxO,EAAEwO,KACL7J,OAAOqH,EAASxO,MAAQwC,EAAEyO,YAAc,IAC3CC,UAAW1O,EAAE0O,UACbC,cAAe3O,EAAE2O,cACjBC,kBAAmB5O,EAAE4O,kBACrBC,WAAY7O,EAAE6O,WACdC,eAAgB9O,EAAE8O,eAClBC,YAAa/O,EAAE+O,YACfC,MAAO,CAAChP,EAAEgP,OACPrK,OAAOhG,EAAOnB,MAAQwC,EAAEiP,UAAY,IACvChJ,MAAOjG,EAAEiG,MACTiJ,UAAWlP,EAAEkP,UACbC,QAASnP,EAAEmP,QACXC,UAAWpP,EAAEoP,UACbC,iBAAkBrP,EAAEqP,iBACpBC,SAAU,CAACtP,EAAEsP,UACV3K,OAA+B,QAAxBuI,EAAc1P,MAAkBwC,EAAEuP,YAAc,IACvD5K,OAAQhG,EAAOnB,OAAUiM,EAAYjM,OAAU+S,EAAa/S,MAA2B,GAAnBwC,EAAEwP,gBACzExN,QAAS,CAAChC,EAAEgC,SACT2C,OAA+B,QAAxBuI,EAAc1P,MAAkBwC,EAAEyP,WAAa,IACzDjP,MAAOR,EAAEQ,MACTmJ,WAAalC,IACX,IAAIkC,EAAa,CAAC3J,EAAE2J,YAcpB,OAZIgB,EAAUlD,GACZkC,EAAWlF,KAAK6B,EAAWmB,GAAKzH,EAAE8P,0BAA4B9P,EAAE2P,mBACvDrJ,EAAWmB,IAAMoC,EAAerM,MACzCmM,EAAWlF,KAAK+B,EAAWiB,GAAKzH,EAAE+P,2BAA6B/P,EAAE4P,oBACxDpJ,EAAWiB,IACpBkC,EAAWlF,KAAKzE,EAAE6P,oBAGhBhG,EAAerM,OACjBmM,EAAWlF,KAAKzE,EAAE0P,qBAGb/F,GAETjG,aAAc1D,EAAE0D,aAChBnD,OAAQ,CAACyE,EAAGyC,KACV,IAAIlH,EAAS,CAACP,EAAEO,QAUhB,OARIoK,EAAU3F,GACZzE,EAAOkE,KAAK6B,EAAWtB,GAAKhF,EAAEmQ,sBAAwBnQ,EAAEgQ,eAC/C1J,EAAWtB,GACpBzE,EAAOkE,KAAK+B,EAAWxB,GAAKhF,EAAEoQ,uBAAyBpQ,EAAEiQ,iBAChDzJ,EAAWxB,IAAOyC,GAAKjB,EAAWiB,KAC3ClH,EAAOkE,KAAKzE,EAAEkQ,gBAGT3P,GAETgF,UAAWvF,EAAEuF,UACbC,UAAWxF,EAAEwF,UACb6K,UAAWrQ,EAAEqQ,aAIjB,MAAO,CACLG,YACAD,gBAIJ,SAASE,EAAa3T,EAAOC,EAASC,GAEpC,MAAM,MACJmF,EAAK,SAAEsB,GACL,eAAO3G,GAIL6B,EAAS3B,EAAI2B,OACb0F,EAASrH,EAAIqH,OACbxF,EAAS7B,EAAI6B,OACbqG,EAAMlI,EAAIkI,IACVZ,EAAKtH,EAAIsH,GAKToM,EAAW,eAAI,MAEfC,EAAiB,eAAI,MAIrBC,EAAU,eAAS,IAChBvM,EAAO7G,MAAQ0H,EAAI1H,MAAMqE,QAO5BgP,EAA8BC,IAClC,MAAM,eAAEC,EAAc,OAAE7R,GAAW4R,EAAQ,GAE3C,GAAIC,EAAgB,CAClB,MAAMC,EAAS9R,EAAO+R,aAChBrF,EAAYoF,EAAOpF,UAEzBvH,EAAO7G,QAAyB,GAAhB2E,EAAM3E,MAAc,GAAK2E,EAAM3E,MAE/C,eAAS,KACPwT,EAAOpF,UAAYA,MAKnBsF,EAAU,KAEVvS,EAAOnB,OAAS6G,EAAO7G,MAAQ0H,EAAI1H,MAAMqE,OAC3C6O,EAASlT,MAAM0T,QAAQP,EAAenT,QAC5BmB,EAAOnB,OAASkT,EAASlT,OACnCkT,EAASlT,MAAM2T,cAyCnB,OAnCA,gBAAMxS,EAAQ,KACP8E,EAASjG,OAId0T,MAGF,gBAAMrS,EAAQ,KACP4E,EAASjG,QAId6G,EAAO7G,MAAQ2E,EAAM3E,MAErB0T,MACC,CAAEnI,MAAO,SAEZ,gBAAMzE,EAAI,KACHb,EAASjG,OAId0T,KACC,CAAEE,WAAW,EAAOrI,MAAO,SAI9B,eAAU,KAEJpJ,QAAUA,OAAO0R,uBACnBX,EAASlT,MAAQ,IAAI6T,qBAAqBR,MAIvC,CACLD,UACAD,kBAIJ,SAASW,EAAWxU,EAAOC,EAASC,GAElC,MAAM,YAAE+R,EAAW,GAAEwC,EAAE,UAAErU,EAAWsF,MAAOgP,EAAS,KAAErU,EAAI,WAAEwM,GAAe,eAAO7M,GAI5EuD,EAAUrD,EAAIqD,QACpBrD,EAAIM,GACJN,EAAIqI,YACJrI,EAAIsI,kBACJtI,EAAI2B,OAIJ,MAAM6D,EAAQ,eAAI,MAIZiP,EAAW,eAAS,KACxB,IAAIC,EAAQ,GAQZ,OANIH,GAAMA,EAAG/T,OACXkU,EAAMjN,KAAK8M,EAAG/T,OAGhBkU,EAAMjN,KAAK,uBAEJiN,EAAMpT,KAAK,OAGdqT,EAAuB,eAAS,KACpC,IAAID,EAAQ,GAMZ,GAJIH,GAAMA,EAAG/T,OACXkU,EAAMjN,KAAK8M,EAAG/T,OAGZ6C,EAAQ7C,MAKV,OAJAkU,EAAMjN,KAAKpE,EAAQ7C,MAAMgD,MAAQ,oBAAsB,sBAEvDkR,EAAMjN,KAAKpE,EAAQ7C,MAAMgD,MAAQH,EAAQ7C,MAAMsE,MAAQzB,EAAQ7C,MAAMN,EAAUM,QAExEkU,EAAMpT,KAAK,OAMhBsT,EAAkB,eAAS,IACxB7C,EAAYvR,OAGfqU,EAAsB,eAAS,IACb,WAAf1U,EAAKK,OAKRsU,EAAgBvR,IACpB,IAAImR,EAAQ,GAUZ,OARIH,GAAMA,EAAG/T,OACXkU,EAAMjN,KAAK8M,EAAG/T,OAGhBkU,EAAMjN,KAAK,sBAEXiN,EAAMjN,KAAKlE,EAAOrD,EAAUM,QAErBkU,EAAMpT,KAAK,MAGdyT,EAAexR,IACnB,IAAImR,EAAQ,GAUZ,OARIH,GAAMA,EAAG/T,OACXkU,EAAMjN,KAAK8M,EAAG/T,OAGhBkU,EAAMjN,KAAK,qBAEXiN,EAAMjN,KAAKlE,EAAOuB,OAEX4P,EAAMpT,KAAK,MAGd0T,EAAmBzR,IACvB,IAAImR,EAAQ,GAIZ,OAFAA,EAAMjN,KAAKlE,EAAOiR,EAAUhU,QAErBkU,EAAMpT,KAAK,MAGd2T,EAAkBzR,IACtB,IAAIkR,EAAQ,GAIZ,OAFAA,EAAMjN,KAAKjE,EAAMmJ,EAAWnM,QAErBkU,EAAMpT,KAAK,MAGd4T,EAAgB1P,GACVA,EAAH,KAaT,OARA,eAAU,KAER,GAAI+O,GAAMA,EAAG/T,OAASsP,UAAYA,SAASxB,cAAe,CACxD,IAAI6G,EAASrF,SAASxB,cAAc,SAASiG,EAAG/T,WAChDgF,EAAMhF,MAAQ2U,EAASA,EAAOC,UAAY,QAIvC,CACLX,WACAG,kBACAC,sBACAF,uBACAG,eACAE,kBACAD,cACAE,iBACAC,gBAIJ,SAASG,EAAavV,EAAOC,EAASuV,EAAUC,EAAO,IAYrD,OAXAD,EAAS/N,QAASiO,IAEZA,IACFD,EAAO,IACFA,KACAC,EAAW1V,EAAOC,EAASwV,OAM7BA,EAGT,IAAIE,EAAS,CACTC,KAAM,cACNC,MAAO,CACL,QAAS,OAAQ,QAAS,SAAU,WACpC,QAAS,gBAAiB,MAAO,SAAU,oBAC3C,SAAU,QAAS,UAAW,SAEhC7V,MAAO,CACLU,MAAO,CACLoV,UAAU,GAEZ1U,WAAY,CACV0U,UAAU,GAEZ5Q,QAAS,CACP6Q,KAAM,CAAChV,MAAOsD,OAAQ2R,UACtBF,UAAU,EACVG,QAAS,IAAM,IAEjBxB,GAAI,CACFsB,KAAM,CAAChS,OAAQmS,QACfJ,UAAU,GAEZF,KAAM,CACJG,KAAM,CAAChS,OAAQmS,QACfJ,UAAU,EACVG,QAAS,eAEX/G,SAAU,CACR6G,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXvQ,MAAO,CACLqQ,KAAMhS,OACN+R,UAAU,EACVG,QAAS,SAEX9Q,QAAS,CACP4Q,KAAMhS,OACN+R,UAAU,EACVG,aAASpW,GAEXO,UAAW,CACT2V,KAAMhS,OACN+R,UAAU,EACVG,QAAS,SAEXhE,YAAa,CACX8D,KAAMhS,OACN+R,UAAU,EACVG,QAAS,MAEX5V,KAAM,CACJ0V,KAAMhS,OACN+R,UAAU,EACVG,QAAS,UAEXrJ,WAAY,CACVmJ,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX5Q,MAAO,CACL0Q,KAAMG,OACNJ,UAAU,EACVG,SAAU,GAEZ3Q,aAAc,CACZyQ,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX1Q,UAAW,CACTwQ,KAAMI,QACNL,UAAU,EACVG,aAASpW,GAEX2F,aAAc,CACZuQ,KAAMI,QACNL,UAAU,EACVG,aAASpW,GAEX8F,aAAc,CACZoQ,KAAMI,QACNL,UAAU,EACVG,aAASpW,GAEX+F,gBAAiB,CACfmQ,KAAMI,QACNL,UAAU,EACVG,aAASpW,GAEXsQ,SAAU,CACR4F,KAAMhV,MACN+U,UAAU,EACVG,aAASpW,GAEXwQ,YAAa,CACX0F,KAAMhV,MACN+U,UAAU,EACVG,aAASpW,GAEXqS,MAAO,CACL6D,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXlQ,QAAS,CACPgQ,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXG,cAAe,CACbL,KAAMhS,OACN+R,UAAU,EACVG,QAAS,qBAEXI,cAAe,CACbN,KAAMhS,OACN+R,UAAU,EACVG,QAAS,oBAEXnQ,cAAe,CACbiQ,KAAMC,SACNF,UAAU,GAEZ3V,OAAQ,CACN4V,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXjQ,MAAO,CACL+P,KAAMG,OACNJ,UAAU,EACVG,SAAU,GAEZ/P,SAAU,CACR6P,KAAMG,OACNJ,UAAU,EACVG,QAAS,GAEXhQ,cAAe,CACb8P,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX9P,cAAe,CACb4P,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX7P,cAAe,CACb2P,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX5P,cAAe,CACb0P,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX3P,YAAa,CACXyP,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXK,SAAU,CACRP,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX1P,IAAK,CACHwP,KAAMG,OACNJ,UAAU,EACVG,SAAU,GAEZtJ,YAAa,CACXoJ,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXH,SAAU,CACRC,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX7F,cAAe,CACb2F,KAAMhS,OACN+R,UAAU,EACVG,QAAS,UAEXM,cAAe,CACbR,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXhF,QAAS,CACP8E,KAAM1R,OACNyR,UAAU,EACVG,QAAS,KAAM,KAEjBnS,OAAQ,CACNiS,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXzP,cAAe,CACbuP,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXO,aAAc,CACZT,KAAMhS,OACN+R,UAAU,GAEZzS,OAAQ,CACN0S,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXpJ,WAAY,CACVkJ,KAAMhS,OACN+R,UAAU,EACVG,QAAS,SAEXrP,aAAc,CACZmP,KAAMhS,OACN+R,UAAU,EACVG,QAAS,WAEXpP,eAAgB,CACdkP,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEX7S,YAAa,CACX2S,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXQ,UAAW,CACTV,KAAMhS,OACN+R,UAAU,EACVG,QAAS,QAEXS,MAAO,CACLZ,UAAU,EACVC,KAAM1R,OACN4R,QAAS,KAAM,KAEjBnP,SAAU,CACRgP,UAAU,EACVC,KAAMC,UAER1S,aAAc,CACZyS,KAAMhS,OACN+R,UAAU,EACVG,QAAS,YAEXlP,YAAa,CACXgP,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXvP,QAAS,CACPqP,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXrU,MAAO,CACLmU,KAAM,CAAC1R,OAAQN,OAAQxB,QACvBuT,UAAU,EACVG,aAASpW,GAEX8W,IAAK,CACHZ,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXtP,SAAU,CACRoP,KAAMI,QACNL,UAAU,EACVG,SAAS,GAEXW,KAAM,CACJd,UAAU,EACVC,KAAM1R,OACN4R,QAAS,KAAM,MAGnB,MAAMjW,EAAOC,GAEX,OAAOsV,EAAYvV,EAAOC,EAAS,CACjCkB,EACAgC,EACA8L,EACAtN,EACA5B,EACAoP,EACAlK,EACA0O,EACAjH,EACAwD,EACAa,EACAyD,MAKR,MAAMqC,EAAa,CAAC,WAAY,KAAM,MAAO,YAAa,mBAAoB,gBAAiB,wBAAyB,uBAAwB,QAC1IC,EAAa,CAAC,OAAQ,aAAc,QAAS,eAAgB,KAAM,YAAa,mBAAoB,gBAAiB,wBAAyB,wBAC9IC,EAAa,CAAC,UAAW,cACzBC,EAAa,CAAC,WACdC,EAAa,CAAC,OAAQ,aAAc,QAAS,KAAM,eAAgB,YAAa,mBAAoB,gBAAiB,wBAAyB,wBAC9IC,EAAa,CAAC,aACdC,EAAa,CAAC,aACdC,EAAa,CAAC,MACdC,EAAa,CAAC,KAAM,aAAc,iBAClCC,EAAc,CAAC,eAAgB,eAAgB,WAC/CC,EAAc,CAAC,aACfC,EAAc,CAAC,cACfC,EAAc,CAAC,eAAgB,gBAAiB,eAAgB,UAAW,KAAM,gBAAiB,cAClGC,EAAc,CAAC,aACfC,EAAc,CAAC,eAAgB,gBAAiB,eAAgB,UAAW,KAAM,gBAAiB,cAClGC,EAAc,CAAC,aACfC,EAAc,CAAC,aACfC,EAAc,CAAC,aACfC,EAAc,CAAC,SACfC,EAAc,CAAC,OAAQ,SACvBC,EAAc,CAAC,OAAQ,SAE7B,SAASC,EAAOC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACnD,OAAQ,iBAAa,eAAmB,MAAO,eAAW,CACxDC,IAAK,cACLlJ,SAAU4I,EAAK5I,SACfmJ,MAAOP,EAAKzE,UAAUvC,UACtBsD,GAAI4D,EAAOzL,gBAAa/M,EAAYwY,EAAO5D,GAC3CkE,IAAKN,EAAO1B,IAAM,WAAQ9W,EAC1B+Y,UAAWR,EAAO,KAAOA,EAAO,GAAK,IAAIS,IAAUV,EAAKxI,eAAiBwI,EAAKxI,iBAAiBkJ,IAC/FC,WAAYV,EAAO,MAAQA,EAAO,IAAM,IAAIS,IAAUV,EAAKvI,gBAAkBuI,EAAKvI,kBAAkBiJ,IACpGE,UAAWX,EAAO,MAAQA,EAAO,IAAM,IAAIS,IAAUV,EAAK3H,eAAiB2H,EAAK3H,iBAAiBqI,IACjGG,QAASZ,EAAO,MAAQA,EAAO,IAAM,IAAIS,IAAUV,EAAKrH,aAAeqH,EAAKrH,eAAe+H,IAC3FI,YAAab,EAAO,MAAQA,EAAO,IAAM,IAAIS,IAAUV,EAAKrI,iBAAmBqI,EAAKrI,mBAAmB+I,IACvG,YAAcR,EAAOzL,gBAA6B/M,EAAhBsY,EAAKxD,SACvC,mBAAqB0D,EAAOzL,gBAAoC/M,EAAvBsY,EAAKrD,gBAC9C,gBAAkBuD,EAAOzL,gBAA2B/M,EAAdsY,EAAKtW,OAC3C,wBAA0BwW,EAAOzL,gBAAyC/M,EAA5BsY,EAAKtD,qBACnD,uBAAyBwD,EAAOzL,gBAAwC/M,EAA3BsY,EAAKpD,oBAClDmE,KAAOb,EAAOzL,gBAAyB/M,EAAZ,WACzBwY,EAAOzL,WAA2B,GAAdyL,EAAOzB,MAAY,CACzC,eAAmB,YACF,SAAhByB,EAAOhY,MAAmBgY,EAAOzL,aAAeyL,EAAOnJ,UACnD,iBAAa,eAAmB,QAAS,eAAW,CACnD1M,IAAK,EACLuT,KAAMsC,EAAO5B,UACbrV,WAAY+W,EAAKpW,OACjBrB,MAAOyX,EAAKpW,OACZ2W,MAAOP,EAAKzE,UAAU3R,OACtByU,aAAc6B,EAAO7B,aACrB/B,GAAI4D,EAAOzL,WAAayL,EAAO5D,QAAK5U,EACpCsZ,QAASf,EAAO,KAAOA,EAAO,GAAK,IAAIS,IAAUV,EAAKjW,mBAAqBiW,EAAKjW,qBAAqB2W,IACrGO,WAAYhB,EAAO,KAAOA,EAAO,GAAK,IAAIS,IAAUV,EAAK9V,gBAAkB8V,EAAK9V,kBAAkBwW,IAClGQ,QAASjB,EAAO,KAAOA,EAAO,GAAK,gBAAc,IAAIS,IAAUV,EAAKxV,aAAewV,EAAKxV,eAAekW,GAAQ,CAAC,UAChHJ,IAAK,QACL,YAAaN,EAAKxD,SAClB,mBAAoBwD,EAAKrD,gBACzB,gBAAiBqD,EAAKtW,OACtB,wBAAyBsW,EAAKtD,qBAC9B,uBAAwBsD,EAAKpD,oBAC7BmE,KAAM,WACL,IACEb,EAAO3B,SACP2B,EAAOzB,OACR,KAAM,GAAqBE,IAC/B,eAAmB,QAAQ,GAC/B,eAAmB,wBACH,QAAfuB,EAAOhY,MACH,iBAAa,eAAmB,MAAO,CACtCmC,IAAK,EACLkW,MAAO,eAAeP,EAAKzE,UAAUtE,MACrC,YAAa,IACZ,EACA,gBAAU,GAAO,eAAmB,OAAU,KAAM,eAAW+I,EAAK3X,GAAI,CAACiD,EAAQmI,EAAGpJ,IAC5E,eAAW2V,EAAKmB,OAAQ,MAAO,CACpC7V,OAAQA,EACR6F,gBAAiB6O,EAAK7O,gBACtB4F,SAAUmJ,EAAOnJ,UAChB,IAAM,EACN,iBAAa,eAAmB,OAAQ,CACvCwJ,MAAO,eAAeP,EAAKzE,UAAUhC,KACrCnC,SAAU,KACVyJ,QAAS,gBAASO,GAAWpB,EAAK7O,gBAAgB7F,EAAQ8V,GAAU,CAAC,UACrE/W,IAAKA,EACL,aAAc2V,EAAK/C,aAAa3R,EAAO4U,EAAO3S,SAC7C,CACD,eAAgB,eAAgBjC,EAAO4U,EAAO3S,QAAU,IAAK,GAC3D2S,EAAOnJ,SAUL,eAAmB,QAAQ,IAT1B,iBAAa,eAAmB,OAAQ,CACvC1M,IAAK,EACLkW,MAAO,eAAeP,EAAKzE,UAAU9B,WACrC4H,QAASD,GAAWpB,EAAK7O,gBAAgB7F,EAAQ8V,IAChD,CACD,eAAmB,OAAQ,CACzBb,MAAO,eAAeP,EAAKzE,UAAU7B,gBACpC,KAAM,IACR,GAAuBmF,KAE7B,GAAuCD,OAE1C,MACJ,eAAmB,MAAO,CACxB2B,MAAO,eAAeP,EAAKzE,UAAU5B,mBACrC2G,IAAK,QACJ,CACD,eAAmB,qCACnB,eAAmB,OAAQ,CACzBC,MAAO,eAAeP,EAAKzE,UAAU1B,iBACpC,eAAgBmG,EAAKpW,QAAS,GACjC,eAAmB,yBAClBsW,EAAOzL,aAAeyL,EAAOnJ,UACzB,iBAAa,eAAmB,QAAS,eAAW,CACnD1M,IAAK,EACLuT,KAAMsC,EAAO5B,UACbrV,WAAY+W,EAAKpW,OACjBrB,MAAOyX,EAAKpW,OACZ2W,MAAOP,EAAKzE,UAAU3B,WACtB0C,GAAI4D,EAAOzL,WAAayL,EAAO5D,QAAK5U,EACpC2W,aAAc6B,EAAO7B,aACrB2C,QAASf,EAAO,KAAOA,EAAO,GAAK,IAAIS,IAAUV,EAAKjW,mBAAqBiW,EAAKjW,qBAAqB2W,IACrGO,WAAYhB,EAAO,KAAOA,EAAO,GAAK,IAAIS,IAAUV,EAAK9V,gBAAkB8V,EAAK9V,kBAAkBwW,IAClGQ,QAASjB,EAAO,KAAOA,EAAO,GAAK,gBAAc,IAAIS,IAAUV,EAAKxV,aAAewV,EAAKxV,eAAekW,GAAQ,CAAC,UAChHJ,IAAK,QACL,YAAaN,EAAKxD,SAClB,mBAAoBwD,EAAKrD,gBACzB,gBAAiBqD,EAAKtW,OACtB,wBAAyBsW,EAAKtD,qBAC9B,uBAAwBsD,EAAKpD,oBAC7BmE,KAAM,WACL,IACFb,EAAO3B,SACP2B,EAAOzB,OACR,KAAM,GAAqBK,IAC3B,eAAmB,QAAQ,IAC9B,IACF,IACH,eAAmB,QAAQ,GAC/B,eAAmB,kBACH,UAAfoB,EAAOhY,MAAoB8X,EAAK5P,cAAgB4P,EAAKpW,QAAUoW,EAAK3X,GACjE,eAAW2X,EAAKmB,OAAQ,cAAe,CACrC9W,IAAK,EACL9B,MAAOyX,EAAK3X,IACX,IAAM,CACP,eAAmB,MAAO,CACxBkY,MAAO,eAAeP,EAAKzE,UAAUlC,aACrC,cAAe,QACd,CACD,eAAmB,OAAQ,CACzBkH,MAAO,eAAeP,EAAKzE,UAAUjC,iBACrCgI,UAAWtB,EAAK3X,GAAG6X,EAAO3S,QACzB,KAAM,GAAuBwR,IAC/B,KAEL,eAAmB,QAAQ,GAC/B,eAAmB,oBACH,YAAfmB,EAAOhY,MAAsB8X,EAAK5P,cAAgB4P,EAAKpW,OACpD,eAAWoW,EAAKmB,OAAQ,gBAAiB,CACvC9W,IAAK,EACLkX,OAAQvB,EAAK3X,IACZ,IAAM,CACP,eAAmB,MAAO,CACxBkY,MAAO,eAAeP,EAAKzE,UAAU5N,eACrC2T,UAAWtB,EAAK3P,kBAChB,cAAe,QACd,KAAM,GAAuB2O,KAElC,eAAmB,QAAQ,GAC/B,eAAmB,kBAClBkB,EAAOpG,aAAgBkG,EAAK5P,aAAgB4P,EAAKpW,OAO9C,eAAmB,QAAQ,GAN3B,eAAWoW,EAAKmB,OAAQ,cAAe,CAAE9W,IAAK,GAAK,IAAM,CACvD,eAAmB,MAAO,CACxBkW,MAAO,eAAeP,EAAKzE,UAAUzB,aACrC,cAAe,QACd,eAAgBoG,EAAOpG,aAAc,KAG9C,eAAmB,aAClBoG,EAAOtS,SAAWoS,EAAK9Q,UACpB,eAAW8Q,EAAKmB,OAAQ,UAAW,CAAE9W,IAAK,GAAK,IAAM,CACnD,eAAmB,OAAQ,CACzBkW,MAAO,eAAeP,EAAKzE,UAAUrB,SACrC,cAAe,QACd,KAAM,KAEX,eAAmB,QAAQ,GAC/B,eAAmB,WAClB8F,EAAK5P,cAAgB8P,EAAOnJ,UAAYmJ,EAAO/B,WAAa6B,EAAKrP,KAC9D,eAAWqP,EAAKmB,OAAQ,QAAS,CAC/B9W,IAAK,EACL2G,MAAOgP,EAAKhP,OACX,IAAM,CACP,eAAmB,OAAQ,CACzBoG,SAAU,IACV2J,KAAM,SACN,aAAc,IACdR,MAAO,eAAeP,EAAKzE,UAAUvK,OACrCqQ,QAASpB,EAAO,KAAOA,EAAO,GAAK,IAAIS,IAAUV,EAAKhP,OAASgP,EAAKhP,SAAS0P,IAC7EG,QAASZ,EAAO,KAAOA,EAAO,GAAK,gBAAS,IAAIS,IAAUV,EAAKhP,OAASgP,EAAKhP,SAAS0P,GAAQ,CAAC,YAC9F,CACD,eAAmB,OAAQ,CACzBH,MAAO,eAAeP,EAAKzE,UAAUtB,YACpC,KAAM,IACR,MAEL,eAAmB,QAAQ,GAC/B,eAAmB,WAClBiG,EAAOnG,OAASmG,EAAO1L,YACpB,eAAWwL,EAAKmB,OAAQ,QAAS,CAAE9W,IAAK,GAAK,IAAM,CACjD,eAAmB,OAAQ,CACzBkW,MAAO,eAAeP,EAAKzE,UAAUxB,OACrCsH,QAASpB,EAAO,KAAOA,EAAO,GAAK,IAAIS,IAAUV,EAAKtI,kBAAoBsI,EAAKtI,oBAAoBgJ,IACnG,cAAe,QACd,KAAM,KAEX,eAAmB,QAAQ,GAC/B,eAAmB,aACnB,eAAmB,MAAO,CACxBH,MAAO,eAAeP,EAAKzE,UAAUlB,UACrCjD,SAAU,MACT,CACD,eAAW4I,EAAKmB,OAAQ,aAAc,CAAEpU,QAASiT,EAAK7P,KACtD,eAAmB,KAAM,CACvBoQ,MAAO,eAAeP,EAAKzE,UAAUxO,SACrCuP,GAAI0D,EAAKxD,UACR,CACA0D,EAAa,QACT,gBAAU,GAAO,eAAmB,OAAU,CAAE7V,IAAK,GAAK,eAAW2V,EAAKrQ,GAAI,CAACpE,EAAOkI,EAAGpJ,KAChF,iBAAa,eAAmB,KAAM,CAC5CkW,MAAO,eAAeP,EAAKzE,UAAUhQ,OACrClB,IAAKA,EACLiS,GAAI0D,EAAKlD,YAAYvR,GACrB,aAAcyU,EAAKhD,eAAezR,GAClC,gBAAiByU,EAAK3O,WAAW9F,GACjCwV,KAAM,UACL,CACD,eAAmB,MAAO,CACxBR,MAAO,eAAeP,EAAKzE,UAAU7G,WAAWnJ,IAChD,eAAgByU,EAAKtK,UAAUnK,GAC/BiW,aAAcJ,GAAWpB,EAAK3U,WAAWE,EAAOkI,GAChD4N,QAASD,GAAWpB,EAAKjO,iBAAiBxG,IACzC,CACD,eAAWyU,EAAKmB,OAAQ,aAAc,CACpC5V,MAAOA,EACP8F,WAAY2O,EAAK3O,WACjBqE,UAAWsK,EAAKtK,WACf,IAAM,CACP,eAAmB,OAAQ,CACzB4L,UAAW/V,EAAM2U,EAAOxL,aACvB,KAAM,EAAe0K,MAEzB,GAAuCD,GAC1C,eAAmB,KAAM,CACvBoB,MAAO,eAAeP,EAAKzE,UAAU9M,cACrC,aAAcuR,EAAKhD,eAAezR,GAClCwV,KAAM,SACL,EACA,gBAAU,GAAO,eAAmB,OAAU,KAAM,eAAWxV,EAAMyE,YAAa,CAAC1E,EAAQmI,EAAGpJ,KACrF,iBAAa,eAAmB,KAAM,CAC5CkW,MAAO,eAAeP,EAAKzE,UAAUjQ,OAAOA,EAAQC,IACpD,eAAgByU,EAAKtK,UAAUpK,GAC/B,gBAAiB0U,EAAK3O,WAAW/F,SAAW5D,EAC5C2C,IAAKA,EACLmX,aAAcJ,GAAWpB,EAAK3U,WAAWC,GACzC+V,QAASD,GAAWpB,EAAKvO,kBAAkBnG,GAC3CgR,GAAI0D,EAAKnD,aAAavR,GACtB,gBAAiB0U,EAAK3O,WAAW/F,GACjC,aAAc0U,EAAKjD,gBAAgBzR,GACnCyV,KAAM,UACL,CACD,eAAWf,EAAKmB,OAAQ,SAAU,CAChC7V,OAAQA,EACR+F,WAAY2O,EAAK3O,WACjBqE,UAAWsK,EAAKtK,UAChB9L,OAAQoW,EAAKpW,QACZ,IAAM,CACP,eAAmB,OAAQ,CACzB0X,UAAWhW,EAAO4U,EAAO3S,QACxB,KAAM,EAAegS,MAEzB,GAAuCD,KACxC,OACH,GAAuBD,IACzB,GAAuBH,KACxB,OACH,gBAAU,GAAO,eAAmB,OAAU,CAAE7U,IAAK,GAAK,eAAW2V,EAAK7P,GAAI,CAAC7E,EAAQmI,EAAGpJ,KACjF,iBAAa,eAAmB,KAAM,CAC5CkW,MAAO,eAAeP,EAAKzE,UAAUjQ,OAAOA,IAC5C,eAAgB0U,EAAKtK,UAAUpK,GAC/B,gBAAiB0U,EAAK3O,WAAW/F,SAAW5D,EAC5C2C,IAAKA,EACLmX,aAAcJ,GAAWpB,EAAK3U,WAAWC,GACzC+V,QAASD,GAAWpB,EAAKvO,kBAAkBnG,GAC3CgR,GAAI0D,EAAKnD,aAAavR,GACtB,gBAAiB0U,EAAK3O,WAAW/F,GACjC,aAAc0U,EAAKjD,gBAAgBzR,GACnCyV,KAAM,UACL,CACD,eAAWf,EAAKmB,OAAQ,SAAU,CAChC7V,OAAQA,EACR+F,WAAY2O,EAAK3O,WACjBqE,UAAWsK,EAAKtK,UAChB9L,OAAQoW,EAAKpW,QACZ,IAAM,CACP,eAAmB,OAAQ,CACzB0X,UAAWhW,EAAO4U,EAAO3S,QACxB,KAAM,EAAekS,MAEzB,GAAuCD,KACxC,OACP,GAAuBP,GACzBe,EAAc,UACX,eAAWA,EAAKmB,OAAQ,YAAa,CAAE9W,IAAK,GAAK,IAAM,CACrD,eAAmB,MAAO,CACxBkW,MAAO,eAAeP,EAAKzE,UAAUjL,WACrCgR,UAAWpB,EAAOjC,eACjB,KAAM,GAAuByB,KAElC,eAAmB,QAAQ,GAC9BM,EAAc,UACX,eAAWA,EAAKmB,OAAQ,YAAa,CAAE9W,IAAK,GAAK,IAAM,CACrD,eAAmB,MAAO,CACxBkW,MAAO,eAAeP,EAAKzE,UAAUhL,WACrC+Q,UAAWpB,EAAOhC,eACjB,KAAM,GAAuByB,KAElC,eAAmB,QAAQ,GAC9BO,EAAO1R,UAAYwR,EAAKrE,SACpB,iBAAa,eAAmB,MAAO,CACtCtR,IAAK,EACLkW,MAAO,eAAeP,EAAKzE,UAAUpB,WACrCmG,IAAK,kBACJ,CACD,eAAWN,EAAKmB,OAAQ,WAAY,GAAI,IAAM,CAC5C,eAAmB,OAAQ,CACzBZ,MAAO,eAAeP,EAAKzE,UAAUnB,mBACpC,KAAM,MAEV,IACH,eAAmB,QAAQ,GAC/B,eAAW4F,EAAKmB,OAAQ,YAAa,CAAEpU,QAASiT,EAAK7P,MACpD,GACH,eAAmB,wDAClB+P,EAAe,UACX,iBAAa,eAAmB,QAAS,CACxC7V,IAAK,EACLkW,MAAO,eAAeP,EAAKzE,UAAUH,WACrChE,SAAU,KACV7O,MAAOyX,EAAK5W,UACZuU,SAAU,IACT,KAAM,GAAuBiC,IAChC,eAAmB,QAAQ,GAC/B,eAAmB,0BAClBM,EAAoB,eAChB,iBAAa,eAAmB,OAAU,CAAE7V,IAAK,GAAK,CACrC,UAAf6V,EAAOhY,MACH,iBAAa,eAAmB,QAAS,CACxCmC,IAAK,EACLuT,KAAM,SACNH,KAAMyC,EAAOzC,KACblV,WAA2Bb,IAApBsY,EAAK7W,WAA2B6W,EAAK7W,WAAa,IACxD,KAAM,EAAe0W,KACvB,gBAAU,GAAO,eAAmB,OAAU,CAAExV,IAAK,GAAK,eAAW2V,EAAK7W,WAAY,CAACJ,EAAG0K,KACjF,iBAAa,eAAmB,QAAS,CAC/CmK,KAAM,SACNH,KAASyC,EAAOzC,KAAV,KACNlV,MAAOQ,EACPsB,IAAKoJ,GACJ,KAAM,EAAeqM,KACtB,OACP,KACH,eAAmB,QAAQ,GAC/B,eAAmB,mCACnB,eAAmB,MAAO,CACxBS,MAAO,eAAeP,EAAKzE,UAAUF,SACpC,KAAM,IACR,GAAqBqD,GAG1BlB,EAAOuC,OAASA,EAChBvC,EAAOiE,OAAS","file":"js/chunk-2d207e6e.b21f0d53.js","sourcesContent":["import { toRefs, getCurrentInstance, ref, computed, watch, nextTick, onMounted, openBlock, createElementBlock, mergeProps, createCommentVNode, withModifiers, normalizeClass, Fragment, renderList, renderSlot, withKeys, createTextVNode, toDisplayString, createElementVNode } from 'vue';\n\nfunction isNullish (val) {\n return [null, undefined].indexOf(val) !== -1\n}\n\nfunction useData (props, context, dep)\n{\n const { object, valueProp, mode } = toRefs(props);\n\n const $this = getCurrentInstance().proxy;\n\n // ============ DEPENDENCIES ============\n\n const iv = dep.iv;\n\n // =============== METHODS ==============\n\n const update = (val) => {\n // Setting object(s) as internal value\n iv.value = makeInternal(val);\n\n // Setting object(s) or plain value as external \n // value based on `option` setting\n const externalVal = makeExternal(val);\n\n context.emit('change', externalVal, $this);\n context.emit('input', externalVal);\n context.emit('update:modelValue', externalVal);\n }; \n\n // no export\n const makeExternal = (val) => {\n // If external value should be object\n // no transformation is required\n if (object.value) {\n return val\n }\n\n // No need to transform if empty value\n if (isNullish(val)) {\n return val\n }\n\n // If external should be plain transform\n // value object to plain values\n return !Array.isArray(val) ? val[valueProp.value] : val.map(v => v[valueProp.value])\n };\n\n // no export\n const makeInternal = (val) => {\n if (isNullish(val)) {\n return mode.value === 'single' ? {} : []\n }\n\n return val\n };\n\n return {\n update,\n }\n}\n\nfunction useValue (props, context)\n{\n const { value, modelValue, mode, valueProp } = toRefs(props);\n\n // ================ DATA ================\n\n // internalValue\n const iv = ref(mode.value !== 'single' ? [] : {});\n\n // ============== COMPUTED ==============\n\n /* istanbul ignore next */\n // externalValue\n const ev = modelValue && modelValue.value !== undefined ? modelValue : value;\n\n const plainValue = computed(() => {\n return mode.value === 'single' ? iv.value[valueProp.value] : iv.value.map(v=>v[valueProp.value])\n });\n\n const textValue = computed(() => {\n return mode.value !== 'single' ? iv.value.map(v=>v[valueProp.value]).join(',') : iv.value[valueProp.value]\n });\n\n return {\n iv,\n internalValue: iv,\n ev,\n externalValue: ev,\n textValue,\n plainValue,\n }\n}\n\nfunction useSearch (props, context, dep)\n{ const { regex } = toRefs(props);\n\n const $this = getCurrentInstance().proxy;\n\n // ============ DEPENDENCIES ============\n\n const isOpen = dep.isOpen;\n const open = dep.open;\n\n // ================ DATA ================\n\n const search = ref(null);\n\n const input = ref(null);\n\n // =============== METHODS ==============\n\n const clearSearch = () => {\n search.value = '';\n };\n\n const handleSearchInput = (e) => {\n search.value = e.target.value;\n };\n\n const handleKeypress = (e) => {\n if (regex && regex.value) {\n let regexp = regex.value;\n\n if (typeof regexp === 'string') {\n regexp = new RegExp(regexp);\n }\n\n if (!e.key.match(regexp)) {\n e.preventDefault();\n }\n }\n };\n\n const handlePaste = (e) => {\n if (regex && regex.value) {\n let clipboardData = e.clipboardData || /* istanbul ignore next */ window.clipboardData;\n let pastedData = clipboardData.getData('Text');\n\n let regexp = regex.value;\n\n if (typeof regexp === 'string') {\n regexp = new RegExp(regexp);\n }\n \n if (!pastedData.split('').every(c => !!c.match(regexp))) {\n e.preventDefault();\n }\n }\n\n context.emit('paste', e, $this);\n };\n\n // ============== WATCHERS ==============\n\n watch(search, (val) => {\n if (!isOpen.value && val) {\n open();\n }\n\n context.emit('search-change', val, $this);\n });\n\n return {\n search,\n input,\n clearSearch,\n handleSearchInput,\n handleKeypress,\n handlePaste,\n }\n}\n\nfunction usePointer$1 (props, context, dep)\n{\n const { groupSelect, mode, groups, disabledProp } = toRefs(props);\n\n // ================ DATA ================\n\n const pointer = ref(null);\n\n // =============== METHODS ==============\n\n const setPointer = (option) => {\n if (option === undefined || (option !== null && option[disabledProp.value])) {\n return\n }\n\n if (groups.value && option && option.group && (mode.value === 'single' || !groupSelect.value)) {\n return\n }\n\n pointer.value = option;\n };\n\n const clearPointer = () => {\n setPointer(null);\n };\n\n return {\n pointer,\n setPointer,\n clearPointer,\n }\n}\n\nfunction normalize (str, strict = true) {\n return strict\n ? String(str).toLowerCase().trim()\n : String(str).normalize('NFD').replace(/\\p{Diacritic}/gu, '').toLowerCase().trim()\n}\n\nfunction isObject (variable) {\n return Object.prototype.toString.call(variable) === '[object Object]'\n}\n\nfunction arraysEqual (array1, array2) {\n const array2Sorted = array2.slice().sort();\n\n return array1.length === array2.length && array1.slice().sort().every(function(value, index) {\n return value === array2Sorted[index];\n })\n}\n\nfunction useOptions (props, context, dep)\n{\n const { \n options, mode, trackBy: trackBy_, limit, hideSelected, createTag, createOption: createOption_, label,\n appendNewTag, appendNewOption: appendNewOption_, multipleLabel, object, loading, delay, resolveOnLoad,\n minChars, filterResults, clearOnSearch, clearOnSelect, valueProp,\n canDeselect, max, strict, closeOnSelect, groups: groupped, reverse, infinite,\n groupOptions, groupHideEmpty, groupSelect, onCreate, disabledProp, searchStart,\n } = toRefs(props);\n\n const $this = getCurrentInstance().proxy;\n\n // ============ DEPENDENCIES ============\n\n const iv = dep.iv;\n const ev = dep.ev;\n const search = dep.search;\n const clearSearch = dep.clearSearch;\n const update = dep.update;\n const pointer = dep.pointer;\n const clearPointer = dep.clearPointer;\n const focus = dep.focus;\n const deactivate = dep.deactivate;\n const close = dep.close;\n\n // ================ DATA ================\n\n // no export\n // appendedOptions\n const ap = ref([]);\n\n // no export\n // resolvedOptions\n const ro = ref([]);\n\n const resolving = ref(false);\n\n // no export\n const searchWatcher = ref(null);\n\n const offset = ref(infinite.value && limit.value === -1 ? 10 : limit.value);\n\n // ============== COMPUTED ==============\n\n // no export\n const createOption = computed(() => {\n return createTag.value || createOption_.value || false\n });\n\n // no export\n const appendNewOption = computed(() => {\n if (appendNewTag.value !== undefined) {\n return appendNewTag.value\n } else if (appendNewOption_.value !== undefined) {\n return appendNewOption_.value\n }\n\n return true\n });\n\n // no export\n // extendedOptions\n const eo = computed(() => {\n if (groupped.value) {\n let groups = ro.value || /* istanbul ignore next */ [];\n\n let eo = [];\n\n groups.forEach((group) => {\n optionsToArray(group[groupOptions.value]).forEach((option) => {\n eo.push(Object.assign({}, option, group[disabledProp.value] ? { [disabledProp.value]: true } : {}));\n });\n });\n\n return eo\n } else {\n let eo = optionsToArray(ro.value || /* istanbul ignore next */ []);\n\n if (ap.value.length) {\n eo = eo.concat(ap.value);\n }\n\n return eo\n }\n });\n\n const fg = computed(() => {\n if (!groupped.value) {\n return []\n }\n\n return filterGroups((ro.value || /* istanbul ignore next */ []).map((group, index) => {\n const arrayOptions = optionsToArray(group[groupOptions.value]);\n\n return {\n ...group,\n index,\n group: true,\n [groupOptions.value]: filterOptions(arrayOptions, false).map(o => Object.assign({}, o, group[disabledProp.value] ? { [disabledProp.value]: true } : {})),\n __VISIBLE__: filterOptions(arrayOptions).map(o => Object.assign({}, o, group[disabledProp.value] ? { [disabledProp.value]: true } : {})),\n }\n // Difference between __VISIBLE__ and {groupOptions}: visible does not contain selected options when hideSelected=true\n }))\n });\n\n // preFilteredOptions\n const pfo = computed(() => {\n let options = eo.value;\n\n if (reverse.value) {\n options = options.reverse();\n }\n\n if (createdOption.value.length) {\n options = createdOption.value.concat(options);\n }\n\n return filterOptions(options)\n });\n\n // filteredOptions\n const fo = computed(() => {\n let options = pfo.value;\n\n if (offset.value > 0) {\n options = options.slice(0, offset.value);\n }\n\n return options\n });\n\n const hasSelected = computed(() => {\n switch (mode.value) {\n case 'single':\n return !isNullish(iv.value[valueProp.value])\n\n case 'multiple':\n case 'tags':\n return !isNullish(iv.value) && iv.value.length > 0\n }\n });\n\n const multipleLabelText = computed(() => {\n return multipleLabel !== undefined && multipleLabel.value !== undefined\n ? multipleLabel.value(iv.value, $this)\n : (iv.value && iv.value.length > 1 ? `${iv.value.length} options selected` : `1 option selected`)\n });\n\n const noOptions = computed(() => {\n return !eo.value.length && !resolving.value && !createdOption.value.length\n });\n\n\n const noResults = computed(() => {\n return eo.value.length > 0 && fo.value.length == 0 && ((search.value && groupped.value) || !groupped.value)\n });\n\n // no export\n const createdOption = computed(() => {\n if (createOption.value === false || !search.value) {\n return []\n }\n\n return getOptionByTrackBy(search.value) !== -1 ? [] : [{\n [valueProp.value]: search.value,\n [label.value]: search.value,\n [trackBy.value]: search.value,\n __CREATE__: true,\n }]\n });\n\n const trackBy = computed(() => {\n return trackBy_.value || label.value\n });\n\n // no export\n const nullValue = computed(() => {\n switch (mode.value) {\n case 'single':\n return null\n\n case 'multiple':\n case 'tags':\n return []\n }\n });\n\n const busy = computed(() => {\n return loading.value || resolving.value\n });\n\n // =============== METHODS ==============\n\n /**\n * @param {array|object|string|number} option \n */\n const select = (option) => {\n if (typeof option !== 'object') {\n option = getOption(option);\n }\n\n switch (mode.value) {\n case 'single':\n update(option);\n break\n\n case 'multiple':\n case 'tags':\n update((iv.value).concat(option));\n break\n }\n\n context.emit('select', finalValue(option), option, $this);\n };\n\n const deselect = (option) => {\n if (typeof option !== 'object') {\n option = getOption(option);\n }\n\n switch (mode.value) {\n case 'single':\n clear();\n break\n\n case 'tags':\n case 'multiple':\n update(Array.isArray(option)\n ? iv.value.filter(v => option.map(o => o[valueProp.value]).indexOf(v[valueProp.value]) === -1)\n : iv.value.filter(v => v[valueProp.value] != option[valueProp.value]));\n break\n }\n\n context.emit('deselect', finalValue(option), option, $this);\n };\n\n // no export\n const finalValue = (option) => {\n return object.value ? option : option[valueProp.value]\n };\n\n const remove = (option) => {\n deselect(option);\n };\n\n const handleTagRemove = (option, e) => {\n if (e.button !== 0) {\n e.preventDefault();\n return\n }\n\n remove(option);\n };\n\n const clear = () => {\n context.emit('clear', $this);\n update(nullValue.value);\n };\n\n const isSelected = (option) => {\n if (option.group !== undefined) {\n return mode.value === 'single' ? false : areAllSelected(option[groupOptions.value]) && option[groupOptions.value].length\n }\n\n switch (mode.value) {\n case 'single':\n return !isNullish(iv.value) && iv.value[valueProp.value] == option[valueProp.value]\n\n case 'tags':\n case 'multiple':\n return !isNullish(iv.value) && iv.value.map(o => o[valueProp.value]).indexOf(option[valueProp.value]) !== -1\n }\n };\n\n const isDisabled = (option) => {\n return option[disabledProp.value] === true\n };\n\n const isMax = () => {\n if (max === undefined || max.value === -1 || (!hasSelected.value && max.value > 0)) {\n return false\n }\n \n return iv.value.length >= max.value\n };\n\n const handleOptionClick = (option) => {\n if (isDisabled(option)) {\n return\n }\n\n if (onCreate && onCreate.value && !isSelected(option) && option.__CREATE__) {\n option = { ...option };\n delete option.__CREATE__;\n\n option = onCreate.value(option, $this);\n \n if (option instanceof Promise) {\n resolving.value = true;\n option.then((result) => {\n resolving.value = false;\n handleOptionSelect(result);\n });\n\n return\n } \n }\n\n handleOptionSelect(option);\n };\n\n const handleOptionSelect = (option) => {\n if (option.__CREATE__) {\n option = { ...option };\n delete option.__CREATE__;\n }\n \n switch (mode.value) {\n case 'single':\n if (option && isSelected(option)) {\n if (canDeselect.value) {\n deselect(option);\n }\n return\n }\n\n if (option) {\n handleOptionAppend(option);\n }\n\n /* istanbul ignore else */\n if (clearOnSelect.value) {\n clearSearch();\n }\n\n if (closeOnSelect.value) {\n clearPointer();\n close();\n }\n\n if (option) {\n select(option);\n }\n break\n\n case 'multiple':\n if (option && isSelected(option)) {\n deselect(option);\n return\n }\n\n if (isMax()) {\n return\n }\n\n if (option) {\n handleOptionAppend(option);\n select(option);\n }\n\n if (clearOnSelect.value) {\n clearSearch();\n }\n\n if (hideSelected.value) {\n clearPointer();\n }\n\n if (closeOnSelect.value) {\n close();\n }\n break\n\n case 'tags':\n if (option && isSelected(option)) {\n deselect(option);\n return\n }\n\n if (isMax()) {\n return\n }\n\n if (option) {\n handleOptionAppend(option);\n }\n\n if (clearOnSelect.value) {\n clearSearch();\n }\n\n if (option) {\n select(option);\n }\n\n if (hideSelected.value) {\n clearPointer();\n }\n\n if (closeOnSelect.value) {\n close();\n }\n break\n }\n\n if (!closeOnSelect.value) {\n focus();\n }\n };\n\n const handleGroupClick = (group) => {\n if (isDisabled(group) || mode.value === 'single' || !groupSelect.value) {\n return\n }\n\n switch (mode.value) {\n case 'multiple':\n case 'tags':\n if (areAllEnabledSelected(group[groupOptions.value])) {\n deselect(group[groupOptions.value]);\n } else {\n select(group[groupOptions.value]\n .filter(o => iv.value.map(v => v[valueProp.value]).indexOf(o[valueProp.value]) === -1)\n .filter(o => !o[disabledProp.value])\n .filter((o, k) => iv.value.length + 1 + k <= max.value || max.value === -1)\n );\n }\n break\n }\n\n if (closeOnSelect.value) {\n deactivate();\n }\n };\n\n const handleOptionAppend = (option) => {\n if (getOption(option[valueProp.value]) === undefined && createOption.value) {\n context.emit('tag', option[valueProp.value], $this);\n context.emit('option', option[valueProp.value], $this);\n\n if (appendNewOption.value) {\n appendOption(option);\n }\n\n clearSearch();\n }\n };\n\n const selectAll = () => {\n if (mode.value === 'single') {\n return\n }\n\n select(fo.value);\n };\n\n // no export\n const areAllEnabledSelected = (options) => {\n return options.find(o => !isSelected(o) && !o[disabledProp.value]) === undefined\n };\n\n // no export\n const areAllSelected = (options) => {\n return options.find(o => !isSelected(o)) === undefined\n };\n\n const getOption = (val) => {\n return eo.value[eo.value.map(o => String(o[valueProp.value])).indexOf(String(val))]\n };\n\n // no export\n const getOptionByTrackBy = (val, norm = true) => {\n return eo.value.map(o => parseInt(o[trackBy.value]) == o[trackBy.value] ? parseInt(o[trackBy.value]) : o[trackBy.value]).indexOf(\n parseInt(val) == val ? parseInt(val) : val\n )\n };\n\n // no export\n const shouldHideOption = (option) => {\n return ['tags', 'multiple'].indexOf(mode.value) !== -1 && hideSelected.value && isSelected(option)\n };\n\n // no export\n const appendOption = (option) => {\n ap.value.push(option);\n };\n\n // no export\n const filterGroups = (groups) => {\n // If the search has value we need to filter among \n // he ones that are visible to the user to avoid\n // displaying groups which technically have options\n // based on search but that option is already selected.\n return groupHideEmpty.value\n ? groups.filter(g => search.value\n ? g.__VISIBLE__.length\n : g[groupOptions.value].length\n )\n : groups.filter(g => search.value ? g.__VISIBLE__.length : true)\n };\n\n // no export\n const filterOptions = (options, excludeHideSelected = true) => {\n let fo = options;\n \n if (search.value && filterResults.value) {\n fo = fo.filter((option) => {\n return searchStart.value\n ? normalize(option[trackBy.value], strict.value).startsWith(normalize(search.value, strict.value))\n : normalize(option[trackBy.value], strict.value).indexOf(normalize(search.value, strict.value)) !== -1\n });\n }\n\n if (hideSelected.value && excludeHideSelected) {\n fo = fo.filter((option) => !shouldHideOption(option));\n }\n\n return fo\n };\n\n // no export\n const optionsToArray = (options) => {\n let uo = options;\n \n // Transforming an object to an array of objects\n if (isObject(uo)) {\n uo = Object.keys(uo).map((key) => {\n let val = uo[key];\n\n return { [valueProp.value]: key, [trackBy.value]: val, [label.value]: val}\n });\n }\n\n // Transforming an plain arrays to an array of objects\n uo = uo.map((val) => {\n return typeof val === 'object' ? val : { [valueProp.value]: val, [trackBy.value]: val, [label.value]: val}\n });\n\n return uo\n };\n\n // no export\n const initInternalValue = () => {\n if (!isNullish(ev.value)) {\n iv.value = makeInternal(ev.value);\n }\n };\n\n const resolveOptions = (callback) => {\n resolving.value = true;\n\n return new Promise((resolve, reject) => {\n options.value(search.value, $this).then((response) => {\n ro.value = response || [];\n\n if (typeof callback == 'function') {\n callback(response);\n }\n\n resolving.value = false;\n }).catch((e) => {\n console.error(e);\n\n ro.value = [];\n\n resolving.value = false;\n }).finally(() => {\n resolve();\n });\n })\n };\n\n // no export\n const refreshLabels = () => {\n if (!hasSelected.value) {\n return\n }\n\n if (mode.value === 'single') {\n let option = getOption(iv.value[valueProp.value]);\n\n /* istanbul ignore else */\n if (option !== undefined) {\n let newLabel = option[label.value];\n\n iv.value[label.value] = newLabel;\n\n if (object.value) {\n ev.value[label.value] = newLabel;\n }\n }\n } else {\n iv.value.forEach((val, i) => {\n let option = getOption(iv.value[i][valueProp.value]);\n\n /* istanbul ignore else */\n if (option !== undefined) {\n let newLabel = option[label.value];\n\n iv.value[i][label.value] = newLabel;\n\n if (object.value) {\n ev.value[i][label.value] = newLabel;\n }\n }\n });\n }\n };\n\n const refreshOptions = (callback) => {\n resolveOptions(callback);\n };\n\n // no export\n const makeInternal = (val) => {\n if (isNullish(val)) {\n return mode.value === 'single' ? {} : []\n }\n\n if (object.value) {\n return val\n }\n\n // If external should be plain transform\n // value object to plain values\n return mode.value === 'single' ? getOption(val) || {} : val.filter(v => !! getOption(v)).map(v => getOption(v))\n };\n\n // no export\n const initSearchWatcher = () => {\n searchWatcher.value = watch(search, (query) => {\n if (query.length < minChars.value || (!query && minChars.value !== 0)) {\n return\n }\n\n resolving.value = true;\n\n if (clearOnSearch.value) {\n ro.value = [];\n }\n setTimeout(() => {\n if (query != search.value) {\n return\n }\n\n options.value(search.value, $this).then((response) => {\n if (query == search.value || !search.value) {\n ro.value = response;\n pointer.value = fo.value.filter(o => o[disabledProp.value] !== true)[0] || null;\n resolving.value = false;\n }\n }).catch( /* istanbul ignore next */ (e) => {\n console.error(e);\n });\n }, delay.value);\n\n }, { flush: 'sync' });\n };\n\n // ================ HOOKS ===============\n\n if (mode.value !== 'single' && !isNullish(ev.value) && !Array.isArray(ev.value)) {\n throw new Error(`v-model must be an array when using \"${mode.value}\" mode`)\n }\n\n if (options && typeof options.value == 'function') {\n if (resolveOnLoad.value) {\n resolveOptions(initInternalValue);\n } else if (object.value == true) {\n initInternalValue();\n }\n }\n else {\n ro.value = options.value;\n\n initInternalValue();\n }\n \n // ============== WATCHERS ==============\n\n if (delay.value > -1) {\n initSearchWatcher();\n }\n\n watch(delay, (value, old) => {\n /* istanbul ignore else */\n if (searchWatcher.value) {\n searchWatcher.value();\n }\n\n if (value >= 0) {\n initSearchWatcher();\n }\n });\n\n watch(ev, (newValue) => {\n if (isNullish(newValue)) {\n iv.value = makeInternal(newValue);\n return\n }\n\n switch (mode.value) {\n case 'single':\n if (object.value ? newValue[valueProp.value] != iv.value[valueProp.value] : newValue != iv.value[valueProp.value]) {\n iv.value = makeInternal(newValue);\n }\n break\n\n case 'multiple':\n case 'tags':\n if (!arraysEqual(object.value ? newValue.map(o => o[valueProp.value]) : newValue, iv.value.map(o => o[valueProp.value]))) {\n iv.value = makeInternal(newValue);\n }\n break\n }\n }, { deep: true });\n\n watch(options, (n, o) => {\n if (typeof props.options === 'function') {\n if (resolveOnLoad.value && (!o || (n && n.toString() !== o.toString()))) {\n resolveOptions();\n }\n } else {\n ro.value = props.options;\n\n if (!Object.keys(iv.value).length) {\n initInternalValue();\n }\n\n refreshLabels();\n }\n });\n\n watch(label, refreshLabels);\n\n return {\n pfo,\n fo,\n filteredOptions: fo,\n hasSelected,\n multipleLabelText,\n eo,\n extendedOptions: eo,\n fg,\n filteredGroups: fg,\n noOptions,\n noResults,\n resolving,\n busy,\n offset,\n select,\n deselect,\n remove,\n selectAll,\n clear,\n isSelected,\n isDisabled,\n isMax,\n getOption,\n handleOptionClick,\n handleGroupClick,\n handleTagRemove,\n refreshOptions,\n resolveOptions,\n refreshLabels,\n }\n}\n\nfunction usePointer (props, context, dep)\n{\n const {\n valueProp, showOptions, searchable, groupLabel,\n groups: groupped, mode, groupSelect, disabledProp,\n } = toRefs(props);\n\n // ============ DEPENDENCIES ============\n\n const fo = dep.fo;\n const fg = dep.fg;\n const handleOptionClick = dep.handleOptionClick;\n const handleGroupClick = dep.handleGroupClick;\n const search = dep.search;\n const pointer = dep.pointer;\n const setPointer = dep.setPointer;\n const clearPointer = dep.clearPointer;\n const multiselect = dep.multiselect;\n const isOpen = dep.isOpen;\n\n // ============== COMPUTED ==============\n\n // no export\n const options = computed(() => {\n return fo.value.filter(o => !o[disabledProp.value])\n });\n\n const groups = computed(() => {\n return fg.value.filter(o => !o[disabledProp.value])\n });\n\n const canPointGroups = computed(() => {\n return mode.value !== 'single' && groupSelect.value\n });\n\n const isPointerGroup = computed(() => {\n return pointer.value && pointer.value.group\n });\n\n const currentGroup = computed(() => {\n return getParentGroup(pointer.value)\n });\n\n const prevGroup = computed(() => {\n const group = isPointerGroup.value ? pointer.value : /* istanbul ignore next */ getParentGroup(pointer.value);\n const groupIndex = groups.value.map(g => g[groupLabel.value]).indexOf(group[groupLabel.value]);\n let prevGroup = groups.value[groupIndex - 1];\n\n if (prevGroup === undefined) {\n prevGroup = lastGroup.value;\n }\n\n return prevGroup\n });\n \n const nextGroup = computed(() => {\n let nextIndex = groups.value.map(g => g.label).indexOf(isPointerGroup.value\n ? pointer.value[groupLabel.value]\n : getParentGroup(pointer.value)[groupLabel.value]) + 1;\n\n if (groups.value.length <= nextIndex) {\n nextIndex = 0;\n }\n\n return groups.value[nextIndex]\n });\n\n const lastGroup = computed(() => {\n return [...groups.value].slice(-1)[0]\n });\n \n const currentGroupFirstEnabledOption = computed(() => {\n return pointer.value.__VISIBLE__.filter(o => !o[disabledProp.value])[0]\n });\n\n const currentGroupPrevEnabledOption = computed(() => {\n const options = currentGroup.value.__VISIBLE__.filter(o => !o[disabledProp.value]);\n return options[options.map(o => o[valueProp.value]).indexOf(pointer.value[valueProp.value]) - 1]\n });\n \n const currentGroupNextEnabledOption = computed(() => {\n const options = getParentGroup(pointer.value).__VISIBLE__.filter(o => !o[disabledProp.value]);\n return options[options.map(o => o[valueProp.value]).indexOf(pointer.value[valueProp.value]) + 1]\n });\n\n const prevGroupLastEnabledOption = computed(() => {\n return [...prevGroup.value.__VISIBLE__.filter(o => !o[disabledProp.value])].slice(-1)[0]\n });\n\n const lastGroupLastEnabledOption = computed(() => {\n return [...lastGroup.value.__VISIBLE__.filter(o => !o[disabledProp.value])].slice(-1)[0]\n });\n\n // =============== METHODS ==============\n\n const isPointed = (option) => {\n return (!!pointer.value && (\n (!option.group && pointer.value[valueProp.value] == option[valueProp.value]) ||\n (option.group !== undefined && pointer.value[groupLabel.value] == option[groupLabel.value])\n )) ? true : undefined\n };\n\n const setPointerFirst = () => {\n setPointer(options.value[0] || null);\n };\n\n const selectPointer = () => {\n if (!pointer.value || pointer.value[disabledProp.value] === true) {\n return\n }\n\n if (isPointerGroup.value) {\n handleGroupClick(pointer.value);\n } else {\n handleOptionClick(pointer.value);\n }\n };\n\n const forwardPointer = () => {\n if (pointer.value === null) {\n setPointer((groupped.value && canPointGroups.value ? groups.value[0] : options.value[0]) || null);\n }\n else if (groupped.value && canPointGroups.value) {\n let nextPointer = isPointerGroup.value ? currentGroupFirstEnabledOption.value : currentGroupNextEnabledOption.value;\n\n if (nextPointer === undefined) {\n nextPointer = nextGroup.value;\n }\n\n setPointer(nextPointer || /* istanbul ignore next */ null);\n } else {\n let next = options.value.map(o => o[valueProp.value]).indexOf(pointer.value[valueProp.value]) + 1;\n\n if (options.value.length <= next) {\n next = 0;\n }\n\n setPointer(options.value[next] || null);\n }\n\n nextTick(() => {\n adjustWrapperScrollToPointer();\n });\n };\n\n const backwardPointer = () => {\n if (pointer.value === null) {\n let prevPointer = options.value[options.value.length - 1];\n\n if (groupped.value && canPointGroups.value) {\n prevPointer = lastGroupLastEnabledOption.value;\n\n if (prevPointer === undefined) {\n prevPointer = lastGroup.value;\n }\n }\n\n setPointer(prevPointer || null);\n }\n else if (groupped.value && canPointGroups.value) {\n let prevPointer = isPointerGroup.value ? prevGroupLastEnabledOption.value : currentGroupPrevEnabledOption.value;\n\n if (prevPointer === undefined) {\n prevPointer = isPointerGroup.value ? prevGroup.value : currentGroup.value;\n }\n\n setPointer(prevPointer || /* istanbul ignore next */ null);\n } else {\n let prevIndex = options.value.map(o => o[valueProp.value]).indexOf(pointer.value[valueProp.value]) - 1;\n\n if (prevIndex < 0) {\n prevIndex = options.value.length - 1;\n }\n\n setPointer(options.value[prevIndex] || null);\n }\n\n nextTick(() => {\n adjustWrapperScrollToPointer();\n });\n };\n\n const getParentGroup = (option) => {\n return groups.value.find((group) => {\n return group.__VISIBLE__.map(o => o[valueProp.value]).indexOf(option[valueProp.value]) !== -1\n })\n };\n\n // no export\n /* istanbul ignore next */\n const adjustWrapperScrollToPointer = () => {\n let pointedOption = multiselect.value.querySelector(`[data-pointed]`);\n\n if (!pointedOption) {\n return\n }\n\n let wrapper = pointedOption.parentElement.parentElement;\n\n if (groupped.value) {\n wrapper = isPointerGroup.value\n ? pointedOption.parentElement.parentElement.parentElement\n : pointedOption.parentElement.parentElement.parentElement.parentElement;\n }\n\n if (pointedOption.offsetTop + pointedOption.offsetHeight > wrapper.clientHeight + wrapper.scrollTop) {\n wrapper.scrollTop = pointedOption.offsetTop + pointedOption.offsetHeight - wrapper.clientHeight;\n }\n \n if (pointedOption.offsetTop < wrapper.scrollTop) {\n wrapper.scrollTop = pointedOption.offsetTop;\n }\n };\n\n // ============== WATCHERS ==============\n\n watch(search, (val) => {\n if (searchable.value) {\n if (val.length && showOptions.value) {\n setPointerFirst();\n } else {\n clearPointer();\n }\n }\n });\n\n watch(isOpen, (val) => {\n if (val) {\n let firstSelected = multiselect.value.querySelectorAll(`[data-selected]`)[0];\n\n if (!firstSelected) {\n return\n }\n\n let wrapper = firstSelected.parentElement.parentElement;\n \n nextTick(() => {\n /* istanbul ignore next */\n if (wrapper.scrollTop > 0) {\n return\n }\n\n wrapper.scrollTop = firstSelected.offsetTop;\n });\n }\n });\n\n return {\n pointer,\n canPointGroups,\n isPointed,\n setPointerFirst,\n selectPointer,\n forwardPointer,\n backwardPointer,\n }\n}\n\nfunction useDropdown (props, context, dep)\n{\n const { disabled } = toRefs(props);\n\n const $this = getCurrentInstance().proxy;\n\n // ================ DATA ================\n\n const isOpen = ref(false);\n\n // =============== METHODS ==============\n\n const open = () => {\n if (isOpen.value || disabled.value) {\n return\n }\n\n isOpen.value = true;\n context.emit('open', $this);\n };\n\n const close = () => {\n if (!isOpen.value) {\n return\n }\n\n isOpen.value = false;\n context.emit('close', $this);\n };\n\n return {\n isOpen,\n open,\n close,\n }\n}\n\nfunction useMultiselect (props, context, dep)\n{\n const { searchable, disabled } = toRefs(props);\n\n // ============ DEPENDENCIES ============\n\n const input = dep.input;\n const open = dep.open;\n const close = dep.close;\n const clearSearch = dep.clearSearch;\n const isOpen = dep.isOpen;\n\n // ================ DATA ================\n\n const multiselect = ref(null);\n\n const tags = ref(null);\n\n const isActive = ref(false);\n\n const mouseClicked = ref(false);\n\n // ============== COMPUTED ==============\n\n const tabindex = computed(() => {\n return searchable.value || disabled.value ? -1 : 0\n });\n\n // =============== METHODS ==============\n\n const blur = () => {\n if (searchable.value) {\n input.value.blur();\n }\n\n multiselect.value.blur();\n };\n\n const focus = () => {\n if (searchable.value && !disabled.value) {\n input.value.focus();\n }\n };\n\n const activate = (shouldOpen = true) => {\n if (disabled.value) {\n return\n }\n\n isActive.value = true;\n\n if (shouldOpen) {\n open();\n }\n };\n\n const deactivate = () => {\n isActive.value = false;\n\n setTimeout(() => {\n if (!isActive.value) {\n close();\n clearSearch();\n }\n }, 1);\n };\n\n const handleFocusIn = () => {\n activate(mouseClicked.value);\n };\n\n const handleFocusOut = () => {\n deactivate();\n };\n\n const handleCaretClick = () => {\n deactivate();\n blur();\n };\n\n /* istanbul ignore next */\n const handleMousedown = (e) => {\n mouseClicked.value = true;\n\n if (isOpen.value && (e.target.isEqualNode(multiselect.value) || e.target.isEqualNode(tags.value))) {\n setTimeout(() => {\n deactivate();\n }, 0);\n } else if (document.activeElement.isEqualNode(multiselect.value) && !isOpen.value) {\n activate(); \n }\n\n setTimeout(() => {\n mouseClicked.value = false;\n }, 0);\n };\n\n return {\n multiselect,\n tags,\n tabindex,\n isActive,\n mouseClicked,\n blur,\n focus,\n activate,\n deactivate,\n handleFocusIn,\n handleFocusOut,\n handleCaretClick,\n handleMousedown,\n }\n}\n\nfunction useKeyboard (props, context, dep)\n{\n const {\n mode, addTagOn, openDirection, searchable,\n showOptions, valueProp, groups: groupped,\n addOptionOn: addOptionOn_, createTag, createOption: createOption_,\n reverse,\n } = toRefs(props);\n\n const $this = getCurrentInstance().proxy;\n\n // ============ DEPENDENCIES ============\n\n const iv = dep.iv;\n const update = dep.update;\n const search = dep.search;\n const setPointer = dep.setPointer;\n const selectPointer = dep.selectPointer;\n const backwardPointer = dep.backwardPointer;\n const forwardPointer = dep.forwardPointer;\n const multiselect = dep.multiselect;\n const tags = dep.tags;\n const isOpen = dep.isOpen;\n const open = dep.open;\n const blur = dep.blur;\n const fo = dep.fo;\n\n // ============== COMPUTED ==============\n\n // no export\n const createOption = computed(() => {\n return createTag.value || createOption_.value || false\n });\n\n // no export\n const addOptionOn = computed(() => {\n if (addTagOn.value !== undefined) {\n return addTagOn.value\n }\n else if (addOptionOn_.value !== undefined) {\n return addOptionOn_.value\n }\n\n return ['enter']\n });\n\n // =============== METHODS ==============\n\n // no export\n const preparePointer = () => {\n // When options are hidden and creating tags is allowed\n // no pointer will be set (because options are hidden).\n // In such case we need to set the pointer manually to the \n // first option, which equals to the option created from\n // the search value.\n if (mode.value === 'tags' && !showOptions.value && createOption.value && searchable.value && !groupped.value) {\n setPointer(fo.value[fo.value.map(o => o[valueProp.value]).indexOf(search.value)]);\n }\n };\n\n const handleKeydown = (e) => {\n context.emit('keydown', e, $this);\n\n let tagList;\n let activeIndex;\n\n if (['ArrowLeft', 'ArrowRight', 'Enter'].indexOf(e.key) !== -1 && mode.value === 'tags') {\n tagList = [...(multiselect.value.querySelectorAll(`[data-tags] > *`))].filter(e => e !== tags.value);\n activeIndex = tagList.findIndex(e => e === document.activeElement);\n }\n\n switch (e.key) {\n case 'Backspace':\n if (mode.value === 'single') {\n return\n }\n\n if (searchable.value && [null, ''].indexOf(search.value) === -1) {\n return\n }\n\n if (iv.value.length === 0) {\n return\n }\n \n update([...iv.value].slice(0,-1));\n break\n\n case 'Enter':\n e.preventDefault();\n\n if (activeIndex !== -1 && activeIndex !== undefined) {\n update([...iv.value].filter((v, k) => k !== activeIndex));\n\n if (activeIndex === tagList.length - 1) {\n if (tagList.length - 1) {\n tagList[tagList.length - 2].focus();\n } else if (searchable.value) {\n tags.value.querySelector('input').focus();\n } else {\n multiselect.value.focus();\n }\n }\n return\n }\n\n if (addOptionOn.value.indexOf('enter') === -1 && createOption.value) {\n return\n }\n \n preparePointer();\n selectPointer();\n break\n\n case ' ':\n if (!createOption.value && !searchable.value) {\n e.preventDefault();\n \n preparePointer();\n selectPointer();\n return\n }\n\n if (!createOption.value) {\n return false\n } \n\n if (addOptionOn.value.indexOf('space') === -1 && createOption.value) {\n return\n }\n\n e.preventDefault();\n \n preparePointer();\n selectPointer();\n break\n \n case 'Tab':\n case ';':\n case ',':\n if (addOptionOn.value.indexOf(e.key.toLowerCase()) === -1 || !createOption.value) {\n return\n }\n\n preparePointer();\n selectPointer();\n e.preventDefault();\n break\n\n case 'Escape':\n blur();\n break\n\n case 'ArrowUp':\n e.preventDefault();\n\n if (!showOptions.value) {\n return\n }\n\n /* istanbul ignore else */\n if (!isOpen.value) {\n open();\n }\n \n backwardPointer();\n break\n\n case 'ArrowDown':\n e.preventDefault();\n\n if (!showOptions.value) {\n return\n }\n\n /* istanbul ignore else */\n if (!isOpen.value) {\n open();\n }\n\n forwardPointer();\n break\n\n case 'ArrowLeft':\n if ((searchable.value && tags.value.querySelector('input').selectionStart) || e.shiftKey || mode.value !== 'tags' || !iv.value || !iv.value.length) {\n return\n }\n\n e.preventDefault();\n\n if (activeIndex === -1) {\n tagList[tagList.length-1].focus();\n }\n else if (activeIndex > 0) {\n tagList[activeIndex-1].focus();\n }\n break\n\n case 'ArrowRight':\n if (activeIndex === -1 || e.shiftKey || mode.value !== 'tags' || !iv.value || !iv.value.length) {\n return\n }\n\n e.preventDefault();\n \n /* istanbul ignore else */\n if (tagList.length > activeIndex + 1) {\n tagList[activeIndex+1].focus();\n }\n else if (searchable.value) {\n tags.value.querySelector('input').focus();\n }\n else if (!searchable.value) {\n multiselect.value.focus();\n }\n \n break\n }\n };\n\n const handleKeyup = (e) => {\n context.emit('keyup', e, $this);\n };\n\n return {\n handleKeydown,\n handleKeyup,\n preparePointer,\n }\n}\n\nfunction useClasses (props, context, dependencies)\n{const { \n classes: classes_, disabled, openDirection, showOptions\n } = toRefs(props);\n\n // ============ DEPENDENCIES ============\n\n const isOpen = dependencies.isOpen;\n const isPointed = dependencies.isPointed;\n const isSelected = dependencies.isSelected;\n const isDisabled = dependencies.isDisabled;\n const isActive = dependencies.isActive;\n const canPointGroups = dependencies.canPointGroups;\n const resolving = dependencies.resolving;\n const fo = dependencies.fo;\n\n const classes = computed(() => ({\n container: 'multiselect',\n containerDisabled: 'is-disabled',\n containerOpen: 'is-open',\n containerOpenTop: 'is-open-top',\n containerActive: 'is-active',\n singleLabel: 'multiselect-single-label',\n singleLabelText: 'multiselect-single-label-text',\n multipleLabel: 'multiselect-multiple-label',\n search: 'multiselect-search',\n tags: 'multiselect-tags',\n tag: 'multiselect-tag',\n tagDisabled: 'is-disabled',\n tagRemove: 'multiselect-tag-remove',\n tagRemoveIcon: 'multiselect-tag-remove-icon',\n tagsSearchWrapper: 'multiselect-tags-search-wrapper',\n tagsSearch: 'multiselect-tags-search',\n tagsSearchCopy: 'multiselect-tags-search-copy',\n placeholder: 'multiselect-placeholder',\n caret: 'multiselect-caret',\n caretOpen: 'is-open',\n clear: 'multiselect-clear',\n clearIcon: 'multiselect-clear-icon',\n spinner: 'multiselect-spinner',\n inifinite: 'multiselect-inifite',\n inifiniteSpinner: 'multiselect-inifite-spinner',\n dropdown: 'multiselect-dropdown',\n dropdownTop: 'is-top',\n dropdownHidden: 'is-hidden',\n options: 'multiselect-options',\n optionsTop: 'is-top',\n group: 'multiselect-group',\n groupLabel: 'multiselect-group-label',\n groupLabelPointable: 'is-pointable',\n groupLabelPointed: 'is-pointed',\n groupLabelSelected: 'is-selected',\n groupLabelDisabled: 'is-disabled',\n groupLabelSelectedPointed: 'is-selected is-pointed',\n groupLabelSelectedDisabled: 'is-selected is-disabled',\n groupOptions: 'multiselect-group-options',\n option: 'multiselect-option',\n optionPointed: 'is-pointed',\n optionSelected: 'is-selected',\n optionDisabled: 'is-disabled',\n optionSelectedPointed: 'is-selected is-pointed',\n optionSelectedDisabled: 'is-selected is-disabled',\n noOptions: 'multiselect-no-options',\n noResults: 'multiselect-no-results',\n fakeInput: 'multiselect-fake-input',\n spacer: 'multiselect-spacer',\n ...classes_.value,\n }));\n\n // ============== COMPUTED ==============\n\n const showDropdown = computed(() => {\n return !!(isOpen.value && showOptions.value && (!resolving.value || (resolving.value && fo.value.length)))\n });\n\n const classList = computed(() => {\n const c = classes.value;\n\n return {\n container: [c.container]\n .concat(disabled.value ? c.containerDisabled : [])\n .concat(showDropdown.value && openDirection.value === 'top' ? c.containerOpenTop : [])\n .concat(showDropdown.value && openDirection.value !== 'top' ? c.containerOpen : [])\n .concat(isActive.value ? c.containerActive : []),\n spacer: c.spacer,\n singleLabel: c.singleLabel,\n singleLabelText: c.singleLabelText,\n multipleLabel: c.multipleLabel,\n search: c.search,\n tags: c.tags,\n tag: [c.tag]\n .concat(disabled.value ? c.tagDisabled : []),\n tagRemove: c.tagRemove,\n tagRemoveIcon: c.tagRemoveIcon,\n tagsSearchWrapper: c.tagsSearchWrapper,\n tagsSearch: c.tagsSearch,\n tagsSearchCopy: c.tagsSearchCopy,\n placeholder: c.placeholder,\n caret: [c.caret]\n .concat(isOpen.value ? c.caretOpen : []),\n clear: c.clear,\n clearIcon: c.clearIcon,\n spinner: c.spinner,\n inifinite: c.inifinite,\n inifiniteSpinner: c.inifiniteSpinner,\n dropdown: [c.dropdown]\n .concat(openDirection.value === 'top' ? c.dropdownTop : [])\n .concat(!isOpen.value || !showOptions.value || !showDropdown.value ? c.dropdownHidden : []),\n options: [c.options]\n .concat(openDirection.value === 'top' ? c.optionsTop : []),\n group: c.group,\n groupLabel: (g) => {\n let groupLabel = [c.groupLabel];\n\n if (isPointed(g)) {\n groupLabel.push(isSelected(g) ? c.groupLabelSelectedPointed : c.groupLabelPointed);\n } else if (isSelected(g) && canPointGroups.value) {\n groupLabel.push(isDisabled(g) ? c.groupLabelSelectedDisabled : c.groupLabelSelected);\n } else if (isDisabled(g)) {\n groupLabel.push(c.groupLabelDisabled);\n }\n\n if (canPointGroups.value) {\n groupLabel.push(c.groupLabelPointable);\n }\n\n return groupLabel\n },\n groupOptions: c.groupOptions,\n option: (o, g) => {\n let option = [c.option];\n\n if (isPointed(o)) {\n option.push(isSelected(o) ? c.optionSelectedPointed : c.optionPointed);\n } else if (isSelected(o)) {\n option.push(isDisabled(o) ? c.optionSelectedDisabled : c.optionSelected);\n } else if (isDisabled(o) || (g && isDisabled(g))) {\n option.push(c.optionDisabled);\n }\n\n return option\n },\n noOptions: c.noOptions,\n noResults: c.noResults,\n fakeInput: c.fakeInput,\n }\n });\n\n return {\n classList,\n showDropdown,\n }\n}\n\nfunction useScroll$1 (props, context, dep)\n{\n const {\n limit, infinite,\n } = toRefs(props);\n\n // ============ DEPENDENCIES ============\n\n const isOpen = dep.isOpen;\n const offset = dep.offset;\n const search = dep.search;\n const pfo = dep.pfo;\n const eo = dep.eo;\n\n // ================ DATA ================\n\n // no export\n const observer = ref(null);\n\n const infiniteLoader = ref(null);\n\n // ============== COMPUTED ==============\n\n const hasMore = computed(() => {\n return offset.value < pfo.value.length\n });\n\n // =============== METHODS ==============\n\n // no export\n /* istanbul ignore next */\n const handleIntersectionObserver = (entries) => {\n const { isIntersecting, target } = entries[0];\n\n if (isIntersecting) {\n const parent = target.offsetParent;\n const scrollTop = parent.scrollTop;\n\n offset.value += limit.value == -1 ? 10 : limit.value;\n\n nextTick(() => {\n parent.scrollTop = scrollTop;\n });\n }\n };\n\n const observe = () => {\n /* istanbul ignore else */\n if (isOpen.value && offset.value < pfo.value.length) {\n observer.value.observe(infiniteLoader.value);\n } else if (!isOpen.value && observer.value) {\n observer.value.disconnect();\n }\n };\n\n // ============== WATCHERS ==============\n\n watch(isOpen, () => {\n if (!infinite.value) {\n return\n }\n\n observe();\n });\n\n watch(search, () => {\n if (!infinite.value) {\n return\n }\n\n offset.value = limit.value;\n\n observe();\n }, { flush: 'post' });\n\n watch(eo, () => {\n if (!infinite.value) {\n return\n }\n\n observe();\n }, { immediate: false, flush: 'post' });\n\n // ================ HOOKS ===============\n\n onMounted(() => {\n /* istanbul ignore else */\n if (window && window.IntersectionObserver) {\n observer.value = new IntersectionObserver(handleIntersectionObserver);\n }\n });\n\n return {\n hasMore,\n infiniteLoader,\n }\n}\n\nfunction useScroll (props, context, dep)\n{\n const { placeholder, id, valueProp, label: labelProp, mode, groupLabel } = toRefs(props);\n\n // ============ DEPENDENCIES ============\n\n const pointer = dep.pointer;\n dep.iv;\n dep.hasSelected;\n dep.multipleLabelText;\n dep.isOpen;\n\n // ================ DATA ================\n\n const label = ref(null);\n\n // ============== COMPUTED ==============\n\n const ariaOwns = computed(() => {\n let texts = [];\n\n if (id && id.value) {\n texts.push(id.value);\n }\n\n texts.push('multiselect-options');\n\n return texts.join('-')\n });\n\n const ariaActiveDescendant = computed(() => {\n let texts = [];\n\n if (id && id.value) {\n texts.push(id.value);\n }\n\n if (pointer.value) {\n texts.push(pointer.value.group ? 'multiselect-group' : 'multiselect-option');\n\n texts.push(pointer.value.group ? pointer.value.index : pointer.value[valueProp.value]);\n\n return texts.join('-')\n }\n });\n\n\n\n const ariaPlaceholder = computed(() => {\n return placeholder.value\n });\n\n const ariaMultiselectable = computed(() => {\n return mode.value !== 'single'\n });\n\n // =============== METHODS ==============\n\n const ariaOptionId = (option) => {\n let texts = [];\n\n if (id && id.value) {\n texts.push(id.value);\n }\n\n texts.push('multiselect-option');\n\n texts.push(option[valueProp.value]);\n\n return texts.join('-')\n };\n\n const ariaGroupId = (option) => {\n let texts = [];\n\n if (id && id.value) {\n texts.push(id.value);\n }\n\n texts.push('multiselect-group');\n\n texts.push(option.index);\n\n return texts.join('-')\n };\n\n const ariaOptionLabel = (option) => {\n let texts = [];\n\n texts.push(option[labelProp.value]);\n\n return texts.join(' ')\n };\n\n const ariaGroupLabel = (group) => {\n let texts = [];\n\n texts.push(group[groupLabel.value]);\n\n return texts.join(' ')\n };\n\n const ariaTagLabel = (label) => {\n return `${label} ❎`\n };\n\n // =============== HOOKS ================\n\n onMounted(() => {\n /* istanbul ignore next */\n if (id && id.value && document && document.querySelector) {\n let forTag = document.querySelector(`[for=\"${id.value}\"]`);\n label.value = forTag ? forTag.innerText : null;\n }\n });\n\n return {\n ariaOwns,\n ariaPlaceholder,\n ariaMultiselectable,\n ariaActiveDescendant,\n ariaOptionId,\n ariaOptionLabel,\n ariaGroupId,\n ariaGroupLabel,\n ariaTagLabel,\n }\n}\n\nfunction resolveDeps (props, context, features, deps = {}) {\n features.forEach((composable) => {\n /* istanbul ignore else */\n if (composable) {\n deps = {\n ...deps,\n ...composable(props, context, deps)\n };\n }\n\n });\n \n return deps\n}\n\nvar script = {\n name: 'Multiselect',\n emits: [\n 'paste', 'open', 'close', 'select', 'deselect', \n 'input', 'search-change', 'tag', 'option', 'update:modelValue',\n 'change', 'clear', 'keydown', 'keyup',\n ],\n props: {\n value: {\n required: false,\n },\n modelValue: {\n required: false,\n },\n options: {\n type: [Array, Object, Function],\n required: false,\n default: () => ([])\n },\n id: {\n type: [String, Number],\n required: false,\n },\n name: {\n type: [String, Number],\n required: false,\n default: 'multiselect',\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n label: {\n type: String,\n required: false,\n default: 'label',\n },\n trackBy: {\n type: String,\n required: false,\n default: undefined,\n },\n valueProp: {\n type: String,\n required: false,\n default: 'value',\n },\n placeholder: {\n type: String,\n required: false,\n default: null,\n },\n mode: {\n type: String,\n required: false,\n default: 'single', // single|multiple|tags\n },\n searchable: {\n type: Boolean,\n required: false,\n default: false,\n },\n limit: {\n type: Number,\n required: false,\n default: -1,\n },\n hideSelected: {\n type: Boolean,\n required: false,\n default: true,\n },\n createTag: {\n type: Boolean,\n required: false,\n default: undefined,\n },\n createOption: {\n type: Boolean,\n required: false,\n default: undefined,\n },\n appendNewTag: {\n type: Boolean,\n required: false,\n default: undefined,\n },\n appendNewOption: {\n type: Boolean,\n required: false,\n default: undefined,\n },\n addTagOn: {\n type: Array,\n required: false,\n default: undefined,\n },\n addOptionOn: {\n type: Array,\n required: false,\n default: undefined,\n },\n caret: {\n type: Boolean,\n required: false,\n default: true,\n },\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n noOptionsText: {\n type: String,\n required: false,\n default: 'The list is empty',\n },\n noResultsText: {\n type: String,\n required: false,\n default: 'No results found',\n },\n multipleLabel: {\n type: Function,\n required: false,\n },\n object: {\n type: Boolean,\n required: false,\n default: false,\n },\n delay: {\n type: Number,\n required: false,\n default: -1,\n },\n minChars: {\n type: Number,\n required: false,\n default: 0,\n },\n resolveOnLoad: {\n type: Boolean,\n required: false,\n default: true,\n },\n filterResults: {\n type: Boolean,\n required: false,\n default: true,\n },\n clearOnSearch: {\n type: Boolean,\n required: false,\n default: false,\n },\n clearOnSelect: {\n type: Boolean,\n required: false,\n default: true,\n },\n canDeselect: {\n type: Boolean,\n required: false,\n default: true,\n },\n canClear: {\n type: Boolean,\n required: false,\n default: true,\n },\n max: {\n type: Number,\n required: false,\n default: -1,\n },\n showOptions: {\n type: Boolean,\n required: false,\n default: true,\n },\n required: {\n type: Boolean,\n required: false,\n default: false,\n },\n openDirection: {\n type: String,\n required: false,\n default: 'bottom',\n },\n nativeSupport: {\n type: Boolean,\n required: false,\n default: false,\n },\n classes: {\n type: Object,\n required: false,\n default: () => ({})\n },\n strict: {\n type: Boolean,\n required: false,\n default: true,\n },\n closeOnSelect: {\n type: Boolean,\n required: false,\n default: true,\n },\n autocomplete: {\n type: String,\n required: false,\n },\n groups: {\n type: Boolean,\n required: false,\n default: false,\n },\n groupLabel: {\n type: String,\n required: false,\n default: 'label',\n },\n groupOptions: {\n type: String,\n required: false,\n default: 'options',\n },\n groupHideEmpty: {\n type: Boolean,\n required: false,\n default: false,\n },\n groupSelect: {\n type: Boolean,\n required: false,\n default: true,\n },\n inputType: {\n type: String,\n required: false,\n default: 'text',\n },\n attrs: {\n required: false,\n type: Object,\n default: () => ({}),\n },\n onCreate: {\n required: false,\n type: Function,\n },\n disabledProp: {\n type: String,\n required: false,\n default: 'disabled',\n },\n searchStart: {\n type: Boolean,\n required: false,\n default: false,\n },\n reverse: {\n type: Boolean,\n required: false,\n default: false,\n },\n regex: {\n type: [Object, String, RegExp],\n required: false,\n default: undefined,\n },\n rtl: {\n type: Boolean,\n required: false,\n default: false,\n },\n infinite: {\n type: Boolean,\n required: false,\n default: false,\n },\n aria: {\n required: false,\n type: Object,\n default: () => ({}),\n },\n },\n setup(props, context)\n { \n return resolveDeps(props, context, [\n useValue,\n usePointer$1,\n useDropdown,\n useSearch,\n useData,\n useMultiselect,\n useOptions,\n useScroll$1,\n usePointer,\n useKeyboard,\n useClasses,\n useScroll,\n ])\n }\n };\n\nconst _hoisted_1 = [\"tabindex\", \"id\", \"dir\", \"aria-owns\", \"aria-placeholder\", \"aria-expanded\", \"aria-activedescendant\", \"aria-multiselectable\", \"role\"];\nconst _hoisted_2 = [\"type\", \"modelValue\", \"value\", \"autocomplete\", \"id\", \"aria-owns\", \"aria-placeholder\", \"aria-expanded\", \"aria-activedescendant\", \"aria-multiselectable\"];\nconst _hoisted_3 = [\"onKeyup\", \"aria-label\"];\nconst _hoisted_4 = [\"onClick\"];\nconst _hoisted_5 = [\"type\", \"modelValue\", \"value\", \"id\", \"autocomplete\", \"aria-owns\", \"aria-placeholder\", \"aria-expanded\", \"aria-activedescendant\", \"aria-multiselectable\"];\nconst _hoisted_6 = [\"innerHTML\"];\nconst _hoisted_7 = [\"innerHTML\"];\nconst _hoisted_8 = [\"id\"];\nconst _hoisted_9 = [\"id\", \"aria-label\", \"aria-selected\"];\nconst _hoisted_10 = [\"data-pointed\", \"onMouseenter\", \"onClick\"];\nconst _hoisted_11 = [\"innerHTML\"];\nconst _hoisted_12 = [\"aria-label\"];\nconst _hoisted_13 = [\"data-pointed\", \"data-selected\", \"onMouseenter\", \"onClick\", \"id\", \"aria-selected\", \"aria-label\"];\nconst _hoisted_14 = [\"innerHTML\"];\nconst _hoisted_15 = [\"data-pointed\", \"data-selected\", \"onMouseenter\", \"onClick\", \"id\", \"aria-selected\", \"aria-label\"];\nconst _hoisted_16 = [\"innerHTML\"];\nconst _hoisted_17 = [\"innerHTML\"];\nconst _hoisted_18 = [\"innerHTML\"];\nconst _hoisted_19 = [\"value\"];\nconst _hoisted_20 = [\"name\", \"value\"];\nconst _hoisted_21 = [\"name\", \"value\"];\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"multiselect\",\n tabindex: _ctx.tabindex,\n class: _ctx.classList.container,\n id: $props.searchable ? undefined : $props.id,\n dir: $props.rtl ? 'rtl' : undefined,\n onFocusin: _cache[9] || (_cache[9] = (...args) => (_ctx.handleFocusIn && _ctx.handleFocusIn(...args))),\n onFocusout: _cache[10] || (_cache[10] = (...args) => (_ctx.handleFocusOut && _ctx.handleFocusOut(...args))),\n onKeydown: _cache[11] || (_cache[11] = (...args) => (_ctx.handleKeydown && _ctx.handleKeydown(...args))),\n onKeyup: _cache[12] || (_cache[12] = (...args) => (_ctx.handleKeyup && _ctx.handleKeyup(...args))),\n onMousedown: _cache[13] || (_cache[13] = (...args) => (_ctx.handleMousedown && _ctx.handleMousedown(...args))),\n \"aria-owns\": !$props.searchable ? _ctx.ariaOwns : undefined,\n \"aria-placeholder\": !$props.searchable ? _ctx.ariaPlaceholder : undefined,\n \"aria-expanded\": !$props.searchable ? _ctx.isOpen : undefined,\n \"aria-activedescendant\": !$props.searchable ? _ctx.ariaActiveDescendant : undefined,\n \"aria-multiselectable\": !$props.searchable ? _ctx.ariaMultiselectable : undefined,\n role: !$props.searchable ? 'listbox' : undefined\n }, !$props.searchable ? $props.aria : {}), [\n createCommentVNode(\" Search \"),\n ($props.mode !== 'tags' && $props.searchable && !$props.disabled)\n ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n type: $props.inputType,\n modelValue: _ctx.search,\n value: _ctx.search,\n class: _ctx.classList.search,\n autocomplete: $props.autocomplete,\n id: $props.searchable ? $props.id : undefined,\n onInput: _cache[0] || (_cache[0] = (...args) => (_ctx.handleSearchInput && _ctx.handleSearchInput(...args))),\n onKeypress: _cache[1] || (_cache[1] = (...args) => (_ctx.handleKeypress && _ctx.handleKeypress(...args))),\n onPaste: _cache[2] || (_cache[2] = withModifiers((...args) => (_ctx.handlePaste && _ctx.handlePaste(...args)), [\"stop\"])),\n ref: \"input\",\n \"aria-owns\": _ctx.ariaOwns,\n \"aria-placeholder\": _ctx.ariaPlaceholder,\n \"aria-expanded\": _ctx.isOpen,\n \"aria-activedescendant\": _ctx.ariaActiveDescendant,\n \"aria-multiselectable\": _ctx.ariaMultiselectable,\n role: \"listbox\"\n }, {\n ...$props.attrs,\n ...$props.aria,\n }), null, 16 /* FULL_PROPS */, _hoisted_2))\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Tags (with search) \"),\n ($props.mode == 'tags')\n ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: normalizeClass(_ctx.classList.tags),\n \"data-tags\": \"\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.iv, (option, i, key) => {\n return renderSlot(_ctx.$slots, \"tag\", {\n option: option,\n handleTagRemove: _ctx.handleTagRemove,\n disabled: $props.disabled\n }, () => [\n (openBlock(), createElementBlock(\"span\", {\n class: normalizeClass(_ctx.classList.tag),\n tabindex: \"-1\",\n onKeyup: withKeys($event => (_ctx.handleTagRemove(option, $event)), [\"enter\"]),\n key: key,\n \"aria-label\": _ctx.ariaTagLabel(option[$props.label])\n }, [\n createTextVNode(toDisplayString(option[$props.label]) + \" \", 1 /* TEXT */),\n (!$props.disabled)\n ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass(_ctx.classList.tagRemove),\n onClick: $event => (_ctx.handleTagRemove(option, $event))\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.classList.tagRemoveIcon)\n }, null, 2 /* CLASS */)\n ], 10 /* CLASS, PROPS */, _hoisted_4))\n : createCommentVNode(\"v-if\", true)\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, _hoisted_3))\n ])\n }), 256 /* UNKEYED_FRAGMENT */)),\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.tagsSearchWrapper),\n ref: \"tags\"\n }, [\n createCommentVNode(\" Used for measuring search width \"),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.classList.tagsSearchCopy)\n }, toDisplayString(_ctx.search), 3 /* TEXT, CLASS */),\n createCommentVNode(\" Actual search input \"),\n ($props.searchable && !$props.disabled)\n ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n type: $props.inputType,\n modelValue: _ctx.search,\n value: _ctx.search,\n class: _ctx.classList.tagsSearch,\n id: $props.searchable ? $props.id : undefined,\n autocomplete: $props.autocomplete,\n onInput: _cache[3] || (_cache[3] = (...args) => (_ctx.handleSearchInput && _ctx.handleSearchInput(...args))),\n onKeypress: _cache[4] || (_cache[4] = (...args) => (_ctx.handleKeypress && _ctx.handleKeypress(...args))),\n onPaste: _cache[5] || (_cache[5] = withModifiers((...args) => (_ctx.handlePaste && _ctx.handlePaste(...args)), [\"stop\"])),\n ref: \"input\",\n \"aria-owns\": _ctx.ariaOwns,\n \"aria-placeholder\": _ctx.ariaPlaceholder,\n \"aria-expanded\": _ctx.isOpen,\n \"aria-activedescendant\": _ctx.ariaActiveDescendant,\n \"aria-multiselectable\": _ctx.ariaMultiselectable,\n role: \"listbox\"\n }, {\n ...$props.attrs,\n ...$props.aria,\n }), null, 16 /* FULL_PROPS */, _hoisted_5))\n : createCommentVNode(\"v-if\", true)\n ], 2 /* CLASS */)\n ], 2 /* CLASS */))\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Single label \"),\n ($props.mode == 'single' && _ctx.hasSelected && !_ctx.search && _ctx.iv)\n ? renderSlot(_ctx.$slots, \"singlelabel\", {\n key: 2,\n value: _ctx.iv\n }, () => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.singleLabel),\n \"aria-hidden\": \"true\"\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.classList.singleLabelText),\n innerHTML: _ctx.iv[$props.label]\n }, null, 10 /* CLASS, PROPS */, _hoisted_6)\n ], 2 /* CLASS */)\n ])\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Multiple label \"),\n ($props.mode == 'multiple' && _ctx.hasSelected && !_ctx.search)\n ? renderSlot(_ctx.$slots, \"multiplelabel\", {\n key: 3,\n values: _ctx.iv\n }, () => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.multipleLabel),\n innerHTML: _ctx.multipleLabelText,\n \"aria-hidden\": \"true\"\n }, null, 10 /* CLASS, PROPS */, _hoisted_7)\n ])\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Placeholder \"),\n ($props.placeholder && !_ctx.hasSelected && !_ctx.search)\n ? renderSlot(_ctx.$slots, \"placeholder\", { key: 4 }, () => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.placeholder),\n \"aria-hidden\": \"true\"\n }, toDisplayString($props.placeholder), 3 /* TEXT, CLASS */)\n ])\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Spinner \"),\n ($props.loading || _ctx.resolving)\n ? renderSlot(_ctx.$slots, \"spinner\", { key: 5 }, () => [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.classList.spinner),\n \"aria-hidden\": \"true\"\n }, null, 2 /* CLASS */)\n ])\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Clear \"),\n (_ctx.hasSelected && !$props.disabled && $props.canClear && !_ctx.busy)\n ? renderSlot(_ctx.$slots, \"clear\", {\n key: 6,\n clear: _ctx.clear\n }, () => [\n createElementVNode(\"span\", {\n tabindex: \"0\",\n role: \"button\",\n \"aria-label\": \"❎\",\n class: normalizeClass(_ctx.classList.clear),\n onClick: _cache[6] || (_cache[6] = (...args) => (_ctx.clear && _ctx.clear(...args))),\n onKeyup: _cache[7] || (_cache[7] = withKeys((...args) => (_ctx.clear && _ctx.clear(...args)), [\"enter\"]))\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.classList.clearIcon)\n }, null, 2 /* CLASS */)\n ], 34 /* CLASS, HYDRATE_EVENTS */)\n ])\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Caret \"),\n ($props.caret && $props.showOptions)\n ? renderSlot(_ctx.$slots, \"caret\", { key: 7 }, () => [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.classList.caret),\n onClick: _cache[8] || (_cache[8] = (...args) => (_ctx.handleCaretClick && _ctx.handleCaretClick(...args))),\n \"aria-hidden\": \"true\"\n }, null, 2 /* CLASS */)\n ])\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Options \"),\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.dropdown),\n tabindex: \"-1\"\n }, [\n renderSlot(_ctx.$slots, \"beforelist\", { options: _ctx.fo }),\n createElementVNode(\"ul\", {\n class: normalizeClass(_ctx.classList.options),\n id: _ctx.ariaOwns\n }, [\n ($props.groups)\n ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.fg, (group, i, key) => {\n return (openBlock(), createElementBlock(\"li\", {\n class: normalizeClass(_ctx.classList.group),\n key: key,\n id: _ctx.ariaGroupId(group),\n \"aria-label\": _ctx.ariaGroupLabel(group),\n \"aria-selected\": _ctx.isSelected(group),\n role: \"option\"\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.groupLabel(group)),\n \"data-pointed\": _ctx.isPointed(group),\n onMouseenter: $event => (_ctx.setPointer(group, i)),\n onClick: $event => (_ctx.handleGroupClick(group))\n }, [\n renderSlot(_ctx.$slots, \"grouplabel\", {\n group: group,\n isSelected: _ctx.isSelected,\n isPointed: _ctx.isPointed\n }, () => [\n createElementVNode(\"span\", {\n innerHTML: group[$props.groupLabel]\n }, null, 8 /* PROPS */, _hoisted_11)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, _hoisted_10),\n createElementVNode(\"ul\", {\n class: normalizeClass(_ctx.classList.groupOptions),\n \"aria-label\": _ctx.ariaGroupLabel(group),\n role: \"group\"\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(group.__VISIBLE__, (option, i, key) => {\n return (openBlock(), createElementBlock(\"li\", {\n class: normalizeClass(_ctx.classList.option(option, group)),\n \"data-pointed\": _ctx.isPointed(option),\n \"data-selected\": _ctx.isSelected(option) || undefined,\n key: key,\n onMouseenter: $event => (_ctx.setPointer(option)),\n onClick: $event => (_ctx.handleOptionClick(option)),\n id: _ctx.ariaOptionId(option),\n \"aria-selected\": _ctx.isSelected(option),\n \"aria-label\": _ctx.ariaOptionLabel(option),\n role: \"option\"\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n isSelected: _ctx.isSelected,\n isPointed: _ctx.isPointed,\n search: _ctx.search\n }, () => [\n createElementVNode(\"span\", {\n innerHTML: option[$props.label]\n }, null, 8 /* PROPS */, _hoisted_14)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, _hoisted_13))\n }), 128 /* KEYED_FRAGMENT */))\n ], 10 /* CLASS, PROPS */, _hoisted_12)\n ], 10 /* CLASS, PROPS */, _hoisted_9))\n }), 128 /* KEYED_FRAGMENT */))\n : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(_ctx.fo, (option, i, key) => {\n return (openBlock(), createElementBlock(\"li\", {\n class: normalizeClass(_ctx.classList.option(option)),\n \"data-pointed\": _ctx.isPointed(option),\n \"data-selected\": _ctx.isSelected(option) || undefined,\n key: key,\n onMouseenter: $event => (_ctx.setPointer(option)),\n onClick: $event => (_ctx.handleOptionClick(option)),\n id: _ctx.ariaOptionId(option),\n \"aria-selected\": _ctx.isSelected(option),\n \"aria-label\": _ctx.ariaOptionLabel(option),\n role: \"option\"\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n isSelected: _ctx.isSelected,\n isPointed: _ctx.isPointed,\n search: _ctx.search\n }, () => [\n createElementVNode(\"span\", {\n innerHTML: option[$props.label]\n }, null, 8 /* PROPS */, _hoisted_16)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, _hoisted_15))\n }), 128 /* KEYED_FRAGMENT */))\n ], 10 /* CLASS, PROPS */, _hoisted_8),\n (_ctx.noOptions)\n ? renderSlot(_ctx.$slots, \"nooptions\", { key: 0 }, () => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.noOptions),\n innerHTML: $props.noOptionsText\n }, null, 10 /* CLASS, PROPS */, _hoisted_17)\n ])\n : createCommentVNode(\"v-if\", true),\n (_ctx.noResults)\n ? renderSlot(_ctx.$slots, \"noresults\", { key: 1 }, () => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.noResults),\n innerHTML: $props.noResultsText\n }, null, 10 /* CLASS, PROPS */, _hoisted_18)\n ])\n : createCommentVNode(\"v-if\", true),\n ($props.infinite && _ctx.hasMore)\n ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass(_ctx.classList.inifinite),\n ref: \"infiniteLoader\"\n }, [\n renderSlot(_ctx.$slots, \"infinite\", {}, () => [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.classList.inifiniteSpinner)\n }, null, 2 /* CLASS */)\n ])\n ], 2 /* CLASS */))\n : createCommentVNode(\"v-if\", true),\n renderSlot(_ctx.$slots, \"afterlist\", { options: _ctx.fo })\n ], 2 /* CLASS */),\n createCommentVNode(\" Hacky input element to show HTML5 required warning \"),\n ($props.required)\n ? (openBlock(), createElementBlock(\"input\", {\n key: 8,\n class: normalizeClass(_ctx.classList.fakeInput),\n tabindex: \"-1\",\n value: _ctx.textValue,\n required: \"\"\n }, null, 10 /* CLASS, PROPS */, _hoisted_19))\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Native input support \"),\n ($props.nativeSupport)\n ? (openBlock(), createElementBlock(Fragment, { key: 9 }, [\n ($props.mode == 'single')\n ? (openBlock(), createElementBlock(\"input\", {\n key: 0,\n type: \"hidden\",\n name: $props.name,\n value: _ctx.plainValue !== undefined ? _ctx.plainValue : ''\n }, null, 8 /* PROPS */, _hoisted_20))\n : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(_ctx.plainValue, (v, i) => {\n return (openBlock(), createElementBlock(\"input\", {\n type: \"hidden\",\n name: `${$props.name}[]`,\n value: v,\n key: i\n }, null, 8 /* PROPS */, _hoisted_21))\n }), 128 /* KEYED_FRAGMENT */))\n ], 64 /* STABLE_FRAGMENT */))\n : createCommentVNode(\"v-if\", true),\n createCommentVNode(\" Create height for empty input \"),\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.classList.spacer)\n }, null, 2 /* CLASS */)\n ], 16 /* FULL_PROPS */, _hoisted_1))\n}\n\nscript.render = render;\nscript.__file = \"src/Multiselect.vue\";\n\nexport { script as default };\n"],"sourceRoot":""}