{"version":3,"sources":["webpack:///../node_modules/@syncfusion/ej2-dropdowns/src/drop-down-list/drop-down-list.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","dropDownListClasses","root","hover","selected","rtl","li","disable","disabled","base","focus","content","input","inputFocus","icon","iconAnimation","value","device","backIcon","filterBarClearIcon","filterInput","resizeIcon","filterParent","mobileFilter","footer","header","clearIcon","clearIconHide","popupFullScreen","disableIcon","hiddenElement","virtualList","inputObject","container","buttons","DropDownList","_super","options","element","_this","call","isListSearched","preventChange","isTouched","isFocused","autoFill","isUpdateHeaderHeight","isUpdateFooterHeight","preRender","valueTempElement","style","opacity","initializeData","activeIndex","index","queryString","isPopupOpen","isDocumentClick","isInteracted","isFilterFocus","beforePopupOpen","initial","initialRemoteRender","isNotSearchList","isTyped","isSelected","preventFocus","preventAutoFill","isValidKey","typedString","isEscapeKey","isPreventBlur","isTabKey","actionCompleteData","isUpdated","actionData","prevSelectPoints","isSelectCustom","isDropDownClick","preventAltUp","isCustomFilter","isSecondClick","previousValue","keyConfigure","tab","enter","escape","end","home","down","up","pageUp","pageDown","open","close","hide","space","viewPortInfo","currentPageNumber","direction","sentinelInfo","offsets","startIndex","endIndex","itemCount","setZIndex","popupObj","setProperties","zIndex","requiredModules","modules","enableVirtualization","push","args","member","renderList","e","isEmptyData","render","dataSource","totalItemCount","isFiltering","getModuleName","UpdateSkeleton","liCollections","list","querySelectorAll","ulElement","querySelector","unWireListEvents","wireListEvents","floatLabelChange","floatLabelType","floatElement","inputWrapper","inputElement","resetHandler","preventDefault","clearAll","scrollTop","virtualListInfo","previousStartIndex","previousEndIndex","resetFocusElement","removeHover","removeSelection","removeFocus","fields","skeletonCount","classList","add","properties","previousItemData","itemData","isActive","resetSelection","dataItem","getItemData","allowObjectBinding","isObjectInArray","allowCustom","getDataByValue","checkAndResetCache","updateInitialData","onChangeEvent","allowFiltering","onActionComplete","cloneNode","selectedLI","resetList","innerHTML","text","item","display","setSelection","updateIconState","cloneElements","setHTMLAttributes","keys","htmlAttributes","_i","_a","htmlAttr","updatedClassValue","replace","trim","split","enabled","setEnable","setAttribute","readonly","defaultAttr","indexOf","setPlaceholder","dataBind","removeAttribute","getAriaAttributes","id","setEnableRtl","enableRtl","parentElement","setEnabled","targetElement","tabIndex","hidePopup","getPersistData","addOnPersist","getLocaleName","preventTabIndex","getNgDirective","getElementByText","getElementByValue","getValueByText","listItems_1","getItems","liItem","getFormattedValue","getAttribute","initValue","virtualItemStartIndex","virtualItemEndIndex","updateValues","isDisableItemValue","objectValue","JSON","parse","stringify","isDisabledItemByIndex","getIndexByValue","selectedValueInfo","setHiddenValue","setValue","showClearButton","onBlurHandler","relatedTarget","currentTarget","isFilterLayout","document","body","contains","activeElement","focusOutAction","isRequested","focusOut","onFocusOut","dispatchEvent","tagName","clearButton","trigger","onFocus","event","resizingWireEvent","resizePopup","stopResizing","resizingUnWireEvent","remove","resetValueHandler","formElement","val","wireEvent","dropDownClick","focusIn","onSearch","window","windowResize","bindCommonEvent","isDevice","keyboardModule","keyAction","mobileKeyActionHandler","bind","keyConfigs","eventName","keyActionHandler","bindClearEvent","refreshPosition","unBindCommonEvent","destroy","onMouseClick","onMouseOver","onMouseLeave","charCode","undefined","searchKeyEvent","onServerIncrementalSearch","incrementalSearch","startResizing","isResizing","clientX","MouseEvent","touches","clientY","originalWidth","offsetWidth","originalHeight","offsetHeight","originalMouseX","originalMouseY","dx","dy","minWidth","parseInt","getComputedStyle","minHeight","resizeWidth","Math","max","resizeHeight","width","height","maxHeight","fixedHeaderElement","keyboardEvent","isValidLI","isDisabledElement","history","back","closePopup","currentLi","setHover","hoveredItem","hasAttribute","updateIncrementalItemIndex","incrementalStartIndex","incrementalEndIndex","updatingincrementalindex","queryStringUpdated","getElementsByClassName","currentValue","textContent","incrementalQueryString","String","fromCharCode","incrementalPreQueryString","toLocaleLowerCase","updateIncrementalInfo","updateIncrementalView","incrementalLiCollections","toString","getTransformValues","setScrollPosition","groupBy","selectedLiOffsetTop","offsetTop","enableLiCollections","hideSpinner","spinnerElement","showSpinner","filterInputObj","createElement","isPreventKeyAction","preventAction","action","preventHomeEnd","isNavigation","isEditTextBox","isTabAction","type","keyCode","updateUpDownAction","pageUpSelection","getPageCount","pageDownSelection","isMouseScrollAction","updateHomeEndAction","showPopup","focusDropDown","selectCurrentItem","selectCurrentValueOnTab","isVirtualKeyAction","filterIndex","itemIndex","focusEle","isSelectFocusItem","virtualIndex","nextItem","updateVirtualItemIndex","query","selectedData","handleVirtualKeyboardActions","pageCount","focusAtFirstElement","getIndexByValueFilter","findLi","steps","previousItem","validIndex","PageUpDownSelection","unWireEvent","checkSelector","onDocumentClick","isIE","info","name","activeStateChange","which","button","proxy_1","duration","itemTemplate","setTimeout","updateSelectedItem","preventSelect","isSelection","selectEventCallback","setSelectOptions","items","detachChanges","eventArgs","cancel","checkFieldValue","focusedItem","activeItem","valueTemplate","setValueTemplate","previousSibling","clearElement","removeProperty","isObjectCustomValue","getItem","isPrimitiveData","virtualGroupDataSource","executeLocal","where","previousSelectedLI","dropdownCompiler","dropdownTemplate","checkTemplate","exception","isReact","clearTemplate","className","insertBefore","valuecheck","valueCompTemp","valueTemplateId","isStringTemplate","renderReactTemplates","selectedItems","dataValue","dataText","eve","isCustomValue","datas","foundIndex","findIndex","data","detachChangeEvent","defineProperties","enumerable","preItems","isAngular","selectedElement","option","appendChild","onFilterUp","ctrlKey","firstItem","searchLists","getInitialData","getFilteringSkeletonCount","onFilterDown","getSelectionPoints","removeFillSelection","selection","setSelectionRange","getQuery","filterQuery","clone","filterType","dataType","typeOfData","typeof","ignoreCase","ignoreAccent","customFilterQuery","takeValue","getTakeValue","alreadySkipAdded","queryElements","queries","fn","queryTakeValue","querySkipValue","nos","splice","skip","isIncrementalRequest","take","requiresCount","start","abs","selectionStart","selectionEnd","visibility","isDataFetched","isRequesting","eventArgs_1","preventDefaultAction","updateData","filteringAction","baseEventArgs","filter","isNoData","noData","isPreventScrollAction","popupContentElement","styles","virualElement","GetVirtualTrackHeight","focusIndexItem","setSearchBox","popupElement","attrs","parentNode","isDeviceFullScreen","createInput","placeholder","filterBarPlaceholder","cssClass","clearIconElement","clearText","searchKeyModule","onInput","pasteHandler","onActionFailure","renderPopup","round","outerHeight","listItemHeight","count","updateActionCompleteDataValues","preventPopupOpen","tempItemCount","selectedItem","updateSelectElementData","checkField_1","value_1","fieldValue_1","checkVal","some","x","executeQuery","then","result","addItem","setInputValue","isDynamicData","isValueInList","addNewItem","getSkeletonCount","findListElement","valueToFind","isArray","fieldValue","checkField","forEach","listData","newElement","value_2","updateActionCompleteData","actionCompleteDataUpdate","childNodes","updateSelection","updateSelectionList","findEle","highlightedItem","refreshPopup","popupEle","searchBox","listContainerHeight","popupHeight","headerTemplate","setHeaderTemplate","footerTemplate","setFooterTemplate","top","listitems","ceil","getBoundingClientRect","marginBottom","virtualItemCount","searchBoxHeight","offsetValue","left","getOffsetValue","isEmptyList","textIndent","paddingLeft","borderLeftWidth","createPopup","getFocusElement","checkCollision","popupWidth","outerWidth","collision","X","Y","position","setSearchBoxPosition","backIconElement","clickOnBackIcon","scrollParentElements_1","getScrollableParent","scrollHandler","selectedElementID","notify","module","component","enable","scrollBottom","inputParent","popup","animation","destroyPopup","show","popupHeightValue","listHeight","allowResize","resizer","toLowerCase","paddingBottom","marginTop","resolveCollision","popupStyles","borderTop","borderTopWidth","borderBottom","borderBottomWidth","setPopupPosition","setWidth","targetType","relateTo","offsetY","offsetX","actionList","targetExitViewport","isElementInViewport","elementRect","bottom","innerHeight","right","innerWidth","border","popupOffset","lastItem","liHeight","parseFloat","isInitial","isInitialSelection","selectedListMargin","isNaN","isUpwardScrolling","virtualListCount","lastElementValue","currentOffset","nextBottom","nextOffset","isScrollerCHanged","paddingTop","boxRange","currentElementValue","liCount","isKeyBoardAction","isVirtualScrolling","IsScrollerAtEnd","scrollHeight","scrollStop","firstElementValue","isPageUpKeyAction","scrollTo","clientHeight","isPopupButton","dataCount","setEleWidth","match","delay","isFilterValue","isVirtualTrackHeight","scrollableParentElements_1","dataSourceCount","animModel","fixedHeader","removeChild","rippleFun","currentData","selectData","renderItems","remoteDataCount","preselectedIndex","role","updatedCssClassValues","validationAttribute","setReadOnly","setFields","calculateWidth","updateDataAttribute","getListHeight","updateVirtualizationProperties","selectElement","selectedIndex","onselect","stopImmediatePropagation","onchange","floatLabelElement","renderComplete","listParent","listParentHeight","virtualListHeight","footercheck","footerCompTemp","footerTemplateId","headercheck","headerCompTemp","headerTemplateId","contentEle","setOldText","setOldValue","checkData","newProp","isChangeValue","isChangeText","updateDataSource","props","oldProps","isGroupChecking","setFloatingHeader","checkCustomValue","updateInputFields","onPropertyChanged","oldProp","setUpdateInitial","_loop_1","prop","this_1","setReadonly","setCssClass","checkValidLi","setSelectionData","listLength_1","listLength_2","value_3","removeFloating","addFloating","setClearButton","ddlProps","getPropObject","newProperty","oldProperty","state_1","updateListValues","updatePopupState","newClass","oldClass","isAddNewItemTemplate","invokeRenderPopup","isOpen","proxy","proxy_2","onpopstate","pushState","children","renderHightSearch","isSelectVal","blur","disableItem","HTMLLIElement","disableListItem","parsedData","clear","attrArray"],"mappings":"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","file":"d9483c7f-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 { EventHandler, Property, Event, compile, KeyboardEvents, append, select } from '@syncfusion/ej2-base';\nimport { attributes, isNullOrUndefined, getUniqueID, formatUnit, isUndefined, getValue } from '@syncfusion/ej2-base';\nimport { Animation, Browser, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, closest, prepend, detach, classList } from '@syncfusion/ej2-base';\nimport { Popup, isCollide, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { incrementalSearch, resetIncrementalSearchValues } from '../common/incremental-search';\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\n// don't use space in classnames\nexport var dropDownListClasses = {\n root: 'e-dropdownlist',\n hover: dropDownBaseClasses.hover,\n selected: dropDownBaseClasses.selected,\n rtl: dropDownBaseClasses.rtl,\n li: dropDownBaseClasses.li,\n disable: dropDownBaseClasses.disabled,\n base: dropDownBaseClasses.root,\n focus: dropDownBaseClasses.focus,\n content: dropDownBaseClasses.content,\n input: 'e-input-group',\n inputFocus: 'e-input-focus',\n icon: 'e-input-group-icon e-ddl-icon',\n iconAnimation: 'e-icon-anim',\n value: 'e-input-value',\n device: 'e-ddl-device',\n backIcon: 'e-input-group-icon e-back-icon e-icons',\n filterBarClearIcon: 'e-input-group-icon e-clear-icon e-icons',\n filterInput: 'e-input-filter',\n resizeIcon: 'e-resizer-right e-icons',\n filterParent: 'e-filter-parent',\n mobileFilter: 'e-ddl-device-filter',\n footer: 'e-ddl-footer',\n header: 'e-ddl-header',\n clearIcon: 'e-clear-icon',\n clearIconHide: 'e-clear-icon-hide',\n popupFullScreen: 'e-popup-full-page',\n disableIcon: 'e-ddl-disable-icon',\n hiddenElement: 'e-ddl-hidden',\n virtualList: 'e-list-item e-virtual-list'\n};\nvar inputObject = {\n container: null,\n buttons: []\n};\n/**\n * The DropDownList component contains a list of predefined values from which you can\n * choose a single value.\n * ```html\n * \n * ```\n * ```typescript\n * let dropDownListObj:DropDownList = new DropDownList();\n * dropDownListObj.appendTo(\"#list\");\n * ```\n */\nvar DropDownList = /** @class */function (_super) {\n __extends(DropDownList, _super);\n /**\n * * Constructor for creating the DropDownList component.\n *\n * @param {DropDownListModel} options - Specifies the DropDownList model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function DropDownList(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isListSearched = false;\n _this.preventChange = false;\n _this.isTouched = false;\n _this.isFocused = false;\n _this.autoFill = false;\n _this.isUpdateHeaderHeight = false;\n _this.isUpdateFooterHeight = false;\n return _this;\n }\n /**\n * Initialize the event handler.\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.preRender = function () {\n this.valueTempElement = null;\n this.element.style.opacity = '0';\n this.initializeData();\n _super.prototype.preRender.call(this);\n this.activeIndex = this.index;\n this.queryString = '';\n };\n DropDownList.prototype.initializeData = function () {\n this.isPopupOpen = false;\n this.isDocumentClick = false;\n this.isInteracted = false;\n this.isFilterFocus = false;\n this.beforePopupOpen = false;\n this.initial = true;\n this.initialRemoteRender = false;\n this.isNotSearchList = false;\n this.isTyped = false;\n this.isSelected = false;\n this.preventFocus = false;\n this.preventAutoFill = false;\n this.isValidKey = false;\n this.typedString = '';\n this.isEscapeKey = false;\n this.isPreventBlur = false;\n this.isTabKey = false;\n this.actionCompleteData = {\n isUpdated: false\n };\n this.actionData = {\n isUpdated: false\n };\n this.prevSelectPoints = {};\n this.isSelectCustom = false;\n this.isDropDownClick = false;\n this.preventAltUp = false;\n this.isCustomFilter = false;\n this.isSecondClick = false;\n this.previousValue = null;\n this.keyConfigure = {\n tab: 'tab',\n enter: '13',\n escape: '27',\n end: '35',\n home: '36',\n down: '40',\n up: '38',\n pageUp: '33',\n pageDown: '34',\n open: 'alt+40',\n close: 'shift+tab',\n hide: 'alt+38',\n space: '32'\n };\n this.viewPortInfo = {\n currentPageNumber: null,\n direction: null,\n sentinelInfo: {},\n offsets: {},\n startIndex: 0,\n endIndex: this.itemCount\n };\n };\n DropDownList.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({\n 'zIndex': this.zIndex\n });\n }\n };\n DropDownList.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableVirtualization) {\n modules.push({\n args: [this],\n member: 'VirtualScroll'\n });\n }\n return modules;\n };\n DropDownList.prototype.renderList = function (e, isEmptyData) {\n _super.prototype.render.call(this, e, isEmptyData);\n if (!(this.dataSource instanceof DataManager)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.totalItemCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n }\n if (this.enableVirtualization && this.isFiltering() && this.getModuleName() === 'combobox') {\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.ulElement = this.list.querySelector('ul');\n }\n this.unWireListEvents();\n this.wireListEvents();\n };\n DropDownList.prototype.floatLabelChange = function () {\n if (this.getModuleName() === 'dropdownlist' && this.floatLabelType === 'Auto') {\n var floatElement = this.inputWrapper.container.querySelector('.e-float-text');\n if (this.inputElement.value !== '' || this.isInteracted) {\n classList(floatElement, ['e-label-top'], ['e-label-bottom']);\n } else {\n classList(floatElement, ['e-label-bottom'], ['e-label-top']);\n }\n }\n };\n DropDownList.prototype.resetHandler = function (e) {\n e.preventDefault();\n this.clearAll(e);\n if (this.enableVirtualization) {\n this.list.scrollTop = 0;\n this.virtualListInfo = null;\n this.previousStartIndex = 0;\n this.previousEndIndex = 0;\n }\n };\n DropDownList.prototype.resetFocusElement = function () {\n this.removeHover();\n this.removeSelection();\n this.removeFocus();\n this.list.scrollTop = 0;\n if (this.getModuleName() !== 'autocomplete' && !isNullOrUndefined(this.ulElement)) {\n var li = this.fields.disabled ? this.ulElement.querySelector('.' + dropDownListClasses.li + ':not(.e-disabled)') : this.ulElement.querySelector('.' + dropDownListClasses.li);\n if (this.enableVirtualization) {\n li = this.liCollections[this.skeletonCount];\n }\n if (li) {\n li.classList.add(dropDownListClasses.focus);\n }\n }\n };\n DropDownList.prototype.clearAll = function (e, properties) {\n this.previousItemData = !isNullOrUndefined(this.itemData) ? this.itemData : null;\n if (isNullOrUndefined(properties) || !isNullOrUndefined(properties) && (isNullOrUndefined(properties.dataSource) || !(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)) {\n this.isActive = true;\n this.resetSelection(properties);\n }\n var dataItem = this.getItemData();\n if (!this.allowObjectBinding && this.previousValue === dataItem.value || this.allowObjectBinding && this.previousValue && this.isObjectInArray(this.previousValue, [this.allowCustom ? this.value ? this.value : dataItem : dataItem.value ? this.getDataByValue(dataItem.value) : dataItem])) {\n this.checkAndResetCache();\n if (this.enableVirtualization && this.list) {\n this.updateInitialData();\n }\n return;\n }\n this.onChangeEvent(e);\n this.checkAndResetCache();\n if (this.enableVirtualization) {\n this.updateInitialData();\n }\n };\n DropDownList.prototype.resetSelection = function (properties) {\n if (this.list) {\n if (!isNullOrUndefined(properties) && (isNullOrUndefined(properties.dataSource) || !(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)) {\n this.selectedLI = null;\n this.actionCompleteData.isUpdated = false;\n this.actionCompleteData.ulElement = null;\n this.actionCompleteData.list = null;\n this.resetList(properties.dataSource);\n } else {\n if (this.allowFiltering && this.getModuleName() !== 'autocomplete' && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list) && this.actionCompleteData.list.length > 0) {\n this.onActionComplete(this.actionCompleteData.ulElement.cloneNode(true), this.actionCompleteData.list);\n }\n this.resetFocusElement();\n }\n }\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n }\n if (!isNullOrUndefined(this.inputElement)) {\n this.inputElement.value = '';\n }\n this.value = null;\n this.itemData = null;\n this.text = null;\n this.index = null;\n this.activeIndex = null;\n this.item = null;\n this.queryString = '';\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n this.setSelection(null, null);\n this.isSelectCustom = false;\n this.updateIconState();\n this.cloneElements();\n };\n DropDownList.prototype.setHTMLAttributes = 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 if (htmlAttr === 'class') {\n var updatedClassValue = this.htmlAttributes[\"\" + htmlAttr].replace(/\\s+/g, ' ').trim();\n if (updatedClassValue !== '') {\n addClass([this.inputWrapper.container], updatedClassValue.split(' '));\n }\n } else if (htmlAttr === 'disabled' && this.htmlAttributes[\"\" + htmlAttr] === 'disabled') {\n this.enabled = false;\n this.setEnable();\n } else if (htmlAttr === 'readonly' && !isNullOrUndefined(this.htmlAttributes[\"\" + htmlAttr])) {\n this.readonly = true;\n this.dataBind();\n } else if (htmlAttr === 'style') {\n this.inputWrapper.container.setAttribute('style', this.htmlAttributes[\"\" + htmlAttr]);\n } else if (htmlAttr === 'aria-label') {\n if ((this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') && !this.readonly) {\n this.inputElement.setAttribute('aria-label', this.htmlAttributes[\"\" + htmlAttr]);\n } else if (this.getModuleName() === 'dropdownlist') {\n this.inputWrapper.container.setAttribute('aria-label', this.htmlAttributes[\"\" + htmlAttr]);\n }\n } else {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n defaultAttr.push('tabindex');\n }\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n } else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(this.htmlAttributes[\"\" + htmlAttr], this.inputElement);\n } else {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n } else {\n this.inputWrapper.container.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputWrapper.container.removeAttribute('tabindex');\n }\n };\n DropDownList.prototype.getAriaAttributes = function () {\n return {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'aria-expanded': 'false',\n 'aria-live': 'polite',\n 'aria-labelledby': this.hiddenElement.id\n };\n };\n DropDownList.prototype.setEnableRtl = function () {\n Input.setEnableRtl(this.enableRtl, [this.inputElement.parentElement]);\n if (this.popupObj) {\n this.popupObj.enableRtl = this.enableRtl;\n this.popupObj.dataBind();\n }\n };\n DropDownList.prototype.setEnable = function () {\n Input.setEnabled(this.enabled, this.inputElement);\n if (this.enabled) {\n removeClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n if (this.inputWrapper && this.inputWrapper.container) {\n this.inputWrapper.container.setAttribute('aria-disabled', 'false');\n this.inputWrapper.container.removeAttribute('disabled');\n }\n } else {\n this.hidePopup();\n addClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.targetElement().tabIndex = -1;\n if (this.inputWrapper && this.inputWrapper.container) {\n this.inputWrapper.container.setAttribute('aria-disabled', 'true');\n this.inputWrapper.container.setAttribute('disabled', '');\n }\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 DropDownList.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n DropDownList.prototype.getLocaleName = function () {\n return 'drop-down-list';\n };\n DropDownList.prototype.preventTabIndex = function (element) {\n if (this.getModuleName() === 'dropdownlist') {\n element.tabIndex = -1;\n }\n };\n DropDownList.prototype.targetElement = function () {\n return !isNullOrUndefined(this.inputWrapper) ? this.inputWrapper.container : null;\n };\n DropDownList.prototype.getNgDirective = function () {\n return 'EJS-DROPDOWNLIST';\n };\n DropDownList.prototype.getElementByText = function (text) {\n return this.getElementByValue(this.getValueByText(text));\n };\n DropDownList.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 DropDownList.prototype.initValue = function () {\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.itemCount;\n this.renderList();\n if (this.dataSource instanceof DataManager) {\n this.initialRemoteRender = true;\n } else {\n this.updateValues();\n }\n };\n /**\n * Checks if the given value is disabled.\n *\n * @param { string | number | boolean | object } value - The value to check for disablement. Can be a string, number, boolean, or object.\n * @returns { boolean } A boolean indicating whether the value is disabled.\n */\n DropDownList.prototype.isDisableItemValue = function (value) {\n if (typeof value === 'object') {\n var objectValue = JSON.parse(JSON.stringify(value))[this.fields.value];\n return this.isDisabledItemByIndex(this.getIndexByValue(objectValue));\n }\n return this.isDisabledItemByIndex(this.getIndexByValue(value));\n };\n DropDownList.prototype.updateValues = function () {\n if (this.fields.disabled) {\n if (this.value != null) {\n this.value = !this.isDisableItemValue(this.value) ? this.value : null;\n }\n if (this.text != null) {\n this.text = !this.isDisabledItemByIndex(this.getIndexByValue(this.getValueByText(this.text))) ? this.text : null;\n }\n if (this.index != null) {\n this.index = !this.isDisabledItemByIndex(this.index) ? this.index : null;\n this.activeIndex = this.index;\n }\n }\n this.selectedValueInfo = this.viewPortInfo;\n if (!isNullOrUndefined(this.value)) {\n var value = this.allowObjectBinding && !isNullOrUndefined(this.value) ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n this.setSelection(this.getElementByValue(value), null);\n } else if (this.text && isNullOrUndefined(this.value)) {\n var element = this.getElementByText(this.text);\n if (isNullOrUndefined(element)) {\n this.setProperties({\n text: null\n });\n return;\n } else {\n this.setSelection(element, null);\n }\n } else {\n this.setSelection(this.liCollections[this.activeIndex], null);\n }\n this.setHiddenValue();\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n DropDownList.prototype.onBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n var target = e.relatedTarget;\n var currentTarget = e.target;\n var isPreventBlur = this.isPreventBlur;\n this.isPreventBlur = false;\n //IE 11 - issue\n if (isPreventBlur && !this.isDocumentClick && this.isPopupOpen && (!isNullOrUndefined(currentTarget) || !this.isFilterLayout() && isNullOrUndefined(target))) {\n if (this.getModuleName() === 'dropdownlist' && this.allowFiltering && this.isPopupOpen) {\n this.filterInput.focus();\n } else {\n this.targetElement().focus();\n }\n return;\n }\n if (this.isDocumentClick || !isNullOrUndefined(this.popupObj) && document.body.contains(this.popupObj.element) && this.popupObj.element.classList.contains(dropDownListClasses.mobileFilter)) {\n if (!this.beforePopupOpen) {\n this.isDocumentClick = false;\n }\n return;\n }\n if (this.getModuleName() === 'dropdownlist' && !this.isFilterFocus && target !== this.inputElement && (document.activeElement !== target || document.activeElement === target && currentTarget.classList.contains(dropDownListClasses.inputFocus)) || isNullOrUndefined(target) && this.getModuleName() === 'dropdownlist' && this.allowFiltering && currentTarget !== this.inputWrapper.container || this.getModuleName() !== 'dropdownlist' && !this.inputWrapper.container.contains(target) || this.isTabKey) {\n this.isDocumentClick = this.isPopupOpen ? true : false;\n this.focusOutAction(e);\n this.isTabKey = false;\n }\n if (this.isRequested && !this.isPopupOpen && !this.isPreventBlur) {\n this.isActive = false;\n this.beforePopupOpen = false;\n }\n this.isFocused = false;\n };\n DropDownList.prototype.focusOutAction = function (e) {\n this.isInteracted = false;\n this.focusOut(e);\n this.onFocusOut(e);\n };\n DropDownList.prototype.onFocusOut = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n this.floatLabelChange();\n this.dispatchEvent(this.hiddenElement, 'change');\n if (this.getModuleName() === 'dropdownlist' && this.element.tagName !== 'INPUT') {\n this.dispatchEvent(this.inputElement, 'blur');\n }\n if (this.inputWrapper.clearButton) {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n this.trigger('blur');\n };\n DropDownList.prototype.onFocus = function (e) {\n if (!this.isInteracted) {\n this.isInteracted = true;\n var args = {\n isInteracted: e ? true : false,\n event: e\n };\n this.trigger('focus', args);\n }\n this.updateIconState();\n this.isFocused = true;\n };\n DropDownList.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 DropDownList.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 DropDownList.prototype.resetValueHandler = function (e) {\n var formElement = closest(this.inputElement, 'form');\n if (formElement && e.target === formElement) {\n var val = this.element.tagName === this.getNgDirective() ? null : this.inputElement.getAttribute('value');\n this.text = val;\n }\n };\n DropDownList.prototype.wireEvent = function () {\n EventHandler.add(this.inputWrapper.container, 'mousedown', this.dropDownClick, this);\n EventHandler.add(this.inputWrapper.container, 'focus', this.focusIn, this);\n EventHandler.add(this.inputWrapper.container, 'keypress', this.onSearch, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.bindCommonEvent();\n };\n DropDownList.prototype.bindCommonEvent = function () {\n EventHandler.add(this.targetElement(), 'blur', this.onBlurHandler, this);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\n }\n if (!Browser.isDevice) {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n } else {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.mobileKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n this.bindClearEvent();\n };\n DropDownList.prototype.windowResize = function () {\n if (this.isPopupOpen) {\n this.popupObj.refreshPosition(this.inputWrapper.container);\n }\n };\n DropDownList.prototype.bindClearEvent = function () {\n if (this.showClearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\n }\n };\n DropDownList.prototype.unBindCommonEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper) && this.targetElement()) {\n EventHandler.remove(this.targetElement(), 'blur', this.onBlurHandler);\n }\n var formElement = this.inputElement && closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\n }\n if (!Browser.isDevice) {\n this.keyboardModule.destroy();\n }\n if (this.showClearButton) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown', this.resetHandler);\n }\n };\n DropDownList.prototype.updateIconState = function () {\n if (this.showClearButton) {\n if (this.inputElement.value !== '' && !this.readonly) {\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n } else {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n };\n /**\n * Event binding for list\n *\n * @returns {void}\n */\n DropDownList.prototype.wireListEvents = function () {\n if (!isNullOrUndefined(this.list)) {\n EventHandler.add(this.list, 'click', this.onMouseClick, this);\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\n }\n };\n DropDownList.prototype.onSearch = function (e) {\n if (e.charCode !== 32 && e.charCode !== 13) {\n if (this.list === undefined) {\n this.renderList();\n }\n this.searchKeyEvent = e;\n this.onServerIncrementalSearch(e);\n }\n };\n DropDownList.prototype.onServerIncrementalSearch = function (e) {\n if (!this.isRequested && !isNullOrUndefined(this.list) && !isNullOrUndefined(this.list.querySelector('li')) && this.enabled && !this.readonly) {\n this.incrementalSearch(e);\n }\n };\n DropDownList.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 // Store the initial dimensions of the popup\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 // Wire up events for resizing\n this.resizingWireEvent();\n if (event) {\n event.preventDefault(); // Prevent selection behavior if event exists\n }\n };\n DropDownList.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 if (this.list && this.list.parentElement) {\n // Minimum width and height (100px)\n var minWidth = parseInt(window.getComputedStyle(this.list.parentElement).minWidth, 10);\n var minHeight = parseInt(window.getComputedStyle(this.list.parentElement).minHeight, 10);\n minWidth = minWidth || 100;\n minHeight = minHeight || 120;\n // Ensure the new width and height are not less than the minimum\n this.resizeWidth = Math.max(this.originalWidth + dx, minWidth);\n this.resizeHeight = Math.max(this.originalHeight + dy, minHeight);\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(); // Prevent selection behavior if event exists\n }\n };\n DropDownList.prototype.stopResizing = function (event) {\n if (this.isResizing) {\n this.isResizing = false;\n this.trigger('resizeStop', event);\n // Unwire the resize event listeners\n this.resizingUnWireEvent();\n }\n if (event) {\n event.preventDefault(); // Prevent selection behavior if event exists\n }\n };\n DropDownList.prototype.onMouseClick = function (e) {\n var target = e.target;\n this.keyboardEvent = null;\n var li = closest(target, '.' + dropDownBaseClasses.li);\n if (!this.isValidLI(li) || this.isDisabledElement(li)) {\n return;\n }\n this.setSelection(li, e);\n if (Browser.isDevice && this.isFilterLayout()) {\n history.back();\n } else {\n var delay = 100;\n this.closePopup(delay, e);\n }\n };\n DropDownList.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n this.setHover(currentLi);\n };\n DropDownList.prototype.setHover = function (li) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.hover)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n };\n DropDownList.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n DropDownList.prototype.removeHover = function () {\n if (this.list) {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.hover);\n }\n }\n };\n DropDownList.prototype.isValidLI = function (li) {\n return li && li.hasAttribute('role') && li.getAttribute('role') === 'option';\n };\n DropDownList.prototype.updateIncrementalItemIndex = function (startIndex, endIndex) {\n this.incrementalStartIndex = startIndex;\n this.incrementalEndIndex = endIndex;\n };\n DropDownList.prototype.incrementalSearch = function (e) {\n if (this.liCollections.length > 0) {\n if (this.enableVirtualization) {\n var updatingincrementalindex = false;\n var queryStringUpdated = false;\n var activeElement = this.ulElement.getElementsByClassName('e-active')[0];\n var currentValue = activeElement ? activeElement.textContent : null;\n if (this.incrementalQueryString === '') {\n this.incrementalQueryString = String.fromCharCode(e.charCode);\n this.incrementalPreQueryString = this.incrementalQueryString;\n } else if (String.fromCharCode(e.charCode).toLocaleLowerCase() === this.incrementalPreQueryString.toLocaleLowerCase()) {\n queryStringUpdated = true;\n } else {\n this.incrementalQueryString = String.fromCharCode(e.charCode);\n }\n if (this.viewPortInfo.endIndex >= this.incrementalEndIndex && this.incrementalEndIndex <= this.totalItemCount || this.incrementalEndIndex === 0) {\n updatingincrementalindex = true;\n this.incrementalStartIndex = this.incrementalEndIndex;\n if (this.incrementalEndIndex === 0) {\n this.incrementalEndIndex = 100 > this.totalItemCount ? this.totalItemCount : 100;\n } else {\n this.incrementalEndIndex = this.incrementalEndIndex + 100 > this.totalItemCount ? this.totalItemCount : this.incrementalEndIndex + 100;\n }\n this.updateIncrementalInfo(this.incrementalStartIndex, this.incrementalEndIndex);\n updatingincrementalindex = true;\n }\n if (this.viewPortInfo.startIndex !== 0 || updatingincrementalindex) {\n this.updateIncrementalView(0, this.itemCount);\n }\n var li = incrementalSearch(e.charCode, this.incrementalLiCollections, this.activeIndex, true, this.element.id, queryStringUpdated, currentValue, true);\n while (isNullOrUndefined(li) && this.incrementalEndIndex < this.totalItemCount) {\n this.updateIncrementalItemIndex(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 li = incrementalSearch(e.charCode, this.incrementalLiCollections, 0, true, this.element.id, queryStringUpdated, currentValue, true, true);\n if (!isNullOrUndefined(li)) {\n break;\n }\n if (isNullOrUndefined(li) && this.incrementalEndIndex >= this.totalItemCount) {\n this.updateIncrementalItemIndex(0, 100 > this.totalItemCount ? this.totalItemCount : 100);\n break;\n }\n }\n if (isNullOrUndefined(li) && this.incrementalEndIndex >= this.totalItemCount) {\n this.updateIncrementalItemIndex(0, 100 > this.totalItemCount ? this.totalItemCount : 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 li = incrementalSearch(e.charCode, this.incrementalLiCollections, 0, true, this.element.id, queryStringUpdated, currentValue, true, true);\n }\n var index = li && this.getIndexByValue(li.getAttribute('data-value'));\n if (!index) {\n for (var i = 0; i < this.incrementalLiCollections.length; i++) {\n if (!isNullOrUndefined(li) && !isNullOrUndefined(li.getAttribute('data-value')) && this.incrementalLiCollections[i].getAttribute('data-value') === li.getAttribute('data-value').toString()) {\n index = i;\n index = this.incrementalStartIndex + index;\n break;\n }\n }\n } else {\n index = index - this.skeletonCount;\n }\n if (index) {\n if (!(this.viewPortInfo.startIndex >= index) || !(index >= this.viewPortInfo.endIndex)) {\n var startIndex = index - (this.itemCount / 2 - 2) > 0 ? index - (this.itemCount / 2 - 2) : 0;\n var endIndex = this.viewPortInfo.startIndex + this.itemCount > this.totalItemCount ? this.totalItemCount : this.viewPortInfo.startIndex + this.itemCount;\n this.updateIncrementalView(startIndex, endIndex);\n }\n }\n if (!isNullOrUndefined(li)) {\n var index_1 = this.getIndexByValue(li.getAttribute('data-value')) - this.skeletonCount;\n if (index_1 > 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 li = this.getElementByValue(li.getAttribute('data-value'));\n this.setSelection(li, e);\n this.setScrollPosition();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();\n if (this.enableVirtualization && !this.fields.groupBy) {\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? this.selectedLI.offsetTop + this.virtualListInfo.startIndex * this.selectedLI.offsetHeight : this.selectedLI.offsetTop;\n this.list.scrollTop = selectedLiOffsetTop - this.list.querySelectorAll('.e-virtual-list').length * this.selectedLI.offsetHeight;\n }\n this.incrementalPreQueryString = this.incrementalQueryString;\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 } else {\n var li = void 0;\n if (this.fields.disabled) {\n var enableLiCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li + ':not(.e-disabled)');\n li = incrementalSearch(e.charCode, enableLiCollections, this.activeIndex, true, this.element.id);\n } else {\n li = incrementalSearch(e.charCode, this.liCollections, this.activeIndex, true, this.element.id);\n }\n if (!isNullOrUndefined(li)) {\n this.setSelection(li, e);\n this.setScrollPosition();\n }\n }\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\n this.spinnerElement.innerHTML = '';\n this.spinnerElement = null;\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = Browser.isDevice && !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[1] || !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[0] || this.inputWrapper.buttons[0];\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n };\n DropDownList.prototype.keyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.keyboardEvent = e;\n if (this.isPreventKeyAction && this.enableVirtualization) {\n e.preventDefault();\n }\n var preventAction = e.action === 'pageUp' || e.action === 'pageDown';\n var preventHomeEnd = this.getModuleName() !== 'dropdownlist' && (e.action === 'home' || e.action === 'end');\n this.isEscapeKey = e.action === 'escape';\n this.isTabKey = !this.isPopupOpen && e.action === 'tab';\n var isNavigation = e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown' || e.action === 'home' || e.action === 'end';\n if ((this.isEditTextBox() || preventAction || preventHomeEnd) && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n var isTabAction = e.action === 'tab' || e.action === 'close';\n if (isNullOrUndefined(this.list) && !this.isRequested && !isTabAction && e.action !== 'escape') {\n this.searchKeyEvent = e;\n if (!this.enableVirtualization || this.enableVirtualization && this.getModuleName() !== 'autocomplete' && e.type !== 'mousedown' && (e.keyCode === 40 || e.keyCode === 38)) {\n this.renderList(e);\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.ulElement = this.list.querySelector('ul');\n }\n }\n if (isNullOrUndefined(this.list) || !isNullOrUndefined(this.liCollections) && isNavigation && this.liCollections.length === 0 || this.isRequested) {\n return;\n }\n if (isTabAction && this.getModuleName() !== 'autocomplete' && this.isPopupOpen || e.action === 'escape') {\n e.preventDefault();\n }\n this.isSelected = e.action === 'escape' ? false : this.isSelected;\n this.isTyped = isNavigation || e.action === 'escape' ? false : this.isTyped;\n switch (e.action) {\n case 'down':\n case 'up':\n this.updateUpDownAction(e);\n break;\n case 'pageUp':\n this.pageUpSelection(this.activeIndex - this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'pageDown':\n this.pageDownSelection(this.activeIndex + this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'home':\n this.isMouseScrollAction = true;\n this.updateHomeEndAction(e);\n break;\n case 'end':\n this.isMouseScrollAction = true;\n this.updateHomeEndAction(e);\n break;\n case 'space':\n if (this.getModuleName() === 'dropdownlist') {\n if (!this.beforePopupOpen) {\n this.showPopup();\n e.preventDefault();\n }\n }\n break;\n case 'open':\n this.showPopup(e);\n break;\n case 'hide':\n this.preventAltUp = this.isPopupOpen;\n this.hidePopup(e);\n this.focusDropDown(e);\n break;\n case 'enter':\n this.selectCurrentItem(e);\n break;\n case 'tab':\n this.selectCurrentValueOnTab(e);\n break;\n case 'escape':\n case 'close':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n break;\n }\n }\n };\n DropDownList.prototype.updateUpDownAction = function (e, isVirtualKeyAction) {\n if (this.fields.disabled && this.list && this.list.querySelectorAll('.e-list-item:not(.e-disabled)').length === 0) {\n return;\n }\n if (this.allowFiltering && !this.enableVirtualization && this.getModuleName() !== 'autocomplete') {\n var value = this.getItemData().value;\n if (isNullOrUndefined(value)) {\n value = 'null';\n }\n var filterIndex = this.getIndexByValue(value);\n if (!isNullOrUndefined(filterIndex)) {\n this.activeIndex = filterIndex;\n }\n }\n var focusEle = this.list.querySelector('.' + dropDownListClasses.focus);\n if (this.isSelectFocusItem(focusEle) && !isVirtualKeyAction) {\n this.setSelection(focusEle, e);\n if (this.enableVirtualization) {\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? this.selectedLI.offsetTop + this.virtualListInfo.startIndex * this.selectedLI.offsetHeight : this.selectedLI.offsetTop;\n if (this.fields.groupBy) {\n selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex === 0 ? this.selectedLI.offsetHeight - selectedLiOffsetTop : selectedLiOffsetTop - this.selectedLI.offsetHeight;\n }\n this.list.scrollTop = selectedLiOffsetTop - this.list.querySelectorAll('.e-virtual-list').length * this.selectedLI.offsetHeight;\n }\n } else if (!isNullOrUndefined(this.liCollections)) {\n var virtualIndex = this.activeIndex;\n var index = e.action === 'down' ? this.activeIndex + 1 : this.activeIndex - 1;\n index = isVirtualKeyAction ? virtualIndex : index;\n var startIndex = 0;\n if (this.getModuleName() === 'autocomplete') {\n startIndex = e.action === 'down' && isNullOrUndefined(this.activeIndex) ? 0 : this.liCollections.length - 1;\n index = index < 0 ? this.liCollections.length - 1 : index === this.liCollections.length ? 0 : index;\n }\n var nextItem = void 0;\n if (this.getModuleName() !== 'autocomplete' || this.getModuleName() === 'autocomplete' && this.isPopupOpen) {\n if (!this.enableVirtualization) {\n nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex] : this.liCollections[index];\n } else {\n if (!isVirtualKeyAction) {\n nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[this.skeletonCount] : this.liCollections[index];\n nextItem = !isNullOrUndefined(nextItem) && !nextItem.classList.contains('e-virtual-list') ? nextItem : null;\n } else {\n if (this.getModuleName() === 'autocomplete') {\n var value = this.getFormattedValue(this.selectedLI.getAttribute('data-value'));\n nextItem = this.getElementByValue(value);\n } else {\n nextItem = this.getElementByValue(this.getItemData().value);\n }\n }\n }\n }\n if (!isNullOrUndefined(nextItem)) {\n var focusAtFirstElement = this.liCollections[this.skeletonCount] && this.liCollections[this.skeletonCount].classList.contains('e-item-focus');\n this.setSelection(nextItem, e);\n if (focusAtFirstElement && this.enableVirtualization && this.getModuleName() === 'autocomplete' && !isVirtualKeyAction) {\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? this.selectedLI.offsetTop + this.virtualListInfo.startIndex * this.selectedLI.offsetHeight : this.selectedLI.offsetTop;\n selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex === 0 && this.fields.groupBy ? this.selectedLI.offsetHeight - selectedLiOffsetTop : selectedLiOffsetTop - this.selectedLI.offsetHeight;\n this.list.scrollTop = selectedLiOffsetTop - this.list.querySelectorAll('.e-virtual-list').length * this.selectedLI.offsetHeight;\n }\n } else if (this.enableVirtualization && !this.isPopupOpen && this.getModuleName() !== 'autocomplete' && (this.viewPortInfo.endIndex !== this.totalItemCount && e.action === 'down' || this.viewPortInfo.startIndex !== 0 && e.action === 'up')) {\n if (e.action === 'down') {\n this.viewPortInfo.startIndex = this.viewPortInfo.startIndex + this.itemCount < this.totalItemCount - this.itemCount ? this.viewPortInfo.startIndex + this.itemCount : this.totalItemCount - this.itemCount;\n this.viewPortInfo.endIndex = this.viewPortInfo.startIndex + this.itemCount;\n this.updateVirtualItemIndex();\n this.isCustomFilter = this.getModuleName() === 'combobox' ? true : this.isCustomFilter;\n this.resetList(this.dataSource, this.fields, this.query);\n this.isCustomFilter = this.getModuleName() === 'combobox' ? false : this.isCustomFilter;\n var value = this.liCollections[0].getAttribute('data-value') !== 'null' ? this.getFormattedValue(this.liCollections[0].getAttribute('data-value')) : null;\n var selectedData = this.getDataByValue(value);\n if (selectedData) {\n this.itemData = selectedData;\n }\n } else if (e.action === 'up') {\n this.viewPortInfo.startIndex = this.viewPortInfo.startIndex - this.itemCount > 0 ? this.viewPortInfo.startIndex - this.itemCount : 0;\n this.viewPortInfo.endIndex = this.viewPortInfo.startIndex + this.itemCount;\n this.updateVirtualItemIndex();\n this.isCustomFilter = this.getModuleName() === 'combobox' ? true : this.isCustomFilter;\n this.resetList(this.dataSource, this.fields, this.query);\n this.isCustomFilter = this.getModuleName() === 'combobox' ? false : this.isCustomFilter;\n var value = this.liCollections[this.liCollections.length - 1].getAttribute('data-value') !== 'null' ? this.getFormattedValue(this.liCollections[this.liCollections.length - 1].getAttribute('data-value')) : null;\n var selectedData = this.getDataByValue(value);\n if (selectedData) {\n this.itemData = selectedData;\n }\n }\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.ulElement = this.list.querySelector('ul');\n this.handleVirtualKeyboardActions(e, this.pageCount);\n }\n }\n if (this.allowFiltering && !this.enableVirtualization && this.getModuleName() !== 'autocomplete') {\n var value = this.getItemData().value;\n var filterIndex = this.getIndexByValueFilter(value, this.actionCompleteData.ulElement);\n if (!isNullOrUndefined(filterIndex)) {\n this.activeIndex = filterIndex;\n }\n }\n if (this.allowFiltering && this.getModuleName() === 'dropdownlist' && this.filterInput) {\n if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.filterInput, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n } else if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(this.filterInput, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id\n });\n }\n }\n var itemIndex;\n for (var index = 0; index < this.liCollections.length; index++) {\n if (this.liCollections[index].classList.contains(dropDownListClasses.focus) || this.liCollections[index].classList.contains(dropDownListClasses.selected)) {\n itemIndex = index;\n break;\n }\n }\n if (itemIndex != null && this.isDisabledElement(this.liCollections[itemIndex])) {\n if (this.getModuleName() !== 'autocomplete') {\n if (this.liCollections.length - 1 === itemIndex && e.action === 'down') {\n e.action = 'up';\n }\n if (itemIndex === 0 && e.action === 'up') {\n e.action = 'down';\n }\n }\n this.updateUpDownAction(e);\n }\n e.preventDefault();\n };\n DropDownList.prototype.updateHomeEndAction = function (e, isVirtualKeyAction) {\n if (this.getModuleName() === 'dropdownlist') {\n var findLi = 0;\n if (e.action === 'home') {\n findLi = 0;\n if (this.enableVirtualization && this.isPopupOpen) {\n findLi = this.skeletonCount;\n } else if (this.enableVirtualization && !this.isPopupOpen && 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.isPopupOpen && this.viewPortInfo.endIndex !== this.totalItemCount) {\n this.viewPortInfo.startIndex = this.totalItemCount - this.itemCount;\n this.viewPortInfo.endIndex = this.totalItemCount;\n this.updateVirtualItemIndex();\n this.resetList(this.dataSource, this.fields, this.query);\n }\n findLi = this.getItems().length - 1;\n }\n e.preventDefault();\n if (this.activeIndex === findLi) {\n if (isVirtualKeyAction) {\n this.setSelection(this.liCollections[findLi], e);\n }\n return;\n }\n if (!this.enableVirtualization && this.liCollections[findLi] && this.liCollections[findLi].classList.contains('e-disabled')) {\n return;\n }\n this.setSelection(this.liCollections[findLi], e);\n }\n };\n DropDownList.prototype.selectCurrentValueOnTab = function (e) {\n if (this.getModuleName() === 'autocomplete') {\n this.selectCurrentItem(e);\n } else {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n }\n };\n DropDownList.prototype.mobileKeyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.isEditTextBox() && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n if (this.list === undefined && !this.isRequested) {\n this.searchKeyEvent = e;\n this.renderList();\n }\n if (isNullOrUndefined(this.list) || !isNullOrUndefined(this.liCollections) && this.liCollections.length === 0 || this.isRequested) {\n return;\n }\n if (e.action === 'enter') {\n this.selectCurrentItem(e);\n }\n }\n };\n DropDownList.prototype.handleVirtualKeyboardActions = function (e, pageCount) {\n switch (e.action) {\n case 'down':\n case 'up':\n if (this.itemData != null || this.getModuleName() === 'autocomplete') {\n this.updateUpDownAction(e, true);\n }\n break;\n case 'pageUp':\n this.activeIndex = this.getModuleName() === 'autocomplete' ? this.getIndexByValue(this.selectedLI.getAttribute('data-value')) + this.getPageCount() - 1 : this.getIndexByValue(this.previousValue);\n this.pageUpSelection(this.activeIndex - this.getPageCount(), e, true);\n e.preventDefault();\n break;\n case 'pageDown':\n this.activeIndex = this.getModuleName() === 'autocomplete' ? this.getIndexByValue(this.selectedLI.getAttribute('data-value')) - this.getPageCount() : this.getIndexByValue(this.previousValue);\n this.pageDownSelection(!isNullOrUndefined(this.activeIndex) ? this.activeIndex + this.getPageCount() : 2 * this.getPageCount(), e, true);\n e.preventDefault();\n break;\n case 'home':\n this.isMouseScrollAction = true;\n this.updateHomeEndAction(e, true);\n break;\n case 'end':\n this.isMouseScrollAction = true;\n this.updateHomeEndAction(e, true);\n break;\n }\n this.keyboardEvent = null;\n };\n DropDownList.prototype.selectCurrentItem = function (e) {\n if (this.isPopupOpen) {\n var li = this.list.querySelector('.' + dropDownListClasses.focus);\n if (this.isDisabledElement(li)) {\n return;\n }\n if (li) {\n this.setSelection(li, e);\n this.isTyped = false;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n this.hidePopup(e);\n this.focusDropDown(e);\n } else {\n this.showPopup();\n }\n };\n DropDownList.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n DropDownList.prototype.pageUpSelection = function (steps, event, isVirtualKeyAction) {\n var previousItem = steps >= 0 ? this.liCollections[steps + 1] : this.liCollections[0];\n if (!this.enableVirtualization && previousItem && previousItem.classList.contains('e-disabled')) {\n var validIndex = steps >= 0 ? steps + 1 : 0;\n while (validIndex < this.liCollections.length) {\n previousItem = this.liCollections[validIndex];\n if (previousItem && !previousItem.classList.contains('e-disabled')) {\n break;\n }\n validIndex--;\n if (validIndex < 0) {\n return;\n }\n }\n }\n if (this.enableVirtualization && this.activeIndex == null) {\n previousItem = this.liCollections.length >= steps && steps >= 0 ? this.liCollections[steps + this.skeletonCount + 1] : this.liCollections[0];\n }\n if (!isNullOrUndefined(previousItem) && previousItem.classList.contains('e-virtual-list')) {\n previousItem = this.liCollections[this.skeletonCount];\n }\n this.PageUpDownSelection(previousItem, event);\n if (this.allowFiltering && this.getModuleName() === 'dropdownlist') {\n if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.filterInput, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n } else if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(this.filterInput, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id\n });\n }\n }\n };\n DropDownList.prototype.PageUpDownSelection = function (previousItem, event) {\n if (this.enableVirtualization) {\n if (!isNullOrUndefined(previousItem) && (this.getModuleName() !== 'autocomplete' && !previousItem.classList.contains('e-active') || this.getModuleName() === 'autocomplete' && !previousItem.classList.contains('e-item-focus'))) {\n this.setSelection(previousItem, event);\n }\n } else {\n this.setSelection(previousItem, event);\n }\n };\n DropDownList.prototype.pageDownSelection = function (steps, event, isVirtualKeyAction) {\n var list = this.getItems();\n var previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];\n if (!this.enableVirtualization && previousItem && previousItem.classList.contains('e-disabled')) {\n while (steps >= 0 && steps < this.liCollections.length) {\n previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];\n if (previousItem && !previousItem.classList.contains('e-disabled')) {\n break;\n }\n steps++;\n }\n }\n if (this.enableVirtualization && this.skeletonCount > 0) {\n steps = this.getModuleName() === 'dropdownlist' && this.allowFiltering ? steps + 1 : steps;\n previousItem = steps < list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];\n }\n if (this.enableVirtualization && this.activeIndex == null) {\n previousItem = steps <= list.length ? this.liCollections[steps + this.skeletonCount - 1] : this.liCollections[list.length - 1];\n }\n this.PageUpDownSelection(previousItem, event);\n if (this.allowFiltering && this.getModuleName() === 'dropdownlist') {\n if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.filterInput, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n } else if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(this.filterInput, {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id\n });\n }\n }\n };\n DropDownList.prototype.unWireEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper)) {\n EventHandler.remove(this.inputWrapper.container, 'mousedown', this.dropDownClick);\n EventHandler.remove(this.inputWrapper.container, 'keypress', this.onSearch);\n EventHandler.remove(this.inputWrapper.container, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n }\n this.unBindCommonEvent();\n };\n /**\n * Event un binding for list items.\n *\n * @returns {void}\n */\n DropDownList.prototype.unWireListEvents = function () {\n if (this.list) {\n EventHandler.remove(this.list, 'click', this.onMouseClick);\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\n }\n };\n DropDownList.prototype.checkSelector = function (id) {\n return '[id=\"' + id.replace(/(:|\\.|\\[|\\]|,|=|@|\\\\|\\/|#)/g, '\\\\$1') + '\"]';\n };\n DropDownList.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, this.checkSelector(this.popupObj.element.id))) && !isNullOrUndefined(this.inputWrapper) && !this.inputWrapper.container.contains(e.target)) {\n if (this.inputWrapper.container.classList.contains(dropDownListClasses.inputFocus) || this.isPopupOpen) {\n this.isDocumentClick = true;\n var isActive = this.isRequested;\n if (this.getModuleName() === 'combobox' && this.isTyped) {\n this.isInteracted = false;\n }\n this.hidePopup(e);\n this.isInteracted = false;\n if (!isActive) {\n this.onFocusOut(e);\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n }\n } else if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput) && !(this.getModuleName() === 'combobox' && !this.allowFiltering && Browser.isDevice && target === this.inputWrapper.buttons[0])) {\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.targetElement() || document.activeElement === this.filterInput);\n e.preventDefault();\n }\n };\n DropDownList.prototype.activeStateChange = function () {\n if (this.isDocumentClick) {\n this.hidePopup();\n this.onFocusOut();\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n };\n DropDownList.prototype.focusDropDown = function (e) {\n if (!this.initial && this.isFilterLayout()) {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.dropDownClick = function (e) {\n if (e.which === 3 || e.button === 2) {\n return;\n }\n this.keyboardEvent = null;\n if (this.targetElement().classList.contains(dropDownListClasses.disable) || this.inputWrapper.clearButton === e.target) {\n return;\n }\n var target = e.target;\n if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput) && this.getModuleName() !== 'combobox') {\n e.preventDefault();\n }\n if (!this.readonly) {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n if (this.isFilterLayout()) {\n this.focusDropDown(e);\n }\n } else {\n this.focusIn(e);\n this.floatLabelChange();\n this.queryString = this.inputElement.value.trim() === '' ? null : this.inputElement.value;\n this.isDropDownClick = true;\n this.showPopup(e);\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n // eslint-disable-next-line max-len\n var duration = this.element.tagName === this.getNgDirective() && this.itemTemplate ? 500 : 100;\n if (!this.isSecondClick) {\n setTimeout(function () {\n proxy_1.cloneElements();\n proxy_1.isSecondClick = true;\n }, duration);\n }\n } else {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.cloneElements = function () {\n if (this.list) {\n var ulElement = this.list.querySelector('ul');\n if (ulElement) {\n ulElement = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n this.actionCompleteData.ulElement = ulElement;\n }\n }\n };\n DropDownList.prototype.updateSelectedItem = function (li, e, preventSelect, isSelection) {\n var _this = this;\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n var value = li.getAttribute('data-value') !== null ? this.getFormattedValue(li.getAttribute('data-value')) : null;\n var selectedData = this.getDataByValue(value);\n if (!this.initial && !preventSelect && !isNullOrUndefined(e)) {\n var items = this.detachChanges(selectedData);\n this.isSelected = true;\n var eventArgs = {\n e: e,\n item: li,\n itemData: items,\n isInteracted: e ? true : false,\n cancel: false\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n li.classList.remove(dropDownBaseClasses.selected);\n } else {\n _this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n _this.setSelectOptions(li, e);\n }\n }\n });\n } else {\n this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n this.setSelectOptions(li, e);\n }\n }\n };\n DropDownList.prototype.selectEventCallback = function (li, e, preventSelect, selectedData, value) {\n this.previousItemData = !isNullOrUndefined(this.itemData) ? this.itemData : null;\n if (this.itemData !== selectedData) {\n this.previousValue = !isNullOrUndefined(this.itemData) ? typeof this.itemData == 'object' && !this.allowObjectBinding ? this.checkFieldValue(this.itemData, this.fields.value.split('.')) : this.itemData : null;\n }\n this.item = li;\n this.itemData = selectedData;\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (focusedItem) {\n removeClass([focusedItem], dropDownBaseClasses.focus);\n }\n li.setAttribute('aria-selected', 'true');\n if (isNullOrUndefined(value)) {\n value = 'null';\n }\n if (this.allowFiltering && !this.enableVirtualization && this.getModuleName() !== 'autocomplete') {\n var filterIndex = this.getIndexByValueFilter(value, this.actionCompleteData.ulElement);\n if (!isNullOrUndefined(filterIndex)) {\n this.activeIndex = filterIndex;\n } else {\n this.activeIndex = this.getIndexByValue(value);\n }\n } else {\n if (this.enableVirtualization && this.activeIndex == null && this.dataSource instanceof DataManager) {\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.ulElement = this.list.querySelector('ul');\n }\n this.activeIndex = this.getIndexByValue(value);\n }\n };\n DropDownList.prototype.activeItem = function (li) {\n if (this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.selected)) {\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n li.setAttribute('aria-selected', 'true');\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.setValue = function (e) {\n var dataItem = this.getItemData();\n this.isTouched = !isNullOrUndefined(e);\n if (dataItem.value === null) {\n Input.setValue(null, this.inputElement, this.floatLabelType, this.showClearButton);\n } else {\n Input.setValue(dataItem.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n } else if (!isNullOrUndefined(this.valueTempElement) && this.inputElement.previousSibling === this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n }\n if (!isNullOrUndefined(dataItem.value) && !this.enableVirtualization && this.allowFiltering) {\n this.activeIndex = this.getIndexByValueFilter(dataItem.value, this.actionCompleteData.ulElement);\n }\n var clearIcon = dropDownListClasses.clearIcon;\n var isFilterElement = this.isFiltering() && this.filterInput && this.getModuleName() === 'combobox';\n var clearElement = isFilterElement && this.filterInput.parentElement.querySelector('.' + clearIcon);\n if (this.isFiltering() && clearElement) {\n clearElement.style.removeProperty('visibility');\n }\n if (!this.allowObjectBinding && this.previousValue === dataItem.value || this.allowObjectBinding && this.previousValue != null && this.isObjectInArray(this.previousValue, [this.allowCustom && this.isObjectCustomValue ? this.value ? this.value : dataItem : dataItem.value ? this.getDataByValue(dataItem.value) : dataItem])) {\n this.isSelected = false;\n return true;\n } else {\n this.isSelected = !this.initial ? true : false;\n this.isSelectCustom = false;\n if (this.getModuleName() === 'dropdownlist') {\n this.updateIconState();\n }\n return false;\n }\n };\n DropDownList.prototype.setSelection = function (li, e) {\n if (this.isValidLI(li) && (!li.classList.contains(dropDownBaseClasses.selected) || this.isPopupOpen && this.isSelected && li.classList.contains(dropDownBaseClasses.selected))) {\n this.updateSelectedItem(li, e, false, true);\n } else {\n this.setSelectOptions(li, e);\n if (this.enableVirtualization && this.value) {\n var fields = !this.isPrimitiveData ? this.fields.value : '';\n var currentValue = this.allowObjectBinding && !isNullOrUndefined(this.value) ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n if (this.dataSource instanceof DataManager) {\n var getItem = new DataManager(this.virtualGroupDataSource).executeLocal(new Query().where(new Predicate(fields, 'equal', currentValue)));\n if (getItem && getItem.length > 0) {\n this.itemData = getItem[0];\n var dataItem = this.getItemData();\n var value = this.allowObjectBinding ? this.getDataByValue(dataItem.value) : dataItem.value;\n if (this.value === dataItem.value && this.text !== dataItem.text || this.value !== dataItem.value && this.text === dataItem.text) {\n this.setProperties({\n 'text': dataItem.text ? dataItem.text.toString() : dataItem.text,\n 'value': value\n });\n }\n }\n } else {\n var getItem = new DataManager(this.dataSource).executeLocal(new Query().where(new Predicate(fields, 'equal', currentValue)));\n if (getItem && getItem.length > 0) {\n this.itemData = getItem[0];\n var dataItem = this.getItemData();\n var value = this.allowObjectBinding ? this.getDataByValue(dataItem.value) : dataItem.value;\n if (this.value === dataItem.value && this.text !== dataItem.text || this.value !== dataItem.value && this.text === dataItem.text) {\n this.setProperties({\n 'text': dataItem.text ? dataItem.text.toString() : dataItem.text,\n 'value': value\n });\n }\n }\n }\n }\n }\n };\n DropDownList.prototype.setSelectOptions = function (li, e) {\n if (this.list) {\n this.removeHover();\n }\n this.previousSelectedLI = !isNullOrUndefined(this.selectedLI) ? this.selectedLI : null;\n this.selectedLI = li;\n if (this.setValue(e)) {\n return;\n }\n if (!this.isPopupOpen && !isNullOrUndefined(li) || this.isPopupOpen && !isNullOrUndefined(e) && (e.type !== 'keydown' || e.type === 'keydown' && e.action === 'enter')) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.selectedLI) && this.itemData !== null && (!e || e.type !== 'click')) {\n this.setScrollPosition(e);\n }\n if (Browser.info.name !== 'mozilla') {\n if (this.targetElement()) {\n attributes(this.targetElement(), {\n 'aria-describedby': this.inputElement.id !== '' ? this.inputElement.id : this.element.id\n });\n this.targetElement().removeAttribute('aria-live');\n }\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n } else if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(this.targetElement(), {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id\n });\n }\n };\n DropDownList.prototype.dropdownCompiler = function (dropdownTemplate) {\n var checkTemplate = false;\n if (typeof dropdownTemplate !== 'function' && dropdownTemplate) {\n try {\n checkTemplate = document.querySelectorAll(dropdownTemplate).length ? true : false;\n } catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n DropDownList.prototype.setValueTemplate = function () {\n var compiledString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['valueTemplate']);\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n }\n if (!this.valueTempElement) {\n this.valueTempElement = this.createElement('span', {\n className: dropDownListClasses.value\n });\n this.inputElement.parentElement.insertBefore(this.valueTempElement, this.inputElement);\n this.inputElement.style.display = 'none';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.valueTempElement.innerHTML = '';\n }\n var valuecheck = this.dropdownCompiler(this.valueTemplate);\n if (typeof this.valueTemplate !== 'function' && valuecheck) {\n compiledString = compile(document.querySelector(this.valueTemplate).innerHTML.trim());\n } else {\n compiledString = compile(this.valueTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var valueCompTemp = compiledString(this.itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, this.valueTempElement);\n if (valueCompTemp && valueCompTemp.length > 0) {\n append(valueCompTemp, this.valueTempElement);\n }\n this.renderReactTemplates();\n };\n DropDownList.prototype.removeSelection = function () {\n if (this.list) {\n var selectedItems = this.list.querySelectorAll('.' + dropDownBaseClasses.selected);\n if (selectedItems.length) {\n removeClass(selectedItems, dropDownBaseClasses.selected);\n selectedItems[0].removeAttribute('aria-selected');\n }\n }\n };\n DropDownList.prototype.getItemData = function () {\n var fields = this.fields;\n var dataItem = null;\n dataItem = this.itemData;\n var dataValue;\n var dataText;\n if (!isNullOrUndefined(dataItem)) {\n dataValue = getValue(fields.value, dataItem);\n dataText = getValue(fields.text, dataItem);\n }\n var value = !isNullOrUndefined(dataItem) && !isUndefined(dataValue) ? dataValue : dataItem;\n var text = !isNullOrUndefined(dataItem) && !isUndefined(dataValue) ? dataText : dataItem;\n return {\n value: value,\n text: text\n };\n };\n /**\n * To trigger the change event for list.\n *\n * @param {MouseEvent | KeyboardEvent | TouchEvent} eve - Specifies the event arguments.\n * @param {boolean} isCustomValue - Specifies whether the value is custom value or not.\n * @returns {void}\n */\n DropDownList.prototype.onChangeEvent = function (eve, isCustomValue) {\n var _this = this;\n var dataItem = this.getItemData();\n var index = this.isSelectCustom ? null : this.activeIndex;\n if (this.enableVirtualization) {\n var datas = this.dataSource instanceof DataManager ? this.virtualGroupDataSource : this.dataSource;\n if (dataItem.value && datas && datas.length > 0) {\n var foundIndex = datas.findIndex(function (data) {\n return !isNullOrUndefined(dataItem.value) && getValue(_this.fields.value, data) === dataItem.value;\n });\n if (foundIndex !== -1) {\n index = foundIndex;\n }\n }\n }\n var value = this.allowObjectBinding ? isCustomValue ? this.value : this.getDataByValue(dataItem.value) : dataItem.value;\n this.setProperties({\n 'index': index,\n 'text': dataItem.text ? dataItem.text.toString() : dataItem.text,\n 'value': value\n }, true);\n this.detachChangeEvent(eve);\n };\n DropDownList.prototype.detachChanges = function (value) {\n var items;\n if (typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number') {\n items = Object.defineProperties({}, {\n value: {\n value: value,\n enumerable: true\n },\n text: {\n value: value,\n enumerable: true\n }\n });\n } else {\n items = value;\n }\n return items;\n };\n DropDownList.prototype.detachChangeEvent = function (eve) {\n this.isSelected = false;\n this.previousValue = this.value;\n this.activeIndex = this.enableVirtualization ? this.getIndexByValue(this.value) : this.index;\n this.typedString = !isNullOrUndefined(this.text) ? this.text : '';\n if (!this.initial) {\n var items = this.detachChanges(this.itemData);\n var preItems = void 0;\n if (typeof this.previousItemData === 'string' || typeof this.previousItemData === 'boolean' || typeof this.previousItemData === 'number') {\n preItems = Object.defineProperties({}, {\n value: {\n value: this.previousItemData,\n enumerable: true\n },\n text: {\n value: this.previousItemData,\n enumerable: true\n }\n });\n } else {\n preItems = this.previousItemData;\n }\n this.setHiddenValue();\n var eventArgs = {\n e: eve,\n item: this.item,\n itemData: items,\n previousItem: this.previousSelectedLI,\n previousItemData: preItems,\n isInteracted: eve ? true : false,\n value: this.value,\n element: this.element,\n event: eve\n };\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n } else {\n this.trigger('change', eventArgs);\n }\n }\n if ((isNullOrUndefined(this.value) || this.value === '') && this.floatLabelType !== 'Always') {\n removeClass([this.inputWrapper.container], 'e-valid-input');\n }\n };\n DropDownList.prototype.setHiddenValue = function () {\n if (!isNullOrUndefined(this.value)) {\n var value = this.allowObjectBinding && !isNullOrUndefined(this.value) ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n if (this.hiddenElement.querySelector('option')) {\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.textContent = this.text;\n selectedElement.setAttribute('value', value.toString());\n } else {\n if (!isNullOrUndefined(this.hiddenElement)) {\n var option = document.createElement('option');\n option.text = this.text;\n option.setAttribute('selected', '');\n this.hiddenElement.appendChild(option);\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.setAttribute('value', value.toString());\n }\n }\n } else {\n this.hiddenElement.innerHTML = '';\n }\n };\n /**\n * Filter bar implementation\n *\n * @param {KeyboardEventArgs} e - Specifies the event arguments.\n * @returns {void}\n */\n DropDownList.prototype.onFilterUp = function (e) {\n if (!(e.ctrlKey && e.keyCode === 86) && (this.isValidKey || e.keyCode === 40 || e.keyCode === 38)) {\n this.isValidKey = false;\n this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;\n switch (e.keyCode) {\n case 38: //up arrow\n case 40:\n //down arrow\n if (this.getModuleName() === 'autocomplete' && !this.isPopupOpen && !this.preventAltUp && !this.isRequested) {\n this.preventAutoFill = true;\n this.searchLists(e);\n } else {\n this.preventAutoFill = false;\n }\n this.preventAltUp = false;\n if (this.getModuleName() === 'autocomplete' && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), {\n 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n }\n e.preventDefault();\n break;\n case 46: //delete\n case 8:\n //backspace\n this.typedString = this.filterInput.value;\n if (!this.isPopupOpen && this.typedString !== '' || this.isPopupOpen && this.queryString.length > 0) {\n this.preventAutoFill = true;\n this.searchLists(e);\n } else if (this.typedString === '' && this.queryString === '' && this.getModuleName() !== 'autocomplete') {\n this.preventAutoFill = true;\n this.searchLists(e);\n } else if (this.typedString === '') {\n if (this.list) {\n this.resetFocusElement();\n }\n this.activeIndex = null;\n if (this.getModuleName() !== 'dropdownlist') {\n this.preventAutoFill = true;\n this.searchLists(e);\n if (this.getModuleName() === 'autocomplete') {\n this.hidePopup();\n }\n }\n }\n e.preventDefault();\n break;\n default:\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\n this.getInitialData = true;\n this.renderList();\n }\n this.typedString = this.filterInput.value;\n this.preventAutoFill = false;\n this.searchLists(e);\n if (this.enableVirtualization && this.getModuleName() !== 'autocomplete' || this.getModuleName() === 'autocomplete' && !(this.dataSource instanceof DataManager) || this.getModuleName() === 'autocomplete' && this.dataSource instanceof DataManager && this.totalItemCount !== 0) {\n this.getFilteringSkeletonCount();\n }\n break;\n }\n } else {\n this.isValidKey = false;\n }\n };\n DropDownList.prototype.onFilterDown = function (e) {\n switch (e.keyCode) {\n case 13:\n //enter\n break;\n case 40: //down arrow\n case 38:\n //up arrow\n this.queryString = this.filterInput.value;\n e.preventDefault();\n break;\n case 9:\n //tab\n if (this.isPopupOpen && this.getModuleName() !== 'autocomplete') {\n e.preventDefault();\n }\n break;\n default:\n this.prevSelectPoints = this.getSelectionPoints();\n this.queryString = this.filterInput.value;\n break;\n }\n };\n DropDownList.prototype.removeFillSelection = function () {\n if (this.isInteracted) {\n var selection = this.getSelectionPoints();\n this.inputElement.setSelectionRange(selection.end, selection.end);\n }\n };\n DropDownList.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering && this.filterInput) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n } else if (this.getModuleName() !== 'combobox' || this.isFiltering() && this.getModuleName() === 'combobox' && this.typedString !== '') {\n var fields = this.fields.text ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n }\n } else {\n filterQuery = this.enableVirtualization && !isNullOrUndefined(this.customFilterQuery) ? this.customFilterQuery.clone() : query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n if (this.enableVirtualization && this.viewPortInfo.endIndex !== 0) {\n var takeValue = this.getTakeValue();\n var alreadySkipAdded = false;\n if (filterQuery) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onSkip') {\n alreadySkipAdded = true;\n break;\n }\n }\n }\n var queryTakeValue = 0;\n var querySkipValue = 0;\n if (filterQuery && filterQuery.queries.length > 0) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onSkip') {\n querySkipValue = filterQuery.queries[queryElements].e.nos;\n }\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 var skipExists = false;\n if (filterQuery && filterQuery.queries.length > 0) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onSkip') {\n querySkipValue = filterQuery.queries[queryElements].e.nos;\n filterQuery.queries.splice(queryElements, 1);\n alreadySkipAdded = false;\n --queryElements;\n continue;\n }\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 (!skipExists && (this.allowFiltering || !this.isPopupOpen || !alreadySkipAdded)) {\n if (querySkipValue > 0) {\n filterQuery.skip(querySkipValue);\n } else {\n filterQuery.skip(this.virtualItemStartIndex);\n }\n }\n if (this.isIncrementalRequest) {\n filterQuery.take(this.incrementalEndIndex);\n } else {\n if (queryTakeValue > 0) {\n filterQuery.take(queryTakeValue);\n } else {\n filterQuery.take(takeValue);\n }\n }\n filterQuery.requiresCount();\n }\n return filterQuery;\n };\n DropDownList.prototype.getSelectionPoints = function () {\n var input = this.inputElement;\n return {\n start: Math.abs(input.selectionStart),\n end: Math.abs(input.selectionEnd)\n };\n };\n DropDownList.prototype.searchLists = function (e) {\n var _this = this;\n this.isTyped = true;\n this.activeIndex = null;\n this.isListSearched = true;\n if (this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon)) {\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n clearElement.style.visibility = this.filterInput.value === '' ? 'hidden' : 'visible';\n }\n this.isDataFetched = false;\n if (this.isFiltering()) {\n this.checkAndResetCache();\n this.isRequesting = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.filterInput.value,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.customFilterQuery = query ? query.clone() : query;\n _this.filteringAction(dataSource, query, fields);\n },\n baseEventArgs: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isCustomFilter && !eventArgs.preventDefaultAction) {\n _this.filteringAction(_this.dataSource, null, _this.fields);\n }\n });\n }\n };\n /**\n * To filter the 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 * @deprecated\n */\n DropDownList.prototype.filter = function (dataSource, query, fields) {\n this.isCustomFilter = true;\n this.filteringAction(dataSource, query, fields);\n };\n DropDownList.prototype.filteringAction = function (dataSource, query, fields) {\n if (!isNullOrUndefined(this.filterInput)) {\n this.beforePopupOpen = !this.isPopupOpen && this.getModuleName() === 'combobox' && this.filterInput.value === '' || this.getInitialData ? false : true;\n var isNoData = this.list.classList.contains(dropDownBaseClasses.noData);\n if (this.filterInput.value.trim() === '' && !this.itemTemplate) {\n this.actionCompleteData.isUpdated = false;\n this.isTyped = false;\n if (!isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list)) {\n if (this.enableVirtualization) {\n if (this.isFiltering()) {\n this.isPreventScrollAction = true;\n this.list.scrollTop = 0;\n this.previousStartIndex = 0;\n this.virtualListInfo = null;\n }\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 (isNoData && !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 this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n }\n }\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list);\n }\n this.isTyped = true;\n if (!isNullOrUndefined(this.itemData) && this.getModuleName() === 'dropdownlist') {\n this.focusIndexItem();\n this.setScrollPosition();\n }\n this.isNotSearchList = true;\n } else {\n this.isNotSearchList = false;\n query = this.filterInput.value.trim() === '' ? null : query;\n if (this.enableVirtualization && this.isFiltering() && this.isTyped) {\n this.isPreventScrollAction = true;\n this.list.scrollTop = 0;\n this.previousStartIndex = 0;\n this.virtualListInfo = null;\n }\n this.resetList(dataSource, fields, query);\n if (this.getModuleName() === 'dropdownlist' && this.list.classList.contains(dropDownBaseClasses.noData)) {\n this.popupContentElement.setAttribute('role', 'status');\n this.popupContentElement.setAttribute('id', 'no-record');\n attributes(this.filterInputObj.container, {\n 'aria-activedescendant': 'no-record'\n });\n }\n if (this.enableVirtualization && isNoData && !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 this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n }\n }\n if (this.enableVirtualization) {\n this.getFilteringSkeletonCount();\n }\n this.renderReactTemplates();\n }\n };\n DropDownList.prototype.setSearchBox = function (popupElement) {\n if (this.isFiltering()) {\n var parentElement = popupElement.querySelector('.' + dropDownListClasses.filterParent) ? popupElement.querySelector('.' + dropDownListClasses.filterParent) : this.createElement('span', {\n className: dropDownListClasses.filterParent\n });\n this.filterInput = this.createElement('input', {\n attrs: {\n type: 'text'\n },\n className: dropDownListClasses.filterInput\n });\n this.element.parentNode.insertBefore(this.filterInput, this.element);\n var backIcon = false;\n if (Browser.isDevice && this.isDeviceFullScreen) {\n backIcon = true;\n }\n this.filterInputObj = Input.createInput({\n element: this.filterInput,\n buttons: backIcon ? [dropDownListClasses.backIcon, dropDownListClasses.filterBarClearIcon] : [dropDownListClasses.filterBarClearIcon],\n properties: {\n placeholder: this.filterBarPlaceholder\n }\n }, this.createElement);\n if (!isNullOrUndefined(this.cssClass)) {\n if (this.cssClass.split(' ').indexOf('e-outline') !== -1) {\n addClass([this.filterInputObj.container], 'e-outline');\n } else if (this.cssClass.split(' ').indexOf('e-filled') !== -1) {\n addClass([this.filterInputObj.container], 'e-filled');\n }\n }\n append([this.filterInputObj.container], parentElement);\n prepend([parentElement], popupElement);\n attributes(this.filterInput, {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n });\n this.clearIconElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n if (!Browser.isDevice && this.clearIconElement) {\n EventHandler.add(this.clearIconElement, 'click', this.clearText, this);\n this.clearIconElement.style.visibility = 'hidden';\n }\n if (!Browser.isDevice) {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n } else {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.mobileKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n EventHandler.add(this.filterInput, 'input', this.onInput, this);\n EventHandler.add(this.filterInput, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.filterInput, 'keydown', this.onFilterDown, this);\n EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.filterInput, 'paste', this.pasteHandler, this);\n return this.filterInputObj;\n } else {\n return inputObject;\n }\n };\n DropDownList.prototype.onInput = function (e) {\n if (!isNullOrUndefined(e) && !isNullOrUndefined(e.data) && e.data.length > 1 && this.autoFill && (this.getModuleName() === 'combobox' || this.getModuleName() === 'autocomplete')) {\n this.inputElement.value = e.data;\n }\n this.isValidKey = true;\n if (this.getModuleName() === 'combobox') {\n this.updateIconState();\n }\n // For filtering works in mobile firefox.\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\n this.typedString = this.filterInput.value;\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n };\n DropDownList.prototype.pasteHandler = function (e) {\n var _this = this;\n setTimeout(function () {\n _this.typedString = _this.filterInput.value;\n _this.searchLists(e);\n });\n };\n DropDownList.prototype.onActionFailure = function (e) {\n _super.prototype.onActionFailure.call(this, e);\n if (this.beforePopupOpen) {\n this.renderPopup();\n }\n };\n DropDownList.prototype.getTakeValue = function () {\n return this.allowFiltering && this.getModuleName() === 'dropdownlist' && Browser.isDevice ? Math.round(window.outerHeight / this.listItemHeight) : this.itemCount;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\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 if (this.isNotSearchList && !this.enableVirtualization) {\n this.isNotSearchList = false;\n return;\n }\n if (this.getInitialData) {\n this.updateActionCompleteDataValues(ulElement, list);\n }\n if (!this.preventPopupOpen && this.getModuleName() === 'combobox') {\n this.beforePopupOpen = true;\n this.preventPopupOpen = true;\n }\n var tempItemCount = this.itemCount;\n if (this.isActive || !isNullOrUndefined(ulElement)) {\n var selectedItem = this.selectedLI ? this.selectedLI.cloneNode(true) : null;\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 if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent) && this.searchKeyEvent.type === 'keydown') {\n this.isRequested = false;\n this.keyActionHandler(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent)) {\n this.incrementalSearch(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n if (!this.enableVirtualization) {\n this.list.scrollTop = 0;\n }\n if (!isNullOrUndefined(ulElement)) {\n attributes(ulElement, {\n 'id': this.element.id + '_options',\n 'role': 'listbox',\n 'aria-hidden': 'false',\n 'aria-label': 'listbox'\n });\n }\n if (this.initialRemoteRender) {\n this.initial = true;\n this.activeIndex = this.index;\n this.initialRemoteRender = false;\n if (this.value && this.dataSource instanceof DataManager) {\n var checkField_1 = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;\n var value_1 = this.allowObjectBinding && !isNullOrUndefined(this.value) ? getValue(checkField_1, this.value) : this.value;\n var fieldValue_1 = this.fields.value.split('.');\n var checkVal = list.some(function (x) {\n return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ? _this.checkFieldValue(x, fieldValue_1) === value_1 : x[checkField_1] === value_1;\n });\n if (this.enableVirtualization && this.virtualGroupDataSource) {\n checkVal = this.virtualGroupDataSource.some(function (x) {\n return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ? _this.checkFieldValue(x, fieldValue_1) === value_1 : x[checkField_1] === value_1;\n });\n }\n if (!checkVal) {\n this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField_1, 'equal', value_1))).then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, list.length);\n _this.updateValues();\n } else {\n _this.updateValues();\n }\n });\n } else {\n this.updateValues();\n }\n } else {\n this.updateValues();\n }\n this.initial = false;\n } else if (this.getModuleName() === 'autocomplete' && this.value) {\n this.setInputValue();\n }\n if (this.getModuleName() !== 'autocomplete' && this.isFiltering() && !this.isTyped) {\n if (!this.actionCompleteData.isUpdated || !this.isCustomFilter && !this.isFilterFocus || isNullOrUndefined(this.itemData) && this.allowFiltering && (this.dataSource instanceof DataManager || !isNullOrUndefined(this.dataSource) && !isNullOrUndefined(this.dataSource.length) && this.dataSource.length !== 0)) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.updateActionCompleteDataValues(ulElement, list);\n }, 0);\n } else {\n this.updateActionCompleteDataValues(ulElement, list);\n }\n }\n if (this.isDynamicData) {\n var currentValue = this.allowObjectBinding && !isNullOrUndefined(this.value) ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n this.itemData = this.getDataByValue(currentValue);\n this.selectedLI = this.getElementByValue(currentValue);\n this.isDynamicData = false;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((this.allowCustom || this.allowFiltering && !this.isValueInList(list, this.value) && this.dataSource instanceof DataManager) && !this.enableVirtualization) {\n this.addNewItem(list, selectedItem);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n else if ((this.allowCustom || this.allowFiltering && this.isValueInList(list, this.value)) && !this.enableVirtualization) {\n var value = this.allowObjectBinding && !isNullOrUndefined(this.value) ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n var isValidAddition = !isNullOrUndefined(this.value) && selectedItem && selectedItem.getAttribute('data-value') === value.toString();\n if (isValidAddition) {\n this.addNewItem(list, selectedItem);\n }\n }\n if (!isNullOrUndefined(this.itemData) || isNullOrUndefined(this.itemData) && this.enableVirtualization) {\n this.getSkeletonCount();\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.UpdateSkeleton();\n this.focusIndexItem();\n }\n if (this.enableVirtualization) {\n this.updateActionCompleteDataValues(ulElement, list);\n }\n } else if (this.enableVirtualization && this.getModuleName() !== 'autocomplete' && !this.isFiltering()) {\n var value = this.getItemData().value;\n this.activeIndex = this.getIndexByValue(value);\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.selectedLI = element;\n } else if (this.enableVirtualization && this.getModuleName() === 'autocomplete') {\n this.activeIndex = this.skeletonCount;\n }\n if (this.beforePopupOpen) {\n this.renderPopup(e);\n if (this.enableVirtualization) {\n if (!this.list.querySelector('.e-virtual-list')) {\n this.UpdateSkeleton();\n this.liCollections = this.list.querySelectorAll('.e-list-item');\n }\n }\n if (this.enableVirtualization && tempItemCount !== this.itemCount) {\n this.resetList(this.dataSource, this.fields);\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownList.prototype.isValueInList = function (list, valueToFind) {\n if (Array.isArray(list)) {\n for (var i = 0; i < list.length; i++) {\n if (list[i] === valueToFind) {\n return true;\n }\n }\n } else if (typeof list === 'object' && list !== null) {\n for (var key in list) {\n if (Object.prototype.hasOwnProperty.call(list, key) && list[key] === valueToFind) {\n return true;\n }\n }\n }\n return false;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownList.prototype.checkFieldValue = function (list, fieldValue) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var checkField = list;\n fieldValue.forEach(function (value) {\n checkField = checkField[value];\n });\n return checkField;\n };\n DropDownList.prototype.updateActionCompleteDataValues = function (ulElement, list) {\n this.actionCompleteData = {\n ulElement: ulElement.cloneNode(true),\n list: list,\n isUpdated: true\n };\n if (this.actionData.list !== this.actionCompleteData.list && this.actionCompleteData.ulElement && this.actionCompleteData.list) {\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.addNewItem = function (listData, newElement) {\n var _this = this;\n if (!isNullOrUndefined(this.itemData) && !isNullOrUndefined(newElement)) {\n var value_2 = this.getItemData().value;\n var isExist = listData.some(function (data) {\n return (typeof data === 'string' || typeof data === 'number' || typeof data === 'boolean') && data === value_2 || getValue(_this.fields.value, data) === value_2;\n });\n if (!isExist) {\n this.addItem(this.itemData);\n }\n }\n };\n DropDownList.prototype.updateActionCompleteData = function (li, item, index) {\n var _this = this;\n if (this.getModuleName() !== 'autocomplete' && this.actionCompleteData.ulElement) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.actionCompleteDataUpdate(li, item, index);\n }, 0);\n } else {\n this.actionCompleteDataUpdate(li, item, index);\n }\n }\n };\n DropDownList.prototype.actionCompleteDataUpdate = function (li, item, index) {\n if (index !== null) {\n this.actionCompleteData.ulElement.insertBefore(li.cloneNode(true), this.actionCompleteData.ulElement.childNodes[index]);\n } else {\n this.actionCompleteData.ulElement.appendChild(li.cloneNode(true));\n }\n if (this.isFiltering() && this.actionCompleteData.list && this.actionCompleteData.list.indexOf(item) < 0) {\n this.actionCompleteData.list.push(item);\n }\n };\n DropDownList.prototype.focusIndexItem = function () {\n var value = this.getItemData().value;\n this.activeIndex = this.enableVirtualization && !isNullOrUndefined(value) || !this.enableVirtualization ? this.getIndexByValue(value) : this.activeIndex;\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.selectedLI = element;\n this.activeItem(element);\n if (!(this.enableVirtualization && isNullOrUndefined(element))) {\n this.removeFocus();\n }\n };\n DropDownList.prototype.updateSelection = function () {\n var selectedItem = this.list.querySelector('.' + dropDownBaseClasses.selected);\n if (selectedItem) {\n this.setProperties({\n 'index': this.getIndexByValue(selectedItem.getAttribute('data-value'))\n });\n this.activeIndex = this.index;\n } else {\n this.removeFocus();\n this.list.querySelector('.' + dropDownBaseClasses.li).classList.add(dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.updateSelectionList = function () {\n var selectedItem = this.list && this.list.querySelector('.' + 'e-active');\n if (!selectedItem && !isNullOrUndefined(this.value) && this.getModuleName() !== 'autocomplete') {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n var findEle = this.findListElement(this.list, 'li', 'data-value', value);\n if (findEle) {\n findEle.classList.add('e-active');\n }\n }\n };\n DropDownList.prototype.removeFocus = function () {\n var highlightedItem = this.list.querySelectorAll('.' + dropDownListClasses.focus);\n if (highlightedItem && highlightedItem.length) {\n removeClass(highlightedItem, dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.renderPopup = function (e) {\n var _this = this;\n if (this.popupObj && document.body.contains(this.popupObj.element)) {\n this.refreshPopup();\n return;\n }\n var args = {\n cancel: false\n };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n var popupEle = _this.createElement('div', {\n id: _this.element.id + '_popup',\n className: 'e-ddl e-popup ' + (_this.cssClass !== null ? _this.cssClass : '')\n });\n popupEle.setAttribute('aria-label', _this.element.id);\n popupEle.setAttribute('role', 'dialog');\n var searchBox = _this.setSearchBox(popupEle);\n _this.listContainerHeight = _this.allowFiltering && _this.getModuleName() === 'dropdownlist' && Browser.isDevice ? formatUnit(Math.round(window.outerHeight).toString() + 'px') : formatUnit(_this.popupHeight);\n if (_this.headerTemplate) {\n _this.setHeaderTemplate(popupEle);\n _this.isUpdateHeaderHeight = _this.header.offsetHeight !== 0;\n }\n append([_this.list], popupEle);\n if (_this.footerTemplate) {\n _this.setFooterTemplate(popupEle);\n _this.isUpdateFooterHeight = _this.footer.offsetHeight !== 0;\n }\n document.body.appendChild(popupEle);\n popupEle.style.top = '0px';\n if (_this.enableVirtualization && _this.itemTemplate) {\n var listitems = popupEle.querySelectorAll('li.e-list-item:not(.e-virtual-list)');\n _this.listItemHeight = listitems.length > 0 ? Math.ceil(listitems[0].getBoundingClientRect().height) + parseInt(window.getComputedStyle(listitems[0]).marginBottom, 10) : 0;\n }\n if (_this.enableVirtualization && !_this.list.classList.contains(dropDownBaseClasses.noData)) {\n _this.getSkeletonCount();\n _this.skeletonCount = _this.totalItemCount < _this.itemCount * 2 && (!(_this.dataSource instanceof DataManager) || _this.dataSource instanceof DataManager && _this.totalItemCount <= _this.itemCount) ? 0 : _this.skeletonCount;\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 } else {\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.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 popupEle.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 popupEle.style.visibility = 'hidden';\n if (_this.popupHeight !== 'auto') {\n _this.searchBoxHeight = 0;\n if (!isNullOrUndefined(searchBox.container) && _this.getModuleName() !== 'combobox' && _this.getModuleName() !== 'autocomplete') {\n _this.searchBoxHeight = searchBox.container.parentElement.getBoundingClientRect().height;\n _this.listContainerHeight = (parseInt(_this.listContainerHeight, 10) - _this.searchBoxHeight).toString() + 'px';\n }\n if (_this.headerTemplate) {\n _this.header = _this.header ? _this.header : popupEle.querySelector('.e-ddl-header');\n var height = Math.round(_this.header.getBoundingClientRect().height);\n _this.listContainerHeight = (parseInt(_this.listContainerHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n if (_this.footerTemplate) {\n _this.footer = _this.footer ? _this.footer : popupEle.querySelector('.e-ddl-footer');\n var height = Math.round(_this.footer.getBoundingClientRect().height);\n _this.listContainerHeight = (parseInt(_this.listContainerHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n _this.list.style.maxHeight = (parseInt(_this.listContainerHeight, 10) - 2).toString() + 'px'; // due to box-sizing property\n popupEle.style.maxHeight = formatUnit(_this.popupHeight);\n } else {\n popupEle.style.height = 'auto';\n }\n var offsetValue = 0;\n var left = void 0;\n _this.isPreventScrollAction = true;\n if (!isNullOrUndefined(_this.selectedLI) && !isNullOrUndefined(_this.activeIndex) && _this.activeIndex >= 0) {\n _this.setScrollPosition();\n } else if (_this.enableVirtualization) {\n _this.setScrollPosition();\n } else {\n _this.list.scrollTop = 0;\n }\n if (Browser.isDevice && _this.isDeviceFullScreen && !_this.allowFiltering && (_this.getModuleName() === 'dropdownlist' || _this.isDropDownClick && _this.getModuleName() === 'combobox')) {\n offsetValue = _this.getOffsetValue(popupEle);\n var firstItem = _this.isEmptyList() ? _this.list : _this.liCollections[0];\n if (!isNullOrUndefined(_this.inputElement)) {\n left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) - parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) + parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));\n }\n }\n _this.createPopup(popupEle, offsetValue, left);\n _this.popupContentElement = _this.popupObj.element.querySelector('.e-content');\n _this.getFocusElement();\n _this.checkCollision(popupEle);\n if (Browser.isDevice) {\n if (parseInt(_this.popupWidth.toString(), 10) > window.outerWidth && !(_this.getModuleName() === 'dropdownlist' && _this.allowFiltering)) {\n _this.popupObj.element.classList.add('e-wide-popup');\n }\n _this.popupObj.element.classList.add(dropDownListClasses.device);\n if (_this.getModuleName() === 'dropdownlist' || _this.getModuleName() === 'combobox' && !_this.allowFiltering && _this.isDropDownClick) {\n _this.popupObj.collision = {\n X: 'fit',\n Y: 'fit'\n };\n }\n if (_this.isFilterLayout() && _this.isDeviceFullScreen) {\n _this.popupObj.element.classList.add(dropDownListClasses.mobileFilter);\n _this.popupObj.position = {\n X: 0,\n Y: 0\n };\n _this.popupObj.dataBind();\n attributes(_this.popupObj.element, {\n style: 'left:0px;right:0px;top:0px;bottom:0px;'\n });\n addClass([document.body, _this.popupObj.element], dropDownListClasses.popupFullScreen);\n _this.setSearchBoxPosition();\n _this.backIconElement = searchBox.container.querySelector('.e-back-icon');\n _this.clearIconElement = searchBox.container.querySelector('.' + dropDownListClasses.clearIcon);\n EventHandler.add(_this.backIconElement, 'click', _this.clickOnBackIcon, _this);\n EventHandler.add(_this.clearIconElement, 'click', _this.clearText, _this);\n }\n }\n popupEle.style.visibility = 'visible';\n addClass([popupEle], 'e-popup-close');\n var scrollParentElements = _this.popupObj.getScrollableParent(_this.inputWrapper.container);\n for (var _i = 0, scrollParentElements_1 = scrollParentElements; _i < scrollParentElements_1.length; _i++) {\n var element = scrollParentElements_1[_i];\n EventHandler.add(element, 'scroll', _this.scrollHandler, _this);\n }\n if (!isNullOrUndefined(_this.list)) {\n _this.unWireListEvents();\n _this.wireListEvents();\n }\n _this.selectedElementID = _this.selectedLI ? _this.selectedLI.id : null;\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 || _this.list.querySelector('.e-active')) {\n _this.updateSelectionList();\n if (_this.selectedValueInfo && _this.viewPortInfo && _this.viewPortInfo.offsets.top) {\n _this.list.scrollTop = _this.viewPortInfo.offsets.top;\n } else {\n _this.scrollBottom(true, true);\n }\n }\n }, 5);\n }\n attributes(_this.targetElement(), {\n 'aria-expanded': 'true',\n 'aria-owns': _this.element.id + '_popup',\n 'aria-controls': _this.element.id\n });\n if (_this.getModuleName() !== 'dropdownlist' && _this.list.classList.contains('e-nodata')) {\n attributes(_this.targetElement(), {\n 'aria-activedescendant': 'no-record'\n });\n _this.popupContentElement.setAttribute('role', 'status');\n _this.popupContentElement.setAttribute('id', 'no-record');\n }\n _this.inputElement.setAttribute('aria-expanded', 'true');\n _this.inputElement.setAttribute('aria-controls', _this.element.id + '_popup');\n var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;\n addClass([inputParent], [dropDownListClasses.inputFocus]);\n var animModel = {\n name: 'FadeIn',\n duration: 100\n };\n _this.beforePopupOpen = true;\n var popupInstance = _this.popupObj;\n var eventArgs = {\n popup: popupInstance,\n event: e,\n cancel: false,\n animation: animModel\n };\n _this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (!isNullOrUndefined(_this.inputWrapper)) {\n addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);\n }\n _this.renderReactTemplates();\n if (!isNullOrUndefined(_this.popupObj)) {\n _this.popupObj.show(new Animation(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' && !(_this.getModuleName() === 'dropdownlist' && _this.allowFiltering)) {\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 } else {\n _this.beforePopupOpen = false;\n _this.destroyPopup();\n }\n });\n if (_this.allowResize) {\n var resizePaddingBottom = 16;\n // Create the resizer div\n _this.resizer = _this.createElement('div', {\n id: _this.element.id + '_resize-popup',\n className: dropDownListClasses.resizeIcon // Adding class for styling\n });\n // Add the resizer div to the popup\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.paddingBottom = _this.getModuleName() === 'dropdownlist' && _this.allowFiltering && _this.searchBoxHeight ? (_this.searchBoxHeight + resizePaddingBottom).toString() + 'px' : resizePaddingBottom.toString() + 'px';\n if (_this.header || _this.footer || _this.itemTemplate) {\n _this.list.parentElement.style.paddingBottom = (parseInt(_this.list.parentElement.style.maxHeight, 10) - parseInt(_this.list.style.maxHeight, 10) + resizePaddingBottom).toString() + 'px';\n }\n _this.list.parentElement.appendChild(_this.resizer);\n //hold the popup resize\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 // Attach mouse and touch events to the resizer\n EventHandler.add(_this.resizer, 'mousedown', _this.startResizing, _this);\n EventHandler.add(_this.resizer, 'touchstart', _this.startResizing, _this);\n }\n } else {\n _this.beforePopupOpen = false;\n }\n });\n };\n DropDownList.prototype.checkCollision = function (popupEle) {\n if (!Browser.isDevice || Browser.isDevice && !(this.getModuleName() === 'dropdownlist' || this.isDropDownClick)) {\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 DropDownList.prototype.getOffsetValue = function (popupEle) {\n var popupStyles = getComputedStyle(popupEle);\n var borderTop = parseInt(popupStyles.borderTopWidth, 10);\n var borderBottom = parseInt(popupStyles.borderBottomWidth, 10);\n return this.setPopupPosition(borderTop + borderBottom);\n };\n DropDownList.prototype.createPopup = function (element, offsetValue, left) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.setWidth(),\n targetType: 'relative',\n relateTo: this.inputWrapper.container,\n collision: this.enableRtl ? {\n X: 'fit',\n Y: 'flip'\n } : {\n X: 'flip',\n Y: 'flip'\n },\n offsetY: offsetValue,\n enableRtl: this.enableRtl,\n offsetX: left,\n position: this.enableRtl ? {\n X: 'right',\n Y: 'bottom'\n } : {\n X: 'left',\n Y: 'bottom'\n },\n zIndex: this.zIndex,\n close: function () {\n if (!_this.isDocumentClick) {\n _this.focusDropDown();\n }\n // eslint-disable-next-line\n if (_this.isReact) {\n _this.clearTemplate(['headerTemplate', 'footerTemplate']);\n }\n _this.isNotSearchList = false;\n _this.isDocumentClick = false;\n _this.destroyPopup();\n if (_this.isFiltering() && _this.actionCompleteData.list && _this.actionCompleteData.list.length > 0) {\n _this.isActive = true;\n if (_this.enableVirtualization) {\n _this.onActionComplete(_this.ulElement, _this.listData, null, true);\n } else {\n _this.onActionComplete(_this.actionCompleteData.ulElement, _this.actionCompleteData.list, null, true);\n }\n } else if (_this.enableVirtualization) {\n _this.focusIndexItem();\n }\n },\n open: function () {\n EventHandler.add(document, 'mousedown', _this.onDocumentClick, _this);\n _this.isPopupOpen = true;\n var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement && _this.actionCompleteData.ulElement.querySelector('li');\n var ulElement = _this.list.querySelector('ul li');\n if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(_this.targetElement(), {\n 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-item-focus')[0].id\n });\n } else if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(_this.targetElement(), {\n 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-active')[0].id\n });\n }\n if (_this.isFiltering() && _this.itemTemplate && _this.element.tagName === _this.getNgDirective() && actionList && ulElement && actionList.textContent !== ulElement.textContent && _this.element.tagName !== 'EJS-COMBOBOX') {\n _this.cloneElements();\n }\n if (_this.isFilterLayout()) {\n removeClass([_this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n _this.isFilterFocus = true;\n _this.filterInput.focus();\n if (_this.inputWrapper.clearButton) {\n addClass([_this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n _this.activeStateChange();\n },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n }\n });\n };\n DropDownList.prototype.isEmptyList = function () {\n return !isNullOrUndefined(this.liCollections) && this.liCollections.length === 0;\n };\n DropDownList.prototype.getFocusElement = function () {\n // combo-box used this method\n };\n DropDownList.prototype.isFilterLayout = function () {\n return this.getModuleName() === 'dropdownlist' && this.allowFiltering;\n };\n DropDownList.prototype.scrollHandler = function () {\n if (Browser.isDevice && (this.getModuleName() === 'dropdownlist' && !this.isFilterLayout() || this.getModuleName() === 'combobox' && !this.allowFiltering && this.isDropDownClick)) {\n if (this.element && !this.isElementInViewport(this.element)) {\n this.hidePopup();\n }\n }\n };\n DropDownList.prototype.isElementInViewport = function (element) {\n var elementRect = element.getBoundingClientRect();\n return elementRect.top >= 0 && elementRect.left >= 0 && elementRect.bottom <= window.innerHeight && elementRect.right <= window.innerWidth;\n };\n DropDownList.prototype.setSearchBoxPosition = function () {\n var searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;\n this.popupObj.element.style.maxHeight = '100%';\n this.popupObj.element.style.width = '100%';\n this.list.style.maxHeight = window.innerHeight - searchBoxHeight + 'px';\n this.list.style.height = window.innerHeight - searchBoxHeight + 'px';\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n detach(this.filterInput);\n clearElement.parentElement.insertBefore(this.filterInput, clearElement);\n };\n DropDownList.prototype.setPopupPosition = function (border) {\n var offsetValue;\n var popupOffset = border;\n var selectedLI = this.list.querySelector('.' + dropDownListClasses.focus) || this.selectedLI;\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n var lastItem = this.isEmptyList() ? this.list : this.liCollections[this.getItems().length - 1];\n var liHeight = firstItem.getBoundingClientRect().height;\n this.listItemHeight = liHeight + parseInt(window.getComputedStyle(firstItem).marginBottom, 10);\n var listHeight = this.list.offsetHeight / 2;\n var height = isNullOrUndefined(selectedLI) ? firstItem.offsetTop : selectedLI.offsetTop;\n var lastItemOffsetValue = lastItem.offsetTop;\n if (lastItemOffsetValue - listHeight < height && !isNullOrUndefined(this.liCollections) && this.liCollections.length > 0 && !isNullOrUndefined(selectedLI)) {\n var count = this.list.offsetHeight / liHeight;\n var paddingBottom = parseInt(getComputedStyle(this.list).paddingBottom, 10);\n offsetValue = (count - (this.liCollections.length - this.activeIndex)) * liHeight - popupOffset + paddingBottom;\n this.list.scrollTop = selectedLI.offsetTop;\n } else if (height > listHeight && !this.enableVirtualization) {\n offsetValue = listHeight - liHeight / 2;\n this.list.scrollTop = height - listHeight + liHeight / 2;\n } else {\n offsetValue = height;\n }\n var inputHeight = this.inputWrapper.container.offsetHeight;\n offsetValue = offsetValue + liHeight + popupOffset - (liHeight - inputHeight) / 2;\n return -offsetValue;\n };\n DropDownList.prototype.setWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.inputWrapper.container.offsetWidth * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n if (Browser.isDevice && width.indexOf('px') > -1 && !this.allowFiltering && (this.getModuleName() === 'dropdownlist' || this.isDropDownClick && this.getModuleName() === 'combobox')) {\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n width = parseInt(width, 10) + (parseInt(getComputedStyle(firstItem).textIndent, 10) - parseInt(getComputedStyle(this.inputElement).paddingLeft, 10) + parseInt(getComputedStyle(this.inputElement.parentElement).borderLeftWidth, 10)) * 2 + 'px';\n }\n return width;\n };\n DropDownList.prototype.scrollBottom = function (isInitial, isInitialSelection, keyAction) {\n var _this = this;\n if (isInitialSelection === void 0) {\n isInitialSelection = false;\n }\n if (keyAction === void 0) {\n keyAction = null;\n }\n if (isNullOrUndefined(this.selectedLI) && this.enableVirtualization) {\n this.selectedLI = this.list.querySelector('.' + dropDownBaseClasses.li);\n if (!isNullOrUndefined(this.selectedLI) && this.selectedLI.classList.contains('e-virtual-list')) {\n this.selectedLI = this.liCollections[this.skeletonCount];\n }\n }\n if (!isNullOrUndefined(this.selectedLI)) {\n var selectedListMargin = this.selectedLI && !isNaN(parseInt(window.getComputedStyle(this.selectedLI).marginBottom, 10)) ? parseInt(window.getComputedStyle(this.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 ? this.selectedLI.offsetTop + this.virtualListInfo.startIndex * (this.selectedLI.offsetHeight + selectedListMargin) : this.selectedLI.offsetTop;\n var currentOffset = this.list.offsetHeight;\n var nextBottom = selectedLiOffsetTop - virtualListCount * (this.selectedLI.offsetHeight + selectedListMargin) + (this.selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\n var isScrollerCHanged = false;\n var isScrollTopChanged = false;\n nextOffset = isInitial ? nextOffset + parseInt(getComputedStyle(this.list).paddingTop, 10) * 2 : nextOffset + parseInt(getComputedStyle(this.list).paddingTop, 10);\n var boxRange = selectedLiOffsetTop - virtualListCount * (this.selectedLI.offsetHeight + selectedListMargin) + (this.selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ? boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\n if (this.activeIndex === 0 && !this.enableVirtualization) {\n this.list.scrollTop = 0;\n isScrollerCHanged = this.isKeyBoardAction;\n } else if (nextBottom > currentOffset || !(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n var currentElementValue = this.selectedLI ? this.selectedLI.getAttribute('data-value') : null;\n var liCount = keyAction === 'pageDown' ? this.getPageCount() - 2 : 1;\n if (!this.enableVirtualization || this.isKeyBoardAction || isInitialSelection) {\n if (this.isKeyBoardAction && this.enableVirtualization && lastElementValue && currentElementValue === lastElementValue && keyAction !== 'end' && !this.isVirtualScrolling) {\n this.isPreventKeyAction = true;\n if (this.enableVirtualization && this.itemTemplate) {\n this.list.scrollTop += nextOffset;\n } else {\n if (this.enableVirtualization) {\n liCount = keyAction === 'pageDown' ? this.getPageCount() + 1 : liCount;\n }\n this.list.scrollTop += (this.selectedLI.offsetHeight + selectedListMargin) * liCount;\n }\n this.isPreventKeyAction = this.IsScrollerAtEnd() ? false : this.isPreventKeyAction;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n } else if (this.enableVirtualization && keyAction === 'end') {\n this.isPreventKeyAction = false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n this.list.scrollTop = this.list.scrollHeight;\n } else {\n if (keyAction === 'pageDown' && 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 if (this.enableVirtualization && this.fields.groupBy && this.fixedHeaderElement && keyAction === 'down') {\n setTimeout(function () {\n _this.scrollStop(null, true);\n }, 100);\n }\n }\n };\n DropDownList.prototype.scrollTop = function (keyAction) {\n if (keyAction === void 0) {\n keyAction = null;\n }\n if (!isNullOrUndefined(this.selectedLI)) {\n var selectedListMargin = this.selectedLI && !isNaN(parseInt(window.getComputedStyle(this.selectedLI).marginBottom, 10)) ? parseInt(window.getComputedStyle(this.selectedLI).marginBottom, 10) : 0;\n var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;\n var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ? this.selectedLI.offsetTop + this.virtualListInfo.startIndex * (this.selectedLI.offsetHeight + selectedListMargin) : this.selectedLI.offsetTop;\n var nextOffset = selectedLiOffsetTop - virtualListCount * (this.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 && !isNullOrUndefined(this.fixedHeaderElement) ? nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\n var boxRange = selectedLiOffsetTop - virtualListCount * (this.selectedLI.offsetHeight + selectedListMargin) + (this.selectedLI.offsetHeight + selectedListMargin) - this.list.scrollTop;\n var isPageUpKeyAction = this.enableVirtualization && this.getModuleName() === 'autocomplete' && nextOffset <= 0;\n if (this.activeIndex === 0 && !this.enableVirtualization) {\n this.list.scrollTop = 0;\n } else if (nextOffset < 0 || isPageUpKeyAction) {\n var currentElementValue = this.selectedLI ? this.selectedLI.getAttribute('data-value') : null;\n var liCount = keyAction === 'pageUp' ? this.getPageCount() - 2 : 1;\n if (this.enableVirtualization) {\n liCount = keyAction === 'pageUp' ? this.getPageCount() : liCount;\n }\n if (this.enableVirtualization && this.isKeyBoardAction && firstElementValue && currentElementValue === firstElementValue && keyAction !== 'home' && !this.isVirtualScrolling) {\n this.isUpwardScrolling = true;\n this.isPreventKeyAction = true;\n this.list.scrollTop -= (this.selectedLI.offsetHeight + selectedListMargin) * liCount;\n this.isPreventKeyAction = this.list.scrollTop !== 0 ? this.isPreventKeyAction : false;\n this.isKeyBoardAction = false;\n this.isPreventScrollAction = false;\n } else if (this.enableVirtualization && keyAction === 'home') {\n this.isPreventScrollAction = false;\n this.isPreventKeyAction = true;\n this.isKeyBoardAction = false;\n this.list.scrollTo(0, 0);\n } else {\n if (keyAction === 'pageUp' && 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 = this.selectedLI.offsetTop - (this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement.offsetHeight : 0);\n }\n }\n };\n DropDownList.prototype.IsScrollerAtEnd = function () {\n return this.list && this.list.scrollTop + this.list.clientHeight >= this.list.scrollHeight;\n };\n DropDownList.prototype.isEditTextBox = function () {\n return false;\n };\n DropDownList.prototype.isFiltering = function () {\n return this.allowFiltering;\n };\n DropDownList.prototype.isPopupButton = function () {\n return true;\n };\n DropDownList.prototype.setScrollPosition = function (e) {\n this.isPreventScrollAction = true;\n if (!isNullOrUndefined(e)) {\n switch (e.action) {\n case 'pageDown':\n case 'down':\n case 'end':\n this.isKeyBoardAction = true;\n this.scrollBottom(false, false, e.action);\n break;\n default:\n this.isKeyBoardAction = e.action === 'up' || e.action === 'pageUp' || e.action === 'open';\n this.scrollTop(e.action);\n break;\n }\n } else {\n this.scrollBottom(true);\n }\n this.isKeyBoardAction = false;\n };\n DropDownList.prototype.clearText = function () {\n this.filterInput.value = this.typedString = '';\n this.searchLists(null);\n if (this.enableVirtualization) {\n this.list.scrollTop = 0;\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 // 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 }\n this.getSkeletonCount();\n this.UpdateSkeleton();\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 }\n };\n DropDownList.prototype.setEleWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.inputWrapper.container.style.width = formatUnit(width);\n } else if (typeof width === 'string') {\n this.inputWrapper.container.style.width = width.match(/px|%|em/) ? width : formatUnit(width);\n }\n }\n };\n DropDownList.prototype.closePopup = function (delay, e) {\n var _this = this;\n var isFilterValue = !isNullOrUndefined(this.filterInput) && !isNullOrUndefined(this.filterInput.value) && this.filterInput.value !== '';\n var typedString = this.getModuleName() === 'combobox' ? this.typedString : null;\n this.isTyped = false;\n this.isVirtualTrackHeight = false;\n if (!(this.popupObj && document.body.contains(this.popupObj.element) && this.beforePopupOpen)) {\n return;\n }\n this.keyboardEvent = null;\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n this.isActive = false;\n this.isDropDownClick = false;\n this.preventAutoFill = false;\n var scrollableParentElements = this.popupObj.getScrollableParent(this.inputWrapper.container);\n for (var _i = 0, scrollableParentElements_1 = scrollableParentElements; _i < scrollableParentElements_1.length; _i++) {\n var element = scrollableParentElements_1[_i];\n EventHandler.remove(element, 'scroll', this.scrollHandler);\n }\n if (Browser.isDevice && this.isFilterLayout() && this.isDeviceFullScreen) {\n removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);\n }\n if (this.isFilterLayout()) {\n if (!Browser.isDevice) {\n this.searchKeyModule.destroy();\n if (this.clearIconElement) {\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n }\n if (this.backIconElement) {\n EventHandler.remove(this.backIconElement, 'click', this.clickOnBackIcon);\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n if (!isNullOrUndefined(this.filterInput)) {\n EventHandler.remove(this.filterInput, 'input', this.onInput);\n EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);\n EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);\n EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);\n EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);\n }\n if (this.allowFiltering && this.getModuleName() === 'dropdownlist') {\n this.filterInput.removeAttribute('aria-activedescendant');\n this.filterInput.removeAttribute('aria-disabled');\n this.filterInput.removeAttribute('role');\n this.filterInput.removeAttribute('autocomplete');\n this.filterInput.removeAttribute('autocapitalize');\n this.filterInput.removeAttribute('spellcheck');\n }\n this.filterInput = null;\n }\n attributes(this.targetElement(), {\n 'aria-expanded': 'false'\n });\n this.inputElement.setAttribute('aria-expanded', 'false');\n this.targetElement().removeAttribute('aria-owns');\n this.targetElement().removeAttribute('aria-activedescendant');\n this.inputWrapper.container.classList.remove(dropDownListClasses.iconAnimation);\n if (this.isFiltering()) {\n this.actionCompleteData.isUpdated = false;\n }\n if (this.enableVirtualization) {\n if (this.value == null || this.isTyped) {\n this.viewPortInfo.endIndex = this.viewPortInfo && this.viewPortInfo.endIndex > 0 ? this.viewPortInfo.endIndex : this.itemCount;\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'dropdownlist' && !isNullOrUndefined(this.typedString) && this.typedString !== '' || this.getModuleName() === 'combobox' && this.allowFiltering && !isNullOrUndefined(this.typedString) && this.typedString !== '') {\n this.checkAndResetCache();\n }\n } else if (this.getModuleName() === 'autocomplete') {\n this.checkAndResetCache();\n }\n if ((this.getModuleName() === 'dropdownlist' || this.getModuleName() === 'combobox') && !(this.skeletonCount === 0)) {\n this.getSkeletonCount(true);\n }\n }\n this.beforePopupOpen = false;\n var animModel = {\n name: 'FadeOut',\n duration: 100,\n delay: delay ? delay : 0\n };\n var popupInstance = this.popupObj;\n var eventArgs = {\n popup: popupInstance,\n cancel: false,\n animation: animModel,\n event: e || null\n };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (_this.getModuleName() === 'dropdownlist') {\n Input.destroy({\n element: _this.filterInput,\n floatLabelType: _this.floatLabelType,\n properties: {\n placeholder: _this.filterBarPlaceholder\n },\n buttons: _this.clearIconElement\n }, _this.clearIconElement);\n }\n _this.filterInputObj = null;\n if (!isNullOrUndefined(_this.popupObj) && !isNullOrUndefined(_this.popupObj.element.querySelector('.e-fixed-head'))) {\n var fixedHeader = _this.popupObj.element.querySelector('.e-fixed-head');\n fixedHeader.parentNode.removeChild(fixedHeader);\n _this.fixedHeaderElement = null;\n }\n if (!eventArgs.cancel) {\n if (_this.getModuleName() === 'autocomplete') {\n _this.rippleFun();\n }\n if (_this.isPopupOpen) {\n _this.popupObj.hide(new Animation(eventArgs.animation));\n } else {\n _this.destroyPopup();\n }\n }\n });\n if (Browser.isDevice && !eventArgs.cancel && this.popupObj.element.classList.contains('e-wide-popup')) {\n this.popupObj.element.classList.remove('e-wide-popup');\n }\n var dataSourceCount;\n if (this.dataSource instanceof DataManager) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSourceCount = this.virtualGroupDataSource && this.virtualGroupDataSource.length ? this.virtualGroupDataSource.length : 0;\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.isFiltering() && isFilterValue && this.totalItemCount !== dataSourceCount) {\n this.updateInitialData();\n this.checkAndResetCache();\n }\n };\n DropDownList.prototype.updateInitialData = function () {\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 if (this.getModuleName() === 'combobox') {\n this.typedString = '';\n }\n this.previousStartIndex = 0;\n this.previousEndIndex = 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 this.totalItemCount = this.dataCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;\n }\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')) {\n var virualElement = this.createElement('div', {\n id: this.element.id + '_popup',\n className: 'e-virtual-ddl',\n styles: this.GetVirtualTrackHeight()\n });\n this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);\n }\n if (this.getModuleName() !== 'autocomplete' && this.totalItemCount !== 0 && this.totalItemCount > this.itemCount * 2) {\n this.getSkeletonCount();\n }\n this.UpdateSkeleton();\n this.listData = currentData;\n this.updateActionCompleteDataValues(ulElement, 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 };\n DropDownList.prototype.destroyPopup = function () {\n this.isPopupOpen = false;\n this.isFilterFocus = false;\n this.inputElement.removeAttribute('aria-controls');\n if (this.popupObj) {\n if (this.resizer) {\n EventHandler.remove(this.resizer, 'mousedown', this.startResizing);\n EventHandler.remove(this.resizer, 'touchstart', this.startResizing);\n }\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n };\n DropDownList.prototype.clickOnBackIcon = function () {\n this.hidePopup();\n this.focusIn();\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.render = function () {\n this.preselectedIndex = !isNullOrUndefined(this.index) ? this.index : null;\n if (this.element.tagName === 'INPUT') {\n this.inputElement = this.element;\n if (isNullOrUndefined(this.inputElement.getAttribute('role'))) {\n this.inputElement.setAttribute('role', 'combobox');\n }\n if (isNullOrUndefined(this.inputElement.getAttribute('type'))) {\n this.inputElement.setAttribute('type', 'text');\n }\n this.inputElement.setAttribute('aria-expanded', 'false');\n } else {\n this.inputElement = this.createElement('input', {\n attrs: {\n role: 'combobox',\n type: 'text'\n }\n });\n if (this.element.tagName !== this.getNgDirective()) {\n this.element.style.display = 'none';\n }\n this.element.parentElement.insertBefore(this.inputElement, this.element);\n this.preventTabIndex(this.inputElement);\n }\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = this.cssClass.replace(/\\s+/g, ' ').trim();\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n buttons: this.isPopupButton() ? [dropDownListClasses.icon] : null,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.getModuleName() === 'dropdownlist' ? true : this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n }\n }, this.createElement);\n if (this.element.tagName === this.getNgDirective()) {\n this.element.appendChild(this.inputWrapper.container);\n } else {\n this.inputElement.parentElement.insertBefore(this.element, this.inputElement);\n }\n this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'tabindex': '-1',\n 'class': dropDownListClasses.hiddenElement\n }\n });\n prepend([this.hiddenElement], this.inputWrapper.container);\n if (!this.hiddenElement.hasAttribute('aria-label')) {\n this.hiddenElement.setAttribute('aria-label', this.getModuleName());\n }\n this.validationAttribute(this.element, this.hiddenElement);\n this.setReadOnly();\n this.setFields();\n this.inputWrapper.container.style.width = formatUnit(this.width);\n this.inputWrapper.container.classList.add('e-ddl');\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.wireEvent();\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\n this.element.id = id;\n this.hiddenElement.id = id + '_hidden';\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n if ((this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') && !this.readonly) {\n if (!this.inputElement.hasAttribute('aria-label')) {\n this.inputElement.setAttribute('aria-label', this.getModuleName());\n }\n } else if (this.getModuleName() === 'dropdownlist') {\n if (!this.targetElement().hasAttribute('aria-label')) {\n attributes(this.targetElement(), {\n 'aria-label': this.getModuleName()\n });\n }\n if (!this.inputElement.hasAttribute('aria-label')) {\n this.inputElement.setAttribute('aria-label', this.getModuleName());\n }\n this.inputElement.setAttribute('aria-expanded', 'false');\n }\n attributes(this.targetElement(), this.getAriaAttributes());\n this.updateDataAttribute(this.htmlAttributes);\n this.setHTMLAttributes();\n if (this.targetElement() === this.inputElement) {\n this.inputElement.removeAttribute('aria-labelledby');\n }\n if (this.value !== null || this.activeIndex !== null || this.text !== null) {\n if (this.enableVirtualization) {\n this.listItemHeight = this.getListHeight();\n this.getSkeletonCount();\n this.updateVirtualizationProperties(this.itemCount, this.allowFiltering);\n if (this.index !== null) {\n this.activeIndex = this.index + this.skeletonCount;\n }\n }\n this.initValue();\n this.selectedValueInfo = this.viewPortInfo;\n if (this.enableVirtualization) {\n this.activeIndex = this.activeIndex + this.skeletonCount;\n }\n } else if (this.element.tagName === 'SELECT' && this.element.options[0]) {\n var selectElement = this.element;\n this.value = this.allowObjectBinding ? this.getDataByValue(selectElement.options[selectElement.selectedIndex].value) : selectElement.options[selectElement.selectedIndex].value;\n this.text = isNullOrUndefined(this.value) ? null : selectElement.options[selectElement.selectedIndex].textContent;\n this.initValue();\n }\n this.setEnabled();\n this.preventTabIndex(this.element);\n if (!this.enabled) {\n this.targetElement().tabIndex = -1;\n }\n this.initial = false;\n this.element.style.opacity = '';\n this.inputElement.onselect = function (e) {\n e.stopImmediatePropagation();\n };\n this.inputElement.onchange = function (e) {\n e.stopImmediatePropagation();\n };\n if (this.element.hasAttribute('autofocus')) {\n this.focusIn();\n }\n if (!isNullOrUndefined(this.text)) {\n this.inputElement.setAttribute('value', this.text);\n }\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n var floatLabelElement = this.inputWrapper.container.getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(this.element.id) && this.element.id !== '' && !isNullOrUndefined(floatLabelElement)) {\n floatLabelElement.id = 'label_' + this.element.id.replace(/ /g, '_');\n attributes(this.inputElement, {\n 'aria-labelledby': floatLabelElement.id\n });\n }\n this.renderComplete();\n this.listItemHeight = this.getListHeight();\n this.getSkeletonCount();\n if (this.enableVirtualization) {\n this.updateVirtualizationProperties(this.itemCount, this.allowFiltering);\n }\n this.viewPortInfo.startIndex = this.virtualItemStartIndex = 0;\n this.viewPortInfo.endIndex = this.virtualItemEndIndex = this.viewPortInfo.startIndex > 0 ? this.viewPortInfo.endIndex : this.itemCount;\n };\n DropDownList.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 DropDownList.prototype.setFooterTemplate = function (popupEle) {\n var compiledString;\n if (this.footer) {\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n } else {\n this.footer.innerHTML = '';\n }\n } else {\n this.footer = this.createElement('div');\n addClass([this.footer], dropDownListClasses.footer);\n }\n var footercheck = this.dropdownCompiler(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 @typescript-eslint/no-explicit-any\n var footerCompTemp = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\n if (footerCompTemp && footerCompTemp.length > 0) {\n append(footerCompTemp, this.footer);\n }\n append([this.footer], popupEle);\n };\n DropDownList.prototype.setHeaderTemplate = function (popupEle) {\n var compiledString;\n if (this.header) {\n this.header.innerHTML = '';\n } else {\n this.header = this.createElement('div');\n addClass([this.header], dropDownListClasses.header);\n }\n var headercheck = this.dropdownCompiler(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 @typescript-eslint/no-explicit-any\n var headerCompTemp = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\n if (headerCompTemp && headerCompTemp.length) {\n append(headerCompTemp, this.header);\n }\n var contentEle = popupEle.querySelector('div.e-content');\n popupEle.insertBefore(this.header, contentEle);\n };\n /**\n * Sets the enabled state to DropDownBase.\n *\n * @returns {void}\n */\n DropDownList.prototype.setEnabled = function () {\n this.element.setAttribute('aria-disabled', this.enabled ? 'false' : 'true');\n };\n DropDownList.prototype.setOldText = function (text) {\n this.text = text;\n };\n DropDownList.prototype.setOldValue = function (value) {\n this.value = value;\n };\n DropDownList.prototype.refreshPopup = function () {\n if (!isNullOrUndefined(this.popupObj) && document.body.contains(this.popupObj.element) && (this.allowFiltering && !(Browser.isDevice && this.isFilterLayout()) || this.getModuleName() === 'autocomplete')) {\n removeClass([this.popupObj.element], 'e-popup-close');\n this.popupObj.refreshPosition(this.inputWrapper.container);\n this.popupObj.resolveCollision();\n }\n };\n DropDownList.prototype.checkData = function (newProp) {\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) && this.itemTemplate && this.allowFiltering && !(this.isListSearched && newProp.dataSource instanceof DataManager)) {\n if (this.list && !this.isReact) {\n this.list.innerHTML = '';\n } else {\n this.list = null;\n }\n this.actionCompleteData = {\n ulElement: null,\n list: null,\n isUpdated: false\n };\n }\n this.isListSearched = false;\n var isChangeValue = Object.keys(newProp).indexOf('value') !== -1 && isNullOrUndefined(newProp.value);\n var isChangeText = Object.keys(newProp).indexOf('text') !== -1 && isNullOrUndefined(newProp.text);\n if (this.getModuleName() !== 'autocomplete' && this.allowFiltering && (isChangeValue || isChangeText)) {\n this.itemData = null;\n }\n if (this.allowFiltering && newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))) {\n this.actionCompleteData = {\n ulElement: null,\n list: null,\n isUpdated: false\n };\n this.actionData = this.actionCompleteData;\n } else if (this.allowFiltering && newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\n this.actionCompleteData = this.getModuleName() === 'combobox' ? {\n ulElement: null,\n list: null,\n isUpdated: false\n } : this.actionCompleteData;\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.updateDataSource = function (props, oldProps) {\n if (this.inputElement.value !== '' || !isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource) || !(props.dataSource instanceof DataManager) && props.dataSource.length === 0)) {\n this.clearAll(null, props);\n }\n if (this.fields.groupBy && props.fields && !this.isGroupChecking && this.list) {\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\n }\n if (!(!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource) || !(props.dataSource instanceof DataManager) && props.dataSource.length === 0)) || props.dataSource instanceof DataManager || !isNullOrUndefined(props) && Array.isArray(props.dataSource) && !isNullOrUndefined(oldProps) && Array.isArray(oldProps.dataSource) && props.dataSource.length !== oldProps.dataSource.length) {\n this.typedString = '';\n this.resetList(this.dataSource);\n }\n if (!this.isCustomFilter && !this.isFilterFocus && document.activeElement !== this.filterInput) {\n this.checkCustomValue();\n }\n };\n DropDownList.prototype.checkCustomValue = function () {\n var currentValue = this.allowObjectBinding && !isNullOrUndefined(this.value) ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n this.itemData = this.getDataByValue(currentValue);\n var dataItem = this.getItemData();\n var value = this.allowObjectBinding ? this.itemData : dataItem.value;\n var index = isNullOrUndefined(value) ? null : this.index;\n if (isNullOrUndefined(index) && currentValue === value || this.isAngular) {\n this.setProperties({\n 'text': dataItem.text ? dataItem.text.toString() : dataItem.text,\n 'value': value\n });\n } else {\n this.setProperties({\n 'text': dataItem.text ? dataItem.text.toString() : dataItem.text,\n 'index': index,\n 'value': value\n });\n }\n };\n DropDownList.prototype.updateInputFields = function () {\n if (this.getModuleName() === 'dropdownlist') {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n };\n /**\n * Dynamically change the value of properties.\n *\n * @private\n * @param {DropDownListModel} newProp - Returns the dynamic property value of the component.\n * @param {DropDownListModel} oldProp - Returns the previous previous value of the component.\n * @returns {void}\n */\n DropDownList.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n if (!isNullOrUndefined(newProp.dataSource) && !this.isTouched && isNullOrUndefined(newProp.value) && isNullOrUndefined(newProp.index) && !isNullOrUndefined(this.preselectedIndex) && !isNullOrUndefined(this.index)) {\n newProp.index = this.index;\n }\n if (!isNullOrUndefined(newProp.value) || !isNullOrUndefined(newProp.index)) {\n this.isTouched = true;\n }\n if (this.getModuleName() === 'dropdownlist') {\n this.checkData(newProp);\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n var _loop_1 = function (prop) {\n switch (prop) {\n case 'query':\n case 'dataSource':\n this_1.getSkeletonCount();\n this_1.checkAndResetCache();\n break;\n case 'htmlAttributes':\n this_1.setHTMLAttributes();\n break;\n case 'width':\n this_1.setEleWidth(newProp.width);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this_1.inputElement);\n break;\n case 'filterBarPlaceholder':\n if (this_1.filterInput) {\n Input.setPlaceholder(newProp.filterBarPlaceholder, this_1.filterInput);\n }\n break;\n case 'readonly':\n if (this_1.getModuleName() !== 'dropdownlist') {\n Input.setReadonly(newProp.readonly, this_1.inputElement);\n }\n this_1.setReadOnly();\n break;\n case 'cssClass':\n this_1.setCssClass(newProp.cssClass, oldProp.cssClass);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'enableRtl':\n this_1.setEnableRtl();\n break;\n case 'enabled':\n this_1.setEnable();\n break;\n case 'text':\n if (this_1.fields.disabled) {\n newProp.text = newProp.text && !this_1.isDisabledItemByIndex(this_1.getIndexByValue(this_1.getValueByText(newProp.text))) ? newProp.text : null;\n }\n if (newProp.text === null) {\n this_1.clearAll();\n break;\n }\n if (this_1.enableVirtualization) {\n this_1.updateValues();\n this_1.updateInputFields();\n this_1.notify('setCurrentViewDataAsync', {\n module: 'VirtualScroll'\n });\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initialRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initialRemoteRender) {\n var li = this_1.getElementByText(newProp.text);\n if (!this_1.checkValidLi(li)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 && this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.text, oldProp.text, 'text');\n } else if (newProp.text && this_1.dataSource instanceof DataManager) {\n var listLength_1 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.text) ? this_1.fields.value : this_1.fields.text;\n this_1.typedString = '';\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', newProp.text))).then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_1);\n _this.updateValues();\n } else {\n _this.setOldText(oldProp.text);\n }\n });\n } else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n } else {\n this_1.setOldText(oldProp.text);\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'value':\n if (this_1.fields.disabled) {\n newProp.value = newProp.value != null && !this_1.isDisableItemValue(newProp.value) ? newProp.value : null;\n }\n if (newProp.value === null) {\n this_1.clearAll();\n break;\n }\n if (this_1.allowObjectBinding && !isNullOrUndefined(newProp.value) && !isNullOrUndefined(oldProp.value) && this_1.isObjectInArray(newProp.value, [oldProp.value])) {\n return {\n value: void 0\n };\n }\n if (this_1.enableVirtualization) {\n this_1.updateValues();\n this_1.updateInputFields();\n this_1.notify('setCurrentViewDataAsync', {\n module: 'VirtualScroll'\n });\n this_1.preventChange = this_1.isAngular && this_1.preventChange ? !this_1.preventChange : this_1.preventChange;\n break;\n }\n this_1.notify('beforeValueChange', {\n newProp: newProp\n }); // gird component value type change\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initialRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initialRemoteRender) {\n var value = this_1.allowObjectBinding && !isNullOrUndefined(newProp.value) ? getValue(this_1.fields.value ? this_1.fields.value : '', newProp.value) : newProp.value;\n var item = this_1.getElementByValue(value);\n if (!this_1.checkValidLi(item)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 && this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.value, oldProp.value, 'value');\n } else if (newProp.value && this_1.dataSource instanceof DataManager) {\n var listLength_2 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.value) ? this_1.fields.text : this_1.fields.value;\n this_1.typedString = '';\n var value_3 = this_1.allowObjectBinding && !isNullOrUndefined(newProp.value) ? getValue(checkField, newProp.value) : newProp.value;\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', value_3))).then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_2);\n _this.updateValues();\n } else {\n _this.setOldValue(oldProp.value);\n }\n });\n } else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n } else {\n this_1.setOldValue(oldProp.value);\n }\n }\n this_1.updateInputFields();\n this_1.preventChange = this_1.isAngular && this_1.preventChange ? !this_1.preventChange : this_1.preventChange;\n }\n break;\n case 'index':\n if (this_1.fields.disabled) {\n newProp.index = newProp.index != null && !this_1.isDisabledItemByIndex(newProp.index) ? newProp.index : null;\n }\n if (newProp.index === null) {\n this_1.clearAll();\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initialRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initialRemoteRender && this_1.liCollections) {\n var element = this_1.liCollections[newProp.index];\n if (!this_1.checkValidLi(element)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 && this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.index, oldProp.index, 'index');\n } else {\n this_1.index = oldProp.index;\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'footerTemplate':\n if (this_1.popupObj) {\n this_1.setFooterTemplate(this_1.popupObj.element);\n }\n break;\n case 'headerTemplate':\n if (this_1.popupObj) {\n this_1.setHeaderTemplate(this_1.popupObj.element);\n }\n break;\n case 'valueTemplate':\n if (!isNullOrUndefined(this_1.itemData) && this_1.valueTemplate !== null) {\n this_1.setValueTemplate();\n }\n break;\n case 'allowFiltering':\n if (this_1.allowFiltering) {\n this_1.actionCompleteData = {\n ulElement: this_1.ulElement,\n list: this_1.listData,\n isUpdated: true\n };\n this_1.actionData = this_1.actionCompleteData;\n this_1.updateSelectElementData(this_1.allowFiltering);\n }\n break;\n case 'floatLabelType':\n Input.removeFloating(this_1.inputWrapper);\n Input.addFloating(this_1.inputElement, newProp.floatLabelType, this_1.placeholder, this_1.createElement);\n if (!isNullOrUndefined(this_1.inputWrapper.buttons[0]) && this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0] && this_1.floatLabelType !== 'Never') {\n this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'showClearButton':\n if (!this_1.inputWrapper.clearButton) {\n Input.setClearButton(newProp.showClearButton, this_1.inputElement, this_1.inputWrapper, null, this_1.createElement);\n this_1.bindClearEvent();\n }\n break;\n default:\n {\n // eslint-disable-next-line max-len\n var ddlProps = this_1.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this_1, ddlProps.newProperty, ddlProps.oldProperty);\n }\n break;\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var state_1 = _loop_1(prop);\n if (typeof state_1 === \"object\") return state_1.value;\n }\n };\n DropDownList.prototype.checkValidLi = function (element) {\n if (this.isValidLI(element)) {\n this.setSelection(element, null);\n return true;\n }\n return false;\n };\n DropDownList.prototype.setSelectionData = function (newProp, oldProp, prop) {\n var _this = this;\n var li;\n this.updateListValues = function () {\n if (prop === 'text') {\n li = _this.getElementByText(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldText(oldProp);\n }\n } else if (prop === 'value') {\n var fields = _this.fields.value ? _this.fields.value : '';\n var value = _this.allowObjectBinding && !isNullOrUndefined(newProp) ? getValue(fields, newProp) : newProp;\n li = _this.getElementByValue(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldValue(oldProp);\n }\n } else if (prop === 'index') {\n li = _this.liCollections[newProp];\n if (!_this.checkValidLi(li)) {\n _this.index = oldProp;\n }\n }\n };\n };\n DropDownList.prototype.updatePopupState = function () {\n if (this.beforePopupOpen) {\n this.beforePopupOpen = false;\n this.showPopup();\n }\n };\n DropDownList.prototype.setReadOnly = function () {\n if (this.readonly) {\n addClass([this.inputWrapper.container], ['e-readonly']);\n } else {\n removeClass([this.inputWrapper.container], ['e-readonly']);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-function\n DropDownList.prototype.setInputValue = function (newProp, oldProp) {};\n DropDownList.prototype.setCssClass = function (newClass, oldClass) {\n if (!isNullOrUndefined(oldClass)) {\n oldClass = oldClass.replace(/\\s+/g, ' ').trim();\n }\n if (!isNullOrUndefined(newClass)) {\n newClass = newClass.replace(/\\s+/g, ' ').trim();\n }\n Input.setCssClass(newClass, [this.inputWrapper.container], oldClass);\n if (this.popupObj) {\n Input.setCssClass(newClass, [this.popupObj.element], oldClass);\n }\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 DropDownList.prototype.getModuleName = function () {\n return 'dropdownlist';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n */\n DropDownList.prototype.showPopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (!this.enabled) {\n return;\n }\n this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;\n if (this.isReact && this.getModuleName() === 'combobox' && this.itemTemplate && this.isCustomFilter && this.isAddNewItemTemplate) {\n this.renderList();\n this.isAddNewItemTemplate = false;\n }\n if (this.isFiltering() && this.dataSource instanceof DataManager && this.actionData.list !== this.actionCompleteData.list && this.actionData.list && this.actionData.ulElement) {\n this.actionCompleteData = this.actionData;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n }\n if (this.beforePopupOpen) {\n this.refreshPopup();\n return;\n }\n this.beforePopupOpen = true;\n if (this.isFiltering() && !this.isActive && this.actionCompleteData.list && this.actionCompleteData.list[0]) {\n this.isActive = true;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n } else if (isNullOrUndefined(this.list) || !isUndefined(this.list) && (this.list.classList.contains(dropDownBaseClasses.noData) || this.list.querySelectorAll('.' + dropDownBaseClasses.li).length <= 0)) {\n if (this.isReact && this.isFiltering() && this.itemTemplate != null) {\n this.isSecondClick = false;\n }\n this.renderList(e);\n }\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 this.notify('setCurrentViewDataAsync', {\n module: 'VirtualScroll'\n });\n }\n }\n if (this.beforePopupOpen) {\n this.invokeRenderPopup(e);\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 // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var duration = this.element.tagName === this.getNgDirective() && this.itemTemplate ? 500 : 100;\n if (!this.isSecondClick && this.isReact && !this.isDropDownClick && this.isFiltering() && this.itemTemplate != null) {\n setTimeout(function () {\n proxy.cloneElements();\n proxy.isSecondClick = true;\n }, duration);\n }\n };\n DropDownList.prototype.invokeRenderPopup = function (e) {\n if (Browser.isDevice && this.isFilterLayout()) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_2 = this;\n window.onpopstate = function () {\n proxy_2.hidePopup();\n };\n history.pushState({}, '');\n }\n if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData))) {\n this.renderPopup(e);\n }\n };\n DropDownList.prototype.renderHightSearch = function () {\n // update high light search\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Hides the popup if it is in an open state.\n *\n * @returns {void}\n */\n DropDownList.prototype.hidePopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (this.isEscapeKey && this.getModuleName() === 'dropdownlist') {\n if (!isNullOrUndefined(this.inputElement)) {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.isEscapeKey = false;\n if (!isNullOrUndefined(this.index)) {\n var value = this.allowObjectBinding ? getValue(this.fields.value ? this.fields.value : '', this.value) : this.value;\n var element = this.findListElement(this.ulElement, 'li', 'data-value', value);\n this.selectedLI = this.liCollections[this.index] || element;\n if (this.selectedLI) {\n this.updateSelectedItem(this.selectedLI, null, true);\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n }\n }\n } else {\n this.resetSelection();\n }\n }\n this.isVirtualTrackHeight = false;\n this.customFilterQuery = null;\n this.closePopup(0, e);\n var dataItem = this.getItemData();\n var isSelectVal = !isNullOrUndefined(this.selectedLI);\n if (isSelectVal && this.enableVirtualization && this.selectedLI.classList) {\n isSelectVal = this.selectedLI.classList.contains('e-active');\n }\n if (this.inputElement && this.inputElement.value.trim() === '' && !this.isInteracted && (this.isSelectCustom || isSelectVal && this.inputElement.value !== dataItem.text)) {\n this.isSelectCustom = false;\n this.clearAll(e);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Sets the focus on the component for interaction.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusIn = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.targetElement().classList.contains(dropDownListClasses.disable)) {\n return;\n }\n var isFocused = false;\n if (this.preventFocus && Browser.isDevice) {\n this.inputWrapper.container.tabIndex = 1;\n this.inputWrapper.container.focus();\n this.preventFocus = false;\n isFocused = true;\n }\n if (!isFocused) {\n this.targetElement().focus();\n }\n addClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n this.onFocus(e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusOut = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (!this.enabled) {\n return;\n }\n if (!this.enableVirtualization && (this.getModuleName() === 'combobox' || this.getModuleName() === 'autocomplete')) {\n this.isTyped = true;\n }\n this.hidePopup(e);\n if (this.targetElement()) {\n this.targetElement().blur();\n }\n removeClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\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 DropDownList.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 this.dataSource = this.listData;\n if (li.classList.contains(dropDownListClasses.focus)) {\n this.removeFocus();\n }\n if (li.classList.contains(dropDownListClasses.selected)) {\n this.clear();\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 DropDownList.prototype.destroy = function () {\n this.isActive = false;\n if (this.showClearButton) {\n this.clearButton = document.getElementsByClassName('e-clear-icon')[0];\n }\n resetIncrementalSearchValues(this.element.id);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n this.hidePopup();\n if (this.popupObj) {\n this.popupObj.hide();\n }\n this.unWireEvent();\n if (this.list) {\n this.unWireListEvents();\n }\n if (this.element && !this.element.classList.contains('e-' + this.getModuleName())) {\n return;\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-describedby', 'aria-label'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputElement.removeAttribute(attrArray[i]);\n }\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n this.inputElement.classList.remove('e-input');\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.element.style.display = 'block';\n if (this.inputWrapper.container && this.inputWrapper.container.parentElement) {\n if (this.inputWrapper.container.parentElement.tagName === this.getNgDirective()) {\n detach(this.inputWrapper.container);\n } else {\n this.inputWrapper.container.parentElement.insertBefore(this.element, this.inputWrapper.container);\n detach(this.inputWrapper.container);\n }\n }\n delete this.hiddenElement;\n this.filterInput = null;\n this.keyboardModule = null;\n this.ulElement = null;\n this.list = null;\n this.clearIconElement = null;\n this.popupObj = null;\n this.popupContentElement = null;\n this.rippleFun = null;\n this.selectedLI = null;\n this.liCollections = null;\n this.item = null;\n this.footer = null;\n this.header = null;\n this.previousSelectedLI = null;\n this.valueTempElement = null;\n this.actionData.ulElement = null;\n if (this.inputElement && !isNullOrUndefined(this.inputElement.onchange)) {\n this.inputElement.onchange = null;\n }\n if (this.inputElement && !isNullOrUndefined(this.inputElement.onselect)) {\n this.inputElement.onselect = null;\n }\n Input.destroy({\n element: this.inputElement,\n floatLabelType: this.floatLabelType,\n properties: this.properties,\n buttons: this.inputWrapper.container.querySelectorAll('.e-input-group-icon')[0]\n }, this.clearButton);\n this.clearButton = null;\n this.inputElement = null;\n this.inputWrapper = null;\n _super.prototype.destroy.call(this);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n DropDownList.prototype.getItems = function () {\n if (!this.list) {\n if (this.dataSource instanceof DataManager) {\n this.initialRemoteRender = true;\n }\n this.renderList();\n }\n return this.ulElement ? _super.prototype.getItems.call(this) : [];\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n */\n DropDownList.prototype.getDataByValue = function (value) {\n return _super.prototype.getDataByValue.call(this, value);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Allows you to clear the selected values from the component.\n *\n * @returns {void}\n */\n DropDownList.prototype.clear = function () {\n this.value = null;\n };\n __decorate([Property(null)], DropDownList.prototype, \"cssClass\", void 0);\n __decorate([Property('100%')], DropDownList.prototype, \"width\", void 0);\n __decorate([Property(true)], DropDownList.prototype, \"enabled\", void 0);\n __decorate([Property(false)], DropDownList.prototype, \"enablePersistence\", void 0);\n __decorate([Property('300px')], DropDownList.prototype, \"popupHeight\", void 0);\n __decorate([Property('100%')], DropDownList.prototype, \"popupWidth\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"placeholder\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([Property({})], DropDownList.prototype, \"htmlAttributes\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"query\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"valueTemplate\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"headerTemplate\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"footerTemplate\", void 0);\n __decorate([Property(false)], DropDownList.prototype, \"allowFiltering\", void 0);\n __decorate([Property(true)], DropDownList.prototype, \"isDeviceFullScreen\", void 0);\n __decorate([Property(false)], DropDownList.prototype, \"readonly\", void 0);\n __decorate([Property(false)], DropDownList.prototype, \"enableVirtualization\", void 0);\n __decorate([Property(false)], DropDownList.prototype, \"allowResize\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"text\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"value\", void 0);\n __decorate([Property(false)], DropDownList.prototype, \"allowObjectBinding\", void 0);\n __decorate([Property(null)], DropDownList.prototype, \"index\", void 0);\n __decorate([Property('Never')], DropDownList.prototype, \"floatLabelType\", void 0);\n __decorate([Property(false)], DropDownList.prototype, \"showClearButton\", void 0);\n __decorate([Event()], DropDownList.prototype, \"filtering\", void 0);\n __decorate([Event()], DropDownList.prototype, \"change\", void 0);\n __decorate([Event()], DropDownList.prototype, \"beforeOpen\", void 0);\n __decorate([Event()], DropDownList.prototype, \"open\", void 0);\n __decorate([Event()], DropDownList.prototype, \"close\", void 0);\n __decorate([Event()], DropDownList.prototype, \"blur\", void 0);\n __decorate([Event()], DropDownList.prototype, \"focus\", void 0);\n __decorate([Event()], DropDownList.prototype, \"resizeStop\", void 0);\n __decorate([Event()], DropDownList.prototype, \"resizing\", void 0);\n __decorate([Event()], DropDownList.prototype, \"resizeStart\", void 0);\n DropDownList = __decorate([NotifyPropertyChanges], DropDownList);\n return DropDownList;\n}(DropDownBase);\nexport { DropDownList };"],"sourceRoot":""}