@syncfusion/ej2-multicolumn-combobox 27.2.5 → 28.1.33

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 (89) hide show
  1. package/README.md +2 -2
  2. package/dist/ej2-multicolumn-combobox.umd.min.js +3 -3
  3. package/dist/ej2-multicolumn-combobox.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-multicolumn-combobox.es2015.js +210 -177
  5. package/dist/es6/ej2-multicolumn-combobox.es2015.js.map +1 -1
  6. package/dist/es6/ej2-multicolumn-combobox.es5.js +251 -178
  7. package/dist/es6/ej2-multicolumn-combobox.es5.js.map +1 -1
  8. package/dist/global/ej2-multicolumn-combobox.min.js +3 -3
  9. package/dist/global/ej2-multicolumn-combobox.min.js.map +1 -1
  10. package/dist/global/index.d.ts +2 -2
  11. package/package.json +8 -8
  12. package/src/global.js +0 -2
  13. package/src/multicolumn-combobox/index.d.ts +0 -1
  14. package/src/multicolumn-combobox/index.js +0 -1
  15. package/src/multicolumn-combobox/multi-column-combo-box-model.d.ts +1 -1
  16. package/src/multicolumn-combobox/multi-column-combo-box.d.ts +5 -0
  17. package/src/multicolumn-combobox/multi-column-combo-box.js +253 -179
  18. package/styles/bds-lite.css +416 -0
  19. package/styles/bds-lite.scss +10 -0
  20. package/styles/bds.css +467 -0
  21. package/styles/bds.scss +11 -0
  22. package/styles/bootstrap-dark-lite.css +3 -0
  23. package/styles/bootstrap-dark.css +3 -0
  24. package/styles/bootstrap-lite.css +3 -0
  25. package/styles/bootstrap.css +3 -0
  26. package/styles/bootstrap4-lite.css +3 -0
  27. package/styles/bootstrap4.css +3 -0
  28. package/styles/bootstrap5-dark-lite.css +3 -0
  29. package/styles/bootstrap5-dark.css +3 -0
  30. package/styles/bootstrap5-lite.css +3 -0
  31. package/styles/bootstrap5.3-lite.css +3 -0
  32. package/styles/bootstrap5.3.css +3 -0
  33. package/styles/bootstrap5.css +3 -0
  34. package/styles/fabric-dark-lite.css +3 -0
  35. package/styles/fabric-dark.css +3 -0
  36. package/styles/fabric-lite.css +3 -0
  37. package/styles/fabric.css +3 -0
  38. package/styles/fluent-dark-lite.css +3 -0
  39. package/styles/fluent-dark.css +3 -0
  40. package/styles/fluent-lite.css +3 -0
  41. package/styles/fluent.css +3 -0
  42. package/styles/fluent2-lite.css +3 -0
  43. package/styles/fluent2.css +3 -0
  44. package/styles/highcontrast-light-lite.css +3 -0
  45. package/styles/highcontrast-light.css +3 -0
  46. package/styles/highcontrast-lite.css +4 -1
  47. package/styles/highcontrast.css +4 -1
  48. package/styles/material-dark-lite.css +3 -0
  49. package/styles/material-dark.css +3 -0
  50. package/styles/material-lite.css +3 -0
  51. package/styles/material.css +3 -0
  52. package/styles/material3-dark-lite.css +3 -0
  53. package/styles/material3-dark.css +3 -0
  54. package/styles/material3-lite.css +3 -0
  55. package/styles/material3.css +3 -0
  56. package/styles/multicolumn-combobox/_layout.scss +3 -0
  57. package/styles/multicolumn-combobox/_tailwind3-definition.scss +32 -0
  58. package/styles/multicolumn-combobox/bds.css +467 -0
  59. package/styles/multicolumn-combobox/bds.scss +11 -0
  60. package/styles/multicolumn-combobox/bootstrap-dark.css +3 -0
  61. package/styles/multicolumn-combobox/bootstrap.css +3 -0
  62. package/styles/multicolumn-combobox/bootstrap4.css +3 -0
  63. package/styles/multicolumn-combobox/bootstrap5-dark.css +3 -0
  64. package/styles/multicolumn-combobox/bootstrap5.3.css +3 -0
  65. package/styles/multicolumn-combobox/bootstrap5.css +3 -0
  66. package/styles/multicolumn-combobox/fabric-dark.css +3 -0
  67. package/styles/multicolumn-combobox/fabric.css +3 -0
  68. package/styles/multicolumn-combobox/fluent-dark.css +3 -0
  69. package/styles/multicolumn-combobox/fluent.css +3 -0
  70. package/styles/multicolumn-combobox/fluent2.css +3 -0
  71. package/styles/multicolumn-combobox/highcontrast-light.css +3 -0
  72. package/styles/multicolumn-combobox/highcontrast.css +4 -1
  73. package/styles/multicolumn-combobox/icons/_tailwind3.scss +6 -0
  74. package/styles/multicolumn-combobox/material-dark.css +3 -0
  75. package/styles/multicolumn-combobox/material.css +3 -0
  76. package/styles/multicolumn-combobox/material3-dark.css +3 -0
  77. package/styles/multicolumn-combobox/material3.css +3 -0
  78. package/styles/multicolumn-combobox/tailwind-dark.css +3 -0
  79. package/styles/multicolumn-combobox/tailwind.css +3 -0
  80. package/styles/multicolumn-combobox/tailwind3.css +375 -0
  81. package/styles/multicolumn-combobox/tailwind3.scss +11 -0
  82. package/styles/tailwind-dark-lite.css +3 -0
  83. package/styles/tailwind-dark.css +3 -0
  84. package/styles/tailwind-lite.css +3 -0
  85. package/styles/tailwind.css +3 -0
  86. package/styles/tailwind3-lite.css +324 -0
  87. package/styles/tailwind3-lite.scss +10 -0
  88. package/styles/tailwind3.css +375 -0
  89. package/styles/tailwind3.scss +11 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-multicolumn-combobox.min.js","sources":["../../src/multicolumn-combobox/multi-column-combo-box.js","../../src/global.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Grid, 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 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.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id = this.element.id + '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderGrid();\n this.renderInput();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n this.gridObj = new Grid({\n dataSource: this.dataSource,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n query: this.query,\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionBegin: function (args) { _this.trigger('actionBegin', args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (_this.isPopupOpen) {\n _this.selectedGridRow(_this.gridObj.getRows()[_this.gridObj.selectedRowIndex], args, true);\n _this.hidePopup(args);\n _this.focusIn(args);\n }\n }\n if (_this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n _this.gridKeyActionHandler(args, true);\n }\n },\n 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: getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n var sortOrder = this.sortOrder.toString().toLowerCase();\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 };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n this.trigger('actionComplete', args);\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var values = Object.values(data).map(String);\n var isRowPresent = values.includes(selectedValue) && values.includes(selectedText);\n return isRowPresent;\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n var data = row.data;\n var index = row.index;\n _this.selectDataRow(data, index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ? this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n /* eslint-enable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (column) {\n var changeType;\n if (column.displayAsCheckBox && !column.format) {\n changeType = 'boolean';\n }\n return {\n field: column.field,\n headerText: column.header,\n width: column.width,\n textAlign: column.textAlign === '' && _this.enableRtl ? 'Right' : column.textAlign,\n format: column.format,\n displayAsCheckBox: column.displayAsCheckBox,\n template: column.template,\n headerTemplate: column.headerTemplate,\n customAttributes: column.customAttributes,\n type: changeType\n };\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [this.fields.groupBy],\n captionTemplate: (this.groupTemplate && this.fields.groupBy !== '' && !isNOU(this.fields.groupBy))\n ? this.groupTemplate : '${key}'\n };\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (this.popupDiv.classList.contains(NODATA) && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n if (this.isInitialRender) {\n var rowHeight = !this.popupDiv.classList.contains(NODATA) ? this.popupDiv.querySelector('.e-gridcontent tr') ?\n this.popupDiv.querySelector('.e-gridcontent tr').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 };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n this.inputEle.setAttribute('aria-expanded', 'false');\n this.inputEle.setAttribute('aria-readOnly', this.readonly.toString());\n this.inputEle.setAttribute('aria-disabled', this.disabled.toString());\n this.inputEle.setAttribute('autocomplete', 'off');\n this.inputEle.setAttribute('autocapitalize', 'off');\n this.inputEle.setAttribute('spellcheck', 'false');\n this.inputEle.setAttribute('tabindex', '0');\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n if (!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) {\n this.initValue(null, null, true);\n }\n };\n /* To calculate the width when change via set model */\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n var ddElement = this.inputWrapper;\n if (!isNOU(inputWidth)) {\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = (inputWidth.match(/px|%|em/)) ? (inputWidth) : (formatUnit(inputWidth));\n }\n }\n };\n MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n if (Object.keys(this.htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n if (htmlAttr === 'class') {\n this.inputWrapper.classList.add(this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (htmlAttr === 'disabled') {\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n }\n else if (htmlAttr === 'readonly') {\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n }\n else if (htmlAttr === 'style') {\n this.inputWrapper.setAttribute('style', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n var defaultAttr = ['title', 'id', 'placeholder',\n 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(this.htmlAttributes[\"\" + htmlAttr], this.inputEle);\n }\n else {\n this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n else {\n this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.inputEle.setAttribute('aria-disabled', 'false');\n this.inputWrapper.setAttribute('aria-disabled', 'false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.inputEle.setAttribute('aria-disabled', 'true');\n this.inputWrapper.setAttribute('aria-disabled', 'true');\n }\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var filteredData = dataLists.filter(function (item) {\n return item[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n }\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n return data[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n item = dataLists[_this.index];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n 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 ChangeEventArgs = {\n value: item ? item[this.fields.value].toString() : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n Input.setValue(item[this.fields.text].toString(), this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: item[this.fields.value].toString(),\n currentText: item[this.fields.text].toString(),\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n this.footer = this.footer ? this.footer : this.popupEle.querySelector('.e-popup-footer');\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight, dataSourceCount) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n var totalRowHeight = dataSourceCount * this.popupRowHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n totalRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (totalRowHeight < this.prevGridHeight ? (totalRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.indexOf('%') > -1) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var fieldText = selectedRecords ? selectedRecords[this.fields.text].toString() : '';\n var fieldValue = selectedRecords ? selectedRecords[this.fields.value].toString() : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: fieldText, value: fieldValue },\n event: e,\n cancel: false,\n value: fieldValue,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var selectedRecord = eventArgs.itemData;\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecord[_this.fields.value], selectedRecord[_this.fields.text], _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecord[_this.fields.text], _this.inputEle, _this.floatLabelType, _this.showClearButton);\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text ? text : this.text;\n this.value = value ? value : this.value;\n this.index = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n var inputValue_1 = e.target.value.toLowerCase();\n var customFiltering_1 = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: inputValue_1,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n customFiltering_1 = true;\n _this.filterAction(dataSource, inputValue_1, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !customFiltering_1) {\n _this.filterAction(_this.dataSource, inputValue_1, _this.query, _this.fields);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n var _this = this;\n var data;\n if (this.dataSource instanceof DataManager) {\n var query = new Query();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.dataSource.executeQuery(query).then(function (result) {\n var totaldata = result.result;\n data = totaldata.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n _this.selectFilteredRows(data);\n });\n }\n else if (Array.isArray(this.dataSource)) {\n data = this.dataSource.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n this.selectFilteredRows(data);\n }\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data) {\n if (data.length > 0) {\n this.matchedContent = data[0];\n }\n else {\n this.matchedContent = null;\n }\n if (this.matchedContent) {\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n }\n else {\n this.matchedRowEle = null;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filterAction = function (dataSource, inputValue, query, fields) {\n var _this = this;\n if (isNullOrUndefined(query) && isNullOrUndefined(fields)) {\n this.updateGridDataSource(dataSource);\n }\n else if (query) {\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, query, fields);\n }\n else {\n new DataManager(dataSource).executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n _this.updateGridDataSource(dataLists);\n });\n }\n }\n else {\n var isQuery = query || new Query();\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, isQuery, fields);\n }\n else if (Array.isArray(dataSource)) {\n var filterType_1 = this.filterType.toString().toLowerCase();\n var filteredData = dataSource.filter(function (item) {\n return _this.filterData(item, filterType_1, inputValue, fields);\n });\n this.updateGridDataSource(filteredData);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filteringHandler = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var filterType = this.filterType.toString().toLowerCase();\n var filteredData;\n dataSource.executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var dataLength = dataLists.length;\n filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });\n _this.updateGridDataSource(filteredData, dataLength);\n });\n };\n MultiColumnComboBox.prototype.filterData = function (item, filterType, inputValue, fields) {\n var itemValue = item[fields ? fields.text : this.fields.text].toString().toLowerCase();\n switch (filterType) {\n case 'startswith':\n return itemValue.startsWith(inputValue);\n case 'endswith':\n return itemValue.endsWith(inputValue);\n case 'contains':\n return itemValue.includes(inputValue);\n default:\n return false;\n }\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function (dataSource, dataLength) {\n var autoHeight = true;\n if (dataSource.length > 0) {\n var length_1 = this.dataSource instanceof DataManager ? dataLength\n : this.dataSource.length;\n autoHeight = length_1 !== dataSource.length;\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = dataSource;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n this.updateGridHeight(true, autoHeight, dataSource.length);\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!(e.target.closest('.e-multicolumn-list'))) {\n this.focusOut();\n }\n return;\n }\n var target = e.target;\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n this.updateValuesOnInput(e);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues) {\n var _this = this;\n if (isClearValues === void 0) { isClearValues = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n setTimeout(function () {\n _this.inputEle.value = _this.matchedContent[_this.fields.text].toString();\n _this.value = _this.matchedContent[_this.fields.value].toString();\n var selectIndex = _this.findIndex(_this.gridObj.currentViewData, _this.matchedContent);\n _this.index = selectIndex;\n _this.text = _this.matchedContent[_this.fields.text].toString();\n _this.gridObj.selectRow(selectIndex);\n _this.selectedGridRow(_this.gridObj.getRowByIndex(selectIndex), e);\n _this.previousItemElement = _this.gridObj.getSelectedRows()[0];\n }, 100);\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n if (isGroup) {\n if (e.key === 'ArrowDown') {\n e.action = 'moveDown';\n }\n else if (e.key === 'ArrowUp') {\n e.action = 'moveUp';\n }\n else if (e.key === 'End') {\n e.action = 'end';\n }\n else if (e.key === 'Home') {\n e.action = 'home';\n }\n else if (e.key === 'Tab') {\n e.action = 'tab';\n }\n else if (e.key === 'Escape') {\n e.action = 'escape';\n }\n if (e.shiftKey && e.key === 'Tab') {\n e.action = 'shiftTab';\n }\n if (e.altKey && e.key === 'ArrowUp') {\n e.action = 'altUp';\n }\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n 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 /**\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 + '_popup', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n var dataRows = _this.gridObj.getRowsObject();\n var groupIndex_1;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataRows.forEach(function (data, index) {\n if (_this.fields.groupBy && isNOU(data.data.items)) {\n if (isNOU(groupIndex_1)) {\n groupIndex_1 = 0;\n }\n else {\n groupIndex_1 += 1;\n }\n }\n _this.selectDataRow(data.data, !_this.fields.groupBy ? index : groupIndex_1);\n });\n }\n _this.focusIn(e);\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (contentEle.querySelector('.e-row')) {\n _this.inputEle.setAttribute('aria-activedescendant', contentEle.querySelector('.e-row').getAttribute('data-uid'));\n }\n }\n if (!isNOU(_this.dataSource) && _this.dataSource instanceof DataManager) {\n _this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.remoteDataLength = e.result.length;\n });\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n _this.inputEle.value = _this.text ? _this.text.toString() : '';\n if (e) {\n var target = e.target;\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.dataSource;\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n return dataLists.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n });\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(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 if (this.gridObj) {\n this.gridObj.dataSource = newProp.dataSource;\n }\n break;\n case 'query':\n if (this.gridObj) {\n this.gridObj.query = newProp.query;\n }\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n 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 }\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","import * as index from './index';\nindex.MultiColumnComboBox.Inject(index.VirtualScroll, index.Sort, index.Edit, index.Group);\nexport * from './index';\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","apply","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","call","gridInject","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","persistData","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderGrid","renderInput","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","gridColumns","getGridColumns","gridObj","dataSource","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","query","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","toString","toLowerCase","rowTemplate","itemTemplate","dataBound","onDataBound","actionFailure","args","onActionFailure","actionBegin","trigger","actionComplete","handleActionComplete","bind","keyPressed","cancel","isPopupOpen","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","fields","groupBy","gridKeyActionHandler","resizing","resizeStart","resizeStop","updateGroupByField","sortOrder","isPrimaryKey","sortSettings","field","text","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","popupObj","refreshPosition","querySelector","scrollTop","isRowMatching","selectedValue","selectedText","values","map","String","includes","rows","forEach","row","index","selectDataRow","value","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","item","keys","every","column","changeType","displayAsCheckBox","format","headerText","header","width","textAlign","template","headerTemplate","customAttributes","type","classList","add","allowGrouping","groupSettings","showDropArea","captionTemplate","groupTemplate","isVue","dataCount","popupChild","l10nUpdate","removeChild","addClass","contains","removeClass","noRecordEle","isInitialRender","getBoundingClientRect","popupRowHeight","hide","popupEle","style","visibility","rowElements","querySelectorAll","isDataFiltered","inputEle","tagName","getAttribute","setAttribute","readonly","disabled","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","setElementWidth","initValue","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","_a","htmlAttr","setEnable","dataBind","indexOf","setPlaceholder","setEnabled","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","updateValues","dataList","result","updateCurrentValues","undefined","value_1","DataManager","executeQuery","Query","then","e","dataLists","filteredData","filter","updateChangeEvent","setTimeout","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","setValue","MULTICOLUMNLIST","attributes","aria-label","document","body","createPopup","prepend","footerTemplate","setFooterTemplate","getSize","maxHeight","footer","Math","round","updateGridHeight","isFilter","autoHeight","dataSourceCount","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","totalRowHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","innerHTML","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","offsetWidth","documentElement","parseFloat","isKeyNav","eventArgs","selectedRecords","fieldText","fieldValue","selectedRecord","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","allowFiltering","inputValue_1","customFiltering_1","eventArgs_1","preventDefaultAction","updateData","filterAction","updateInputValue","inputValue","totaldata","startsWith","selectFilteredRows","isArray","selectedIndex","currentViewData","getRowByIndex","isNullOrUndefined","updateGridDataSource","filteringHandler","isQuery","filterType_1","filterType","filterData","dataLength","itemValue","endsWith","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","unWireEvents","remove","destroy","preventDefault","focusedEle","closest","focusOut","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","split","action","updateSelectedItem","isGroup","isUpdateIndex","isInputTarget","index_1","remoteDataLength","clearIconEle","display","calculateWidth","isInputOpen","animModel","name","duration","popup","animation","aria-expanded","aria-owns","aria-controls","groupIndex_1","getRowsObject","items","contentEle","activeRow","show","Animation","removeAttribute","addItems","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component","index.VirtualScroll","index.Sort","index.Edit","index.Group"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-multicolumn-combobox.min.js","sources":["../../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Grid, 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 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.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 };\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.renderGrid();\n this.renderInput();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.dataSource,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n query: this.query,\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionBegin: function (args) { _this.trigger('actionBegin', args); },\n actionComplete: 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: 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 };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n this.trigger('actionComplete', args);\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\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 values = Object.values(data).map(String);\n return values.includes(selectedValue) && values.includes(selectedText);\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 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 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 };\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 if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n if (!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) {\n this.initValue(null, null, true);\n }\n };\n 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 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 this.inputWrapper.setAttribute('style', htmlAttributes[htmlAttr]);\n break;\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n 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.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var filteredData = dataLists.filter(function (item) {\n return item[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n }\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n return data[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n item = dataLists[_this.index];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n 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 ChangeEventArgs = {\n value: item ? item[this.fields.value].toString() : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n Input.setValue(item[this.fields.text].toString(), this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: item[this.fields.value].toString(),\n currentText: item[this.fields.text].toString(),\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n this.footer = this.footer ? this.footer : this.popupEle.querySelector('.e-popup-footer');\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight, dataSourceCount) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n var totalRowHeight = dataSourceCount * this.popupRowHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n totalRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (totalRowHeight < this.prevGridHeight ? (totalRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.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 fieldText = selectedRecords ? selectedRecords[this.fields.text].toString() : '';\n var fieldValue = selectedRecords ? selectedRecords[this.fields.value].toString() : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: fieldText, value: fieldValue },\n event: e,\n cancel: false,\n value: fieldValue,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var selectedRecord = eventArgs.itemData;\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecord[_this.fields.value], selectedRecord[_this.fields.text], _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecord[_this.fields.text], _this.inputEle, _this.floatLabelType, _this.showClearButton);\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text || this.text;\n this.value = value || this.value;\n this.index = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n var inputValue_1 = e.target.value.toLowerCase();\n var customFiltering_1 = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: inputValue_1,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n customFiltering_1 = true;\n _this.filterAction(dataSource, inputValue_1, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !customFiltering_1) {\n _this.filterAction(_this.dataSource, inputValue_1, _this.query, _this.fields);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData, query, result, totaldata;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(this.dataSource instanceof DataManager)) return [3 /*break*/, 2];\n query = new Query();\n return [4 /*yield*/, this.dataSource.executeQuery(query)];\n case 1:\n result = _c.sent();\n totaldata = result.result;\n (_a = this.filterDatas(totaldata, inputValue), data = _a.data, exactData = _a.exactData);\n return [3 /*break*/, 3];\n case 2:\n if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n _c.label = 3;\n case 3:\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n }\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n return item[_this.fields.text].toString() === 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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filterAction = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var isQuery = query || new Query();\n var filterType = this.filterType.toString().toLowerCase();\n if (isNOU(query) && isNOU(fields)) {\n this.updateGridDataSource(dataSource);\n }\n else if (query) {\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, query, fields);\n }\n else {\n new DataManager(dataSource).executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n _this.updateGridDataSource(dataLists);\n });\n }\n }\n else {\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, isQuery, fields);\n }\n else if (Array.isArray(dataSource)) {\n var filteredData = dataSource.filter(function (item) {\n return _this.filterData(item, filterType, inputValue, fields);\n });\n this.updateGridDataSource(filteredData);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filteringHandler = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var filterType = this.filterType.toString().toLowerCase();\n var filteredData;\n dataSource.executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var dataLength = dataLists.length;\n filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });\n _this.updateGridDataSource(filteredData, dataLength);\n });\n };\n MultiColumnComboBox.prototype.filterData = function (item, filterType, inputValue, fields) {\n var itemValue = item[fields ? fields.text : this.fields.text].toString().toLowerCase();\n switch (filterType) {\n case 'startswith':\n return itemValue.startsWith(inputValue);\n case 'endswith':\n return itemValue.endsWith(inputValue);\n case 'contains':\n return itemValue.includes(inputValue);\n default:\n return false;\n }\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function (dataSource, dataLength) {\n var autoHeight = true;\n if (dataSource.length > 0) {\n var length_1 = this.dataSource instanceof DataManager ? dataLength\n : this.dataSource.length;\n autoHeight = length_1 !== dataSource.length;\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = dataSource;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n this.updateGridHeight(true, autoHeight, dataSource.length);\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n 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-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 this.updateValuesOnInput(e);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n var _this = this;\n if (isClearValues === void 0) { isClearValues = false; }\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val) {\n this.inputEle.value = this.value = this.index = this.text = null;\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n setTimeout(function () {\n _this.inputEle.value = _this.matchedContent[_this.fields.text].toString();\n _this.value = _this.matchedContent[_this.fields.value].toString();\n var selectIndex = _this.findIndex(_this.gridObj.currentViewData, _this.matchedContent);\n _this.index = selectIndex;\n _this.text = _this.matchedContent[_this.fields.text].toString();\n _this.gridObj.selectRow(selectIndex);\n _this.selectedGridRow(_this.gridObj.getRowByIndex(selectIndex), e);\n _this.previousItemElement = _this.gridObj.getSelectedRows()[0];\n }, 100);\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e, 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.gridObj.dataSource = 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 + '_popup', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n var dataRows = _this.gridObj.getRowsObject();\n var groupIndex_1;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataRows.forEach(function (data, index) {\n if (_this.fields.groupBy && isNOU(data.data.items)) {\n if (isNOU(groupIndex_1)) {\n groupIndex_1 = 0;\n }\n else {\n groupIndex_1 += 1;\n }\n }\n _this.selectDataRow(data.data, !_this.fields.groupBy ? index : groupIndex_1);\n });\n }\n _this.focusIn(e);\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n 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 if (!isNOU(_this.dataSource) && _this.dataSource instanceof DataManager) {\n _this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.remoteDataLength = e.result.length;\n });\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n 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 }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.dataSource;\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n return dataLists.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n });\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(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 if (this.gridObj) {\n this.gridObj.query = newProp.query;\n }\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n 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 }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","verb","n","v","op","f","TypeError","_","y","t","call","label","ops","pop","trys","push","g","sent","throw","return","Symbol","iterator","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","gridInject","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderGrid","renderInput","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","gridColumns","getGridColumns","sortOrder","toString","toLowerCase","gridObj","dataSource","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","query","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","dataBound","onDataBound","actionFailure","args","onActionFailure","actionBegin","trigger","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","fields","text","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","popupObj","refreshPosition","querySelector","scrollTop","cancel","isPopupOpen","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","values","map","String","includes","rows","forEach","row","selectDataRow","index","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","item","keys","every","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","dataCount","popupChild","hasNoDataClass","contains","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","getBoundingClientRect","popupRowHeight","hide","popupEle","style","visibility","rowElements","querySelectorAll","isDataFiltered","inputEle","allowedAttributes","tagName","getAttribute","setAttribute","attributes","indexOf","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","setElementWidth","initValue","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","setPlaceholder","setEnabled","setAriaDisabled","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","updateValues","dataList","updateCurrentValues","value_1","DataManager","executeQuery","Query","dataLists","filteredData","filter","updateChangeEvent","setTimeout","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","setValue","MULTICOLUMNLIST","aria-label","document","createPopup","prepend","footerTemplate","setFooterTemplate","getSize","maxHeight","footer","Math","round","updateGridHeight","isFilter","autoHeight","dataSourceCount","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","totalRowHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","innerHTML","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","offsetWidth","documentElement","parseFloat","isKeyNav","eventArgs","selectedRecords","fieldText","fieldValue","selectedRecord","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","allowFiltering","inputValue_1","customFiltering_1","eventArgs_1","preventDefaultAction","updateData","filterAction","updateInputValue","inputValue","_b","exactData","totaldata","_c","filterDatas","isArray","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","isQuery","filterType","updateGridDataSource","filteringHandler","filterData","dataLength","itemValue","endsWith","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","unWireEvents","remove","destroy","preventDefault","focusedEle","closest","focusOut","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","split","action","updateSelectedItem","isGroup","keyActionMap","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","remoteDataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","animModel","name","duration","popup","animation","aria-owns","aria-controls","groupIndex_1","getRowsObject","items","contentEle","activeRow","firstRow","show","Animation","removeAttribute","addItems","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component"],"mappings":"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"}