@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.
Files changed (75) hide show
  1. package/dist/ej2-multicolumn-combobox.umd.min.js +2 -2
  2. package/dist/ej2-multicolumn-combobox.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-multicolumn-combobox.es2015.js +20 -0
  4. package/dist/es6/ej2-multicolumn-combobox.es2015.js.map +1 -1
  5. package/dist/es6/ej2-multicolumn-combobox.es5.js +20 -0
  6. package/dist/es6/ej2-multicolumn-combobox.es5.js.map +1 -1
  7. package/dist/global/ej2-multicolumn-combobox.min.js +2 -2
  8. package/dist/global/ej2-multicolumn-combobox.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/package.json +3 -3
  11. package/src/multicolumn-combobox/multi-column-combo-box.d.ts +1 -0
  12. package/src/multicolumn-combobox/multi-column-combo-box.js +20 -0
  13. package/styles/bds-lite.css +4 -2
  14. package/styles/bds.css +4 -2
  15. package/styles/bootstrap-dark-lite.css +4 -2
  16. package/styles/bootstrap-dark.css +4 -2
  17. package/styles/bootstrap-lite.css +4 -2
  18. package/styles/bootstrap.css +4 -2
  19. package/styles/bootstrap4-lite.css +4 -2
  20. package/styles/bootstrap4.css +4 -2
  21. package/styles/bootstrap5-dark-lite.css +4 -2
  22. package/styles/bootstrap5-dark.css +4 -2
  23. package/styles/bootstrap5-lite.css +4 -2
  24. package/styles/bootstrap5.3-lite.css +4 -2
  25. package/styles/bootstrap5.3.css +4 -2
  26. package/styles/bootstrap5.css +4 -2
  27. package/styles/fabric-dark-lite.css +4 -2
  28. package/styles/fabric-dark.css +4 -2
  29. package/styles/fabric-lite.css +4 -2
  30. package/styles/fabric.css +4 -2
  31. package/styles/fluent-dark-lite.css +4 -2
  32. package/styles/fluent-dark.css +4 -2
  33. package/styles/fluent-lite.css +4 -2
  34. package/styles/fluent.css +4 -2
  35. package/styles/fluent2-lite.css +4 -2
  36. package/styles/fluent2.css +4 -2
  37. package/styles/highcontrast-light-lite.css +4 -2
  38. package/styles/highcontrast-light.css +4 -2
  39. package/styles/highcontrast-lite.css +4 -2
  40. package/styles/highcontrast.css +4 -2
  41. package/styles/material-dark-lite.css +4 -2
  42. package/styles/material-dark.css +4 -2
  43. package/styles/material-lite.css +4 -2
  44. package/styles/material.css +4 -2
  45. package/styles/material3-dark-lite.css +4 -4
  46. package/styles/material3-dark.css +4 -4
  47. package/styles/material3-lite.css +4 -4
  48. package/styles/material3.css +4 -4
  49. package/styles/multicolumn-combobox/bds.css +4 -2
  50. package/styles/multicolumn-combobox/bootstrap-dark.css +4 -2
  51. package/styles/multicolumn-combobox/bootstrap.css +4 -2
  52. package/styles/multicolumn-combobox/bootstrap4.css +4 -2
  53. package/styles/multicolumn-combobox/bootstrap5-dark.css +4 -2
  54. package/styles/multicolumn-combobox/bootstrap5.3.css +4 -2
  55. package/styles/multicolumn-combobox/bootstrap5.css +4 -2
  56. package/styles/multicolumn-combobox/fabric-dark.css +4 -2
  57. package/styles/multicolumn-combobox/fabric.css +4 -2
  58. package/styles/multicolumn-combobox/fluent-dark.css +4 -2
  59. package/styles/multicolumn-combobox/fluent.css +4 -2
  60. package/styles/multicolumn-combobox/fluent2.css +4 -2
  61. package/styles/multicolumn-combobox/highcontrast-light.css +4 -2
  62. package/styles/multicolumn-combobox/highcontrast.css +4 -2
  63. package/styles/multicolumn-combobox/material-dark.css +4 -2
  64. package/styles/multicolumn-combobox/material.css +4 -2
  65. package/styles/multicolumn-combobox/material3-dark.css +4 -4
  66. package/styles/multicolumn-combobox/material3.css +4 -4
  67. package/styles/multicolumn-combobox/tailwind-dark.css +4 -2
  68. package/styles/multicolumn-combobox/tailwind.css +4 -2
  69. package/styles/multicolumn-combobox/tailwind3.css +4 -2
  70. package/styles/tailwind-dark-lite.css +4 -2
  71. package/styles/tailwind-dark.css +4 -2
  72. package/styles/tailwind-lite.css +4 -2
  73. package/styles/tailwind.css +4 -2
  74. package/styles/tailwind3-lite.css +4 -2
  75. package/styles/tailwind3.css +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-multicolumn-combobox.umd.min.js","sources":["../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\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":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","push","ICONANIMATION","NODATA","DISABLED","INPUTFOCUS","MULTICOLUMNLIST","MULTICOLUMNGRID","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","_super","ChildProperty","FieldSettings","Property","Column","GridSettings","Both","Event","Component","MultiColumnComboBox","preRender","element","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","getDirective","getPersistData","addOnPersist","data","enablePersistence","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","className","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","_this","trigger","cancel","args","listItems_1","isShowSpinner","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","executeLocal","isCustomFilter","filterQuery","filterType","fields","allowFiltering","clone","Query","typedString","where","customFilterQuery","setHiddenValue","existingOption","newOption","hiddenElement","innerHTML","querySelector","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","rowHeight_1","requestType","updateRowSelection","isArray","rows","isDataFiltered","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","dataCount","isLocaleChanged","unWireEvents","popupChild","hasNoDataClass","contains","rowElements","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","setAttributes","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","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","updateValues","dataList","updateCurrentValues","currentValue","currentText","currentIndex","value_1","dataLists","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","filteredData","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","setValue","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","scrollBarHeight","gridContentEle","getContent","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","templateId","templatestring","noRecord","noRecordsTemplate","actionFailureTemplate","l10n","L10n","locale","getConstant","compile","content","tempEle","select","outerHTML","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","eventArgs_1","showPopup","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","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","popup","animation","duration","activeRow","firstRow","aria-owns","aria-controls","contentEle","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","options","gridInject"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-multicolumn-combobox.umd.min.js","sources":["../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\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":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","push","ICONANIMATION","NODATA","DISABLED","INPUTFOCUS","MULTICOLUMNLIST","MULTICOLUMNGRID","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","_super","ChildProperty","FieldSettings","Property","Column","GridSettings","Both","Event","Component","MultiColumnComboBox","preRender","element","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","getDirective","getPersistData","addOnPersist","data","enablePersistence","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","className","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","_this","trigger","cancel","args","listItems_1","isShowSpinner","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","executeLocal","isCustomFilter","filterQuery","filterType","fields","allowFiltering","clone","Query","typedString","where","customFilterQuery","setHiddenValue","existingOption","newOption","hiddenElement","innerHTML","querySelector","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","rowHeight_1","requestType","updateRowSelection","isArray","rows","isDataFiltered","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","dataCount","isLocaleChanged","unWireEvents","popupChild","hasNoDataClass","contains","rowElements","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","setAttributes","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","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","prevItemData","prevItemEle","currentValue","currentText","currentIndex","updateValues","value_1","filteredData","dataLists","isClearing","getSelectedRecords","getSelectedRows","prevOnChangeProtect","setValue","clearSelection","dataList","updateCurrentValues","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","scrollBarHeight","gridContentEle","getContent","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","templateId","templatestring","noRecord","noRecordsTemplate","actionFailureTemplate","l10n","L10n","locale","getConstant","compile","content","tempEle","select","outerHTML","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","eventArgs_1","showPopup","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","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","popup","animation","duration","activeRow","firstRow","aria-owns","aria-controls","contentEle","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","options","gridInject"],"mappings":"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"}