@syncfusion/ej2-multicolumn-combobox 32.1.25 → 33.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/ej2-multicolumn-combobox.umd.min.js +2 -2
  2. package/dist/ej2-multicolumn-combobox.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-multicolumn-combobox.es2015.js +38 -0
  4. package/dist/es6/ej2-multicolumn-combobox.es2015.js.map +1 -1
  5. package/dist/es6/ej2-multicolumn-combobox.es5.js +34 -0
  6. package/dist/es6/ej2-multicolumn-combobox.es5.js.map +1 -1
  7. package/dist/global/ej2-multicolumn-combobox.min.js +2 -2
  8. package/dist/global/ej2-multicolumn-combobox.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/package.json +3 -3
  11. package/src/multicolumn-combobox/multi-column-combo-box.d.ts +3 -0
  12. package/src/multicolumn-combobox/multi-column-combo-box.js +34 -0
  13. package/styles/bds-lite.css +4 -2
  14. package/styles/bds.css +4 -2
  15. package/styles/bootstrap-dark-lite.css +4 -2
  16. package/styles/bootstrap-dark.css +4 -2
  17. package/styles/bootstrap-lite.css +4 -2
  18. package/styles/bootstrap.css +4 -2
  19. package/styles/bootstrap4-lite.css +4 -2
  20. package/styles/bootstrap4.css +4 -2
  21. package/styles/bootstrap5-dark-lite.css +4 -2
  22. package/styles/bootstrap5-dark.css +4 -2
  23. package/styles/bootstrap5-lite.css +4 -2
  24. package/styles/bootstrap5.3-lite.css +4 -2
  25. package/styles/bootstrap5.3.css +4 -2
  26. package/styles/bootstrap5.css +4 -2
  27. package/styles/fabric-dark-lite.css +4 -2
  28. package/styles/fabric-dark.css +4 -2
  29. package/styles/fabric-lite.css +4 -2
  30. package/styles/fabric.css +4 -2
  31. package/styles/fluent-dark-lite.css +4 -2
  32. package/styles/fluent-dark.css +4 -2
  33. package/styles/fluent-lite.css +4 -2
  34. package/styles/fluent.css +4 -2
  35. package/styles/fluent2-lite.css +4 -2
  36. package/styles/fluent2.css +4 -2
  37. package/styles/highcontrast-light-lite.css +4 -2
  38. package/styles/highcontrast-light.css +4 -2
  39. package/styles/highcontrast-lite.css +4 -2
  40. package/styles/highcontrast.css +4 -2
  41. package/styles/material-dark-lite.css +4 -2
  42. package/styles/material-dark.css +4 -2
  43. package/styles/material-lite.css +4 -2
  44. package/styles/material.css +4 -2
  45. package/styles/material3-dark-lite.css +4 -4
  46. package/styles/material3-dark.css +4 -4
  47. package/styles/material3-lite.css +4 -4
  48. package/styles/material3.css +4 -4
  49. package/styles/multicolumn-combobox/bds.css +4 -2
  50. package/styles/multicolumn-combobox/bootstrap-dark.css +4 -2
  51. package/styles/multicolumn-combobox/bootstrap.css +4 -2
  52. package/styles/multicolumn-combobox/bootstrap4.css +4 -2
  53. package/styles/multicolumn-combobox/bootstrap5-dark.css +4 -2
  54. package/styles/multicolumn-combobox/bootstrap5.3.css +4 -2
  55. package/styles/multicolumn-combobox/bootstrap5.css +4 -2
  56. package/styles/multicolumn-combobox/fabric-dark.css +4 -2
  57. package/styles/multicolumn-combobox/fabric.css +4 -2
  58. package/styles/multicolumn-combobox/fluent-dark.css +4 -2
  59. package/styles/multicolumn-combobox/fluent.css +4 -2
  60. package/styles/multicolumn-combobox/fluent2.css +4 -2
  61. package/styles/multicolumn-combobox/highcontrast-light.css +4 -2
  62. package/styles/multicolumn-combobox/highcontrast.css +4 -2
  63. package/styles/multicolumn-combobox/material-dark.css +4 -2
  64. package/styles/multicolumn-combobox/material.css +4 -2
  65. package/styles/multicolumn-combobox/material3-dark.css +4 -4
  66. package/styles/multicolumn-combobox/material3.css +4 -4
  67. package/styles/multicolumn-combobox/tailwind-dark.css +4 -2
  68. package/styles/multicolumn-combobox/tailwind.css +4 -2
  69. package/styles/multicolumn-combobox/tailwind3.css +4 -2
  70. package/styles/tailwind-dark-lite.css +4 -2
  71. package/styles/tailwind-dark.css +4 -2
  72. package/styles/tailwind-lite.css +4 -2
  73. package/styles/tailwind.css +4 -2
  74. package/styles/tailwind3-lite.css +4 -2
  75. package/styles/tailwind3.css +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-multicolumn-combobox.min.js","sources":["../../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, getValue } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar HIDDENELEMENT = 'e-multicolumn-list-hidden';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort, Resize);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], GridSettings.prototype, \"textWrapMode\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type='text' id='multi-column'></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo('#multi-column');\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.isShowSpinner = true;\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id += '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderInput();\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource)\n && this.dataSource instanceof DataManager) {\n this.isInitialValueRender = true;\n }\n if (this.gridData == null) {\n this.setGridData(this.dataSource);\n }\n this.renderGrid();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.setGridData = function (dataSource, query) {\n var _this = this;\n this.trigger('actionBegin', { cancel: false, query: query }, function (args) {\n if (!args.cancel) {\n if (dataSource instanceof DataManager) {\n if (_this.isShowSpinner) {\n _this.showHideSpinner(true);\n }\n dataSource.executeQuery(_this.getQuery(query)).then(function (e) {\n _this.gridData = e.result;\n _this.trigger('actionComplete', e, function (e) {\n _this.showHideSpinner(false);\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.isInitialValueRender) {\n _this.isInitialValueRender = false;\n _this.initValue(null, null, true);\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }).catch(function (e) {\n _this.trigger('actionFailure', e, null);\n });\n }\n else {\n var dataManager = new DataManager(dataSource);\n var listItems_1 = (_this.getQuery(query)).executeLocal(dataManager);\n _this.gridData = listItems_1;\n _this.trigger('actionComplete', { result: listItems_1 }, function (e) {\n if (!_this.isMainDataUpdated) {\n if (_this.isCustomFilter && (isNOU(_this.dataSource) || _this.dataSource.length === 0)) {\n _this.setProperties({ dataSource: listItems_1 }, true);\n }\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }\n }\n });\n };\n MultiColumnComboBox.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n if ((this.allowFiltering && this.typedString && this.typedString !== '')) {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, true, false);\n }\n }\n else {\n filterQuery = (this.customFilterQuery != null) ?\n this.customFilterQuery.clone() : query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n MultiColumnComboBox.prototype.setHiddenValue = function () {\n if (isNOU(this.value)) {\n this.hiddenElement.innerHTML = '';\n return;\n }\n var existingOption = this.hiddenElement.querySelector('option');\n if (!isNOU(existingOption)) {\n existingOption.textContent = this.text;\n existingOption.setAttribute('value', this.value.toString());\n }\n else if (!isNOU(this.hiddenElement)) {\n var newOption = document.createElement('option');\n newOption.text = this.text;\n newOption.setAttribute('value', this.value.toString());\n newOption.setAttribute('selected', '');\n this.hiddenElement.appendChild(newOption);\n }\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.gridData,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n beforeDataBound: function () {\n if (_this.dataSource instanceof DataManager && _this.isShowSpinner) {\n _this.showHideSpinner(true);\n _this.isShowSpinner = false;\n }\n },\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: this.element.id + \"_\" + getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.appendTo(this.gridEle);\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource) && this.dataSource instanceof Array) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n var _this = this;\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n if (Array.isArray(args.rows) && this.isDataFiltered) {\n var rows = args.rows;\n var rowHeight_1 = 0;\n rows.forEach(function (row) {\n var rowElement = _this.gridObj.getRowElementByUID(row.uid);\n if (rowElement) {\n rowHeight_1 += rowElement.getBoundingClientRect().height;\n }\n });\n this.popupRowHeight = rowHeight_1 || parseFloat(this.popupHeight);\n this.updateGridHeight(true, true);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (this.isPopupOpen) {\n this.selectedGridRow(this.gridObj.getRows()[this.gridObj.selectedRowIndex], args, true);\n this.hidePopup(args);\n this.focusIn(args);\n }\n }\n if (this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n this.gridKeyActionHandler(args, true);\n }\n };\n /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var flattenData = function (data) {\n var result = [];\n if (data && typeof data === 'object') {\n if (Array.isArray(data)) {\n data.forEach(function (item) { return result.push.apply(result, flattenData(item)); });\n }\n else {\n Object.keys(data).forEach(function (key) { return result.push.apply(result, flattenData(data[\"\" + key])); });\n }\n }\n else if (data != null) {\n result.push(String(data));\n }\n return result;\n };\n var flattenedValues = flattenData(data);\n return (flattenedValues.indexOf(selectedValue) !== -1 && flattenedValues.indexOf(selectedText) !== -1);\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n _this.selectDataRow(row.data, row.index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ?\n this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (_a) {\n var field = _a.field, header = _a.header, width = _a.width, textAlign = _a.textAlign, format = _a.format, displayAsCheckBox = _a.displayAsCheckBox, template = _a.template, headerTemplate = _a.headerTemplate, customAttributes = _a.customAttributes;\n return ({\n field: field,\n headerText: header,\n width: width,\n textAlign: textAlign.toString() === '' && _this.enableRtl ? 'Right' : textAlign,\n format: format,\n displayAsCheckBox: displayAsCheckBox,\n template: template,\n headerTemplate: headerTemplate,\n customAttributes: customAttributes,\n type: displayAsCheckBox && !format ? 'boolean' : undefined\n });\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n var groupByField = this.fields.groupBy;\n var isGroupByValid = groupByField !== '' && !isNOU(groupByField);\n if (isGroupByValid) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [groupByField]\n };\n if (this.groupTemplate && isGroupByValid) {\n this.gridObj.groupSettings.captionTemplate = this.groupTemplate;\n }\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var _this = this;\n if (this.isLocaleChanged) {\n this.isLocaleChanged = false;\n this.unWireEvents();\n this.wireEvents();\n }\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n else if (this.isCustomFilter && !hasNoDataClass && dataCount > 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n if (this.dataSource instanceof DataManager) {\n setTimeout(function () {\n _this.showHideSpinner(false);\n });\n }\n };\n MultiColumnComboBox.prototype.showHideSpinner = function (isShow) {\n if (isShow) {\n showSpinner(this.dropdownElement);\n }\n else {\n hideSpinner(this.dropdownElement);\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'tabindex': '-1',\n 'class': HIDDENELEMENT\n }\n });\n prepend([this.hiddenElement], this.inputWrapper);\n var name = this.inputEle.getAttribute('name') ? this.inputEle.getAttribute('name') : this.inputEle.getAttribute('id');\n this.hiddenElement.setAttribute('name', name);\n this.inputEle.removeAttribute('name');\n if (!this.hiddenElement.hasAttribute('aria-label')) {\n this.hiddenElement.setAttribute('aria-label', this.getModuleName());\n }\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n this.dropdownElement = this.inputWrapper.querySelector('.e-input-group-icon.e-multicolumn-list-icon.e-icons');\n createSpinner({\n target: this.dropdownElement\n });\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = inputWidth.match(/px|%|em/) ? inputWidth : formatUnit(inputWidth);\n }\n };\n MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var _this = this;\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style': {\n var styles = htmlAttributes[htmlAttr];\n this.inputWrapper.style.cssText = '';\n if (styles) {\n styles.split(';').forEach(function (styleProperty) {\n var _a = styleProperty.split(':').map(function (part) { return part.trim(); }), property = _a[0], value = _a[1];\n if (property && value) {\n _this.inputWrapper.style.setProperty(property, value);\n }\n });\n }\n break;\n }\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.setAriaDisabled('false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.updateFieldValue = function (fieldValue, dataObj) {\n var fieldVal = getValue(fieldValue, dataObj).toString();\n return fieldVal;\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n var filteredData = dataLists.filter(function (item) {\n var fieldVal = item ? (_this.updateFieldValue(isRerender ? (isValue ? _this.fields.value :\n _this.fields.text) : !isNOU(_this.value) ? _this.fields.value : _this.fields.text, item)) : null;\n return fieldVal === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n var fieldVal = _this.updateFieldValue(isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text, data);\n return fieldVal === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n item = dataLists[this.index];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var fieldValue = item ? this.updateFieldValue(this.fields.value, item) : null;\n var ChangeEventArgs = {\n value: item ? fieldValue : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n var fieldText = this.updateFieldValue(this.fields.text, item);\n var fieldValue = this.updateFieldValue(this.fields.value, item);\n Input.setValue(fieldText, this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: fieldValue,\n currentText: fieldText,\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n this.popupRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (this.popupRowHeight < this.prevGridHeight ? (this.popupRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.includes('%')) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var dataText = selectedRecords ? this.updateFieldValue(this.fields.text, selectedRecords) : '';\n var dataValue = selectedRecords ? this.updateFieldValue(this.fields.value, selectedRecords) : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: selectedRecords ? dataText : '', value: selectedRecords ? dataValue : '' },\n event: e,\n cancel: false,\n value: selectedRecords ? dataValue : '',\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecords ? dataValue : '', selectedRecords ? dataText : '', _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecords ? dataText : '', _this.inputEle, _this.floatLabelType, _this.showClearButton);\n _this.setHiddenValue();\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text || this.text;\n this.value = value || this.value;\n this.index = this.selectedRowIndex = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n this.setHiddenValue();\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n this.typedString = e.target.value.toLowerCase();\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.typedString,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.customFilterQuery = query ? query.clone() : query;\n _this.isMainDataUpdated = false;\n if (query) {\n _this.setGridData(dataSource, query);\n }\n else {\n var filtered = _this.filterDatas(dataSource, _this.typedString).data;\n _this.setGridData(_this.typedString !== '' ? filtered : dataSource, query);\n }\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !_this.isCustomFilter) {\n _this.setGridData(_this.dataSource, _this.query ? _this.query.clone() : null);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData;\n return __generator(this, function (_c) {\n if (this.dataSource instanceof DataManager) {\n (_a = this.filterDatas(this.mainData, inputValue), data = _a.data, exactData = _a.exactData);\n }\n else if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return inputValue && fieldText.toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return fieldText === inputValue;\n });\n return { data: data, exactData: exactData };\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data, exactData) {\n if (data.length <= 0) {\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n return;\n }\n this.matchedContent = data[0];\n this.exactMatchedContent = exactData[0];\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function () {\n if (this.gridData && this.gridData.length > 0) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = this.gridData;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-multicolumn-list.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n var isClearVal = this.inputEle.value === '' ? true : false;\n this.updateValuesOnInput(e, null, isClearVal);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val && e.code !== 'Enter') {\n this.inputEle.value = null;\n this.setProperties({ value: null, index: null, text: null }, true);\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var fieldText = this.updateFieldValue(this.fields.text, this.matchedContent);\n var fieldValue = this.updateFieldValue(this.fields.value, this.matchedContent);\n this.inputEle.value = fieldText;\n this.value = fieldValue;\n var selectIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.index = selectIndex;\n this.text = fieldText;\n this.gridObj.selectRow(selectIndex);\n this.selectedGridRow(this.gridObj.getRowByIndex(selectIndex), e);\n this.previousItemElement = this.gridObj.getSelectedRows()[0];\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e, false, true);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[parseInt(index.toString(), 10)], e, true);\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.isMainDataUpdated = false;\n this.isShowSpinner = true;\n this.setGridData(newDataSource);\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n if (this.inputWrapper) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_options', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n _this.gridObj.selectRow(_this.selectedRowIndex);\n }\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle.firstElementChild);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n var target = e ? e.target : null;\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n _this.customFilterQuery = null;\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.allowFiltering ? _this.mainData : _this.gridData;\n var noRecordEle = _this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n _this.popupDiv.removeChild(noRecordEle);\n removeClass([_this.popupDiv], [NODATA]);\n }\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n return dataLists.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n this.hiddenElement = null;\n this.dropdownElement = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n this.isMainDataUpdated = false;\n this.setGridData(this.dataSource);\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\n if (!(isNOU(newProp.gridSettings.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.gridSettings.allowTextWrap;\n }\n if (!(isNOU(newProp.gridSettings.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.gridSettings.textWrapMode;\n }\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n case 'locale':\n this.isLocaleChanged = true;\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","verb","n","v","op","f","TypeError","_","y","t","call","label","ops","pop","trys","push","g","sent","throw","return","Symbol","iterator","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","gridInject","isShowSpinner","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","index","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","trigger","cancel","args","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","listItems_1","executeLocal","isCustomFilter","filterQuery","allowFiltering","clone","Query","filterType","typedString","fields","where","customFilterQuery","setHiddenValue","hiddenElement","innerHTML","existingOption","querySelector","newOption","document","setAttribute","toString","textContent","gridColumns","getGridColumns","sortOrder","toLowerCase","gridObj","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","beforeDataBound","dataBound","onDataBound","actionFailure","onActionFailure","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","isArray","rows","isDataFiltered","rowHeight_1","forEach","row","rowElement","getRowElementByUID","uid","getBoundingClientRect","popupRowHeight","parseFloat","updateGridHeight","popupObj","refreshPosition","scrollTop","isPopupOpen","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","flattenData","item","keys","String","flattenedValues","indexOf","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","every","map","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","isLocaleChanged","unWireEvents","dataCount","popupChild","hasNoDataClass","contains","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","rowElements","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","attributes","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","aria-hidden","class","prepend","name","removeAttribute","hasAttribute","setElementWidth","createSpinner","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","styles","cssText","split","styleProperty","part","trim","property","setProperty","defaultAttr","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","updateValues","dataList","updateCurrentValues","value_1","filteredData","dataLists","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","setValue","MULTICOLUMNLIST","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","eventArgs_1","preventDefaultAction","updateData","filtered","filterDatas","updateInputValue","inputValue","_b","exactData","_c","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","remove","destroy","preventDefault","focusedEle","closest","focusOut","isClearVal","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","code","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","action","updateSelectedItem","isGroup","keyActionMap","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","animModel","duration","popup","animation","aria-owns","aria-controls","contentEle","activeRow","firstRow","show","Animation","firstElementChild","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-multicolumn-combobox.min.js","sources":["../../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, getValue } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar HIDDENELEMENT = 'e-multicolumn-list-hidden';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort, Resize);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], GridSettings.prototype, \"textWrapMode\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type='text' id='multi-column'></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo('#multi-column');\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.isShowSpinner = true;\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n this.persistData();\n this.createLiveRegion();\n };\n MultiColumnComboBox.prototype.createLiveRegion = function () {\n this.liveRegion = this.createElement('div', {\n attrs: {\n id: this.element.id + '_live',\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n role: 'status'\n },\n styles: \"\\n width: 0;\\n height: 0;\\n overflow: hidden;\\n \"\n });\n document.body.appendChild(this.liveRegion);\n this.liveRegion.textContent = '';\n };\n MultiColumnComboBox.prototype.announcePosition = function (index, total) {\n if (!this.isPopupOpen) {\n return;\n }\n var message = \"Item \" + (index + 1) + \" of \" + total;\n this.liveRegion.textContent = message;\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id += '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderInput();\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource)\n && this.dataSource instanceof DataManager) {\n this.isInitialValueRender = true;\n }\n if (this.gridData == null) {\n this.setGridData(this.dataSource);\n }\n this.renderGrid();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.setGridData = function (dataSource, query) {\n var _this = this;\n this.trigger('actionBegin', { cancel: false, query: query }, function (args) {\n if (!args.cancel) {\n if (dataSource instanceof DataManager) {\n if (_this.isShowSpinner) {\n _this.showHideSpinner(true);\n }\n dataSource.executeQuery(_this.getQuery(query)).then(function (e) {\n _this.gridData = e.result;\n _this.trigger('actionComplete', e, function (e) {\n _this.showHideSpinner(false);\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.isInitialValueRender) {\n _this.isInitialValueRender = false;\n _this.initValue(null, null, true);\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }).catch(function (e) {\n _this.trigger('actionFailure', e, null);\n });\n }\n else {\n var dataManager = new DataManager(dataSource);\n var listItems_1 = (_this.getQuery(query)).executeLocal(dataManager);\n _this.gridData = listItems_1;\n _this.trigger('actionComplete', { result: listItems_1 }, function (e) {\n if (!_this.isMainDataUpdated) {\n if (_this.isCustomFilter && (isNOU(_this.dataSource) || _this.dataSource.length === 0)) {\n _this.setProperties({ dataSource: listItems_1 }, true);\n }\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }\n }\n });\n };\n MultiColumnComboBox.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n if ((this.allowFiltering && this.typedString && this.typedString !== '')) {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, true, false);\n }\n }\n else {\n filterQuery = (this.customFilterQuery != null) ?\n this.customFilterQuery.clone() : query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n MultiColumnComboBox.prototype.setHiddenValue = function () {\n if (isNOU(this.value)) {\n this.hiddenElement.innerHTML = '';\n return;\n }\n var existingOption = this.hiddenElement.querySelector('option');\n if (!isNOU(existingOption)) {\n existingOption.textContent = this.text;\n existingOption.setAttribute('value', this.value.toString());\n }\n else if (!isNOU(this.hiddenElement)) {\n var newOption = document.createElement('option');\n newOption.text = this.text;\n newOption.setAttribute('value', this.value.toString());\n newOption.setAttribute('selected', '');\n this.hiddenElement.appendChild(newOption);\n }\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.gridData,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n beforeDataBound: function () {\n if (_this.dataSource instanceof DataManager && _this.isShowSpinner) {\n _this.showHideSpinner(true);\n _this.isShowSpinner = false;\n }\n },\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: this.element.id + \"_\" + getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.appendTo(this.gridEle);\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource) && this.dataSource instanceof Array) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n var _this = this;\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n if (Array.isArray(args.rows) && this.isDataFiltered) {\n var rows = args.rows;\n var rowHeight_1 = 0;\n rows.forEach(function (row) {\n var rowElement = _this.gridObj.getRowElementByUID(row.uid);\n if (rowElement) {\n rowHeight_1 += rowElement.getBoundingClientRect().height;\n }\n });\n this.popupRowHeight = rowHeight_1 || parseFloat(this.popupHeight);\n this.updateGridHeight(true, true);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (this.isPopupOpen) {\n this.selectedGridRow(this.gridObj.getRows()[this.gridObj.selectedRowIndex], args, true);\n this.hidePopup(args);\n this.focusIn(args);\n }\n }\n if (this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n this.gridKeyActionHandler(args, true);\n }\n };\n /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var flattenData = function (data) {\n var result = [];\n if (data && typeof data === 'object') {\n if (Array.isArray(data)) {\n data.forEach(function (item) { return result.push.apply(result, flattenData(item)); });\n }\n else {\n Object.keys(data).forEach(function (key) { return result.push.apply(result, flattenData(data[\"\" + key])); });\n }\n }\n else if (data != null) {\n result.push(String(data));\n }\n return result;\n };\n var flattenedValues = flattenData(data);\n return (flattenedValues.indexOf(selectedValue) !== -1 && flattenedValues.indexOf(selectedText) !== -1);\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n _this.selectDataRow(row.data, row.index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ?\n this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (_a) {\n var field = _a.field, header = _a.header, width = _a.width, textAlign = _a.textAlign, format = _a.format, displayAsCheckBox = _a.displayAsCheckBox, template = _a.template, headerTemplate = _a.headerTemplate, customAttributes = _a.customAttributes;\n return ({\n field: field,\n headerText: header,\n width: width,\n textAlign: textAlign.toString() === '' && _this.enableRtl ? 'Right' : textAlign,\n format: format,\n displayAsCheckBox: displayAsCheckBox,\n template: template,\n headerTemplate: headerTemplate,\n customAttributes: customAttributes,\n type: displayAsCheckBox && !format ? 'boolean' : undefined\n });\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n var groupByField = this.fields.groupBy;\n var isGroupByValid = groupByField !== '' && !isNOU(groupByField);\n if (isGroupByValid) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [groupByField]\n };\n if (this.groupTemplate && isGroupByValid) {\n this.gridObj.groupSettings.captionTemplate = this.groupTemplate;\n }\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var _this = this;\n if (this.isLocaleChanged) {\n this.isLocaleChanged = false;\n this.unWireEvents();\n this.wireEvents();\n }\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n else if (this.isCustomFilter && !hasNoDataClass && dataCount > 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n if (this.dataSource instanceof DataManager) {\n setTimeout(function () {\n _this.showHideSpinner(false);\n });\n }\n };\n MultiColumnComboBox.prototype.showHideSpinner = function (isShow) {\n if (isShow) {\n showSpinner(this.dropdownElement);\n }\n else {\n hideSpinner(this.dropdownElement);\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'tabindex': '-1',\n 'class': HIDDENELEMENT\n }\n });\n prepend([this.hiddenElement], this.inputWrapper);\n var name = this.inputEle.getAttribute('name') ? this.inputEle.getAttribute('name') : this.inputEle.getAttribute('id');\n this.hiddenElement.setAttribute('name', name);\n this.inputEle.removeAttribute('name');\n if (!this.hiddenElement.hasAttribute('aria-label')) {\n this.hiddenElement.setAttribute('aria-label', this.getModuleName());\n }\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n this.dropdownElement = this.inputWrapper.querySelector('.e-input-group-icon.e-multicolumn-list-icon.e-icons');\n createSpinner({\n target: this.dropdownElement\n });\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = inputWidth.match(/px|%|em/) ? inputWidth : formatUnit(inputWidth);\n }\n };\n MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var _this = this;\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style': {\n var styles = htmlAttributes[htmlAttr];\n this.inputWrapper.style.cssText = '';\n if (styles) {\n styles.split(';').forEach(function (styleProperty) {\n var _a = styleProperty.split(':').map(function (part) { return part.trim(); }), property = _a[0], value = _a[1];\n if (property && value) {\n _this.inputWrapper.style.setProperty(property, value);\n }\n });\n }\n break;\n }\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.setAriaDisabled('false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.updateFieldValue = function (fieldValue, dataObj) {\n var fieldVal = getValue(fieldValue, dataObj).toString();\n return fieldVal;\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n var filteredData = dataLists.filter(function (item) {\n var fieldVal = item ? (_this.updateFieldValue(isRerender ? (isValue ? _this.fields.value :\n _this.fields.text) : !isNOU(_this.value) ? _this.fields.value : _this.fields.text, item)) : null;\n return fieldVal === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n var fieldVal = _this.updateFieldValue(isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text, data);\n return fieldVal === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n item = dataLists[this.index];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var fieldValue = item ? this.updateFieldValue(this.fields.value, item) : null;\n var ChangeEventArgs = {\n value: item ? fieldValue : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n var fieldText = this.updateFieldValue(this.fields.text, item);\n var fieldValue = this.updateFieldValue(this.fields.value, item);\n Input.setValue(fieldText, this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: fieldValue,\n currentText: fieldText,\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n this.popupRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (this.popupRowHeight < this.prevGridHeight ? (this.popupRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.includes('%')) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var dataText = selectedRecords ? this.updateFieldValue(this.fields.text, selectedRecords) : '';\n var dataValue = selectedRecords ? this.updateFieldValue(this.fields.value, selectedRecords) : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: selectedRecords ? dataText : '', value: selectedRecords ? dataValue : '' },\n event: e,\n cancel: false,\n value: selectedRecords ? dataValue : '',\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecords ? dataValue : '', selectedRecords ? dataText : '', _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecords ? dataText : '', _this.inputEle, _this.floatLabelType, _this.showClearButton);\n _this.setHiddenValue();\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n if (_this.gridObj) {\n _this.announcePosition(_this.gridObj.selectedRowIndex, _this.gridObj.getRows().length);\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text || this.text;\n this.value = value || this.value;\n this.index = this.selectedRowIndex = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n this.setHiddenValue();\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n this.typedString = e.target.value.toLowerCase();\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.typedString,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.customFilterQuery = query ? query.clone() : query;\n _this.isMainDataUpdated = false;\n if (query) {\n _this.setGridData(dataSource, query);\n }\n else {\n var filtered = _this.filterDatas(dataSource, _this.typedString).data;\n _this.setGridData(_this.typedString !== '' ? filtered : dataSource, query);\n }\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !_this.isCustomFilter) {\n _this.setGridData(_this.dataSource, _this.query ? _this.query.clone() : null);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData;\n return __generator(this, function (_c) {\n if (this.dataSource instanceof DataManager) {\n (_a = this.filterDatas(this.mainData, inputValue), data = _a.data, exactData = _a.exactData);\n }\n else if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return inputValue && fieldText.toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return fieldText === inputValue;\n });\n return { data: data, exactData: exactData };\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data, exactData) {\n if (data.length <= 0) {\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n return;\n }\n this.matchedContent = data[0];\n this.exactMatchedContent = exactData[0];\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function () {\n if (this.gridData && this.gridData.length > 0) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = this.gridData;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-multicolumn-list.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n var isClearVal = this.inputEle.value === '' ? true : false;\n this.updateValuesOnInput(e, null, isClearVal);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val && e.code !== 'Enter') {\n this.inputEle.value = null;\n this.setProperties({ value: null, index: null, text: null }, true);\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var fieldText = this.updateFieldValue(this.fields.text, this.matchedContent);\n var fieldValue = this.updateFieldValue(this.fields.value, this.matchedContent);\n this.inputEle.value = fieldText;\n this.value = fieldValue;\n var selectIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.index = selectIndex;\n this.text = fieldText;\n this.gridObj.selectRow(selectIndex);\n this.selectedGridRow(this.gridObj.getRowByIndex(selectIndex), e);\n this.previousItemElement = this.gridObj.getSelectedRows()[0];\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e, false, true);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[parseInt(index.toString(), 10)], e, true);\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.isMainDataUpdated = false;\n this.isShowSpinner = true;\n this.setGridData(newDataSource);\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n if (this.inputWrapper) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_options', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n _this.gridObj.selectRow(_this.selectedRowIndex);\n }\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle.firstElementChild);\n _this.liveRegion.textContent = '';\n setTimeout(function () {\n if (_this.gridObj) {\n _this.announcePosition(_this.gridObj.selectedRowIndex, _this.gridObj.getRows().length);\n }\n }, 300);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n var target = e ? e.target : null;\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n _this.customFilterQuery = null;\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.allowFiltering ? _this.mainData : _this.gridData;\n var noRecordEle = _this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n _this.popupDiv.removeChild(noRecordEle);\n removeClass([_this.popupDiv], [NODATA]);\n }\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n return dataLists.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n if (this.liveRegion) {\n detach(this.liveRegion);\n this.liveRegion = null;\n }\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n this.hiddenElement = null;\n this.dropdownElement = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n this.isMainDataUpdated = false;\n this.setGridData(this.dataSource);\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\n if (!(isNOU(newProp.gridSettings.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.gridSettings.allowTextWrap;\n }\n if (!(isNOU(newProp.gridSettings.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.gridSettings.textWrapMode;\n }\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n case 'locale':\n this.isLocaleChanged = true;\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","verb","n","v","op","f","TypeError","_","y","t","call","label","ops","pop","trys","push","g","sent","throw","return","Symbol","iterator","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","gridInject","isShowSpinner","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","createLiveRegion","liveRegion","createElement","attrs","aria-live","aria-atomic","role","styles","document","appendChild","textContent","announcePosition","index","total","isPopupOpen","message","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","className","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","trigger","cancel","args","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","listItems_1","executeLocal","isCustomFilter","filterQuery","allowFiltering","clone","Query","filterType","typedString","fields","where","customFilterQuery","setHiddenValue","hiddenElement","innerHTML","existingOption","querySelector","newOption","setAttribute","toString","gridColumns","getGridColumns","sortOrder","toLowerCase","gridObj","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","beforeDataBound","dataBound","onDataBound","actionFailure","onActionFailure","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","isArray","rows","isDataFiltered","rowHeight_1","forEach","row","rowElement","getRowElementByUID","uid","getBoundingClientRect","popupRowHeight","parseFloat","updateGridHeight","popupObj","refreshPosition","scrollTop","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","flattenData","item","keys","String","flattenedValues","indexOf","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","every","map","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","isLocaleChanged","unWireEvents","dataCount","popupChild","hasNoDataClass","contains","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","rowElements","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","attributes","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","aria-hidden","class","prepend","name","removeAttribute","hasAttribute","setElementWidth","createSpinner","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","cssText","split","styleProperty","part","trim","property","setProperty","defaultAttr","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","updateValues","dataList","updateCurrentValues","value_1","filteredData","dataLists","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","setValue","MULTICOLUMNLIST","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","eventArgs_1","preventDefaultAction","updateData","filtered","filterDatas","updateInputValue","inputValue","_b","exactData","_c","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","remove","destroy","preventDefault","focusedEle","closest","focusOut","isClearVal","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","code","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","action","updateSelectedItem","isGroup","keyActionMap","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","animModel","duration","popup","animation","aria-owns","aria-controls","contentEle","activeRow","firstRow","show","Animation","firstElementChild","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component"],"mappings":"kFAAA,IAAIA,GAAwC,WACxC,GAAIC,GAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBG,OAAOC,iBAChBC,uBAA2BC,QAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAIK,KAAKL,GAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,GAE5B,OAAO,UAAUD,EAAGC,GAEhB,QAASO,KAAOC,KAAKC,YAAcV,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEW,UAAkB,OAANV,EAAaC,OAAOU,OAAOX,IAAMO,EAAGG,UAAYV,EAAEU,UAAW,GAAIH,QAGnFK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HjB,GAAvHkB,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOf,OAAOoB,yBAAyBP,EAAQC,GAAOC,CACrH,IAAuB,gBAAZM,UAAoD,kBAArBA,SAAQC,SAAyBH,EAAIE,QAAQC,SAASV,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAIQ,GAAIX,EAAWM,OAAS,EAAGK,GAAK,EAAGA,KAASzB,EAAIc,EAAWW,MAAIJ,GAAKH,EAAI,EAAIlB,EAAEqB,GAAKH,EAAI,EAAIlB,EAAEe,EAAQC,EAAKK,GAAKrB,EAAEe,EAAQC,KAASK,EAChJ,OAAOH,GAAI,GAAKG,GAAKnB,OAAOwB,eAAeX,EAAQC,EAAKK,GAAIA,GAE5DM,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,MAAO,KAAKD,IAAMA,EAAIE,UAAU,SAAUC,EAASC,GAC/C,QAASC,GAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,QAASC,GAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,QAASF,GAAKI,GAAUA,EAAOC,KAAOT,EAAQQ,EAAOL,OAAS,GAAIN,GAAE,SAAUG,GAAWA,EAAQQ,EAAOL,SAAWO,KAAKR,EAAWK,GACnIH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,QAAmBS,WAGlEO,EAA4C,SAAUjB,EAASkB,GAG/D,QAASC,GAAKC,GAAK,MAAO,UAAUC,GAAK,MAAOZ,IAAMW,EAAGC,KACzD,QAASZ,GAAKa,GACV,GAAIC,EAAG,KAAM,IAAIC,WAAU,kCAC3B,MAAOC,GAAG,IACN,GAAIF,EAAI,EAAGG,IAAMC,EAAY,EAARL,EAAG,GAASI,EAAU,OAAIJ,EAAG,GAAKI,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEC,KAAKF,GAAI,GAAKA,EAAEhB,SAAWiB,EAAIA,EAAEC,KAAKF,EAAGJ,EAAG,KAAKR,KAAM,MAAOa,EAE3J,QADID,EAAI,EAAGC,IAAGL,GAAc,EAARA,EAAG,GAAQK,EAAEnB,QACzBc,EAAG,IACP,IAAK,GAAG,IAAK,GAAGK,EAAIL,CAAI,MACxB,KAAK,GAAc,MAAXG,GAAEI,SAAkBrB,MAAOc,EAAG,GAAIR,MAAM,EAChD,KAAK,GAAGW,EAAEI,QAASH,EAAIJ,EAAG,GAAIA,GAAM,EAAI,SACxC,KAAK,GAAGA,EAAKG,EAAEK,IAAIC,MAAON,EAAEO,KAAKD,KAAO,SACxC,SACI,GAAMJ,EAAIF,EAAEO,OAAML,EAAIA,EAAEnC,OAAS,GAAKmC,EAAEA,EAAEnC,OAAS,MAAkB,IAAV8B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEG,EAAI,CAAG,UACjG,GAAc,IAAVH,EAAG,MAAcK,GAAML,EAAG,GAAKK,EAAE,IAAML,EAAG,GAAKK,EAAE,IAAM,CAAEF,EAAEI,MAAQP,EAAG,EAAI,OAC9E,GAAc,IAAVA,EAAG,IAAYG,EAAEI,MAAQF,EAAE,GAAI,CAAEF,EAAEI,MAAQF,EAAE,GAAIA,EAAIL,CAAI,OAC7D,GAAIK,GAAKF,EAAEI,MAAQF,EAAE,GAAI,CAAEF,EAAEI,MAAQF,EAAE,GAAIF,EAAEK,IAAIG,KAAKX,EAAK,OACvDK,EAAE,IAAIF,EAAEK,IAAIC,MAChBN,EAAEO,KAAKD,KAAO,UAEtBT,EAAKJ,EAAKU,KAAK5B,EAASyB,GAC1B,MAAOd,GAAKW,GAAM,EAAGX,GAAIe,EAAI,UAAeH,EAAII,EAAI,EACtD,GAAY,EAARL,EAAG,GAAQ,KAAMA,GAAG,EAAI,QAASd,MAAOc,EAAG,GAAKA,EAAG,OAAK,GAAQR,MAAM,GAvB9E,GAAsGS,GAAGG,EAAGC,EAAGO,EAA3GT,GAAMI,MAAO,EAAGM,KAAM,WAAa,GAAW,EAAPR,EAAE,GAAQ,KAAMA,GAAE,EAAI,OAAOA,GAAE,IAAOK,QAAUF,OAC3F,OAAOI,IAAMxB,KAAMS,EAAK,GAAIiB,MAASjB,EAAK,GAAIkB,OAAUlB,EAAK,IAAwB,kBAAXmB,UAA0BJ,EAAEI,OAAOC,UAAY,WAAa,MAAO1D,QAAUqD,GAmCvJM,EAAS,WAMTC,EAAiC,WACjC,QAASA,MAWT,MAHAA,GAAgB1D,UAAU2D,cAAgB,WACtCC,OAAKC,OAAOC,gBAAeC,QAAWC,OAAMC,OAAMC,WAE/CR,MAOX,SAAWS,GAIPA,EAAuB,WAAI,aAI3BA,EAAqB,SAAI,WAIzBA,EAAqB,SAAI,YAC1BA,eAAeA,kBAKlB,SAAWC,GAIPA,EAAgB,KAAI,OAIpBA,EAAqB,UAAI,YAIzBA,EAAsB,WAAI,cAC3BA,cAAcA,iBAKjB,SAAWC,GAIPA,EAAoB,UAAI,YAIxBA,EAA0B,gBAAI,mBAC/BA,aAAaA,gBAKhB,SAAWC,GAIPA,EAAe,KAAI,OAInBA,EAAkB,QAAI,UAItBA,EAAiB,OAAI,UACtBA,aAAaA,mBAIZC,GAA+B,SAAUC,GAEzC,QAASD,KACL,MAAkB,QAAXC,GAAmBA,EAAOvC,MAAMnC,KAAMU,YAAcV,KAW/D,MAbAX,GAAUoF,EAAeC,GAIzBtE,GACIuE,cACDF,EAAcvE,UAAW,WAAQ,IACpCE,GACIuE,cACDF,EAAcvE,UAAW,YAAS,IACrCE,GACIuE,cACDF,EAAcvE,UAAW,cAAW,IAChCuE,GACTG,iBAKEC,EAAwB,SAAUH,GAElC,QAASG,KACL,MAAkB,QAAXH,GAAmBA,EAAOvC,MAAMnC,KAAMU,YAAcV,KA6B/D,MA/BAX,GAAUwF,EAAQH,GAIlBtE,GACIuE,WAAS,KACVE,EAAO3E,UAAW,YAAS,IAC9BE,GACIuE,WAAS,KACVE,EAAO3E,UAAW,aAAU,IAC/BE,GACIuE,WAAS,KACVE,EAAO3E,UAAW,YAAS,IAC9BE,GACIuE,WAAS,KACVE,EAAO3E,UAAW,gBAAa,IAClCE,GACIuE,WAAS,OACVE,EAAO3E,UAAW,aAAU,IAC/BE,GACIuE,YAAS,IACVE,EAAO3E,UAAW,wBAAqB,IAC1CE,GACIuE,WAAS,OACVE,EAAO3E,UAAW,eAAY,IACjCE,GACIuE,WAAS,OACVE,EAAO3E,UAAW,qBAAkB,IACvCE,GACIuE,WAAS,OACVE,EAAO3E,UAAW,uBAAoB,IAClC2E,GACTD,iBAKEE,EAA8B,SAAUJ,GAExC,QAASI,KACL,MAAkB,QAAXJ,GAAmBA,EAAOvC,MAAMnC,KAAMU,YAAcV,KA6B/D,MA/BAX,GAAUyF,EAAcJ,GAIxBtE,GACIuE,YAAS,IACVG,EAAa5E,UAAW,mBAAgB,IAC3CE,GACIuE,WAAS,OACVG,EAAa5E,UAAW,gBAAa,IACxCE,GACIuE,WAAS,YACVG,EAAa5E,UAAW,gBAAa,IACxCE,GACIuE,YAAS,IACVG,EAAa5E,UAAW,oBAAiB,IAC5CE,GACIuE,WAASH,WAASO,OACnBD,EAAa5E,UAAW,mBAAgB,IAC3CE,GACIuE,YAAS,IACVG,EAAa5E,UAAW,oBAAiB,IAC5CE,GACI4E,WACDF,EAAa5E,UAAW,eAAY,IACvCE,GACI4E,WACDF,EAAa5E,UAAW,kBAAe,IAC1CE,GACI4E,WACDF,EAAa5E,UAAW,iBAAc,IAClC4E,GACTF,iBAcEK,EAAqC,SAAUP,GAS/C,QAASO,GAAoBC,EAASC,GAClC,GAAIC,GAAQV,EAAO3B,KAAK/C,KAAMkF,EAASC,IAAYnF,IAInD,OAHAoF,GAAMC,WAAa,GAAIzB,GACvBwB,EAAME,eAAgB,EACtBF,EAAMC,WAAWxB,gBACVuB,EAuxDX,MApyDA/F,GAAU4F,EAAqBP,GAqB/BO,EAAoB/E,UAAUqF,UAAY,WACjCvF,KAAKmF,QAAQK,KACdxF,KAAKmF,QAAQK,GAAKC,cAAY,KAAOzF,KAAK0F,kBAE9C1F,KAAK2F,YACDC,OAAQ,SACRC,MAAO,cACPC,QAAS,gBACTC,IAAK,MACLC,SAAU,YACVC,IAAK,MACLC,MAAO,QACPC,KAAM,OACNC,SAAU,YACVC,OAAQ,WAEZrG,KAAKsG,cAAgBtG,KAAKuG,eAAiBvG,KAAKwG,oBAAsB,KACtExG,KAAKyG,cACLzG,KAAK0G,oBAETzB,EAAoB/E,UAAUwG,iBAAmB,WAC7C1G,KAAK2G,WAAa3G,KAAK4G,cAAc,OACjCC,OACIrB,GAAIxF,KAAKmF,QAAQK,GAAK,QACtBsB,YAAa,SACbC,cAAe,OACfC,KAAM,UAEVC,OAAQ,6GAEZC,SAAS7E,KAAK8E,YAAYnH,KAAK2G,YAC/B3G,KAAK2G,WAAWS,YAAc,IAElCnC,EAAoB/E,UAAUmH,iBAAmB,SAAUC,EAAOC,GAC9D,GAAKvH,KAAKwH,YAAV,CAGA,GAAIC,GAAU,SAAWH,EAAQ,GAAK,OAASC,CAC/CvH,MAAK2G,WAAWS,YAAcK,IAElCxC,EAAoB/E,UAAUwH,aAAe,WACzC,MAAO,2BAQXzC,EAAoB/E,UAAUwF,cAAgB,WAC1C,MAAO,uBAQXT,EAAoB/E,UAAUyH,eAAiB,WAC3C,MAAO3H,MAAK4H,cAAc,WAE9B3C,EAAoB/E,UAAUuG,YAAc,WACxC,GAAIzG,KAAK6H,kBAAmB,CACxB7H,KAAKmF,QAAQK,IAAM,UACnB,IAAIsC,GAAOC,OAAOC,aAAaC,QAAQjI,KAAK0F,gBAAkB1F,KAAKmF,QAAQK,GACrE0C,qBAAMJ,IAAmB,KAATA,GAClB9H,KAAKmI,cAAcC,KAAKC,MAAMP,IAAO,KAIjD7C,EAAoB/E,UAAUoI,OAAS,WACnCtI,KAAKuI,cACCL,oBAAMlI,KAAK2B,QAAWuG,oBAAMlI,KAAKwI,OAAUN,oBAAMlI,KAAKsH,QAAYY,oBAAMlI,KAAKyI,eAC5EzI,KAAKyI,qBAAsBC,kBAC9B1I,KAAK2I,sBAAuB,GAEX,MAAjB3I,KAAK4I,UACL5I,KAAK6I,YAAY7I,KAAKyI,YAE1BzI,KAAK8I,aACL9I,KAAK+I,SAAW/I,KAAK4G,cAAc,OAASoC,UA7StC,oBA8SNhJ,KAAK+I,SAAS5B,YAAYnH,KAAKiJ,SAC/BjJ,KAAKkJ,oBACLlJ,KAAKmJ,cACLnJ,KAAKoJ,cAETnE,EAAoB/E,UAAU2I,YAAc,SAAUJ,EAAYY,GAC9D,GAAIjE,GAAQpF,IACZA,MAAKsJ,QAAQ,eAAiBC,QAAQ,EAAOF,MAAOA,GAAS,SAAUG,GACnE,IAAKA,EAAKD,OACN,GAAId,YAAsBC,eAClBtD,EAAME,eACNF,EAAMqE,iBAAgB,GAE1BhB,EAAWiB,aAAatE,EAAMuE,SAASN,IAAQnH,KAAK,SAAUJ,GAC1DsD,EAAMwD,SAAW9G,EAAEE,OACnBoD,EAAMkE,QAAQ,iBAAkBxH,EAAG,SAAUA,GACzCsD,EAAMqE,iBAAgB,GACjBrE,EAAMwE,oBACPxE,EAAMyE,SAAWzE,EAAMwD,SACvBxD,EAAM0E,iBAAmB1E,EAAMwD,SAASjI,OACxCyE,EAAMwE,mBAAoB,GAE1BxE,EAAMuD,uBACNvD,EAAMuD,sBAAuB,EAC7BvD,EAAM2E,UAAU,KAAM,MAAM,IAE5B3E,EAAM2D,UACN3D,EAAM4E,2BAGfC,MAAM,SAAUnI,GACfsD,EAAMkE,QAAQ,gBAAiBxH,EAAG,YAGrC,CACD,GAAIoI,GAAc,GAAIxB,eAAYD,GAC9B0B,EAAe/E,EAAMuE,SAASN,GAAQe,aAAaF,EACvD9E,GAAMwD,SAAWuB,EACjB/E,EAAMkE,QAAQ,kBAAoBtH,OAAQmI,GAAe,SAAUrI,GAC1DsD,EAAMwE,oBACHxE,EAAMiF,iBAAmBnC,oBAAM9C,EAAMqD,aAA2C,IAA5BrD,EAAMqD,WAAW9H,SACrEyE,EAAM+C,eAAgBM,WAAY0B,IAAe,GAErD/E,EAAMyE,SAAWzE,EAAMwD,SACvBxD,EAAM0E,iBAAmB1E,EAAMwD,SAASjI,OACxCyE,EAAMwE,mBAAoB,GAE1BxE,EAAM2D,UACN3D,EAAM4E,6BAO9B/E,EAAoB/E,UAAUyJ,SAAW,SAAUN,GAC/C,GAAIiB,EACJ,KAAKtK,KAAKqK,gBAAkBrK,KAAKuK,eAAgB,CAC7CD,EAAcjB,EAAQA,EAAMmB,QAAUxK,KAAKqJ,MAAQrJ,KAAKqJ,MAAMmB,QAAU,GAAIC,QAC5E,IAAIC,GAAkC,KAArB1K,KAAK2K,YAAqB,WAAa3K,KAAK0K,UAC7D,IAAK1K,KAAKuK,gBAAkBvK,KAAK2K,aAAoC,KAArB3K,KAAK2K,YAAqB,CACtE,GAAIC,GAAU5K,KAAK4K,YAAe5K,KAAK4K,OAAOpC,KAAO,EACrD8B,GAAYO,MAAMD,EAAQF,EAAY1K,KAAK2K,aAAa,GAAM,QAIlEL,GAAyC,MAA1BtK,KAAK8K,kBAChB9K,KAAK8K,kBAAkBN,QAAUnB,EAAQA,EAAMmB,QAAUxK,KAAKqJ,MAAQrJ,KAAKqJ,MAAMmB,QAAU,GAAIC,QAEvG,OAAOH,IAEXrF,EAAoB/E,UAAU6K,eAAiB,WAC3C,GAAI7C,oBAAMlI,KAAK2B,OAEX,YADA3B,KAAKgL,cAAcC,UAAY,GAGnC,IAAIC,GAAiBlL,KAAKgL,cAAcG,cAAc,SACtD,IAAKjD,oBAAMgD,IAIN,IAAKhD,oBAAMlI,KAAKgL,eAAgB,CACjC,GAAII,GAAYlE,SAASN,cAAc,SACvCwE,GAAU5C,KAAOxI,KAAKwI,KACtB4C,EAAUC,aAAa,QAASrL,KAAK2B,MAAM2J,YAC3CF,EAAUC,aAAa,WAAY,IACnCrL,KAAKgL,cAAc7D,YAAYiE,QAR/BF,GAAe9D,YAAcpH,KAAKwI,KAClC0C,EAAeG,aAAa,QAASrL,KAAK2B,MAAM2J,aAUxDrG,EAAoB/E,UAAU4I,WAAa,WACvC,GAAI1D,GAAQpF,KACRuL,EAAcvL,KAAKwL,iBACnBC,EAAYzL,KAAKyL,UAAUH,WAAWI,aAC1C1L,MAAK2L,QAAU,GAAI7H,SACf2E,WAAYzI,KAAK4I,SACjBgD,QAASL,EACTM,aAAc7L,KAAK6L,aACnBC,oBAAoB,EACpBC,UAAW/L,KAAKgM,aAAaD,UAC7BE,UAAWjM,KAAKgM,aAAaC,UAC7BC,aAAclM,KAAKgM,aAAaE,aAChCC,qBAAsBnM,KAAKmM,qBAC3BC,UAAWpM,KAAKoM,UAChBC,cAAgBC,aAAa,GAC7BC,cAAevM,KAAKgM,aAAaO,cACjCC,kBAAoBC,SAAUzM,KAAKgM,aAAaU,cAChDC,OAAQ3M,KAAK4M,YACbC,cAAe7M,KAAKgM,aAAaa,cACjCC,kBAA8D,oBAA3C9M,KAAK+M,SAASzB,WAAWI,eAAuC1L,KAAK6L,aACxFmB,YAAahN,KAAKiN,aAClBC,gBAAiB,WACT9H,EAAMqD,qBAAsBC,gBAAetD,EAAME,gBACjDF,EAAMqE,iBAAgB,GACtBrE,EAAME,eAAgB,IAG9B6H,UAAW,WAAc/H,EAAMgI,eAC/BC,cAAe,SAAU7D,GAAQpE,EAAMkI,gBAAgB9D,IACvD+D,eAAgBvN,KAAKwN,qBAAqBC,KAAKzN,MAC/C0N,WAAY1N,KAAK2N,iBAAiBF,KAAKzN,MACvC4N,SAAU,SAAUpE,GACZpE,EAAM4G,aAAa4B,UACnBxI,EAAM4G,aAAa4B,SAAS7K,KAAKqC,EAAOoE,IAGhDqE,YAAa,SAAUrE,GACfpE,EAAM4G,aAAa6B,aACnBzI,EAAM4G,aAAa6B,YAAY9K,KAAKqC,EAAOoE,IAGnDsE,WAAY,SAAUtE,GACdpE,EAAM4G,aAAa8B,YACnB1I,EAAM4G,aAAa8B,WAAW/K,KAAKqC,EAAOoE,MAItDxJ,KAAKiJ,QAAUjJ,KAAK4G,cAAc,OAASpB,GAAIxF,KAAKmF,QAAQK,GAAK,IAAMC,cAAY,QAASuD,UA/a9E,uBAgbdhJ,KAAK+N,qBACDxC,EAAY5K,OAAS,IAErBX,KAAK2L,QAAQC,QAAQ,GAAGoC,cAAe,GAEzB,SAAdvC,IACAzL,KAAK2L,QAAQsC,cAAiBrC,UAAYsC,MAAOlO,KAAK4K,OAAOpC,KAAM2F,UAAyB,cAAd1C,EAC9DnH,YAAU8J,UAAY9J,YAAU+J,eAEpDrO,KAAK2L,QAAQ2C,SAAStO,KAAKiJ,SACrBf,oBAAMlI,KAAK2B,QAAWuG,oBAAMlI,KAAKwI,OAAUN,oBAAMlI,KAAKsH,QAAYY,oBAAMlI,KAAKyI,eAAezI,KAAKyI,qBAAsB7I,SACzHI,KAAK+J,UAAU,KAAM,MAAM,IAGnC9E,EAAoB/E,UAAUsN,qBAAuB,SAAUhE,GAC3D,GAAIpE,GAAQpF,IAIZ,IAHyB,YAArBwJ,EAAK+E,aACLvO,KAAKwO,mBAAmBhF,GAExB5J,MAAM6O,QAAQjF,EAAKkF,OAAS1O,KAAK2O,eAAgB,CACjD,GACIC,GAAc,CADPpF,GAAKkF,KAEXG,QAAQ,SAAUC,GACnB,GAAIC,GAAa3J,EAAMuG,QAAQqD,mBAAmBF,EAAIG,IAClDF,KACAH,GAAeG,EAAWG,wBAAwBvC,UAG1D3M,KAAKmP,eAAiBP,GAAeQ,WAAWpP,KAAK4M,aACrD5M,KAAKqP,kBAAiB,GAAM,GAEhCrP,KAAKsP,SAASC,kBACdvP,KAAK2L,QAAQxG,QAAQgG,cAAc,cAAcqE,UAAY,GAEjEvK,EAAoB/E,UAAUyN,iBAAmB,SAAUnE,GACtC,UAAbA,EAAKjJ,MAELiJ,EAAKD,QAAS,EACVvJ,KAAKwH,cACLxH,KAAKyP,gBAAgBzP,KAAK2L,QAAQ+D,UAAU1P,KAAK2L,QAAQgE,kBAAmBnG,GAAM,GAClFxJ,KAAK4P,UAAUpG,GACfxJ,KAAK6P,QAAQrG,KAGjBxJ,KAAK4K,OAAOkF,UAEZtG,EAAKD,QAAS,EACdvJ,KAAK+P,qBAAqBvG,GAAM,KAIxCvE,EAAoB/E,UAAU8P,cAAgB,SAAUlI,EAAMmI,EAAeC,GACzE,GAAIC,GAAc,SAAUrI,GACxB,GAAI9F,KAYJ,OAXI8F,IAAwB,gBAATA,GACXlI,MAAM6O,QAAQ3G,GACdA,EAAK+G,QAAQ,SAAUuB,GAAQ,MAAOpO,GAAOoB,KAAKjB,MAAMH,EAAQmO,EAAYC,MAG5E3Q,OAAO4Q,KAAKvI,GAAM+G,QAAQ,SAAUtO,GAAO,MAAOyB,GAAOoB,KAAKjB,MAAMH,EAAQmO,EAAYrI,EAAK,GAAKvH,OAGzF,MAARuH,GACL9F,EAAOoB,KAAKkN,OAAOxI,IAEhB9F,GAEPuO,EAAkBJ,EAAYrI,EAClC,QAAoD,IAA5CyI,EAAgBC,QAAQP,KAAoE,IAA3CM,EAAgBC,QAAQN,IAErFjL,EAAoB/E,UAAUsO,mBAAqB,SAAUhF,GACzD,GAAIpE,GAAQpF,IACRwJ,IACeA,EAAKkF,KACXG,QAAQ,SAAUC,GACvB1J,EAAMqL,cAAc3B,EAAIhH,KAAMgH,EAAIxH,UAI9CrC,EAAoB/E,UAAUuQ,cAAgB,SAAU3I,EAAMR,GAG1D,GAFgBtH,KAAKgQ,cAAclI,EAAM9H,KAAK2B,MAC1C3B,KAAK2B,MAAM2J,WAAa,GAAItL,KAAKwI,KAAOxI,KAAKwI,KAAK8C,WAAa,IACpD,CACXtL,KAAK2L,QAAQ+E,UAAUpJ,EACvB,IAAIqJ,GAAe3Q,KAAK4Q,mBAIxB,OAHA5Q,MAAK4Q,qBAAsB,EAC3B5Q,KAAKsH,MAAQA,OACbtH,KAAK4Q,oBAAsBD,KAInC1L,EAAoB/E,UAAU2Q,UAAY,SAAUC,EAAKC,GACrD,MAAOD,GAAID,UAAU,SAAUT,GAE3B,MAAO3Q,QAAO4Q,KAAKU,GAAKC,MAAM,SAAUzQ,GAAO,MAAO6P,GAAK7P,KAASwQ,EAAIxQ,QAGhF0E,EAAoB/E,UAAUsL,eAAiB,WAC3C,GAAIpG,GAAQpF,IACZ,OAAOA,MAAK4L,QAAQqF,IAAI,SAAUC,GAC9B,GAAIhD,GAAQgD,EAAGhD,MAAOiD,EAASD,EAAGC,OAAQC,EAAQF,EAAGE,MAAOC,EAAYH,EAAGG,UAAWC,EAASJ,EAAGI,OAAQC,EAAoBL,EAAGK,kBAAmBC,EAAWN,EAAGM,SAAUC,EAAiBP,EAAGO,eAAgBC,EAAmBR,EAAGQ,gBACtO,QACIxD,MAAOA,EACPyD,WAAYR,EACZC,MAAOA,EACPC,UAAoC,KAAzBA,EAAU/F,YAAqBlG,EAAMgH,UAAY,QAAUiF,EACtEC,OAAQA,EACRC,kBAAmBA,EACnBC,SAAUA,EACVC,eAAgBA,EAChBC,iBAAkBA,EAClBE,KAAML,IAAsBD,EAAS,cAAYO,OAI7D5M,EAAoB/E,UAAU6N,mBAAqB,WAC/C,GAAI+D,GAAe9R,KAAK4K,OAAOkF,QAC3BiC,EAAkC,KAAjBD,IAAwB5J,oBAAM4J,EACnD,IAAIC,EAAgB,CAC+B,oBAA3C/R,KAAK+M,SAASzB,WAAWI,eACzB1L,KAAKiJ,QAAQ+I,UAAUC,IAAI,sBAE/B,IAAItB,GAAe3Q,KAAK4Q,mBACxB5Q,MAAK4Q,qBAAsB,EAC3B5Q,KAAK2L,QAAQuG,eAAgB,EAC7BlS,KAAK2L,QAAQwG,eACTC,cAAc,EACdxG,SAAUkG,IAEV9R,KAAKqS,eAAiBN,IACtB/R,KAAK2L,QAAQwG,cAAcG,gBAAkBtS,KAAKqS,eAElDrS,KAAKuS,QACLvS,KAAK2L,QAAQ4G,MAAQvS,KAAKuS,OAE9BvS,KAAK4Q,oBAAsBD,IAGnC1L,EAAoB/E,UAAUkN,YAAc,WACxC,GAAIhI,GAAQpF,IACRA,MAAKwS,kBACLxS,KAAKwS,iBAAkB,EACvBxS,KAAKyS,eACLzS,KAAKoJ,aAET,IAAIsJ,GAAY1S,KAAKyI,WAAW9H,OAC5BgS,EAAa3S,KAAK+I,SAASoC,cAAc,uBACzCyH,EAAiB5S,KAAK+I,SAASiJ,UAAUa,SAASlP,EACtD,IAAI+O,GAAa,GAAKC,EAClB3S,KAAK8S,aACL9S,KAAK+I,SAASgK,YAAY/S,KAAKiJ,SAC/B+J,YAAUhT,KAAK+I,WAAYpF,QAE1B,IAAIiP,GAAkBF,GAAa,EAAG,CACvCO,eAAajT,KAAK+I,WAAYpF,GAC9B,IAAIuP,GAAclT,KAAK+I,SAASoC,cAAc,gBAC1C+H,IACAlT,KAAK+I,SAASgK,YAAYG,OAGzBlT,MAAKqK,iBAAmBuI,GAAkBF,EAAY,GAC3D1S,KAAK+I,SAAS5B,YAAYnH,KAAKiJ,QAEnC,IAAIjJ,KAAKmT,gBAAiB,CACtB,GAAIC,GAAiBpT,KAAK+I,SAASoC,cAAc,qBAC7Cc,EAAa2G,EAEb5S,KAAK+I,SAASmG,wBAAwBvC,OAFRyG,EAC9BA,EAAelE,wBAAwBvC,OAAS,CAEpD3M,MAAKmP,eAAiBlD,EACtBjM,KAAKsP,SAAS+D,OACdrT,KAAKsT,SAASC,MAAMC,WAAa,QACjCxT,KAAKmT,iBAAkB,EAE3B,GAAIM,GAAczT,KAAK2L,QAAQxG,QAAQuO,iBAAiB,SACpD1T,MAAK2O,gBAAkB8E,EAAY9S,OAAS,GAA6B,KAAxBX,KAAK2T,SAAShS,OAC7C8R,EAAY,GAClBzB,UAAUC,IAAI,eAE1BjS,KAAKyI,qBAAsBC,gBAC3BkL,WAAW,WACPxO,EAAMqE,iBAAgB,MAIlCxE,EAAoB/E,UAAUuJ,gBAAkB,SAAUoK,GAClDA,EACAC,cAAY9T,KAAK+T,iBAGjBC,cAAYhU,KAAK+T,kBAGzB9O,EAAoB/E,UAAUoN,gBAAkB,SAAU9D,GACtDxJ,KAAKsJ,QAAQ,gBAAiBE,GAC9BxJ,KAAK8S,YAAW,GAChBE,YAAUhT,KAAK+I,WAAYpF,KAE/BsB,EAAoB/E,UAAUqI,YAAc,WACxC,GAAI0L,IAAqB,gBAAiB,gBAAiB,gBAAiB,eACxE,iBAAkB,aAAc,WASP,WAAzBjU,KAAKmF,QAAQ+O,SACblU,KAAK2T,SAAW3T,KAAKmF,QACjB+C,oBAAMlI,KAAK2T,SAASQ,aAAa,UACjCnU,KAAK2T,SAAStI,aAAa,OAAQ,YAEnCnD,oBAAMlI,KAAK2T,SAASQ,aAAa,UACjCnU,KAAK2T,SAAStI,aAAa,OAAQ,QAdvB,SAAUlG,EAASiP,GACnC,IAAK,GAAI7T,KAAO6T,GAERA,EAAWtU,eAAeS,KAA4C,IAApC0T,EAAkBzD,QAAQjQ,IAAe2H,oBAAM/C,EAAQgP,aAAa5T,KACtG4E,EAAQkG,aAAa9K,EAAK6T,EAAW7T,KAY/BP,KAAK2T,UACfU,gBAAiB,QACjBC,gBAAiBtU,KAAKuU,SAASjJ,WAC/BkJ,gBAAiBxU,KAAKyU,SAASnJ,WAC/BoJ,aAAc,MACdC,eAAgB,MAChBC,WAAY,QACZC,SAAU,QAId7U,KAAK2T,SAAW3T,KAAK4G,cAAc,SAAWC,OAASG,KAAM,UAAW4K,KAAM,UAC9E5R,KAAKmF,QAAQ2P,cAAcC,aAAa/U,KAAK2T,SAAU3T,KAAKmF,UAEhEnF,KAAKgV,SAAWC,QAAMC,aAClB/P,QAASnF,KAAK2T,SACdwB,SAhqBO,sDAiqBPC,eAAgBpV,KAAKoV,eACrBC,YACIC,SAAUtV,KAAKyU,SACfF,SAAUvU,KAAKuU,SACfgB,YAAavV,KAAKuV,YAClBnJ,UAAWpM,KAAKoM,UAChBoJ,gBAAiBxV,KAAKwV,gBACtBC,SAAUzV,KAAKyV,WAEpBzV,KAAK4G,eACR5G,KAAK0V,aAAe1V,KAAKgV,SAASW,UAClC3V,KAAK0V,aAAa1D,UAAUC,IAtqBd,sBAuqBdjS,KAAK0V,aAAarK,aAAa,aAAc,SAC7CrL,KAAKgL,cAAgBhL,KAAK4G,cAAc,UACpCC,OACI+O,cAAe,OACff,SAAY,KACZgB,MA3qBI,+BA8qBZC,WAAS9V,KAAKgL,eAAgBhL,KAAK0V,aACnC,IAAIK,GAAO/V,KAAK2T,SAASQ,aAAa,QAAUnU,KAAK2T,SAASQ,aAAa,QAAUnU,KAAK2T,SAASQ,aAAa,KAChHnU,MAAKgL,cAAcK,aAAa,OAAQ0K,GACxC/V,KAAK2T,SAASqC,gBAAgB,QACzBhW,KAAKgL,cAAciL,aAAa,eACjCjW,KAAKgL,cAAcK,aAAa,aAAcrL,KAAK0F,iBAEnD1F,KAAKmF,QAAQ+O,UAAYlU,KAAK0H,gBAC9B1H,KAAKmF,QAAQgC,YAAYnH,KAAK0V,cAElC1V,KAAKkW,gBAAgBlW,KAAKoR,OAC1BpR,KAAK+T,gBAAkB/T,KAAK0V,aAAavK,cAAc,uDACvDgL,iBACI7V,OAAQN,KAAK+T,mBAGrB9O,EAAoB/E,UAAUgW,gBAAkB,SAAUE,GACtD,IAAIlO,oBAAMkO,GAAV,CAGA,GAAIC,GAAYrW,KAAK0V,YACK,iBAAfU,GACPC,EAAU9C,MAAMnC,MAAQkF,aAAWF,GAER,gBAAfA,KACZC,EAAU9C,MAAMnC,MAAQgF,EAAWG,MAAM,WAAaH,EAAaE,aAAWF,MAGtFnR,EAAoB/E,UAAUgJ,kBAAoB,WAC9C,GAAI9D,GAAQpF,KACRwW,EAAiBxW,KAAKwW,eACtB7C,EAAW3T,KAAK2T,QACpB,IAAIlU,OAAO4Q,KAAKmG,GAAgB7V,OAC5B,IAAK,GAAI8V,GAAK,EAAGvF,EAAKzR,OAAO4Q,KAAKmG,GAAiBC,EAAKvF,EAAGvQ,OAAQ8V,IAAM,CACrE,GAAIC,GAAWxF,EAAGuF,EAClB,QAAQC,GACJ,IAAK,QACD1W,KAAK0V,aAAa1D,UAAUC,IAAIuE,EAAeE,GAC/C,MACJ,KAAK,WACD1W,KAAKmI,eAAgBmN,SAAS,IAAS,GACvCtV,KAAK2W,WACL,MACJ,KAAK,WACD3W,KAAKmI,eAAgBoM,UAAU,IAAQ,GACvCvU,KAAK4W,UACL,MACJ,KAAK,QACD,GAAI3P,GAASuP,EAAeE,EAC5B1W,MAAK0V,aAAanC,MAAMsD,QAAU,GAC9B5P,GACAA,EAAO6P,MAAM,KAAKjI,QAAQ,SAAUkI,GAChC,GAAI7F,GAAK6F,EAAcD,MAAM,KAAK7F,IAAI,SAAU+F,GAAQ,MAAOA,GAAKC,SAAYC,EAAWhG,EAAG,GAAIvP,EAAQuP,EAAG,EACzGgG,IAAYvV,GACZyD,EAAMsQ,aAAanC,MAAM4D,YAAYD,EAAUvV,IAI3D,MAEJ,SACI,GAAIyV,IAAe,QAAS,KAAM,cAAe,OAAQ,eAAgB,iBAAkB,aAAc,YAAa,cAClG,OAAQ,YACX5G,QAAQkG,IAAa,GAAkC,IAA7BA,EAASlG,QAAQ,QACxDxQ,KAAKgL,cAAcK,aAAaqL,EAAU1W,KAAKwW,eAAe,GAAKE,IAE9DU,EAAY5G,QAAQkG,IAAa,GACrB,gBAAbA,EACAzB,QAAMoC,eAAeb,EAAeE,GAAW/C,GAOnDA,EAAStI,aAAaqL,EAAUF,EAAeE,OASvEzR,EAAoB/E,UAAUyW,UAAY,WACtC1B,QAAMqC,YAAYtX,KAAKyU,SAAUzU,KAAK2T,UACjC3T,KAAKyU,UAKFzU,KAAKwH,aACLxH,KAAK4P,YAEToD,YAAUhT,KAAK0V,cA/wBZ,cAgxBC1V,KAAK0V,cAAgB1V,KAAK0V,aAAa1D,UAAUa,SA/wBhD,kBAgxBDI,eAAajT,KAAK0V,eAhxBjB,kBAkxBL1V,KAAKuX,gBAAgB,UAXrBtE,eAAajT,KAAK0V,cAxwBf,cAywBH1V,KAAKuX,gBAAgB,WAa7BtS,EAAoB/E,UAAUqX,gBAAkB,SAAU5V,GACtD3B,KAAK2T,SAAStI,aAAa,gBAAiB1J,GAC5C3B,KAAK0V,aAAarK,aAAa,gBAAiB1J,IAEpDsD,EAAoB/E,UAAUsX,iBAAmB,SAAUC,EAAYC,GAEnE,MADeC,YAASF,EAAYC,GAASpM,YAGjDrG,EAAoB/E,UAAU6J,UAAY,SAAU6N,EAAYC,EAASC,GACrE,GAGI1H,GACA2H,EACAC,EACAC,EANA7S,EAAQpF,KACRkY,EAAelY,KAAK2L,QAAQwM,qBAAqB,GACjDC,EAAcpY,KAAK2L,QAAQ0M,kBAAkB,GAK7C1H,EAAe3Q,KAAK4Q,mBACxB5Q,MAAK4Q,qBAAsB,EAC3B5Q,KAAK2B,MAAQ3B,KAAK2B,MAAQ3B,KAAK2B,MAAM2J,WAAatL,KAAK2B,MACvD3B,KAAK4Q,oBAAsBD,CAC3B,IAAI2H,GAAe,SAAUC,GACzB,GAAIvW,GAASoD,EAAMoT,oBAAoBpI,EAAMmI,EAC7CR,GAAe/V,EAAO+V,aACtBC,EAAchW,EAAOgW,YACrBC,EAAejW,EAAOiW,aAE1B,KAAML,KAAgB1P,oBAAMlI,KAAK2B,SAAWuG,oBAAMlI,KAAKwI,QAAYoP,OAA0B/F,KAAZgG,EAAwB,CACrG,GAAIY,GAAUb,EAAcC,EAAU7X,KAAK2B,MAAQ3B,KAAKwI,KAAUN,oBAAMlI,KAAK2B,OAAsB3B,KAAKwI,KAAlBxI,KAAK2B,KAC3F,KAAKuG,oBAAMlI,KAAKyI,aAAezI,KAAKyI,qBAAsBC,gBAAe1I,KAAK6J,UACvE7J,KAAK4J,kBAAmB,CAC3B,GAEI8O,IAFAC,EAAc3Y,KAAKqJ,OAASrJ,KAAK2J,SAAS3J,KAAKqJ,OAAOuP,kBACrD5Y,KAAKqJ,MAASrJ,KAAK6J,SAAW7J,KAAK6J,SAAS7H,OAAShC,KAAK6J,SAAS7H,OAAShC,KAAK6J,UACzDgP,OAAO,SAAUzI,GAG1C,OAFeA,EAAQhL,EAAMoS,iBAAiBI,EAAcC,EAAUzS,EAAMwF,OAAOjJ,MAC/EyD,EAAMwF,OAAOpC,KAASN,oBAAM9C,EAAMzD,OAA8ByD,EAAMwF,OAAOpC,KAAlCpD,EAAMwF,OAAOjJ,MAA2ByO,GAAS,QAC5EqI,GAEpBC,GAAa/X,OAAS,IACtByP,EAAOsI,EAAa,GACpBJ,EAAaK,GACb3Y,KAAK8Y,kBAAkB1I,EAAM8H,EAAcE,EAAaL,EAAcC,EAAaC,EAAcL,EAAYE,GAC7G9X,KAAK2L,QAAQ+E,UAAU1Q,KAAKsH,aAG1BY,oBAAMlI,KAAKyI,aAAezI,KAAKyI,qBAAsB7I,SAC3DwQ,EAAOpQ,KAAKyI,WAAWoQ,OAAO,SAAU/Q,GAGpC,MAFe1C,GAAMoS,iBAAiBI,EAAcC,EAAUzS,EAAMwF,OAAOjJ,MAAQyD,EAAMwF,OAAOpC,KAC3FN,oBAAM9C,EAAMzD,OAA8ByD,EAAMwF,OAAOpC,KAAlCpD,EAAMwF,OAAOjJ,MAA2BmG,KAC9C2Q,IACrB,GACHH,EAAatY,KAAKyI,iBAGrB,KAAKP,oBAAMlI,KAAKsH,OACjB,IAAKY,oBAAMlI,KAAKyI,aAAezI,KAAKyI,qBAAsBC,gBAAe1I,KAAK6J,UACvE7J,KAAK4J,kBAAmB,CAC3B,GAAI+O,GAAc3Y,KAAKqJ,OAASrJ,KAAK2J,SAAS3J,KAAKqJ,OAAOuP,kBACrD5Y,KAAKqJ,MAASrJ,KAAK6J,SAAW7J,KAAK6J,SAAS7H,OAAShC,KAAK6J,SAAS7H,OAAShC,KAAK6J,QACtFuG,GAAOuI,EAAU3Y,KAAKsH,OACtBgR,EAAaK,GACb3Y,KAAK8Y,kBAAkB1I,EAAM8H,EAAcE,EAAaL,EAAcC,EAAaC,EAAcL,EAAYE,GAC7G9X,KAAK2L,QAAQ+E,UAAU1Q,KAAKsH,YAEtBY,oBAAMlI,KAAKyI,aAAezI,KAAKyI,qBAAsB7I,SACtDI,KAAK4K,OAAOkF,QAKb8D,WAAW,WACP,GAAIlF,GAAOtJ,EAAMuG,QAAQ+D,SACzB,IAAIhB,GAAQA,EAAK/N,OAAS,EAGtB,IAAK,GAFDoY,GAAU3T,EAAMuG,QAAQqN,WAAWtK,EAAKtJ,EAAMkC,QAAQyR,QACtDpX,EAAQyD,EAAMwF,OAAOjJ,MAChBX,EAAI,EAAGA,EAAI0N,EAAK/N,OAAQK,IAC7B,GAAI+X,GAAWA,EAAQE,SAAStX,EAAM2J,WAAY,OAC9ClG,EAAMqD,WAAWwQ,SAASjY,EAAEsK,WAAY,KAAK2N,SAAStX,EAAM2J,WAAY,KAAM,CAC9E8E,EAAO2I,EACPT,EAAalT,EAAMqD,YACnBrD,EAAM0T,kBAAkB1I,EAAM8H,EAAcE,EAAaL,EAAcC,EAAaC,EAAcL,EAAYE,GAC9G1S,EAAMuG,QAAQ+E,UAAUtL,EAAMkC,MAC9B,WAhBhB8I,EAAOpQ,KAAKyI,WAAWzI,KAAKsH,OAC5BgR,EAAatY,KAAKyI,aAuBxBzI,MAAKyI,qBAAsBC,gBAC7B1I,KAAK8Y,kBAAkB1I,EAAM8H,EAAcE,EAAaL,EAAcC,EAAaC,EAAcL,EAAYE,IAGrH7S,EAAoB/E,UAAU4Y,kBAAoB,SAAU1I,EAAM8H,EAAcE,EAAaL,EAAcC,EAAaC,EAAcL,EAAYE,GAC9I,GAAIL,GAAarH,EAAOpQ,KAAKwX,iBAAiBxX,KAAK4K,OAAOjJ,MAAOyO,GAAQ,KACrE8I,GACAvX,MAAOyO,EAAOqH,EAAa,KAC3B0B,UAAY3Q,KAAMwP,EAAarW,MAAOoW,GACtC3H,KAAMpQ,KAAKoZ,eAAepZ,KAAK2B,OAC/B0X,iBAAkBnB,EAClBoB,oBAAqBlB,EACrBmB,YAAavZ,KAAK0V,aAClB8D,MAAO,KACPC,cAAe7B,EAEnB5X,MAAKsY,aAAaP,EAAcC,EAAaC,EAAciB,EAAiBpB,IAEhF7S,EAAoB/E,UAAUsY,oBAAsB,SAAUpI,EAAMmI,GAChE,IAAKrQ,oBAAMkI,GAAO,CACd,GAAIsJ,GAAY1Z,KAAKwX,iBAAiBxX,KAAK4K,OAAOpC,KAAM4H,GACpDqH,EAAazX,KAAKwX,iBAAiBxX,KAAK4K,OAAOjJ,MAAOyO,EAE1D,OADA6E,SAAM0E,SAASD,EAAW1Z,KAAK2T,SAAU3T,KAAKoV,eAAgBpV,KAAKwV,kBAE/DuC,aAAcN,EACdO,YAAa0B,EACbzB,aAAcM,EAAS/H,QAAQJ,IAGvC,OACI2H,aAAc,KACdC,YAAa,KACbC,aAAc,OAGtBhT,EAAoB/E,UAAUiJ,YAAc,WACxCnJ,KAAKsT,SAAWtT,KAAK4G,cAAc,OAC/BpB,GAAIxF,KAAKmF,QAAQK,GAAK,WAAYwD,UAAW4Q,+BAAmD,OAAlB5Z,KAAKyV,SAAoBzV,KAAKyV,SAAW,MAE3HrB,aAAWpU,KAAKsT,UAAYuG,aAAc7Z,KAAKmF,QAAQK,GAAIwB,KAAQ,WACnEE,SAAS7E,KAAK8E,YAAYnH,KAAKsT,UAC/BtT,KAAK8Z,YAAY9Z,KAAKsT,UACtBwC,WAAS9V,KAAK+I,UAAW/I,KAAKsT,UAC1BtT,KAAK+Z,gBACL/Z,KAAKga,mBAET,IAAIpN,GAAc5M,KAAKia,SAAQ,EAE/B,IADAja,KAAKsT,SAASC,MAAM2G,UAAYtN,EAC5B5M,KAAK+Z,eAAgB,CACrB,GAAIpN,GAASwN,KAAKC,MAAMpa,KAAKqa,OAAOnL,wBAAwBvC,OAC5DC,GAAc0J,aAAW2C,SAASrM,EAAa,IAAMD,EAAS,MAElE3M,KAAK+I,SAASwK,MAAM2G,UAAYtN,EAChC5M,KAAKqP,mBACLrP,KAAKsT,SAASC,MAAMC,WAAa,SACjCxT,KAAKmT,iBAAkB,GAE3BlO,EAAoB/E,UAAUmP,iBAAmB,SAAUiL,EAAUC,GACjE,GAAI5N,EACJ,IAAI2N,EAAU,CACV,GAAIE,GAAiBxa,KAAK2L,QAAQ8O,aAAatP,cAAc,cACzDuP,EAAkBF,EAAeG,aAAeH,EAAeI,YACvC,MAAxB5a,KAAK4K,OAAOkF,SAAmB5H,oBAAMlI,KAAK4K,OAAOkF,WACjD9P,KAAKmP,gBAAkBnP,KAAKmP,gBAEhCxC,EAAS4N,GAAcva,KAAKmP,eAAiBnP,KAAK6a,eAAkB7a,KAAKmP,eAAiBuL,EAAmB,KAAqC1a,KAAK6a,eAAiB,SAGxK7a,MAAK6a,eAAiB7a,KAAK+I,SAASmG,wBAAwBvC,OAAS3M,KAAK+I,SAASoC,cAAc,iBAAiB+D,wBAAwBvC,OAC1IA,EAAS3M,KAAK6a,eAAiB,IAEnC,IAAIlK,GAAe3Q,KAAK4Q,mBACxB5Q,MAAK4Q,qBAAsB,EAC3B5Q,KAAK2L,QAAQgB,OAASA,EACtB3M,KAAK4Q,oBAAsBD,GAE/B1L,EAAoB/E,UAAU4Z,YAAc,SAAU3U,GAClD,GAAIC,GAAQpF,IACZA,MAAKsP,SAAW,GAAIwL,SAAM3V,GACtBiM,MAAOpR,KAAKia,SAAQ,GACpBc,WAAY,WACZC,WAAaC,EAAG,OAAQC,EAAG,QAC3BC,SAAUnb,KAAK0V,aACftJ,UAAWpM,KAAKoM,UAChBgP,UAAYH,EAAG,OAAQC,EAAG,UAC1BG,mBAAoB,WACXC,UAAQC,UACTnW,EAAMwK,aAGd4L,KAAM,WACFpW,EAAMuO,SAAS8H,QACfrW,EAAMsW,2BAIlBzW,EAAoB/E,UAAU8Z,kBAAoB,WAC1Cha,KAAKqa,OAEDra,KAAK2b,SAA0C,kBAAxB3b,MAAK+Z,eAC5B/Z,KAAK4b,eAAe,mBAGpB5b,KAAKqa,OAAOpP,UAAY,IAI5BjL,KAAKqa,OAASra,KAAK4G,cAAc,OACjCoM,YAAUhT,KAAKqa,QAAS,kBAE5B,IAEIwB,GAFiB7b,KAAK8b,oBAAoB9b,KAAK+Z,iBAEpBgC,MADf/b,KAAKyI,WAAW9H,QACmBX,KAAM,iBAAkBA,KAAKmF,QAAQK,GAAK,iBAAkBxF,KAAKgc,qBAAkBnK,GAAW7R,KAAKqa,OAClJwB,KACAA,EAAUjc,MAAMM,UAAU+b,MAAMlZ,KAAK8Y,GACrCK,SAAOL,EAAS7b,KAAKqa,SAEzB6B,UAAQlc,KAAKqa,QAASra,KAAKsT,WAE/BrO,EAAoB/E,UAAU4S,WAAa,SAAUzF,GAOjD,GANIrN,KAAKmc,SACLnc,KAAKmc,SAASlR,UAAY,GAG1BjL,KAAKmc,SAAWnc,KAAK4G,cAAc,OAER,qBAA3B5G,KAAKoc,mBAA2E,mBAA/Bpc,KAAKqc,sBAA4C,CAClG,GAAI7K,GAAWnE,EAAgBrN,KAAKqc,sBAAwBrc,KAAKoc,kBAC7DE,EAAajP,EAAgBrN,KAAKmF,QAAQK,GAAK,iBAAmBxF,KAAKmF,QAAQK,GAAK,aACpF+W,EAAiBlP,EAAgB,wBAA0B,oBAE3DwO,EADiB7b,KAAK8b,oBAAoBtK,MACbxR,KAAMuc,EAAgBD,EAAYtc,KAAKgc,qBAAkBnK,GAAW7R,KAAKmc,SACtGN,KACAA,EAAUjc,MAAMM,UAAU+b,MAAMlZ,KAAK8Y,GACrCK,SAAOL,EAAS7b,KAAKmc,eAGxB,CACD,GAAIK,IAAeJ,kBAAmB,mBAAoBC,sBAAuB,iBACjFrc,MAAKyc,KAAO,GAAIC,QAAK,sBAAuBF,EAAYxc,KAAK2c,QAC7D3c,KAAKmc,SAASlR,UAAYoC,EACtBrN,KAAKyc,KAAKG,YAAY,yBAA2B5c,KAAKyc,KAAKG,YAAY,qBAE/E5J,YAAUhT,KAAKmc,UAAW,gBAC1BrG,WAAS9V,KAAKmc,UAAWnc,KAAK+I,UAC9B/I,KAAKsP,SAASC,mBASlBtK,EAAoB/E,UAAU4b,oBAAsB,SAAUtK,GAC1D,GAAwB,gBAAbA,GAAuB,CAC9B,GAAIqL,GAAU,EACd,KACI,GAAIC,GAAUC,SAAOvL,EAGjBqL,GAFAC,EAE8B,WAApBA,EAAQ5I,QAAuB4I,EAAQ7R,UAAY6R,EAAQE,UAG3DxL,EAGlB,MAAO1P,GACH+a,EAAUrL,EAEd,MAAOyL,WAAQJ,GAIf,MAAOI,WAAQzL,IAIvBvM,EAAoB/E,UAAU+Z,QAAU,SAAUiD,GAC9C,GAAIC,GAAmBD,EAAeld,KAAKod,WAAapd,KAAK4M,YACzDyQ,EAAO/G,aAAW6G,EAQtB,OAPIE,GAAKC,SAAS,KAEdD,IADqBH,EAAeld,KAAK0V,aAAa6H,YAAcrW,SAASsW,gBAAgB5C,cACpExL,WAAWiO,GAAQ,KAAK/R,WAAa,KAE7B,gBAArB6R,KACZE,EAAOF,EAAiB5G,MAAM,SAAW4G,EAAmBE,GAEzDA,GAEXpY,EAAoB/E,UAAUuP,gBAAkB,SAAUX,EAAKhN,EAAG2b,GAC9D,GAAIrY,GAAQpF,KACR0d,GACAjE,eAAc3X,EACdsO,KAAMpQ,KAAK2L,QAAQwM,qBAAqB,GACxCoB,YAAazK,EACbqK,SAAUnZ,KAAK2L,QAAQwM,qBAAqB,GAC5CqB,MAAO1X,EACPyH,QAAQ,GAERoU,EAAkB3d,KAAK2L,QAAQwM,qBAAqB,GACpDyF,EAAWD,EAAkB3d,KAAKwX,iBAAiBxX,KAAK4K,OAAOpC,KAAMmV,GAAmB,GACxFE,EAAYF,EAAkB3d,KAAKwX,iBAAiBxX,KAAK4K,OAAOjJ,MAAOgc,GAAmB,GAC1FzE,GACAO,eAAc3X,EACdsO,KAAMuN,EACNpE,YAAazK,EACbqK,UAAY3Q,KAAMmV,EAAkBC,EAAW,GAAIjc,MAAOgc,EAAkBE,EAAY,IACxFrE,MAAO1X,EACPyH,QAAQ,EACR5H,MAAOgc,EAAkBE,EAAY,GACrCxE,kBAAoB7Q,KAAMxI,KAAKwI,KAAM7G,MAAO3B,KAAK2B,OACjD2X,oBAAqBtZ,KAAKsZ,oBAE9BtZ,MAAKsJ,QAAQ,SAAUoU,EAAW,SAAUA,GACxC,IAAKA,EAAUnU,QAAUmU,EAAUvE,SAAU,CACzC,GAAI2E,GAAUhc,EACVic,EAA8B,UAAhBD,EAAQvd,KAAmC,QAAhBud,EAAQvd,KAAiBud,EAAQE,UAA4B,QAAhBF,EAAQvd,KAAiBud,EAAQG,QAA0B,YAAhBH,EAAQvd,MACxIkd,GAAaA,GAAYM,IAC1B3Y,EAAMkT,aAAaqF,EAAkBE,EAAY,GAAIF,EAAkBC,EAAW,GAAIxY,EAAMuG,QAAQgE,iBAAkBuJ,GAE1HjE,QAAM0E,SAASgE,EAAkBC,EAAW,GAAIxY,EAAMuO,SAAUvO,EAAMgQ,eAAgBhQ,EAAMoQ,iBAC5FpQ,EAAM2F,mBACD0S,GAAaA,GAAYM,IAC1B3Y,EAAMwK,UAAU9N,GAGpBsD,EAAMuG,SACNvG,EAAMiC,iBAAiBjC,EAAMuG,QAAQgE,iBAAkBvK,EAAMuG,QAAQ+D,UAAU/O,WAI3FsE,EAAoB/E,UAAUoY,aAAe,SAAU3W,EAAO6G,EAAMlB,EAAOoW,EAAW5F,GAClF9X,KAAKsZ,oBAAsBoE,EAAUnE,WACrC,IAAI5I,GAAe3Q,KAAK4Q,mBACxB5Q,MAAK4Q,qBAAsB,EAC3B5Q,KAAKwI,KAAOA,GAAQxI,KAAKwI,KACzBxI,KAAK2B,MAAQA,GAAS3B,KAAK2B,MAC3B3B,KAAKsH,MAAQtH,KAAK2P,iBAAoBzH,oBAAMZ,GAAiBtH,KAAKsH,MAAbA,EACrDtH,KAAK4Q,oBAAsBD,EAC3B3Q,KAAK+K,iBACA+M,GACD9X,KAAKke,mBAAmBR,IAGhCzY,EAAoB/E,UAAUge,mBAAqB,SAAUR,GACzD1d,KAAKsJ,QAAQ,SAAUoU,EAAW,SAAUA,GACpCA,EAAUnU,UAKtBtE,EAAoB/E,UAAUie,aAAe,SAAUrc,GACnD,GAAIsD,GAAQpF,IAGZ,IAFAA,KAAKoe,UAAU,MAAM,GACrBpe,KAAK0b,uBACD1b,KAAKuK,eAAgB,CACrBvK,KAAK2K,YAAc7I,EAAExB,OAAOqB,MAAM+J,aAClC,IAAI2S,IACAC,sBAAsB,EACtB9V,KAAMxI,KAAK2K,YACX4T,WAAY,SAAU9V,EAAYY,EAAOuB,GACrC,IAAIyT,EAAY9U,OAMhB,GAHAnE,EAAMiF,gBAAiB,EACvBjF,EAAM0F,kBAAoBzB,EAAQA,EAAMmB,QAAUnB,EAClDjE,EAAMwE,mBAAoB,EACtBP,EACAjE,EAAMyD,YAAYJ,EAAYY,OAE7B,CACD,GAAImV,GAAWpZ,EAAMqZ,YAAYhW,EAAYrD,EAAMuF,aAAa7C,IAChE1C,GAAMyD,YAAkC,KAAtBzD,EAAMuF,YAAqB6T,EAAW/V,EAAYY,KAG5EmQ,MAAO1X,EACPyH,QAAQ,EAEZvJ,MAAKsJ,QAAQ,YAAa+U,EAAa,SAAUX,GACxCA,EAAUnU,QAAWmU,EAAUY,sBAAyBlZ,EAAMiF,gBAC/DjF,EAAMyD,YAAYzD,EAAMqD,WAAYrD,EAAMiE,MAAQjE,EAAMiE,MAAMmB,QAAU,QAIpFxK,KAAK0e,iBAAiB5c,EAAExB,OAAOqB,QAEnCsD,EAAoB/E,UAAUwe,iBAAmB,SAAUC,GACvD,MAAOzd,GAAUlB,SAAM,OAAQ,GAAQ,WACnC,GAAIkR,GAAI0N,EAAI9W,EAAM+W,CAClB,OAAOzc,GAAYpC,KAAM,SAAU8e,GAQ/B,MAPI9e,MAAKyI,qBAAsBC,gBAC1BwI,EAAKlR,KAAKye,YAAYze,KAAK6J,SAAU8U,GAAa7W,EAAOoJ,EAAGpJ,KAAM+W,EAAY3N,EAAG2N,WAE7Ejf,MAAM6O,QAAQzO,KAAKyI,cACvBmW,EAAK5e,KAAKye,YAAYze,KAAKyI,WAAYkW,GAAa7W,EAAO8W,EAAG9W,KAAM+W,EAAYD,EAAGC,WAExF7e,KAAK+e,mBAAmBjX,EAAM+W,IACtB,QAIpB5Z,EAAoB/E,UAAUue,YAAc,SAAUhW,EAAYkW,GAC9D,GAAIvZ,GAAQpF,IASZ,QAAS8H,KAREW,EAAWoQ,OAAO,SAAUzI,GACnC,GAAIsJ,GAAYtU,EAAMoS,iBAAiBpS,EAAMwF,OAAOpC,KAAM4H,EAC1D,OAAOuO,IAAcjF,EAAUhO,cAAcsT,WAAWL,EAAWjT,iBAMlDmT,UAJLpW,EAAWoQ,OAAO,SAAUzI,GAExC,MADgBhL,GAAMoS,iBAAiBpS,EAAMwF,OAAOpC,KAAM4H,KACrCuO,MAI7B1Z,EAAoB/E,UAAU6e,mBAAqB,SAAUjX,EAAM+W,GAC/D,GAAI/W,EAAKnH,QAAU,EAEf,YADAX,KAAKsG,cAAgBtG,KAAKuG,eAAiBvG,KAAKwG,oBAAsB,KAG1ExG,MAAKuG,eAAiBuB,EAAK,GAC3B9H,KAAKwG,oBAAsBqY,EAAU,EACrC,IAAII,GAAgBjf,KAAK6Q,UAAU7Q,KAAK2L,QAAQuT,gBAAiBlf,KAAKuG,eACtEvG,MAAKsG,cAAgBtG,KAAK2L,QAAQwT,cAAcF,IAEpDha,EAAoB/E,UAAU8J,qBAAuB,WACjD,GAAIhK,KAAK4I,UAAY5I,KAAK4I,SAASjI,OAAS,EAAG,CAC3CsS,eAAajT,KAAK+I,WAAYpF,GAC9B,IAAIuP,GAAclT,KAAK+I,SAASoC,cAAc,gBAC1C+H,IACAlT,KAAK+I,SAASgK,YAAYG,GAE9BlT,KAAK2L,QAAQlD,WAAazI,KAAK4I,SAC/B5I,KAAK2O,gBAAiB,MAGtB3O,MAAK8S,aACLE,YAAUhT,KAAK+I,WAAYpF,KAGnCsB,EAAoB/E,UAAUkJ,WAAa,WAClClB,oBAAMlI,KAAKgV,SAASG,QAAQ,MAC7BiK,eAAanN,IAAIjS,KAAKgV,SAASG,QAAQ,GAAI,YAAanV,KAAKqf,YAAarf,MAC1Eof,eAAanN,IAAIjS,KAAKgV,SAASG,QAAQ,GAAI,YAAanV,KAAKsf,cAAetf,OAEhFof,eAAanN,IAAI/K,SAAU,YAAalH,KAAKuf,gBAAiBvf,MAC9Dof,eAAanN,IAAIjS,KAAKiJ,QAAS,QAASjJ,KAAKwf,aAAcxf,MAC3Dof,eAAanN,IAAIjS,KAAK2T,SAAU,QAAS3T,KAAKme,aAAcne,MAC5Dof,eAAanN,IAAIjS,KAAK2T,SAAU,QAAS3T,KAAK6P,QAAS7P,MACnDA,KAAKwV,iBACL4J,eAAanN,IAAIjS,KAAKgV,SAASyK,YAAa,YAAazf,KAAK0f,UAAW1f,MAE7Eof,eAAanN,IAAIlK,OAAQ,SAAU/H,KAAK2f,aAAc3f,MACtDA,KAAK4f,eAAiB,GAAIC,kBAAe7f,KAAK0V,cAC1CoK,UAAW9f,KAAK+f,iBAAiBtS,KAAKzN,MACtC2F,WAAY3F,KAAK2F,WACjBqa,UAAW,YAEfhgB,KAAK4f,eAAiB,GAAIC,kBAAe7f,KAAKiJ,SAC1C6W,UAAW9f,KAAK+P,qBAAqBtC,KAAKzN,MAC1C2F,WAAY3F,KAAK2F,WACjBqa,UAAW,aAGnB/a,EAAoB/E,UAAUuS,aAAe,WACpCvK,oBAAMlI,KAAKgV,SAASG,QAAQ,MAC7BiK,eAAaa,OAAOjgB,KAAKgV,SAASG,QAAQ,GAAI,YAAanV,KAAKqf,aAChED,eAAaa,OAAOjgB,KAAKgV,SAASG,QAAQ,GAAI,YAAanV,KAAKsf,gBAEpEF,eAAaa,OAAO/Y,SAAU,YAAalH,KAAKuf,iBAChDH,eAAaa,OAAOjgB,KAAK2T,SAAU,QAAS3T,KAAKme,cACjDiB,eAAaa,OAAOjgB,KAAK0V,aAAc,QAAS1V,KAAK6P,SACrDuP,eAAaa,OAAOlY,OAAQ,SAAU/H,KAAK2f,cAC3CP,eAAaa,OAAOjgB,KAAKiJ,QAAS,QAASjJ,KAAKwf,cAC5Cxf,KAAKwV,iBACL4J,eAAaa,OAAOjgB,KAAKgV,SAASyK,YAAa,YAAazf,KAAK0f,WAEjE1f,KAAK4f,gBACL5f,KAAK4f,eAAeM,WAG5Bjb,EAAoB/E,UAAUmf,YAAc,SAAUvd,GAClDA,EAAEqe,kBAENlb,EAAoB/E,UAAUof,cAAgB,SAAUxd,GACpD,IAAI9B,KAAKyU,WAAYzU,KAAKuU,SAA1B,CAGA,GAAI6L,GAAapgB,KAAKiJ,QAAQkC,cAAc,eACxCiV,IACAA,EAAWpO,UAAUiO,OAAO,eAE5BjgB,KAAKwH,YACLxH,KAAK4P,UAAU9N,GAGf9B,KAAKoe,UAAUtc,KAGvBmD,EAAoB/E,UAAUsf,aAAe,SAAU1d,GACnD,GAAIxB,GAASwB,EAAExB,OACXwO,EAAMuR,UAAQ/f,EAAQ,UACtBqP,EAAmB3P,KAAK2L,QAAQgE,gBAChCb,KACIa,GAAoB,EACpB3P,KAAKyP,gBAAgBX,EAAKhN,IAG1B9B,KAAK2L,QAAQgE,iBAAmB3P,KAAK2L,QAAQ+D,UAAUc,QAAQ1B,GAC/D9O,KAAK2L,QAAQ+E,UAAU1Q,KAAK2L,QAAQgE,kBACpC3P,KAAK4P,UAAU9N,MAI3BmD,EAAoB/E,UAAUqf,gBAAkB,SAAUzd,GACtD,GAAIxB,GAASwB,EAAExB,MACf,IAAIN,KAAKyU,UAAYzU,KAAKuU,WAAavU,KAAKwH,YAIxC,YAHKlH,EAAO+f,QAAQ,wBAChBrgB,KAAKsgB,WAIb,IAAKhgB,EAAO0R,UAAUa,SAAS,4BAA8BwN,UAAQ/f,EAAQ,+BACzEwB,EAAEqe,qBAGF,KAAK7f,EAAO0R,UAAUa,SAAS,2BAA6BvS,EAAO0R,UAAUa,SAAS,gBAAiB,CAC9F3K,oBAAMlI,KAAKwI,OACZxI,KAAK0e,iBAAiB1e,KAAKwI,KAE/B,IAAI+X,GAAqC,KAAxBvgB,KAAK2T,SAAShS,KAC/B3B,MAAKwgB,oBAAoB1e,EAAG,KAAMye,KAI9Ctb,EAAoB/E,UAAUsgB,oBAAsB,SAAUC,EAAYC,EAAUC,EAAeC,OAC7E,KAAdA,IAAwBA,GAAY,EACxC,IAAI9e,GAAI2e,GAA0BC,EAC9BG,EAAMD,EAAY5gB,KAAKuG,eAAiBvG,KAAKwG,mBAMjD,IALKqa,GAAkB,UAAX/e,EAAEgf,OACV9gB,KAAK2T,SAAShS,MAAQ,KACtB3B,KAAKmI,eAAgBxG,MAAO,KAAM2F,MAAO,KAAMkB,KAAM,OAAQ,IAEjExI,KAAK4P,UAAU9N,GACX9B,KAAKsG,gBAAkBqa,GAAiBE,EAAK,CACzClQ,EAAe3Q,KAAK4Q,mBACxB5Q,MAAK4Q,qBAAsB,CAC3B,IAAI8I,GAAY1Z,KAAKwX,iBAAiBxX,KAAK4K,OAAOpC,KAAMxI,KAAKuG,gBACzDkR,EAAazX,KAAKwX,iBAAiBxX,KAAK4K,OAAOjJ,MAAO3B,KAAKuG,eAC/DvG,MAAK2T,SAAShS,MAAQ+X,EACtB1Z,KAAK2B,MAAQ8V,CACb,IAAIsJ,GAAc/gB,KAAK6Q,UAAU7Q,KAAK2L,QAAQuT,gBAAiBlf,KAAKuG,eACpEvG,MAAKsH,MAAQyZ,EACb/gB,KAAKwI,KAAOkR,EACZ1Z,KAAK2L,QAAQ+E,UAAUqQ,GACvB/gB,KAAKyP,gBAAgBzP,KAAK2L,QAAQwT,cAAc4B,GAAcjf,GAC9D9B,KAAKsZ,oBAAsBtZ,KAAK2L,QAAQ0M,kBAAkB,GAC1DrY,KAAK4Q,oBAAsBD,MAG3B,IAAI3Q,KAAK2O,eAAgB,CACrB3O,KAAK2T,SAAShS,MAAQ,EACtB,IAAIuX,IACAvX,MAAO,KACPwX,UAAY3Q,KAAM,KAAM7G,MAAO,MAC/ByO,KAAM,KACNiJ,kBAAoB7Q,KAAMxI,KAAKwI,KAAM7G,MAAO3B,KAAK2B,OACjD2X,oBAAqBtZ,KAAKsZ,oBAC1BC,YAAa,KACbC,MAAO1X,EACP2X,cAAc,EACdlQ,QAAQ,GAERoH,EAAe3Q,KAAK4Q,mBACxB5Q,MAAK4Q,qBAAsB,EAC3B5Q,KAAKwI,KAAOxI,KAAK2B,MAAQ3B,KAAKsH,MAAQ,KACtCtH,KAAK2L,QAAQqV,iBACbhhB,KAAK4Q,oBAAsBD,EAC3B3Q,KAAKke,mBAAmBhF,GACxBlZ,KAAK2O,gBAAiB,EACtB3O,KAAKuG,eAAiBvG,KAAKsG,cAAgB,OAIvDrB,EAAoB/E,UAAUwf,UAAY,SAAU5d,GAChD9B,KAAK2O,gBAAiB,EACtB3O,KAAKwgB,oBAAoB1e,EAAG,MAAM,IAEtCmD,EAAoB/E,UAAUyf,aAAe,WACrC3f,KAAKsP,WACLtP,KAAKsP,SAASnH,eAAgBiJ,MAAOpR,KAAKia,SAAQ,KAClDja,KAAKsP,SAASC,oBAItBtK,EAAoB/E,UAAU+gB,YAAc,SAAUC,EAAUC,GAC5D,GAAIC,GAAWphB,KAAKsP,UAAYtP,KAAK0V,aAAc1V,KAAKsP,SAASnK,UAAYnF,KAAK0V,aAC7ExN,qBAAMiZ,IAA0B,KAAbA,GACpBlO,cAAYmO,EAAUD,EAASrK,MAAM,MAEpC5O,oBAAMgZ,IAA0B,KAAbA,GACpBlO,WAASoO,EAAUF,EAASpK,MAAM,OAG1C7R,EAAoB/E,UAAU6f,iBAAmB,SAAUje,GACvD,OAAQA,EAAEuf,QACN,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,MACGrhB,KAAKwH,YACLxH,KAAK4P,UAAU9N,GAGf9B,KAAKsgB,UAET,MACJ,KAAK,UACItgB,KAAKwH,cACNxH,KAAKoe,UAAUtc,GACf9B,KAAKshB,mBAAmBxf,GAAG,GAE/B,MACJ,KAAK,WACL,IAAK,SACD9B,KAAKshB,mBAAmBxf,GAAG,GAAM,EACjC,MACJ,KAAK,QACD9B,KAAKwgB,oBAAoB,KAAM1e,GAAG,GAAO,GACzC9B,KAAK6P,QAAQ/N,EACb,MACJ,KAAK,OACL,IAAK,MACD9B,KAAKshB,mBAAmBxf,KAIpCmD,EAAoB/E,UAAU6P,qBAAuB,SAAUjO,EAAGyf,GAC9D,GAAIC,IACAC,UAAa,WACbC,QAAW,SACXC,IAAO,MACPC,KAAQ,OACRC,IAAO,MACPC,OAAU,SACVC,YAAa,WACbC,cAAe,QAEnB,IAAIT,EAAS,CACT,GAAIhhB,IAAYuB,EAAEmc,OAAS,OAAS,KAAOnc,EAAEkc,SAAW,SAAW,IAAMlc,EAAEvB,GAC3EuB,GAAEuf,OAASG,EAAajhB,IAAQuB,EAAEuf,OAEtC,OAAQvf,EAAEuf,QACN,IAAK,SACL,IAAK,MACL,IAAK,WACL,IAAK,QACGrhB,KAAKwH,cACL1F,EAAEqe,iBACe,WAAbre,EAAEuf,QACFrhB,KAAKshB,mBAAmBxf,GAE5B9B,KAAK4P,UAAU9N,GAEnB,MACJ,KAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,MACD9B,KAAKshB,mBAAmBxf,KAIpCmD,EAAoB/E,UAAUohB,mBAAqB,SAAUxf,EAAGmgB,EAAeC,GAC3E,GAAI9c,GAAQpF,IAEZ,QADsB,KAAlBiiB,IAA4BA,GAAgB,GAC5CjiB,KAAKwH,YAAa,CAClB,GAAI2a,GAAUniB,KAAK4K,OAAOkF,QAAW9P,KAAK2L,QAAQgE,kBAAoB,EAAK3P,KAAK2L,QAAQgE,iBACpFyS,EAAapiB,KAAKyI,qBAAsBC,eAAc1I,KAAK8J,iBAC3D9J,KAAKyI,WAAW9H,QACF,IAAbwhB,IAAgC,aAAbrgB,EAAEuf,QAAsC,WAAbvf,EAAEuf,SAAuC,SAAbvf,EAAEuf,OAC7Ec,EAAU,EAEJA,GAAYC,EAAa,GAAmB,aAAbtgB,EAAEuf,QAAwC,QAAbvf,EAAEuf,OACpEc,EAAUC,EAAa,EAEL,aAAbtgB,EAAEuf,QAA0Bc,GAAW,GAAKA,GAAYC,EAAa,IAAQpiB,KAAK4K,OAAOkF,SAAWoS,GACzGC,GAAW,GAEO,WAAbrgB,EAAEuf,QAAuBc,EAAU,GAAMniB,KAAK4K,gBAAmBsX,KACtEC,GAAW,GAEVniB,KAAKmM,qBAINyH,WAAW,WAAcxO,EAAMsL,UAAU5O,EAAGmgB,EAAeE,KAH3DniB,KAAK0Q,UAAU5O,EAAGmgB,EAAeE,KAO7Cld,EAAoB/E,UAAUwQ,UAAY,SAAU5O,EAAGmgB,EAAe3a,OAC5C,KAAlB2a,IAA4BA,GAAgB,GAChDjiB,KAAK2L,QAAQ+E,UAAUpJ,GACvBtH,KAAK2L,QAAQgE,iBAAmBrI,CAChC,IAAI8Y,GAAapgB,KAAKiJ,QAAQkC,cAAc,eACxCiV,IACAA,EAAWpO,UAAUiO,OAAO,eAE5BgC,GACAjiB,KAAKyP,gBAAgBzP,KAAK2L,QAAQ+D,UAAUuJ,SAAS3R,EAAMgE,WAAY,KAAMxJ,GAAG,IAGxFmD,EAAoB/E,UAAUwb,qBAAuB,WACjD,GAAI2G,GAAeriB,KAAK0V,aAAavK,cAAc,gBAC/CkX,KACAA,EAAa9O,MAAM+O,QAAkC,KAAxBtiB,KAAK2T,SAAShS,MAAe,OAAS,SAG3EsD,EAAoB/E,UAAUqiB,wBAA0B,SAAUC,EAAeC,GAC7E,GAAIziB,KAAK2L,QAAS,CACd,GAAI+W,EACJ1iB,MAAK4J,mBAAoB,EACzB5J,KAAKsF,eAAgB,EACrBtF,KAAK6I,YAAY2Z,GACEC,YAAyB/Z,eAExC+Z,EAAc/Y,aAAa,GAAIe,UAASvI,KAAK,SAAUJ,GAEnD4gB,EAAe5gB,EAAEE,OAAOrB,SAI5B+hB,EAAeD,EAAc9hB,OAEZ,IAAjB+hB,GACA1iB,KAAK+I,SAAS5B,YAAYnH,KAAKiJ,WAU3ChE,EAAoB/E,UAAU2P,QAAU,SAAU/N,GAC1C9B,KAAKyU,UAAYzU,KAAKuU,WAG1BvB,YAAUhT,KAAK0V,eAt/CN,kBAu/CT1V,KAAK2T,SAAS8H,QACdzb,KAAK0b,uBACL1b,KAAKsJ,QAAQ,QAASxH,GACM,UAAxB9B,KAAKoV,gBACLH,QAAM0N,eAAe3iB,KAAK2T,SAAU3T,KAAK0V,gBASjDzQ,EAAoB/E,UAAUogB,SAAW,SAAUxe,GAC/C,IAAI9B,KAAKyU,WAAYzU,KAAKuU,WAGtBvU,KAAKwH,aACLxH,KAAK4P,UAAU9N,GAEf9B,KAAK0V,cAAc,CACnBzC,eAAajT,KAAK0V,eA5gDb,iBA6gDL,IAAI2M,GAAeriB,KAAK0V,aAAavK,cAAc,gBAC/CkX,KACAA,EAAa9O,MAAM+O,QAAU,QAEL,UAAxBtiB,KAAKoV,gBACLH,QAAM0N,eAAe3iB,KAAK2T,SAAU3T,KAAK0V,gBAWrDzQ,EAAoB/E,UAAUke,UAAY,SAAUtc,EAAG8gB,GACnD,GAAIxd,GAAQpF,KACR6iB,GAAc9M,KAAM,SAAU+M,SAAU,KACxCpF,GAAcqF,MAAO/iB,KAAKsP,SAAUkK,MAAO1X,EAAGyH,QAAQ,EAAOyZ,UAAWH,EAC5E7iB,MAAKsJ,QAAQ,OAAQoU,EAAW,SAAUA,GACtC,IAAKA,EAAUnU,SAAWnE,EAAMoC,YAAa,CACzCpC,EAAMoC,aAAc,EACpBpC,EAAMkK,SAASC,kBACfyD,YAAU5N,EAAMsQ,eAxiDZ,gBAyiDJtB,aAAWhP,EAAMuO,UAAYU,gBAAiB,OAAQ4O,YAAa7d,EAAMD,QAAQK,GAAK,WAAY0d,gBAAiB9d,EAAMD,QAAQK,KAC5Hod,IACIxd,EAAMzD,OAASyD,EAAMoD,MAAQpD,EAAMkC,QACpClC,EAAMuG,QAAQ+E,UAAUtL,EAAMuK,iBAGtC,IAAIwT,GAAa/d,EAAMuG,QAAQ8O,YAC/B,IAAI0I,EAAY,CACZ,GAAIC,GAAYD,EAAWhY,cAAc,uBACrCkY,EAAWF,EAAWhY,cAAc,SACpCiY,GACAhe,EAAMuO,SAAStI,aAAa,wBAAyB+X,EAAUtO,cAAcX,aAAa,aAErFkP,GACLje,EAAMuO,SAAStI,aAAa,wBAAyBgY,EAASlP,aAAa,aAGnF/O,EAAMkK,SAASgU,KAAK,GAAIC,aAAU7F,EAAUsF,WAAY5d,EAAMkO,SAASkQ,mBACvEpe,EAAMuB,WAAWS,YAAc,GAC/BwM,WAAW,WACHxO,EAAMuG,SACNvG,EAAMiC,iBAAiBjC,EAAMuG,QAAQgE,iBAAkBvK,EAAMuG,QAAQ+D,UAAU/O,SAEpF,SAUfsE,EAAoB/E,UAAU0P,UAAY,SAAU9N,GAChD,GAAIsD,GAAQpF,KACR6iB,GAAc9M,KAAM,UAAW+M,SAAU,KACzCpF,GAAcqF,MAAO/iB,KAAKsP,SAAUkK,MAAO1X,GAAK,KAAMyH,QAAQ,EAAOyZ,UAAWH,GAChFviB,EAASwB,EAAIA,EAAExB,OAAS,IAC5BN,MAAKsJ,QAAQ,QAASoU,EAAW,SAAUA,GAClCA,EAAUnU,SACXnE,EAAMoC,aAAc,EACpByL,eAAa7N,EAAMsQ,eAllDf,gBAmlDJtB,aAAWhP,EAAMuO,UAAYU,gBAAiB,UAC9CjP,EAAMkK,SAAS+D,KAAK,GAAIkQ,aAAU7F,EAAUsF,YACxC1iB,IAAWA,EAAO0R,UAAUa,SAAS,4BAA8BvS,EAAO0R,UAAUa,SAAS,eACxFzN,EAAMzD,OACPyD,EAAMuG,QAAQqV,iBAElBpN,WAAW,WAAcxO,EAAMyK,QAAQ/N,MAGvCsD,EAAMkb,WAEVlb,EAAMuO,SAASqC,gBAAgB,aAC/B5Q,EAAMuO,SAASqC,gBAAgB,yBAC/B5Q,EAAM0F,kBAAoB,QAGlC8I,WAAW,WACP,GAAIxO,EAAMuG,QAAS,CACfvG,EAAMuG,QAAQlD,WAAarD,EAAMmF,eAAiBnF,EAAMyE,SAAWzE,EAAMwD,QACzE,IAAIsK,GAAc9N,EAAM2D,SAASoC,cAAc,gBAC3C+H,KACA9N,EAAM2D,SAASgK,YAAYG,GAC3BD,eAAa7N,EAAM2D,WAAYpF,KAEnCyB,EAAMiK,kBAAiB,GAAM,KAElC,MAUPpK,EAAoB/E,UAAUujB,SAAW,SAAUC,EAAOpc,GACtD,GAAIqJ,GAAe3Q,KAAK4Q,mBACxB5Q,MAAK4Q,qBAAsB,EAC3B5Q,KAAK2L,QAAQU,aAAaC,aAAc,EACxCtM,KAAK2L,QAAQiL,WACb5W,KAAK4Q,oBAAsBD,EAC3B3Q,KAAK2L,QAAQgY,UAAUD,EAAOpc,IAQlCrC,EAAoB/E,UAAU0jB,SAAW,WACrC,MAAO5jB,MAAK2L,QAAQkY,eAQxB5e,EAAoB/E,UAAUkZ,eAAiB,SAAUzX,GACrD,GAAIyD,GAAQpF,IACZ,QAAKkI,oBAAMlI,KAAKyI,aAAezI,KAAKyI,qBAAsB7I,OAC/CI,KAAKyI,WAAWoQ,OAAO,SAAUzI,GAEpC,MADiBhL,GAAMoS,iBAAiBpS,EAAMwF,OAAOjJ,MAAOyO,KACtCzO,IACvB,IAEGuG,oBAAMlI,KAAKyI,aAAezI,KAAKyI,qBAAsBC,gBAAe1I,KAAK6J,UAC5E7J,KAAK4J,mBACU5J,KAAKqJ,OAASrJ,KAAK2J,SAAS3J,KAAKqJ,OAAOuP,kBACrD5Y,KAAKqJ,MAASrJ,KAAK6J,SAAW7J,KAAK6J,SAAS7H,OAAShC,KAAK6J,SAAS7H,OAAShC,KAAK6J,UACrEgP,OAAO,SAAUzI,GAE9B,MADiBhL,GAAMoS,iBAAiBpS,EAAMwF,OAAOjJ,MAAOyO,KACtCzO,IACvB,GAEA,MAEXsD,EAAoB/E,UAAUggB,QAAU,WAMpC,GALAlgB,KAAKyS,eACDzS,KAAK2L,UACL3L,KAAK2L,QAAQuU,UACb4D,SAAO9jB,KAAK2L,QAAQxG,UAEpBnF,KAAK2T,SAAU,CAGf,IAAK,GAFDoQ,IAAa,cAAe,gBAAiB,aAAc,aAAc,OAAQ,OACjF,YAAa,gBAAiB,gBAAiB,eAAgB,iBAAkB,aAAc,yBAC1F/iB,EAAI,EAAGA,EAAI+iB,EAAUpjB,OAAQK,IAClChB,KAAK2T,SAASqC,gBAAgB+N,EAAU/iB,GAE5ChB,MAAK2T,SAAS3B,UAAUiO,OAAO,WAC/BhL,QAAM0E,SAAS,GAAI3Z,KAAK2T,SAAU3T,KAAKoV,eAAgBpV,KAAKwV,iBAE5DxV,KAAKsT,WACLtT,KAAKsT,SAAS0C,gBAAgB,cAC9BhW,KAAKsT,SAAS0C,gBAAgB,SAE9BhW,KAAKsP,WACLtP,KAAKsP,SAAS4Q,UACd4D,SAAO9jB,KAAKsP,SAASnK,UAErBnF,KAAKmF,QAAQ+O,UAAYlU,KAAK0H,gBAC9B1H,KAAK0V,aAAaZ,cAAcC,aAAa/U,KAAKmF,QAASnF,KAAK0V,cAEhE1V,KAAKgV,WACL8O,SAAO9jB,KAAKgV,SAASW,WACrB3V,KAAKgV,SAAW,MAEpBC,QAAMiL,SACF/a,QAASnF,KAAK2T,SACdyB,eAAgBpV,KAAKoV,eACrBC,WAAYrV,KAAKqV,aAErByO,SAAO9jB,KAAK0V,cACZoO,SAAO9jB,KAAK+I,UACR/I,KAAK2G,aACLmd,SAAO9jB,KAAK2G,YACZ3G,KAAK2G,WAAa,MAEtB3G,KAAK2T,SAAW,KAChB3T,KAAKsZ,oBAAsB,KAC3BtZ,KAAK0V,aAAazK,UAAY,GAC9BjL,KAAK0V,aAAe,KACpB1V,KAAK+I,SAAW,KAChB/I,KAAKsP,SAAW,KAChBtP,KAAK2L,QAAU,KACf3L,KAAKiJ,QAAU,KACfjJ,KAAKsT,SAAW,KAChBtT,KAAKqa,OAAS,KACdra,KAAKmc,SAAW,KAChBnc,KAAKgL,cAAgB,KACrBhL,KAAK+T,gBAAkB,KACvBrP,EAAOxE,UAAUggB,QAAQnd,KAAK/C,OAUlCiF,EAAoB/E,UAAU8jB,kBAAoB,SAAUC,EAASC,GACjE,IAAK,GAAIzN,GAAK,EAAGvF,EAAKzR,OAAO4Q,KAAK4T,GAAUxN,EAAKvF,EAAGvQ,OAAQ8V,IAAM,CAC9D,GAAI0N,GAAOjT,EAAGuF,GACVlL,MAAc,EAClB,QAAQ4Y,GACJ,IAAK,QACL,IAAK,aACY,UAATA,GACAnkB,KAAKkW,gBAAgB+N,EAAQ7S,OAE7BpR,KAAKsP,WACLtP,KAAKsP,SAASnK,QAAQoO,MAAMnC,MAAQpR,KAAKia,SAAQ,GAErD,MACJ,KAAK,cACD,GAAIja,KAAKsP,SAAU,CACf,GAAI3C,GAAS3M,KAAKia,SAAQ,EAC1Bja,MAAKsP,SAASnK,QAAQoO,MAAM2G,UAAYvN,EACxC3M,KAAK+I,SAASwK,MAAM2G,UAAYvN,EAChC3M,KAAK2L,QAAQgB,OAASA,EAE1B,KACJ,KAAK,cACDsI,QAAMoC,eAAe4M,EAAQ1O,YAAavV,KAAK2T,SAC/C,MACJ,KAAK,WACDsB,QAAMmP,YAAYpkB,KAAKuU,SAAUvU,KAAK2T,SACtC,MACJ,KAAK,WACDsB,QAAMqC,YAAYtX,KAAKyU,SAAUzU,KAAK2T,UACtC3T,KAAK2W,WACL,MACJ,KAAK,WACD3W,KAAKihB,YAAYgD,EAAQxO,SAAUyO,EAAQzO,SAC3C,MACJ,KAAK,iBACDR,QAAMoP,eAAerkB,KAAKgV,UAC1BC,QAAMqP,YAAYtkB,KAAK2T,SAAU3T,KAAKoV,eAAgBpV,KAAKuV,YAC3D,MACJ,KAAK,kBACDN,QAAMsP,eAAeN,EAAQzO,gBAAiBxV,KAAK2T,SAAU3T,KAAKgV,SAClE,MACJ,KAAK,QACDhV,KAAK+J,WAAU,GAAM,EACrB,MACJ,KAAK,OACD/J,KAAK+J,WAAU,GAAM,EACrB,MACJ,KAAK,QACD/J,KAAK+J,WAAU,EACf,MACJ,KAAK,YACG/J,KAAK2L,UACL3L,KAAK2L,QAAQsC,aAAarC,UAClBsC,MAAOlO,KAAK4K,OAAOpC,KAAM2F,UAAW8V,EAAQxY,YAAcnH,YAAU8J,UAChE9J,YAAU8J,UAAY9J,YAAU+J,aAGhD,MACJ,KAAK,iBACDrO,KAAKkJ,mBACL,MACJ,KAAK,oBACDlJ,KAAK8S,YACL,MACJ,KAAK,wBACD9S,KAAK8S,YAAW,EAChB,MACJ,KAAK,iBACD9S,KAAKga,mBACL,MACJ,KAAK,eACGha,KAAK2L,UACL3L,KAAK2L,QAAQqB,YAAciX,EAAQhX,aAEvC,MACJ,KAAK,gBACDjN,KAAKqS,cAAgB4R,EAAQ5R,cAC7BrS,KAAK+N,oBACL,MACJ,KAAK,YACG/N,KAAK2L,SAAW3L,KAAKsP,WACrBtP,KAAK2L,QAAQS,UAAY6X,EAAQ7X,UACjC6I,QAAMuP,aAAaP,EAAQ7X,WAAYpM,KAAK0V,eAC5C1V,KAAKsP,SAASlD,UAAY6X,EAAQ7X,UAEtC,MACJ,KAAK,aACDpM,KAAKuiB,wBAAwB0B,EAAQxb,WAAYyb,EAAQzb,WACzD,MACJ,KAAK,QACDzI,KAAK4J,mBAAoB,EACzB5J,KAAK6I,YAAY7I,KAAKyI,WACtB,MACJ,KAAK,eACGzI,KAAK2L,UACL3L,KAAK2L,QAAQI,UAAYkY,EAAQjY,aAAaD,UAC9C/L,KAAK2L,QAAQM,UAAYgY,EAAQjY,aAAaC,UAC9CjM,KAAK2L,QAAQO,aAAe+X,EAAQjY,aAAaE,aACjDlM,KAAK2L,QAAQkB,cAAgBoX,EAAQjY,aAAaa,cAC5C3E,oBAAM+b,EAAQjY,aAAaO,iBAC7BvM,KAAK2L,QAAQY,cAAgB0X,EAAQjY,aAAaO,eAEhDrE,oBAAM+b,EAAQjY,aAAaU,gBAC7B1M,KAAK2L,QAAQa,iBAAiBC,SAAWwX,EAAQjY,aAAaU,cAGtE,MACJ,KAAK,SACD1M,KAAK4K,OAASqZ,EAAQrZ,OACtB5K,KAAK+N,oBACL,MACJ,KAAK,aACD/N,KAAK0K,WAAauZ,EAAQvZ,UAC1B,MACJ,KAAK,uBACG1K,KAAK2L,UACL3L,KAAKmM,qBAAuBnM,KAAK2L,QAAQQ,qBAAuB8X,EAAQ9X,qBAE5E,MACJ,KAAK,WACGnM,KAAK2L,UACL3L,KAAK+M,SAAWkX,EAAQlX,SACxB/M,KAAK2L,QAAQmB,kBAA+D,oBAA3C9M,KAAK+M,SAASzB,WAAWI,eAAuC1L,KAAK6L,aAE1G,MACJ,KAAK,iBACD7L,KAAKuK,eAAiB0Z,EAAQ1Z,cAC9B,MACJ,KAAK,eACGvK,KAAK2L,UACL3L,KAAK6L,aAAe7L,KAAK2L,QAAQE,aAAeoY,EAAQpY,aAE5D,MACJ,KAAK,UACG7L,KAAK2L,UACLJ,EAAcvL,KAAKwL,iBACnBxL,KAAK2L,QAAQC,QAAUL,EAE3B,MACJ,KAAK,SACDvL,KAAKwS,iBAAkB,KAKvCpS,GACIuE,gBACDM,EAAoB/E,UAAW,iBAAc,IAChDE,GACIuE,WAAS,OACVM,EAAoB/E,UAAW,WAAQ,IAC1CE,GACIuE,WAAS,OACVM,EAAoB/E,UAAW,YAAS,IAC3CE,GACIuE,WAAS,OACVM,EAAoB/E,UAAW,YAAS,IAC3CE,GACIuE,WAAS,SACVM,EAAoB/E,UAAW,YAAS,IAC3CE,GACIuE,WAAS,UACVM,EAAoB/E,UAAW,kBAAe,IACjDE,GACIuE,WAAS,SACVM,EAAoB/E,UAAW,iBAAc,IAChDE,GACIuE,WAAS,OACVM,EAAoB/E,UAAW,kBAAe,IACjDE,GACIuE,YAAS,IACVM,EAAoB/E,UAAW,qBAAkB,IACpDE,GACIuE,YAAS,IACVM,EAAoB/E,UAAW,mBAAgB,IAClDE,GACIuE,YAAS,IACVM,EAAoB/E,UAAW,sBAAmB,IACrDE,GACIuE,WAAS,KACVM,EAAoB/E,UAAW,eAAY,IAC9CE,GACIqkB,WAAUjc,KAAM,KAAM7G,MAAO,KAAMmO,QAAS,MAAQrL,IACrDQ,EAAoB/E,UAAW,aAAU,IAC5CE,GACIskB,gBAAe7f,IAChBI,EAAoB/E,UAAW,cAAW,IAC7CE,GACIqkB,aAAY3f,IACbG,EAAoB/E,UAAW,mBAAgB,IAClDE,GACIuE,WAASN,aAAWsgB,aACrB1f,EAAoB/E,UAAW,iBAAc,IAChDE,GACIuE,WAAS,UACVM,EAAoB/E,UAAW,qBAAkB,IACpDE,GACIuE,WAASL,YAAUsgB,OACpB3f,EAAoB/E,UAAW,gBAAa,IAC/CE,GACIuE,WAASJ,WAASsgB,YACnB5f,EAAoB/E,UAAW,eAAY,IAC9CE,GACIuE,YAAS,IACVM,EAAoB/E,UAAW,2BAAwB,IAC1DE,GACIuE,YAAS,IACVM,EAAoB/E,UAAW,eAAY,IAC9CE,GACIuE,YAAS,IACVM,EAAoB/E,UAAW,eAAY,IAC9CE,GACIuE,YAAS,IACVM,EAAoB/E,UAAW,wBAAqB,IACvDE,GACIuE,cACDM,EAAoB/E,UAAW,YAAS,IAC3CE,GACIuE,WAAS,OACVM,EAAoB/E,UAAW,mBAAgB,IAClDE,GACIuE,WAAS,OACVM,EAAoB/E,UAAW,qBAAkB,IACpDE,GACIuE,WAAS,OACVM,EAAoB/E,UAAW,oBAAiB,IACnDE,GACIuE,WAAS,mBACVM,EAAoB/E,UAAW,4BAAyB,IAC3DE,GACIuE,WAAS,qBACVM,EAAoB/E,UAAW,wBAAqB,IACvDE,GACIuE,gBACDM,EAAoB/E,UAAW,qBAAkB,IACpDE,GACI4E,WACDC,EAAoB/E,UAAW,cAAW,IAC7CE,GACI4E,WACDC,EAAoB/E,UAAW,WAAQ,IAC1CE,GACI4E,WACDC,EAAoB/E,UAAW,YAAS,IAC3CE,GACI4E,WACDC,EAAoB/E,UAAW,oBAAiB,IACnDE,GACI4E,WACDC,EAAoB/E,UAAW,kBAAe,IACjDE,GACI4E,WACDC,EAAoB/E,UAAW,qBAAkB,IACpDE,GACI4E,WACDC,EAAoB/E,UAAW,gBAAa,IAC/CE,GACI4E,WACDC,EAAoB/E,UAAW,aAAU,IAC5CE,GACI4E,WACDC,EAAoB/E,UAAW,aAAU,IAC5C+E,EAAsB7E,GAClB0kB,yBACD7f,IAEL8f"}