\\n \\n\\n \\n\\n \\n
\\n
\\n\\n
\\n\\n
').concat(this.noOptionsText,'
\\n
').concat(this.noSearchResultsText,'
\\n\\n
\\n
\\n
\\n ');this.$ele.innerHTML=o,this.$body=document.querySelector(\"body\"),this.$wrapper=this.$ele.querySelector(\".vscomp-wrapper\"),this.$toggleButton=this.$ele.querySelector(\".vscomp-toggle-button\"),this.$clearButton=this.$ele.querySelector(\".vscomp-clear-button\"),this.$dropboxContainer=this.$ele.querySelector(\".vscomp-dropbox-container\"),this.$dropboxCloseButton=this.$ele.querySelector(\".vscomp-dropbox-close-button\"),this.$search=this.$ele.querySelector(\".vscomp-search-wrapper\"),this.$optionsContainer=this.$ele.querySelector(\".vscomp-options-container\"),this.$optionsList=this.$ele.querySelector(\".vscomp-options-list\"),this.$options=this.$ele.querySelector(\".vscomp-options\"),this.$valueText=this.$ele.querySelector(\".vscomp-value\"),this.$hiddenInput=this.$ele.querySelector(\".vscomp-hidden-input\"),this.$noOptions=this.$ele.querySelector(\".vscomp-no-options\"),this.$noSearchResults=this.$ele.querySelector(\".vscomp-no-search-results\"),this.afterRenderWrapper()}}},{key:\"renderOptions\",value:function(){var e,t=this,i=\"\",s=this.getVisibleOptions(),o=\"\",n=\"\",l=!(!this.markSearchResults||!this.searchValue),a=this.labelRenderer,u=\"function\"==typeof a,c=r.getStyleText({height:this.optionHeight+\"px\"});if(l&&(e=new RegExp(\"(\".concat(this.searchValue,\")\"),\"gi\")),this.multiple&&(o=''),this.allowNewOption){var h=this.getTooltipAttrText(\"New Option\");n='\")}s.forEach((function(s){var r,h=\"vscomp-option\",p=t.getTooltipAttrText(\"\",!0),d=o,v=\"\",f=\"\";s.isFocused&&(h+=\" focused\"),s.isDisabled&&(h+=\" disabled\"),s.isGroupTitle?(h+=\" group-title\",d=\"\"):s.isSelected&&(h+=\" selected\"),s.isGroupOption&&(h+=\" group-option\"),r=u?a(s):s.label,s.description&&(f='\").concat(s.description,\"
\")),s.isCurrentNew?(h+=\" current-new\",v+=n):l&&!s.isGroupTitle&&(r=r.replace(e,\"$1\")),i+='\\n \").concat(d,'\\n \\n \").concat(r,\"\\n \\n \").concat(f,\"\\n \").concat(v,\"\\n
\")})),this.$options.innerHTML=i;var p=!this.options.length&&!this.hasServerSearch,d=!p&&!s.length;(!this.allowNewOption||this.hasServerSearch||this.showOptionsOnlyOnSearch)&&r.toggleClass(this.$wrapper,\"has-no-search-results\",d),r.toggleClass(this.$wrapper,\"has-no-options\",p),this.setOptionsPosition(),this.setOptionsTooltip()}},{key:\"renderSearch\",value:function(){if(this.hasSearchContainer){var e=\"\",t=\"\";this.multiple&&!this.disableSelectAll&&(e='\\n \\n '.concat(this.selectAllText,\"\\n \")),this.hasSearch&&(t='\\n ×'));var i='\\n '.concat(e,\"\\n \").concat(t,\"\\n
\");this.$search.innerHTML=i,this.$searchInput=this.$ele.querySelector(\".vscomp-search-input\"),this.$searchClear=this.$ele.querySelector(\".vscomp-search-clear\"),this.$toggleAllButton=this.$ele.querySelector(\".vscomp-toggle-all-button\"),this.$toggleAllCheckbox=this.$ele.querySelector(\".vscomp-toggle-all-checkbox\"),this.addEvent(this.$searchInput,\"keyup change\",\"onSearch\"),this.addEvent(this.$searchClear,\"click\",\"onSearchClear\"),this.addEvent(this.$toggleAllButton,\"click\",\"onToggleAllOptions\")}}},{key:\"addEvents\",value:function(){this.addEvent(document,\"click\",\"onDocumentClick\"),this.addEvent(this.$wrapper,\"keydown\",\"onKeyDown\"),this.addEvent(this.$toggleButton,\"click\",\"onToggleButtonClick\"),this.addEvent(this.$clearButton,\"click\",\"onClearButtonClick\"),this.addEvent(this.$dropboxContainer,\"click\",\"onDropboxContainerClick\"),this.addEvent(this.$dropboxCloseButton,\"click\",\"onDropboxCloseButtonClick\"),this.addEvent(this.$optionsContainer,\"scroll\",\"onOptionsScroll\"),this.addEvent(this.$options,\"click\",\"onOptionsClick\"),this.addEvent(this.$options,\"mouseover\",\"onOptionsMouseOver\"),this.addEvent(this.$options,\"touchmove\",\"onOptionsTouchMove\")}},{key:\"addEvent\",value:function(e,t,i){var s=this;e&&(t=o.removeArrayEmpty(t.split(\" \"))).forEach((function(t){var o=\"\".concat(i,\"-\").concat(t),n=s.events[o];n||(n=s[i].bind(s),s.events[o]=n),r.addEvent(e,t,n)}))}},{key:\"onDocumentClick\",value:function(e){e.target.closest(\".vscomp-wrapper\")!==this.$wrapper&&this.isOpened()&&this.closeDropbox()}},{key:\"onKeyDown\",value:function(e){var t=e.which||e.keyCode,i=f[t];i&&this[i](e)}},{key:\"onEnterPress\",value:function(){this.isOpened()?this.selectFocusedOption():this.openDropbox()}},{key:\"onEscPress\",value:function(){this.isOpened()&&this.closeDropbox()}},{key:\"onDownArrowPress\",value:function(e){e.preventDefault(),this.isOpened()?this.focusOption(\"next\"):this.openDropbox()}},{key:\"onUpArrowPress\",value:function(e){e.preventDefault(),this.isOpened()?this.focusOption(\"previous\"):this.openDropbox()}},{key:\"onToggleButtonClick\",value:function(e){e.target.closest(\".toggle-button-child\")||this.toggleDropbox()}},{key:\"onClearButtonClick\",value:function(){this.reset()}},{key:\"onOptionsScroll\",value:function(){this.setVisibleOptions()}},{key:\"onOptionsClick\",value:function(e){this.selectOption(e.target.closest(\".vscomp-option:not(.disabled):not(.group-title)\"))}},{key:\"onDropboxContainerClick\",value:function(e){e.target.closest(\".vscomp-dropbox\")||this.closeDropbox()}},{key:\"onDropboxCloseButtonClick\",value:function(){this.closeDropbox()}},{key:\"onOptionsMouseOver\",value:function(e){var t=e.target.closest(\".vscomp-option:not(.disabled):not(.group-title)\");t&&this.isOpened()&&this.focusOption(null,t)}},{key:\"onOptionsTouchMove\",value:function(){this.removeOptionFocus()}},{key:\"onSearch\",value:function(e){e.stopPropagation(),this.setSearchValue(e.target.value,!0)}},{key:\"onSearchClear\",value:function(){this.setSearchValue(\"\"),this.focusSearchInput()}},{key:\"onToggleAllOptions\",value:function(){this.toggleAllOptions()}},{key:\"onResize\",value:function(){this.setOptionsContainerHeight(!0)}},{key:\"beforeValueSet\",value:function(e){this.toggleAllOptionsClass(!e&&void 0)}},{key:\"beforeSelectNewValue\",value:function(){var e=this,t=this.getNewOption(),i=t.index;this.newValues.push(t.value),this.setOptionProp(i,\"isCurrentNew\",!1),this.setOptionProp(i,\"isNew\",!0),setTimeout((function(){e.setSearchValue(\"\"),e.focusSearchInput()}),0)}},{key:\"afterRenderWrapper\",value:function(){this.$ele.setAttribute(\"name\",this.name),r.addClass(this.$ele,\"vscomp-ele\"),this.renderSearch(),this.setOptionsHeight(),this.setVisibleOptions(),this.setOptionsContainerHeight(),this.addEvents(),this.setMethods(),this.initialSelectedValue?this.setValueMethod(this.initialSelectedValue,this.silentInitialValueSet):this.autoSelectFirstOption&&this.visibleOptions.length&&this.setValueMethod(this.visibleOptions[0].value,this.silentInitialValueSet),this.showOptionsOnlyOnSearch&&this.setSearchValue(\"\",!1,!0)}},{key:\"afterSetOptionsContainerHeight\",value:function(e){e&&this.showAsPopup&&this.setVisibleOptions()}},{key:\"afterSetSearchValue\",value:function(){this.hasServerSearch?this.serverSearch():this.setVisibleOptionsCount(),this.selectAllOnlyVisible&&this.toggleAllOptionsClass()}},{key:\"afterSetVisibleOptionsCount\",value:function(){this.scrollToTop(),this.setOptionsHeight(),this.setVisibleOptions()}},{key:\"afterValueSet\",value:function(){this.scrollToTop(),this.setSearchValue(\"\"),this.renderOptions()}},{key:\"afterSetOptions\",value:function(e){e&&this.setSelectedProp(),this.setOptionsHeight(),this.setVisibleOptions(),this.showOptionsOnlyOnSearch&&this.setSearchValue(\"\",!1,!0),e||this.reset()}},{key:\"setProps\",value:function(e){e=this.setDefaultProps(e),this.setPropsFromElementAttr(e);var t=o.convertToBoolean;this.$ele=e.ele,this.valueKey=e.valueKey,this.labelKey=e.labelKey,this.descriptionKey=e.descriptionKey,this.aliasKey=e.aliasKey,this.optionHeightText=e.optionHeight,this.optionHeight=parseFloat(this.optionHeightText),this.multiple=t(e.multiple),this.hasSearch=t(e.search),this.hideClearButton=t(e.hideClearButton),this.autoSelectFirstOption=t(e.autoSelectFirstOption),this.hasOptionDescription=t(e.hasOptionDescription),this.silentInitialValueSet=t(e.silentInitialValueSet),this.allowNewOption=t(e.allowNewOption),this.markSearchResults=t(e.markSearchResults),this.showSelectedOptionsFirst=t(e.showSelectedOptionsFirst),this.disableSelectAll=t(e.disableSelectAll),this.keepAlwaysOpen=t(e.keepAlwaysOpen),this.showDropboxAsPopup=t(e.showDropboxAsPopup),this.hideValueTooltipOnSelectAll=t(e.hideValueTooltipOnSelectAll),this.showOptionsOnlyOnSearch=t(e.showOptionsOnlyOnSearch),this.selectAllOnlyVisible=t(e.selectAllOnlyVisible),this.noOptionsText=e.noOptionsText,this.noSearchResultsText=e.noSearchResultsText,this.selectAllText=e.selectAllText,this.searchPlaceholderText=e.searchPlaceholderText,this.clearButtonText=e.clearButtonText,this.placeholder=e.placeholder,this.position=e.position,this.dropboxWidth=e.dropboxWidth,this.tooltipFontSize=e.tooltipFontSize,this.tooltipAlignment=e.tooltipAlignment,this.tooltipMaxWidth=e.tooltipMaxWidth,this.noOfDisplayValues=parseInt(e.noOfDisplayValues),this.zIndex=parseInt(e.zIndex),this.maxValues=parseInt(e.maxValues),this.name=e.name,this.additionalClasses=e.additionalClasses,this.popupDropboxBreakpoint=e.popupDropboxBreakpoint,this.onServerSearch=e.onServerSearch,this.labelRenderer=e.labelRenderer,this.initialSelectedValue=0===e.selectedValue?\"0\":e.selectedValue,this.selectedValues=[],this.selectedOptions=[],this.newValues=[],this.events={},this.tooltipEnterDelay=200,this.transitionDuration=250,this.searchValue=\"\",this.searchValueOriginal=\"\",this.isAllSelected=!1,(void 0===e.search&&this.multiple||this.allowNewOption||this.showOptionsOnlyOnSearch)&&(this.hasSearch=!0),this.hasServerSearch=\"function\"==typeof this.onServerSearch,(this.maxValues||this.hasServerSearch||this.showOptionsOnlyOnSearch)&&(this.disableSelectAll=!0),this.showAsPopup=this.showDropboxAsPopup&&!this.keepAlwaysOpen&&window.innerWidth<=parseFloat(this.popupDropboxBreakpoint),this.hasSearchContainer=this.hasSearch||this.multiple&&!this.disableSelectAll,this.optionsCount=this.getOptionsCount(e.optionsCount),this.halfOptionsCount=Math.ceil(this.optionsCount/2),this.optionsHeight=this.getOptionsHeight()}},{key:\"setDefaultProps\",value:function(e){var t={valueKey:\"value\",labelKey:\"label\",descriptionKey:\"description\",aliasKey:\"alias\",optionsCount:5,noOfDisplayValues:50,optionHeight:\"40px\",multiple:!1,hideClearButton:!1,autoSelectFirstOption:!1,hasOptionDescription:!1,silentInitialValueSet:!1,disableSelectAll:!1,noOptionsText:\"No options found\",noSearchResultsText:\"No results found\",selectAllText:\"Select All\",searchPlaceholderText:\"Search...\",clearButtonText:\"Clear\",placeholder:\"Select\",position:\"auto\",zIndex:1,allowNewOption:!1,markSearchResults:!1,tooltipFontSize:\"14px\",tooltipAlignment:\"center\",tooltipMaxWidth:\"300px\",showSelectedOptionsFirst:!1,name:\"\",additionalClasses:\"\",keepAlwaysOpen:!1,maxValues:0,showDropboxAsPopup:!0,popupDropboxBreakpoint:\"576px\",hideValueTooltipOnSelectAll:!0,showOptionsOnlyOnSearch:!1,selectAllOnlyVisible:!1};return e.hasOptionDescription&&(t.optionsCount=4,t.optionHeight=\"50px\"),Object.assign(t,e)}},{key:\"setPropsFromElementAttr\",value:function(e){var t=e.ele,i={multiple:\"multiple\",placeholder:\"placeholder\",name:\"name\",\"data-value-key\":\"valueKey\",\"data-label-key\":\"labelKey\",\"data-description-key\":\"descriptionKey\",\"data-alias-key\":\"aliasKey\",\"data-search\":\"search\",\"data-hide-clear-button\":\"hideClearButton\",\"data-auto-select-first-option\":\"autoSelectFirstOption\",\"data-has-option-description\":\"hasOptionDescription\",\"data-options-count\":\"optionsCount\",\"data-option-height\":\"optionHeight\",\"data-position\":\"position\",\"data-no-options-text\":\"noOptionsText\",\"data-no-search-results-text\":\"noSearchResultsText\",\"data-select-all-text\":\"selectAllText\",\"data-search-placeholder-text\":\"searchPlaceholderText\",\"data-clear-button-text\":\"clearButtonText\",\"data-silent-initial-value-set\":\"silentInitialValueSet\",\"data-dropbox-width\":\"dropboxWidth\",\"data-z-index\":\"zIndex\",\"data-no-of-display-values\":\"noOfDisplayValues\",\"data-allow-new-option\":\"allowNewOption\",\"data-mark-search-results\":\"markSearchResults\",\"data-tooltip-font-size\":\"tooltipFontSize\",\"data-tooltip-alignment\":\"tooltipAlignment\",\"data-tooltip-max-width\":\"tooltipMaxWidth\",\"data-show-selected-options-first\":\"showSelectedOptionsFirst\",\"data-disable-select-all\":\"disableSelectAll\",\"data-keep-always-open\":\"keepAlwaysOpen\",\"data-max-values\":\"maxValues\",\"data-additional-classes\":\"additionalClasses\",\"data-show-dropbox-as-popup\":\"showDropboxAsPopup\",\"data-popup-dropbox-breakpoint\":\"popupDropboxBreakpoint\",\"data-hide-value-tooltip-on-select-all\":\"hideValueTooltipOnSelectAll\",\"data-show-options-only-on-search\":\"showOptionsOnlyOnSearch\",\"data-select-all-only-visible\":\"selectAllOnlyVisible\"};for(var s in i){var o=t.getAttribute(s);\"multiple\"!==s||\"\"!==o&&\"true\"!==o||(o=!0),o&&(e[i[s]]=o)}}},{key:\"setMethods\",value:function(){var t=this.$ele;t.virtualSelect=this,t.value=this.multiple?[]:\"\",t.reset=e.reset,t.setValue=e.setValueMethod,t.setOptions=e.setOptionsMethod,t.setDisabledOptions=e.setDisabledOptionsMethod,t.toggleSelectAll=e.toggleSelectAll,t.isAllSelected=e.isAllSelected,t.addOption=e.addOptionMethod,t.getNewValue=e.getNewValueMethod,t.getDisplayValue=e.getDisplayValueMethod,t.getSelectedOptions=e.getSelectedOptionsMethod,t.open=e.openMethod,t.close=e.closeMethod}},{key:\"setValueMethod\",value:function(e,t){Array.isArray(e)||(e=[e]),e=e.map((function(e){return e||0==e?e.toString():\"\"}));var i=[];this.allowNewOption&&e&&this.setNewOptionsFromValue(e),this.options.forEach((function(t){-1===e.indexOf(t.value)||t.isDisabled||t.isGroupTitle?t.isSelected=!1:(t.isSelected=!0,i.push(t.value))})),this.multiple||(i=i[0]),this.beforeValueSet(),this.setValue(i,!t),this.afterValueSet()}},{key:\"setOptionsMethod\",value:function(e,t){this.setOptions(e),this.afterSetOptions(t)}},{key:\"setDisabledOptionsMethod\",value:function(e){this.setDisabledOptions(e,!0),this.setValueMethod(null),this.setVisibleOptions()}},{key:\"setDisabledOptions\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e=e.map((function(e){return e.toString()})),this.disabledOptions=e,t&&e.length&&this.options.forEach((function(t){return t.isDisabled=-1!==e.indexOf(t.value),t}))}},{key:\"setOptions\",value:function(e){e||(e=[]);var t=[],i=this.disabledOptions,s=i.length,n=this.valueKey,l=this.labelKey,a=this.descriptionKey,r=this.aliasKey,u=this.hasOptionDescription,c=o.getString,h=o.convertToBoolean,p=this.getAlias,d=0,v=!1;e.forEach((function e(o){var f=c(o[n]),y=o.options,g=!!y,O={index:d,value:f,label:c(o[l]),alias:p(o[r]),isVisible:h(o.isVisible,!0),isNew:o.isNew||!1,isGroupTitle:g};if(s&&(O.isDisabled=-1!==i.indexOf(f)),o.isGroupOption&&(O.isGroupOption=!0,O.groupIndex=o.groupIndex),u&&(O.description=c(o[a])),t.push(O),d++,g){var b=O.index;v=!0,y.forEach((function(t){t.isGroupOption=!0,t.groupIndex=b,e(t)}))}})),this.options=t,this.visibleOptionsCount=t.length,this.lastOptionIndex=this.options.length-1,this.newValues=[],this.hasOptionGroup=v,this.setSortedOptions()}},{key:\"setServerOptions\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.setOptionsMethod(t,!0);var i=this.selectedOptions,s=this.options,o=!1;if(i.length){var n=s.map((function(e){return e.value}));o=!0,i.forEach((function(e){-1===n.indexOf(e.value)&&(e.isVisible=!1,s.push(e))})),this.setOptionsMethod(s,!0)}if(this.allowNewOption&&this.searchValue){var l=s.some((function(t){return t.label.toLowerCase()===e.searchValue}));l||(o=!0,this.setNewOption())}o&&(this.setVisibleOptionsCount(),this.multiple&&this.toggleAllOptionsClass(),this.setValueText()),r.removeClass(this.$wrapper,\"server-searching\")}},{key:\"setSelectedOptions\",value:function(){var e=this.selectedValues;this.selectedOptions=this.options.filter((function(t){return-1!==e.indexOf(t.value)}))}},{key:\"setSortedOptions\",value:function(){var e=h(this.options);this.showSelectedOptionsFirst&&this.selectedValues.length&&(e=this.hasOptionGroup?this.sortOptionsGroup(e):this.sortOptions(e)),this.sortedOptions=e}},{key:\"setVisibleOptions\",value:function(){var e=h(this.sortedOptions),t=2*this.optionsCount,i=this.getVisibleStartIndex(),s=this.getNewOption(),o=i+t-1,n=0;s&&(s.visibleIndex=n,n++),e=e.filter((function(e){var t=!1;return e.isVisible&&!e.isCurrentNew&&(t=n>=i&&n<=o,e.visibleIndex=n,n++),t})),s&&(e=[s].concat(h(e))),this.visibleOptions=e,this.renderOptions()}},{key:\"setOptionsPosition\",value:function(e){void 0===e&&(e=this.getVisibleStartIndex());var t=e*this.optionHeight;this.$options.style.transform=\"translate3d(0, \".concat(t,\"px, 0)\"),r.setData(this.$options,\"top\",t)}},{key:\"setOptionsTooltip\",value:function(){var e=this,t=this.getVisibleOptions(),i=this.hasOptionDescription;t.forEach((function(t){var s=e.$dropboxContainer.querySelector('.vscomp-option[data-index=\"'.concat(t.index,'\"]'));r.setData(s.querySelector(\".vscomp-option-text\"),\"tooltip\",t.label),i&&r.setData(s.querySelector(\".vscomp-option-description\"),\"tooltip\",t.description)}))}},{key:\"setValue\",value:function(e,t){e?Array.isArray(e)?this.selectedValues=h(e):this.selectedValues=[e]:this.selectedValues=[];var i=this.multiple?this.selectedValues:this.selectedValues[0]||\"\";this.$ele.value=i,this.$hiddenInput.value=i,this.isMaxValuesSelected=!!(this.maxValues&&this.maxValues<=this.selectedValues.length),this.setValueText(),r.toggleClass(this.$wrapper,\"has-value\",o.isNotEmpty(this.selectedValues)),r.toggleClass(this.$wrapper,\"max-value-selected\",this.isMaxValuesSelected),t&&r.dispatchEvent(this.$ele,\"change\")}},{key:\"setValueText\",value:function(){var e=[],t=[],i=this.selectedValues,s=i.length,o=this.noOfDisplayValues,n=0,l=this.isAllSelected&&!this.hasServerSearch;if(l&&this.hideValueTooltipOnSelectAll)this.$valueText.innerHTML=\"All (\".concat(s,\")\");else{var a,u=c(this.options);try{for(u.s();!(a=u.n()).done;){var h=a.value;if(!h.isCurrentNew){if(n>50)break;var p=h.value;if(-1!==i.indexOf(p)){var d=h.label;e.push(d),++n<=o&&t.push(''.concat(d,\"\"))}}}}catch(e){u.e(e)}finally{u.f()}var v=s-o;v>0&&t.push('+ '.concat(v,\" more...\"));var f=e.join(\", \");if(\"\"===f)this.$valueText.innerHTML=this.placeholder;else if(this.$valueText.innerHTML=f,this.multiple){var y=this.maxValues;if(r.hasEllipsis(this.$valueText)||y){var g=\"\".concat(s);y&&(g+=\" / \".concat(y)),this.$valueText.innerHTML=l?\"All (\".concat(s,\")\"):\"\".concat(g,\" option\").concat(1===s?\"\":\"s\",\" selected\")}else t=[]}}r.setData(this.$valueText,\"tooltip\",t.join(\", \"))}},{key:\"setSearchValue\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e!==this.searchValueOriginal||i){t||(this.$searchInput.value=e);var s=e.replace(/\\\\/g,\"\").toLowerCase().trim();this.searchValue=s,this.searchValueOriginal=e,r.toggleClass(this.$wrapper,\"has-search-value\",e),this.afterSetSearchValue()}}},{key:\"setVisibleOptionsCount\",value:function(){var e,t=0,i=!1,s=this.searchValue,o=this.showOptionsOnlyOnSearch,n=this.isOptionVisible.bind(this);this.hasOptionGroup&&(e=this.getVisibleOptionGroupsMapping(s)),this.options.forEach((function(l){var a;l.isCurrentNew||(o&&!s?(l.isVisible=!1,a={isVisible:!1,hasExactOption:!1}):a=n(l,s,i,e),a.isVisible&&t++,i||(i=a.hasExactOption))})),this.allowNewOption&&(s&&!i?(this.setNewOption(),t++):this.removeNewOption()),this.visibleOptionsCount=t,this.afterSetVisibleOptionsCount()}},{key:\"setOptionProp\",value:function(e,t,i){this.options[e]&&(this.options[e][t]=i)}},{key:\"setOptionsHeight\",value:function(){this.$optionsList.style.height=this.optionHeight*this.visibleOptionsCount+\"px\"}},{key:\"setOptionsContainerHeight\",value:function(e){var t;e?this.showAsPopup&&(this.optionsCount=this.getOptionsCount(),t=this.getOptionsHeight(),this.optionsHeight=t):(t=this.optionsHeight,this.keepAlwaysOpen&&(r.setStyle(this.$noOptions,\"height\",t),r.setStyle(this.$noSearchResults,\"height\",t))),r.setStyle(this.$optionsContainer,\"max-height\",t),this.afterSetOptionsContainerHeight(e)}},{key:\"setDropboxPosition\",value:function(){if(\"auto\"===this.position){var e=r.getMoreVisibleSides(this.$wrapper),t=!1;if(this.dropboxWidth){var i=this.$toggleButton.getBoundingClientRect(),s=window.innerWidth,o=parseFloat(this.dropboxWidth),n=i.left+o>s,l=o>i.right;n&&!l&&(t=!0)}r.toggleClass(this.$wrapper,\"position-top\",\"top\"===e.vertical),r.toggleClass(this.$wrapper,\"position-left\",t)}}},{key:\"setNewOption\",value:function(e){var t=e||this.searchValueOriginal.trim();if(t){var i=this.getNewOption();if(i){var s=i.index;this.setOptionProp(s,\"value\",t),this.setOptionProp(s,\"label\",t)}else{var o={value:t,label:t};e?(o.isNew=!0,this.newValues.push(t)):o.isCurrentNew=!0,this.addOption(o)}}}},{key:\"setSelectedProp\",value:function(){var e=this.selectedValues;this.options.forEach((function(t){-1!==e.indexOf(t.value)&&(t.isSelected=!0)}))}},{key:\"setNewOptionsFromValue\",value:function(e){if(e){var t=this.options.map((function(e){return e.value})),i=this.setNewOption.bind(this);e.forEach((function(e){e&&-1===t.indexOf(e)&&i(e)}))}}},{key:\"getVisibleOptions\",value:function(){return this.visibleOptions||[]}},{key:\"getValue\",value:function(){return this.multiple?this.selectedValues:this.selectedValues[0]}},{key:\"getFirstVisibleOptionIndex\",value:function(){return Math.ceil(this.$optionsContainer.scrollTop/this.optionHeight)}},{key:\"getVisibleStartIndex\",value:function(){var e=this.getFirstVisibleOptionIndex()-this.halfOptionsCount;return e<0&&(e=0),e}},{key:\"getTooltipAttrText\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s={\"data-tooltip\":e||\"\",\"data-tooltip-enter-delay\":this.tooltipEnterDelay,\"data-tooltip-z-index\":this.zIndex,\"data-tooltip-font-size\":this.tooltipFontSize,\"data-tooltip-alignment\":this.tooltipAlignment,\"data-tooltip-max-width\":this.tooltipMaxWidth,\"data-tooltip-ellipsis-only\":t,\"data-tooltip-allow-html\":i};return r.getAttributesText(s)}},{key:\"getOptionObj\",value:function(e){if(e){var t=o.getString;return{index:e.index,value:t(e.value),label:t(e.label),description:t(e.description),alias:this.getAlias(e.alias),isCurrentNew:e.isCurrentNew||!1,isNew:e.isNew||!1,isVisible:!0}}}},{key:\"getNewOption\",value:function(){var e=this.options[this.lastOptionIndex];if(e&&e.isCurrentNew)return e}},{key:\"getOptionIndex\",value:function(e){var t;return e&&this.options.some((function(i){if(i.value==e)return t=i.index,!0})),t}},{key:\"getNewValue\",value:function(){var e=this.newValues,t=this.selectedValues.filter((function(t){return-1!==e.indexOf(t)}));return this.multiple?t:t[0]}},{key:\"getAlias\",value:function(e){return e=e?(e=Array.isArray(e)?e.join(\",\"):e.toString().trim()).toLowerCase():\"\"}},{key:\"getDisplayValue\",value:function(){var e,t=[],i=this.selectedValues,s=c(this.options);try{for(s.s();!(e=s.n()).done;){var o=e.value;-1!==i.indexOf(o.value)&&t.push(o.label)}}catch(e){s.e(e)}finally{s.f()}return this.multiple?t:t[0]||\"\"}},{key:\"getSelectedOptions\",value:function(){var e=this.selectedValues,t=[],i=this.valueKey,s=this.labelKey;return this.options.forEach((function(o){if(-1!==e.indexOf(o.value)){var n,l=(u(n={},i,o.value),u(n,s,o.label),n);o.isNew&&(l.isNew=!0),t.push(l)}})),this.multiple?t:t[0]}},{key:\"getVisibleOptionGroupsMapping\",value:function(e){var t=this.options,i={},s=this.isOptionVisible;return(t=this.structureOptionGroup(t)).forEach((function(t){i[t.index]=t.options.some((function(t){return s(t,e).isVisible}))})),i}},{key:\"getOptionsCount\",value:function(e){if(this.showAsPopup){var t=80*window.innerHeight/100-48;this.hasSearchContainer&&(t-=40),e=Math.floor(t/this.optionHeight)}else e=parseInt(e);return e}},{key:\"getOptionsHeight\",value:function(){return this.optionsCount*this.optionHeight+\"px\"}},{key:\"getSibling\",value:function(e,t){var i=\"next\"===t?\"nextElementSibling\":\"previousElementSibling\";do{e&&(e=e[i])}while(r.hasClass(e,\"disabled\")||r.hasClass(e,\"group-title\"));return e}},{key:\"openDropbox\",value:function(e){var t=this;e||r.dispatchEvent(this.$ele,\"beforeOpen\"),this.setDropboxPosition(),r.removeClass(this.$wrapper,\"closed\"),setTimeout((function(){r.addClass(t.$wrapper,\"opened\"),e||(t.moveSelectedOptionsFirst(),r.addClass(t.$wrapper,\"focused\"),t.showAsPopup?(r.addClass(t.$body,\"vscomp-popup-active\"),t.isPopupActive=!0):t.focusSearchInput(),r.dispatchEvent(t.$ele,\"afterOpen\"))}),0)}},{key:\"closeDropbox\",value:function(e){var t=this;if(this.keepAlwaysOpen)this.removeOptionFocus();else{e||r.dispatchEvent(this.$ele,\"beforeClose\");var i=e?0:this.transitionDuration;setTimeout((function(){r.removeClass(t.$wrapper,\"opened focused\"),t.removeOptionFocus(),e||t.isPopupActive&&(r.removeClass(t.$body,\"vscomp-popup-active\"),t.isPopupActive=!1)}),0),setTimeout((function(){r.addClass(t.$wrapper,\"closed\"),e||r.dispatchEvent(t.$ele,\"afterClose\")}),i)}}},{key:\"moveSelectedOptionsFirst\",value:function(){this.showSelectedOptionsFirst&&(this.setSortedOptions(),this.$optionsContainer.scrollTop&&this.selectedValues.length?this.scrollToTop():this.setVisibleOptions())}},{key:\"toggleDropbox\",value:function(){this.isOpened()?this.closeDropbox():this.openDropbox()}},{key:\"isOpened\",value:function(){return r.hasClass(this.$wrapper,\"opened\")}},{key:\"focusSearchInput\",value:function(){var e=this.$searchInput;e&&e.focus()}},{key:\"focusOption\",value:function(e,t){var i,s=this.$dropboxContainer.querySelector(\".vscomp-option.focused\");if(t)i=t;else if(s)i=this.getSibling(s,e);else{var o=this.getFirstVisibleOptionIndex();i=this.$dropboxContainer.querySelector('.vscomp-option[data-visible-index=\"'.concat(o,'\"]')),(r.hasClass(i,\"disabled\")||r.hasClass(i,\"group-title\"))&&(i=this.getSibling(i,\"next\"))}i&&i!==s&&(s&&r.removeClass(s,\"focused\"),r.addClass(i,\"focused\"),this.toggleFocusedProp(r.getData(i,\"index\"),!0),this.moveFocusedOptionToView(i))}},{key:\"moveFocusedOptionToView\",value:function(e){if(e||(e=this.$dropboxContainer.querySelector(\".vscomp-option.focused\")),e){var t,i=this.$optionsContainer.getBoundingClientRect(),s=e.getBoundingClientRect(),o=i.top,n=i.bottom,l=i.height,a=s.top,u=s.bottom,c=s.height,h=e.offsetTop,p=r.getData(this.$options,\"top\",\"number\");o>a?t=h+p:n1&&void 0!==arguments[1]&&arguments[1];this.focusedOptionIndex&&this.setOptionProp(this.focusedOptionIndex,\"isFocused\",!1),this.setOptionProp(e,\"isFocused\",t),this.focusedOptionIndex=e}},{key:\"toggleSelectedProp\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.setOptionProp(e,\"isSelected\",t)}},{key:\"scrollToTop\",value:function(){var e=!this.isOpened();e&&this.openDropbox(!0),this.$optionsContainer.scrollTop>0&&(this.$optionsContainer.scrollTop=0),e&&this.closeDropbox(!0)}},{key:\"reset\",value:function(){this.options.forEach((function(e){e.isSelected=!1})),this.beforeValueSet(!0),this.setValue(null,!0),this.afterValueSet()}},{key:\"addOption\",value:function(e,t){if(e){this.lastOptionIndex++,e.index=this.lastOptionIndex;var i=this.getOptionObj(e);this.options.push(i),this.sortedOptions.push(i),t&&(this.visibleOptionsCount++,this.afterSetOptions())}}},{key:\"removeOption\",value:function(e){(e||0==e)&&(this.options.splice(e,1),this.lastOptionIndex--)}},{key:\"removeNewOption\",value:function(){var e=this.getNewOption();e&&this.removeOption(e.index)}},{key:\"sortOptions\",value:function(e){return e.sort((function(e,t){return e.isSelected||t.isSelected?e.isSelected&&(!t.isSelected||e.index