{"version":3,"sources":["webpack:///../node_modules/@syncfusion/ej2-dropdowns/src/multi-select/multi-select.js"],"names":["extendStatics","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","FOCUS","HIDE_LIST","CHIP","MultiSelect","_super","option","element","_this","call","clearIconWidth","previousFilterText","storedSelectAllHeight","isUpdateHeaderHeight","isUpdateFooterHeight","isValidKey","selectAllEventData","selectAllEventEle","resetMainList","resetFilteredData","preventSetCurrentData","isSelectAllLoop","scrollFocusStatus","keyDownStatus","enableRTL","state","overAllWrapper","classList","add","remove","popupObj","enableRtl","dataBind","requiredModules","modules","enableVirtualization","push","args","member","mode","isGroupChecking","enableGroupCheckBox","prevOnChange","isProtectedOnChange","enableSelectionOrder","allowCustomValue","hideSelectedItem","closePopupOnSelect","updateHTMLAttribute","keys","htmlAttributes","_i","_a","htmlAttr","updatedClassValue","replace","trim","split","popupWrapper","enable","placeholder","inputElement","setAttribute","setProperties","refreshPlaceHolder","indexOf","hiddenElement","updateReadonly","removeAttribute","updateClearButton","overAllClear","parentNode","style","display","componentWrapper","appendChild","updateCssClass","cssClass","updatedCssClassValues","updateOldPropCssClass","oldClass","onPopupShown","e","isDevice","allowFiltering","proxy_1","window","onpopstate","hidePopup","focus","history","pushState","eventArgs","popup","event","cancel","animation","name","duration","trigger","focusAtFirstListItem","document","body","fields","groupBy","updateListItems","list","querySelectorAll","mainList","showDropDownIcon","refreshPopup","renderReactTemplates","show","zIndex","isReact","setTimeout","popupHeight","popupHeightValue","parseInt","headerTemplate","header","listHeight","maxHeight","offsetHeight","toString","footerTemplate","footer","id","updateAriaActiveDescendant","isFirstClick","loadTemplate","showSelectAll","clickHandler","updateVirtualReOrderList","isCheckBoxUpdate","query","getForQuery","value","clone","dataSource","resetList","selectedListData","UpdateSkeleton","liCollections","li","virtualItemCount","itemCount","totalItemCount","querySelector","getElementsByClassName","GetVirtualTrackHeight","virualElement","createElement","className","styles","getTransformValues","listItems","mainListItems","findGroupStart","deselectHeader","refreshListItems","reOrderList","removeChild","removeFocus","notify","module","isPreventScrollAction","setScrollPosition","allowObjectBinding","valueEle","findListElement","ulElement","scrollBottom","undefined","focusedItem","isKeyBoardAction","isOpen","elements","disabled","viewPortInfo","startIndex","addListFocus","focusAtLastListItem","data","activeElement","ignoreCase","item","isPopupOpen","index","getAriaAttributes","updateListARIA","disableStatus","ensureAriaDisabled","status","attr","removelastSelection","chipCollectionWrapper","getAttribute","tempValues","slice","customValue","getDataByValue","getFormattedValue","removeValue","removeChipSelection","updateDelimeter","delimiterChar","makeTextBoxEmpty","listData","refreshSelection","checkPlaceholderSize","removeSelectedChip","onActionFailure","renderPopup","targetElement","targetInputElement","valuecheck","isCheckbox","predicate","field","isPrimitiveData","or","where","and","adaptor","getQuery","onActionComplete","isUpdated","virtualGroupDataSource","count","skeletonCount","updateSelectElementData","splice","presentItemValue","addNonPresentItems","updateActionList","isCustomRendered","text","ignoreAccent","checkForCustomValue","remoteCustomValue","disableGroupHeader","mainData","cloneNode","mainListCollection","inputFocus","tempQuery","keyCode","unwireListEvents","wireListEvents","setInitialValue","selectAllAction","setDynValue","initialTextUpdate","initialValueUpdate","initialUpdate","changeOnBlur","updateValueState","beforePopupOpen","selected","previousSibling","previousElementSibling","contains","group","nextElementSibling","hideGroupItem","listEle","parentElement","l10nUpdate","noData","checkSelectAll","checkMaxSelection","element1","j","temp","temp1","getValidLi","liElement","groupItemLength","listItem","searchCount","searchActiveCount","maximumSelectionLength","virtualSelectAll","openClick","openOnClick","showPopup","keyUp","isWordCharacter","String","fromCharCode","match","ctrlKey","expandTextbox","showOverAllClear","search","filter","isFiltered","remoteFilterAction","dataUpdater","filterQuery","customFilterQuery","filterAction","dataType","typeOfData","typeof","isClearAllAction","filterType","endIndex","virtualFilterQuery","take","requiresCount","takeValue","getTakeValue","isReOrder","isSkip","queryElements","queries","getModuleName","condition","operator","fn","queryTakeValue","nos","skip","virtualItemStartIndex","isIncrementalRequest","incrementalEndIndex","Math","round","outerHeight","listItemHeight","isDataFetched","isNoData","backCommand","isReordered","scrollTop","previousStartIndex","virtualListInfo","component","getFilteringSkeletonCount","allowResize","setResize","dataChecks","getValueByText","customData","dataItem_1","random","emptyObject_1","firstItem","forEach","virtualCustomData","tempData","JSON","parse","stringify","virtualCustomSelectData","concat","isCustomDataUpdated","tempCount","virtualItemEndIndex","isNaN","parseFloat","isRemoteSelection","getNgDirective","wrapperClick","keyboardEvent","enabled","readonly","preventDefault","onBlurHandler","eve","isDocClickFromCheck","relatedTarget","floatLabelType","isIE","addTagOnBlur","listLiElement","updateListSelection","updateDataList","updateDelimView","dispatchEvent","focused","removeChipFocus","refreshInputHight","createSpanElement","calculateWidth","elementWidth","clientWidth","getComputedStyle","paddingRight","downIconWidth","dropIcon","offsetWidth","marginRight","setPlaceholderSize","searchWrapper","width","validateValues","newValue","oldValue","sort","newVal","oldVal","initStatus","isInteracted","isAngular","preventChange","updateTempValue","selectedValueInfo","pageUpSelection","steps","isVirtualKeyAction","collection","previousItem","getIndexByValue","previousFocusItem","pageDownSelection","getItems","render","focusInHandler","showDelimWrapper","viewWrapper","delimiterWrapper","hideDelimWrapper","size","codePoint","charCodeAt","sizeMultiplier","mobFilter","calcPopupWidth","refreshPosition","resolveCollision","checkTextLength","popupKeyActions","updateAriaAttribute","filterInput","homeNavigation","isHome","updateVirtualItemIndex","scrollEle","updateSelectionList","selectedItem","getElementByValue","handleVirtualKeyboardActions","pageCount","activeIndex","arrowDown","arrowUp","isMouseScrollAction","isScrollChanged","onKeyDown","isPreventKeyAction","altKey","getPageCount","selectByKey","spaceKeySelection","escapeAction","keyNavigation","checkBackCommand","moveByList","keyAction","focuseElem","focusFirstListItem","selectAllParent","li_1","moveBy","selectListByKey","hideOverAllClear","selectedLI","isInitialSelection","isInitial","selectedListMargin","marginBottom","isUpwardScrolling","virtualListCount","lastElementValue","selectedLiOffsetTop","offsetTop","currentOffset","nextBottom","nextOffset","isScrollerCHanged","boxRange","fixedHeaderElement","currentElementValue","liCount","isVirtualScrolling","isScrollerAtEnd","scrollHeight","firstElementValue","isPageUpKeyAction","scrollTo","clientHeight","limit","isValidLI","firstElementChild","lastElementChild","isFilterData","textContent","selectAllItem","selectAllCheckBox","childNodes","renderItems","updateInitialData","isVirtualTrackHeight","selectedElem","addChipSelection","currentChip","moveByTop","filterInputClassName","position","currentFocuedListElement","updateCheck","isVirtualElement","elementIndex","focusedLi","isDisabledElement","listItems_1","liItem","chipClick","elem","onChipRemove","which","button","customVal","setFloatLabelType","removeAllItems","isClearAll","mainElement","indexOfObjectInArray","removeVal","invokeCheckboxSelection","currentValue","updateMainList","updateChipStatus","isSelectAll","targetEle","element_1","val_1","itemData","removeIndex","isRemoveSelection","currentRemoveValue","currentText","currentValue_1","hideElement","currentValue_2","scrollStop","removeChip","targetEle_1","currentTarget","isSelectAllTarget","items","isChecked","clearAllCallback","isArray","totalItemsCount","element2","setWidth","objectToFind","array","_loop_1","every","state_1","addValue","isObjectInArray","innerHTML","getOverflowVal","updateWrapperText","textValues","addListSelection","addChip","activeItems","inactiveItems","dispatchSelect","isNotTrigger","dataValue","val_2","isServerRendered","updateListSelectEventCallback","getChip","closeElements","onMobileChipInteraction","chipElem","chipClose","multiCompiler","multiselectTemplate","checkTemplate","exception","encodeHtmlEntities","input","chip","attrs","chipContent","valueTemplate","valueCompTemp","valueTemplateId","isStringTemplate","enableHtmlSanitizer","innerText","setClass","classes","isPreventChange","showClearButton","popupWidth","mouseIn","mouseOut","listOption","iconCss","fieldProperty","properties","listCurrentOptions","showIcon","ariaAttributes","groupItemRole","checkboxFilter","filterParent","overAllHeight","visibility","setHeaderTemplate","setFooterTemplate","selectAllHeight","popupElement","searchBoxHeight","targetType","X","Y","relateTo","collision","offsetY","close","unwireScrollEvents","checkboxFilterInput","blur","open","wireScrollEvents","offsets","top","targetExitViewport","checkCollision","popupContentElement","isDeviceFullScreen","popupEle","marginTop","headercheck","headerTemplateId","onListMouseDown","footercheck","footerTemplateId","currentData","selectData","currentPageNumber","direction","sentinelInfo","previousEndIndex","remoteDataCount","dataCount","getSkeletonCount","clearAll","selectAllItems","selectedElementID","checkAndResetCache","isClearAllItem","preventSelection","stopPropagation","windowResize","resetValueHandler","formElement","textVal","tagName","wireEvent","onInput","pasteHandler","info","isRequesting","eventArgs_1","preventDefaultAction","updateData","type","updatingincrementalindex","incrementalStartIndex","updateIncrementalInfo","updateIncrementalView","incrementalLiCollections","preRender","initializeData","updateDataAttribute","getLocaleName","initial","isInitialVirtualData","delim","out_index_1","valueLength","hiddenElementContent","_loop_2","valueItem","this_1","listValue","getTextByValue","item_1","lastChild","state_2","isChipRemove","addValidInputClass","textArr","val","renderList","isEmptyData","noRecordsTemplate","childElementCount","removeListSelection","isCustomData","indexItem","noDataEle","addItem","replaceChild","updateActionCompleteData","updateAddItemList","isDynamicGroupItemUpdate","isReactTemplateUpdate","children","isAngularTemplateUpdate","itemTemplate","removeHover","temp_1","fieldValue","data_1","newData","selectedItems","selectItems","hoveredItem","hover","mainlist","addListHover","delimChar","onMouseClick","visibleListElements","actualCount","virtualListHeight","floor","groupValues","findGroupAttrtibutes","updateCheckBox","listElement","checked","unChecked","groupHeader","checkBoxElement","isDisabled","disableListItem","onMouseOver","currentLi","onMouseLeave","onDocumentClick","focusIn","focusOut","showSpinner","spinnerElement","filterClear","CLOSEICON_CLASS","hideSpinner","wrapperType","wrapperData","tempIndex","wrapperleng","remaining","overAllContainer","l10nLocale","actionFailureTemplate","overflowCountTemplate","totalCountTemplate","l10n","locale","getConstant","remainContent","totalContent","raminElement","remainCompildTemp","remainSize","checkClearIconWidth","paddingLeft","join","totalWidth","updateRemainTemplate","updateRemainWidth","updateRemainingText","firstChild","nodeType","nodeValue","remainTemp","totalTemp","pop","newTemp","unWireEvent","resizingWireEvent","resizePopup","stopResizing","resizingUnWireEvent","groupTemplate","selectionLimit","focusedElement","textboxValueUpdate","updateValue","virtualSelectionAll","virtualSelectAllData","firstItems","createListItems","fragment_1","createDocumentFragment","node","concatenatedNodeList","map","obj","updatedataValueItems","updateHiddenElement","virtualTrackElement","virtualContentElement","beforeSelectArgs","preventSelectEvent","index_1","count_1","virtualSelectAllState","CurrentEvent","isVirtualSelectAll","hiddenValue","wrapperText","isRemoveAll","setZIndex","updateDataSource","prop","onLoadSelect","getPersistData","addOnPersist","onPropertyChanged","newProp","oldProp","isDynamicDataChange","setUpdateInitial","destroy","isDisabledItemByIndex","updateVal","removeDisabledItemsValue","filterBarPlaceholder","height","dropDownIcon","reInitializePoup","removeScrollEvent","msProps","getPropObject","newProperty","oldProperty","dataSourceCount","checkvalue","executeQuery","then","result","itemIndex","animModel","delay","typedValue","hide","resizer","boxSizing","paddingBottom","startResizing","mainLiLength","liLength","updatevirtualizationList","checkValue","selectAll","clear","SEARCHBOX_WRAPPER","DELIMITER_VIEW","spellcheck","autocomplete","tabindex","role","hasAttribute","insertBefore","opacity","validationAttribute","updateVirtualizationProperties","getListHeight","checkInitialValue","renderComplete","toLowerCase","resizeWidth","resizeHeight","isResizing","clientX","MouseEvent","touches","clientY","originalWidth","originalHeight","originalMouseX","originalMouseY","dx","dy","max","minWidth_1","minWidth","minHeight_1","minHeight","listParent","listParentHeight","getBoundingClientRect","ceil","dataIndex","indexValue","isData","options","optionsElement","valueCol","textCol","optionsLen","opt","listItems_2","executeLocal","checkAutoFocus","disableItem","HTMLLIElement","parsedData","clearTemplate","selectElement","attrArray"],"mappings":"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","file":"c0591ee5-api.js","sourcesContent":["var __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __decorate = this && this.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { FieldSettings } from '../drop-down-base/drop-down-base';\nimport { isCollide, Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { attributes, setValue, getValue } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';\nimport { EventHandler, Property, Event, compile, L10n } from '@syncfusion/ej2-base';\nimport { Animation, Browser, prepend, Complex } from '@syncfusion/ej2-base';\nimport { Search } from '../common/incremental-search';\nimport { append, addClass, removeClass, closest, detach, remove, select, selectAll } from '@syncfusion/ej2-base';\nimport { getUniqueID, formatUnit, isNullOrUndefined, isUndefined } from '@syncfusion/ej2-base';\nimport { DataManager, Query, Predicate, JsonAdaptor } from '@syncfusion/ej2-data';\nimport { createFloatLabel, removeFloating, floatLabelFocus, floatLabelBlur, encodePlaceholder } from './float-label';\nvar FOCUS = 'e-input-focus';\nvar DISABLED = 'e-disabled';\nvar OVER_ALL_WRAPPER = 'e-multiselect e-input-group e-control-wrapper';\nvar ELEMENT_WRAPPER = 'e-multi-select-wrapper';\nvar ELEMENT_MOBILE_WRAPPER = 'e-mob-wrapper';\nvar HIDE_LIST = 'e-hide-listitem';\nvar DELIMITER_VIEW = 'e-delim-view';\nvar CHIP_WRAPPER = 'e-chips-collection';\nvar CHIP = 'e-chips';\nvar CHIP_CONTENT = 'e-chipcontent';\nvar CHIP_CLOSE = 'e-chips-close';\nvar CHIP_SELECTED = 'e-chip-selected';\nvar SEARCHBOX_WRAPPER = 'e-searcher';\nvar DELIMITER_VIEW_WRAPPER = 'e-delimiter';\nvar ZERO_SIZE = 'e-zero-size';\nvar REMAIN_WRAPPER = 'e-remain';\nvar CLOSEICON_CLASS = 'e-chips-close e-close-hooker';\nvar DELIMITER_WRAPPER = 'e-delim-values';\nvar POPUP_WRAPPER = 'e-ddl e-popup e-multi-select-list-wrapper';\nvar INPUT_ELEMENT = 'e-dropdownbase';\nvar RTL_CLASS = 'e-rtl';\nvar CLOSE_ICON_HIDE = 'e-close-icon-hide';\nvar MOBILE_CHIP = 'e-mob-chip';\nvar FOOTER = 'e-ddl-footer';\nvar HEADER = 'e-ddl-header';\nvar DISABLE_ICON = 'e-ddl-disable-icon';\nvar SPINNER_CLASS = 'e-ms-spinner-icon';\nvar HIDDEN_ELEMENT = 'e-multi-hidden';\nvar destroy = 'destroy';\nvar dropdownIcon = 'e-input-group-icon e-ddl-icon';\nvar iconAnimation = 'e-icon-anim';\nvar TOTAL_COUNT_WRAPPER = 'e-delim-total';\nvar BOX_ELEMENT = 'e-multiselect-box';\nvar FILTERPARENT = 'e-filter-parent';\nvar CUSTOM_WIDTH = 'e-search-custom-width';\nvar FILTERINPUT = 'e-input-filter';\nvar RESIZE_ICON = 'e-resizer-right e-icons';\n/**\n * The Multiselect allows the user to pick a more than one value from list of predefined values.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar MultiSelect = /** @class */function (_super) {\n __extends(MultiSelect, _super);\n /**\n * Constructor for creating the DropDownList widget.\n *\n * @param {MultiSelectModel} option - Specifies the MultiSelect model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiSelect(option, element) {\n var _this = _super.call(this, option, element) || this;\n _this.clearIconWidth = 0;\n _this.previousFilterText = '';\n _this.storedSelectAllHeight = 0;\n _this.isUpdateHeaderHeight = false;\n _this.isUpdateFooterHeight = false;\n _this.isValidKey = false;\n _this.selectAllEventData = [];\n _this.selectAllEventEle = [];\n _this.resetMainList = null;\n _this.resetFilteredData = false;\n _this.preventSetCurrentData = false;\n _this.isSelectAllLoop = false;\n _this.scrollFocusStatus = false;\n _this.keyDownStatus = false;\n return _this;\n }\n MultiSelect.prototype.enableRTL = function (state) {\n if (state) {\n this.overAllWrapper.classList.add(RTL_CLASS);\n } else {\n this.overAllWrapper.classList.remove(RTL_CLASS);\n }\n if (this.popupObj) {\n this.popupObj.enableRtl = state;\n this.popupObj.dataBind();\n }\n };\n MultiSelect.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableVirtualization) {\n modules.push({\n args: [this],\n member: 'VirtualScroll'\n });\n }\n if (this.mode === 'CheckBox') {\n this.isGroupChecking = this.enableGroupCheckBox;\n if (this.enableGroupCheckBox) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.enableSelectionOrder = false;\n this.isProtectedOnChange = prevOnChange;\n }\n this.allowCustomValue = false;\n this.hideSelectedItem = false;\n this.closePopupOnSelect = false;\n modules.push({\n member: 'CheckBoxSelection',\n args: [this]\n });\n }\n return modules;\n };\n MultiSelect.prototype.updateHTMLAttribute = function () {\n if (Object.keys(this.htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n {\n var updatedClassValue = this.htmlAttributes[\"\" + htmlAttr].replace(/\\s+/g, ' ').trim();\n if (updatedClassValue !== '') {\n addClass([this.overAllWrapper], updatedClassValue.split(' '));\n addClass([this.popupWrapper], updatedClassValue.split(' '));\n }\n break;\n }\n case 'disabled':\n this.enable(false);\n break;\n case 'placeholder':\n if (!this.placeholder) {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n this.setProperties({\n placeholder: this.inputElement.placeholder\n }, true);\n this.refreshPlaceHolder();\n }\n break;\n default:\n {\n var defaultAttr = ['id'];\n var validateAttr = ['name', 'required', 'aria-required', 'form'];\n var containerAttr = ['title', 'role', 'style', 'class'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n this.element.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n } else if (htmlAttr.indexOf('data') === 0 || validateAttr.indexOf(htmlAttr) > -1) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n } else if (containerAttr.indexOf(htmlAttr) > -1) {\n this.overAllWrapper.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n } else if (htmlAttr !== 'size' && !isNullOrUndefined(this.inputElement)) {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n MultiSelect.prototype.updateReadonly = function (state) {\n if (!isNullOrUndefined(this.inputElement)) {\n if (state || this.mode === 'CheckBox') {\n this.inputElement.setAttribute('readonly', 'true');\n } else {\n this.inputElement.removeAttribute('readonly');\n }\n }\n };\n MultiSelect.prototype.updateClearButton = function (state) {\n if (state) {\n if (this.overAllClear.parentNode) {\n this.overAllClear.style.display = '';\n } else {\n this.componentWrapper.appendChild(this.overAllClear);\n }\n this.componentWrapper.classList.remove(CLOSE_ICON_HIDE);\n } else {\n this.overAllClear.style.display = 'none';\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\n }\n };\n MultiSelect.prototype.updateCssClass = function () {\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n var updatedCssClassValues = this.cssClass;\n updatedCssClassValues = this.cssClass.replace(/\\s+/g, ' ').trim();\n if (updatedCssClassValues !== '') {\n addClass([this.overAllWrapper], updatedCssClassValues.split(' '));\n addClass([this.popupWrapper], updatedCssClassValues.split(' '));\n }\n }\n };\n MultiSelect.prototype.updateOldPropCssClass = function (oldClass) {\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\n oldClass = oldClass.replace(/\\s+/g, ' ').trim();\n if (oldClass !== '') {\n removeClass([this.overAllWrapper], oldClass.split(' '));\n removeClass([this.popupWrapper], oldClass.split(' '));\n }\n }\n };\n MultiSelect.prototype.onPopupShown = function (e) {\n var _this = this;\n if (Browser.isDevice && this.mode === 'CheckBox' && this.allowFiltering) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n window.onpopstate = function () {\n proxy_1.hidePopup();\n proxy_1.inputElement.focus();\n };\n history.pushState({}, '');\n }\n var animModel = {\n name: 'FadeIn',\n duration: 100\n };\n var eventArgs = {\n popup: this.popupObj,\n event: e,\n cancel: false,\n animation: animModel\n };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.focusAtFirstListItem(true);\n if (_this.popupObj) {\n document.body.appendChild(_this.popupObj.element);\n }\n if (_this.mode === 'CheckBox' && _this.enableGroupCheckBox && !isNullOrUndefined(_this.fields.groupBy)) {\n _this.updateListItems(_this.list.querySelectorAll('li.e-list-item'), _this.mainList.querySelectorAll('li.e-list-item'));\n }\n if (_this.mode === 'CheckBox' || _this.showDropDownIcon) {\n addClass([_this.overAllWrapper], [iconAnimation]);\n }\n _this.refreshPopup();\n _this.renderReactTemplates();\n if (_this.popupObj) {\n _this.popupObj.show(eventArgs.animation, _this.zIndex === 1000 ? _this.element : null);\n }\n if (_this.isReact) {\n setTimeout(function () {\n if (_this.popupHeight && _this.list && _this.popupHeight !== 'auto') {\n var popupHeightValue = typeof _this.popupHeight === 'string' ? parseInt(_this.popupHeight, 10) : _this.popupHeight;\n if (!_this.isUpdateHeaderHeight && _this.headerTemplate && _this.header) {\n var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);\n _this.list.style.maxHeight = (listHeight - _this.header.offsetHeight).toString() + 'px';\n _this.isUpdateHeaderHeight = true;\n }\n if (!_this.isUpdateFooterHeight && _this.footerTemplate && _this.footer) {\n var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);\n _this.list.style.maxHeight = (listHeight - _this.footer.offsetHeight).toString() + 'px';\n _this.isUpdateFooterHeight = true;\n }\n }\n }, 15);\n }\n attributes(_this.inputElement, {\n 'aria-expanded': 'true',\n 'aria-owns': _this.element.id + '_popup',\n 'aria-controls': _this.element.id\n });\n _this.updateAriaActiveDescendant();\n if (_this.isFirstClick) {\n if (!_this.enableVirtualization) {\n _this.loadTemplate();\n }\n }\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\n EventHandler.add(_this.popupObj.element, 'click', _this.clickHandler, _this);\n }\n }\n });\n };\n MultiSelect.prototype.updateVirtualReOrderList = function (isCheckBoxUpdate) {\n var query = this.getForQuery(this.value, true).clone();\n if (this.enableVirtualization && this.dataSource instanceof DataManager) {\n this.resetList(this.selectedListData, this.fields, query);\n } else {\n this.resetList(this.dataSource, this.fields, query);\n }\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.virtualItemCount = this.itemCount;\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n }\n if (this.list.querySelector('.e-virtual-ddl-content')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n if (isCheckBoxUpdate) {\n this.loadTemplate();\n }\n };\n MultiSelect.prototype.updateListItems = function (listItems, mainListItems) {\n for (var i = 0; i < listItems.length; i++) {\n this.findGroupStart(listItems[i]);\n this.findGroupStart(mainListItems[i]);\n }\n this.deselectHeader();\n };\n MultiSelect.prototype.loadTemplate = function () {\n this.refreshListItems(null);\n if (this.enableVirtualization && this.list && this.mode === 'CheckBox') {\n var reOrderList = this.list.querySelectorAll('.e-reorder')[0];\n if (this.list.querySelector('.e-virtual-ddl-content') && reOrderList) {\n this.list.querySelector('.e-virtual-ddl-content').removeChild(reOrderList);\n }\n }\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n }\n this.notify('reOrder', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n e: this\n });\n this.isPreventScrollAction = true;\n };\n MultiSelect.prototype.setScrollPosition = function () {\n if ((!this.hideSelectedItem && this.mode !== 'CheckBox' || this.mode === 'CheckBox' && !this.enableSelectionOrder) && !isNullOrUndefined(this.value) && this.value.length > 0) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n var valueEle = this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n if (!isNullOrUndefined(valueEle)) {\n this.scrollBottom(valueEle, undefined, false, null, true);\n }\n }\n if (this.enableVirtualization) {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n this.isKeyBoardAction = false;\n this.scrollBottom(focusedItem, undefined, false, null, true);\n }\n };\n MultiSelect.prototype.focusAtFirstListItem = function (isOpen) {\n if (this.ulElement && this.ulElement.querySelector('li.' + dropDownBaseClasses.li)) {\n var element = void 0;\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n return;\n } else {\n if (this.enableVirtualization) {\n if (this.fields.disabled) {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)' + ':not(.' + DISABLED + ')');\n if (isOpen && this.viewPortInfo && this.viewPortInfo.startIndex !== 0) {\n var elements = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');\n element = elements && elements.length > 0 ? elements[2] : element;\n }\n } else {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');\n if (isOpen && this.viewPortInfo && this.viewPortInfo.startIndex !== 0) {\n var elements = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');\n element = elements && elements.length > 0 ? elements[2] : element;\n }\n }\n } else {\n if (this.fields.disabled) {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.' + DISABLED + ')');\n } else {\n element = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\n }\n }\n }\n if (element !== null) {\n this.removeFocus();\n this.addListFocus(element);\n }\n }\n };\n MultiSelect.prototype.focusAtLastListItem = function (data) {\n var activeElement;\n if (data) {\n activeElement = Search(data, this.liCollections, 'StartsWith', this.ignoreCase);\n } else {\n if (this.value && this.value.length) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n Search(value, this.liCollections, 'StartsWith', this.ignoreCase);\n } else {\n activeElement = null;\n }\n }\n if (activeElement && activeElement.item !== null) {\n this.addListFocus(activeElement.item);\n if ((this.allowCustomValue || this.allowFiltering) && this.isPopupOpen() && this.closePopupOnSelect && !this.enableVirtualization || this.closePopupOnSelect && !this.enableVirtualization) {\n this.scrollBottom(activeElement.item, activeElement.index);\n }\n }\n };\n MultiSelect.prototype.getAriaAttributes = function () {\n var ariaAttributes = {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'aria-expanded': 'false'\n };\n return ariaAttributes;\n };\n MultiSelect.prototype.updateListARIA = function () {\n if (!isNullOrUndefined(this.ulElement)) {\n attributes(this.ulElement, {\n 'id': this.element.id + '_options',\n 'role': 'listbox',\n 'aria-hidden': 'false',\n 'aria-label': 'list'\n });\n }\n var disableStatus = !isNullOrUndefined(this.inputElement) && this.inputElement.disabled ? true : false;\n if (!this.isPopupOpen() && !isNullOrUndefined(this.inputElement)) {\n attributes(this.inputElement, this.getAriaAttributes());\n }\n if (disableStatus) {\n attributes(this.inputElement, {\n 'aria-disabled': 'true'\n });\n }\n this.ensureAriaDisabled(disableStatus ? 'true' : 'false');\n };\n MultiSelect.prototype.ensureAriaDisabled = function (status) {\n if (this.htmlAttributes && this.htmlAttributes['aria-disabled']) {\n var attr = this.htmlAttributes;\n extend(attr, {\n 'aria-disabled': status\n }, attr);\n this.setProperties({\n htmlAttributes: attr\n }, true);\n }\n };\n MultiSelect.prototype.removelastSelection = function (e) {\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n if (selectedElem !== null) {\n this.removeSelectedChip(e);\n return;\n }\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\n var value = elements[elements.length - 1].getAttribute('data-value');\n if (!isNullOrUndefined(this.value)) {\n this.tempValues = this.allowObjectBinding ? this.value.slice() : this.value.slice();\n }\n var customValue = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(value)) : this.getFormattedValue(value);\n if (this.allowCustomValue && (value !== 'false' && customValue === false || !isNullOrUndefined(customValue) && customValue.toString() === 'NaN')) {\n customValue = value;\n }\n this.removeValue(customValue, e);\n this.removeChipSelection();\n this.updateDelimeter(this.delimiterChar, e);\n this.makeTextBoxEmpty();\n if (this.mainList && this.listData) {\n this.refreshSelection();\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.onActionFailure = function (e) {\n _super.prototype.onActionFailure.call(this, e);\n this.renderPopup();\n this.onPopupShown();\n };\n MultiSelect.prototype.targetElement = function () {\n this.targetInputElement = this.inputElement;\n if (this.mode === 'CheckBox' && this.allowFiltering) {\n this.notify('targetElement', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n }\n return this.targetInputElement.value;\n };\n MultiSelect.prototype.getForQuery = function (valuecheck, isCheckbox) {\n var predicate;\n var field = this.isPrimitiveData ? '' : this.fields.value;\n if (this.enableVirtualization && valuecheck) {\n if (isCheckbox) {\n for (var i = 0; i < valuecheck.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', valuecheck[i]) : valuecheck[i];\n if (i === 0) {\n predicate = new Predicate(field, 'equal', value);\n } else {\n predicate = predicate.or(field, 'equal', value);\n }\n }\n return new Query().where(predicate);\n } else {\n for (var i = 0; i < valuecheck.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', valuecheck[i]) : valuecheck[i];\n if (i === 0) {\n predicate = new Predicate(field, 'notequal', value);\n } else {\n predicate = predicate.and(field, 'notequal', value);\n }\n }\n return new Query().where(predicate);\n }\n } else {\n for (var i = 0; i < valuecheck.length; i++) {\n if (i === 0) {\n predicate = new Predicate(field, 'equal', valuecheck[i]);\n } else {\n predicate = predicate.or(field, 'equal', valuecheck[i]);\n }\n }\n }\n if (this.dataSource instanceof DataManager && this.dataSource.adaptor instanceof JsonAdaptor) {\n return new Query().where(predicate);\n } else {\n return this.getQuery(this.query).clone().where(predicate);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n MultiSelect.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n if (this.dataSource instanceof DataManager && !isNullOrUndefined(e) && !this.virtualGroupDataSource) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = e.count;\n }\n /* eslint-enable @typescript-eslint/no-unused-vars */\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n this.skeletonCount = this.totalItemCount !== 0 && this.totalItemCount < this.itemCount * 2 && (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && this.totalItemCount <= this.itemCount) ? 0 : this.skeletonCount;\n this.updateSelectElementData(this.allowFiltering);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n if (!isNullOrUndefined(this.value) && !this.allowCustomValue && !this.enableVirtualization && this.listData && this.listData.length > 0) {\n for (var i = 0; i < this.value.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', proxy.value[i]) : proxy.value[i];\n var checkEle = this.findListElement(this.allowFiltering && !isNullOrUndefined(this.mainList) ? this.mainList : ulElement, 'li', 'data-value', value);\n if (!checkEle && !(this.dataSource instanceof DataManager)) {\n this.value.splice(i, 1);\n i -= 1;\n }\n }\n }\n var valuecheck = [];\n if (!isNullOrUndefined(this.value)) {\n valuecheck = this.presentItemValue(this.ulElement);\n }\n if (valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value) && this.listData != null && !this.enableVirtualization) {\n this.addNonPresentItems(valuecheck, this.ulElement, this.listData);\n } else {\n this.updateActionList(ulElement, list, e);\n }\n if (this.dataSource instanceof DataManager && this.allowCustomValue && !this.isCustomRendered && this.inputElement.value && this.inputElement.value !== '') {\n var query = new Query();\n query = this.allowFiltering ? query.where(this.fields.text, 'startswith', this.inputElement.value, this.ignoreCase, this.ignoreAccent) : query;\n this.checkForCustomValue(query, this.fields);\n this.isCustomRendered = true;\n this.remoteCustomValue = this.enableVirtualization ? false : this.remoteCustomValue;\n }\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy) && !isNullOrUndefined(this.fields.disabled)) {\n this.disableGroupHeader();\n }\n if (this.dataSource instanceof DataManager && this.mode === 'CheckBox' && this.allowFiltering) {\n this.removeFocus();\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n MultiSelect.prototype.updateActionList = function (ulElement, list, e, isUpdated) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n }\n if (!this.mainList && !this.mainData) {\n this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n this.mainData = list;\n this.mainListCollection = this.liCollections;\n } else if (isNullOrUndefined(this.mainData) || this.mainData.length === 0) {\n this.mainData = list;\n }\n if ((this.remoteCustomValue || list.length <= 0) && this.allowCustomValue && this.inputFocus && this.allowFiltering && this.inputElement.value && this.inputElement.value !== '') {\n this.checkForCustomValue(this.tempQuery, this.fields);\n if (this.isCustomRendered) {\n return;\n }\n }\n if (this.value && this.value.length && (this.mode !== 'CheckBox' && !isNullOrUndefined(this.inputElement) && this.inputElement.value.trim() !== '' || this.mode === 'CheckBox' || (this.keyCode === 8 || this.keyCode === 46) && this.allowFiltering && this.allowCustomValue && this.dataSource instanceof DataManager && this.inputElement.value === '')) {\n this.refreshSelection();\n }\n this.updateListARIA();\n this.unwireListEvents();\n this.wireListEvents();\n if (!isNullOrUndefined(this.setInitialValue)) {\n this.setInitialValue();\n }\n if (!isNullOrUndefined(this.selectAllAction)) {\n this.selectAllAction();\n }\n if (this.setDynValue) {\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.initialTextUpdate();\n }\n if (!this.enableVirtualization || this.enableVirtualization && !(this.dataSource instanceof DataManager)) {\n this.initialValueUpdate();\n }\n this.initialUpdate();\n this.refreshPlaceHolder();\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\n this.updateValueState(null, this.value, null);\n }\n }\n this.renderPopup();\n if (this.beforePopupOpen) {\n this.beforePopupOpen = false;\n this.onPopupShown(e);\n }\n };\n MultiSelect.prototype.refreshSelection = function () {\n var value;\n var element;\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n if (!isNullOrUndefined(this.value)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n element = this.findListElement(this.list, 'li', 'data-value', value);\n if (element) {\n addClass([element], className);\n if (this.hideSelectedItem && element.previousSibling && element.previousElementSibling.classList.contains(dropDownBaseClasses.group) && (!element.nextElementSibling || element.nextElementSibling.classList.contains(dropDownBaseClasses.group))) {\n addClass([element.previousElementSibling], className);\n }\n if (this.hideSelectedItem && this.fields.groupBy && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\n this.hideGroupItem(value);\n }\n if (this.hideSelectedItem && element.classList.contains(dropDownBaseClasses.focus)) {\n removeClass([element], dropDownBaseClasses.focus);\n var listEle = element.parentElement.querySelectorAll('.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.' + DISABLED + ')');\n if (listEle.length > 0) {\n addClass([listEle[0]], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n } else {\n //EJ2-57588 - for this task, we prevent the ul element cloning ( this.ulElement = this.ulElement.cloneNode ? this.ulElement.cloneNode(true) : this.ulElement;)\n if (!(this.list && this.list.querySelectorAll('.' + dropDownBaseClasses.li).length > 0)) {\n this.l10nUpdate();\n addClass([this.list], dropDownBaseClasses.noData);\n }\n }\n }\n element.setAttribute('aria-selected', 'true');\n if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {\n var ariaValue = element.getElementsByClassName('e-check').length;\n if (ariaValue === 0) {\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: null\n };\n this.notify('updatelist', args);\n }\n }\n }\n }\n }\n this.checkSelectAll();\n this.checkMaxSelection();\n };\n MultiSelect.prototype.hideGroupItem = function (value) {\n var element;\n var element1;\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n element1 = element = this.findListElement(this.ulElement, 'li', 'data-value', value);\n var i = 0;\n var j = 0;\n var temp = true;\n var temp1 = true;\n do {\n if (element && element.previousElementSibling && !element.previousElementSibling.classList.contains(HIDE_LIST) && element.previousElementSibling.classList.contains(dropDownBaseClasses.li)) {\n temp = false;\n }\n if (!temp || !element || element.previousElementSibling && element.previousElementSibling.classList.contains(dropDownBaseClasses.group)) {\n i = 10;\n } else {\n element = element.previousElementSibling;\n }\n if (element1 && element1.nextElementSibling && !element1.nextElementSibling.classList.contains(HIDE_LIST) && element1.nextElementSibling.classList.contains(dropDownBaseClasses.li)) {\n temp1 = false;\n }\n if (!temp1 || !element1 || element1.nextElementSibling && element1.nextElementSibling.classList.contains(dropDownBaseClasses.group)) {\n j = 10;\n } else {\n element1 = element1.nextElementSibling;\n }\n } while (i < 10 || j < 10);\n if (temp && temp1 && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\n addClass([element.previousElementSibling], className);\n } else if (temp && temp1 && element.previousElementSibling.classList.contains(HIDE_LIST)) {\n removeClass([element.previousElementSibling], className);\n }\n };\n MultiSelect.prototype.getValidLi = function () {\n var liElement = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\n return !isNullOrUndefined(liElement) ? liElement : this.liCollections[0];\n };\n MultiSelect.prototype.checkSelectAll = function () {\n var groupItemLength = !isNullOrUndefined(this.fields.disabled) ? this.list.querySelectorAll('li.e-list-group-item.e-active:not(.e-disabled)').length : this.list.querySelectorAll('li.e-list-group-item.e-active').length;\n var listItem = this.list.querySelectorAll('li.e-list-item');\n var searchCount = this.enableVirtualization ? this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)').length : !isNullOrUndefined(this.fields.disabled) ? this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-disabled)').length : this.list.querySelectorAll('li.' + dropDownBaseClasses.li).length;\n var searchActiveCount = this.list.querySelectorAll('li.' + dropDownBaseClasses.selected).length;\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n searchActiveCount = searchActiveCount - groupItemLength;\n }\n if (!this.enableVirtualization && (searchCount === searchActiveCount || searchActiveCount === this.maximumSelectionLength) && this.mode === 'CheckBox' && this.showSelectAll || this.enableVirtualization && this.mode === 'CheckBox' && this.showSelectAll && this.virtualSelectAll && this.value && this.value.length === this.totalItemCount) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'check'\n });\n } else if (searchCount !== searchActiveCount && this.mode === 'CheckBox' && this.showSelectAll && (!this.enableVirtualization || this.enableVirtualization && !this.virtualSelectAll)) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'uncheck'\n });\n }\n if (this.enableGroupCheckBox && this.fields.groupBy && !this.enableSelectionOrder) {\n for (var i = 0; i < listItem.length; i++) {\n this.findGroupStart(listItem[i]);\n }\n this.deselectHeader();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.openClick = function (e) {\n if (!this.openOnClick && this.mode !== 'CheckBox' && !this.isPopupOpen()) {\n if (this.targetElement() !== '') {\n this.showPopup();\n } else {\n this.hidePopup(e);\n }\n } else if (!this.openOnClick && this.mode === 'CheckBox' && !this.isPopupOpen()) {\n this.showPopup();\n }\n };\n MultiSelect.prototype.keyUp = function (e) {\n if (this.mode === 'CheckBox' && !this.openOnClick) {\n var char = String.fromCharCode(e.keyCode);\n var isWordCharacter = char.match(/\\w/);\n if (!isNullOrUndefined(isWordCharacter)) {\n this.isValidKey = true;\n }\n }\n this.isValidKey = this.isPopupOpen() && e.keyCode === 8 || this.isValidKey;\n this.isValidKey = e.ctrlKey && e.keyCode === 86 ? false : this.isValidKey;\n if (this.isValidKey && this.inputElement) {\n this.isValidKey = false;\n this.expandTextbox();\n this.showOverAllClear();\n switch (e.keyCode) {\n default:\n // For filtering works in mobile firefox\n this.search(e);\n }\n }\n };\n /**\n * To filter the multiselect data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n */\n MultiSelect.prototype.filter = function (dataSource, query, fields) {\n this.isFiltered = true;\n this.remoteFilterAction = true;\n this.dataUpdater(dataSource, query, fields);\n };\n MultiSelect.prototype.getQuery = function (query) {\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n if (this.isFiltered) {\n if (this.enableVirtualization && !isNullOrUndefined(this.customFilterQuery)) {\n filterQuery = this.customFilterQuery.clone();\n } else if (!this.enableVirtualization) {\n return filterQuery;\n }\n }\n if (this.filterAction) {\n if (this.targetElement() !== null && !this.enableVirtualization || this.enableVirtualization && this.targetElement() !== null && this.targetElement().trim() !== '') {\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\n } else if (this.enableVirtualization && this.targetElement() !== '' && !this.isClearAllAction || !this.enableVirtualization) {\n var fields = this.fields;\n filterQuery.where(!isNullOrUndefined(fields.text) ? fields.text : '', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\n }\n }\n if (this.enableVirtualization && this.viewPortInfo.endIndex !== 0 && !this.virtualSelectAll) {\n return this.virtualFilterQuery(filterQuery);\n }\n if (this.virtualSelectAll) {\n return query ? query.take(this.maximumSelectionLength).requiresCount() : this.query ? this.query.take(this.maximumSelectionLength).requiresCount() : new Query().take(this.maximumSelectionLength).requiresCount();\n }\n return filterQuery;\n } else {\n if (this.enableVirtualization && this.viewPortInfo.endIndex !== 0 && !this.virtualSelectAll) {\n return this.virtualFilterQuery(filterQuery);\n }\n if (this.virtualSelectAll) {\n return query ? query.take(this.maximumSelectionLength).requiresCount() : this.query ? this.query.take(this.maximumSelectionLength).requiresCount() : new Query().take(this.maximumSelectionLength).requiresCount();\n }\n return query ? query : this.query ? this.query : new Query();\n }\n };\n MultiSelect.prototype.virtualFilterQuery = function (filterQuery) {\n var takeValue = this.getTakeValue();\n var isReOrder = true;\n var isSkip = true;\n var isTake = true;\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (this.getModuleName() === 'multiselect' && (filterQuery.queries[queryElements].e && filterQuery.queries[queryElements].e.condition === 'or' || filterQuery.queries[queryElements].e && filterQuery.queries[queryElements].e.operator === 'equal')) {\n isReOrder = false;\n }\n if (filterQuery.queries[queryElements].fn === 'onSkip') {\n isSkip = false;\n }\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n isTake = false;\n }\n }\n var queryTakeValue = 0;\n if (filterQuery && filterQuery.queries.length > 0) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n queryTakeValue = takeValue <= filterQuery.queries[queryElements].e.nos ? filterQuery.queries[queryElements].e.nos : takeValue;\n }\n }\n }\n if (queryTakeValue <= 0 && this.query && this.query.queries.length > 0) {\n for (var queryElements = 0; queryElements < this.query.queries.length; queryElements++) {\n if (this.query.queries[queryElements].fn === 'onTake') {\n queryTakeValue = takeValue <= this.query.queries[queryElements].e.nos ? this.query.queries[queryElements].e.nos : takeValue;\n }\n }\n }\n if (filterQuery && filterQuery.queries.length > 0) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n queryTakeValue = filterQuery.queries[queryElements].e.nos <= queryTakeValue ? queryTakeValue : filterQuery.queries[queryElements].e.nos;\n filterQuery.queries.splice(queryElements, 1);\n --queryElements;\n }\n }\n }\n if (this.allowFiltering && isSkip || !isReOrder || !this.allowFiltering && isSkip) {\n if (!isReOrder) {\n filterQuery.skip(this.viewPortInfo.startIndex);\n } else {\n filterQuery.skip(this.virtualItemStartIndex);\n }\n }\n if (this.isIncrementalRequest) {\n filterQuery.take(this.incrementalEndIndex);\n } else if (queryTakeValue > 0) {\n filterQuery.take(queryTakeValue);\n } else {\n filterQuery.take(takeValue);\n }\n filterQuery.requiresCount();\n return filterQuery;\n };\n MultiSelect.prototype.getTakeValue = function () {\n return this.allowFiltering && Browser.isDevice ? Math.round(window.outerHeight / this.listItemHeight) : this.itemCount;\n };\n MultiSelect.prototype.dataUpdater = function (dataSource, query, fields) {\n this.isDataFetched = false;\n var isNoData = this.list.classList.contains(dropDownBaseClasses.noData);\n if (this.targetElement().trim() === '') {\n var list = this.enableVirtualization ? this.list.cloneNode(true) : this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n if (this.backCommand || this.enableVirtualization && this.mode === 'CheckBox' && this.value && this.value.length > 0) {\n this.remoteCustomValue = false;\n var isReordered = false;\n if (this.allowCustomValue && list.querySelectorAll('li').length === 0 && this.mainData.length > 0) {\n this.mainData = [];\n }\n if (this.enableVirtualization) {\n if (this.allowFiltering) {\n this.isPreventScrollAction = true;\n this.list.scrollTop = 0;\n this.previousStartIndex = 0;\n this.virtualListInfo = null;\n }\n if (this.value && this.value.length > 0 && this.mode === 'CheckBox') {\n this.notify('setCurrentViewDataAsync', {\n component: this.getModuleName(),\n module: 'VirtualScroll'\n });\n isReordered = true;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n this.resetList(dataSource, fields, query);\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n this.UpdateSkeleton();\n if ((isNoData || this.allowCustomValue) && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (!this.list.querySelector('.e-virtual-ddl-content')) {\n this.list.appendChild(this.createElement('div', {\n className: 'e-virtual-ddl-content',\n styles: this.getTransformValues()\n })).appendChild(this.list.querySelector('.e-list-parent'));\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n document.getElementsByClassName('e-multi-select-list-wrapper')[0].querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n }\n }\n }\n this.onActionComplete(list, this.mainData);\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n if (this.keyCode !== 8) {\n this.focusAtFirstListItem();\n }\n if (!isReordered) {\n this.notify('reOrder', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n e: this\n });\n }\n }\n } else {\n if (this.enableVirtualization && this.allowFiltering) {\n this.isPreventScrollAction = true;\n this.list.scrollTop = 0;\n this.previousStartIndex = 0;\n this.virtualListInfo = null;\n if (this.list.querySelector('.e-list-parent' + '.e-reorder')) {\n this.list.querySelector('.e-list-parent' + '.e-reorder').remove();\n }\n }\n this.resetList(dataSource, fields, query);\n if (this.enableVirtualization && (isNoData || this.allowCustomValue) && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (!this.list.querySelector('.e-virtual-ddl-content')) {\n this.list.appendChild(this.createElement('div', {\n className: 'e-virtual-ddl-content',\n styles: this.getTransformValues()\n })).appendChild(this.list.querySelector('.e-list-parent'));\n }\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n document.getElementsByClassName('e-multi-select-list-wrapper')[0].querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n }\n if (this.allowCustomValue) {\n if (!(dataSource instanceof DataManager)) {\n this.checkForCustomValue(query, fields);\n } else {\n this.remoteCustomValue = true;\n this.tempQuery = query;\n }\n }\n }\n if (this.enableVirtualization && this.allowFiltering) {\n this.getFilteringSkeletonCount();\n }\n this.refreshPopup();\n if (this.allowResize) {\n this.setResize();\n }\n if (this.mode === 'CheckBox') {\n this.removeFocus();\n }\n };\n MultiSelect.prototype.checkForCustomValue = function (query, fields) {\n var dataChecks = !this.getValueByText(this.inputElement.value, this.ignoreCase);\n var field = fields ? fields : this.fields;\n if (this.allowCustomValue && dataChecks) {\n var value = this.inputElement.value;\n var customData = !isNullOrUndefined(this.mainData) && this.mainData.length > 0 ? this.mainData[0] : this.mainData;\n if (customData && typeof customData !== 'string' && typeof customData !== 'number' && typeof customData !== 'boolean') {\n var dataItem_1 = {};\n setValue(field.text, value, dataItem_1);\n if (typeof getValue(this.fields.value ? this.fields.value : 'value', customData) === 'number' && this.fields.value !== this.fields.text) {\n setValue(field.value, Math.random(), dataItem_1);\n } else {\n setValue(field.value, value, dataItem_1);\n }\n var emptyObject_1 = {};\n if (this.allowObjectBinding) {\n var keys = this.listData && this.listData.length > 0 ? Object.keys(this.listData[0]) : this.firstItem ? Object.keys(this.firstItem) : Object.keys(dataItem_1);\n // Create an empty object with predefined keys\n keys.forEach(function (key) {\n emptyObject_1[key] = key === fields.value || key === fields.text ? getValue(fields.value, dataItem_1) : null;\n });\n }\n dataItem_1 = this.allowObjectBinding ? emptyObject_1 : dataItem_1;\n if (this.enableVirtualization) {\n this.virtualCustomData = dataItem_1;\n var tempData = this.dataSource instanceof DataManager ? JSON.parse(JSON.stringify(this.listData)) : JSON.parse(JSON.stringify(this.dataSource));\n var totalData = [];\n if (this.virtualCustomSelectData && this.virtualCustomSelectData.length > 0) {\n totalData = tempData.concat(this.virtualCustomSelectData);\n }\n tempData.splice(0, 0, dataItem_1);\n this.isCustomDataUpdated = true;\n var tempCount = this.totalItemCount;\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.itemCount;\n this.resetList(tempData, field, query);\n this.isCustomDataUpdated = false;\n this.totalItemCount = this.enableVirtualization && this.dataSource instanceof DataManager ? tempCount : this.totalItemCount;\n } else {\n if (this.dataSource instanceof DataManager && this.allowCustomValue && this.allowFiltering) {\n this.remoteCustomValue = false;\n }\n var tempData = JSON.parse(JSON.stringify(this.listData));\n tempData.splice(0, 0, dataItem_1);\n this.resetList(tempData, field, query);\n }\n } else if (this.listData) {\n var tempData = JSON.parse(JSON.stringify(this.listData));\n tempData.splice(0, 0, this.inputElement.value);\n tempData[0] = typeof customData === 'number' && !isNaN(parseFloat(tempData[0])) ? parseFloat(tempData[0]) : tempData[0];\n tempData[0] = typeof customData === 'boolean' ? tempData[0] === 'true' ? true : tempData[0] === 'false' ? false : tempData[0] : tempData[0];\n this.resetList(tempData, field);\n }\n } else if (this.listData && this.mainData && !dataChecks && this.allowCustomValue) {\n if (this.allowFiltering && this.isRemoteSelection && this.remoteCustomValue) {\n this.isRemoteSelection = false;\n if (!this.enableVirtualization) {\n this.resetList(this.listData, field, query);\n }\n } else if (!this.allowFiltering && this.list) {\n var liCollections = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-hide-listitem)');\n var activeElement = Search(this.targetElement(), liCollections, 'StartsWith', this.ignoreCase);\n if (activeElement && activeElement.item !== null) {\n this.addListFocus(activeElement.item);\n }\n }\n }\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.getNgDirective = function () {\n return 'EJS-MULTISELECT';\n };\n MultiSelect.prototype.wrapperClick = function (e) {\n this.setDynValue = false;\n this.keyboardEvent = null;\n this.isKeyBoardAction = false;\n if (!this.enabled) {\n return;\n }\n if (e.target === this.overAllClear) {\n e.preventDefault();\n return;\n }\n if (!this.inputFocus) {\n this.inputElement.focus();\n }\n if (!this.readonly) {\n if (e.target && e.target.classList.toString().indexOf(CHIP_CLOSE) !== -1) {\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n return;\n }\n if (!this.isPopupOpen() && (this.openOnClick || this.showDropDownIcon && e.target && e.target.className === dropdownIcon)) {\n this.showPopup(e);\n } else {\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.showOverAllClear();\n this.inputFocus = true;\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\n this.overAllWrapper.classList.add(FOCUS);\n }\n }\n }\n }\n if (!(this.targetElement() && this.targetElement() !== '')) {\n e.preventDefault();\n }\n };\n MultiSelect.prototype.enable = function (state) {\n if (state) {\n this.overAllWrapper.classList.remove(DISABLED);\n this.inputElement.removeAttribute('disabled');\n attributes(this.inputElement, {\n 'aria-disabled': 'false'\n });\n this.ensureAriaDisabled('false');\n } else {\n this.overAllWrapper.classList.add(DISABLED);\n this.inputElement.setAttribute('disabled', 'true');\n attributes(this.inputElement, {\n 'aria-disabled': 'true'\n });\n this.ensureAriaDisabled('true');\n }\n if (this.enabled !== state) {\n this.enabled = state;\n }\n this.hidePopup();\n };\n MultiSelect.prototype.onBlurHandler = function (eve, isDocClickFromCheck) {\n var target;\n if (!isNullOrUndefined(eve)) {\n target = eve.relatedTarget;\n }\n if (this.popupObj && document.body.contains(this.popupObj.element) && this.popupObj.element.contains(target)) {\n if (this.mode !== 'CheckBox') {\n this.inputElement.focus();\n } else if (this.floatLabelType === 'Auto' && (this.overAllWrapper.classList.contains('e-outline') || this.overAllWrapper.classList.contains('e-filled'))) {\n addClass([this.overAllWrapper], 'e-valid-input');\n }\n return;\n }\n if (this.floatLabelType === 'Auto' && this.overAllWrapper.classList.contains('e-outline') && this.mode === 'CheckBox' && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n removeClass([this.overAllWrapper], 'e-valid-input');\n }\n if (this.mode === 'CheckBox' && Browser.isIE && !isNullOrUndefined(eve) && !isDocClickFromCheck) {\n this.inputFocus = false;\n this.overAllWrapper.classList.remove(FOCUS);\n return;\n }\n if (this.scrollFocusStatus) {\n if (!isNullOrUndefined(eve)) {\n eve.preventDefault();\n }\n this.inputElement.focus();\n this.scrollFocusStatus = false;\n return;\n }\n this.inputFocus = false;\n this.overAllWrapper.classList.remove(FOCUS);\n if (this.addTagOnBlur) {\n var dataChecks = this.getValueByText(this.inputElement.value, this.ignoreCase, this.ignoreAccent);\n var listLiElement = this.findListElement(this.list, 'li', 'data-value', dataChecks);\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n var allowChipAddition = listLiElement && !listLiElement.classList.contains(className) ? true : false;\n if (allowChipAddition) {\n this.updateListSelection(listLiElement, eve);\n if (this.mode === 'Delimiter') {\n this.updateDelimeter(this.delimiterChar);\n }\n }\n }\n this.updateDataList();\n if (this.resetMainList) {\n this.mainList = this.resetMainList;\n this.resetMainList = null;\n }\n this.refreshListItems(null);\n if (this.mode !== 'Box' && this.mode !== 'CheckBox') {\n this.updateDelimView();\n }\n if (this.changeOnBlur) {\n this.updateValueState(eve, this.value, this.tempValues);\n this.dispatchEvent(this.hiddenElement, 'change');\n }\n this.overAllClear.style.display = 'none';\n if (this.isPopupOpen()) {\n this.hidePopup(eve);\n }\n this.makeTextBoxEmpty();\n this.trigger('blur');\n this.focused = true;\n if (Browser.isDevice && this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.removeChipFocus();\n }\n this.removeChipSelection();\n this.refreshInputHight();\n floatLabelBlur(this.overAllWrapper, this.componentWrapper, this.value, this.floatLabelType, this.placeholder);\n this.refreshPlaceHolder();\n if ((this.allowFiltering || this.enableSelectionOrder === true && this.mode === 'CheckBox') && !isNullOrUndefined(this.mainList)) {\n this.ulElement = this.mainList;\n }\n this.checkPlaceholderSize();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n };\n MultiSelect.prototype.calculateWidth = function () {\n var elementWidth;\n if (this.overAllWrapper) {\n if (!this.showDropDownIcon || this.overAllWrapper.querySelector('.' + 'e-label-top')) {\n elementWidth = this.overAllWrapper.clientWidth - 2 * parseInt(getComputedStyle(this.inputElement).paddingRight, 10);\n } else {\n var downIconWidth = this.dropIcon.offsetWidth + parseInt(getComputedStyle(this.dropIcon).marginRight, 10);\n elementWidth = this.overAllWrapper.clientWidth - (downIconWidth + 2 * parseInt(getComputedStyle(this.inputElement).paddingRight, 10));\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(elementWidth, this.overAllWrapper, this.getModuleName());\n }\n }\n };\n MultiSelect.prototype.checkPlaceholderSize = function () {\n if (this.showDropDownIcon) {\n var downIconWidth = this.dropIcon.offsetWidth + parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\n this.setPlaceholderSize(downIconWidth);\n } else {\n if (!isNullOrUndefined(this.dropIcon)) {\n this.setPlaceholderSize(this.showDropDownIcon ? this.dropIcon.offsetWidth : 0);\n }\n }\n };\n MultiSelect.prototype.setPlaceholderSize = function (downIconWidth) {\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\n if (this.dropIcon.offsetWidth !== 0) {\n this.searchWrapper.style.width = 'calc(100% - ' + (downIconWidth + 10) + 'px';\n } else {\n addClass([this.searchWrapper], CUSTOM_WIDTH);\n }\n } else if (!isNullOrUndefined(this.value)) {\n this.searchWrapper.removeAttribute('style');\n removeClass([this.searchWrapper], CUSTOM_WIDTH);\n }\n };\n MultiSelect.prototype.refreshInputHight = function () {\n if (!isNullOrUndefined(this.searchWrapper)) {\n if ((!this.value || !this.value.length) && (isNullOrUndefined(this.text) || this.text === '')) {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n } else {\n this.searchWrapper.classList.add(ZERO_SIZE);\n }\n }\n };\n MultiSelect.prototype.validateValues = function (newValue, oldValue) {\n return JSON.stringify(newValue.slice().sort()) !== JSON.stringify(oldValue.slice().sort());\n };\n MultiSelect.prototype.updateValueState = function (event, newVal, oldVal) {\n var newValue = newVal ? newVal : [];\n var oldValue = oldVal ? oldVal : [];\n if (this.initStatus && this.validateValues(newValue, oldValue)) {\n var eventArgs = {\n e: event,\n oldValue: this.allowObjectBinding ? oldVal : oldVal,\n value: this.allowObjectBinding ? newVal : newVal,\n isInteracted: event ? true : false,\n element: this.element,\n event: event\n };\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n } else {\n this.trigger('change', eventArgs);\n }\n this.updateTempValue();\n if (!this.changeOnBlur) {\n this.dispatchEvent(this.hiddenElement, 'change');\n }\n }\n this.selectedValueInfo = this.viewPortInfo;\n };\n MultiSelect.prototype.updateTempValue = function () {\n if (!this.value) {\n this.tempValues = this.value;\n } else {\n this.tempValues = this.allowObjectBinding ? this.value.slice() : this.value.slice();\n }\n };\n MultiSelect.prototype.updateAriaActiveDescendant = function () {\n if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.inputElement, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n }\n };\n MultiSelect.prototype.pageUpSelection = function (steps, isVirtualKeyAction) {\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n var previousItem = steps >= 0 ? collection[steps + 1] : collection[0];\n if (this.fields.disabled && previousItem && !this.enableVirtualization) {\n while (previousItem && (previousItem.classList.contains('e-disabled') || previousItem.classList.contains(HIDE_LIST) || previousItem.classList.contains('.e-reorder-hide') || previousItem.classList.contains('e-list-group-item'))) {\n previousItem = previousItem.previousElementSibling;\n }\n if (!previousItem) {\n return;\n }\n }\n if (this.enableVirtualization && isVirtualKeyAction) {\n previousItem = this.liCollections.length >= steps && steps >= 0 ? this.liCollections[steps] : this.liCollections[this.skeletonCount];\n }\n if (!isNullOrUndefined(previousItem) && previousItem.classList.contains('e-virtual-list')) {\n previousItem = this.liCollections[this.skeletonCount];\n }\n if (this.enableVirtualization) {\n if (!isNullOrUndefined(previousItem) && !previousItem.classList.contains('e-item-focus')) {\n this.isKeyBoardAction = true;\n this.addListFocus(previousItem);\n this.scrollTop(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), this.keyboardEvent.keyCode);\n } else if (this.viewPortInfo.startIndex === 0) {\n this.isKeyBoardAction = true;\n this.scrollTop(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), this.keyboardEvent.keyCode);\n }\n this.previousFocusItem = previousItem;\n } else {\n this.isKeyBoardAction = true;\n this.addListFocus(previousItem);\n this.scrollTop(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), this.keyboardEvent.keyCode);\n }\n };\n MultiSelect.prototype.pageDownSelection = function (steps, isVirtualKeyAction) {\n var list = this.getItems();\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n var previousItem = steps <= collection.length ? collection[steps - 1] : collection[collection.length - 1];\n if (this.fields.disabled && previousItem && !this.enableVirtualization) {\n while (previousItem && (previousItem.classList.contains('e-disabled') || previousItem.classList.contains(HIDE_LIST) || previousItem.classList.contains('.e-reorder-hide') || previousItem.classList.contains('e-list-group-item'))) {\n previousItem = previousItem.nextElementSibling;\n }\n if (!previousItem) {\n return;\n }\n }\n if (this.enableVirtualization && this.skeletonCount > 0) {\n previousItem = steps < list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];\n }\n if (this.enableVirtualization && isVirtualKeyAction) {\n previousItem = steps <= list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];\n }\n this.isKeyBoardAction = true;\n this.addListFocus(previousItem);\n this.previousFocusItem = previousItem;\n this.scrollBottom(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')), false, this.keyboardEvent.keyCode);\n };\n MultiSelect.prototype.getItems = function () {\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n return this.ulElement && this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li).length > 0 ? this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')') : [];\n };\n MultiSelect.prototype.focusInHandler = function (e) {\n var _this = this;\n if (this.enabled) {\n this.showOverAllClear();\n this.inputFocus = true;\n if (this.value && this.value.length) {\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.chipCollectionWrapper.style.display = '';\n } else {\n this.showDelimWrapper();\n }\n if (this.mode !== 'CheckBox') {\n this.viewWrapper.style.display = 'none';\n }\n }\n if (this.mode !== 'CheckBox') {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n }\n this.checkPlaceholderSize();\n if (this.focused) {\n var args = {\n isInteracted: e ? true : false,\n event: e\n };\n this.trigger('focus', args);\n this.focused = false;\n }\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\n this.overAllWrapper.classList.add(FOCUS);\n }\n floatLabelFocus(this.overAllWrapper, this.componentWrapper);\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n if (this.allowResize) {\n this.setResize();\n }\n setTimeout(function () {\n _this.calculateWidth();\n }, 150);\n return true;\n } else {\n return false;\n }\n };\n MultiSelect.prototype.showDelimWrapper = function () {\n if (this.mode === 'CheckBox') {\n this.viewWrapper.style.display = '';\n } else {\n this.delimiterWrapper.style.display = '';\n }\n this.componentWrapper.classList.add(DELIMITER_VIEW_WRAPPER);\n };\n MultiSelect.prototype.hideDelimWrapper = function () {\n this.delimiterWrapper.style.display = 'none';\n this.componentWrapper.classList.remove(DELIMITER_VIEW_WRAPPER);\n };\n MultiSelect.prototype.expandTextbox = function () {\n var size = 5;\n if (this.placeholder) {\n var codePoint = this.placeholder.charCodeAt(0);\n var sizeMultiplier = 0xAC00 <= codePoint && codePoint <= 0xD7AF ? 1.5 : 0x4E00 <= codePoint && codePoint <= 0x9FFF ? 2 : 1;\n size = size > this.inputElement.placeholder.length ? size : this.inputElement.placeholder.length * sizeMultiplier;\n }\n if (this.inputElement.value.length > size) {\n this.inputElement.size = this.inputElement.value.length;\n } else {\n this.inputElement.size = size;\n }\n };\n MultiSelect.prototype.isPopupOpen = function () {\n return this.popupWrapper !== null && this.popupWrapper.parentElement !== null;\n };\n MultiSelect.prototype.refreshPopup = function () {\n if (this.popupObj && this.mobFilter) {\n this.popupObj.setProperties({\n width: this.calcPopupWidth()\n });\n this.popupObj.refreshPosition(this.overAllWrapper);\n this.popupObj.resolveCollision();\n }\n };\n MultiSelect.prototype.checkTextLength = function () {\n return this.targetElement().length < 1;\n };\n MultiSelect.prototype.popupKeyActions = function (e) {\n switch (e.keyCode) {\n case 38:\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.inputElement.focus();\n }\n e.preventDefault();\n break;\n case 40:\n if (!this.isPopupOpen()) {\n this.showPopup(e);\n e.preventDefault();\n }\n break;\n }\n };\n MultiSelect.prototype.updateAriaAttribute = function () {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (!isNullOrUndefined(focusedItem)) {\n this.inputElement.setAttribute('aria-activedescendant', focusedItem.id);\n if (this.allowFiltering) {\n var filterInput = this.popupWrapper.querySelector('.' + FILTERINPUT);\n if (filterInput) {\n filterInput.setAttribute('aria-activedescendant', focusedItem.id);\n }\n } else if (this.mode === 'CheckBox') {\n this.overAllWrapper.setAttribute('aria-activedescendant', focusedItem.id);\n }\n }\n };\n MultiSelect.prototype.homeNavigation = function (isHome, isVirtualKeyAction) {\n this.removeFocus();\n if (this.enableVirtualization) {\n if (isHome) {\n if (this.enableVirtualization && this.viewPortInfo.startIndex !== 0) {\n this.viewPortInfo.startIndex = 0;\n this.viewPortInfo.endIndex = this.itemCount;\n this.updateVirtualItemIndex();\n this.resetList(this.dataSource, this.fields, this.query);\n }\n } else {\n if (this.enableVirtualization && (!this.value && this.viewPortInfo.endIndex !== this.totalItemCount || this.value && this.value.length > 0 && this.viewPortInfo.endIndex !== this.totalItemCount + this.value.length)) {\n this.viewPortInfo.startIndex = this.totalItemCount - this.itemCount;\n this.viewPortInfo.endIndex = this.totalItemCount;\n this.updateVirtualItemIndex();\n var query = new Query().clone();\n if (this.value && this.value.length > 0) {\n query = this.getForQuery(this.value).clone();\n query = query.skip(this.totalItemCount - this.itemCount);\n }\n this.resetList(this.dataSource, this.fields, query);\n }\n }\n }\n this.UpdateSkeleton();\n var scrollEle = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (scrollEle.length > 0) {\n var element = scrollEle[isHome ? 0 : scrollEle.length - 1];\n if (this.enableVirtualization && isHome) {\n element = scrollEle[this.skeletonCount];\n }\n this.removeFocus();\n element.classList.add(dropDownBaseClasses.focus);\n if (this.enableVirtualization && isHome) {\n this.scrollTop(element, undefined, this.keyboardEvent.keyCode);\n } else if (!isVirtualKeyAction) {\n this.scrollBottom(element, undefined, false, this.keyboardEvent.keyCode);\n }\n this.updateAriaActiveDescendant();\n }\n };\n MultiSelect.prototype.updateSelectionList = function () {\n if (!isNullOrUndefined(this.value) && this.value.length) {\n for (var index = 0; index < this.value.length; index++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n var selectedItem = this.getElementByValue(value);\n if (selectedItem && !selectedItem.classList.contains(dropDownBaseClasses.selected)) {\n selectedItem.classList.add('e-active');\n }\n }\n }\n };\n MultiSelect.prototype.handleVirtualKeyboardActions = function (e, pageCount) {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n var activeIndex;\n this.isKeyBoardAction = true;\n switch (e.keyCode) {\n case 40:\n this.arrowDown(e, true);\n break;\n case 38:\n this.arrowUp(e, true);\n break;\n case 33:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(this.previousFocusItem.getAttribute('data-value')) - 1;\n this.pageUpSelection(activeIndex, true);\n this.updateAriaAttribute();\n }\n break;\n case 34:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(this.previousFocusItem.getAttribute('data-value'));\n this.pageDownSelection(activeIndex, true);\n this.updateAriaAttribute();\n }\n break;\n case 35:\n case 36:\n this.isMouseScrollAction = true;\n this.homeNavigation(e.keyCode === 36 ? true : false, true);\n this.isPreventScrollAction = true;\n break;\n }\n this.keyboardEvent = null;\n this.isScrollChanged = true;\n this.isKeyBoardAction = false;\n };\n MultiSelect.prototype.onKeyDown = function (e) {\n if (this.readonly || !this.enabled && this.mode !== 'CheckBox') {\n return;\n }\n this.preventSetCurrentData = false;\n this.keyboardEvent = e;\n if (this.isPreventKeyAction && this.enableVirtualization) {\n e.preventDefault();\n }\n this.keyCode = e.keyCode;\n this.keyDownStatus = true;\n if (e.keyCode > 111 && e.keyCode < 124) {\n return;\n }\n if (e.altKey) {\n this.popupKeyActions(e);\n return;\n } else if (this.isPopupOpen()) {\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n var activeIndex = void 0;\n switch (e.keyCode) {\n case 36:\n case 35:\n this.isMouseScrollAction = true;\n this.isKeyBoardAction = true;\n this.homeNavigation(e.keyCode === 36 ? true : false);\n break;\n case 33:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(focusedItem.getAttribute('data-value'));\n this.pageUpSelection(activeIndex - this.getPageCount() - 1);\n this.updateAriaAttribute();\n }\n return;\n case 34:\n e.preventDefault();\n if (focusedItem) {\n activeIndex = this.getIndexByValue(focusedItem.getAttribute('data-value'));\n this.pageDownSelection(activeIndex + this.getPageCount());\n this.updateAriaAttribute();\n }\n return;\n case 38:\n this.isKeyBoardAction = true;\n this.arrowUp(e);\n break;\n case 40:\n this.isKeyBoardAction = true;\n this.arrowDown(e);\n break;\n case 27:\n e.preventDefault();\n this.isKeyBoardAction = true;\n this.hidePopup(e);\n if (this.mode === 'CheckBox') {\n this.inputElement.focus();\n }\n this.isKeyBoardAction = false;\n return;\n case 13:\n e.preventDefault();\n this.isKeyBoardAction = true;\n if (this.mode !== 'CheckBox') {\n this.selectByKey(e);\n }\n this.checkPlaceholderSize();\n this.isKeyBoardAction = false;\n return;\n case 32:\n this.isKeyBoardAction = true;\n this.spaceKeySelection(e);\n this.isKeyBoardAction = false;\n return;\n case 9:\n e.preventDefault();\n this.isKeyBoardAction = true;\n this.hidePopup(e);\n this.inputElement.focus();\n this.overAllWrapper.classList.add(FOCUS);\n }\n } else {\n switch (e.keyCode) {\n case 13:\n case 9:\n case 16:\n case 17:\n case 20:\n return;\n case 40:\n if (this.openOnClick) {\n this.showPopup();\n }\n break;\n case 27:\n e.preventDefault();\n this.escapeAction();\n return;\n }\n }\n if (this.checkTextLength()) {\n this.keyNavigation(e);\n }\n if (this.mode === 'CheckBox' && this.enableSelectionOrder) {\n if (this.allowFiltering) {\n this.previousFilterText = this.targetElement();\n }\n this.checkBackCommand(e);\n }\n this.expandTextbox();\n if (!(this.mode === 'CheckBox' && this.showSelectAll)) {\n this.refreshPopup();\n }\n if (this.allowResize) {\n this.setResize();\n }\n this.isKeyBoardAction = false;\n };\n MultiSelect.prototype.arrowDown = function (e, isVirtualKeyAction) {\n e.preventDefault();\n this.moveByList(1, isVirtualKeyAction);\n this.keyAction = true;\n if (document.activeElement.classList.contains(FILTERINPUT) || this.mode === 'CheckBox' && !this.allowFiltering && document.activeElement !== this.list) {\n EventHandler.add(this.list, 'keydown', this.onKeyDown, this);\n }\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.arrowUp = function (e, isVirtualKeyAction) {\n e.preventDefault();\n this.keyAction = true;\n var list = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n list = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n }\n var focuseElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n this.focusFirstListItem = !isNullOrUndefined(this.liCollections[0]) ? this.liCollections[0].classList.contains('e-item-focus') : false;\n var index = Array.prototype.slice.call(list).indexOf(focuseElem);\n if (index <= 0 && this.mode === 'CheckBox' && this.allowFiltering) {\n this.keyAction = false;\n this.notify('inputFocus', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'focus'\n });\n }\n this.moveByList(-1, isVirtualKeyAction);\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.spaceKeySelection = function (e) {\n if (this.mode === 'CheckBox') {\n var li = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (!isNullOrUndefined(li) || selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n e.preventDefault();\n this.keyAction = true;\n }\n this.selectByKey(e);\n if (this.keyAction) {\n var li_1 = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n if (!isNullOrUndefined(li_1) && selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n li_1.classList.remove('e-item-focus');\n }\n }\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.checkBackCommand = function (e) {\n if (e.keyCode === 8 && this.allowFiltering ? this.targetElement() !== this.previousFilterText : this.targetElement() === '') {\n this.backCommand = false;\n } else {\n this.backCommand = true;\n }\n };\n MultiSelect.prototype.keyNavigation = function (e) {\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox' && this.value && this.value.length) {\n switch (e.keyCode) {\n case 37:\n //left arrow\n e.preventDefault();\n this.moveBy(-1, e);\n break;\n case 39:\n //right arrow\n e.preventDefault();\n this.moveBy(1, e);\n break;\n case 8:\n this.removelastSelection(e);\n break;\n case 46:\n //del\n this.removeSelectedChip(e);\n break;\n }\n } else if (e.keyCode === 8 && this.mode === 'Delimiter') {\n if (this.value && this.value.length) {\n e.preventDefault();\n var temp = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n this.removeValue(this.value[this.value.length - 1], e);\n this.updateDelimeter(this.delimiterChar, e);\n this.focusAtLastListItem(temp);\n }\n }\n };\n MultiSelect.prototype.selectByKey = function (e) {\n this.removeChipSelection();\n this.selectListByKey(e);\n if (this.hideSelectedItem) {\n this.focusAtFirstListItem();\n }\n };\n MultiSelect.prototype.escapeAction = function () {\n var temp = this.tempValues ? this.tempValues.slice() : [];\n if (this.allowObjectBinding) {\n temp = this.tempValues ? this.tempValues.slice() : [];\n }\n if (this.value && this.validateValues(this.value, temp)) {\n if (this.mode !== 'CheckBox') {\n this.value = temp;\n this.initialValueUpdate();\n }\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.chipCollectionWrapper.style.display = '';\n } else {\n this.showDelimWrapper();\n }\n this.refreshPlaceHolder();\n if (this.value.length) {\n this.showOverAllClear();\n } else {\n this.hideOverAllClear();\n }\n }\n this.makeTextBoxEmpty();\n };\n MultiSelect.prototype.scrollBottom = function (selectedLI, activeIndex, isInitialSelection, keyCode, isInitial) {\n if (isInitialSelection === void 0) {\n isInitialSelection = false;\n }\n if (keyCode === void 0) {\n keyCode = null;\n }\n if (isInitial === void 0) {\n isInitial = false;\n }\n if (!isNullOrUndefined(selectedLI) && selectedLI.classList.contains('e-virtual-list') || this.enableVirtualization && isNullOrUndefined(selectedLI)) {\n selectedLI = this.liCollections[this.skeletonCount];\n }\n var selectedListMargin = selectedLI && !isNaN(parseInt(window.getComputedStyle(selectedLI).marginBottom, 10)) ? parseInt(window.getComputedStyle(selectedLI).marginBottom, 10) : 0;\n this.isUpwardScrolling = false;\n var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;\n var lastElementValue = this.list.querySelector('li:last-of-type') ? this.list.querySelector('li:last-of-type').getAttribute('data-value') : null;\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? selectedLI.offsetTop + this.virtualListInfo.startIndex * (selectedLI.offsetHeight + selectedListMargin) : selectedLI.offsetTop;\n var currentOffset = this.list.offsetHeight;\n var nextBottom = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) + (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\n var isScrollerCHanged = false;\n var isScrollTopChanged = false;\n var boxRange = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) + (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ? boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\n if (activeIndex === 0 && !this.enableVirtualization) {\n this.list.scrollTop = 0;\n } else if (nextBottom > currentOffset || !(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n var currentElementValue = selectedLI ? selectedLI.getAttribute('data-value') : null;\n var liCount = keyCode === 34 ? this.getPageCount() - 1 : 1;\n if (!this.enableVirtualization || this.isKeyBoardAction || isInitialSelection) {\n if (this.isKeyBoardAction && this.enableVirtualization && lastElementValue && currentElementValue === lastElementValue && keyCode !== 35 && !this.isVirtualScrolling) {\n this.isPreventKeyAction = true;\n this.list.scrollTop += (selectedLI.offsetHeight + selectedListMargin) * liCount;\n this.isPreventKeyAction = this.isScrollerAtEnd() ? false : this.isPreventKeyAction;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n } else if (this.enableVirtualization && keyCode === 35) {\n this.isPreventKeyAction = false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n this.list.scrollTop = this.list.scrollHeight;\n } else {\n if (keyCode === 34 && this.enableVirtualization && !this.isVirtualScrolling) {\n this.isPreventKeyAction = false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n }\n this.list.scrollTop = nextOffset;\n }\n } else {\n this.list.scrollTop = this.virtualListInfo && this.virtualListInfo.startIndex ? isInitial && this.virtualListInfo.startIndex ? this.virtualListInfo.startIndex * this.listItemHeight + this.listItemHeight * 2 : this.virtualListInfo.startIndex * this.listItemHeight : 0;\n }\n isScrollerCHanged = this.isKeyBoardAction;\n isScrollTopChanged = true;\n }\n this.isKeyBoardAction = isScrollerCHanged;\n };\n MultiSelect.prototype.scrollTop = function (selectedLI, activeIndex, keyCode) {\n if (keyCode === void 0) {\n keyCode = null;\n }\n var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;\n var selectedListMargin = selectedLI && !isNaN(parseInt(window.getComputedStyle(selectedLI).marginBottom, 10)) ? parseInt(window.getComputedStyle(selectedLI).marginBottom, 10) : 0;\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? selectedLI.offsetTop + this.virtualListInfo.startIndex * (selectedLI.offsetHeight + selectedListMargin) : selectedLI.offsetTop;\n var nextOffset = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var firstElementValue = this.list.querySelector('li.e-list-item:not(.e-virtual-list)') ? this.list.querySelector('li.e-list-item:not(.e-virtual-list)').getAttribute('data-value') : null;\n nextOffset = this.fields.groupBy && !isUndefined(this.fixedHeaderElement) ? nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\n var boxRange = selectedLiOffsetTop - virtualListCount * (selectedLI.offsetHeight + selectedListMargin) + (selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var isPageUpKeyAction = this.enableVirtualization && this.getModuleName() === 'autocomplete' && nextOffset <= 0;\n if (activeIndex === 0 && !this.enableVirtualization) {\n this.list.scrollTop = 0;\n } else if (nextOffset < 0 || isPageUpKeyAction) {\n var currentElementValue = selectedLI ? selectedLI.getAttribute('data-value') : null;\n var liCount = keyCode === 33 ? this.getPageCount() - 2 : 1;\n if (this.enableVirtualization && this.isKeyBoardAction && firstElementValue && currentElementValue === firstElementValue && keyCode !== 36 && !this.isVirtualScrolling) {\n this.isUpwardScrolling = true;\n this.isPreventKeyAction = true;\n this.isKeyBoardAction = false;\n this.list.scrollTop -= (selectedLI.offsetHeight + selectedListMargin) * liCount;\n this.isPreventKeyAction = this.list.scrollTop !== 0 ? this.isPreventKeyAction : false;\n this.isPreventScrollAction = false;\n } else if (this.enableVirtualization && keyCode === 36) {\n this.isPreventScrollAction = false;\n this.isPreventKeyAction = true;\n this.isKeyBoardAction = false;\n this.list.scrollTo(0, 0);\n } else {\n if (keyCode === 33 && this.enableVirtualization && !this.isVirtualScrolling) {\n this.isPreventKeyAction = false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n }\n this.list.scrollTop = this.list.scrollTop + nextOffset;\n }\n } else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = selectedLI.offsetTop - (this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement.offsetHeight : 0);\n }\n };\n MultiSelect.prototype.isScrollerAtEnd = function () {\n return this.list && this.list.scrollTop + this.list.clientHeight >= this.list.scrollHeight;\n };\n MultiSelect.prototype.selectListByKey = function (e) {\n var li = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n var limit = this.value && this.value.length ? this.value.length : 0;\n var target;\n if (li !== null) {\n e.preventDefault();\n if (li.classList.contains('e-active')) {\n limit = limit - 1;\n }\n if (this.isValidLI(li) && limit < this.maximumSelectionLength) {\n this.updateListSelection(li, e);\n this.addListFocus(li);\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n this.updateDelimeter(this.delimiterChar, e);\n this.refreshInputHight();\n this.checkPlaceholderSize();\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n target = li.firstElementChild.lastElementChild;\n this.findGroupStart(target);\n this.deselectHeader();\n }\n } else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n var isFilterData = this.targetElement().trim() !== '' ? true : false;\n this.makeTextBoxEmpty();\n if (this.mode !== 'CheckBox') {\n this.refreshListItems(li.textContent, isFilterData);\n }\n if (!this.changeOnBlur) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n this.refreshPopup();\n } else {\n if (!this.isValidLI(li) && limit < this.maximumSelectionLength) {\n target = li.firstElementChild.lastElementChild;\n if (target.classList.contains('e-check')) {\n this.selectAllItem(false, e, li);\n } else {\n this.selectAllItem(true, e, li);\n }\n }\n }\n this.refreshSelection();\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n }\n }\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n var selectAllCheckBox = selectAllParent.childNodes[0];\n if (!selectAllCheckBox.classList.contains('e-check')) {\n selectAllCheckBox.classList.add('e-check');\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'check',\n name: 'checkSelectAll'\n };\n this.notify('checkSelectAll', args);\n this.selectAllItem(true, e, li);\n } else {\n selectAllCheckBox.classList.remove('e-check');\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'check',\n name: 'checkSelectAll'\n };\n this.notify('checkSelectAll', args);\n this.selectAllItem(false, e, li);\n }\n }\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.refreshListItems = function (data, isFilterData) {\n if ((this.allowFiltering || this.mode === 'CheckBox' && this.enableSelectionOrder === true || this.allowCustomValue) && this.mainList && this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n if (this.enableVirtualization) {\n if (this.allowCustomValue && this.virtualCustomData && data == null && this.virtualCustomData && this.viewPortInfo && this.viewPortInfo.startIndex === 0 && this.viewPortInfo.endIndex === this.itemCount) {\n this.virtualCustomData = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.renderItems(this.mainData, this.fields);\n } else {\n if (this.allowFiltering && isFilterData) {\n this.updateInitialData();\n this.onActionComplete(list, this.mainData);\n this.isVirtualTrackHeight = false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.list.getElementsByClassName('e-virtual-ddl')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n } else if (!this.list.querySelector('.e-virtual-ddl') && this.skeletonCount > 0) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n } else {\n this.onActionComplete(this.list, this.listData);\n }\n }\n } else {\n this.onActionComplete(list, this.mainData);\n }\n this.focusAtLastListItem(data);\n if (this.value && this.value.length) {\n this.refreshSelection();\n }\n } else if (!isNullOrUndefined(this.fields.groupBy) && this.value && this.value.length) {\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.removeSelectedChip = function (e) {\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n var temp;\n if (selectedElem !== null) {\n if (!isNullOrUndefined(this.value)) {\n this.tempValues = this.allowObjectBinding ? this.value.slice() : this.value.slice();\n }\n temp = selectedElem.nextElementSibling;\n if (temp !== null) {\n this.removeChipSelection();\n this.addChipSelection(temp, e);\n }\n var currentChip = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(selectedElem.getAttribute('data-value'))) : selectedElem.getAttribute('data-value');\n this.removeValue(currentChip, e);\n this.updateDelimeter(this.delimiterChar, e);\n this.makeTextBoxEmpty();\n }\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n }\n this.checkPlaceholderSize();\n };\n MultiSelect.prototype.moveByTop = function (state) {\n var elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li);\n var index;\n if (elements.length > 1) {\n this.removeFocus();\n index = state ? 0 : elements.length - 1;\n this.addListFocus(elements[index]);\n this.scrollBottom(elements[index], index);\n }\n this.updateAriaAttribute();\n };\n MultiSelect.prototype.clickHandler = function (e) {\n var targetElement = e.target;\n var filterInputClassName = targetElement.className;\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if ((filterInputClassName === 'e-input-filter e-input' || filterInputClassName === 'e-input-group e-control-wrapper e-input-focus') && selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.remove('e-item-focus');\n }\n };\n MultiSelect.prototype.moveByList = function (position, isVirtualKeyAction) {\n if (this.list) {\n var elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\n }\n var selectedElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\n if (this.enableVirtualization && isVirtualKeyAction && !isNullOrUndefined(this.currentFocuedListElement)) {\n selectedElem = this.getElementByValue(this.getFormattedValue(this.currentFocuedListElement.getAttribute('data-value')));\n }\n var temp = -1;\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (this.mode === 'CheckBox' && this.showSelectAll && position === 1 && !isNullOrUndefined(selectAllParent) && !selectAllParent.classList.contains('e-item-focus') && this.list.getElementsByClassName('e-item-focus').length === 0 && this.liCollections.length > 1) {\n if (!this.focusFirstListItem && selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.remove('e-item-focus');\n } else if (!selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.add('e-item-focus');\n }\n } else if (elements.length) {\n if (this.mode === 'CheckBox' && this.showSelectAll && !isNullOrUndefined(selectAllParent && position === -1)) {\n if (!this.focusFirstListItem && selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.remove('e-item-focus');\n } else if (this.focusFirstListItem && !selectAllParent.classList.contains('e-item-focus')) {\n selectAllParent.classList.add('e-item-focus');\n }\n }\n for (var index = 0; index < elements.length; index++) {\n if (elements[index] === selectedElem) {\n temp = index;\n break;\n }\n }\n if (position > 0) {\n if (temp < elements.length - 1) {\n this.removeFocus();\n if (this.enableVirtualization && isVirtualKeyAction) {\n this.addListFocus(elements[temp]);\n } else {\n if (this.enableVirtualization && elements[temp + 1].classList.contains('e-virtual-list')) {\n this.addListFocus(elements[this.skeletonCount]);\n } else {\n this.addListFocus(elements[++temp]);\n }\n }\n if (temp > -1) {\n this.updateCheck(elements[temp]);\n this.scrollBottom(elements[temp], temp);\n this.currentFocuedListElement = elements[temp];\n }\n }\n } else {\n if (temp > 0) {\n if (this.enableVirtualization) {\n var isVirtualElement = elements[temp - 1].classList.contains('e-virtual-list');\n var elementIndex = isVirtualKeyAction ? temp : temp - 1;\n if (isVirtualKeyAction || !isVirtualElement) {\n this.removeFocus();\n }\n if (isVirtualKeyAction || !isVirtualElement) {\n this.addListFocus(elements[elementIndex]);\n this.updateCheck(elements[elementIndex]);\n this.scrollTop(elements[elementIndex], temp);\n this.currentFocuedListElement = elements[elementIndex];\n }\n } else {\n this.removeFocus();\n this.addListFocus(elements[--temp]);\n this.updateCheck(elements[temp]);\n this.scrollTop(elements[temp], temp);\n }\n }\n }\n }\n }\n var focusedLi = this.list ? this.list.querySelector('.e-item-focus') : null;\n if (this.isDisabledElement(focusedLi)) {\n if (this.list.querySelectorAll('.e-list-item:not(.e-hide-listitem):not(.e-disabled)').length === 0 || this.keyCode === 38 && this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy) && focusedLi === this.list.querySelector('li.e-list-group-item')) {\n this.removeFocus();\n return;\n }\n var index = this.getIndexByValue(focusedLi.getAttribute('data-value'));\n if (index === 0) {\n position = 1;\n }\n if (index === this.list.querySelectorAll('.e-list-item:not(.e-hide-listitem)').length - 1) {\n position = -1;\n }\n this.moveByList(position);\n }\n };\n MultiSelect.prototype.getElementByValue = function (value) {\n var item;\n var listItems = this.getItems();\n for (var _i = 0, listItems_1 = listItems; _i < listItems_1.length; _i++) {\n var liItem = listItems_1[_i];\n if (this.getFormattedValue(liItem.getAttribute('data-value')) === value) {\n item = liItem;\n break;\n }\n }\n return item;\n };\n MultiSelect.prototype.updateCheck = function (element) {\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n var checkElement = element.firstElementChild.lastElementChild;\n if (checkElement.classList.contains('e-check')) {\n element.classList.add('e-active');\n } else {\n element.classList.remove('e-active');\n }\n }\n };\n MultiSelect.prototype.moveBy = function (position, e) {\n var temp;\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\n if (selectedElem === null) {\n if (position < 0) {\n this.addChipSelection(elements[elements.length - 1], e);\n }\n } else {\n if (position < 0) {\n temp = selectedElem.previousElementSibling;\n if (temp !== null) {\n this.removeChipSelection();\n this.addChipSelection(temp, e);\n }\n } else {\n temp = selectedElem.nextElementSibling;\n this.removeChipSelection();\n if (temp !== null) {\n this.addChipSelection(temp, e);\n }\n }\n }\n };\n MultiSelect.prototype.chipClick = function (e) {\n if (this.enabled) {\n var elem = closest(e.target, '.' + CHIP);\n this.removeChipSelection();\n this.addChipSelection(elem, e);\n }\n };\n MultiSelect.prototype.removeChipSelection = function () {\n if (this.chipCollectionWrapper) {\n this.removeChipFocus();\n }\n };\n MultiSelect.prototype.addChipSelection = function (element, e) {\n addClass([element], CHIP_SELECTED);\n this.trigger('chipSelection', e);\n };\n MultiSelect.prototype.onChipRemove = function (e) {\n if (e.which === 3 || e.button === 2) {\n return;\n }\n if (this.enabled && !this.readonly) {\n var element = e.target.parentElement;\n var customVal = element.getAttribute('data-value');\n var value = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(customVal)) : this.getFormattedValue(customVal);\n if (this.allowCustomValue && (customVal !== 'false' && value === false || !isNullOrUndefined(value) && value.toString() === 'NaN')) {\n value = customVal;\n }\n if (this.isPopupOpen() && this.mode !== 'CheckBox') {\n this.hidePopup(e);\n }\n if (!this.inputFocus) {\n this.inputElement.focus();\n }\n this.removeValue(value, e);\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n if (isNullOrUndefined(this.findListElement(this.list, 'li', 'data-value', value)) && this.mainList && this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n this.updateDelimeter(this.delimiterChar, e);\n if (this.placeholder && this.floatLabelType === 'Never') {\n this.makeTextBoxEmpty();\n this.checkPlaceholderSize();\n } else {\n this.inputElement.value = '';\n }\n e.preventDefault();\n }\n };\n MultiSelect.prototype.makeTextBoxEmpty = function () {\n this.inputElement.value = '';\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.refreshPlaceHolder = function () {\n if (this.placeholder && this.floatLabelType === 'Never') {\n if (this.value && this.value.length || !isNullOrUndefined(this.text) && this.text !== '') {\n this.inputElement.placeholder = '';\n } else {\n this.inputElement.placeholder = encodePlaceholder(this.placeholder);\n }\n } else {\n this.setFloatLabelType();\n }\n this.expandTextbox();\n };\n MultiSelect.prototype.removeAllItems = function (value, eve, isClearAll, element, mainElement) {\n var index = this.allowObjectBinding ? this.indexOfObjectInArray(value, this.value) : this.value.indexOf(value);\n var removeVal = this.value.slice(0);\n removeVal.splice(index, 1);\n this.setProperties({\n value: [].concat([], removeVal)\n }, true);\n element.setAttribute('aria-selected', 'false');\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n removeClass([element], className);\n this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: this,\n index: index\n });\n this.invokeCheckboxSelection(element, eve, isClearAll);\n var currentValue = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n this.updateMainList(true, currentValue, mainElement);\n this.updateChipStatus();\n };\n MultiSelect.prototype.invokeCheckboxSelection = function (element, eve, isClearAll) {\n this.notify('updatelist', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: eve\n });\n this.updateAriaActiveDescendant();\n if (this.value && this.value.length !== this.mainData.length && this.mode === 'CheckBox' && this.showSelectAll && !(this.isSelectAll || isClearAll)) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'uncheck'\n });\n }\n };\n MultiSelect.prototype.removeValue = function (value, eve, length, isClearAll) {\n var _this = this;\n var index = this.allowObjectBinding ? this.indexOfObjectInArray(value, this.value) : this.value.indexOf(this.getFormattedValue(value));\n if (index === -1 && this.allowCustomValue && !isNullOrUndefined(value)) {\n index = this.allowObjectBinding ? this.indexOfObjectInArray(value, this.value) : this.value.indexOf(value.toString());\n }\n var targetEle = eve && eve.target;\n isClearAll = isClearAll || targetEle && targetEle.classList.contains('e-close-hooker') ? true : null;\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n if (index !== -1) {\n var currentValue = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n var element_1 = this.virtualSelectAll ? null : this.findListElement(this.list, 'li', 'data-value', currentValue);\n var val_1 = this.allowObjectBinding ? value : this.getDataByValue(value);\n var eventArgs = {\n e: eve,\n item: element_1,\n itemData: val_1,\n isInteracted: eve ? true : false,\n cancel: false\n };\n this.trigger('removing', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n _this.removeIndex++;\n } else {\n _this.isRemoveSelection = _this.enableVirtualization ? true : _this.isRemoveSelection;\n _this.currentRemoveValue = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n _this.virtualSelectAll = false;\n var removeVal = _this.value.slice(0);\n removeVal.splice(index, 1);\n if (_this.enableVirtualization && _this.mode === 'CheckBox') {\n _this.selectedListData.splice(index, 1);\n }\n _this.setProperties({\n value: [].concat([], removeVal)\n }, true);\n if (_this.enableVirtualization) {\n var currentText = index === 0 && _this.text.split(_this.delimiterChar) && _this.text.split(_this.delimiterChar).length === 1 ? _this.text.replace(_this.text.split(_this.delimiterChar)[index], '') : index === 0 ? _this.text.replace(_this.text.split(_this.delimiterChar)[index] + _this.delimiterChar, '') : _this.text.replace(_this.delimiterChar + _this.text.split(_this.delimiterChar)[index], '');\n _this.setProperties({\n text: currentText.toString()\n }, true);\n }\n if (element_1 !== null) {\n var currentValue_1 = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n var hideElement = _this.findListElement(_this.mainList, 'li', 'data-value', currentValue_1);\n element_1.setAttribute('aria-selected', 'false');\n removeClass([element_1], className);\n if (hideElement) {\n hideElement.setAttribute('aria-selected', 'false');\n removeClass([element_1, hideElement], className);\n }\n _this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n li: element_1,\n e: _this,\n index: index\n });\n _this.invokeCheckboxSelection(element_1, eve, isClearAll);\n }\n var currentValue_2 = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n if (_this.hideSelectedItem && _this.fields.groupBy && element_1) {\n _this.hideGroupItem(currentValue_2);\n }\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox' && _this.isPopupOpen()) {\n _super.prototype.scrollStop.call(_this);\n }\n _this.updateMainList(true, currentValue_2);\n _this.removeChip(currentValue_2, isClearAll);\n _this.updateChipStatus();\n var limit = _this.value && _this.value.length ? _this.value.length : 0;\n if (limit < _this.maximumSelectionLength) {\n var collection = _this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-active)');\n removeClass(collection, 'e-disable');\n }\n _this.trigger('removed', eventArgs);\n var targetEle_1 = eve && eve.currentTarget;\n var isSelectAll = targetEle_1 && targetEle_1.classList.contains('e-selectall-parent') ? true : null;\n if (!_this.changeOnBlur && !isClearAll && eve && length && !isSelectAll && _this.isSelectAllTarget) {\n _this.updateValueState(eve, _this.value, _this.tempValues);\n }\n if (length) {\n _this.selectAllEventData.push(val_1);\n _this.selectAllEventEle.push(element_1);\n }\n if (length === 1) {\n if (!_this.changeOnBlur) {\n _this.updateValueState(eve, _this.value, _this.tempValues);\n }\n var args = {\n event: eve,\n items: _this.selectAllEventEle,\n itemData: _this.selectAllEventData,\n isInteracted: eve ? true : false,\n isChecked: false\n };\n _this.trigger('selectedAll', args);\n _this.selectAllEventData = [];\n _this.selectAllEventEle = [];\n }\n if (isClearAll && (length === 1 || length === null)) {\n _this.clearAllCallback(eve, isClearAll);\n }\n if (_this.isPopupOpen() && element_1 && element_1.parentElement.classList.contains('e-reorder')) {\n if (_this.hideSelectedItem && _this.value && Array.isArray(_this.value) && _this.value.length > 0) {\n _this.totalItemsCount();\n }\n _this.notify('setCurrentViewDataAsync', {\n module: 'VirtualScroll'\n });\n }\n }\n });\n }\n };\n MultiSelect.prototype.updateMainList = function (state, value, mainElement) {\n if (this.allowFiltering || this.mode === 'CheckBox') {\n var element2 = mainElement ? mainElement : this.findListElement(this.mainList, 'li', 'data-value', value);\n if (element2) {\n if (state) {\n element2.setAttribute('aria-selected', 'false');\n removeClass([element2], this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected);\n if (this.mode === 'CheckBox') {\n removeClass([element2.firstElementChild.lastElementChild], 'e-check');\n }\n } else {\n element2.setAttribute('aria-selected', 'true');\n addClass([element2], this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected);\n if (this.mode === 'CheckBox') {\n addClass([element2.firstElementChild.lastElementChild], 'e-check');\n }\n }\n }\n }\n };\n MultiSelect.prototype.removeChip = function (value, isClearAll) {\n if (this.chipCollectionWrapper) {\n if (!(this.enableVirtualization && isClearAll)) {\n var element = this.findListElement(this.chipCollectionWrapper, 'span', 'data-value', value);\n if (element) {\n remove(element);\n }\n }\n }\n };\n MultiSelect.prototype.setWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.overAllWrapper.style.width = formatUnit(width);\n } else if (typeof width === 'string') {\n this.overAllWrapper.style.width = width.match(/px|%|em/) ? width : formatUnit(width);\n }\n }\n };\n MultiSelect.prototype.updateChipStatus = function () {\n if (this.value && this.value.length) {\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\n this.chipCollectionWrapper.style.display = '';\n }\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.showDelimWrapper();\n }\n this.showOverAllClear();\n } else {\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\n this.chipCollectionWrapper.style.display = 'none';\n }\n if (!isNullOrUndefined(this.delimiterWrapper)) {\n this.delimiterWrapper.style.display = 'none';\n }\n this.hideOverAllClear();\n }\n };\n MultiSelect.prototype.indexOfObjectInArray = function (objectToFind, array) {\n var _loop_1 = function (i) {\n var item = array[i];\n // eslint-disable-next-line no-prototype-builtins\n if (Object.keys(objectToFind).every(function (key) {\n return item.hasOwnProperty(key) && item[key] === objectToFind[key];\n })) {\n return {\n value: i\n };\n }\n };\n for (var i = 0; i < array.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\") return state_1.value;\n }\n return -1; // Return -1 if the object is not found\n };\n MultiSelect.prototype.addValue = function (value, text, eve) {\n if (!this.value) {\n this.value = [];\n }\n var currentValue = this.allowObjectBinding ? this.getDataByValue(value) : value;\n if (this.allowObjectBinding && !this.isObjectInArray(this.getDataByValue(value), this.value) || !this.allowObjectBinding && this.value.indexOf(currentValue) < 0) {\n this.setProperties({\n value: [].concat([], this.value, [currentValue])\n }, true);\n if (this.enableVirtualization && !this.isSelectAllLoop) {\n var data = this.viewWrapper.innerHTML;\n var temp = void 0;\n data += this.value.length === 1 ? '' : this.delimiterChar + ' ';\n temp = this.getOverflowVal(this.value.length - 1);\n data += temp;\n temp = this.viewWrapper.innerHTML;\n this.updateWrapperText(this.viewWrapper, data);\n }\n if (this.enableVirtualization && this.mode === 'CheckBox') {\n var currentText = [];\n var value_1 = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[this.value.length - 1]) : this.value[this.value.length - 1];\n var temp = text;\n var textValues = this.text != null && this.text !== '' ? this.text + ',' + temp : temp;\n currentText.push(textValues);\n this.setProperties({\n text: currentText.toString()\n }, true);\n }\n }\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.removeFocus();\n if (element) {\n this.addListFocus(element);\n this.addListSelection(element);\n }\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\n this.addChip(text, value, eve);\n }\n if (this.hideSelectedItem && this.fields.groupBy) {\n this.hideGroupItem(value);\n }\n this.updateChipStatus();\n this.checkMaxSelection();\n };\n MultiSelect.prototype.checkMaxSelection = function () {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (limit === this.maximumSelectionLength) {\n var activeItems = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + '.e-active');\n removeClass(activeItems, 'e-disable');\n var inactiveItems = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-active)');\n addClass(inactiveItems, 'e-disable');\n }\n if (limit < this.maximumSelectionLength) {\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li);\n removeClass(collection, 'e-disable');\n }\n };\n MultiSelect.prototype.dispatchSelect = function (value, eve, element, isNotTrigger, length, dataValue, text) {\n var _this = this;\n var list = this.listData;\n if (this.initStatus && !isNotTrigger) {\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n var val_2 = dataValue ? dataValue : this.getDataByValue(value);\n var eventArgs = {\n e: eve,\n item: element,\n itemData: val_2,\n isInteracted: eve ? true : false,\n cancel: false\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (length) {\n _this.selectAllEventData.push(val_2);\n _this.selectAllEventEle.push(element);\n }\n if (length === 1) {\n var args = {\n event: eve,\n items: _this.selectAllEventEle,\n itemData: _this.selectAllEventData,\n isInteracted: eve ? true : false,\n isChecked: true\n };\n _this.trigger('selectedAll', args);\n _this.selectAllEventData = [];\n }\n if (_this.allowCustomValue && _this.isServerRendered && _this.listData !== list) {\n _this.listData = list;\n }\n value = _this.allowObjectBinding ? _this.getDataByValue(value) : value;\n if (_this.enableVirtualization) {\n if (isNullOrUndefined(_this.selectedListData)) {\n _this.selectedListData = [_this.getDataByValue(value)];\n } else {\n if (dataValue) {\n if (Array.isArray(_this.selectedListData)) {\n _this.selectedListData.push(dataValue);\n } else {\n _this.selectedListData = [_this.selectedListData, dataValue];\n }\n } else {\n if (Array.isArray(_this.selectedListData)) {\n _this.selectedListData.push(_this.getDataByValue(value));\n } else {\n _this.selectedListData = [_this.selectedListData, _this.getDataByValue(value)];\n }\n }\n }\n }\n if (_this.enableVirtualization && value || !_this.enableVirtualization) {\n _this.updateListSelectEventCallback(value, element, eve, text);\n }\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox') {\n _super.prototype.scrollStop.call(_this);\n }\n }\n });\n }\n };\n MultiSelect.prototype.addChip = function (text, value, e) {\n if (this.chipCollectionWrapper) {\n this.getChip(text, value, e);\n }\n };\n MultiSelect.prototype.removeChipFocus = function () {\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP + '.' + CHIP_SELECTED);\n removeClass(elements, CHIP_SELECTED);\n if (Browser.isDevice) {\n var closeElements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP_CLOSE.split(' ')[0]);\n for (var index = 0; index < closeElements.length; index++) {\n closeElements[index].style.display = 'none';\n }\n }\n };\n MultiSelect.prototype.onMobileChipInteraction = function (e) {\n var chipElem = closest(e.target, '.' + CHIP);\n var chipClose = chipElem.querySelector('span.' + CHIP_CLOSE.split(' ')[0]);\n if (this.enabled && !this.readonly) {\n if (!chipElem.classList.contains(CHIP_SELECTED)) {\n this.removeChipFocus();\n chipClose.style.display = '';\n chipElem.classList.add(CHIP_SELECTED);\n }\n this.refreshPopup();\n e.preventDefault();\n }\n };\n MultiSelect.prototype.multiCompiler = function (multiselectTemplate) {\n var checkTemplate = false;\n if (typeof multiselectTemplate !== 'function' && multiselectTemplate) {\n try {\n checkTemplate = selectAll(multiselectTemplate, document).length ? true : false;\n } catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n MultiSelect.prototype.encodeHtmlEntities = function (input) {\n return input.replace(/[\\u00A0-\\u9999<>&]/g, function (match) {\n return \"&#\" + match.charCodeAt(0) + \";\";\n });\n };\n MultiSelect.prototype.getChip = function (data, value, e) {\n var _this = this;\n var itemData = {\n text: value,\n value: value\n };\n var chip = this.createElement('span', {\n className: CHIP,\n attrs: {\n 'data-value': value,\n 'title': data\n }\n });\n var compiledString;\n var chipContent = this.createElement('span', {\n className: CHIP_CONTENT\n });\n var chipClose = this.createElement('span', {\n className: CHIP_CLOSE\n });\n if (this.mainData) {\n itemData = this.getDataByValue(value);\n }\n if (this.valueTemplate && !isNullOrUndefined(itemData)) {\n var valuecheck = this.multiCompiler(this.valueTemplate);\n if (typeof this.valueTemplate !== 'function' && valuecheck) {\n compiledString = compile(select(this.valueTemplate, document).innerHTML.trim());\n } else {\n compiledString = compile(this.valueTemplate);\n }\n var valueCompTemp = compiledString(itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, chipContent);\n if (valueCompTemp && valueCompTemp.length > 0) {\n append(valueCompTemp, chipContent);\n }\n this.renderReactTemplates();\n } else if (this.enableHtmlSanitizer) {\n chipContent.innerText = data;\n } else {\n chipContent.innerHTML = this.encodeHtmlEntities(data.toString());\n }\n chip.appendChild(chipContent);\n var eventArgs = {\n isInteracted: e ? true : false,\n itemData: itemData,\n e: e,\n setClass: function (classes) {\n addClass([chip], classes);\n },\n cancel: false\n };\n this.isPreventChange = this.isAngular && this.preventChange;\n this.trigger('tagging', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (Browser.isDevice) {\n chip.classList.add(MOBILE_CHIP);\n append([chipClose], chip);\n chipClose.style.display = 'none';\n EventHandler.add(chip, 'click', _this.onMobileChipInteraction, _this);\n } else {\n EventHandler.add(chip, 'mousedown', _this.chipClick, _this);\n if (_this.showClearButton) {\n chip.appendChild(chipClose);\n }\n }\n EventHandler.add(chipClose, 'mousedown', _this.onChipRemove, _this);\n _this.chipCollectionWrapper.appendChild(chip);\n if (!_this.changeOnBlur && e) {\n _this.updateValueState(e, _this.value, _this.tempValues);\n }\n }\n });\n };\n MultiSelect.prototype.calcPopupWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.componentWrapper.offsetWidth * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n MultiSelect.prototype.mouseIn = function () {\n if (this.enabled && !this.readonly) {\n this.showOverAllClear();\n }\n };\n MultiSelect.prototype.mouseOut = function () {\n if (!this.inputFocus) {\n this.overAllClear.style.display = 'none';\n }\n };\n MultiSelect.prototype.listOption = function (dataSource, fields) {\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\n var fieldProperty = isNullOrUndefined(fields.properties) ? fields : fields.properties;\n this.listCurrentOptions = fields.text !== null || fields.value !== null ? {\n fields: fieldProperty,\n showIcon: iconCss,\n ariaAttributes: {\n groupItemRole: 'presentation'\n }\n } : {\n fields: {\n value: 'text'\n }\n };\n extend(this.listCurrentOptions, this.listCurrentOptions, fields, true);\n if (this.mode === 'CheckBox') {\n this.notify('listoption', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n dataSource: dataSource,\n fieldProperty: fieldProperty\n });\n }\n return this.listCurrentOptions;\n };\n MultiSelect.prototype.renderPopup = function () {\n var _this = this;\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n if (!this.popupObj) {\n if (!isNullOrUndefined(this.popupWrapper)) {\n document.body.appendChild(this.popupWrapper);\n var checkboxFilter = this.popupWrapper.querySelector('.' + FILTERPARENT);\n if (this.mode === 'CheckBox' && !this.allowFiltering && checkboxFilter && this.filterParent) {\n checkboxFilter.remove();\n this.filterParent = null;\n }\n var overAllHeight = parseInt(this.popupHeight, 10);\n this.popupWrapper.style.visibility = 'hidden';\n if (this.headerTemplate) {\n this.setHeaderTemplate();\n overAllHeight -= this.header.offsetHeight;\n this.isUpdateHeaderHeight = this.header.offsetHeight !== 0;\n }\n append([this.list], this.popupWrapper);\n if (!this.list.classList.contains(dropDownBaseClasses.noData) && this.getItems()[1]) {\n this.listItemHeight = this.getItems()[1].offsetHeight + parseInt(window.getComputedStyle(this.getItems()[1]).marginBottom, 10);\n }\n if (this.enableVirtualization && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (!this.list.querySelector('.e-virtual-ddl-content') && this.list.querySelector('.e-list-parent')) {\n this.list.appendChild(this.createElement('div', {\n className: 'e-virtual-ddl-content',\n styles: this.getTransformValues()\n })).appendChild(this.list.querySelector('.e-list-parent'));\n } else if (this.list.querySelector('.e-virtual-ddl-content')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.virtualItemCount = this.itemCount;\n if (this.mode !== 'CheckBox') {\n this.totalItemsCount();\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n }\n }\n if (this.footerTemplate) {\n this.setFooterTemplate();\n overAllHeight -= this.footer.offsetHeight;\n this.isUpdateFooterHeight = this.footer.offsetHeight !== 0;\n }\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n overAllHeight -= this.selectAllHeight;\n } else if (this.mode === 'CheckBox' && !this.showSelectAll && !this.headerTemplate && !this.footerTemplate) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n overAllHeight = parseInt(this.popupHeight, 10);\n } else if (this.mode === 'CheckBox' && !this.showSelectAll) {\n this.notify('selectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n overAllHeight = parseInt(this.popupHeight, 10);\n if (this.headerTemplate && this.header) {\n overAllHeight -= this.header.offsetHeight;\n }\n if (this.footerTemplate && this.footer) {\n overAllHeight -= this.footer.offsetHeight;\n }\n }\n if (this.mode === 'CheckBox') {\n var args = {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n popupElement: this.popupWrapper\n };\n if (this.allowFiltering) {\n this.notify('searchBox', args);\n overAllHeight -= this.searchBoxHeight;\n }\n addClass([this.popupWrapper], 'e-checkbox');\n }\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n } else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n this.popupObj = new Popup(this.popupWrapper, {\n width: this.calcPopupWidth(),\n targetType: 'relative',\n position: this.enableRtl ? {\n X: 'right',\n Y: 'bottom'\n } : {\n X: 'left',\n Y: 'bottom'\n },\n relateTo: this.overAllWrapper,\n collision: this.enableRtl ? {\n X: 'fit',\n Y: 'flip'\n } : {\n X: 'flip',\n Y: 'flip'\n },\n offsetY: 1,\n enableRtl: this.enableRtl,\n zIndex: this.zIndex,\n close: function () {\n if (_this.popupObj.element.parentElement) {\n _this.popupObj.unwireScrollEvents();\n // For restrict the page scrolling in safari browser\n var checkboxFilterInput = _this.popupWrapper.querySelector('.' + FILTERINPUT);\n if (_this.mode === 'CheckBox' && checkboxFilterInput && document.activeElement === checkboxFilterInput) {\n checkboxFilterInput.blur();\n }\n detach(_this.popupObj.element);\n }\n },\n open: function () {\n _this.popupObj.resolveCollision();\n if (!_this.isFirstClick) {\n var ulElement = _this.list.querySelector('ul');\n if (ulElement) {\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) && _this.targetElement().trim() !== '')) {\n _this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n }\n }\n _this.isFirstClick = true;\n }\n _this.popupObj.wireScrollEvents();\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) && _this.targetElement().trim() !== '') && !_this.enableVirtualization) {\n _this.loadTemplate();\n if (_this.enableVirtualization && _this.mode === 'CheckBox') {\n _this.UpdateSkeleton();\n }\n }\n _this.isPreventScrollAction = true;\n _this.setScrollPosition();\n if (!_this.list.classList.contains(dropDownBaseClasses.noData) && _this.getItems()[1] && _this.getItems()[1].offsetHeight !== 0) {\n _this.listItemHeight = _this.getItems()[1].offsetHeight + parseInt(window.getComputedStyle(_this.getItems()[1]).marginBottom, 10);\n if (_this.list.getElementsByClassName('e-virtual-ddl-content')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = _this.getTransformValues();\n }\n }\n if (_this.allowFiltering) {\n _this.notify('inputFocus', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n value: 'focus'\n });\n }\n if (_this.enableVirtualization) {\n _this.notify('bindScrollEvent', {\n module: 'VirtualScroll',\n component: _this.getModuleName(),\n enable: _this.enableVirtualization\n });\n setTimeout(function () {\n if (_this.value) {\n _this.updateSelectionList();\n } else if (_this.viewPortInfo && _this.viewPortInfo.offsets.top) {\n _this.list.scrollTop = _this.viewPortInfo.offsets.top;\n }\n }, 5);\n }\n },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n }\n });\n this.checkCollision(this.popupWrapper);\n this.popupContentElement = this.popupObj.element.querySelector('.e-content');\n if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering && this.isDeviceFullScreen) {\n this.notify('deviceSearchBox', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox'\n });\n }\n if (this.allowResize) {\n this.setResize();\n }\n this.popupObj.close();\n this.popupWrapper.style.visibility = '';\n }\n }\n };\n MultiSelect.prototype.checkCollision = function (popupEle) {\n if (!(this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering && this.isDeviceFullScreen)) {\n var collision = isCollide(popupEle);\n if (collision.length > 0) {\n popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';\n }\n this.popupObj.resolveCollision();\n }\n };\n MultiSelect.prototype.setHeaderTemplate = function () {\n var compiledString;\n if (this.header) {\n this.header.remove();\n }\n this.header = this.createElement('div');\n addClass([this.header], HEADER);\n var headercheck = this.multiCompiler(this.headerTemplate);\n if (typeof this.headerTemplate !== 'function' && headercheck) {\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\n } else {\n compiledString = compile(this.headerTemplate);\n }\n // eslint-disable-next-line\n var elements = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\n if (elements && elements.length > 0) {\n append(elements, this.header);\n }\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n prepend([this.header], this.popupWrapper);\n } else {\n append([this.header], this.popupWrapper);\n }\n EventHandler.add(this.header, 'mousedown', this.onListMouseDown, this);\n };\n MultiSelect.prototype.setFooterTemplate = function () {\n var compiledString;\n if (this.footer) {\n this.footer.remove();\n }\n this.footer = this.createElement('div');\n addClass([this.footer], FOOTER);\n var footercheck = this.multiCompiler(this.footerTemplate);\n if (typeof this.footerTemplate !== 'function' && footercheck) {\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\n } else {\n compiledString = compile(this.footerTemplate);\n }\n // eslint-disable-next-line\n var elements = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\n if (elements && elements.length > 0) {\n append(elements, this.footer);\n }\n append([this.footer], this.popupWrapper);\n EventHandler.add(this.footer, 'mousedown', this.onListMouseDown, this);\n };\n MultiSelect.prototype.updateInitialData = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var currentData = this.selectData;\n var ulElement = this.renderItems(currentData, this.fields);\n this.list.scrollTop = 0;\n this.virtualListInfo = {\n currentPageNumber: null,\n direction: null,\n sentinelInfo: {},\n offsets: {},\n startIndex: 0,\n endIndex: this.itemCount\n };\n this.previousStartIndex = 0;\n this.previousEndIndex = this.itemCount;\n if (this.dataSource instanceof DataManager) {\n if (this.remoteDataCount >= 0) {\n this.totalItemCount = this.dataCount = this.remoteDataCount;\n } else {\n this.resetList(this.dataSource);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = this.dataCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n }\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n this.getSkeletonCount();\n this.UpdateSkeleton();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.list.getElementsByClassName('e-virtual-ddl')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n } else if (!this.list.querySelector('.e-virtual-ddl') && this.skeletonCount > 0) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n this.listData = currentData;\n this.liCollections = this.list.querySelectorAll('.e-list-item');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.list.getElementsByClassName('e-virtual-ddl-content')[0]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n if (this.enableVirtualization) {\n this.notify('setGeneratedData', {\n module: 'VirtualScroll'\n });\n }\n };\n MultiSelect.prototype.clearAll = function (e) {\n if (this.enabled && !this.readonly) {\n var temp = void 0;\n this.setDynValue = false;\n this.isClearAllAction = true;\n if (this.value && this.value.length > 0) {\n if (this.allowFiltering) {\n this.refreshListItems(null);\n if (this.mode === 'CheckBox' && this.targetInputElement) {\n this.targetInputElement.value = '';\n }\n }\n var liElement = this.list && this.list.querySelectorAll('li.e-list-item');\n if (liElement && liElement.length > 0) {\n this.selectAllItems(false, e);\n } else {\n this.removeIndex = 0;\n for (temp = this.value[this.removeIndex]; this.removeIndex < this.value.length; temp = this.value[this.removeIndex]) {\n this.removeValue(temp, e, null, true);\n }\n }\n this.selectedElementID = null;\n this.inputElement.removeAttribute('aria-activedescendant');\n } else {\n this.clearAllCallback(e);\n }\n this.checkAndResetCache();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n if (this.enableVirtualization) {\n this.updateInitialData();\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.innerHTML = '';\n }\n if (!this.isCustomDataUpdated) {\n this.notify('setGeneratedData', {\n module: 'VirtualScroll'\n });\n }\n }\n if (this.enableVirtualization) {\n this.list.scrollTop = 0;\n this.virtualListInfo = null;\n this.previousStartIndex = 0;\n this.previousEndIndex = 0;\n }\n this.isClearAllAction = false;\n }\n this.isClearAllItem = true;\n EventHandler.add(document, 'mouseup', this.preventSelection, this);\n };\n MultiSelect.prototype.preventSelection = function (e) {\n if (this.isClearAllItem) {\n e.stopPropagation();\n }\n this.isClearAllItem = false;\n EventHandler.remove(document, 'mouseup', this.preventSelection);\n };\n MultiSelect.prototype.clearAllCallback = function (e, isClearAll) {\n var tempValues = this.value ? this.value.slice() : [];\n if (this.mainList && this.listData && (this.allowFiltering && this.mode !== 'CheckBox' || this.allowCustomValue)) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n this.focusAtFirstListItem();\n this.updateDelimeter(this.delimiterChar, e);\n if (this.mode !== 'Box' && (!this.inputFocus || this.mode === 'CheckBox')) {\n this.updateDelimView();\n }\n if (this.inputElement.value !== '') {\n this.makeTextBoxEmpty();\n this.search(null);\n }\n this.checkPlaceholderSize();\n if (this.isPopupOpen()) {\n this.refreshPopup();\n }\n if (this.allowResize) {\n this.setResize();\n }\n if (!this.inputFocus) {\n if (this.changeOnBlur) {\n this.updateValueState(e, this.value, tempValues);\n }\n if (this.mode !== 'CheckBox') {\n this.inputElement.focus();\n }\n }\n if (this.mode === 'CheckBox') {\n this.refreshPlaceHolder();\n this.refreshInputHight();\n if (this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n }\n if (!this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.updateValueState(e, this.value, this.tempValues);\n }\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n this.updateListItems(this.list.querySelectorAll('li.e-list-item'), this.mainList.querySelectorAll('li.e-list-item'));\n }\n e.preventDefault();\n };\n MultiSelect.prototype.windowResize = function () {\n this.refreshPopup();\n if ((!this.inputFocus || this.mode === 'CheckBox') && this.viewWrapper && this.viewWrapper.parentElement) {\n this.updateDelimView();\n }\n };\n MultiSelect.prototype.resetValueHandler = function (e) {\n if (!isNullOrUndefined(this.inputElement)) {\n var formElement = closest(this.inputElement, 'form');\n if (formElement && e.target === formElement) {\n var textVal = this.element.tagName === this.getNgDirective() ? null : this.element.getAttribute('data-initial-value');\n this.text = textVal;\n }\n }\n };\n MultiSelect.prototype.wireEvent = function () {\n EventHandler.add(this.componentWrapper, 'mousedown', this.wrapperClick, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n EventHandler.add(this.inputElement, 'focus', this.focusInHandler, this);\n EventHandler.add(this.inputElement, 'keydown', this.onKeyDown, this);\n EventHandler.add(this.inputElement, 'keyup', this.keyUp, this);\n if (this.mode !== 'CheckBox') {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n }\n EventHandler.add(this.inputElement, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.componentWrapper, 'mouseover', this.mouseIn, this);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\n }\n EventHandler.add(this.componentWrapper, 'mouseout', this.mouseOut, this);\n EventHandler.add(this.overAllClear, 'mousedown', this.clearAll, this);\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\n };\n MultiSelect.prototype.onInput = function (e) {\n if (this.keyDownStatus) {\n this.isValidKey = true;\n } else {\n this.isValidKey = false;\n }\n this.keyDownStatus = false;\n // For Filtering works in mobile firefox\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\n this.search(e);\n }\n };\n MultiSelect.prototype.pasteHandler = function (event) {\n var _this = this;\n setTimeout(function () {\n _this.expandTextbox();\n _this.search(event);\n });\n };\n MultiSelect.prototype.search = function (e) {\n var _this = this;\n this.resetFilteredData = true;\n this.preventSetCurrentData = false;\n this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;\n if (!isNullOrUndefined(e)) {\n this.keyCode = e.keyCode;\n }\n if (!this.isPopupOpen() && this.openOnClick) {\n this.showPopup(e);\n }\n this.openClick(e);\n if (this.checkTextLength() && !this.allowFiltering && !isNullOrUndefined(e) && e.keyCode !== 8) {\n this.focusAtFirstListItem();\n } else {\n var text = this.targetElement();\n if (this.allowFiltering) {\n if (this.allowCustomValue) {\n this.isRemoteSelection = true;\n }\n this.checkAndResetCache();\n this.isRequesting = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.targetElement(),\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isFiltered = true;\n _this.customFilterQuery = query;\n _this.remoteFilterAction = true;\n _this.dataUpdater(dataSource, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (!_this.isFiltered && !eventArgs.preventDefaultAction) {\n _this.filterAction = true;\n if (_this.dataSource instanceof DataManager && _this.allowCustomValue) {\n _this.isCustomRendered = false;\n }\n _this.dataUpdater(_this.dataSource, null, _this.fields);\n }\n }\n });\n } else if (this.allowCustomValue) {\n var query = new Query();\n query = this.allowFiltering && text !== '' ? query.where(this.fields.text, 'startswith', text, this.ignoreCase, this.ignoreAccent) : query;\n if (this.enableVirtualization) {\n this.dataUpdater(this.dataSource, query, this.fields);\n } else {\n this.dataUpdater(this.mainData, query, this.fields);\n }\n this.UpdateSkeleton();\n } else {\n var liCollections = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-hide-listitem)');\n var type = this.typeOfData(this.listData).typeof;\n var activeElement = Search(this.targetElement(), liCollections, 'StartsWith', this.ignoreCase);\n if (this.enableVirtualization && this.targetElement().trim() !== '' && !this.allowFiltering) {\n var updatingincrementalindex = false;\n if (this.viewPortInfo.endIndex >= this.incrementalEndIndex && this.incrementalEndIndex <= this.totalItemCount || this.incrementalEndIndex === 0) {\n updatingincrementalindex = true;\n this.incrementalStartIndex = 0;\n this.incrementalEndIndex = 100 > this.totalItemCount ? this.totalItemCount : 100;\n this.updateIncrementalInfo(this.incrementalStartIndex, this.incrementalEndIndex);\n updatingincrementalindex = false;\n }\n if (this.viewPortInfo.startIndex !== 0 || updatingincrementalindex) {\n this.updateIncrementalView(0, this.itemCount);\n }\n activeElement = Search(this.targetElement(), this.incrementalLiCollections, this.filterType, true, this.listData, this.fields, type);\n while (isNullOrUndefined(activeElement) && this.incrementalEndIndex < this.totalItemCount) {\n this.incrementalStartIndex = this.incrementalEndIndex;\n this.incrementalEndIndex = this.incrementalEndIndex + 100 > this.totalItemCount ? this.totalItemCount : this.incrementalEndIndex + 100;\n this.updateIncrementalInfo(this.incrementalStartIndex, this.incrementalEndIndex);\n updatingincrementalindex = true;\n if (this.viewPortInfo.startIndex !== 0 || updatingincrementalindex) {\n this.updateIncrementalView(0, this.itemCount);\n }\n activeElement = Search(this.targetElement(), this.incrementalLiCollections, this.filterType, true, this.listData, this.fields, type);\n if (!isNullOrUndefined(activeElement)) {\n break;\n }\n if (isNullOrUndefined(activeElement) && this.incrementalEndIndex >= this.totalItemCount) {\n this.incrementalStartIndex = 0;\n this.incrementalEndIndex = 100 > this.totalItemCount ? this.totalItemCount : 100;\n break;\n }\n }\n if (activeElement.index) {\n if (!(this.viewPortInfo.startIndex >= activeElement.index) || !(activeElement.index >= this.viewPortInfo.endIndex)) {\n var startIndex = activeElement.index - (this.itemCount / 2 - 2) > 0 ? activeElement.index - (this.itemCount / 2 - 2) : 0;\n var endIndex = startIndex + this.itemCount > this.totalItemCount ? this.totalItemCount : startIndex + this.itemCount;\n if (startIndex !== this.viewPortInfo.startIndex) {\n this.updateIncrementalView(startIndex, endIndex);\n }\n }\n }\n if (!isNullOrUndefined(activeElement.item)) {\n var index1 = this.getIndexByValue(activeElement.item.getAttribute('data-value')) - this.skeletonCount;\n if (index1 > this.itemCount / 2) {\n var startIndex = this.viewPortInfo.startIndex + (this.itemCount / 2 - 2) < this.totalItemCount ? this.viewPortInfo.startIndex + (this.itemCount / 2 - 2) : this.totalItemCount;\n var endIndex = this.viewPortInfo.startIndex + this.itemCount > this.totalItemCount ? this.totalItemCount : this.viewPortInfo.startIndex + this.itemCount;\n this.updateIncrementalView(startIndex, endIndex);\n }\n activeElement.item = this.getElementByValue(activeElement.item.getAttribute('data-value'));\n } else {\n this.updateIncrementalView(0, this.itemCount);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n this.list.scrollTop = 0;\n }\n if (activeElement && activeElement.item) {\n activeElement.item = this.getElementByValue(activeElement.item.getAttribute('data-value'));\n }\n }\n if (activeElement && activeElement.item) {\n this.addListFocus(activeElement.item);\n this.list.scrollTop = activeElement.item.offsetHeight * activeElement.index;\n } else if (this.targetElement() !== '') {\n this.removeFocus();\n } else {\n this.focusAtFirstListItem();\n }\n }\n }\n if (this.enableVirtualization && this.allowFiltering) {\n this.getFilteringSkeletonCount();\n }\n };\n MultiSelect.prototype.preRender = function () {\n if (this.allowFiltering === null) {\n this.allowFiltering = this.mode === 'CheckBox' ? true : false;\n }\n this.preventSetCurrentData = false;\n this.initializeData();\n this.updateDataAttribute(this.htmlAttributes);\n _super.prototype.preRender.call(this);\n };\n MultiSelect.prototype.getLocaleName = function () {\n return 'multi-select';\n };\n MultiSelect.prototype.initializeData = function () {\n this.mainListCollection = [];\n this.beforePopupOpen = false;\n this.filterAction = false;\n this.remoteFilterAction = false;\n this.isFirstClick = false;\n this.mobFilter = true;\n this.isFiltered = false;\n this.focused = true;\n this.initial = true;\n this.backCommand = true;\n this.isCustomRendered = false;\n this.isRemoteSelection = false;\n this.isSelectAllTarget = true;\n this.viewPortInfo = {\n currentPageNumber: null,\n direction: null,\n sentinelInfo: {},\n offsets: {},\n startIndex: 0,\n endIndex: this.itemCount\n };\n };\n MultiSelect.prototype.updateData = function (delimiterChar, e, isInitialVirtualData) {\n var data = '';\n var delim = this.mode === 'Delimiter' || this.mode === 'CheckBox';\n var text = [];\n var temp;\n var tempData = this.listData;\n if (!this.enableVirtualization) {\n this.listData = this.mainData;\n }\n if (!isNullOrUndefined(this.hiddenElement) && !this.enableVirtualization) {\n this.hiddenElement.innerHTML = '';\n }\n if (!isNullOrUndefined(this.value)) {\n var valueLength = this.value.length;\n var hiddenElementContent = '';\n var _loop_2 = function (index) {\n var valueItem = this_1.allowObjectBinding ? getValue(this_1.fields.value ? this_1.fields.value : '', this_1.value[index]) : this_1.value[index];\n var listValue = this_1.findListElement(!isNullOrUndefined(this_1.mainList) ? this_1.mainList : this_1.ulElement, 'li', 'data-value', valueItem);\n if (this_1.enableVirtualization) {\n listValue = this_1.findListElement(!isNullOrUndefined(this_1.list) ? this_1.list : this_1.ulElement, 'li', 'data-value', valueItem);\n }\n if (isNullOrUndefined(listValue) && !this_1.allowCustomValue && !this_1.enableVirtualization && this_1.listData && this_1.listData.length > 0) {\n this_1.value.splice(index, 1);\n index -= 1;\n valueLength -= 1;\n } else {\n if (this_1.listData) {\n if (this_1.enableVirtualization) {\n if (delim) {\n data = this_1.delimiterWrapper && this_1.delimiterWrapper.innerHTML === '' ? data : this_1.delimiterWrapper.innerHTML;\n }\n var value = this_1.allowObjectBinding ? getValue(this_1.fields.value ? this_1.fields.value : '', this_1.value[this_1.value.length - 1]) : this_1.value[this_1.value.length - 1];\n if (this_1.isRemoveSelection) {\n data = this_1.text.replace(/,/g, delimiterChar + ' ') + delimiterChar + ' ';\n text = this_1.text.split(delimiterChar);\n } else {\n temp = isInitialVirtualData && delim ? this_1.text : this_1.getTextByValue(value);\n var textValues = isInitialVirtualData ? this_1.text : this_1.text && this_1.text !== '' ? this_1.text + ',' + temp : temp;\n data += temp + delimiterChar + ' ';\n text.push(textValues);\n hiddenElementContent = this_1.hiddenElement.innerHTML;\n }\n if (e && e.currentTarget && e.currentTarget.classList.contains('e-chips-close') || e && e.key === 'Backspace') {\n var item_1 = e.target.parentElement.getAttribute('data-value');\n if (e.key === 'Backspace') {\n var lastChild = this_1.hiddenElement.lastChild;\n if (lastChild) {\n this_1.hiddenElement.removeChild(lastChild);\n }\n } else {\n this_1.hiddenElement.childNodes.forEach(function (option) {\n if (option.value === item_1) {\n option.parentNode.removeChild(option);\n }\n });\n }\n hiddenElementContent = this_1.hiddenElement.innerHTML;\n } else {\n hiddenElementContent += '';\n }\n return out_index_1 = index, \"break\";\n } else {\n temp = this_1.getTextByValue(valueItem);\n }\n } else {\n temp = valueItem;\n }\n data += temp + delimiterChar + ' ';\n text.push(temp);\n }\n hiddenElementContent += \"\";\n out_index_1 = index;\n };\n var this_1 = this,\n out_index_1;\n for (var index = 0; index < valueLength; index++) {\n var state_2 = _loop_2(index);\n index = out_index_1;\n if (state_2 === \"break\") break;\n }\n if (!isNullOrUndefined(this.hiddenElement)) {\n if (this.isRemoveSelection) {\n if (this.findListElement(this.hiddenElement, 'option', 'value', this.currentRemoveValue)) {\n this.hiddenElement.removeChild(this.findListElement(this.hiddenElement, 'option', 'value', this.currentRemoveValue));\n }\n this.isRemoveSelection = false;\n } else {\n this.hiddenElement.innerHTML = hiddenElementContent;\n }\n }\n }\n var isChipRemove = e && e.target && e.target.classList.contains('e-chips-close');\n if (!this.enableVirtualization || this.enableVirtualization && this.mode !== 'CheckBox' && !isChipRemove) {\n this.setProperties({\n text: text.toString()\n }, true);\n }\n if (delim) {\n this.updateWrapperText(this.delimiterWrapper, data);\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\n }\n var targetEle = e && e.target;\n var isClearAll = targetEle && targetEle.classList.contains('e-close-hooker') ? true : null;\n if (!this.changeOnBlur && e && !isClearAll || this.isSelectAll) {\n this.isSelectAll = false;\n this.updateValueState(e, this.value, this.tempValues);\n }\n this.listData = tempData;\n this.addValidInputClass();\n };\n MultiSelect.prototype.initialTextUpdate = function () {\n if (!isNullOrUndefined(this.text)) {\n var textArr = this.text.split(this.delimiterChar);\n var textVal = [];\n for (var index = 0; textArr.length > index; index++) {\n var val = this.getValueByText(textArr[index]);\n if (!isNullOrUndefined(val)) {\n textVal.push(val);\n } else if (this.allowCustomValue) {\n textVal.push(textArr[index]);\n }\n }\n if (textVal && textVal.length) {\n var value = this.allowObjectBinding ? this.getDataByValue(textVal) : textVal;\n this.setProperties({\n value: value\n }, true);\n }\n } else {\n this.setProperties({\n value: null\n }, true);\n }\n };\n MultiSelect.prototype.renderList = function (isEmptyData) {\n if (!isEmptyData && this.allowCustomValue && this.list && (this.list.textContent === this.noRecordsTemplate || this.list.querySelector('.e-ul') && this.list.querySelector('.e-ul').childElementCount === 0)) {\n isEmptyData = true;\n }\n _super.prototype.render.call(this, null, isEmptyData);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n this.unwireListEvents();\n this.wireListEvents();\n };\n MultiSelect.prototype.initialValueUpdate = function (listItems, isInitialVirtualData) {\n if (this.list) {\n var text = void 0;\n var element = void 0;\n var value = void 0;\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.innerHTML = '';\n }\n this.removeListSelection();\n if (!isNullOrUndefined(this.value)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n element = this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n var isCustomData = false;\n if (this.enableVirtualization) {\n text = null;\n if (listItems != null && listItems.length > 0) {\n for (var i = 0; i < listItems.length; i++) {\n if (this.isPrimitiveData && listItems[i] === value || !this.isPrimitiveData && getValue(this.fields.value ? this.fields.value : 'value', listItems[i]) === value) {\n text = this.isPrimitiveData ? listItems[i] : getValue(this.fields.text, listItems[i]);\n if (this.enableVirtualization) {\n if (isNullOrUndefined(this.selectedListData)) {\n this.selectedListData = [listItems[i]];\n } else {\n if (Array.isArray(this.selectedListData)) {\n this.selectedListData.push(listItems[i]);\n } else {\n this.selectedListData = [this.selectedListData, listItems[i]];\n }\n }\n }\n break;\n }\n }\n }\n if (isNullOrUndefined(text) && this.allowCustomValue && (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && isInitialVirtualData)) {\n text = this.getTextByValue(value);\n isCustomData = true;\n }\n } else {\n text = this.getTextByValue(value);\n }\n if (element && element.getAttribute('aria-selected') !== 'true' || element && element.getAttribute('aria-selected') === 'true' && this.hideSelectedItem && (this.mode === 'Box' || this.mode === 'Default') || this.enableVirtualization && value != null && text != null && !isCustomData) {\n var currentText = [];\n var textValues = this.text != null && this.text !== '' ? this.text + ',' + text : text;\n currentText.push(textValues);\n this.setProperties({\n text: currentText.toString()\n }, true);\n this.addChip(text, value);\n this.addListSelection(element);\n } else if (!this.enableVirtualization && value && this.allowCustomValue || this.enableVirtualization && value && this.allowCustomValue && (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && isInitialVirtualData)) {\n var indexItem = this.listData.length;\n var newValue = {};\n setValue(this.fields.text, value, newValue);\n setValue(this.fields.value, value, newValue);\n var noDataEle = this.popupWrapper.querySelector('.' + dropDownBaseClasses.noData);\n if (!this.enableVirtualization) {\n this.addItem(newValue, indexItem);\n }\n if (this.enableVirtualization) {\n if (this.virtualCustomSelectData && this.virtualCustomSelectData.length >= 0) {\n this.virtualCustomSelectData.push(newValue);\n } else {\n this.virtualCustomSelectData = [newValue];\n }\n }\n element = element ? element : this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\n if (this.popupWrapper.contains(noDataEle)) {\n this.list.setAttribute('style', noDataEle.getAttribute('style'));\n this.popupWrapper.replaceChild(this.list, noDataEle);\n this.wireListEvents();\n }\n var currentText = [];\n var textValues = this.text != null && this.text !== '' ? this.text + ',' + text : text;\n currentText.push(textValues);\n this.setProperties({\n text: currentText.toString()\n }, true);\n this.addChip(text, value);\n this.addListSelection(element);\n }\n }\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (this.changeOnBlur) {\n this.updateValueState(null, this.value, this.tempValues);\n }\n this.updateDelimeter(this.delimiterChar);\n this.refreshInputHight();\n } else {\n this.updateDelimeter(this.delimiterChar, null, isInitialVirtualData);\n }\n if (this.mode === 'CheckBox' && this.showSelectAll && (isNullOrUndefined(this.value) || !this.value.length)) {\n this.notify('checkSelectAll', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n value: 'uncheck'\n });\n }\n if (this.mode === 'Box' || this.mode === 'Default' && this.inputFocus) {\n this.chipCollectionWrapper.style.display = '';\n } else if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.showDelimWrapper();\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateActionCompleteData = function (li, item) {\n if (this.value && (!this.allowObjectBinding && this.value.indexOf(li.getAttribute('data-value')) > -1 || this.allowObjectBinding && this.isObjectInArray(this.getDataByValue(li.getAttribute('data-value')), this.value))) {\n this.mainList = this.ulElement;\n if (this.hideSelectedItem) {\n addClass([li], HIDE_LIST);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateAddItemList = function (list, itemCount) {\n if (this.popupObj && this.popupObj.element && this.popupObj.element.querySelector('.' + dropDownBaseClasses.noData) && list) {\n this.list = list;\n this.mainList = this.ulElement = list.querySelector('ul');\n remove(this.popupWrapper.querySelector('.e-content'));\n this.popupObj = null;\n this.renderPopup();\n } else if (this.allowCustomValue) {\n this.list = list;\n this.mainList = this.ulElement = list.querySelector('ul');\n }\n };\n MultiSelect.prototype.updateDataList = function () {\n if (this.mainList && this.ulElement && !(this.isFiltered || this.filterAction || this.targetElement().trim())) {\n var isDynamicGroupItemUpdate = this.mainList.childElementCount < this.ulElement.childElementCount;\n var isReactTemplateUpdate = this.ulElement.childElementCount > 0 && this.ulElement.children[0].childElementCount > 0 && this.mainList.children[0] && this.mainList.children[0].childElementCount < this.ulElement.children[0].childElementCount;\n var isAngularTemplateUpdate = this.itemTemplate && this.ulElement.childElementCount > 0 && !(this.ulElement.childElementCount < this.mainList.childElementCount) && (this.ulElement.children[0].childElementCount > 0 || this.fields.groupBy && this.ulElement.children[1] && this.ulElement.children[1].childElementCount > 0);\n if (isDynamicGroupItemUpdate || isReactTemplateUpdate || isAngularTemplateUpdate) {\n //EJ2-57748 - for this task, we prevent the ul element cloning ( this.mainList = this.ulElement.cloneNode ? this.ulElement.cloneNode(true) : this.ulElement;)\n this.mainList = this.ulElement;\n }\n }\n };\n MultiSelect.prototype.isValidLI = function (li) {\n return li && !li.classList.contains(dropDownBaseClasses.disabled) && !li.classList.contains(dropDownBaseClasses.group) && li.classList.contains(dropDownBaseClasses.li);\n };\n MultiSelect.prototype.updateListSelection = function (li, e, length) {\n var customVal = li.getAttribute('data-value');\n var value = this.allowObjectBinding ? this.getDataByValue(this.getFormattedValue(customVal)) : this.getFormattedValue(customVal);\n if (this.allowCustomValue && (customVal !== 'false' && value === false || !isNullOrUndefined(value) && value.toString() === 'NaN')) {\n value = customVal;\n }\n this.removeHover();\n if (!this.value || !this.allowObjectBinding && this.value.indexOf(value) === -1 || this.allowObjectBinding && this.indexOfObjectInArray(value, this.value) === -1) {\n this.dispatchSelect(value, e, li, li.getAttribute('aria-selected') === 'true', length);\n } else {\n this.removeValue(value, e, length);\n }\n };\n MultiSelect.prototype.updateListSelectEventCallback = function (value, li, e, currentText) {\n var _this = this;\n value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n var text = currentText ? currentText : this.getTextByValue(value);\n if ((this.allowCustomValue || this.allowFiltering) && !this.findListElement(this.mainList, 'li', 'data-value', value) && (!this.enableVirtualization || this.enableVirtualization && this.virtualCustomData)) {\n var temp_1 = li ? li.cloneNode(true) : li;\n var fieldValue = this.fields.value ? this.fields.value : 'value';\n if (this.allowCustomValue && this.mainData.length && typeof getValue(fieldValue, this.mainData[0]) === 'number') {\n value = !isNaN(parseFloat(value.toString())) ? parseFloat(value.toString()) : value;\n }\n var data_1 = this.getDataByValue(value);\n var eventArgs = {\n newData: data_1,\n cancel: false\n };\n this.trigger('customValueSelection', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (_this.enableVirtualization && _this.virtualCustomData) {\n if (_this.virtualCustomSelectData && _this.virtualCustomSelectData.length >= 0) {\n _this.virtualCustomSelectData.push(data_1);\n } else {\n _this.virtualCustomSelectData = [data_1];\n }\n _this.remoteCustomValue = false;\n _this.addValue(value, text, e);\n } else {\n append([temp_1], _this.mainList);\n _this.mainData.push(data_1);\n _this.remoteCustomValue = false;\n _this.addValue(value, text, e);\n }\n }\n });\n } else {\n this.remoteCustomValue = false;\n this.addValue(value, text, e);\n }\n };\n MultiSelect.prototype.removeListSelection = function () {\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n var selectedItems = this.list.querySelectorAll('.' + className);\n var temp = selectedItems.length;\n if (selectedItems && selectedItems.length) {\n removeClass(selectedItems, className);\n while (temp > 0) {\n selectedItems[temp - 1].setAttribute('aria-selected', 'false');\n temp--;\n }\n }\n if (!isNullOrUndefined(this.mainList)) {\n var selectItems = this.mainList.querySelectorAll('.' + className);\n var temp1 = selectItems.length;\n if (selectItems && selectItems.length) {\n removeClass(selectItems, className);\n while (temp1 > 0) {\n selectItems[temp1 - 1].setAttribute('aria-selected', 'false');\n if (this.mode === 'CheckBox') {\n if (selectedItems && selectedItems.length > temp1 - 1) {\n removeClass([selectedItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\n }\n removeClass([selectItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\n }\n temp1--;\n }\n }\n }\n };\n MultiSelect.prototype.removeHover = function () {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.hover);\n }\n };\n MultiSelect.prototype.removeFocus = function () {\n if (this.list && this.mainList) {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.focus);\n var mainlist = this.mainList.querySelectorAll('.' + dropDownBaseClasses.focus);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.focus);\n removeClass(mainlist, dropDownBaseClasses.focus);\n }\n }\n };\n MultiSelect.prototype.addListHover = function (li) {\n if (this.enabled && this.isValidLI(li)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n } else {\n if (li !== null && li.classList.contains('e-list-group-item') && this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n }\n };\n MultiSelect.prototype.addListFocus = function (element) {\n if (this.enabled && (this.isValidLI(element) || this.fields.disabled && this.isDisabledElement(element))) {\n this.removeFocus();\n addClass([element], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n } else {\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n addClass([element], dropDownBaseClasses.focus);\n this.updateAriaActiveDescendant();\n }\n }\n };\n MultiSelect.prototype.addListSelection = function (element, mainElement) {\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\n if (this.isValidLI(element) && !element.classList.contains(dropDownBaseClasses.hover)) {\n addClass([element], className);\n this.updateMainList(false, element.getAttribute('data-value'), mainElement);\n element.setAttribute('aria-selected', 'true');\n if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {\n var ariaCheck = element.getElementsByClassName('e-check').length;\n if (ariaCheck === 0) {\n this.notify('updatelist', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: this\n });\n }\n }\n this.notify('activeList', {\n module: 'CheckBoxSelection',\n enable: this.mode === 'CheckBox',\n li: element,\n e: this\n });\n if (this.chipCollectionWrapper) {\n this.removeChipSelection();\n }\n this.selectedElementID = element.id;\n }\n };\n MultiSelect.prototype.updateDelimeter = function (delimChar, e, isInitialVirtualData) {\n this.updateData(delimChar, e, isInitialVirtualData);\n };\n MultiSelect.prototype.onMouseClick = function (e) {\n var _this = this;\n if (!this.isClearAllItem) {\n this.keyCode = null;\n this.scrollFocusStatus = false;\n this.keyboardEvent = null;\n var target = e.target;\n var li = closest(target, '.' + dropDownBaseClasses.li);\n if (this.enableVirtualization && li && li.classList.contains('e-virtual-list')) {\n return;\n }\n var headerLi = closest(target, '.' + dropDownBaseClasses.group);\n if (headerLi && this.enableGroupCheckBox && this.mode === 'CheckBox' && this.fields.groupBy) {\n target = target.classList.contains('e-list-group-item') ? target.firstElementChild.lastElementChild : e.target;\n if (target.classList.contains('e-check')) {\n this.selectAllItem(false, e);\n target.classList.remove('e-check');\n target.classList.remove('e-stop');\n closest(target, '.' + 'e-list-group-item').classList.remove('e-active');\n target.setAttribute('aria-selected', 'false');\n } else {\n this.selectAllItem(true, e);\n target.classList.remove('e-stop');\n target.classList.add('e-check');\n closest(target, '.' + 'e-list-group-item').classList.add('e-active');\n target.setAttribute('aria-selected', 'true');\n }\n this.refreshSelection();\n this.checkSelectAll();\n } else {\n if (this.isValidLI(li)) {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (li.classList.contains('e-active')) {\n limit = limit - 1;\n }\n if (limit < this.maximumSelectionLength) {\n this.updateListSelection(li, e);\n this.checkPlaceholderSize();\n this.addListFocus(li);\n if ((this.allowCustomValue || this.allowFiltering) && this.mainList && this.listData) {\n if (this.mode !== 'CheckBox') {\n this.focusAtLastListItem(li.getAttribute('data-value'));\n this.refreshSelection();\n }\n } else {\n this.makeTextBoxEmpty();\n }\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (this.value && this.value.length > 50) {\n setTimeout(function () {\n _this.updateDelimeter(_this.delimiterChar, e);\n }, 0);\n } else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n this.refreshInputHight();\n } else {\n this.updateDelimeter(this.delimiterChar, e);\n }\n this.checkSelectAll();\n this.refreshPopup();\n if (this.allowResize) {\n this.setResize();\n }\n if (this.hideSelectedItem) {\n this.focusAtFirstListItem();\n }\n if (this.closePopupOnSelect) {\n this.hidePopup(e);\n } else {\n e.preventDefault();\n }\n var isFilterData = this.targetElement().trim() !== '' ? true : false;\n this.makeTextBoxEmpty();\n this.findGroupStart(target);\n if (this.mode !== 'CheckBox') {\n this.refreshListItems(isNullOrUndefined(li) ? null : li.textContent, isFilterData);\n }\n } else {\n e.preventDefault();\n }\n if (this.enableVirtualization && this.hideSelectedItem) {\n var visibleListElements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)' + ':not(.e-virtual-list)');\n if (visibleListElements.length) {\n var actualCount = this.virtualListHeight > 0 ? Math.floor(this.virtualListHeight / this.listItemHeight) : 0;\n if (visibleListElements.length < actualCount + 2) {\n var query = this.getForQuery(this.value).clone();\n query = query.skip(this.virtualItemStartIndex);\n this.resetList(this.dataSource, this.fields, query);\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.virtualItemCount = this.itemCount;\n if (this.mode !== 'CheckBox') {\n this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;\n }\n if (!this.list.querySelector('.e-virtual-ddl')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();\n }\n if (this.list.querySelector('.e-virtual-ddl-content')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n }\n }\n }\n }\n this.refreshPlaceHolder();\n this.deselectHeader();\n }\n }\n };\n MultiSelect.prototype.findGroupStart = function (target) {\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n var count = 0;\n var liChecked = 0;\n var liUnchecked = 0;\n var groupValues = void 0;\n if (this.itemTemplate && !target.getElementsByClassName('e-frame').length) {\n while (!target.getElementsByClassName('e-frame').length) {\n target = target.parentElement;\n }\n }\n if (target.classList.contains('e-frame')) {\n target = target.parentElement.parentElement;\n }\n groupValues = this.findGroupAttrtibutes(target, liChecked, liUnchecked, count, 0);\n groupValues = this.findGroupAttrtibutes(target, groupValues[0], groupValues[1], groupValues[2], 1);\n while (!target.classList.contains('e-list-group-item')) {\n if (target.classList.contains('e-list-icon')) {\n target = target.parentElement;\n }\n target = target.previousElementSibling;\n if (target == null) {\n break;\n }\n }\n this.updateCheckBox(target, groupValues[0], groupValues[1], groupValues[2]);\n }\n };\n MultiSelect.prototype.findGroupAttrtibutes = function (listElement, checked, unChecked, count, position) {\n while (!listElement.classList.contains('e-list-group-item')) {\n if (!(this.fields.disabled && this.isDisabledElement(listElement))) {\n if (listElement.classList.contains('e-list-icon')) {\n listElement = listElement.parentElement;\n }\n if (listElement.getElementsByClassName('e-frame')[0].classList.contains('e-check') && listElement.classList.contains('e-list-item')) {\n checked++;\n } else if (listElement.classList.contains('e-list-item')) {\n unChecked++;\n }\n count++;\n }\n listElement = position ? listElement.nextElementSibling : listElement.previousElementSibling;\n if (listElement == null) {\n break;\n }\n }\n return [checked, unChecked, count];\n };\n MultiSelect.prototype.updateCheckBox = function (groupHeader, checked, unChecked, count) {\n if (groupHeader === null || !isNullOrUndefined(this.fields.disabled) && count === 0) {\n return;\n }\n var checkBoxElement = groupHeader.getElementsByClassName('e-frame')[0];\n if (count === checked) {\n checkBoxElement.classList.remove('e-stop');\n checkBoxElement.classList.add('e-check');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n groupHeader.setAttribute('aria-selected', 'true');\n } else if (count === unChecked) {\n checkBoxElement.classList.remove('e-check');\n checkBoxElement.classList.remove('e-stop');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.remove('e-active');\n groupHeader.setAttribute('aria-selected', 'false');\n } else if (this.maximumSelectionLength === checked - 1) {\n checkBoxElement.classList.remove('e-stop');\n groupHeader.setAttribute('aria-selected', 'true');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n checkBoxElement.classList.add('e-check');\n } else {\n checkBoxElement.classList.remove('e-check');\n checkBoxElement.classList.add('e-stop');\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\n groupHeader.setAttribute('aria-selected', 'false');\n }\n };\n MultiSelect.prototype.disableGroupHeader = function () {\n var collection = this.list.querySelectorAll('li.e-list-group-item');\n if (collection) {\n for (var index = 0; index < collection.length; index++) {\n var isDisabled = true;\n var target = collection[index].nextElementSibling;\n while (!target.classList.contains('e-list-group-item')) {\n if (!this.isDisabledElement(target)) {\n isDisabled = false;\n break;\n }\n target = target.nextElementSibling;\n if (target == null) {\n break;\n }\n }\n if (isDisabled) {\n this.disableListItem(collection[index]);\n }\n }\n }\n };\n MultiSelect.prototype.deselectHeader = function () {\n var limit = this.value && this.value.length ? this.value.length : 0;\n var collection = this.list.querySelectorAll('li.e-list-group-item:not(.e-active)');\n if (limit < this.maximumSelectionLength) {\n removeClass(collection, 'e-disable');\n }\n if (limit === this.maximumSelectionLength) {\n addClass(collection, 'e-disable');\n }\n };\n MultiSelect.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n if (currentLi === null && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy) && this.enableGroupCheckBox) {\n currentLi = closest(e.target, '.' + dropDownBaseClasses.group);\n }\n this.addListHover(currentLi);\n };\n MultiSelect.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n MultiSelect.prototype.onListMouseDown = function (e) {\n e.preventDefault();\n this.scrollFocusStatus = true;\n };\n MultiSelect.prototype.onDocumentClick = function (e) {\n if (this.mode !== 'CheckBox') {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) && !this.overAllWrapper.contains(e.target)) {\n this.scrollFocusStatus = false;\n } else {\n this.scrollFocusStatus = (Browser.isIE || Browser.info.name === 'edge') && document.activeElement === this.inputElement;\n }\n }\n };\n MultiSelect.prototype.wireListEvents = function () {\n if (!isNullOrUndefined(this.list)) {\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.list, 'mousedown', this.onListMouseDown, this);\n EventHandler.add(this.list, 'mouseup', this.onMouseClick, this);\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\n }\n };\n MultiSelect.prototype.unwireListEvents = function () {\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n if (this.list) {\n EventHandler.remove(this.list, 'mousedown', this.onListMouseDown);\n EventHandler.remove(this.list, 'mouseup', this.onMouseClick);\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\n }\n };\n MultiSelect.prototype.hideOverAllClear = function () {\n if (!this.value || !this.value.length || this.inputElement.value === '') {\n this.overAllClear.style.display = 'none';\n }\n };\n MultiSelect.prototype.showOverAllClear = function () {\n if ((this.value && this.value.length || this.inputElement.value !== '') && this.showClearButton && this.readonly !== true) {\n this.overAllClear.style.display = '';\n } else {\n this.overAllClear.style.display = 'none';\n }\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n MultiSelect.prototype.focusIn = function () {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n MultiSelect.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement && this.enabled) {\n this.inputElement.blur();\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n MultiSelect.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n var filterClear = this.filterParent && this.filterParent.querySelector('.e-clear-icon.e-icons');\n if (this.overAllClear.style.display !== 'none' || filterClear) {\n this.spinnerElement = filterClear ? filterClear : this.overAllClear;\n } else {\n this.spinnerElement = this.createElement('span', {\n className: CLOSEICON_CLASS + ' ' + SPINNER_CLASS\n });\n this.componentWrapper.appendChild(this.spinnerElement);\n }\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n addClass([this.spinnerElement], DISABLE_ICON);\n showSpinner(this.spinnerElement);\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n */\n MultiSelect.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], DISABLE_ICON);\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\n detach(this.spinnerElement);\n } else {\n this.spinnerElement.innerHTML = '';\n }\n this.spinnerElement = null;\n }\n };\n MultiSelect.prototype.updateWrapperText = function (wrapperType, wrapperData) {\n if (this.valueTemplate || !this.enableHtmlSanitizer) {\n wrapperType.innerHTML = this.encodeHtmlEntities(wrapperData);\n } else {\n wrapperType.innerText = wrapperData;\n }\n };\n MultiSelect.prototype.updateDelimView = function () {\n if (this.delimiterWrapper) {\n this.hideDelimWrapper();\n }\n if (this.chipCollectionWrapper) {\n this.chipCollectionWrapper.style.display = 'none';\n }\n if (!isNullOrUndefined(this.viewWrapper)) {\n this.viewWrapper.style.display = '';\n this.viewWrapper.style.width = '';\n this.viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\n }\n if (this.value && this.value.length) {\n var data = '';\n var temp = void 0;\n var tempData = void 0;\n var tempIndex = 1;\n var wrapperleng = void 0;\n var remaining = void 0;\n var downIconWidth = 0;\n var overAllContainer = void 0;\n if (!this.enableVirtualization) {\n this.updateWrapperText(this.viewWrapper, data);\n }\n var l10nLocale = {\n noRecordsTemplate: 'No records found',\n actionFailureTemplate: 'Request failed',\n overflowCountTemplate: '+${count} more..',\n totalCountTemplate: '${count} selected'\n };\n var l10n = new L10n(this.getLocaleName(), l10nLocale, this.locale);\n if (l10n.getConstant('actionFailureTemplate') === '') {\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\n }\n if (l10n.getConstant('noRecordsTemplate') === '') {\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\n }\n var remainContent = l10n.getConstant('overflowCountTemplate');\n var totalContent = l10n.getConstant('totalCountTemplate');\n var raminElement = this.createElement('span', {\n className: REMAIN_WRAPPER\n });\n var remainCompildTemp = remainContent.replace('${count}', this.value.length.toString());\n raminElement.innerText = remainCompildTemp;\n this.viewWrapper.appendChild(raminElement);\n this.renderReactTemplates();\n var remainSize = raminElement.offsetWidth;\n remove(raminElement);\n if (this.showDropDownIcon) {\n downIconWidth = this.dropIcon.offsetWidth + parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\n }\n this.checkClearIconWidth();\n if (!isNullOrUndefined(this.value) && (this.allowCustomValue || this.listData && this.listData.length > 0)) {\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\n var items = this.text && this.text.split(this.delimiterChar);\n if (!this.enableVirtualization) {\n data += index === 0 ? '' : this.delimiterChar + ' ';\n temp = this.getOverflowVal(index);\n data += temp;\n temp = this.viewWrapper.innerHTML;\n this.updateWrapperText(this.viewWrapper, data);\n } else if (items) {\n data += index === 0 ? '' : this.delimiterChar + ' ';\n temp = items[index];\n data += temp;\n temp = this.viewWrapper.innerHTML;\n this.updateWrapperText(this.viewWrapper, data);\n }\n wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n overAllContainer = this.componentWrapper.offsetWidth - parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) - parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\n if (wrapperleng + downIconWidth + this.clearIconWidth > overAllContainer) {\n if (tempData !== undefined && tempData !== '') {\n temp = tempData;\n index = tempIndex + 1;\n }\n this.updateWrapperText(this.viewWrapper, temp);\n remaining = this.value.length - index;\n wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n while (wrapperleng + remainSize + downIconWidth + this.clearIconWidth > overAllContainer && wrapperleng !== 0 && this.viewWrapper.innerHTML !== '') {\n var textArr = [];\n this.viewWrapper.innerHTML = textArr.join(this.delimiterChar);\n remaining = this.value.length;\n wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n }\n break;\n } else if (wrapperleng + remainSize + downIconWidth + this.clearIconWidth <= overAllContainer) {\n tempData = data;\n tempIndex = index;\n } else if (index === 0) {\n tempData = '';\n tempIndex = -1;\n }\n }\n }\n if (remaining > 0) {\n var totalWidth = overAllContainer - downIconWidth - this.clearIconWidth;\n this.viewWrapper.appendChild(this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth));\n this.updateRemainWidth(this.viewWrapper, totalWidth);\n this.updateRemainingText(raminElement, downIconWidth, remaining, remainContent, totalContent);\n }\n } else {\n if (!isNullOrUndefined(this.viewWrapper)) {\n this.viewWrapper.innerHTML = '';\n this.viewWrapper.style.display = 'none';\n }\n }\n };\n MultiSelect.prototype.checkClearIconWidth = function () {\n if (this.showClearButton) {\n this.clearIconWidth = this.overAllClear.offsetWidth;\n }\n };\n MultiSelect.prototype.updateRemainWidth = function (viewWrapper, totalWidth) {\n if (viewWrapper.classList.contains(TOTAL_COUNT_WRAPPER) && totalWidth < viewWrapper.offsetWidth + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10) + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10)) {\n viewWrapper.style.width = totalWidth + 'px';\n }\n };\n MultiSelect.prototype.updateRemainTemplate = function (raminElement, viewWrapper, remaining, remainContent, totalContent, totalWidth) {\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3 && viewWrapper.firstChild.nodeValue === '') {\n viewWrapper.removeChild(viewWrapper.firstChild);\n }\n raminElement.innerHTML = '';\n var remainTemp = remainContent.replace('${count}', remaining.toString());\n var totalTemp = totalContent.replace('${count}', remaining.toString());\n raminElement.innerText = viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3 ? remainTemp : totalTemp;\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3) {\n viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\n } else {\n viewWrapper.classList.add(TOTAL_COUNT_WRAPPER);\n this.updateRemainWidth(viewWrapper, totalWidth);\n }\n return raminElement;\n };\n MultiSelect.prototype.updateRemainingText = function (raminElement, downIconWidth, remaining, remainContent, totalContent) {\n var overAllContainer = this.componentWrapper.offsetWidth - parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) - parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\n var wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\n if (wrapperleng + downIconWidth >= overAllContainer && wrapperleng !== 0 && this.viewWrapper.firstChild && this.viewWrapper.firstChild.nodeType === 3) {\n while (wrapperleng + downIconWidth > overAllContainer && wrapperleng !== 0 && this.viewWrapper.firstChild && this.viewWrapper.firstChild.nodeType === 3) {\n var textArr = this.viewWrapper.firstChild.nodeValue.split(this.delimiterChar);\n textArr.pop();\n this.viewWrapper.firstChild.nodeValue = textArr.join(this.delimiterChar);\n if (this.viewWrapper.firstChild.nodeValue === '') {\n this.viewWrapper.removeChild(this.viewWrapper.firstChild);\n }\n remaining++;\n wrapperleng = this.viewWrapper.offsetWidth;\n }\n var totalWidth = overAllContainer - downIconWidth;\n this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth);\n }\n };\n MultiSelect.prototype.getOverflowVal = function (index) {\n var temp;\n if (this.mainData && this.mainData.length) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n if (this.mode === 'CheckBox') {\n var newTemp = this.listData;\n this.listData = this.mainData;\n temp = this.getTextByValue(value);\n this.listData = newTemp;\n } else {\n temp = this.getTextByValue(value);\n }\n } else {\n temp = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[index]) : this.value[index];\n }\n return temp;\n };\n MultiSelect.prototype.unWireEvent = function () {\n if (!isNullOrUndefined(this.componentWrapper)) {\n EventHandler.remove(this.componentWrapper, 'mousedown', this.wrapperClick);\n }\n EventHandler.remove(window, 'resize', this.windowResize);\n if (!isNullOrUndefined(this.inputElement)) {\n EventHandler.remove(this.inputElement, 'focus', this.focusInHandler);\n EventHandler.remove(this.inputElement, 'keydown', this.onKeyDown);\n if (this.mode !== 'CheckBox') {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n }\n EventHandler.remove(this.inputElement, 'keyup', this.keyUp);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\n }\n EventHandler.remove(this.inputElement, 'blur', this.onBlurHandler);\n }\n if (!isNullOrUndefined(this.componentWrapper)) {\n EventHandler.remove(this.componentWrapper, 'mouseover', this.mouseIn);\n EventHandler.remove(this.componentWrapper, 'mouseout', this.mouseOut);\n }\n if (!isNullOrUndefined(this.overAllClear)) {\n EventHandler.remove(this.overAllClear, 'mousedown', this.clearAll);\n }\n if (!isNullOrUndefined(this.inputElement)) {\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\n }\n };\n MultiSelect.prototype.resizingWireEvent = function () {\n // Mouse events\n EventHandler.add(document, 'mousemove', this.resizePopup, this);\n EventHandler.add(document, 'mouseup', this.stopResizing, this);\n // Touch events\n EventHandler.add(document, 'touchmove', this.resizePopup, this);\n EventHandler.add(document, 'touchend', this.stopResizing, this);\n };\n MultiSelect.prototype.resizingUnWireEvent = function () {\n // Mouse events\n EventHandler.remove(document, 'mousemove', this.resizePopup);\n EventHandler.remove(document, 'mouseup', this.stopResizing);\n // Touch events\n EventHandler.remove(document, 'touchmove', this.resizePopup);\n EventHandler.remove(document, 'touchend', this.stopResizing);\n };\n MultiSelect.prototype.selectAllItem = function (state, event, list) {\n var li;\n if (!isNullOrUndefined(this.list)) {\n li = this.list.querySelectorAll(state ? 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)' : 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)');\n }\n if (this.value && this.value.length && event && event.target && closest(event.target, '.e-close-hooker') && this.allowFiltering) {\n li = this.mainList.querySelectorAll(state ? 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)' : 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)');\n }\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\n var target = event ? this.groupTemplate ? closest(event.target, '.e-list-group-item') : event.target : null;\n target = event && event.keyCode === 32 ? list : target;\n target = target && target.classList.contains('e-frame') ? target.parentElement.parentElement : target;\n if (target && target.classList.contains('e-list-group-item')) {\n var listElement = target.nextElementSibling;\n if (isNullOrUndefined(listElement)) {\n return;\n }\n while (listElement.classList.contains('e-list-item')) {\n if (!(this.fields.disabled && this.isDisabledElement(listElement))) {\n if (state) {\n if (!listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\n var selectionLimit = this.value && this.value.length ? this.value.length : 0;\n if (listElement.classList.contains('e-active')) {\n selectionLimit -= 1;\n }\n if (selectionLimit < this.maximumSelectionLength) {\n this.updateListSelection(listElement, event);\n }\n }\n } else {\n if (listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\n this.updateListSelection(listElement, event);\n }\n }\n }\n listElement = listElement.nextElementSibling;\n if (listElement == null) {\n break;\n }\n }\n if (target.classList.contains('e-list-group-item')) {\n var focusedElement = this.list.getElementsByClassName('e-item-focus')[0];\n if (focusedElement) {\n focusedElement.classList.remove('e-item-focus');\n }\n if (state) {\n target.classList.add('e-active');\n } else {\n target.classList.remove('e-active');\n }\n target.classList.add('e-item-focus');\n this.updateAriaActiveDescendant();\n }\n this.textboxValueUpdate();\n this.checkPlaceholderSize();\n if (!this.changeOnBlur && event) {\n this.updateValueState(event, this.value, this.tempValues);\n }\n } else {\n this.updateValue(event, li, state);\n }\n } else {\n this.updateValue(event, li, state);\n }\n this.addValidInputClass();\n };\n MultiSelect.prototype.virtualSelectionAll = function (state, li, event) {\n var _this = this;\n var index = 0;\n var length = li.length;\n var count = this.maximumSelectionLength;\n if (state) {\n this.virtualSelectAll = true;\n length = this.virtualSelectAllData && this.virtualSelectAllData.length !== 0 ? this.virtualSelectAllData.length : length;\n this.listData = this.virtualSelectAllData;\n var ulElement = this.createListItems(this.virtualSelectAllData.slice(0, 30), this.fields);\n var firstItems = ulElement.querySelectorAll('li');\n var fragment_1 = document.createDocumentFragment();\n firstItems.forEach(function (node) {\n fragment_1.appendChild(node.cloneNode(true));\n });\n li.forEach(function (node) {\n fragment_1.appendChild(node.cloneNode(true));\n });\n var concatenatedNodeList = fragment_1.childNodes;\n if (this.virtualSelectAllData instanceof Array) {\n while (index < length && index <= 50 && index < count) {\n this.isSelectAllTarget = length === index + 1;\n if (concatenatedNodeList[index]) {\n var value = this.allowObjectBinding ? this.getDataByValue(concatenatedNodeList[index].getAttribute('data-value')) : this.getFormattedValue(concatenatedNodeList[index].getAttribute('data-value'));\n if (!this.allowObjectBinding && this.value && this.value.indexOf(value) >= 0 || this.allowObjectBinding && this.indexOfObjectInArray(value, this.value) >= 0) {\n index++;\n continue;\n }\n this.updateListSelection(concatenatedNodeList[index], event, length - index);\n } else {\n var value = getValue(this.fields.value ? this.fields.value : '', this.virtualSelectAllData[index]);\n value = this.allowObjectBinding ? this.getDataByValue(value) : value;\n if (!this.allowObjectBinding && this.value && this.value.indexOf(value) >= 0 || this.allowObjectBinding && this.indexOfObjectInArray(value, this.value) >= 0) {\n index++;\n continue;\n }\n if (this.value && value != null && Array.isArray(this.value) && (!this.allowObjectBinding && this.value.indexOf(value) < 0 || this.allowObjectBinding && !this.isObjectInArray(value, this.value))) {\n this.dispatchSelect(value, event, null, false, length);\n }\n }\n index++;\n }\n if (length > 50) {\n setTimeout(function () {\n if (_this.virtualSelectAllData && _this.virtualSelectAllData.length > 0) {\n _this.virtualSelectAllData.map(function (obj) {\n if (_this.value && obj[_this.fields.value] != null && Array.isArray(_this.value) && (!_this.allowObjectBinding && _this.value.indexOf(obj[_this.fields.value]) < 0 || _this.allowObjectBinding && !_this.isObjectInArray(obj[_this.fields.value], _this.value))) {\n var value = obj[_this.fields.value];\n var text = obj[_this.fields.text].toString();\n _this.dispatchSelect(value, event, null, false, length, obj, text);\n }\n });\n }\n _this.updatedataValueItems(event);\n _this.isSelectAllLoop = false;\n if (!_this.changeOnBlur) {\n _this.updateValueState(event, _this.value, _this.tempValues);\n _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;\n }\n _this.updateHiddenElement(true);\n if (_this.popupWrapper && li[index - 1] && li[index - 1].classList.contains('e-item-focus')) {\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n li[index - 1].classList.remove('e-item-focus');\n }\n }\n }, 0);\n }\n }\n } else {\n if (this.virtualSelectAllData && this.virtualSelectAllData.length > 0) {\n this.virtualSelectAllData.map(function (obj) {\n _this.virtualSelectAll = true;\n _this.removeValue(_this.value[index], event, _this.value.length - index);\n });\n }\n this.updatedataValueItems(event);\n if (!this.changeOnBlur) {\n this.updateValueState(event, this.value, this.tempValues);\n this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;\n }\n this.updateHiddenElement();\n this.setProperties({\n value: []\n }, true);\n this.virtualSelectAll = false;\n if (!isNullOrUndefined(this.viewPortInfo.startIndex) && !isNullOrUndefined(this.viewPortInfo.endIndex)) {\n this.notify('setCurrentViewDataAsync', {\n component: this.getModuleName(),\n module: 'VirtualScroll'\n });\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var virtualTrackElement = this.list.getElementsByClassName('e-virtual-ddl')[0];\n if (virtualTrackElement) {\n virtualTrackElement.style = this.GetVirtualTrackHeight();\n }\n this.UpdateSkeleton();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var virtualContentElement = this.list.getElementsByClassName('e-virtual-ddl-content')[0];\n if (virtualContentElement) {\n virtualContentElement.style = this.getTransformValues();\n }\n };\n MultiSelect.prototype.updateValue = function (event, li, state) {\n var _this = this;\n var length = li.length;\n var beforeSelectArgs = {\n event: event,\n items: state ? li : [],\n itemData: state ? this.listData : [],\n isInteracted: event ? true : false,\n isChecked: state,\n preventSelectEvent: false\n };\n this.trigger('beforeSelectAll', beforeSelectArgs);\n if (li && li.length || this.enableVirtualization && !state) {\n var index_1 = 0;\n var count_1 = 0;\n if (this.enableGroupCheckBox) {\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : li.length;\n } else {\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : this.maximumSelectionLength;\n }\n if (!beforeSelectArgs.preventSelectEvent) {\n if (this.enableVirtualization) {\n this.virtualSelectAllState = state;\n this.virtualSelectAll = true;\n this.CurrentEvent = event;\n if (!this.virtualSelectAllData) {\n this.resetList(this.dataSource, this.fields, new Query());\n }\n if (this.virtualSelectAllData) {\n this.virtualSelectionAll(state, li, event);\n }\n } else {\n while (index_1 < length && index_1 <= 50 && index_1 < count_1) {\n this.isSelectAllTarget = length === index_1 + 1;\n this.updateListSelection(li[index_1], event, length - index_1);\n if (this.enableGroupCheckBox) {\n this.findGroupStart(li[index_1]);\n }\n index_1++;\n }\n if (length > 50) {\n setTimeout(function () {\n while (index_1 < length && index_1 < count_1) {\n _this.isSelectAllTarget = length === index_1 + 1;\n _this.updateListSelection(li[index_1], event, length - index_1);\n if (_this.enableGroupCheckBox) {\n _this.findGroupStart(li[index_1]);\n }\n index_1++;\n }\n _this.updatedataValueItems(event);\n if (!_this.changeOnBlur) {\n _this.updateValueState(event, _this.value, _this.tempValues);\n _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;\n }\n _this.updateHiddenElement();\n if (_this.popupWrapper && li[index_1 - 1].classList.contains('e-item-focus')) {\n var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];\n if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {\n li[index_1 - 1].classList.remove('e-item-focus');\n }\n }\n }, 0);\n }\n }\n } else {\n for (var i = 0; i < li.length && i < count_1; i++) {\n this.removeHover();\n var customVal = li[i].getAttribute('data-value');\n var value = this.getFormattedValue(customVal);\n value = this.allowObjectBinding ? this.getDataByValue(value) : value;\n var mainElement = this.mainList ? this.mainList.querySelectorAll(state ? 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' : 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)')[i] : null;\n if (state) {\n this.value = !this.value ? [] : this.value;\n if (!this.allowObjectBinding && this.value.indexOf(value) < 0 || this.allowObjectBinding && !this.isObjectInArray(value, this.value)) {\n this.setProperties({\n value: [].concat([], this.value, [value])\n }, true);\n }\n this.removeFocus();\n this.addListSelection(li[i], mainElement);\n this.updateChipStatus();\n this.checkMaxSelection();\n } else {\n this.removeAllItems(value, event, false, li[i], mainElement);\n }\n if (this.enableGroupCheckBox) {\n this.findGroupStart(li[i]);\n }\n }\n if (!state) {\n var limit = this.value && this.value.length ? this.value.length : 0;\n if (limit < this.maximumSelectionLength) {\n var collection = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-active)');\n removeClass(collection, 'e-disable');\n }\n }\n var args = {\n event: event,\n items: state ? li : [],\n itemData: state ? this.listData : [],\n isInteracted: event ? true : false,\n isChecked: state\n };\n this.trigger('selectedAll', args);\n }\n }\n this.updatedataValueItems(event);\n this.checkPlaceholderSize();\n if (length <= 50 && !beforeSelectArgs.preventSelectEvent) {\n if (!this.changeOnBlur) {\n this.updateValueState(event, this.value, this.tempValues);\n this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;\n }\n if (this.enableVirtualization && this.value && this.value.length > 0 || !this.enableVirtualization) {\n this.updateHiddenElement();\n }\n }\n };\n MultiSelect.prototype.updateHiddenElement = function (isVirtualSelectAll) {\n var _this = this;\n var hiddenValue = '';\n var wrapperText = '';\n var data = '';\n var text = [];\n if (this.mode === 'CheckBox') {\n this.value.map(function (value, index) {\n hiddenValue += '';\n if (!isVirtualSelectAll) {\n if (_this.listData) {\n data = _this.getTextByValue(value);\n } else {\n data = value;\n }\n wrapperText += data + _this.delimiterChar + ' ';\n text.push(data);\n }\n });\n this.hiddenElement.innerHTML = hiddenValue;\n if (!isVirtualSelectAll) {\n this.updateWrapperText(this.delimiterWrapper, wrapperText);\n this.setProperties({\n text: text.toString()\n }, true);\n }\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\n this.refreshInputHight();\n this.refreshPlaceHolder();\n }\n };\n MultiSelect.prototype.updatedataValueItems = function (event) {\n this.deselectHeader();\n this.textboxValueUpdate(event);\n };\n MultiSelect.prototype.textboxValueUpdate = function (event) {\n var isRemoveAll = event && event.target && (closest(event.target, '.e-selectall-parent') || closest(event.target, '.e-close-hooker'));\n if (this.mode !== 'Box' && !this.isPopupOpen() && !(this.mode === 'CheckBox' && (this.isSelectAll || isRemoveAll))) {\n this.updateDelimView();\n } else {\n this.searchWrapper.classList.remove(ZERO_SIZE);\n }\n if (this.mode === 'CheckBox') {\n this.updateDelimView();\n if (!(isRemoveAll || this.isSelectAll) && this.isSelectAllTarget || this.isSelectAll && this.isSelectAllTarget) {\n this.updateDelimeter(this.delimiterChar, event);\n }\n this.refreshInputHight();\n } else {\n this.updateDelimeter(this.delimiterChar, event);\n }\n this.refreshPlaceHolder();\n };\n MultiSelect.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({\n 'zIndex': this.zIndex\n });\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n MultiSelect.prototype.updateDataSource = function (prop) {\n if (isNullOrUndefined(this.list)) {\n this.renderPopup();\n } else {\n this.resetList(this.dataSource);\n }\n if (this.value && this.value.length) {\n this.setProperties({\n 'value': this.value\n });\n this.refreshSelection();\n }\n };\n MultiSelect.prototype.onLoadSelect = function () {\n this.setDynValue = true;\n this.renderPopup();\n };\n MultiSelect.prototype.selectAllItems = function (state, event) {\n var _this = this;\n if (isNullOrUndefined(this.list)) {\n this.selectAllAction = function () {\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\n var args = {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n value: state ? 'check' : 'uncheck'\n };\n _this.notify('checkSelectAll', args);\n }\n _this.selectAllItem(state, event);\n _this.selectAllAction = null;\n };\n _super.prototype.render.call(this);\n } else {\n this.selectAllAction = null;\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n var args = {\n value: state ? 'check' : 'uncheck',\n enable: this.mode === 'CheckBox',\n module: 'CheckBoxSelection'\n };\n this.notify('checkSelectAll', args);\n }\n this.selectAllItem(state, event);\n }\n if (!(this.dataSource instanceof DataManager) || this.dataSource instanceof DataManager && this.virtualSelectAllData) {\n this.virtualSelectAll = false;\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n MultiSelect.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n /**\n * Dynamically change the value of properties.\n *\n * @param {MultiSelectModel} newProp - Returns the dynamic property value of the component.\n * @param {MultiSelectModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n MultiSelect.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) || newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\n if (this.resetFilteredData) {\n // The filtered data is not being reset in the component after the user focuses out.\n this.resetMainList = !this.resetMainList ? this.mainList : this.resetMainList;\n this.resetFilteredData = false;\n }\n this.mainList = null;\n this.mainData = null;\n this.isFirstClick = false;\n this.isDynamicDataChange = true;\n }\n if (this.getModuleName() === 'multiselect') {\n this.filterAction = false;\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'query':\n case 'dataSource':\n if (this.mode === 'CheckBox' && this.showSelectAll) {\n if (!isNullOrUndefined(this.popupObj)) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n }\n break;\n case 'htmlAttributes':\n this.updateHTMLAttribute();\n break;\n case 'showClearButton':\n this.updateClearButton(newProp.showClearButton);\n break;\n case 'text':\n if (this.fields.disabled) {\n this.text = this.text && !this.isDisabledItemByIndex(this.getIndexByValue(this.getValueByText(this.text))) ? this.text : null;\n }\n this.updateVal(this.value, this.value, 'text');\n break;\n case 'value':\n if (this.fields.disabled) {\n this.removeDisabledItemsValue(this.value);\n }\n this.updateVal(this.value, oldProp.value, 'value');\n this.addValidInputClass();\n if (!this.closePopupOnSelect && this.isPopupOpen()) {\n this.refreshPopup();\n }\n if (this.isPopupOpen() && this.mode === 'CheckBox' && this.list && this.list.querySelector('.e-active.e-disable')) {\n var activeItems = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + '.e-active' + '.e-disable');\n removeClass(activeItems, 'e-disable');\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n break;\n case 'width':\n this.setWidth(newProp.width);\n this.popupObj.setProperties({\n width: this.calcPopupWidth()\n });\n break;\n case 'placeholder':\n this.refreshPlaceHolder();\n break;\n case 'filterBarPlaceholder':\n if (this.allowFiltering) {\n this.notify('filterBarPlaceholder', {\n filterBarPlaceholder: newProp.filterBarPlaceholder\n });\n }\n break;\n case 'delimiterChar':\n if (this.mode !== 'Box') {\n this.updateDelimView();\n }\n this.updateData(newProp.delimiterChar);\n break;\n case 'cssClass':\n this.updateOldPropCssClass(oldProp.cssClass);\n this.updateCssClass();\n this.calculateWidth();\n break;\n case 'enableRtl':\n this.enableRTL(newProp.enableRtl);\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n break;\n case 'allowResize':\n this.allowResize = newProp.allowResize;\n if (!this.allowResize && this.popupObj) {\n var overAllHeight = parseInt(this.popupHeight, 10);\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.height = formatUnit(this.popupHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n } else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n }\n break;\n case 'readonly':\n this.updateReadonly(newProp.readonly);\n this.hidePopup();\n break;\n case 'enabled':\n this.hidePopup();\n this.enable(newProp.enabled);\n break;\n case 'showSelectAll':\n if (this.popupObj) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n break;\n case 'showDropDownIcon':\n this.dropDownIcon();\n break;\n case 'floatLabelType':\n this.setFloatLabelType();\n this.addValidInputClass();\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n break;\n case 'enableSelectionOrder':\n break;\n case 'selectAllText':\n this.notify('selectAllText', false);\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var overAllHeight = parseInt(this.popupHeight, 10);\n if (this.popupHeight !== 'auto') {\n this.list.style.maxHeight = formatUnit(overAllHeight);\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\n } else {\n this.list.style.maxHeight = formatUnit(this.popupHeight);\n }\n }\n break;\n case 'headerTemplate':\n case 'footerTemplate':\n this.reInitializePoup();\n break;\n case 'allowFiltering':\n if (this.mode === 'CheckBox' && this.popupObj) {\n this.reInitializePoup();\n }\n this.updateSelectElementData(this.allowFiltering);\n break;\n case 'fields':\n if (isNullOrUndefined(this.fields.groupBy)) {\n this.removeScrollEvent();\n }\n break;\n default:\n {\n var msProps = this.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this, msProps.newProperty, msProps.oldProperty);\n }\n break;\n }\n }\n };\n MultiSelect.prototype.reInitializePoup = function () {\n if (this.popupObj) {\n this.popupObj.destroy();\n this.popupObj = null;\n }\n this.renderPopup();\n };\n MultiSelect.prototype.totalItemsCount = function () {\n var dataSourceCount;\n if (this.dataSource instanceof DataManager) {\n if (this.remoteDataCount >= 0) {\n dataSourceCount = this.totalItemCount = this.dataCount = this.remoteDataCount;\n } else {\n this.resetList(this.dataSource);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSourceCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n }\n if (this.mode === 'CheckBox') {\n this.totalItemCount = dataSourceCount !== 0 ? dataSourceCount : this.totalItemCount;\n } else {\n if (this.hideSelectedItem) {\n this.totalItemCount = dataSourceCount !== 0 && this.value ? dataSourceCount - this.value.length : this.totalItemCount;\n if (this.allowCustomValue && this.virtualCustomSelectData && this.virtualCustomSelectData.length > 0) {\n for (var i = 0; i < this.virtualCustomSelectData.length; i++) {\n for (var j = 0; j < this.value.length; j++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[j]) : this.value[j];\n var customValue = getValue(this.fields.value ? this.fields.value : '', this.virtualCustomSelectData[i]);\n if (value === customValue) {\n this.totalItemCount += 1;\n }\n }\n }\n }\n } else {\n this.totalItemCount = dataSourceCount !== 0 ? dataSourceCount : this.totalItemCount;\n if (this.allowCustomValue && this.virtualCustomSelectData && this.virtualCustomSelectData.length > 0) {\n this.totalItemCount += this.virtualCustomSelectData.length;\n }\n }\n }\n };\n MultiSelect.prototype.presentItemValue = function (ulElement) {\n var valuecheck = [];\n for (var i = 0; i < this.value.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[i]) : this.value[i];\n var checkEle = this.findListElement(this.allowFiltering && !isNullOrUndefined(this.mainList) ? this.mainList : ulElement, 'li', 'data-value', value);\n if (!checkEle) {\n var checkvalue = this.allowObjectBinding ? this.getDataByValue(this.value[i]) : this.value[i];\n valuecheck.push(checkvalue);\n }\n }\n return valuecheck;\n };\n MultiSelect.prototype.addNonPresentItems = function (valuecheck, ulElement, list, event) {\n var _this = this;\n this.dataSource.executeQuery(this.getForQuery(valuecheck)).then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, list.length);\n }\n _this.updateActionList(ulElement, list, event);\n });\n };\n MultiSelect.prototype.updateVal = function (newProp, oldProp, prop) {\n if (!this.list) {\n this.onLoadSelect();\n } else if (this.dataSource instanceof DataManager && (!this.listData || !(this.mainList && this.mainData))) {\n this.onLoadSelect();\n } else {\n var valuecheck = [];\n if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {\n valuecheck = this.presentItemValue(this.ulElement);\n }\n if (prop === 'value' && valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value) && this.listData != null && !this.enableVirtualization) {\n this.mainData = null;\n this.setDynValue = true;\n this.addNonPresentItems(valuecheck, this.ulElement, this.listData);\n } else {\n if (prop === 'text') {\n this.initialTextUpdate();\n newProp = this.value;\n }\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\n this.tempValues = oldProp;\n }\n // eslint-disable-next-line\n if (this.allowCustomValue && (this.mode === 'Default' || this.mode === 'Box') && this.isReact && this.inputFocus && this.isPopupOpen() && this.mainData !== this.listData) {\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\n this.onActionComplete(list, this.mainData);\n }\n if (!this.enableVirtualization || this.enableVirtualization && !(this.dataSource instanceof DataManager)) {\n this.initialValueUpdate();\n }\n if (this.mode !== 'Box' && !this.inputFocus) {\n this.updateDelimView();\n }\n if (!this.inputFocus) {\n this.refreshInputHight();\n }\n this.refreshPlaceHolder();\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\n this.updateValueState(null, newProp, oldProp);\n }\n this.checkPlaceholderSize();\n }\n }\n if (!this.changeOnBlur) {\n this.updateValueState(null, newProp, oldProp);\n }\n };\n /**\n * Adds a new item to the multiselect popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiSelect.prototype.addItem = function (items, itemIndex) {\n _super.prototype.addItem.call(this, items, itemIndex);\n };\n /**\n * Hides the popup, if the popup in a open state.\n *\n * @param {MouseEvent | KeyboardEventArgs} e - Specifies the mouse event or keyboard event.\n * @returns {void}\n */\n MultiSelect.prototype.hidePopup = function (e) {\n var _this = this;\n var delay = 100;\n if (this.isPopupOpen()) {\n var animModel = {\n name: 'FadeOut',\n duration: 100,\n delay: delay ? delay : 0\n };\n this.customFilterQuery = null;\n var eventArgs = {\n popup: this.popupObj,\n cancel: false,\n animation: animModel,\n event: e || null\n };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (_this.fields.groupBy && _this.mode !== 'CheckBox' && _this.fixedHeaderElement) {\n remove(_this.fixedHeaderElement);\n _this.fixedHeaderElement = null;\n }\n _this.beforePopupOpen = false;\n _this.overAllWrapper.classList.remove(iconAnimation);\n var typedValue = _this.mode === 'CheckBox' ? _this.targetElement() : null;\n _this.popupObj.hide(new Animation(eventArgs.animation));\n attributes(_this.inputElement, {\n 'aria-expanded': 'false'\n });\n _this.inputElement.removeAttribute('aria-owns');\n _this.inputElement.removeAttribute('aria-activedescendant');\n if (_this.allowFiltering) {\n _this.notify('inputFocus', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox',\n value: 'clear'\n });\n }\n _this.popupObj.hide();\n removeClass([document.body, _this.popupObj.element], 'e-popup-full-page');\n EventHandler.remove(_this.list, 'keydown', _this.onKeyDown);\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\n EventHandler.remove(_this.popupObj.element, 'click', _this.clickHandler);\n }\n if (_this.list && _this.list.parentElement && _this.allowResize) {\n if (_this.resizer && _this.list.parentElement.contains(_this.resizer)) {\n _this.list.parentElement.removeChild(_this.resizer);\n }\n if (_this.list.parentElement.classList.contains('e-resize')) {\n _this.list.parentElement.classList.remove('e-resize');\n }\n _this.list.parentElement.style.boxSizing = '';\n _this.list.parentElement.style.paddingBottom = '';\n var overAllHeight = parseInt(_this.popupHeight, 10);\n _this.list.style.maxHeight = formatUnit(overAllHeight);\n _this.list.parentElement.style.height = formatUnit(_this.popupHeight);\n _this.list.parentElement.style.maxHeight = formatUnit(_this.popupHeight);\n }\n if (_this.resizer) {\n EventHandler.remove(_this.resizer, 'mousedown', _this.startResizing);\n _this.resizer.remove();\n }\n if (_this.enableVirtualization && _this.mode === 'CheckBox' && _this.value && _this.value.length > 0 && _this.enableSelectionOrder) {\n _this.viewPortInfo.startIndex = _this.virtualItemStartIndex = 0;\n _this.viewPortInfo.endIndex = _this.virtualItemEndIndex = _this.viewPortInfo.startIndex > 0 ? _this.viewPortInfo.endIndex : _this.itemCount;\n _this.virtualListInfo = _this.viewPortInfo;\n _this.previousStartIndex = 0;\n _this.previousEndIndex = 0;\n }\n var dataSourceCount = void 0;\n if (_this.dataSource instanceof DataManager) {\n if (_this.remoteDataCount >= 0) {\n _this.totalItemCount = _this.dataCount = _this.remoteDataCount;\n } else {\n _this.resetList(_this.dataSource);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSourceCount = _this.dataSource && _this.dataSource.length ? _this.dataSource.length : 0;\n }\n if (_this.enableVirtualization && (_this.allowFiltering || _this.allowCustomValue) && (_this.targetElement() || typedValue) && _this.totalItemCount !== dataSourceCount) {\n _this.checkAndResetCache();\n _this.updateInitialData();\n }\n if (_this.virtualCustomData && _this.viewPortInfo && _this.viewPortInfo.startIndex === 0 && _this.viewPortInfo.endIndex === _this.itemCount) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.renderItems(_this.mainData, _this.fields);\n }\n _this.virtualCustomData = null;\n _this.isVirtualTrackHeight = false;\n }\n });\n }\n };\n /**\n * Shows the popup, if the popup in a closed state.\n *\n * @param {MouseEvent | KeyboardEventArgs} e - Specifies the mouse event or keyboard event.\n * @returns {void}\n */\n MultiSelect.prototype.showPopup = function (e) {\n var _this = this;\n if (!this.enabled) {\n return;\n }\n this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;\n var args = {\n cancel: false\n };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n if (!_this.ulElement) {\n _this.beforePopupOpen = true;\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering && _this.isDeviceFullScreen) {\n _this.notify('popupFullScreen', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox'\n });\n }\n _super.prototype.render.call(_this, e);\n return;\n }\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering && _this.isDeviceFullScreen) {\n _this.notify('popupFullScreen', {\n module: 'CheckBoxSelection',\n enable: _this.mode === 'CheckBox'\n });\n }\n var mainLiLength = _this.ulElement.querySelectorAll('li.' + 'e-list-item').length;\n var liLength = _this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + '.' + HIDE_LIST).length;\n if (mainLiLength > 0 && mainLiLength === liLength && liLength === _this.mainData.length && !(_this.targetElement() !== '' && _this.allowCustomValue)) {\n _this.beforePopupOpen = false;\n return;\n }\n _this.onPopupShown(e);\n if (_this.enableVirtualization && _this.listData && _this.listData.length) {\n if (!isNullOrUndefined(_this.value) && (_this.getModuleName() === 'dropdownlist' || _this.getModuleName() === 'combobox')) {\n _this.removeHover();\n }\n if (!_this.beforePopupOpen) {\n if (_this.hideSelectedItem && _this.value && Array.isArray(_this.value) && _this.value.length > 0) {\n _this.totalItemsCount();\n }\n if (!_this.preventSetCurrentData && !isNullOrUndefined(_this.viewPortInfo.startIndex) && !isNullOrUndefined(_this.viewPortInfo.endIndex)) {\n _this.notify('setCurrentViewDataAsync', {\n component: _this.getModuleName(),\n module: 'VirtualScroll'\n });\n }\n }\n }\n if (_this.enableVirtualization && !_this.allowFiltering && _this.selectedValueInfo != null && _this.selectedValueInfo.startIndex > 0 && _this.value != null) {\n _this.notify('dataProcessAsync', {\n module: 'VirtualScroll',\n isOpen: true\n });\n }\n if (_this.enableVirtualization) {\n _this.updatevirtualizationList();\n } else {\n if (_this.value && _this.value.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var element = void 0;\n var listItems = _this.getItems();\n for (var _i = 0, _a = _this.value; _i < _a.length; _i++) {\n var value = _a[_i];\n var checkValue = _this.allowObjectBinding ? getValue(_this.fields.value ? _this.fields.value : '', value) : value;\n element = _this.getElementByValue(checkValue);\n if (element) {\n _this.addListSelection(element);\n }\n }\n }\n }\n if (_this.allowResize) {\n _this.setResize();\n }\n _this.preventSetCurrentData = true;\n }\n });\n };\n /**\n * Based on the state parameter, entire list item will be selected/deselected.\n * parameter\n * `true` - Selects entire list items.\n * `false` - Un Selects entire list items.\n *\n * @param {boolean} state - if it’s true then Selects the entire list items. If it’s false the Unselects entire list items.\n * @returns {void}\n */\n MultiSelect.prototype.selectAll = function (state) {\n this.isSelectAll = true;\n this.selectAllItems(state);\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n MultiSelect.prototype.getModuleName = function () {\n return 'multiselect';\n };\n /**\n * Allows you to clear the selected values from the Multiselect component.\n *\n * @returns {void}\n */\n MultiSelect.prototype.clear = function () {\n var _this = this;\n this.selectAll(false);\n if (this.value && this.value.length) {\n setTimeout(function () {\n _this.setProperties({\n value: null\n }, true);\n }, 0);\n } else {\n this.setProperties({\n value: null\n }, true);\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n MultiSelect.prototype.render = function () {\n if (!isNullOrUndefined(this.value) && this.value.length > 0) {\n // eslint-disable-next-line\n this.value = this.value.slice();\n }\n this.setDynValue = this.initStatus = false;\n this.isSelectAll = false;\n this.selectAllEventEle = [];\n this.searchWrapper = this.createElement('span', {\n className: SEARCHBOX_WRAPPER + ' ' + (this.mode === 'Box' ? BOX_ELEMENT : '')\n });\n this.viewWrapper = this.createElement('span', {\n className: DELIMITER_VIEW + ' ' + DELIMITER_WRAPPER,\n styles: 'display:none;'\n });\n this.overAllClear = this.createElement('span', {\n className: CLOSEICON_CLASS,\n styles: 'display:none;'\n });\n this.componentWrapper = this.createElement('div', {\n className: ELEMENT_WRAPPER\n });\n this.overAllWrapper = this.createElement('div', {\n className: OVER_ALL_WRAPPER\n });\n if (this.mode === 'CheckBox') {\n addClass([this.overAllWrapper], 'e-checkbox');\n }\n if (Browser.isDevice) {\n this.componentWrapper.classList.add(ELEMENT_MOBILE_WRAPPER);\n }\n this.setWidth(this.width);\n this.overAllWrapper.appendChild(this.componentWrapper);\n this.popupWrapper = this.createElement('div', {\n id: this.element.id + '_popup',\n className: POPUP_WRAPPER\n });\n this.popupWrapper.setAttribute('aria-label', this.element.id);\n this.popupWrapper.setAttribute('role', 'dialog');\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\n this.delimiterWrapper = this.createElement('span', {\n className: DELIMITER_WRAPPER,\n styles: 'display:none'\n });\n this.componentWrapper.appendChild(this.delimiterWrapper);\n } else {\n this.chipCollectionWrapper = this.createElement('span', {\n className: CHIP_WRAPPER,\n styles: 'display:none'\n });\n if (this.mode === 'Default') {\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_default'));\n } else if (this.mode === 'Box') {\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_box'));\n }\n this.componentWrapper.appendChild(this.chipCollectionWrapper);\n }\n if (this.mode !== 'Box') {\n this.componentWrapper.appendChild(this.viewWrapper);\n }\n this.componentWrapper.appendChild(this.searchWrapper);\n if (this.showClearButton && !Browser.isDevice) {\n this.componentWrapper.appendChild(this.overAllClear);\n } else {\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\n }\n this.dropDownIcon();\n this.inputElement = this.createElement('input', {\n className: INPUT_ELEMENT,\n attrs: {\n spellcheck: 'false',\n type: 'text',\n autocomplete: 'off',\n tabindex: '0',\n role: 'combobox'\n }\n });\n if (this.mode === 'Default' || this.mode === 'Box') {\n this.inputElement.setAttribute('aria-describedby', this.chipCollectionWrapper.id);\n }\n if (!isNullOrUndefined(this.inputElement)) {\n attributes(this.inputElement, {\n 'aria-expanded': 'false'\n });\n if (!this.inputElement.hasAttribute('aria-label')) {\n this.inputElement.setAttribute('aria-label', this.getModuleName());\n }\n }\n if (this.element.tagName !== this.getNgDirective()) {\n this.element.style.display = 'none';\n }\n if (this.element.tagName === this.getNgDirective()) {\n this.element.appendChild(this.overAllWrapper);\n this.searchWrapper.appendChild(this.inputElement);\n } else {\n this.element.parentElement.insertBefore(this.overAllWrapper, this.element);\n this.searchWrapper.appendChild(this.inputElement);\n this.searchWrapper.appendChild(this.element);\n this.element.removeAttribute('tabindex');\n }\n if (this.floatLabelType !== 'Never') {\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n } else if (this.floatLabelType === 'Never') {\n this.refreshPlaceHolder();\n }\n this.addValidInputClass();\n this.element.style.opacity = '';\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\n this.element.id = id;\n this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'class': HIDDEN_ELEMENT,\n 'tabindex': '-1',\n 'multiple': ''\n }\n });\n this.componentWrapper.appendChild(this.hiddenElement);\n this.validationAttribute(this.element, this.hiddenElement);\n if (this.mode !== 'CheckBox') {\n this.hideOverAllClear();\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.wireEvent();\n this.enable(this.enabled);\n this.enableRTL(this.enableRtl);\n if (this.enableVirtualization) {\n this.updateVirtualizationProperties(this.itemCount, this.allowFiltering, this.mode === 'CheckBox');\n }\n this.listItemHeight = this.getListHeight();\n this.getSkeletonCount();\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.viewPortInfo.startIndex > 0 ? this.viewPortInfo.endIndex : this.itemCount;\n this.checkInitialValue();\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n Input.createSpanElement(this.overAllWrapper, this.createElement);\n this.calculateWidth();\n if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {\n this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.renderComplete();\n };\n MultiSelect.prototype.setResize = function () {\n var resizePaddingBottom = 16;\n if (this.list && this.list.parentElement && isNullOrUndefined(this.list.parentElement.querySelector('.e-resizer-right.e-icons'))) {\n this.resizer = this.createElement('div', {\n id: this.element.id + '_resize-popup',\n className: RESIZE_ICON\n });\n }\n if (this.mode === 'CheckBox' && this.showSelectAll && this.selectAllHeight && this.selectAllHeight !== 0) {\n this.storedSelectAllHeight = this.selectAllHeight;\n }\n if (this.list && this.list.parentElement) {\n this.list.parentElement.classList.add('e-resize');\n if (this.popupHeight.toString().toLowerCase() !== 'auto') {\n this.list.parentElement.style.height = '100%';\n }\n this.list.parentElement.style.boxSizing = 'border-box'; // Ensures padding doesn't affect element size\n var paddingBottom = this.mode === 'CheckBox' && this.searchBoxHeight ? this.searchBoxHeight + resizePaddingBottom + (this.showSelectAll ? this.storedSelectAllHeight : 0) : resizePaddingBottom;\n this.list.parentElement.style.paddingBottom = paddingBottom + \"px\";\n this.list.parentElement.appendChild(this.resizer);\n this.list.parentElement.style.width = this.resizeWidth + 'px';\n this.list.parentElement.style.height = this.resizeHeight + 'px';\n this.list.parentElement.style.maxHeight = this.resizeHeight + 'px';\n this.list.style.maxHeight = this.resizeHeight + \"px\";\n }\n if (this.resizer) {\n EventHandler.add(this.resizer, 'mousedown', this.startResizing, this);\n EventHandler.add(this.resizer, 'touchstart', this.startResizing, this);\n }\n };\n MultiSelect.prototype.startResizing = function (event) {\n this.isResizing = true;\n this.trigger('resizeStart', event);\n // Get initial touch or mouse coordinates\n var clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;\n var clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;\n if (this.list && this.list.parentElement) {\n this.originalWidth = this.list.parentElement.offsetWidth;\n this.originalHeight = this.list.parentElement.offsetHeight;\n this.originalMouseX = clientX;\n this.originalMouseY = clientY;\n }\n this.resizingWireEvent();\n // Prevent default behavior like text selection\n if (event) {\n event.preventDefault();\n }\n };\n MultiSelect.prototype.resizePopup = function (event) {\n if (!this.isResizing) {\n return;\n }\n this.trigger('resizing', event);\n // Get the current touch or mouse position\n var clientX = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;\n var clientY = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;\n // Calculate the new width and height based on drag\n var dx = clientX - this.originalMouseX;\n var dy = clientY - this.originalMouseY;\n // Set minimum width and height (100px)\n var minWidth = 100;\n var minHeight = 130;\n // Ensure the new width and height are not smaller than the minimum\n this.resizeWidth = Math.max(this.originalWidth + dx, minWidth);\n this.resizeHeight = Math.max(this.originalHeight + dy, minHeight);\n if (this.list && this.list.parentElement) {\n // Set minimum width and height (100px)\n var minWidth_1 = parseInt(window.getComputedStyle(this.list.parentElement).minWidth, 10);\n var minHeight_1 = parseInt(window.getComputedStyle(this.list.parentElement).minHeight, 10);\n minWidth_1 = minWidth_1 || 100;\n minHeight_1 = minHeight_1 || 120;\n // Ensure the new width and height are not smaller than the minimum\n this.resizeWidth = Math.max(this.originalWidth + dx, minWidth_1);\n this.resizeHeight = Math.max(this.originalHeight + dy, minHeight_1);\n this.list.parentElement.style.width = this.resizeWidth + \"px\";\n this.list.parentElement.style.height = this.resizeHeight + \"px\";\n this.list.parentElement.style.maxHeight = this.resizeHeight + \"px\";\n this.list.style.maxHeight = this.resizeHeight + \"px\";\n if (this.fixedHeaderElement && this.ulElement) {\n this.fixedHeaderElement.style.width = this.ulElement.offsetWidth + \"px\";\n }\n }\n if (event) {\n event.preventDefault();\n }\n };\n MultiSelect.prototype.stopResizing = function (event) {\n if (this.isResizing) {\n this.isResizing = false;\n this.trigger('resizeStop', event);\n this.resizingUnWireEvent();\n }\n if (event) {\n event.preventDefault();\n }\n };\n MultiSelect.prototype.getListHeight = function () {\n var listParent = this.createElement('div', {\n className: 'e-dropdownbase'\n });\n var item = this.createElement('li', {\n className: 'e-list-item'\n });\n var listParentHeight = formatUnit(this.popupHeight);\n listParent.style.height = parseInt(listParentHeight, 10).toString() + 'px';\n listParent.appendChild(item);\n document.body.appendChild(listParent);\n this.virtualListHeight = listParent.getBoundingClientRect().height;\n var listItemHeight = Math.ceil(item.getBoundingClientRect().height) + parseInt(window.getComputedStyle(item).marginBottom, 10);\n listParent.remove();\n return listItemHeight;\n };\n /**\n * Removes disabled values from the given array.\n *\n * @param { number[] | string[] | boolean[] | object[] } value - The array to check.\n * @returns {void}\n */\n MultiSelect.prototype.removeDisabledItemsValue = function (value) {\n if (value) {\n var data = [];\n var dataIndex = 0;\n for (var index = 0; index < value.length; index++) {\n var indexValue = value[index];\n if (typeof indexValue === 'object') {\n indexValue = JSON.parse(JSON.stringify(indexValue))[this.fields.value];\n }\n if (indexValue != null && !this.isDisabledItemByIndex(this.getIndexByValue(indexValue))) {\n data[dataIndex++] = value[index];\n }\n }\n this.value = data.length > 0 ? data : null;\n }\n };\n MultiSelect.prototype.checkInitialValue = function () {\n var _this = this;\n if (this.fields.disabled) {\n this.removeDisabledItemsValue(this.value);\n }\n var isData = this.dataSource instanceof Array ? this.dataSource.length > 0 : !isNullOrUndefined(this.dataSource);\n if (!(this.value && this.value.length) && isNullOrUndefined(this.text) && !isData && this.element.tagName === 'SELECT' && this.element.options.length > 0) {\n var optionsElement = this.element.options;\n var valueCol = [];\n var textCol = '';\n for (var index = 0, optionsLen = optionsElement.length; index < optionsLen; index++) {\n var opt = optionsElement[index];\n if (!isNullOrUndefined(opt.getAttribute('selected'))) {\n if (opt.getAttribute('value')) {\n var value = this.allowObjectBinding ? this.getDataByValue(opt.getAttribute('value')) : opt.getAttribute('value');\n valueCol.push(value);\n } else {\n textCol += opt.text + this.delimiterChar;\n }\n }\n }\n if (valueCol.length > 0) {\n this.setProperties({\n value: valueCol\n }, true);\n } else if (textCol !== '') {\n this.setProperties({\n text: textCol\n }, true);\n }\n if (valueCol.length > 0 || textCol !== '') {\n this.refreshInputHight();\n this.refreshPlaceHolder();\n }\n }\n if (this.value && this.value.length || !isNullOrUndefined(this.text)) {\n if (!this.list) {\n _super.prototype.render.call(this);\n }\n }\n if (this.fields.disabled) {\n this.text = this.text && !this.isDisabledItemByIndex(this.getIndexByValue(this.getValueByText(this.text))) ? this.text : null;\n }\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\n this.initialTextUpdate();\n }\n if (this.value && this.value.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var listItems_2;\n if (this.enableVirtualization) {\n var fields = !this.isPrimitiveData ? this.fields.value : '';\n var predicate = void 0;\n for (var i = 0; i < this.value.length; i++) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value[i]) : this.value[i];\n if (i === 0) {\n predicate = new Predicate(fields, 'equal', value);\n } else {\n predicate = predicate.or(fields, 'equal', value);\n }\n }\n if (this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query().where(predicate)).then(function (e) {\n if (e.result.length > 0) {\n listItems_2 = e.result;\n _this.initStatus = false;\n setTimeout(function () {\n _this.initialValueUpdate(listItems_2, true);\n _this.initialUpdate();\n }, 100);\n _this.initStatus = true;\n }\n });\n } else {\n listItems_2 = new DataManager(this.dataSource).executeLocal(new Query().where(predicate));\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.initialValueUpdate(listItems_2, true);\n this.initialUpdate();\n } else {\n this.setInitialValue = function () {\n _this.initStatus = false;\n if (!_this.enableVirtualization || _this.enableVirtualization && !(_this.dataSource instanceof DataManager)) {\n _this.initialValueUpdate(listItems_2);\n }\n _this.initialUpdate();\n _this.setInitialValue = null;\n _this.initStatus = true;\n };\n }\n this.updateTempValue();\n } else {\n this.initialUpdate();\n }\n this.initStatus = true;\n this.checkAutoFocus();\n if (!isNullOrUndefined(this.text)) {\n this.element.setAttribute('data-initial-value', this.text);\n }\n };\n MultiSelect.prototype.checkAutoFocus = function () {\n if (this.element.hasAttribute('autofocus')) {\n this.inputElement.focus();\n }\n };\n MultiSelect.prototype.updatevirtualizationList = function () {\n if (this.value && this.value.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var element = void 0;\n for (var _i = 0, _a = this.value; _i < _a.length; _i++) {\n var value = _a[_i];\n var checkValue = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', value) : value;\n element = this.getElementByValue(checkValue);\n if (element) {\n this.addListSelection(element);\n }\n }\n if (this.enableVirtualization && this.hideSelectedItem) {\n var visibleListElements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)' + ':not(.e-virtual-list)');\n if (visibleListElements.length) {\n var actualCount = this.virtualListHeight > 0 ? Math.floor(this.virtualListHeight / this.listItemHeight) : 0;\n if (visibleListElements.length < actualCount + 2) {\n var query = this.getForQuery(this.value).clone();\n query = query.skip(this.viewPortInfo.startIndex);\n this.resetList(this.dataSource, this.fields, query);\n }\n }\n }\n }\n };\n MultiSelect.prototype.setFloatLabelType = function () {\n removeFloating(this.overAllWrapper, this.componentWrapper, this.searchWrapper, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n if (this.floatLabelType !== 'Never') {\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\n }\n };\n MultiSelect.prototype.addValidInputClass = function () {\n if (!isNullOrUndefined(this.overAllWrapper)) {\n if (!isNullOrUndefined(this.value) && this.value.length || this.floatLabelType === 'Always') {\n addClass([this.overAllWrapper], 'e-valid-input');\n } else {\n removeClass([this.overAllWrapper], 'e-valid-input');\n }\n }\n };\n MultiSelect.prototype.dropDownIcon = function () {\n if (this.showDropDownIcon) {\n this.dropIcon = this.createElement('span', {\n className: dropdownIcon\n });\n this.componentWrapper.appendChild(this.dropIcon);\n addClass([this.componentWrapper], ['e-down-icon']);\n } else {\n if (!isNullOrUndefined(this.dropIcon)) {\n this.dropIcon.parentElement.removeChild(this.dropIcon);\n removeClass([this.componentWrapper], ['e-down-icon']);\n }\n }\n };\n MultiSelect.prototype.initialUpdate = function () {\n if (this.mode !== 'Box' && !(this.setDynValue && this.mode === 'Default' && this.inputFocus)) {\n this.updateDelimView();\n }\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.itemCount;\n this.updateCssClass();\n this.updateHTMLAttribute();\n this.updateReadonly(this.readonly);\n this.refreshInputHight();\n this.checkPlaceholderSize();\n };\n /**\n * Method to disable specific item in the popup.\n *\n * @param {string | number | object | HTMLLIElement} item - Specifies the item to be disabled.\n * @returns {void}\n * @deprecated\n */\n MultiSelect.prototype.disableItem = function (item) {\n if (this.fields.disabled) {\n if (!this.list) {\n this.renderList();\n }\n var itemIndex = -1;\n if (this.liCollections && this.liCollections.length > 0 && this.listData && this.fields.disabled) {\n if (typeof item === 'string') {\n itemIndex = this.getIndexByValue(item);\n } else if (typeof item === 'object') {\n if (item instanceof HTMLLIElement) {\n for (var index = 0; index < this.liCollections.length; index++) {\n if (this.liCollections[index] === item) {\n itemIndex = this.getIndexByValue(item.getAttribute('data-value'));\n break;\n }\n }\n } else {\n var value = JSON.parse(JSON.stringify(item))[this.fields.value];\n for (var index = 0; index < this.listData.length; index++) {\n if (JSON.parse(JSON.stringify(this.listData[index]))[this.fields.value] === value) {\n itemIndex = this.getIndexByValue(value);\n break;\n }\n }\n }\n } else {\n itemIndex = item;\n }\n var isValidIndex = itemIndex < this.liCollections.length && itemIndex > -1;\n if (isValidIndex && !JSON.parse(JSON.stringify(this.listData[itemIndex]))[this.fields.disabled]) {\n var li = this.liCollections[itemIndex];\n if (li) {\n this.disableListItem(li);\n var parsedData = JSON.parse(JSON.stringify(this.listData[itemIndex]));\n parsedData[this.fields.disabled] = true;\n this.listData[itemIndex] = parsedData;\n if (li.classList.contains(dropDownBaseClasses.focus)) {\n this.removeFocus();\n }\n if (li.classList.contains(HIDE_LIST) || li.classList.contains(dropDownBaseClasses.selected)) {\n var oldValue = this.value;\n this.removeDisabledItemsValue(this.value);\n this.updateVal(this.value, oldValue, 'value');\n }\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\n this.disableGroupHeader();\n }\n }\n }\n }\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n MultiSelect.prototype.destroy = function () {\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n if (!isNullOrUndefined(this.popupObj)) {\n this.popupObj.hide();\n this.popupObj.destroy();\n }\n this.notify(destroy, {});\n this.unwireListEvents();\n this.unWireEvent();\n var temp = ['readonly', 'aria-disabled', 'placeholder', 'aria-label', 'aria-expanded'];\n var length = temp.length;\n if (!isNullOrUndefined(this.inputElement)) {\n while (length > 0) {\n this.inputElement.removeAttribute(temp[length - 1]);\n length--;\n }\n }\n if (!isNullOrUndefined(this.element)) {\n this.element.removeAttribute('data-initial-value');\n this.element.style.display = 'block';\n }\n if (this.overAllWrapper && this.overAllWrapper.parentElement) {\n if (this.overAllWrapper.parentElement.tagName === this.getNgDirective()) {\n remove(this.overAllWrapper);\n } else {\n this.overAllWrapper.parentElement.insertBefore(this.element, this.overAllWrapper);\n remove(this.overAllWrapper);\n }\n }\n if (this.popupWrapper && this.popupWrapper.parentElement) {\n this.popupWrapper.parentElement.remove();\n }\n while (this.searchWrapper && this.searchWrapper.firstChild) {\n this.searchWrapper.removeChild(this.searchWrapper.firstChild);\n }\n if (this.searchWrapper && this.searchWrapper.parentElement) {\n this.searchWrapper.parentElement.remove();\n }\n if (this.viewWrapper && this.viewWrapper.parentElement) {\n this.viewWrapper.parentElement.remove();\n }\n if (this.overAllClear && this.overAllClear.parentElement) {\n this.overAllClear.parentElement.remove();\n }\n if (this.delimiterWrapper && this.delimiterWrapper.parentElement) {\n this.delimiterWrapper.parentElement.remove();\n }\n // Remove the select element if it exists\n var selectElement = this.overAllWrapper.querySelector('select.e-multi-hidden');\n if (selectElement && selectElement.parentElement) {\n selectElement.parentElement.remove();\n }\n while (this.componentWrapper && this.componentWrapper.firstChild) {\n this.componentWrapper.removeChild(this.componentWrapper.firstChild);\n }\n if (this.componentWrapper && this.componentWrapper.parentElement) {\n this.componentWrapper.removeAttribute('class');\n this.componentWrapper.parentElement.remove();\n }\n while (this.popupWrapper && this.popupWrapper.firstChild) {\n this.popupWrapper.removeChild(this.popupWrapper.firstChild);\n }\n if (this.inputElement) {\n var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby', 'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-label', 'aria-hidden', 'tabindex', 'aria-controls', 'aria-describedby', 'size', 'role', 'type', 'class'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputElement.removeAttribute(attrArray[i]);\n }\n }\n if (this.inputElement) {\n this.inputElement.remove();\n }\n this.list = null;\n this.popupObj = null;\n this.mainData = null;\n this.filterParent = null;\n this.ulElement = null;\n this.componentWrapper = null;\n this.overAllClear = null;\n this.overAllWrapper = null;\n this.hiddenElement = null;\n this.searchWrapper = null;\n this.viewWrapper = null;\n this.chipCollectionWrapper = null;\n this.targetInputElement = null;\n this.popupWrapper = null;\n this.inputElement = null;\n this.delimiterWrapper = null;\n this.liCollections = null;\n this.popupContentElement = null;\n this.header = null;\n this.mainList = null;\n this.mainListCollection = null;\n this.footer = null;\n this.selectAllEventEle = null;\n _super.prototype.destroy.call(this);\n };\n __decorate([Complex({\n text: null,\n value: null,\n iconCss: null,\n groupBy: null,\n disabled: null\n }, FieldSettings)], MultiSelect.prototype, \"fields\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"enablePersistence\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"groupTemplate\", void 0);\n __decorate([Property('No records found')], MultiSelect.prototype, \"noRecordsTemplate\", void 0);\n __decorate([Property('Request failed')], MultiSelect.prototype, \"actionFailureTemplate\", void 0);\n __decorate([Property('None')], MultiSelect.prototype, \"sortOrder\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"enabled\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"enableVirtualization\", void 0);\n __decorate([Property([])], MultiSelect.prototype, \"dataSource\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"query\", void 0);\n __decorate([Property('StartsWith')], MultiSelect.prototype, \"filterType\", void 0);\n __decorate([Property(1000)], MultiSelect.prototype, \"zIndex\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"ignoreAccent\", void 0);\n __decorate([Property()], MultiSelect.prototype, \"locale\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"enableGroupCheckBox\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"cssClass\", void 0);\n __decorate([Property('100%')], MultiSelect.prototype, \"width\", void 0);\n __decorate([Property('300px')], MultiSelect.prototype, \"popupHeight\", void 0);\n __decorate([Property('100%')], MultiSelect.prototype, \"popupWidth\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"placeholder\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([Property({})], MultiSelect.prototype, \"htmlAttributes\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"valueTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"headerTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"footerTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"itemTemplate\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"allowFiltering\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"isDeviceFullScreen\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"changeOnBlur\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"allowCustomValue\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"showClearButton\", void 0);\n __decorate([Property(1000)], MultiSelect.prototype, \"maximumSelectionLength\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"readonly\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"allowResize\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"text\", void 0);\n __decorate([Property(null)], MultiSelect.prototype, \"value\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"allowObjectBinding\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"hideSelectedItem\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"closePopupOnSelect\", void 0);\n __decorate([Property('Default')], MultiSelect.prototype, \"mode\", void 0);\n __decorate([Property(',')], MultiSelect.prototype, \"delimiterChar\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"ignoreCase\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"showDropDownIcon\", void 0);\n __decorate([Property('Never')], MultiSelect.prototype, \"floatLabelType\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"showSelectAll\", void 0);\n __decorate([Property('Select All')], MultiSelect.prototype, \"selectAllText\", void 0);\n __decorate([Property('Unselect All')], MultiSelect.prototype, \"unSelectAllText\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"enableSelectionOrder\", void 0);\n __decorate([Property(true)], MultiSelect.prototype, \"openOnClick\", void 0);\n __decorate([Property(false)], MultiSelect.prototype, \"addTagOnBlur\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"change\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"removing\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"removed\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"beforeSelectAll\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"selectedAll\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"beforeOpen\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"open\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"close\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"blur\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"focus\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"chipSelection\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"resizeStop\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"resizing\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"resizeStart\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"filtering\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"tagging\", void 0);\n __decorate([Event()], MultiSelect.prototype, \"customValueSelection\", void 0);\n MultiSelect = __decorate([NotifyPropertyChanges], MultiSelect);\n return MultiSelect;\n}(DropDownBase);\nexport { MultiSelect };"],"sourceRoot":""}