@syncfusion/ej2-multicolumn-combobox 26.2.8 → 26.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-multicolumn-combobox.umd.min.js","sources":["../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\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, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Grid, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type=\"text\" id=\"multi-column\"></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo(\"#multi-column\");\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id = this.element.id + '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderGrid();\n this.renderInput();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n this.gridObj = new Grid({\n dataSource: this.dataSource,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n query: this.query,\n allowTextWrap: this.allowTextWrap,\n height: this.popupHeight,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionBegin: function (args) { _this.trigger('actionBegin', args); },\n actionComplete: function (args) {\n _this.trigger('actionComplete', args);\n if (args.requestType === 'sorting') {\n _this.updateRowSelection(args);\n }\n var dataRows = args.rows;\n if (_this.isDataFiltered && dataRows.length > 0 && _this.inputEle.value !== '' && args.requestType !== 'sorting') {\n var firstRowEle = _this.gridObj.getRows()[0];\n firstRowEle.classList.add('e-row-focus');\n }\n _this.popupObj.refreshPosition();\n },\n keyPressed: function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (_this.isPopupOpen) {\n _this.selectedGridRow(_this.gridObj.getRows()[_this.gridObj.selectedRowIndex], args, true);\n _this.hidePopup(args);\n _this.focusIn(args);\n }\n }\n if (_this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n _this.gridKeyActionHandler(args, true);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.textWrapSettings.wrapMode = this.textWrapMode;\n this.gridObj.appendTo(this.gridEle);\n };\n // eslint-disable @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var values = Object.values(data).map(String);\n var isRowPresent = values.includes(selectedValue) && values.includes(selectedText);\n return isRowPresent;\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n var data = row.data;\n var index = row.index;\n _this.selectDataRow(data, index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ? this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n ;\n // eslint-enable @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (column) {\n var changeType;\n if (column.displayAsCheckBox && !column.format) {\n changeType = 'boolean';\n }\n return {\n field: column.field,\n headerText: column.header,\n width: column.width,\n textAlign: column.textAlign === '' && _this.enableRtl ? 'Right' : column.textAlign,\n format: column.format,\n displayAsCheckBox: column.displayAsCheckBox,\n template: column.template,\n headerTemplate: column.headerTemplate,\n customAttributes: column.customAttributes,\n type: changeType\n };\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [this.fields.groupBy],\n captionTemplate: (this.groupTemplate && this.fields.groupBy !== '' && !isNOU(this.fields.groupBy))\n ? this.groupTemplate : \"${key}\"\n };\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (this.popupDiv.classList.contains(NODATA) && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n if (this.isInitialRender) {\n var rowHeight = !this.popupDiv.classList.contains(NODATA) ? this.popupDiv.querySelector('.e-gridcontent tr').getBoundingClientRect().height : this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n this.inputEle.setAttribute('aria-expanded', 'false');\n this.inputEle.setAttribute('aria-readOnly', this.readonly.toString());\n this.inputEle.setAttribute('aria-disabled', this.disabled.toString());\n this.inputEle.setAttribute('autocomplete', 'off');\n this.inputEle.setAttribute('autocapitalize', 'off');\n this.inputEle.setAttribute('spellcheck', 'false');\n this.inputEle.setAttribute('tabindex', '0');\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n if (!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) {\n this.initValue(null, null, true);\n }\n };\n /* To calculate the width when change via set model */\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n var ddElement = this.inputWrapper;\n if (!isNOU(inputWidth)) {\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = (inputWidth.match(/px|%|em/)) ? (inputWidth) : (formatUnit(inputWidth));\n }\n }\n };\n MultiColumnComboBox.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 this.inputWrapper.classList.add(this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr === 'disabled') {\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n }\n else if (htmlAttr === 'readonly') {\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n }\n else if (htmlAttr === 'style') {\n this.inputWrapper.setAttribute('style', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n var defaultAttr = ['title', 'id', 'placeholder',\n 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(this.htmlAttributes[\"\" + htmlAttr], this.inputEle);\n }\n else {\n this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n else {\n this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.inputEle.setAttribute('aria-disabled', 'false');\n this.inputWrapper.setAttribute('aria-disabled', 'false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.inputEle.setAttribute('aria-disabled', 'true');\n this.inputWrapper.setAttribute('aria-disabled', 'true');\n }\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var filteredData = dataLists.filter(function (item) {\n return item[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n }\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n return data[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n item = dataLists[_this.index];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var ChangeEventArgs = {\n value: item ? item[this.fields.value].toString() : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n Input.setValue(item[this.fields.text].toString(), this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: item[this.fields.value].toString(),\n currentText: item[this.fields.text].toString(),\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n this.footer = this.footer ? this.footer : this.popupEle.querySelector('.e-popup-footer');\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight, dataSourceCount) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n var totalRowHeight = dataSourceCount * this.popupRowHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n totalRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (totalRowHeight < this.prevGridHeight ? (totalRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.indexOf('%') > -1) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var fieldText = selectedRecords ? selectedRecords[this.fields.text].toString() : '';\n var fieldValue = selectedRecords ? selectedRecords[this.fields.value].toString() : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: fieldText, value: fieldValue },\n event: e,\n cancel: false,\n value: fieldValue,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var selectedRecord = eventArgs.itemData;\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecord[_this.fields.value], selectedRecord[_this.fields.text], _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecord[_this.fields.text], _this.inputEle, _this.floatLabelType, _this.showClearButton);\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text ? text : this.text;\n this.value = value ? value : this.value;\n this.index = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n var inputValue_1 = e.target.value.toLowerCase();\n var customFiltering_1 = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: inputValue_1,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n customFiltering_1 = true;\n _this.filterAction(dataSource, inputValue_1, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !customFiltering_1) {\n _this.filterAction(_this.dataSource, inputValue_1, _this.query, _this.fields);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n var _this = this;\n var data;\n if (this.dataSource instanceof DataManager) {\n var query = new Query();\n this.dataSource.executeQuery(query).then(function (result) {\n var totaldata = result.result;\n data = totaldata.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n _this.selectFilteredRows(data);\n });\n }\n else if (Array.isArray(this.dataSource)) {\n data = this.dataSource.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n this.selectFilteredRows(data);\n }\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data) {\n if (data.length > 0) {\n this.matchedContent = data[0];\n }\n else {\n this.matchedContent = null;\n }\n if (this.matchedContent) {\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n }\n else {\n this.matchedRowEle = null;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filterAction = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var filterType = this.filterType.toString().toLowerCase();\n var isQuery = query || new Query();\n var filteredData;\n if (dataSource instanceof DataManager) {\n // Handle filtering for DataManager\n dataSource.executeQuery(isQuery).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var dataLength = dataLists.length;\n filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });\n _this.updateGridDataSource(filteredData, dataLength);\n });\n }\n else if (Array.isArray(dataSource)) {\n // Handle filtering for array data source\n filteredData = dataSource.filter(function (item) {\n return _this.filterData(item, filterType, inputValue, fields);\n });\n this.updateGridDataSource(filteredData);\n }\n };\n MultiColumnComboBox.prototype.filterData = function (item, filterType, inputValue, fields) {\n var itemValue = item[fields ? fields.text : this.fields.text].toString().toLowerCase();\n switch (filterType) {\n case 'startswith':\n return itemValue.startsWith(inputValue);\n case 'endswith':\n return itemValue.endsWith(inputValue);\n case 'contains':\n return itemValue.includes(inputValue);\n default:\n return false;\n }\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function (dataSource, dataLength) {\n var autoHeight = true;\n if (dataSource.length > 0) {\n var length_1 = this.dataSource instanceof DataManager ? dataLength : this.dataSource.length;\n autoHeight = length_1 !== dataSource.length;\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = dataSource;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n this.updateGridHeight(true, autoHeight, dataSource.length);\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!(e.target.closest('.e-multicolumn-list'))) {\n this.focusOut();\n }\n return;\n }\n var target = e.target;\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n this.updateValuesOnInput(e);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues) {\n var _this = this;\n var e = mouseEvent ? mouseEvent : keyEvent;\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n setTimeout(function () {\n _this.inputEle.value = _this.matchedContent[_this.fields.text].toString();\n _this.value = _this.matchedContent[_this.fields.value].toString();\n var selectIndex = _this.findIndex(_this.gridObj.currentViewData, _this.matchedContent);\n _this.index = selectIndex;\n _this.text = _this.matchedContent[_this.fields.text].toString();\n _this.gridObj.selectRow(selectIndex);\n _this.selectedGridRow(_this.gridObj.getRowByIndex(selectIndex), e);\n _this.previousItemElement = _this.gridObj.getSelectedRows()[0];\n }, 100);\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n if (isGroup) {\n if (e.key === 'ArrowDown') {\n e.action = 'moveDown';\n }\n else if (e.key === 'ArrowUp') {\n e.action = 'moveUp';\n }\n else if (e.key === 'End') {\n e.action = 'end';\n }\n else if (e.key === 'Home') {\n e.action = 'home';\n }\n else if (e.key === 'Tab') {\n e.action = 'tab';\n }\n else if (e.key === 'Escape') {\n e.action = 'escape';\n }\n if (e.shiftKey && e.key === 'Tab') {\n e.action = 'shiftTab';\n }\n if (e.altKey && e.key === 'ArrowUp') {\n e.action = 'altUp';\n }\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index = !this.fields.groupBy ? this.gridObj.selectedRowIndex : this.gridObj.selectedRowIndex ? this.gridObj.selectedRowIndex : 0;\n if ((index === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index = 0;\n }\n else if ((index >= this.gridObj.getRows().length && e.action === 'moveDown') || (e.action === 'end')) {\n index = this.gridObj.getRows().length - 1;\n }\n else if (e.action === 'moveDown' && (index >= 0 && index <= this.gridObj.getRows().length) && (this.fields.groupBy || isInputTarget)) {\n index += 1;\n }\n else if (e.action === 'moveUp' && index > 0 && (this.fields.groupBy) || isInputTarget) {\n index -= 1;\n }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[index], e, true);\n }\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_popup', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n var dataRows = _this.gridObj.currentViewData;\n dataRows.forEach(function (data, index) {\n _this.selectDataRow(data, index);\n });\n }\n _this.focusIn(e);\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (contentEle.querySelector('.e-row')) {\n _this.inputEle.setAttribute('aria-activedescendant', contentEle.querySelector('.e-row').getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n _this.inputEle.value = _this.text ? _this.text.toString() : '';\n if (e) {\n var target = e.target;\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.dataSource;\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\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 MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n return dataLists.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n });\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue();\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{ field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n if (this.gridObj) {\n this.gridObj.dataSource = newProp.dataSource;\n }\n break;\n case 'query':\n if (this.gridObj) {\n this.gridObj.query = newProp.query;\n }\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n this.sortType = newProp.sortType;\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'allowTextWrap':\n if (this.gridObj) {\n if (!(isNOU(newProp.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.allowTextWrap;\n }\n }\n break;\n case 'textWrapMode':\n if (this.gridObj) {\n if (!(isNOU(newProp.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.textWrapMode;\n }\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], MultiColumnComboBox.prototype, \"textWrapMode\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","ICONANIMATION","NODATA","DISABLED","INPUTFOCUS","MULTICOLUMNLIST","MULTICOLUMNGRID","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","FilterType","SortOrder","SortType","WrapMode","_super","ChildProperty","FieldSettings","Property","apply","Column","GridSettings","Component","MultiColumnComboBox","preRender","element","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","persistData","getDirective","getPersistData","addOnPersist","data","enablePersistence","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderGrid","renderInput","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","_this","gridColumns","getGridColumns","sortOrder","gridObj","dataSource","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","query","allowTextWrap","height","popupHeight","allowMultiSorting","sortType","toString","toLowerCase","rowTemplate","itemTemplate","dataBound","onDataBound","actionFailure","args","onActionFailure","actionBegin","trigger","actionComplete","requestType","updateRowSelection","dataRows","rows","isDataFiltered","inputEle","value","getRows","classList","add","popupObj","refreshPosition","keyPressed","cancel","isPopupOpen","selectedGridRow","selectedRowIndex","hidePopup","focusIn","fields","groupBy","gridKeyActionHandler","updateGroupByField","isPrimaryKey","sortSettings","field","text","direction","Ascending","Descending","textWrapSettings","wrapMode","textWrapMode","appendTo","isRowMatching","selectedValue","selectedText","values","map","String","includes","forEach","row","index","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","item","keys","every","column","changeType","displayAsCheckBox","format","headerText","header","width","textAlign","template","headerTemplate","customAttributes","type","allowGrouping","groupSettings","showDropArea","captionTemplate","groupTemplate","isVue","dataCount","popupChild","querySelector","l10nUpdate","removeChild","addClass","contains","removeClass","noRecordEle","isInitialRender","getBoundingClientRect","popupRowHeight","hide","popupEle","style","visibility","tagName","getAttribute","setAttribute","readonly","disabled","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","setElementWidth","initValue","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","_a","htmlAttr","setEnable","dataBind","indexOf","setPlaceholder","setEnabled","isRerender","isValue","isInitial","updateValues","dataList","result","updateCurrentValues","currentValue","currentText","currentIndex","value_1","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","undefined","DataManager","executeQuery","Query","then","e","dataLists","filteredData","filter","updateChangeEvent","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","setValue","attributes","aria-label","document","body","createPopup","prepend","footerTemplate","setFooterTemplate","getSize","maxHeight","footer","Math","round","parseInt","updateGridHeight","isFilter","autoHeight","dataSourceCount","scrollBarHeight","gridContentEle","getContent","offsetHeight","clientHeight","totalRowHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","innerHTML","tempArr","getTemplateFunction","count","isStringTemplate","slice","call","append","templateId","templatestring","noRecord","noRecordsTemplate","actionFailureTemplate","l10n","L10n","locale","getConstant","compile","content","tempEle","select","outerHTML","ispopupWidth","currentDimension","popupWidth","size","offsetWidth","documentElement","parseFloat","isKeyNav","eventArgs","selectedRecords","fieldText","fieldValue","isUpdateVal","selectedRecord","shiftKey","altKey","triggerChangeEvent","inputHandler","inputValue_1","customFiltering_1","eventArgs_1","showPopup","allowFiltering","preventDefaultAction","updateData","filterAction","updateInputValue","inputValue","totaldata","startsWith","selectFilteredRows","isArray","selectedIndex","currentViewData","getRowByIndex","filterType","isQuery","dataLength","filterData","updateGridDataSource","itemValue","endsWith","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","bind","eventName","unWireEvents","remove","destroy","preventDefault","focusedEle","closest","focusOut","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","setTimeout","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","split","action","updateSelectedItem","isGroup","isUpdateIndex","isInputTarget","clearIconEle","display","calculateWidth","isInputOpen","popup","animation","name","duration","contentEle","activeRow","aria-expanded","aria-owns","aria-controls","show","Animation","removeAttribute","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","Both","Event","NotifyPropertyChanges","options","gridInject"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-multicolumn-combobox.umd.min.js","sources":["../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\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, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Grid, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], GridSettings.prototype, \"textWrapMode\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type=\"text\" id=\"multi-column\"></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo(\"#multi-column\");\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id = this.element.id + '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderGrid();\n this.renderInput();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n this.gridObj = new Grid({\n dataSource: this.dataSource,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n query: this.query,\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionBegin: function (args) { _this.trigger('actionBegin', args); },\n actionComplete: function (args) {\n _this.trigger('actionComplete', args);\n if (args.requestType === 'sorting') {\n _this.updateRowSelection(args);\n }\n var dataRows = args.rows;\n if (_this.isDataFiltered && dataRows.length > 0 && _this.inputEle.value !== '' && args.requestType !== 'sorting') {\n var firstRowEle = _this.gridObj.getRows()[0];\n firstRowEle.classList.add('e-row-focus');\n }\n _this.popupObj.refreshPosition();\n },\n keyPressed: function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (_this.isPopupOpen) {\n _this.selectedGridRow(_this.gridObj.getRows()[_this.gridObj.selectedRowIndex], args, true);\n _this.hidePopup(args);\n _this.focusIn(args);\n }\n }\n if (_this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n _this.gridKeyActionHandler(args, true);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.appendTo(this.gridEle);\n };\n // eslint-disable @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var values = Object.values(data).map(String);\n var isRowPresent = values.includes(selectedValue) && values.includes(selectedText);\n return isRowPresent;\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n var data = row.data;\n var index = row.index;\n _this.selectDataRow(data, index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ? this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n ;\n // eslint-enable @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (column) {\n var changeType;\n if (column.displayAsCheckBox && !column.format) {\n changeType = 'boolean';\n }\n return {\n field: column.field,\n headerText: column.header,\n width: column.width,\n textAlign: column.textAlign === '' && _this.enableRtl ? 'Right' : column.textAlign,\n format: column.format,\n displayAsCheckBox: column.displayAsCheckBox,\n template: column.template,\n headerTemplate: column.headerTemplate,\n customAttributes: column.customAttributes,\n type: changeType\n };\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [this.fields.groupBy],\n captionTemplate: (this.groupTemplate && this.fields.groupBy !== '' && !isNOU(this.fields.groupBy))\n ? this.groupTemplate : \"${key}\"\n };\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (this.popupDiv.classList.contains(NODATA) && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n if (this.isInitialRender) {\n var rowHeight = !this.popupDiv.classList.contains(NODATA) ? this.popupDiv.querySelector('.e-gridcontent tr').getBoundingClientRect().height : this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n this.inputEle.setAttribute('aria-expanded', 'false');\n this.inputEle.setAttribute('aria-readOnly', this.readonly.toString());\n this.inputEle.setAttribute('aria-disabled', this.disabled.toString());\n this.inputEle.setAttribute('autocomplete', 'off');\n this.inputEle.setAttribute('autocapitalize', 'off');\n this.inputEle.setAttribute('spellcheck', 'false');\n this.inputEle.setAttribute('tabindex', '0');\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n if (!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) {\n this.initValue(null, null, true);\n }\n };\n /* To calculate the width when change via set model */\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n var ddElement = this.inputWrapper;\n if (!isNOU(inputWidth)) {\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = (inputWidth.match(/px|%|em/)) ? (inputWidth) : (formatUnit(inputWidth));\n }\n }\n };\n MultiColumnComboBox.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 this.inputWrapper.classList.add(this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr === 'disabled') {\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n }\n else if (htmlAttr === 'readonly') {\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n }\n else if (htmlAttr === 'style') {\n this.inputWrapper.setAttribute('style', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n var defaultAttr = ['title', 'id', 'placeholder',\n 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(this.htmlAttributes[\"\" + htmlAttr], this.inputEle);\n }\n else {\n this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n else {\n this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.inputEle.setAttribute('aria-disabled', 'false');\n this.inputWrapper.setAttribute('aria-disabled', 'false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.inputEle.setAttribute('aria-disabled', 'true');\n this.inputWrapper.setAttribute('aria-disabled', 'true');\n }\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var filteredData = dataLists.filter(function (item) {\n return item[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n }\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n return data[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n item = dataLists[_this.index];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var ChangeEventArgs = {\n value: item ? item[this.fields.value].toString() : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n Input.setValue(item[this.fields.text].toString(), this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: item[this.fields.value].toString(),\n currentText: item[this.fields.text].toString(),\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n this.footer = this.footer ? this.footer : this.popupEle.querySelector('.e-popup-footer');\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight, dataSourceCount) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n var totalRowHeight = dataSourceCount * this.popupRowHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n totalRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (totalRowHeight < this.prevGridHeight ? (totalRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.indexOf('%') > -1) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var fieldText = selectedRecords ? selectedRecords[this.fields.text].toString() : '';\n var fieldValue = selectedRecords ? selectedRecords[this.fields.value].toString() : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: fieldText, value: fieldValue },\n event: e,\n cancel: false,\n value: fieldValue,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var selectedRecord = eventArgs.itemData;\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecord[_this.fields.value], selectedRecord[_this.fields.text], _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecord[_this.fields.text], _this.inputEle, _this.floatLabelType, _this.showClearButton);\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text ? text : this.text;\n this.value = value ? value : this.value;\n this.index = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n var inputValue_1 = e.target.value.toLowerCase();\n var customFiltering_1 = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: inputValue_1,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n customFiltering_1 = true;\n _this.filterAction(dataSource, inputValue_1, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !customFiltering_1) {\n _this.filterAction(_this.dataSource, inputValue_1, _this.query, _this.fields);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n var _this = this;\n var data;\n if (this.dataSource instanceof DataManager) {\n var query = new Query();\n this.dataSource.executeQuery(query).then(function (result) {\n var totaldata = result.result;\n data = totaldata.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n _this.selectFilteredRows(data);\n });\n }\n else if (Array.isArray(this.dataSource)) {\n data = this.dataSource.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n this.selectFilteredRows(data);\n }\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data) {\n if (data.length > 0) {\n this.matchedContent = data[0];\n }\n else {\n this.matchedContent = null;\n }\n if (this.matchedContent) {\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n }\n else {\n this.matchedRowEle = null;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filterAction = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var filterType = this.filterType.toString().toLowerCase();\n var isQuery = query || new Query();\n var filteredData;\n if (dataSource instanceof DataManager) {\n // Handle filtering for DataManager\n dataSource.executeQuery(isQuery).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var dataLength = dataLists.length;\n filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });\n _this.updateGridDataSource(filteredData, dataLength);\n });\n }\n else if (Array.isArray(dataSource)) {\n // Handle filtering for array data source\n filteredData = dataSource.filter(function (item) {\n return _this.filterData(item, filterType, inputValue, fields);\n });\n this.updateGridDataSource(filteredData);\n }\n };\n MultiColumnComboBox.prototype.filterData = function (item, filterType, inputValue, fields) {\n var itemValue = item[fields ? fields.text : this.fields.text].toString().toLowerCase();\n switch (filterType) {\n case 'startswith':\n return itemValue.startsWith(inputValue);\n case 'endswith':\n return itemValue.endsWith(inputValue);\n case 'contains':\n return itemValue.includes(inputValue);\n default:\n return false;\n }\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function (dataSource, dataLength) {\n var autoHeight = true;\n if (dataSource.length > 0) {\n var length_1 = this.dataSource instanceof DataManager ? dataLength : this.dataSource.length;\n autoHeight = length_1 !== dataSource.length;\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = dataSource;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n this.updateGridHeight(true, autoHeight, dataSource.length);\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!(e.target.closest('.e-multicolumn-list'))) {\n this.focusOut();\n }\n return;\n }\n var target = e.target;\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n this.updateValuesOnInput(e);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues) {\n var _this = this;\n var e = mouseEvent ? mouseEvent : keyEvent;\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n setTimeout(function () {\n _this.inputEle.value = _this.matchedContent[_this.fields.text].toString();\n _this.value = _this.matchedContent[_this.fields.value].toString();\n var selectIndex = _this.findIndex(_this.gridObj.currentViewData, _this.matchedContent);\n _this.index = selectIndex;\n _this.text = _this.matchedContent[_this.fields.text].toString();\n _this.gridObj.selectRow(selectIndex);\n _this.selectedGridRow(_this.gridObj.getRowByIndex(selectIndex), e);\n _this.previousItemElement = _this.gridObj.getSelectedRows()[0];\n }, 100);\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n if (isGroup) {\n if (e.key === 'ArrowDown') {\n e.action = 'moveDown';\n }\n else if (e.key === 'ArrowUp') {\n e.action = 'moveUp';\n }\n else if (e.key === 'End') {\n e.action = 'end';\n }\n else if (e.key === 'Home') {\n e.action = 'home';\n }\n else if (e.key === 'Tab') {\n e.action = 'tab';\n }\n else if (e.key === 'Escape') {\n e.action = 'escape';\n }\n if (e.shiftKey && e.key === 'Tab') {\n e.action = 'shiftTab';\n }\n if (e.altKey && e.key === 'ArrowUp') {\n e.action = 'altUp';\n }\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index = !this.fields.groupBy ? this.gridObj.selectedRowIndex : this.gridObj.selectedRowIndex ? this.gridObj.selectedRowIndex : 0;\n if ((index === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index = 0;\n }\n else if ((index >= this.gridObj.getRows().length && e.action === 'moveDown') || (e.action === 'end')) {\n index = this.gridObj.getRows().length - 1;\n }\n else if (e.action === 'moveDown' && (index >= 0 && index <= this.gridObj.getRows().length) && (this.fields.groupBy || isInputTarget)) {\n index += 1;\n }\n else if (e.action === 'moveUp' && index > 0 && (this.fields.groupBy) || isInputTarget) {\n index -= 1;\n }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[index], e, true);\n }\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_popup', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n var dataRows = _this.gridObj.currentViewData;\n dataRows.forEach(function (data, index) {\n _this.selectDataRow(data, index);\n });\n }\n _this.focusIn(e);\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (contentEle.querySelector('.e-row')) {\n _this.inputEle.setAttribute('aria-activedescendant', contentEle.querySelector('.e-row').getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n _this.inputEle.value = _this.text ? _this.text.toString() : '';\n if (e) {\n var target = e.target;\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.dataSource;\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\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 MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n return dataLists.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n });\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue();\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{ field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n if (this.gridObj) {\n this.gridObj.dataSource = newProp.dataSource;\n }\n break;\n case 'query':\n if (this.gridObj) {\n this.gridObj.query = newProp.query;\n }\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n if (!(isNOU(newProp.gridSettings.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.gridSettings.allowTextWrap;\n }\n if (!(isNOU(newProp.gridSettings.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.gridSettings.textWrapMode;\n }\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n this.sortType = newProp.sortType;\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","ICONANIMATION","NODATA","DISABLED","INPUTFOCUS","MULTICOLUMNLIST","MULTICOLUMNGRID","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","FilterType","SortOrder","SortType","WrapMode","_super","ChildProperty","FieldSettings","Property","apply","Column","GridSettings","Both","Component","MultiColumnComboBox","preRender","element","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","persistData","getDirective","getPersistData","addOnPersist","data","enablePersistence","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderGrid","renderInput","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","_this","gridColumns","getGridColumns","sortOrder","gridObj","dataSource","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","query","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowMultiSorting","sortType","toString","toLowerCase","rowTemplate","itemTemplate","dataBound","onDataBound","actionFailure","args","onActionFailure","actionBegin","trigger","actionComplete","requestType","updateRowSelection","dataRows","rows","isDataFiltered","inputEle","value","getRows","classList","add","popupObj","refreshPosition","keyPressed","cancel","isPopupOpen","selectedGridRow","selectedRowIndex","hidePopup","focusIn","fields","groupBy","gridKeyActionHandler","updateGroupByField","isPrimaryKey","sortSettings","field","text","direction","Ascending","Descending","appendTo","isRowMatching","selectedValue","selectedText","values","map","String","includes","forEach","row","index","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","item","keys","every","column","changeType","displayAsCheckBox","format","headerText","header","width","textAlign","template","headerTemplate","customAttributes","type","allowGrouping","groupSettings","showDropArea","captionTemplate","groupTemplate","isVue","dataCount","popupChild","querySelector","l10nUpdate","removeChild","addClass","contains","removeClass","noRecordEle","isInitialRender","getBoundingClientRect","popupRowHeight","hide","popupEle","style","visibility","tagName","getAttribute","setAttribute","readonly","disabled","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","setElementWidth","initValue","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","_a","htmlAttr","setEnable","dataBind","indexOf","setPlaceholder","setEnabled","isRerender","isValue","isInitial","updateValues","dataList","result","updateCurrentValues","currentValue","currentText","currentIndex","value_1","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","undefined","DataManager","executeQuery","Query","then","e","dataLists","filteredData","filter","updateChangeEvent","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","setValue","attributes","aria-label","document","body","createPopup","prepend","footerTemplate","setFooterTemplate","getSize","maxHeight","footer","Math","round","parseInt","updateGridHeight","isFilter","autoHeight","dataSourceCount","scrollBarHeight","gridContentEle","getContent","offsetHeight","clientHeight","totalRowHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","innerHTML","tempArr","getTemplateFunction","count","isStringTemplate","slice","call","append","templateId","templatestring","noRecord","noRecordsTemplate","actionFailureTemplate","l10n","L10n","locale","getConstant","compile","content","tempEle","select","outerHTML","ispopupWidth","currentDimension","popupWidth","size","offsetWidth","documentElement","parseFloat","isKeyNav","eventArgs","selectedRecords","fieldText","fieldValue","isUpdateVal","selectedRecord","shiftKey","altKey","triggerChangeEvent","inputHandler","inputValue_1","customFiltering_1","eventArgs_1","showPopup","allowFiltering","preventDefaultAction","updateData","filterAction","updateInputValue","inputValue","totaldata","startsWith","selectFilteredRows","isArray","selectedIndex","currentViewData","getRowByIndex","filterType","isQuery","dataLength","filterData","updateGridDataSource","itemValue","endsWith","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","bind","eventName","unWireEvents","remove","destroy","preventDefault","focusedEle","closest","focusOut","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","setTimeout","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","split","action","updateSelectedItem","isGroup","isUpdateIndex","isInputTarget","clearIconEle","display","calculateWidth","isInputOpen","popup","animation","name","duration","contentEle","activeRow","aria-expanded","aria-owns","aria-controls","show","Animation","removeAttribute","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","Event","NotifyPropertyChanges","options","gridInject"],"mappings":"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"}