@syncfusion/ej2-multicolumn-combobox 32.2.3 → 33.1.46
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.
- package/dist/ej2-multicolumn-combobox.umd.min.js +2 -2
- package/dist/ej2-multicolumn-combobox.umd.min.js.map +1 -1
- package/dist/es6/ej2-multicolumn-combobox.es2015.js +20 -0
- package/dist/es6/ej2-multicolumn-combobox.es2015.js.map +1 -1
- package/dist/es6/ej2-multicolumn-combobox.es5.js +20 -0
- package/dist/es6/ej2-multicolumn-combobox.es5.js.map +1 -1
- package/dist/global/ej2-multicolumn-combobox.min.js +2 -2
- package/dist/global/ej2-multicolumn-combobox.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +3 -3
- package/src/multicolumn-combobox/multi-column-combo-box.d.ts +1 -0
- package/src/multicolumn-combobox/multi-column-combo-box.js +20 -0
- package/styles/bds-lite.css +4 -2
- package/styles/bds.css +4 -2
- package/styles/bootstrap-dark-lite.css +4 -2
- package/styles/bootstrap-dark.css +4 -2
- package/styles/bootstrap-lite.css +4 -2
- package/styles/bootstrap.css +4 -2
- package/styles/bootstrap4-lite.css +4 -2
- package/styles/bootstrap4.css +4 -2
- package/styles/bootstrap5-dark-lite.css +4 -2
- package/styles/bootstrap5-dark.css +4 -2
- package/styles/bootstrap5-lite.css +4 -2
- package/styles/bootstrap5.3-lite.css +4 -2
- package/styles/bootstrap5.3.css +4 -2
- package/styles/bootstrap5.css +4 -2
- package/styles/fabric-dark-lite.css +4 -2
- package/styles/fabric-dark.css +4 -2
- package/styles/fabric-lite.css +4 -2
- package/styles/fabric.css +4 -2
- package/styles/fluent-dark-lite.css +4 -2
- package/styles/fluent-dark.css +4 -2
- package/styles/fluent-lite.css +4 -2
- package/styles/fluent.css +4 -2
- package/styles/fluent2-lite.css +4 -2
- package/styles/fluent2.css +4 -2
- package/styles/highcontrast-light-lite.css +4 -2
- package/styles/highcontrast-light.css +4 -2
- package/styles/highcontrast-lite.css +4 -2
- package/styles/highcontrast.css +4 -2
- package/styles/material-dark-lite.css +4 -2
- package/styles/material-dark.css +4 -2
- package/styles/material-lite.css +4 -2
- package/styles/material.css +4 -2
- package/styles/material3-dark-lite.css +4 -4
- package/styles/material3-dark.css +4 -4
- package/styles/material3-lite.css +4 -4
- package/styles/material3.css +4 -4
- package/styles/multicolumn-combobox/bds.css +4 -2
- package/styles/multicolumn-combobox/bootstrap-dark.css +4 -2
- package/styles/multicolumn-combobox/bootstrap.css +4 -2
- package/styles/multicolumn-combobox/bootstrap4.css +4 -2
- package/styles/multicolumn-combobox/bootstrap5-dark.css +4 -2
- package/styles/multicolumn-combobox/bootstrap5.3.css +4 -2
- package/styles/multicolumn-combobox/bootstrap5.css +4 -2
- package/styles/multicolumn-combobox/fabric-dark.css +4 -2
- package/styles/multicolumn-combobox/fabric.css +4 -2
- package/styles/multicolumn-combobox/fluent-dark.css +4 -2
- package/styles/multicolumn-combobox/fluent.css +4 -2
- package/styles/multicolumn-combobox/fluent2.css +4 -2
- package/styles/multicolumn-combobox/highcontrast-light.css +4 -2
- package/styles/multicolumn-combobox/highcontrast.css +4 -2
- package/styles/multicolumn-combobox/material-dark.css +4 -2
- package/styles/multicolumn-combobox/material.css +4 -2
- package/styles/multicolumn-combobox/material3-dark.css +4 -4
- package/styles/multicolumn-combobox/material3.css +4 -4
- package/styles/multicolumn-combobox/tailwind-dark.css +4 -2
- package/styles/multicolumn-combobox/tailwind.css +4 -2
- package/styles/multicolumn-combobox/tailwind3.css +4 -2
- package/styles/tailwind-dark-lite.css +4 -2
- package/styles/tailwind-dark.css +4 -2
- package/styles/tailwind-lite.css +4 -2
- package/styles/tailwind.css +4 -2
- package/styles/tailwind3-lite.css +4 -2
- package/styles/tailwind3.css +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ej2-multicolumn-combobox.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};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, getValue } 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, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, 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 HIDDENELEMENT = 'e-multicolumn-list-hidden';\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, Resize);\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 __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", 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.isShowSpinner = true;\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 = this.exactMatchedContent = null;\n this.persistData();\n this.createLiveRegion();\n };\n MultiColumnComboBox.prototype.createLiveRegion = function () {\n this.liveRegion = this.createElement('div', {\n attrs: {\n id: this.element.id + '_live',\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n role: 'status'\n },\n styles: \"\\n width: 0;\\n height: 0;\\n overflow: hidden;\\n \"\n });\n document.body.appendChild(this.liveRegion);\n this.liveRegion.textContent = '';\n };\n MultiColumnComboBox.prototype.announcePosition = function (index, total) {\n if (!this.isPopupOpen) {\n return;\n }\n var message = \"Item \" + (index + 1) + \" of \" + total;\n this.liveRegion.textContent = message;\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 += '_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.renderInput();\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource)\n && this.dataSource instanceof DataManager) {\n this.isInitialValueRender = true;\n }\n if (this.gridData == null) {\n this.setGridData(this.dataSource);\n }\n this.renderGrid();\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.setGridData = function (dataSource, query) {\n var _this = this;\n this.trigger('actionBegin', { cancel: false, query: query }, function (args) {\n if (!args.cancel) {\n if (dataSource instanceof DataManager) {\n if (_this.isShowSpinner) {\n _this.showHideSpinner(true);\n }\n dataSource.executeQuery(_this.getQuery(query)).then(function (e) {\n _this.gridData = e.result;\n _this.trigger('actionComplete', e, function (e) {\n _this.showHideSpinner(false);\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.isInitialValueRender) {\n _this.isInitialValueRender = false;\n _this.initValue(null, null, true);\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }).catch(function (e) {\n _this.trigger('actionFailure', e, null);\n });\n }\n else {\n var dataManager = new DataManager(dataSource);\n var listItems_1 = (_this.getQuery(query)).executeLocal(dataManager);\n _this.gridData = listItems_1;\n _this.trigger('actionComplete', { result: listItems_1 }, function (e) {\n if (!_this.isMainDataUpdated) {\n if (_this.isCustomFilter && (isNOU(_this.dataSource) || _this.dataSource.length === 0)) {\n _this.setProperties({ dataSource: listItems_1 }, true);\n }\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }\n }\n });\n };\n MultiColumnComboBox.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n if ((this.allowFiltering && this.typedString && this.typedString !== '')) {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, true, false);\n }\n }\n else {\n filterQuery = (this.customFilterQuery != null) ?\n this.customFilterQuery.clone() : query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n MultiColumnComboBox.prototype.setHiddenValue = function () {\n if (isNOU(this.value)) {\n this.hiddenElement.innerHTML = '';\n return;\n }\n var existingOption = this.hiddenElement.querySelector('option');\n if (!isNOU(existingOption)) {\n existingOption.textContent = this.text;\n existingOption.setAttribute('value', this.value.toString());\n }\n else if (!isNOU(this.hiddenElement)) {\n var newOption = document.createElement('option');\n newOption.text = this.text;\n newOption.setAttribute('value', this.value.toString());\n newOption.setAttribute('selected', '');\n this.hiddenElement.appendChild(newOption);\n }\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.gridData,\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 allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n beforeDataBound: function () {\n if (_this.dataSource instanceof DataManager && _this.isShowSpinner) {\n _this.showHideSpinner(true);\n _this.isShowSpinner = false;\n }\n },\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: this.element.id + \"_\" + getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\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 if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource) && this.dataSource instanceof Array) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n var _this = this;\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n if (Array.isArray(args.rows) && this.isDataFiltered) {\n var rows = args.rows;\n var rowHeight_1 = 0;\n rows.forEach(function (row) {\n var rowElement = _this.gridObj.getRowElementByUID(row.uid);\n if (rowElement) {\n rowHeight_1 += rowElement.getBoundingClientRect().height;\n }\n });\n this.popupRowHeight = rowHeight_1 || parseFloat(this.popupHeight);\n this.updateGridHeight(true, true);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = 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 /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var flattenData = function (data) {\n var result = [];\n if (data && typeof data === 'object') {\n if (Array.isArray(data)) {\n data.forEach(function (item) { return result.push.apply(result, flattenData(item)); });\n }\n else {\n Object.keys(data).forEach(function (key) { return result.push.apply(result, flattenData(data[\"\" + key])); });\n }\n }\n else if (data != null) {\n result.push(String(data));\n }\n return result;\n };\n var flattenedValues = flattenData(data);\n return (flattenedValues.indexOf(selectedValue) !== -1 && flattenedValues.indexOf(selectedText) !== -1);\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 _this.selectDataRow(row.data, row.index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ?\n 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 // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (_a) {\n var field = _a.field, header = _a.header, width = _a.width, textAlign = _a.textAlign, format = _a.format, displayAsCheckBox = _a.displayAsCheckBox, template = _a.template, headerTemplate = _a.headerTemplate, customAttributes = _a.customAttributes;\n return ({\n field: field,\n headerText: header,\n width: width,\n textAlign: textAlign.toString() === '' && _this.enableRtl ? 'Right' : textAlign,\n format: format,\n displayAsCheckBox: displayAsCheckBox,\n template: template,\n headerTemplate: headerTemplate,\n customAttributes: customAttributes,\n type: displayAsCheckBox && !format ? 'boolean' : undefined\n });\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n var groupByField = this.fields.groupBy;\n var isGroupByValid = groupByField !== '' && !isNOU(groupByField);\n if (isGroupByValid) {\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: [groupByField]\n };\n if (this.groupTemplate && isGroupByValid) {\n this.gridObj.groupSettings.captionTemplate = this.groupTemplate;\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 _this = this;\n if (this.isLocaleChanged) {\n this.isLocaleChanged = false;\n this.unWireEvents();\n this.wireEvents();\n }\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && 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 else if (this.isCustomFilter && !hasNoDataClass && dataCount > 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n if (this.dataSource instanceof DataManager) {\n setTimeout(function () {\n _this.showHideSpinner(false);\n });\n }\n };\n MultiColumnComboBox.prototype.showHideSpinner = function (isShow) {\n if (isShow) {\n showSpinner(this.dropdownElement);\n }\n else {\n hideSpinner(this.dropdownElement);\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 var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\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 setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\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 this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'tabindex': '-1',\n 'class': HIDDENELEMENT\n }\n });\n prepend([this.hiddenElement], this.inputWrapper);\n var name = this.inputEle.getAttribute('name') ? this.inputEle.getAttribute('name') : this.inputEle.getAttribute('id');\n this.hiddenElement.setAttribute('name', name);\n this.inputEle.removeAttribute('name');\n if (!this.hiddenElement.hasAttribute('aria-label')) {\n this.hiddenElement.setAttribute('aria-label', this.getModuleName());\n }\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n this.dropdownElement = this.inputWrapper.querySelector('.e-input-group-icon.e-multicolumn-list-icon.e-icons');\n createSpinner({\n target: this.dropdownElement\n });\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\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 MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var _this = this;\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style': {\n var styles = htmlAttributes[htmlAttr];\n this.inputWrapper.style.cssText = '';\n if (styles) {\n styles.split(';').forEach(function (styleProperty) {\n var _a = styleProperty.split(':').map(function (part) { return part.trim(); }), property = _a[0], value = _a[1];\n if (property && value) {\n _this.inputWrapper.style.setProperty(property, value);\n }\n });\n }\n break;\n }\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\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.setAriaDisabled('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.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.updateFieldValue = function (fieldValue, dataObj) {\n var fieldVal = getValue(fieldValue, dataObj).toString();\n return fieldVal;\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 && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n var filteredData = dataLists.filter(function (item) {\n var fieldVal = item ? (_this.updateFieldValue(isRerender ? (isValue ? _this.fields.value :\n _this.fields.text) : !isNOU(_this.value) ? _this.fields.value : _this.fields.text, item)) : null;\n return fieldVal === 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 else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n var fieldVal = _this.updateFieldValue(isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text, data);\n return fieldVal === 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 && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\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 else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\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 fieldValue = item ? this.updateFieldValue(this.fields.value, item) : null;\n var ChangeEventArgs = {\n value: item ? fieldValue : 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 var fieldText = this.updateFieldValue(this.fields.text, item);\n var fieldValue = this.updateFieldValue(this.fields.value, item);\n Input.setValue(fieldText, this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: fieldValue,\n currentText: fieldText,\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 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) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n this.popupRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (this.popupRowHeight < this.prevGridHeight ? (this.popupRowHeight + 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.includes('%')) {\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 dataText = selectedRecords ? this.updateFieldValue(this.fields.text, selectedRecords) : '';\n var dataValue = selectedRecords ? this.updateFieldValue(this.fields.value, selectedRecords) : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: selectedRecords ? dataText : '', value: selectedRecords ? dataValue : '' },\n event: e,\n cancel: false,\n value: selectedRecords ? dataValue : '',\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 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(selectedRecords ? dataValue : '', selectedRecords ? dataText : '', _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecords ? dataText : '', _this.inputEle, _this.floatLabelType, _this.showClearButton);\n _this.setHiddenValue();\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n if (_this.gridObj) {\n _this.announcePosition(_this.gridObj.selectedRowIndex, _this.gridObj.getRows().length);\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 || this.text;\n this.value = value || this.value;\n this.index = this.selectedRowIndex = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n this.setHiddenValue();\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 this.typedString = e.target.value.toLowerCase();\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.typedString,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.customFilterQuery = query ? query.clone() : query;\n _this.isMainDataUpdated = false;\n if (query) {\n _this.setGridData(dataSource, query);\n }\n else {\n var filtered = _this.filterDatas(dataSource, _this.typedString).data;\n _this.setGridData(_this.typedString !== '' ? filtered : dataSource, query);\n }\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !_this.isCustomFilter) {\n _this.setGridData(_this.dataSource, _this.query ? _this.query.clone() : null);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData;\n return __generator(this, function (_c) {\n if (this.dataSource instanceof DataManager) {\n (_a = this.filterDatas(this.mainData, inputValue), data = _a.data, exactData = _a.exactData);\n }\n else if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return inputValue && fieldText.toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return fieldText === inputValue;\n });\n return { data: data, exactData: exactData };\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data, exactData) {\n if (data.length <= 0) {\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n return;\n }\n this.matchedContent = data[0];\n this.exactMatchedContent = exactData[0];\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function () {\n if (this.gridData && this.gridData.length > 0) {\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 = this.gridData;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\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 var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-multicolumn-list.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n var isClearVal = this.inputEle.value === '' ? true : false;\n this.updateValuesOnInput(e, null, isClearVal);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val && e.code !== 'Enter') {\n this.inputEle.value = null;\n this.setProperties({ value: null, index: null, text: null }, true);\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var fieldText = this.updateFieldValue(this.fields.text, this.matchedContent);\n var fieldValue = this.updateFieldValue(this.fields.value, this.matchedContent);\n this.inputEle.value = fieldText;\n this.value = fieldValue;\n var selectIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.index = selectIndex;\n this.text = fieldText;\n this.gridObj.selectRow(selectIndex);\n this.selectedGridRow(this.gridObj.getRowByIndex(selectIndex), e);\n this.previousItemElement = this.gridObj.getSelectedRows()[0];\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, false, true);\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 var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\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 var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\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()[parseInt(index.toString(), 10)], e, true);\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 MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.isMainDataUpdated = false;\n this.isShowSpinner = true;\n this.setGridData(newDataSource);\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\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 if (this.inputWrapper) {\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 /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\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 + '_options', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n _this.gridObj.selectRow(_this.selectedRowIndex);\n }\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle.firstElementChild);\n _this.liveRegion.textContent = '';\n setTimeout(function () {\n if (_this.gridObj) {\n _this.announcePosition(_this.gridObj.selectedRowIndex, _this.gridObj.getRows().length);\n }\n }, 300);\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 var target = e ? e.target : null;\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 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 _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n _this.customFilterQuery = null;\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.allowFiltering ? _this.mainData : _this.gridData;\n var noRecordEle = _this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n _this.popupDiv.removeChild(noRecordEle);\n removeClass([_this.popupDiv], [NODATA]);\n }\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 var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n return dataLists.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\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 if (this.liveRegion) {\n detach(this.liveRegion);\n this.liveRegion = null;\n }\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 this.hiddenElement = null;\n this.dropdownElement = 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(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\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 this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n this.isMainDataUpdated = false;\n this.setGridData(this.dataSource);\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 this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\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 if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\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 case 'locale':\n this.isLocaleChanged = true;\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":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","verb","n","v","op","f","TypeError","_","y","t","call","label","ops","pop","trys","push","g","sent","throw","return","Symbol","iterator","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","gridInject","isShowSpinner","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","createLiveRegion","liveRegion","createElement","attrs","aria-live","aria-atomic","role","styles","document","appendChild","textContent","announcePosition","index","total","isPopupOpen","message","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","className","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","trigger","cancel","args","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","listItems_1","executeLocal","isCustomFilter","filterQuery","allowFiltering","clone","Query","filterType","typedString","fields","where","customFilterQuery","setHiddenValue","hiddenElement","innerHTML","existingOption","querySelector","newOption","setAttribute","toString","gridColumns","getGridColumns","sortOrder","toLowerCase","gridObj","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","beforeDataBound","dataBound","onDataBound","actionFailure","onActionFailure","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","isArray","rows","isDataFiltered","rowHeight_1","forEach","row","rowElement","getRowElementByUID","uid","getBoundingClientRect","popupRowHeight","parseFloat","updateGridHeight","popupObj","refreshPosition","scrollTop","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","flattenData","item","keys","String","flattenedValues","indexOf","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","every","map","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","isLocaleChanged","unWireEvents","dataCount","popupChild","hasNoDataClass","contains","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","rowElements","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","attributes","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","aria-hidden","class","prepend","name","removeAttribute","hasAttribute","setElementWidth","createSpinner","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","cssText","split","styleProperty","part","trim","property","setProperty","defaultAttr","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","updateValues","dataList","updateCurrentValues","value_1","filteredData","dataLists","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","setValue","MULTICOLUMNLIST","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","eventArgs_1","preventDefaultAction","updateData","filtered","filterDatas","updateInputValue","inputValue","_b","exactData","_c","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","remove","destroy","preventDefault","focusedEle","closest","focusOut","isClearVal","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","code","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","action","updateSelectedItem","isGroup","keyActionMap","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","animModel","duration","popup","animation","aria-owns","aria-controls","contentEle","activeRow","firstRow","show","Animation","firstElementChild","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ej2-multicolumn-combobox.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};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, getValue } 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, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, 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 HIDDENELEMENT = 'e-multicolumn-list-hidden';\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, Resize);\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 __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", 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.isShowSpinner = true;\n _this.isClearing = false;\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 = this.exactMatchedContent = null;\n this.persistData();\n this.createLiveRegion();\n };\n MultiColumnComboBox.prototype.createLiveRegion = function () {\n this.liveRegion = this.createElement('div', {\n attrs: {\n id: this.element.id + '_live',\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n role: 'status'\n },\n styles: \"\\n width: 0;\\n height: 0;\\n overflow: hidden;\\n \"\n });\n document.body.appendChild(this.liveRegion);\n this.liveRegion.textContent = '';\n };\n MultiColumnComboBox.prototype.announcePosition = function (index, total) {\n if (!this.isPopupOpen) {\n return;\n }\n var message = \"Item \" + (index + 1) + \" of \" + total;\n this.liveRegion.textContent = message;\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 += '_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.renderInput();\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource)\n && this.dataSource instanceof DataManager) {\n this.isInitialValueRender = true;\n }\n if (this.gridData == null) {\n this.setGridData(this.dataSource);\n }\n this.renderGrid();\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.setGridData = function (dataSource, query) {\n var _this = this;\n this.trigger('actionBegin', { cancel: false, query: query }, function (args) {\n if (!args.cancel) {\n if (dataSource instanceof DataManager) {\n if (_this.isShowSpinner) {\n _this.showHideSpinner(true);\n }\n dataSource.executeQuery(_this.getQuery(query)).then(function (e) {\n _this.gridData = e.result;\n _this.trigger('actionComplete', e, function (e) {\n _this.showHideSpinner(false);\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.isInitialValueRender) {\n _this.isInitialValueRender = false;\n _this.initValue(null, null, true);\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }).catch(function (e) {\n _this.trigger('actionFailure', e, null);\n });\n }\n else {\n var dataManager = new DataManager(dataSource);\n var listItems_1 = (_this.getQuery(query)).executeLocal(dataManager);\n _this.gridData = listItems_1;\n _this.trigger('actionComplete', { result: listItems_1 }, function (e) {\n if (!_this.isMainDataUpdated) {\n if (_this.isCustomFilter && (isNOU(_this.dataSource) || _this.dataSource.length === 0)) {\n _this.setProperties({ dataSource: listItems_1 }, true);\n }\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }\n }\n });\n };\n MultiColumnComboBox.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n if ((this.allowFiltering && this.typedString && this.typedString !== '')) {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, true, false);\n }\n }\n else {\n filterQuery = (this.customFilterQuery != null) ?\n this.customFilterQuery.clone() : query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n MultiColumnComboBox.prototype.setHiddenValue = function () {\n if (isNOU(this.value)) {\n this.hiddenElement.innerHTML = '';\n return;\n }\n var existingOption = this.hiddenElement.querySelector('option');\n if (!isNOU(existingOption)) {\n existingOption.textContent = this.text;\n existingOption.setAttribute('value', this.value.toString());\n }\n else if (!isNOU(this.hiddenElement)) {\n var newOption = document.createElement('option');\n newOption.text = this.text;\n newOption.setAttribute('value', this.value.toString());\n newOption.setAttribute('selected', '');\n this.hiddenElement.appendChild(newOption);\n }\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.gridData,\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 allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n beforeDataBound: function () {\n if (_this.dataSource instanceof DataManager && _this.isShowSpinner) {\n _this.showHideSpinner(true);\n _this.isShowSpinner = false;\n }\n },\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: this.element.id + \"_\" + getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\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 if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource) && this.dataSource instanceof Array) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n var _this = this;\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n if (Array.isArray(args.rows) && this.isDataFiltered) {\n var rows = args.rows;\n var rowHeight_1 = 0;\n rows.forEach(function (row) {\n var rowElement = _this.gridObj.getRowElementByUID(row.uid);\n if (rowElement) {\n rowHeight_1 += rowElement.getBoundingClientRect().height;\n }\n });\n this.popupRowHeight = rowHeight_1 || parseFloat(this.popupHeight);\n this.updateGridHeight(true, true);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = 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 /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var flattenData = function (data) {\n var result = [];\n if (data && typeof data === 'object') {\n if (Array.isArray(data)) {\n data.forEach(function (item) { return result.push.apply(result, flattenData(item)); });\n }\n else {\n Object.keys(data).forEach(function (key) { return result.push.apply(result, flattenData(data[\"\" + key])); });\n }\n }\n else if (data != null) {\n result.push(String(data));\n }\n return result;\n };\n var flattenedValues = flattenData(data);\n return (flattenedValues.indexOf(selectedValue) !== -1 && flattenedValues.indexOf(selectedText) !== -1);\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 _this.selectDataRow(row.data, row.index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ?\n 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 // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (_a) {\n var field = _a.field, header = _a.header, width = _a.width, textAlign = _a.textAlign, format = _a.format, displayAsCheckBox = _a.displayAsCheckBox, template = _a.template, headerTemplate = _a.headerTemplate, customAttributes = _a.customAttributes;\n return ({\n field: field,\n headerText: header,\n width: width,\n textAlign: textAlign.toString() === '' && _this.enableRtl ? 'Right' : textAlign,\n format: format,\n displayAsCheckBox: displayAsCheckBox,\n template: template,\n headerTemplate: headerTemplate,\n customAttributes: customAttributes,\n type: displayAsCheckBox && !format ? 'boolean' : undefined\n });\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n var groupByField = this.fields.groupBy;\n var isGroupByValid = groupByField !== '' && !isNOU(groupByField);\n if (isGroupByValid) {\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: [groupByField]\n };\n if (this.groupTemplate && isGroupByValid) {\n this.gridObj.groupSettings.captionTemplate = this.groupTemplate;\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 _this = this;\n if (this.isLocaleChanged) {\n this.isLocaleChanged = false;\n this.unWireEvents();\n this.wireEvents();\n }\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && 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 else if (this.isCustomFilter && !hasNoDataClass && dataCount > 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n if (this.dataSource instanceof DataManager) {\n setTimeout(function () {\n _this.showHideSpinner(false);\n });\n }\n };\n MultiColumnComboBox.prototype.showHideSpinner = function (isShow) {\n if (isShow) {\n showSpinner(this.dropdownElement);\n }\n else {\n hideSpinner(this.dropdownElement);\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 var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\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 setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\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 this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'tabindex': '-1',\n 'class': HIDDENELEMENT\n }\n });\n prepend([this.hiddenElement], this.inputWrapper);\n var name = this.inputEle.getAttribute('name') ? this.inputEle.getAttribute('name') : this.inputEle.getAttribute('id');\n this.hiddenElement.setAttribute('name', name);\n this.inputEle.removeAttribute('name');\n if (!this.hiddenElement.hasAttribute('aria-label')) {\n this.hiddenElement.setAttribute('aria-label', this.getModuleName());\n }\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n this.dropdownElement = this.inputWrapper.querySelector('.e-input-group-icon.e-multicolumn-list-icon.e-icons');\n createSpinner({\n target: this.dropdownElement\n });\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\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 MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var _this = this;\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style': {\n var styles = htmlAttributes[htmlAttr];\n this.inputWrapper.style.cssText = '';\n if (styles) {\n styles.split(';').forEach(function (styleProperty) {\n var _a = styleProperty.split(':').map(function (part) { return part.trim(); }), property = _a[0], value = _a[1];\n if (property && value) {\n _this.inputWrapper.style.setProperty(property, value);\n }\n });\n }\n break;\n }\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\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.setAriaDisabled('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.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.updateFieldValue = function (fieldValue, dataObj) {\n var fieldVal = getValue(fieldValue, dataObj).toString();\n return fieldVal;\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n // Prevent re-entry during null value clearing\n if (this.isClearing) {\n return;\n }\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 // Handle explicit null value assignment\n if (isRerender && isValue && isNOU(this.value)) {\n this.isClearing = true;\n // Clear all state when value is explicitly set to null\n var prevOnChangeProtect = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n this.setHiddenValue(); // Clears hidden element when value is null\n this.gridObj.clearSelection();\n this.text = null;\n this.index = null;\n this.isProtectedOnChange = prevOnChangeProtect;\n this.isClearing = false;\n return;\n }\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 && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n var filteredData = dataLists.filter(function (item) {\n var fieldVal = item ? (_this.updateFieldValue(isRerender ? (isValue ? _this.fields.value :\n _this.fields.text) : !isNOU(_this.value) ? _this.fields.value : _this.fields.text, item)) : null;\n return fieldVal === 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 else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n var fieldVal = _this.updateFieldValue(isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text, data);\n return fieldVal === 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 && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\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 else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\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 fieldValue = item ? this.updateFieldValue(this.fields.value, item) : null;\n var ChangeEventArgs = {\n value: item ? fieldValue : 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 var fieldText = this.updateFieldValue(this.fields.text, item);\n var fieldValue = this.updateFieldValue(this.fields.value, item);\n Input.setValue(fieldText, this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: fieldValue,\n currentText: fieldText,\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 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) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n this.popupRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (this.popupRowHeight < this.prevGridHeight ? (this.popupRowHeight + 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.includes('%')) {\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 dataText = selectedRecords ? this.updateFieldValue(this.fields.text, selectedRecords) : '';\n var dataValue = selectedRecords ? this.updateFieldValue(this.fields.value, selectedRecords) : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: selectedRecords ? dataText : '', value: selectedRecords ? dataValue : '' },\n event: e,\n cancel: false,\n value: selectedRecords ? dataValue : '',\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 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(selectedRecords ? dataValue : '', selectedRecords ? dataText : '', _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecords ? dataText : '', _this.inputEle, _this.floatLabelType, _this.showClearButton);\n _this.setHiddenValue();\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n if (_this.gridObj) {\n _this.announcePosition(_this.gridObj.selectedRowIndex, _this.gridObj.getRows().length);\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 || this.text;\n this.value = value || this.value;\n this.index = this.selectedRowIndex = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n this.setHiddenValue();\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 this.typedString = e.target.value.toLowerCase();\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.typedString,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.customFilterQuery = query ? query.clone() : query;\n _this.isMainDataUpdated = false;\n if (query) {\n _this.setGridData(dataSource, query);\n }\n else {\n var filtered = _this.filterDatas(dataSource, _this.typedString).data;\n _this.setGridData(_this.typedString !== '' ? filtered : dataSource, query);\n }\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !_this.isCustomFilter) {\n _this.setGridData(_this.dataSource, _this.query ? _this.query.clone() : null);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData;\n return __generator(this, function (_c) {\n if (this.dataSource instanceof DataManager) {\n (_a = this.filterDatas(this.mainData, inputValue), data = _a.data, exactData = _a.exactData);\n }\n else if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return inputValue && fieldText.toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return fieldText === inputValue;\n });\n return { data: data, exactData: exactData };\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data, exactData) {\n if (data.length <= 0) {\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n return;\n }\n this.matchedContent = data[0];\n this.exactMatchedContent = exactData[0];\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function () {\n if (this.gridData && this.gridData.length > 0) {\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 = this.gridData;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\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 var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-multicolumn-list.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n var isClearVal = this.inputEle.value === '' ? true : false;\n this.updateValuesOnInput(e, null, isClearVal);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val && e.code !== 'Enter') {\n this.inputEle.value = null;\n this.setProperties({ value: null, index: null, text: null }, true);\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var fieldText = this.updateFieldValue(this.fields.text, this.matchedContent);\n var fieldValue = this.updateFieldValue(this.fields.value, this.matchedContent);\n this.inputEle.value = fieldText;\n this.value = fieldValue;\n var selectIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.index = selectIndex;\n this.text = fieldText;\n this.gridObj.selectRow(selectIndex);\n this.selectedGridRow(this.gridObj.getRowByIndex(selectIndex), e);\n this.previousItemElement = this.gridObj.getSelectedRows()[0];\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, false, true);\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 var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\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 var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\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()[parseInt(index.toString(), 10)], e, true);\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 MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.isMainDataUpdated = false;\n this.isShowSpinner = true;\n this.setGridData(newDataSource);\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\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 if (this.inputWrapper) {\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 /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\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 + '_options', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n _this.gridObj.selectRow(_this.selectedRowIndex);\n }\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle.firstElementChild);\n _this.liveRegion.textContent = '';\n setTimeout(function () {\n if (_this.gridObj) {\n _this.announcePosition(_this.gridObj.selectedRowIndex, _this.gridObj.getRows().length);\n }\n }, 300);\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 var target = e ? e.target : null;\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 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 _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n _this.customFilterQuery = null;\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.allowFiltering ? _this.mainData : _this.gridData;\n var noRecordEle = _this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n _this.popupDiv.removeChild(noRecordEle);\n removeClass([_this.popupDiv], [NODATA]);\n }\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 var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n return dataLists.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\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 if (this.liveRegion) {\n detach(this.liveRegion);\n this.liveRegion = null;\n }\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 this.hiddenElement = null;\n this.dropdownElement = 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(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\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 this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n this.isMainDataUpdated = false;\n this.setGridData(this.dataSource);\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 this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\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 if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\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 case 'locale':\n this.isLocaleChanged = true;\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":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","verb","n","v","op","f","TypeError","_","y","t","call","label","ops","pop","trys","push","g","sent","throw","return","Symbol","iterator","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","gridInject","isShowSpinner","isClearing","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","createLiveRegion","liveRegion","createElement","attrs","aria-live","aria-atomic","role","styles","document","appendChild","textContent","announcePosition","index","total","isPopupOpen","message","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","className","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","trigger","cancel","args","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","listItems_1","executeLocal","isCustomFilter","filterQuery","allowFiltering","clone","Query","filterType","typedString","fields","where","customFilterQuery","setHiddenValue","hiddenElement","innerHTML","existingOption","querySelector","newOption","setAttribute","toString","gridColumns","getGridColumns","sortOrder","toLowerCase","gridObj","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","beforeDataBound","dataBound","onDataBound","actionFailure","onActionFailure","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","isArray","rows","isDataFiltered","rowHeight_1","forEach","row","rowElement","getRowElementByUID","uid","getBoundingClientRect","popupRowHeight","parseFloat","updateGridHeight","popupObj","refreshPosition","scrollTop","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","flattenData","item","keys","String","flattenedValues","indexOf","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","every","map","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","isLocaleChanged","unWireEvents","dataCount","popupChild","hasNoDataClass","contains","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","rowElements","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","attributes","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","aria-hidden","class","prepend","name","removeAttribute","hasAttribute","setElementWidth","createSpinner","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","cssText","split","styleProperty","part","trim","property","setProperty","defaultAttr","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","prevOnChangeProtect","setValue","clearSelection","updateValues","dataList","updateCurrentValues","value_1","filteredData","dataLists","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","MULTICOLUMNLIST","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","eventArgs_1","preventDefaultAction","updateData","filtered","filterDatas","updateInputValue","inputValue","_b","exactData","_c","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","remove","destroy","preventDefault","focusedEle","closest","focusOut","isClearVal","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","code","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","action","updateSelectedItem","isGroup","keyActionMap","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","animModel","duration","popup","animation","aria-owns","aria-controls","contentEle","activeRow","firstRow","show","Animation","firstElementChild","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component"],"mappings":"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"}
|