@syncfusion/ej2-multicolumn-combobox 28.1.33 → 28.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-multicolumn-combobox.umd.min.js","sources":["../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort, Resize);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], GridSettings.prototype, \"textWrapMode\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type='text' id='multi-column'></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo('#multi-column');\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id += '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderGrid();\n this.renderInput();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.dataSource,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n query: this.query,\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionBegin: function (args) { _this.trigger('actionBegin', args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.appendTo(this.gridEle);\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n this.trigger('actionComplete', args);\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (this.isPopupOpen) {\n this.selectedGridRow(this.gridObj.getRows()[this.gridObj.selectedRowIndex], args, true);\n this.hidePopup(args);\n this.focusIn(args);\n }\n }\n if (this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n this.gridKeyActionHandler(args, true);\n }\n };\n /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var values = Object.values(data).map(String);\n return values.includes(selectedValue) && values.includes(selectedText);\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n _this.selectDataRow(row.data, row.index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ?\n this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (_a) {\n var field = _a.field, header = _a.header, width = _a.width, textAlign = _a.textAlign, format = _a.format, displayAsCheckBox = _a.displayAsCheckBox, template = _a.template, headerTemplate = _a.headerTemplate, customAttributes = _a.customAttributes;\n return ({\n field: field,\n headerText: header,\n width: width,\n textAlign: textAlign.toString() === '' && _this.enableRtl ? 'Right' : textAlign,\n format: format,\n displayAsCheckBox: displayAsCheckBox,\n template: template,\n headerTemplate: headerTemplate,\n customAttributes: customAttributes,\n type: displayAsCheckBox && !format ? 'boolean' : undefined\n });\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n var groupByField = this.fields.groupBy;\n var isGroupByValid = groupByField !== '' && !isNOU(groupByField);\n if (isGroupByValid) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [groupByField]\n };\n if (this.groupTemplate && isGroupByValid) {\n this.gridObj.groupSettings.captionTemplate = this.groupTemplate;\n }\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n if (!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = inputWidth.match(/px|%|em/) ? inputWidth : formatUnit(inputWidth);\n }\n };\n MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style':\n this.inputWrapper.setAttribute('style', htmlAttributes[htmlAttr]);\n break;\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.setAriaDisabled('false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var filteredData = dataLists.filter(function (item) {\n return item[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n }\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n return data[isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text].toString() === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n item = dataLists[_this.index];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var ChangeEventArgs = {\n value: item ? item[this.fields.value].toString() : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n Input.setValue(item[this.fields.text].toString(), this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: item[this.fields.value].toString(),\n currentText: item[this.fields.text].toString(),\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n this.footer = this.footer ? this.footer : this.popupEle.querySelector('.e-popup-footer');\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight, dataSourceCount) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n var totalRowHeight = dataSourceCount * this.popupRowHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n totalRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (totalRowHeight < this.prevGridHeight ? (totalRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.includes('%')) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var fieldText = selectedRecords ? selectedRecords[this.fields.text].toString() : '';\n var fieldValue = selectedRecords ? selectedRecords[this.fields.value].toString() : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: fieldText, value: fieldValue },\n event: e,\n cancel: false,\n value: fieldValue,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var selectedRecord = eventArgs.itemData;\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecord[_this.fields.value], selectedRecord[_this.fields.text], _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecord[_this.fields.text], _this.inputEle, _this.floatLabelType, _this.showClearButton);\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text || this.text;\n this.value = value || this.value;\n this.index = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n var inputValue_1 = e.target.value.toLowerCase();\n var customFiltering_1 = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: inputValue_1,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n customFiltering_1 = true;\n _this.filterAction(dataSource, inputValue_1, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !customFiltering_1) {\n _this.filterAction(_this.dataSource, inputValue_1, _this.query, _this.fields);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData, query, result, totaldata;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(this.dataSource instanceof DataManager)) return [3 /*break*/, 2];\n query = new Query();\n return [4 /*yield*/, this.dataSource.executeQuery(query)];\n case 1:\n result = _c.sent();\n totaldata = result.result;\n (_a = this.filterDatas(totaldata, inputValue), data = _a.data, exactData = _a.exactData);\n return [3 /*break*/, 3];\n case 2:\n if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n _c.label = 3;\n case 3:\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n }\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n return item[_this.fields.text].toString().toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n return item[_this.fields.text].toString() === inputValue;\n });\n return { data: data, exactData: exactData };\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data, exactData) {\n if (data.length <= 0) {\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n return;\n }\n this.matchedContent = data[0];\n this.exactMatchedContent = exactData[0];\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filterAction = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var isQuery = query || new Query();\n var filterType = this.filterType.toString().toLowerCase();\n if (isNOU(query) && isNOU(fields)) {\n this.updateGridDataSource(dataSource);\n }\n else if (query) {\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, query, fields);\n }\n else {\n new DataManager(dataSource).executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n _this.updateGridDataSource(dataLists);\n });\n }\n }\n else {\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, isQuery, fields);\n }\n else if (Array.isArray(dataSource)) {\n var filteredData = dataSource.filter(function (item) {\n return _this.filterData(item, filterType, inputValue, fields);\n });\n this.updateGridDataSource(filteredData);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filteringHandler = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var filterType = this.filterType.toString().toLowerCase();\n var filteredData;\n dataSource.executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var dataLength = dataLists.length;\n filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });\n _this.updateGridDataSource(filteredData, dataLength);\n });\n };\n MultiColumnComboBox.prototype.filterData = function (item, filterType, inputValue, fields) {\n var itemValue = item[fields ? fields.text : this.fields.text].toString().toLowerCase();\n switch (filterType) {\n case 'startswith':\n return itemValue.startsWith(inputValue);\n case 'endswith':\n return itemValue.endsWith(inputValue);\n case 'contains':\n return itemValue.includes(inputValue);\n default:\n return false;\n }\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function (dataSource, dataLength) {\n var autoHeight = true;\n if (dataSource.length > 0) {\n var length_1 = this.dataSource instanceof DataManager ? dataLength\n : this.dataSource.length;\n autoHeight = length_1 !== dataSource.length;\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = dataSource;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n this.updateGridHeight(true, autoHeight, dataSource.length);\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n this.updateValuesOnInput(e);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n var _this = this;\n if (isClearValues === void 0) { isClearValues = false; }\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val) {\n this.inputEle.value = this.value = this.index = this.text = null;\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n setTimeout(function () {\n _this.inputEle.value = _this.matchedContent[_this.fields.text].toString();\n _this.value = _this.matchedContent[_this.fields.value].toString();\n var selectIndex = _this.findIndex(_this.gridObj.currentViewData, _this.matchedContent);\n _this.index = selectIndex;\n _this.text = _this.matchedContent[_this.fields.text].toString();\n _this.gridObj.selectRow(selectIndex);\n _this.selectedGridRow(_this.gridObj.getRowByIndex(selectIndex), e);\n _this.previousItemElement = _this.gridObj.getSelectedRows()[0];\n }, 100);\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e, false, true);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[parseInt(index.toString(), 10)], e, true);\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.gridObj.dataSource = newDataSource;\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n if (this.inputWrapper) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_popup', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n var dataRows = _this.gridObj.getRowsObject();\n var groupIndex_1;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataRows.forEach(function (data, index) {\n if (_this.fields.groupBy && isNOU(data.data.items)) {\n if (isNOU(groupIndex_1)) {\n groupIndex_1 = 0;\n }\n else {\n groupIndex_1 += 1;\n }\n }\n _this.selectDataRow(data.data, !_this.fields.groupBy ? index : groupIndex_1);\n });\n }\n _this.focusIn(e);\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n if (!isNOU(_this.dataSource) && _this.dataSource instanceof DataManager) {\n _this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.remoteDataLength = e.result.length;\n });\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n var target = e ? e.target : null;\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.dataSource;\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager) {\n this.dataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n return dataLists.filter(function (item) {\n return item[_this.fields.value].toString() === value;\n })[0];\n });\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n if (this.gridObj) {\n this.gridObj.query = newProp.query;\n }\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\n if (!(isNOU(newProp.gridSettings.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.gridSettings.allowTextWrap;\n }\n if (!(isNOU(newProp.gridSettings.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.gridSettings.textWrapMode;\n }\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","push","ICONANIMATION","NODATA","DISABLED","INPUTFOCUS","MULTICOLUMNLIST","MULTICOLUMNGRID","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","_super","ChildProperty","FieldSettings","Property","Column","GridSettings","Both","Event","Component","MultiColumnComboBox","preRender","element","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","getDirective","getPersistData","addOnPersist","data","enablePersistence","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderGrid","renderInput","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","_this","gridColumns","getGridColumns","sortOrder","toString","toLowerCase","gridObj","dataSource","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","query","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","dataBound","onDataBound","actionFailure","args","onActionFailure","actionBegin","trigger","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","fields","text","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","popupObj","refreshPosition","querySelector","scrollTop","cancel","isPopupOpen","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","values","map","String","includes","rows","forEach","row","selectDataRow","index","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","item","keys","every","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","dataCount","popupChild","hasNoDataClass","contains","rowElements","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","getBoundingClientRect","popupRowHeight","hide","popupEle","style","visibility","querySelectorAll","isDataFiltered","inputEle","allowedAttributes","tagName","getAttribute","setAttribute","setAttributes","attributes","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","indexOf","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","setElementWidth","initValue","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","setPlaceholder","setEnabled","setAriaDisabled","isRerender","isValue","isInitial","updateValues","dataList","updateCurrentValues","currentValue","currentText","currentIndex","value_1","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","DataManager","executeQuery","Query","dataLists","filteredData","filter","updateChangeEvent","setTimeout","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","setValue","aria-label","document","createPopup","prepend","footerTemplate","setFooterTemplate","getSize","maxHeight","footer","Math","round","updateGridHeight","isFilter","autoHeight","dataSourceCount","scrollBarHeight","gridContentEle","getContent","offsetHeight","clientHeight","totalRowHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","innerHTML","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","templateId","templatestring","noRecord","noRecordsTemplate","actionFailureTemplate","l10n","L10n","locale","getConstant","compile","content","tempEle","select","outerHTML","ispopupWidth","currentDimension","popupWidth","size","offsetWidth","documentElement","parseFloat","isKeyNav","eventArgs","selectedRecords","fieldText","fieldValue","isUpdateVal","selectedRecord","shiftKey","altKey","triggerChangeEvent","inputHandler","inputValue_1","customFiltering_1","eventArgs_1","showPopup","allowFiltering","preventDefaultAction","updateData","filterAction","updateInputValue","inputValue","_b","totaldata","_c","filterDatas","exactData","isArray","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","isQuery","filterType","updateGridDataSource","filteringHandler","filterData","dataLength","itemValue","endsWith","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","unWireEvents","remove","destroy","preventDefault","focusedEle","closest","focusOut","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","split","action","updateSelectedItem","isGroup","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","remoteDataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","popup","animation","name","duration","groupIndex_1","activeRow","firstRow","aria-owns","aria-controls","getRowsObject","items","contentEle","show","Animation","removeAttribute","addItems","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","options","gridInject"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-multicolumn-combobox.umd.min.js","sources":["../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, getValue } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort, Resize);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], GridSettings.prototype, \"textWrapMode\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type='text' id='multi-column'></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo('#multi-column');\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id += '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderGrid();\n this.renderInput();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.dataSource,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n query: this.query,\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionBegin: function (args) { _this.trigger('actionBegin', args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.appendTo(this.gridEle);\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n this.trigger('actionComplete', args);\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (this.isPopupOpen) {\n this.selectedGridRow(this.gridObj.getRows()[this.gridObj.selectedRowIndex], args, true);\n this.hidePopup(args);\n this.focusIn(args);\n }\n }\n if (this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n this.gridKeyActionHandler(args, true);\n }\n };\n /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var 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 dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n if (!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = inputWidth.match(/px|%|em/) ? inputWidth : formatUnit(inputWidth);\n }\n };\n MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style':\n this.inputWrapper.setAttribute('style', htmlAttributes[htmlAttr]);\n break;\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.setAriaDisabled('false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.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) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var filteredData = dataLists.filter(function (item) {\n var fieldVal = _this.updateFieldValue(isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text, item);\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 }\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) {\n this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n item = dataLists[_this.index];\n updateValues(dataLists);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n });\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var 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 this.footer = this.footer ? this.footer : this.popupEle.querySelector('.e-popup-footer');\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight, dataSourceCount) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n var totalRowHeight = dataSourceCount * this.popupRowHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n totalRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (totalRowHeight < this.prevGridHeight ? (totalRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.includes('%')) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var 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 selectedRecord = eventArgs.itemData;\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecords ? dataValue : '', selectedRecords ? dataText : '', _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecords ? dataText : '', _this.inputEle, _this.floatLabelType, _this.showClearButton);\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text || this.text;\n this.value = value || this.value;\n this.index = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n var inputValue_1 = e.target.value.toLowerCase();\n var customFiltering_1 = false;\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: inputValue_1,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n customFiltering_1 = true;\n _this.filterAction(dataSource, inputValue_1, query, fields);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !customFiltering_1) {\n _this.filterAction(_this.dataSource, inputValue_1, _this.query, _this.fields);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData, query, result, totaldata;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(this.dataSource instanceof DataManager)) return [3 /*break*/, 2];\n query = new Query();\n return [4 /*yield*/, this.dataSource.executeQuery(query)];\n case 1:\n result = _c.sent();\n totaldata = result.result;\n (_a = this.filterDatas(totaldata, inputValue), data = _a.data, exactData = _a.exactData);\n return [3 /*break*/, 3];\n case 2:\n if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n _c.label = 3;\n case 3:\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n }\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return 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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filterAction = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var isQuery = query || new Query();\n var filterType = this.filterType.toString().toLowerCase();\n if (isNOU(query) && isNOU(fields)) {\n this.updateGridDataSource(dataSource);\n }\n else if (query) {\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, query, fields);\n }\n else {\n new DataManager(dataSource).executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n _this.updateGridDataSource(dataLists);\n });\n }\n }\n else {\n if (dataSource instanceof DataManager) {\n this.filteringHandler(dataSource, inputValue, isQuery, fields);\n }\n else if (Array.isArray(dataSource)) {\n var filteredData = dataSource.filter(function (item) {\n return _this.filterData(item, filterType, inputValue, fields);\n });\n this.updateGridDataSource(filteredData);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MultiColumnComboBox.prototype.filteringHandler = function (dataSource, inputValue, query, fields) {\n var _this = this;\n var filterType = this.filterType.toString().toLowerCase();\n var filteredData;\n dataSource.executeQuery(query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n var dataLength = dataLists.length;\n filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });\n _this.updateGridDataSource(filteredData, dataLength);\n });\n };\n MultiColumnComboBox.prototype.filterData = function (item, filterType, inputValue, fields) {\n var dataValue = this.updateFieldValue(fields ? fields.text : this.fields.text, item);\n var itemValue = dataValue.toLowerCase();\n switch (filterType) {\n case 'startswith':\n return itemValue.startsWith(inputValue);\n case 'endswith':\n return itemValue.endsWith(inputValue);\n case 'contains':\n return itemValue.includes(inputValue);\n default:\n return false;\n }\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function (dataSource, dataLength) {\n var autoHeight = true;\n if (dataSource.length > 0) {\n var length_1 = this.dataSource instanceof DataManager ? dataLength\n : this.dataSource.length;\n autoHeight = length_1 !== dataSource.length;\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = dataSource;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n this.updateGridHeight(true, autoHeight, dataSource.length);\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n 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 var _this = this;\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val) {\n this.inputEle.value = this.value = this.index = this.text = null;\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n setTimeout(function () {\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 }, 100);\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e, false, true);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[parseInt(index.toString(), 10)], e, true);\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.gridObj.dataSource = newDataSource;\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n if (this.inputWrapper) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_popup', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n var dataRows = _this.gridObj.getRowsObject();\n var groupIndex_1;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataRows.forEach(function (data, index) {\n if (_this.fields.groupBy && isNOU(data.data.items)) {\n if (isNOU(groupIndex_1)) {\n groupIndex_1 = 0;\n }\n else {\n groupIndex_1 += 1;\n }\n }\n _this.selectDataRow(data.data, !_this.fields.groupBy ? index : groupIndex_1);\n });\n }\n _this.focusIn(e);\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n if (!isNOU(_this.dataSource) && _this.dataSource instanceof DataManager) {\n _this.dataSource.executeQuery(new Query).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.remoteDataLength = e.result.length;\n });\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n var target = e ? e.target : null;\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.dataSource;\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n 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) {\n this.dataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var dataLists = e.result;\n return dataLists.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n });\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n if (this.gridObj) {\n this.gridObj.query = newProp.query;\n }\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\n if (!(isNOU(newProp.gridSettings.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.gridSettings.allowTextWrap;\n }\n if (!(isNOU(newProp.gridSettings.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.gridSettings.textWrapMode;\n }\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","push","ICONANIMATION","NODATA","DISABLED","INPUTFOCUS","MULTICOLUMNLIST","MULTICOLUMNGRID","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","_super","ChildProperty","FieldSettings","Property","Column","GridSettings","Both","Event","Component","MultiColumnComboBox","preRender","element","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","getDirective","getPersistData","addOnPersist","data","enablePersistence","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderGrid","renderInput","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","_this","gridColumns","getGridColumns","sortOrder","toString","toLowerCase","gridObj","dataSource","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","query","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","dataBound","onDataBound","actionFailure","args","onActionFailure","actionBegin","trigger","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","fields","text","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","popupObj","refreshPosition","querySelector","scrollTop","cancel","isPopupOpen","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","flattenData","isArray","forEach","item","keys","String","flattenedValues","indexOf","rows","row","selectDataRow","index","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","every","map","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","dataCount","popupChild","hasNoDataClass","contains","rowElements","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","getBoundingClientRect","popupRowHeight","hide","popupEle","style","visibility","querySelectorAll","isDataFiltered","inputEle","allowedAttributes","tagName","getAttribute","setAttribute","setAttributes","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","setElementWidth","initValue","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","updateValues","dataList","updateCurrentValues","currentValue","currentText","currentIndex","value_1","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","DataManager","executeQuery","Query","dataLists","filteredData","filter","updateChangeEvent","setTimeout","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","setValue","aria-label","document","createPopup","prepend","footerTemplate","setFooterTemplate","getSize","maxHeight","footer","Math","round","updateGridHeight","isFilter","autoHeight","dataSourceCount","scrollBarHeight","gridContentEle","getContent","offsetHeight","clientHeight","totalRowHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","innerHTML","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","templateId","templatestring","noRecord","noRecordsTemplate","actionFailureTemplate","l10n","L10n","locale","getConstant","compile","content","tempEle","select","outerHTML","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","parseFloat","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","inputValue_1","customFiltering_1","eventArgs_1","showPopup","allowFiltering","preventDefaultAction","updateData","filterAction","updateInputValue","inputValue","_b","totaldata","_c","filterDatas","exactData","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","isQuery","filterType","updateGridDataSource","filteringHandler","filterData","dataLength","itemValue","endsWith","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","unWireEvents","remove","destroy","preventDefault","focusedEle","closest","focusOut","isClearVal","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","split","action","updateSelectedItem","isGroup","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","remoteDataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","popup","animation","name","duration","groupIndex_1","activeRow","firstRow","aria-owns","aria-controls","getRowsObject","items","contentEle","show","Animation","removeAttribute","addItems","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","options","gridInject"],"mappings":"6hBACQA,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBG,OAAOC,iBAClB,CAAEC,UAAW,cAAgBC,MAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,GACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,CAAC,IAAGN,EAAEM,GAAKL,EAAEK,OACpDN,EAAGC,CAAC,GALjC,IACQF,EADJS,EAOO,SAAUR,EAAGC,GAEhB,SAASQ,IAAOC,KAAKC,YAAcX,EADnCD,EAAcC,EAAGC,CAAC,EAElBD,EAAEY,UAAkB,OAANX,EAAaC,OAAOW,OAAOZ,CAAC,GAAKQ,EAAGG,UAAYX,EAAEW,UAAW,IAAIH,IAGnFK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HlB,EAAvHmB,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOhB,OAAOqB,yBAAyBP,EAAQC,CAAG,EAAIC,EACrH,GAAuB,UAAnB,OAAOM,SAAoD,YAA5B,OAAOA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASV,EAAYC,EAAQC,EAAKC,CAAI,OACxH,IAAK,IAAIQ,EAAIX,EAAWM,OAAS,EAAQ,GAALK,EAAQA,CAAC,IAAQ1B,EAAIe,EAAWW,MAAIJ,GAAKH,EAAI,EAAInB,EAAEsB,CAAC,EAAQ,EAAJH,EAAQnB,EAAEgB,EAAQC,EAAKK,CAAC,EAAItB,EAAEgB,EAAQC,CAAG,IAAMK,GAChJ,OAAW,EAAJH,GAASG,GAAKpB,OAAOyB,eAAeX,EAAQC,EAAKK,CAAC,EAAGA,CAChE,EACIM,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,EAAAA,GAAUE,SAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,CAAK,CAAC,EAAK,MAAOG,GAAKL,EAAOK,CAAC,GACrF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,CAAK,CAAC,EAAK,MAAOG,GAAKL,EAAOK,CAAC,GACxF,SAASF,EAAKI,GAAUA,EAAOC,KAAOT,EAAQQ,EAAOL,KAAK,EAAI,IAAIN,EAAE,SAAUG,GAAWA,EAAQQ,EAAOL,KAAK,EAAI,EAAEO,KAAKR,EAAWK,CAAQ,EAC3IH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,EAAE,GAAGS,MAAM,EACvE,CACL,EACIO,EAA4C,SAAUjB,EAASkB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAxGC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPH,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOI,KAAM,GAAIC,IAAK,IACzFC,EAAI,CAAEjB,KAAMkB,EAAK,CAAC,EAAGC,MAASD,EAAK,CAAC,EAAGE,OAAUF,EAAK,CAAC,GAA9D,MAAqF,YAAlB,OAAOG,SAA0BJ,EAAEI,OAAOC,UAAY,WAAa,OAAOnD,OAAU8C,EACvJ,SAASC,EAAKK,GAAK,OAAO,SAAUC,GAAYzB,IAClC0B,EADuC,CAACF,EAAGC,GAErD,GAAIf,EAAG,MAAM,IAAIiB,UAAU,iCAAiC,EAC5D,KAAOd,GAAG,IACN,GAAIH,EAAI,EAAGC,IAAMC,EAAY,EAARc,EAAG,GAASf,EAAU,OAAIe,EAAG,GAAKf,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEgB,KAAKjB,CAAC,EAAG,GAAKA,EAAEV,OAAS,EAAEW,EAAIA,EAAEgB,KAAKjB,EAAGe,EAAG,EAAE,GAAGrB,KAAM,OAAOO,EAE3J,OADID,EAAI,GAAMe,EAAHd,EAAQ,CAAS,EAARc,EAAG,GAAQd,EAAEb,OACzB2B,GAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXb,EAAEC,KAAK,GAAW,CAAEf,MAAO2B,EAAG,GAAIrB,KAAM,CAAA,GAChD,KAAK,EAAGQ,EAAEC,KAAK,GAAIH,EAAIe,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKb,EAAEI,IAAIY,MAAOhB,EAAEG,KAAKa,MAAO,SACxC,QACI,GAAI,EAAcjB,EAAe,GAA3BA,EAAIC,EAAEG,MAAYjC,QAAc6B,EAAEA,EAAE7B,OAAS,MAAkB,IAAV2C,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEb,EAAI,EAAG,SACjG,GAAc,IAAVa,EAAG,KAAa,CAACd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAQC,EAAEC,MAAQY,EAAG,QAC1E,GAAc,IAAVA,EAAG,IAAYb,EAAEC,MAAQF,EAAE,GAAMC,EAAEC,MAAQF,EAAE,GAAIA,EAAIc,MAAzD,CACA,GAAId,EAAAA,GAAKC,EAAEC,MAAQF,EAAE,IAArB,CACIA,EAAE,IAAIC,EAAEI,IAAIY,MAChBhB,EAAEG,KAAKa,MAAO,SAFahB,EAAEC,MAAQF,EAAE,GAAIC,EAAEI,IAAIa,KAAKJ,CAAE,GAIhEA,EAAKjB,EAAKmB,KAAKrC,EAASsB,CAAC,EAC3B,MAAOX,GAAKwB,EAAK,CAAC,EAAGxB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3B,MAAO2B,EAAG,GAAKA,EAAG,GAAK,KAAA,EAAQrB,KAAM,CAAA,IAElF,EAUI0B,EAAgB,cAChBC,EAAS,WACTC,EAAW,aACXC,EAAa,gBACbC,EAAkB,qBAClBC,EAAkB,qBAClBC,GASAA,EAAgB/D,UAAUgE,cAAgB,WACtCC,OAAKC,OAAOC,gBAAeC,QAAWC,OAAMC,OAAMC,QAAM,GAErDR,GAXP,SAASA,MAkBFS,EAaRA,eAAeA,aAAa,KATJ,WAAI,aAI3BA,EAAqB,SAAI,WAIzBA,EAAqB,SAAI,YAMlBC,EAaRA,cAAcA,YAAY,KATT,KAAI,OAIpBA,EAAqB,UAAI,YAIzBA,EAAsB,WAAI,cAMnBC,EASRA,aAAaA,WAAW,KALH,UAAI,YAIxBA,EAA0B,gBAAI,mBAMvBC,EAaRA,aAAaA,WAAW,KATR,KAAI,OAInBA,EAAkB,QAAI,UAItBA,EAAiB,OAAI,SAKoBC,EAe3CC,gBAdEjF,EAAUkF,EAAeF,CAAM,EAI/B1E,EAAW,CACP6E,cACDD,EAAc9E,UAAW,OAAQ,KAAA,CAAM,EAC1CE,EAAW,CACP6E,cACDD,EAAc9E,UAAW,QAAS,KAAA,CAAM,EAC3CE,EAAW,CACP6E,cACDD,EAAc9E,UAAW,UAAW,KAAA,CAAM,MAbJ4E,EAAzCE,EAcOA,EAZP,SAASA,IACL,OAAkB,OAAXF,GAAmBA,EAAO3C,MAAMnC,KAAMU,SAAS,GAAKV,KAiB7B8E,EAiCpCC,gBAhCEjF,EAAUoF,EAAQJ,CAAM,EAIxB1E,EAAW,CACP6E,WAAS,EAAE,GACZC,EAAOhF,UAAW,QAAS,KAAA,CAAM,EACpCE,EAAW,CACP6E,WAAS,EAAE,GACZC,EAAOhF,UAAW,SAAU,KAAA,CAAM,EACrCE,EAAW,CACP6E,WAAS,EAAE,GACZC,EAAOhF,UAAW,QAAS,KAAA,CAAM,EACpCE,EAAW,CACP6E,WAAS,EAAE,GACZC,EAAOhF,UAAW,YAAa,KAAA,CAAM,EACxCE,EAAW,CACP6E,WAAS,IAAI,GACdC,EAAOhF,UAAW,SAAU,KAAA,CAAM,EACrCE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfC,EAAOhF,UAAW,oBAAqB,KAAA,CAAM,EAChDE,EAAW,CACP6E,WAAS,IAAI,GACdC,EAAOhF,UAAW,WAAY,KAAA,CAAM,EACvCE,EAAW,CACP6E,WAAS,IAAI,GACdC,EAAOhF,UAAW,iBAAkB,KAAA,CAAM,EAC7CE,EAAW,CACP6E,WAAS,IAAI,GACdC,EAAOhF,UAAW,mBAAoB,KAAA,CAAM,MA/Bb4E,EAAlCI,EAgCOA,EA9BP,SAASA,IACL,OAAkB,OAAXJ,GAAmBA,EAAO3C,MAAMnC,KAAMU,SAAS,GAAKV,KAmCvB8E,EAiC1CC,gBAhCEjF,EAAUqF,EAAcL,CAAM,EAI9B1E,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfE,EAAajF,UAAW,eAAgB,KAAA,CAAM,EACjDE,EAAW,CACP6E,WAAS,IAAI,GACdE,EAAajF,UAAW,YAAa,KAAA,CAAM,EAC9CE,EAAW,CACP6E,WAAS,SAAS,GACnBE,EAAajF,UAAW,YAAa,KAAA,CAAM,EAC9CE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfE,EAAajF,UAAW,gBAAiB,KAAA,CAAM,EAClDE,EAAW,CACP6E,WAASJ,WAASO,IAAI,GACvBD,EAAajF,UAAW,eAAgB,KAAA,CAAM,EACjDE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfE,EAAajF,UAAW,gBAAiB,KAAA,CAAM,EAClDE,EAAW,CACPiF,WACDF,EAAajF,UAAW,WAAY,KAAA,CAAM,EAC7CE,EAAW,CACPiF,WACDF,EAAajF,UAAW,cAAe,KAAA,CAAM,EAChDE,EAAW,CACPiF,WACDF,EAAajF,UAAW,aAAc,KAAA,CAAM,MA/BP4E,EAAxCK,EAgCOA,EA9BP,SAASA,IACL,OAAkB,OAAXL,GAAmBA,EAAO3C,MAAMnC,KAAMU,SAAS,GAAKV,KA4ChB8E,EAmrDjDQ,YAlrDExF,EAAUyF,EAAqBT,CAAM,EAoBrCS,EAAoBrF,UAAUsF,UAAY,WACjCxF,KAAKyF,QAAQC,KACd1F,KAAKyF,QAAQC,GAAKC,cAAY,KAAO3F,KAAK4F,eAAe,GAE7D5F,KAAK6F,WAAa,CACdC,OAAQ,SACRC,MAAO,cACPC,QAAS,gBACTC,IAAK,MACLC,SAAU,YACVC,IAAK,MACLC,MAAO,QACPC,KAAM,OACNC,SAAU,YACVC,OAAQ,WAEZvG,KAAKwG,cAAgBxG,KAAKyG,eAAiBzG,KAAK0G,oBAAsB,KACtE1G,KAAK2G,eAETpB,EAAoBrF,UAAU0G,aAAe,WACzC,MAAO,2BAQXrB,EAAoBrF,UAAU0F,cAAgB,WAC1C,MAAO,uBAQXL,EAAoBrF,UAAU2G,eAAiB,WAC3C,OAAO7G,KAAK8G,aAAa,CAAC,QAAQ,GAEtCvB,EAAoBrF,UAAUyG,YAAc,WACxC,IAEQI,EAFJ/G,KAAKgH,oBACLhH,KAAKyF,QAAQC,IAAM,WACfqB,EAAOE,OAAOC,aAAaC,QAAQnH,KAAK4F,gBAAkB5F,KAAKyF,QAAQC,EAAE,EACvE0B,oBAAML,CAAI,GAAe,KAATA,GAClB/G,KAAKqH,cAAcC,KAAKC,MAAMR,CAAI,EAAG,CAAA,CAAI,IAIrDxB,EAAoBrF,UAAUsH,OAAS,WACnCxH,KAAKyH,aACLzH,KAAK0H,cACL1H,KAAK2H,SAAW3H,KAAK4H,cAAc,MAAO,CAAEC,UA/QtC,kBA+Q0D,EAChE7H,KAAK2H,SAASG,YAAY9H,KAAK+H,OAAO,EACtC/H,KAAKgI,oBACLhI,KAAKiI,cACLjI,KAAKkI,cAET3C,EAAoBrF,UAAUuH,WAAa,WACvC,IAAIU,EAAQnI,KACRoI,EAAcpI,KAAKqI,iBACnBC,EAAYtI,KAAKsI,UAAUC,WAAWC,cAC1CxI,KAAKyI,QAAU,IAAItE,OAAK,CACpBuE,WAAY1I,KAAK0I,WACjBC,QAASP,EACTQ,aAAc5I,KAAK4I,aACnBC,mBAAoB,CAAA,EACpBC,UAAW9I,KAAK+I,aAAaD,UAC7BE,UAAWhJ,KAAK+I,aAAaC,UAC7BC,aAAcjJ,KAAK+I,aAAaE,aAChCC,qBAAsBlJ,KAAKkJ,qBAC3BC,UAAWnJ,KAAKmJ,UAChBC,aAAc,CAAEC,YAAa,CAAA,GAC7BC,MAAOtJ,KAAKsJ,MACZC,cAAevJ,KAAK+I,aAAaQ,cACjCC,iBAAkB,CAAEC,SAAUzJ,KAAK+I,aAAaW,cAChDC,OAAQ3J,KAAK4J,YACbC,cAAe7J,KAAK+I,aAAac,cACjCC,kBAA8D,oBAA3C9J,KAAK+J,SAASxB,WAAWC,eAAuCxI,KAAK4I,aACxFoB,YAAahK,KAAKiK,aAClBC,UAAW,WAAc/B,EAAMgC,eAC/BC,cAAe,SAAUC,GAAQlC,EAAMmC,gBAAgBD,CAAI,GAC3DE,YAAa,SAAUF,GAAQlC,EAAMqC,QAAQ,cAAeH,CAAI,GAChEI,eAAgBzK,KAAK0K,qBAAqBC,KAAK3K,IAAI,EACnD4K,WAAY5K,KAAK6K,iBAAiBF,KAAK3K,IAAI,EAC3C8K,SAAU,SAAUT,GACZlC,EAAMY,aAAa+B,UACnB3C,EAAMY,aAAa+B,SAAStH,KAAK2E,EAAOkC,CAAI,GAGpDU,YAAa,SAAUV,GACflC,EAAMY,aAAagC,aACnB5C,EAAMY,aAAagC,YAAYvH,KAAK2E,EAAOkC,CAAI,GAGvDW,WAAY,SAAUX,GACdlC,EAAMY,aAAaiC,YACnB7C,EAAMY,aAAaiC,WAAWxH,KAAK2E,EAAOkC,CAAI,GAGzD,EACDrK,KAAK+H,QAAU/H,KAAK4H,cAAc,MAAO,CAAElC,GAAIC,cAAY,MAAM,EAAGkC,UAAW7D,EAAiB,EAChGhE,KAAKiL,qBACoB,EAArB7C,EAAYzH,SAEZX,KAAKyI,QAAQE,QAAQ,GAAGuC,aAAe,CAAA,GAEzB,SAAd5C,IACAtI,KAAKyI,QAAQ0C,aAAe,CAAExC,QAAS,CAAC,CAAEyC,MAAOpL,KAAKqL,OAAOC,KAAMC,UAAyB,cAAdjD,EAC9D3D,YAAU6G,UAAY7G,YAAU8G,eAEpDzL,KAAKyI,QAAQiD,SAAS1L,KAAK+H,OAAO,GAEtCxC,EAAoBrF,UAAUwK,qBAAuB,SAAUL,GAC3DrK,KAAKwK,QAAQ,iBAAkBH,CAAI,EACV,YAArBA,EAAKsB,aACL3L,KAAK4L,mBAAmBvB,CAAI,EAEhCrK,KAAK6L,SAASC,kBACd9L,KAAKyI,QAAQhD,QAAQsG,cAAc,YAAY,EAAEC,UAAY,GAEjEzG,EAAoBrF,UAAU2K,iBAAmB,SAAUR,GACtC,UAAbA,EAAK9J,MAEL8J,EAAK4B,OAAS,CAAA,EACVjM,KAAKkM,eACLlM,KAAKmM,gBAAgBnM,KAAKyI,QAAQ2D,UAAUpM,KAAKyI,QAAQ4D,kBAAmBhC,EAAM,CAAA,CAAI,EACtFrK,KAAKsM,UAAUjC,CAAI,EACnBrK,KAAKuM,QAAQlC,CAAI,GAGrBrK,KAAKqL,OAAOmB,UAEZnC,EAAK4B,OAAS,CAAA,EACdjM,KAAKyM,qBAAqBpC,EAAM,CAAA,CAAI,IAI5C9E,EAAoBrF,UAAUwM,cAAgB,SAAU3F,EAAM4F,EAAeC,GACvD,SAAdC,EAAwB9F,GACxB,IAAI/E,EAAS,GAYb,OAXI+E,GAAwB,UAAhB,OAAOA,EACXpH,MAAMmN,QAAQ/F,CAAI,EAClBA,EAAKgG,QAAQ,SAAUC,GAAQ,OAAOhL,EAAO0B,KAAKvB,MAAMH,EAAQ6K,EAAYG,CAAI,CAAC,EAAI,EAGrFxN,OAAOyN,KAAKlG,CAAI,EAAEgG,QAAQ,SAAUxM,GAAO,OAAOyB,EAAO0B,KAAKvB,MAAMH,EAAQ6K,EAAY9F,EAAK,GAAKxG,EAAI,CAAC,EAAI,EAGlG,MAARwG,GACL/E,EAAO0B,KAAKwJ,OAAOnG,CAAI,CAAC,EAErB/E,EAEPmL,EAAkBN,EAAY9F,CAAI,EACtC,MAAmD,CAAC,IAA5CoG,EAAgBC,QAAQT,CAAa,GAAsD,CAAC,IAA3CQ,EAAgBC,QAAQR,CAAY,GAEjGrH,EAAoBrF,UAAU0L,mBAAqB,SAAUvB,GACzD,IAAIlC,EAAQnI,KACRqK,GACeA,EAAKgD,KACXN,QAAQ,SAAUO,GACvBnF,EAAMoF,cAAcD,EAAIvG,KAAMuG,EAAIE,KAAK,EAC1C,GAGTjI,EAAoBrF,UAAUqN,cAAgB,SAAUxG,EAAMyG,GAC1CxN,KAAK0M,cAAc3F,EAAM/G,KAAK2B,MAC1C3B,KAAK2B,MAAM4G,WAAa,GAAIvI,KAAKsL,KAAOtL,KAAKsL,KAAK/C,WAAa,EAAE,IAEjEvI,KAAKyI,QAAQgF,UAAUD,CAAK,EACxBE,EAAe1N,KAAK2N,oBACxB3N,KAAK2N,oBAAsB,CAAA,EAC3B3N,KAAKwN,MAAQA,EACbxN,KAAK2N,oBAAsBD,IAInCnI,EAAoBrF,UAAU0N,UAAY,SAAUC,EAAKC,GACrD,OAAOD,EAAID,UAAU,SAAUZ,GAE3B,OAAOxN,OAAOyN,KAAKa,CAAG,EAAEC,MAAM,SAAUxN,GAAO,OAAOyM,EAAKzM,KAASuN,EAAIvN,GAAO,EAClF,GAELgF,EAAoBrF,UAAUmI,eAAiB,WAC3C,IAAIF,EAAQnI,KACZ,OAAOA,KAAK2I,QAAQqF,IAAI,SAAUC,GAC9B,IAAI7C,EAAQ6C,EAAG7C,MAAO8C,EAASD,EAAGC,OAAQC,EAAQF,EAAGE,MAAOC,EAAYH,EAAGG,UAAWC,EAASJ,EAAGI,OAAQC,EAAoBL,EAAGK,kBAAmBC,EAAWN,EAAGM,SAAUC,EAAiBP,EAAGO,eAAgBC,EAAmBR,EAAGQ,iBACtO,OACIrD,MAAOA,EACPsD,WAAYR,EACZC,MAAOA,EACPC,UAAoC,KAAzBA,EAAU7F,YAAqBJ,EAAMgB,UAAY,QAAUiF,EACtEC,OAAQA,EACRC,kBAAmBA,EACnBC,SAAUA,EACVC,eAAgBA,EAChBC,iBAAkBA,EAClBE,KAAML,GAAqB,CAACD,EAAS,UAAYO,KAAAA,CACpD,EACJ,GAELrJ,EAAoBrF,UAAU+K,mBAAqB,WAC/C,IAMQyC,EANJmB,EAAe7O,KAAKqL,OAAOmB,QAC3BsC,EAAkC,KAAjBD,GAAuB,CAACzH,oBAAMyH,CAAY,EAC3DC,IAC+C,oBAA3C9O,KAAK+J,SAASxB,WAAWC,eACzBxI,KAAK+H,QAAQgH,UAAUC,IAAI,qBAAqB,EAEhDtB,EAAe1N,KAAK2N,oBACxB3N,KAAK2N,oBAAsB,CAAA,EAC3B3N,KAAKyI,QAAQwG,cAAgB,CAAA,EAC7BjP,KAAKyI,QAAQyG,cAAgB,CACzBC,aAAc,CAAA,EACdxG,QAAS,CAACkG,IAEV7O,KAAKoP,eAAiBN,IACtB9O,KAAKyI,QAAQyG,cAAcG,gBAAkBrP,KAAKoP,eAElDpP,KAAKsP,QACLtP,KAAKyI,QAAQ6G,MAAQtP,KAAKsP,OAE9BtP,KAAK2N,oBAAsBD,IAGnCnI,EAAoBrF,UAAUiK,YAAc,WACxC,IAAIoF,EAAYvP,KAAK0I,WAAW/H,OAC5B6O,EAAaxP,KAAK2H,SAASoE,cAAc,IAAM/H,CAAe,EAC9DyL,EAAiBzP,KAAK2H,SAASoH,UAAUW,SAAS9L,CAAM,EAuBxD+L,GAtBAJ,GAAa,GAAKC,GAClBxP,KAAK4P,aACL5P,KAAK2H,SAASkI,YAAY7P,KAAK+H,OAAO,EACtC+H,WAAS,CAAC9P,KAAK2H,UAAW,CAAC/D,EAAO,GAE7B6L,GAA+B,GAAbF,IACvBQ,cAAY,CAAC/P,KAAK2H,UAAW,CAAC/D,EAAO,EACjCoM,EAAchQ,KAAK2H,SAASoE,cAAc,eAAe,IAEzD/L,KAAK2H,SAASkI,YAAYG,CAAW,EAGzChQ,KAAKiQ,kBACDC,EAAiBlQ,KAAK2H,SAASoE,cAAc,mBAAmB,EAChE/C,EAAayG,EAEbzP,KAAK2H,SAASwI,wBAAwBxG,OAFRuG,EAC9BA,EAAeC,wBAAwBxG,OAAS,EAEpD3J,KAAKoQ,eAAiBpH,EACtBhJ,KAAK6L,SAASwE,OACdrQ,KAAKsQ,SAASC,MAAMC,WAAa,QACjCxQ,KAAKiQ,gBAAkB,CAAA,GAETjQ,KAAKyI,QAAQhD,QAAQgL,iBAAiB,QAAQ,GAC5DzQ,KAAK0Q,gBAAuC,EAArBf,EAAYhP,QAAsC,KAAxBX,KAAK2Q,SAAShP,OAC7CgO,EAAY,GAClBZ,UAAUC,IAAI,aAAa,GAG/CzJ,EAAoBrF,UAAUoK,gBAAkB,SAAUD,GACtDrK,KAAKwK,QAAQ,gBAAiBH,CAAI,EAClCrK,KAAK4P,WAAW,CAAA,CAAI,EACpBE,WAAS,CAAC9P,KAAK2H,UAAW,CAAC/D,EAAO,GAEtC2B,EAAoBrF,UAAUwH,YAAc,WACxC,IAAIkJ,EAAoB,CAAC,gBAAiB,gBAAiB,gBAAiB,eACxE,iBAAkB,aAAc,YASpC,GAA6B,UAAzB5Q,KAAKyF,QAAQoL,QAAqB,CAClC7Q,KAAK2Q,SAAW3Q,KAAKyF,QACjB2B,oBAAMpH,KAAK2Q,SAASG,aAAa,MAAM,CAAC,GACxC9Q,KAAK2Q,SAASI,aAAa,OAAQ,UAAU,EAE7C3J,oBAAMpH,KAAK2Q,SAASG,aAAa,MAAM,CAAC,GACxC9Q,KAAK2Q,SAASI,aAAa,OAAQ,MAAM,EAE7CC,IAfSzQ,EADiBkF,EAgBZzF,KAAK2Q,SAhBgBM,EAgBN,CACzBC,gBAAiB,QACjBC,gBAAiBnR,KAAKoR,SAAS7I,WAC/B8I,gBAAiBrR,KAAKsR,SAAS/I,WAC/BgJ,aAAc,MACdC,eAAgB,MAChBC,WAAY,QACZC,SAAU,KAtBd,IAASnR,KAAO0Q,EAERA,EAAWpR,eAAeU,CAAG,GAAwC,CAAC,IAApCqQ,EAAkBxD,QAAQ7M,CAAG,GAAY6G,oBAAM3B,EAAQqL,aAAavQ,CAAG,CAAC,GAC1GkF,EAAQsL,aAAaxQ,EAAK0Q,EAAW1Q,EAAI,OAuBjDP,KAAK2Q,SAAW3Q,KAAK4H,cAAc,QAAS,CAAE+J,MAAO,CAAEC,KAAM,UAAWjD,KAAM,QAAU,EACxF3O,KAAKyF,QAAQoM,cAAcC,aAAa9R,KAAK2Q,SAAU3Q,KAAKyF,OAAO,EAEvEzF,KAAK+R,SAAWC,QAAMC,YAAY,CAC9BxM,QAASzF,KAAK2Q,SACduB,QAAS,CArgBF,sDAsgBPC,eAAgBnS,KAAKmS,eACrBC,WAAY,CACRC,QAAS,CAACrS,KAAKsR,SACfF,SAAUpR,KAAKoR,SACfkB,YAAatS,KAAKsS,YAClBnJ,UAAWnJ,KAAKmJ,UAChBoJ,gBAAiBvS,KAAKuS,gBACtBC,SAAUxS,KAAKwS,WAEpBxS,KAAK4H,aAAa,EACrB5H,KAAKyS,aAAezS,KAAK+R,SAASW,UAClC1S,KAAKyS,aAAa1D,UAAUC,IAAIjL,CAAe,EAC/C/D,KAAKyS,aAAa1B,aAAa,aAAc,OAAO,EAChD/Q,KAAKyF,QAAQoL,UAAY7Q,KAAK4G,gBAC9B5G,KAAKyF,QAAQqC,YAAY9H,KAAKyS,YAAY,EAE9CzS,KAAK2S,gBAAgB3S,KAAKmO,KAAK,EAC1B/G,oBAAMpH,KAAK2B,KAAK,GAAMyF,oBAAMpH,KAAKsL,IAAI,GAAMlE,oBAAMpH,KAAKwN,KAAK,GAC5DxN,KAAK4S,UAAU,KAAM,KAAM,CAAA,CAAI,GAGvCrN,EAAoBrF,UAAUyS,gBAAkB,SAAUE,GACtD,IAGIC,EAHA1L,oBAAMyL,CAAU,IAGhBC,EAAY9S,KAAKyS,aACK,UAAtB,OAAOI,EACPC,EAAUvC,MAAMpC,MAAQ4E,aAAWF,CAAU,EAElB,UAAtB,OAAOA,IACZC,EAAUvC,MAAMpC,MAAQ0E,EAAWG,MAAM,SAAS,EAAIH,EAAaE,aAAWF,CAAU,KAGhGtN,EAAoBrF,UAAU8H,kBAAoB,WAC9C,IAAIiL,EAAiBjT,KAAKiT,eACtBtC,EAAW3Q,KAAK2Q,SACpB,GAAInR,OAAOyN,KAAKgG,CAAc,EAAEtS,OAC5B,IAAK,IAAIuS,EAAK,EAAGjF,EAAKzO,OAAOyN,KAAKgG,CAAc,EAAGC,EAAKjF,EAAGtN,OAAQuS,CAAE,GAAI,CACrE,IAAIC,EAAWlF,EAAGiF,GAClB,OAAQC,GACJ,IAAK,QACDnT,KAAKyS,aAAa1D,UAAUC,IAAIiE,EAAeE,EAAS,EACxD,MACJ,IAAK,WACDnT,KAAKqH,cAAc,CAAEgL,QAAS,CAAA,GAAS,CAAA,CAAI,EAC3CrS,KAAKoT,YACL,MACJ,IAAK,WACDpT,KAAKqH,cAAc,CAAE+J,SAAU,CAAA,GAAQ,CAAA,CAAI,EAC3CpR,KAAKqT,WACL,MACJ,IAAK,QACDrT,KAAKyS,aAAa1B,aAAa,QAASkC,EAAeE,EAAS,EAChE,MACJ,QAEwC,CAAC,EADnB,CAAC,QAAS,KAAM,cAAe,OAAQ,eAAgB,iBAAkB,aAAc,YAAa,aACtG/F,QAAQ+F,CAAQ,GACX,gBAAbA,EACAnB,QAAMsB,eAAeL,EAAeE,GAAWxC,CAAQ,EAO3DA,EAASI,aAAaoC,EAAUF,EAAeE,EAAS,KAShF5N,EAAoBrF,UAAUkT,UAAY,WACtCpB,QAAMuB,WAAW,CAACvT,KAAKsR,SAAUtR,KAAK2Q,QAAQ,EACzC3Q,KAAKsR,UAKFtR,KAAKkM,aACLlM,KAAKsM,YAETwD,WAAS,CAAC9P,KAAKyS,cAAe5O,CAAQ,EAClC7D,KAAKyS,cAAgBzS,KAAKyS,aAAa1D,UAAUW,SAAS5L,CAAU,GACpEiM,cAAY,CAAC/P,KAAKyS,cAAe,CAAC3O,EAAW,EAEjD9D,KAAKwT,gBAAgB,MAAM,IAX3BzD,cAAY,CAAC/P,KAAKyS,cAAe5O,CAAQ,EACzC7D,KAAKwT,gBAAgB,OAAO,IAapCjO,EAAoBrF,UAAUsT,gBAAkB,SAAU7R,GACtD3B,KAAK2Q,SAASI,aAAa,gBAAiBpP,CAAK,EACjD3B,KAAKyS,aAAa1B,aAAa,gBAAiBpP,CAAK,GAEzD4D,EAAoBrF,UAAUuT,iBAAmB,SAAUC,EAAYC,GAEnE,OADeC,WAASF,EAAYC,CAAO,EAAEpL,YAGjDhD,EAAoBrF,UAAU0S,UAAY,SAAUiB,EAAYC,EAASC,GAYlD,SAAfC,EAAyBC,GACrBjS,EAASmG,EAAM+L,oBAAoBlH,EAAMiH,CAAQ,EACrDE,EAAenS,EAAOmS,aACtBC,EAAcpS,EAAOoS,YACrBC,EAAerS,EAAOqS,aAf1B,IAGIrH,EACAmH,EACAC,EACAC,EAYIC,EAlBJnM,EAAQnI,KACRuU,EAAevU,KAAKyI,QAAQ+L,qBAAqB,GACjDC,EAAczU,KAAKyI,QAAQiM,kBAAkB,GAK7ChH,EAAe1N,KAAK2N,oBACxB3N,KAAK2N,oBAAsB,CAAA,EAC3B3N,KAAK2B,MAAQ3B,KAAK2B,OAAQ3B,KAAK2B,MAAM4G,WACrCvI,KAAK2N,oBAAsBD,EAOtB,CAACmG,IAAe,CAACzM,oBAAMpH,KAAK2B,KAAK,GAAK,CAACyF,oBAAMpH,KAAKsL,IAAI,IAAQuI,GAA0BjF,KAAAA,IAAZkF,GACzEQ,EAAUT,EAAcC,EAAU9T,KAAK2B,MAAQ3B,KAAKsL,KAAUlE,oBAAMpH,KAAK2B,KAAK,EAAiB3B,KAAKsL,KAAlBtL,KAAK2B,MACvF,CAACyF,oBAAMpH,KAAK0I,UAAU,GAAK1I,KAAK0I,sBAAsBiM,cACtD3U,KAAK0I,WAAWkM,aAAa,IAAIC,OAAK,EAAE3S,KAAK,SAAUJ,GAEnD,IAAIgT,EAAYhT,EAAEE,OACd+S,EAAeD,EAAUE,OAAO,SAAUhI,GAG1C,OAFe7E,EAAMsL,iBAAiBI,EAAcC,EAAU3L,EAAMkD,OAAO1J,MAAQwG,EAAMkD,OAAOC,KAC3FlE,oBAAMe,EAAMxG,KAAK,EAAyBwG,EAAMkD,OAAOC,KAAlCnD,EAAMkD,OAAO1J,MAA2BqL,CAAI,IAClDsH,EACvB,EACyB,EAAtBS,EAAapU,SACbqM,EAAO+H,EAAa,GACpBf,EAAac,CAAS,EACtB3M,EAAM8M,kBAAkBjI,EAAMuH,EAAcE,EAAaN,EAAcC,EAAaC,EAAcR,EAAYE,CAAS,EACvH5L,EAAMM,QAAQgF,UAAUtF,EAAMqF,KAAK,GAE1C,EAEI,CAACpG,oBAAMpH,KAAK0I,UAAU,GAAK1I,KAAK0I,sBAAsB/I,QAC3DqN,EAAOhN,KAAK0I,WAAWsM,OAAO,SAAUjO,GAGpC,OAFeoB,EAAMsL,iBAAiBI,EAAcC,EAAU3L,EAAMkD,OAAO1J,MAAQwG,EAAMkD,OAAOC,KAC3FlE,oBAAMe,EAAMxG,KAAK,EAAyBwG,EAAMkD,OAAOC,KAAlCnD,EAAMkD,OAAO1J,MAA2BoF,CAAI,IAClDuN,EACvB,EAAE,GACHN,EAAahU,KAAK0I,UAAU,IAG1BtB,oBAAMpH,KAAKwN,KAAK,IAClB,CAACpG,oBAAMpH,KAAK0I,UAAU,GAAK1I,KAAK0I,sBAAsBiM,cACtD3U,KAAK0I,WAAWkM,aAAa,IAAIC,OAAK,EAAE3S,KAAK,SAAUJ,GAE/CgT,EAAYhT,EAAEE,OAClBgL,EAAO8H,EAAU3M,EAAMqF,OACvBwG,EAAac,CAAS,EACtB3M,EAAM8M,kBAAkBjI,EAAMuH,EAAcE,EAAaN,EAAcC,EAAaC,EAAcR,EAAYE,CAAS,EACvH5L,EAAMM,QAAQgF,UAAUtF,EAAMqF,KAAK,EACtC,EAEI,CAACpG,oBAAMpH,KAAK0I,UAAU,GAAK1I,KAAK0I,sBAAsB/I,QACtDK,KAAKqL,OAAOmB,QAKb0I,WAAW,WACP,IAAI7H,EAAOlF,EAAMM,QAAQ2D,UACzB,GAAIiB,GAAsB,EAAdA,EAAK1M,OAGb,IAFA,IAAIwU,EAAUhN,EAAMM,QAAQ2M,WAAW/H,EAAKlF,EAAMqF,MAAM,EAAE2H,QACtDxT,EAAQwG,EAAMkD,OAAO1J,MAChBX,EAAI,EAAGA,EAAIqM,EAAK1M,OAAQK,CAAC,GAC9B,GAAImU,GAAWA,EAAQE,SAAS1T,EAAM4G,WAAY,EAAE,KAChDJ,EAAMO,WAAW2M,SAASrU,EAAEuH,WAAY,EAAE,GAAG8M,SAAS1T,EAAM4G,WAAY,EAAE,GAAI,CAC9EyE,EAAOmI,EACPnB,EAAa7L,EAAMO,UAAU,EAC7BP,EAAM8M,kBAAkBjI,EAAMuH,EAAcE,EAAaN,EAAcC,EAAaC,EAAcR,EAAYE,CAAS,EACvH5L,EAAMM,QAAQgF,UAAUtF,EAAMqF,KAAK,EACnC,OAIf,GApBDR,EAAOhN,KAAK0I,WAAW1I,KAAKwN,OAC5BwG,EAAahU,KAAK0I,UAAU,KAuBlC1I,KAAK0I,sBAAsBiM,eAC7B3U,KAAKiV,kBAAkBjI,EAAMuH,EAAcE,EAAaN,EAAcC,EAAaC,EAAcR,EAAYE,CAAS,GAG9HxO,EAAoBrF,UAAU+U,kBAAoB,SAAUjI,EAAMuH,EAAcE,EAAaN,EAAcC,EAAaC,EAAcR,EAAYE,GAC9I,IAAIL,EAAa1G,EAAOhN,KAAKyT,iBAAiBzT,KAAKqL,OAAO1J,MAAOqL,CAAI,EAAI,KACrEsI,EAAkB,CAClB3T,MAAOqL,EAAO0G,EAAa,KAC3B6B,SAAU,CAAEjK,KAAM8I,EAAazS,MAAOwS,GACtCnH,KAAMhN,KAAKwV,eAAexV,KAAK2B,KAAK,EACpC8T,iBAAkBlB,EAClBmB,oBAAqBjB,EACrBkB,YAAa3V,KAAKyS,aAClBmD,MAAO,KACPC,aAAc,CAAChC,GAEnB7T,KAAKgU,aAAaG,EAAcC,EAAaC,EAAciB,EAAiBvB,CAAS,GAEzFxO,EAAoBrF,UAAUgU,oBAAsB,SAAUlH,EAAMiH,GAChE,IACQ6B,EACApC,EAFR,OAAKtM,oBAAM4F,CAAI,EAUR,CACHmH,aAAc,KACdC,YAAa,KACbC,aAAc,OAZVyB,EAAY9V,KAAKyT,iBAAiBzT,KAAKqL,OAAOC,KAAM0B,CAAI,EACxD0G,EAAa1T,KAAKyT,iBAAiBzT,KAAKqL,OAAO1J,MAAOqL,CAAI,EAC9DgF,QAAM+D,SAASD,EAAW9V,KAAK2Q,SAAU3Q,KAAKmS,eAAgBnS,KAAKuS,eAAe,EAC3E,CACH4B,aAAcT,EACdU,YAAa0B,EACbzB,aAAcJ,EAAS7G,QAAQJ,CAAI,KAS/CzH,EAAoBrF,UAAU+H,YAAc,WACxCjI,KAAKsQ,SAAWtQ,KAAK4H,cAAc,MAAO,CACtClC,GAAI1F,KAAKyF,QAAQC,GAAK,WAAYmC,UAAW9D,EAAkB,aAAiC,OAAlB/D,KAAKwS,SAAoBxS,KAAKwS,SAAW,IAC1H,EACDvB,aAAWjR,KAAKsQ,SAAU,CAAE0F,aAAchW,KAAKyF,QAAQC,GAAIkM,KAAQ,SAAU,EAC7EqE,SAAS5T,KAAKyF,YAAY9H,KAAKsQ,QAAQ,EACvCtQ,KAAKkW,YAAYlW,KAAKsQ,QAAQ,EAC9B6F,UAAQ,CAACnW,KAAK2H,UAAW3H,KAAKsQ,QAAQ,EAClCtQ,KAAKoW,gBACLpW,KAAKqW,oBAET,IAIQ1M,EAJJC,EAAc5J,KAAKsW,QAAQ,CAAA,CAAK,EACpCtW,KAAKsQ,SAASC,MAAMgG,UAAY3M,EAC5B5J,KAAKoW,iBACLpW,KAAKwW,OAASxW,KAAKwW,QAAuBxW,KAAKsQ,SAASvE,cAAc,iBAAiB,EACnFpC,EAAS8M,KAAKC,MAAM1W,KAAKwW,OAAOrG,wBAAwBxG,MAAM,EAClEC,EAAcmJ,aAAWsC,SAASzL,EAAa,EAAE,EAAID,EAAS,IAAI,GAEtE3J,KAAK2H,SAAS4I,MAAMgG,UAAY3M,EAChC5J,KAAK2W,mBACL3W,KAAKsQ,SAASC,MAAMC,WAAa,SACjCxQ,KAAKiQ,gBAAkB,CAAA,GAE3B1K,EAAoBrF,UAAUyW,iBAAmB,SAAUC,EAAUC,EAAYC,GASzEnN,EAPAiN,GAEIG,GADAC,EAAiBhX,KAAKyI,QAAQwO,aAAalL,cAAc,YAAY,GACpCmL,aAAeF,EAAeG,aAC/DC,EAAiBN,EAAkB9W,KAAKoQ,eAChB,KAAxBpQ,KAAKqL,OAAOmB,SAAmBpF,oBAAMpH,KAAKqL,OAAOmB,OAAO,IACxD4K,GAAkBpX,KAAKoQ,gBAElByG,GAAcO,EAAiBpX,KAAKqX,eAAkBD,EAAiBL,EAAmB,KAAqC/W,KAAKqX,eAAiB,OAG9JrX,KAAKqX,eAAiBrX,KAAK2H,SAASwI,wBAAwBxG,OAAS3J,KAAK2H,SAASoE,cAAc,eAAe,EAAEoE,wBAAwBxG,OACjI3J,KAAKqX,eAAiB,MAE/B3J,EAAe1N,KAAK2N,oBACxB3N,KAAK2N,oBAAsB,CAAA,EAC3B3N,KAAKyI,QAAQkB,OAASA,EACtB3J,KAAK2N,oBAAsBD,GAE/BnI,EAAoBrF,UAAUgW,YAAc,SAAUzQ,GAClD,IAAI0C,EAAQnI,KACZA,KAAK6L,SAAW,IAAIyL,QAAM7R,EAAS,CAC/B0I,MAAOnO,KAAKsW,QAAQ,CAAA,CAAI,EACxBiB,WAAY,WACZC,UAAW,CAAEC,EAAG,OAAQC,EAAG,QAC3BC,SAAU3X,KAAKyS,aACftJ,UAAWnJ,KAAKmJ,UAChByO,SAAU,CAAEH,EAAG,OAAQC,EAAG,UAC1BG,mBAAoB,WACXC,UAAQC,UACT5P,EAAMmE,aAGd0L,KAAM,WACF7P,EAAMwI,SAASsH,QACf9P,EAAM+P,wBAEb,GAEL3S,EAAoBrF,UAAUmW,kBAAoB,WAC1CrW,KAAKwW,OAEDxW,KAAKmY,SAA0C,YAA/B,OAAOnY,KAAKoW,eAC5BpW,KAAKoY,cAAc,CAAC,iBAAiB,EAGrCpY,KAAKwW,OAAO6B,UAAY,IAI5BrY,KAAKwW,OAASxW,KAAK4H,cAAc,KAAK,EACtCkI,WAAS,CAAC9P,KAAKwW,QAAS,gBAAgB,GAE5C,IAEI8B,EAFiBtY,KAAKuY,oBAAoBvY,KAAKoW,cAAc,EAEpC,CAAEoC,MADfxY,KAAK0I,WAAW/H,QACmBX,KAAM,iBAAkBA,KAAKyF,QAAQC,GAAK,iBAAkB1F,KAAKyY,iBAAkB7J,KAAAA,EAAW5O,KAAKwW,MAAM,EACxJ8B,IACAA,EAAU3Y,MAAMO,UAAUwY,MAAMlV,KAAK8U,CAAO,EAC5CK,SAAOL,EAAStY,KAAKwW,MAAM,GAE/BmC,SAAO,CAAC3Y,KAAKwW,QAASxW,KAAKsQ,QAAQ,GAEvC/K,EAAoBrF,UAAU0P,WAAa,SAAUxF,GAOjD,IAEQwO,EACAC,EAEAP,EAXJtY,KAAK8Y,SACL9Y,KAAK8Y,SAAST,UAAY,GAG1BrY,KAAK8Y,SAAW9Y,KAAK4H,cAAc,KAAK,EAEb,qBAA3B5H,KAAK+Y,mBAA2E,mBAA/B/Y,KAAKgZ,uBAClDzK,EAAWnE,EAAgBpK,KAAKgZ,sBAAwBhZ,KAAK+Y,kBAC7DH,EAAaxO,EAAgBpK,KAAKyF,QAAQC,GAAK,iBAAmB1F,KAAKyF,QAAQC,GAAK,aACpFmT,EAAiBzO,EAAgB,wBAA0B,qBAE3DkO,EADiBtY,KAAKuY,oBAAoBhK,CAAQ,EACzB,GAAIvO,KAAM6Y,EAAgBD,EAAY5Y,KAAKyY,iBAAkB7J,KAAAA,EAAW5O,KAAK8Y,QAAQ,KAE9GR,EAAU3Y,MAAMO,UAAUwY,MAAMlV,KAAK8U,CAAO,EAC5CK,SAAOL,EAAStY,KAAK8Y,QAAQ,KAKjC9Y,KAAKiZ,KAAO,IAAIC,OAAK,sBADJ,CAAEH,kBAAmB,mBAAoBC,sBAAuB,kBACzBhZ,KAAKmZ,MAAM,EACnEnZ,KAAK8Y,SAAST,UAAYjO,EACtBpK,KAAKiZ,KAAKG,YAAY,uBAAuB,EAAIpZ,KAAKiZ,KAAKG,YAAY,mBAAmB,GAElGtJ,WAAS,CAAC9P,KAAK8Y,UAAW,cAAc,EACxC3C,UAAQ,CAACnW,KAAK8Y,UAAW9Y,KAAK2H,QAAQ,EACtC3H,KAAK6L,SAASC,mBASlBvG,EAAoBrF,UAAUqY,oBAAsB,SAAUhK,GAC1D,GAAwB,UAApB,OAAOA,EAmBP,OAAO8K,UAAQ9K,CAAQ,EAlBvB,IAAI+K,EAAU,GACd,IACI,IAAIC,EAAUC,SAAOjL,CAAQ,EAGzB+K,EAFAC,EAE8B,WAApBA,EAAQ1I,QAAuB0I,EAAQlB,UAAYkB,EAAQE,UAG3DlL,EAGlB,MAAOzM,GACHwX,EAAU/K,EAEd,OAAO8K,UAAQC,CAAO,GAQ9B/T,EAAoBrF,UAAUoW,QAAU,SAAUoD,GAC9C,IAAIC,EAAmBD,EAAe1Z,KAAK4Z,WAAa5Z,KAAK4J,YACzDiQ,EAAO9G,aAAW4G,CAAgB,EAQtC,OAPIE,EAAKC,SAAS,GAAG,EAEjBD,IADqBH,EAAe1Z,KAAKyS,aAAasH,YAAc9D,SAAS+D,gBAAgB7C,cACpE8C,WAAWJ,CAAI,EAAI,KAAKtR,WAAa,KAE7B,UAA5B,OAAOoR,IACZE,EAAOF,EAAiB3G,MAAM,OAAO,EAAI2G,EAAmBE,GAEzDA,GAEXtU,EAAoBrF,UAAUiM,gBAAkB,SAAUmB,EAAKxL,EAAGoY,GAC9D,IAAI/R,EAAQnI,KACRma,EAAY,CACZtE,aAAc/T,CAAAA,CAAAA,EACdkL,KAAMhN,KAAKyI,QAAQ+L,qBAAqB,GACxCmB,YAAarI,EACbiI,SAAUvV,KAAKyI,QAAQ+L,qBAAqB,GAC5CoB,MAAO9T,EACPmK,OAAQ,CAAA,GAERmO,EAAkBpa,KAAKyI,QAAQ+L,qBAAqB,GACpD6F,EAAWD,EAAkBpa,KAAKyT,iBAAiBzT,KAAKqL,OAAOC,KAAM8O,CAAe,EAAI,GACxFE,EAAYF,EAAkBpa,KAAKyT,iBAAiBzT,KAAKqL,OAAO1J,MAAOyY,CAAe,EAAI,GAC1F9E,EAAkB,CAClBO,aAAc/T,CAAAA,CAAAA,EACdkL,KAAMoN,EACNzE,YAAarI,EACbiI,SAAU,CAAEjK,KAAM8O,EAAkBC,EAAW,GAAI1Y,MAAOyY,EAAkBE,EAAY,IACxF1E,MAAO9T,EACPmK,OAAQ,CAAA,EACRtK,MAAOyY,EAAkBE,EAAY,GACrC7E,iBAAkB,CAAEnK,KAAMtL,KAAKsL,KAAM3J,MAAO3B,KAAK2B,OACjD+T,oBAAqB1V,KAAK0V,qBAE9B1V,KAAKwK,QAAQ,SAAU2P,EAAW,SAAUA,GACpC,CAACA,EAAUlO,QAAUkO,EAAU5E,WACV4E,EAAU5E,SAE3BgF,EAA8B,UADpBzY,EACYvB,KAAmC,QAD/CuB,EACuCvB,KADvCuB,EACgE0Y,UAA4B,QAD5F1Y,EACoFvB,KADpFuB,EAC6G2Y,QAA0B,YADvI3Y,EAC+HvB,IACxI2Z,GAAyBK,CAAAA,GAC1BpS,EAAM6L,aAAaoG,EAAkBE,EAAY,GAAIF,EAAkBC,EAAW,GAAIlS,EAAMM,QAAQ4D,iBAAkBiJ,CAAe,EAEzItD,QAAM+D,SAASqE,EAAkBC,EAAW,GAAIlS,EAAMwI,SAAUxI,EAAMgK,eAAgBhK,EAAMoK,eAAe,EACtG2H,GAAyBK,CAAAA,GAC1BpS,EAAMmE,UAAUxK,CAAC,GAG5B,GAELyD,EAAoBrF,UAAU8T,aAAe,SAAUrS,EAAO2J,EAAMkC,EAAO2M,EAAWpG,GAClF/T,KAAK0V,oBAAsByE,EAAUxE,YACrC,IAAIjI,EAAe1N,KAAK2N,oBACxB3N,KAAK2N,oBAAsB,CAAA,EAC3B3N,KAAKsL,KAAOA,GAAQtL,KAAKsL,KACzBtL,KAAK2B,MAAQA,GAAS3B,KAAK2B,MAC3B3B,KAAKwN,MAASpG,oBAAMoG,CAAK,EAAYxN,KAAKwN,MAAbA,EAC7BxN,KAAK2N,oBAAsBD,EACtBqG,GACD/T,KAAK0a,mBAAmBP,CAAS,GAGzC5U,EAAoBrF,UAAUwa,mBAAqB,SAAUP,GACzDna,KAAKwK,QAAQ,SAAU2P,EAAW,SAAUA,GACpCA,EAAUlO,OAGjB,GAEL1G,EAAoBrF,UAAUya,aAAe,SAAU7Y,GACnD,IAIQ8Y,EACAC,EACAC,EANJ3S,EAAQnI,KACZA,KAAK+a,UAAU,KAAM,CAAA,CAAI,EACzB/a,KAAKkY,uBACDlY,KAAKgb,iBACDJ,EAAe9Y,EAAExB,OAAOqB,MAAM6G,cAE9BsS,EAAc,CACdG,qBAFAJ,EAAoB,CAAA,EAGpBvP,KAAMsP,EACNM,WAAY,SAAUxS,EAAYY,EAAO+B,GACjCyP,EAAY7O,SAGhB4O,EAAoB,CAAA,EACpB1S,EAAMgT,aAAazS,EAAYkS,EAActR,EAAO+B,CAAM,IAE9DuK,MAAO9T,EACPmK,OAAQ,CAAA,GAEZjM,KAAKwK,QAAQ,YAAasQ,EAAa,SAAUX,GACxCA,EAAUlO,QAAWkO,EAAUc,sBAAyBJ,GACzD1S,EAAMgT,aAAahT,EAAMO,WAAYkS,EAAczS,EAAMmB,MAAOnB,EAAMkD,MAAM,EAEnF,GAELrL,KAAKob,iBAAiBtZ,EAAExB,OAAOqB,KAAK,GAExC4D,EAAoBrF,UAAUkb,iBAAmB,SAAUC,GACvD,OAAOna,EAAUlB,KAAM,KAAA,EAAQ,KAAA,EAAQ,WACnC,IAAQsb,EAAIvU,EAAwB/E,EAAQuZ,EAC5C,OAAOnZ,EAAYpC,KAAM,SAAUwb,GAC/B,OAAQA,EAAG9Y,OACP,KAAK,EACD,OAAM1C,KAAK0I,sBAAsBiM,eACjCrL,EAAQ,IAAIuL,QACL,CAAC,EAAa7U,KAAK0I,WAAWkM,aAAatL,CAAK,IAFD,CAAC,EAAa,GAGxE,KAAK,EAID,OAHAtH,EAASwZ,EAAG7Y,OACZ4Y,EAAYvZ,EAAOA,OAClBiM,EAAKjO,KAAKyb,YAAYF,EAAWF,CAAU,EAAGtU,EAAOkH,EAAGlH,KAAM2U,EAAYzN,EAAGyN,UACvE,CAAC,EAAa,GACzB,KAAK,EACG/b,MAAMmN,QAAQ9M,KAAK0I,UAAU,IAC5B4S,EAAKtb,KAAKyb,YAAYzb,KAAK0I,WAAY2S,CAAU,EAAGtU,EAAOuU,EAAGvU,KAAM2U,EAAYJ,EAAGI,WAExFF,EAAG9Y,MAAQ,EACf,KAAK,EAED,OADA1C,KAAK2b,mBAAmB5U,EAAM2U,CAAS,EAChC,CAAC,IAEnB,EACJ,GAELnW,EAAoBrF,UAAUub,YAAc,SAAU/S,EAAY2S,GAC9D,IAAIlT,EAAQnI,KASZ,MAAO,CAAE+G,KARE2B,EAAWsM,OAAO,SAAUhI,GAEnC,OADgB7E,EAAMsL,iBAAiBtL,EAAMkD,OAAOC,KAAM0B,CAAI,EAC7CxE,cAAcoT,WAAWP,EAAW7S,aAAa,EACrE,EAKoBkT,UAJLhT,EAAWsM,OAAO,SAAUhI,GAExC,OADgB7E,EAAMsL,iBAAiBtL,EAAMkD,OAAOC,KAAM0B,CAAI,IACzCqO,EACxB,IAGL9V,EAAoBrF,UAAUyb,mBAAqB,SAAU5U,EAAM2U,GAC3D3U,EAAKpG,QAAU,EACfX,KAAKwG,cAAgBxG,KAAKyG,eAAiBzG,KAAK0G,oBAAsB,MAG1E1G,KAAKyG,eAAiBM,EAAK,GAC3B/G,KAAK0G,oBAAsBgV,EAAU,GACjCG,EAAgB7b,KAAK4N,UAAU5N,KAAKyI,QAAQqT,gBAAiB9b,KAAKyG,cAAc,EACpFzG,KAAKwG,cAAgBxG,KAAKyI,QAAQsT,cAAcF,CAAa,IAGjEtW,EAAoBrF,UAAUib,aAAe,SAAUzS,EAAY2S,EAAY/R,EAAO+B,GAClF,IAAIlD,EAAQnI,KACRgc,EAAU1S,GAAS,IAAIuL,QACvBoH,EAAajc,KAAKic,WAAW1T,WAAWC,cACxCpB,oBAAMkC,CAAK,GAAKlC,oBAAMiE,CAAM,EAC5BrL,KAAKkc,qBAAqBxT,CAAU,EAE/BY,EACDZ,aAAsBiM,cACtB3U,KAAKmc,iBAAiBzT,EAAY2S,EAAY/R,EAAO+B,CAAM,EAG3D,IAAIsJ,cAAYjM,CAAU,EAAEkM,aAAatL,CAAK,EAAEpH,KAAK,SAAUJ,GAEvDgT,EAAYhT,EAAEE,OAClBmG,EAAM+T,qBAAqBpH,CAAS,EACvC,EAIDpM,aAAsBiM,cACtB3U,KAAKmc,iBAAiBzT,EAAY2S,EAAYW,EAAS3Q,CAAM,EAExD1L,MAAMmN,QAAQpE,CAAU,IACzBqM,EAAerM,EAAWsM,OAAO,SAAUhI,GAC3C,OAAO7E,EAAMiU,WAAWpP,EAAMiP,EAAYZ,EAAYhQ,CAAM,EAC/D,EACDrL,KAAKkc,qBAAqBnH,CAAY,IAKlDxP,EAAoBrF,UAAUic,iBAAmB,SAAUzT,EAAY2S,EAAY/R,EAAO+B,GACtF,IAEI0J,EAFA5M,EAAQnI,KACRic,EAAajc,KAAKic,WAAW1T,WAAWC,cAE5CE,EAAWkM,aAAatL,CAAK,EAAEpH,KAAK,SAAUJ,GAE1C,IAAIgT,EAAYhT,EAAEE,OACdqa,EAAavH,EAAUnU,OAC3BoU,EAAeD,EAAUE,OAAO,SAAUhI,GAAQ,OAAO7E,EAAMiU,WAAWpP,EAAMiP,EAAYZ,EAAYhQ,CAAM,EAAI,EAClHlD,EAAM+T,qBAAqBnH,EAAcsH,CAAU,EACtD,GAEL9W,EAAoBrF,UAAUkc,WAAa,SAAUpP,EAAMiP,EAAYZ,EAAYhQ,GAC/E,IACIiR,EADYtc,KAAKyT,kBAAiBpI,GAAuBrL,KAAKqL,QAAZC,KAAyB0B,CAAI,EACzDxE,cAC1B,OAAQyT,GACJ,IAAK,aACD,OAAOK,EAAUV,WAAWP,CAAU,EAC1C,IAAK,WACD,OAAOiB,EAAUC,SAASlB,CAAU,EACxC,IAAK,WACD,OAAOiB,EAAUxC,SAASuB,CAAU,EACxC,QACI,MAAO,CAAA,IAGnB9V,EAAoBrF,UAAUgc,qBAAuB,SAAUxT,EAAY2T,GACvE,IAAIxF,EAAa,CAAA,EACO,EAApBnO,EAAW/H,QAGXkW,GAFe7W,KAAK0I,sBAAsBiM,cAAc0H,EAClDrc,KAAK0I,WAAW/H,UACI+H,EAAW/H,OACrCoP,cAAY,CAAC/P,KAAK2H,UAAW,CAAC/D,EAAO,GACjCoM,EAAchQ,KAAK2H,SAASoE,cAAc,eAAe,IAEzD/L,KAAK2H,SAASkI,YAAYG,CAAW,EAEzChQ,KAAKyI,QAAQC,WAAaA,EAC1B1I,KAAK0Q,eAAiB,CAAA,IAGtB1Q,KAAK4P,aACLE,WAAS,CAAC9P,KAAK2H,UAAW,CAAC/D,EAAO,GAEtC5D,KAAK2W,iBAAiB,CAAA,EAAME,EAAYnO,EAAW/H,MAAM,GAE7D4E,EAAoBrF,UAAUgI,WAAa,WAClCd,oBAAMpH,KAAK+R,SAASG,QAAQ,EAAE,IAC/BsK,eAAaxN,IAAIhP,KAAK+R,SAASG,QAAQ,GAAI,YAAalS,KAAKyc,YAAazc,IAAI,EAC9Ewc,eAAaxN,IAAIhP,KAAK+R,SAASG,QAAQ,GAAI,YAAalS,KAAK0c,cAAe1c,IAAI,GAEpFwc,eAAaxN,IAAIiH,SAAU,YAAajW,KAAK2c,gBAAiB3c,IAAI,EAClEwc,eAAaxN,IAAIhP,KAAK+H,QAAS,QAAS/H,KAAK4c,aAAc5c,IAAI,EAC/Dwc,eAAaxN,IAAIhP,KAAK2Q,SAAU,QAAS3Q,KAAK2a,aAAc3a,IAAI,EAChEwc,eAAaxN,IAAIhP,KAAK2Q,SAAU,QAAS3Q,KAAKuM,QAASvM,IAAI,EACvDA,KAAKuS,iBACLiK,eAAaxN,IAAIhP,KAAK+R,SAAS8K,YAAa,YAAa7c,KAAK8c,UAAW9c,IAAI,EAEjFwc,eAAaxN,IAAI/H,OAAQ,SAAUjH,KAAK+c,aAAc/c,IAAI,EAC1DA,KAAKgd,eAAiB,IAAIC,iBAAejd,KAAKyS,aAAc,CACxDyK,UAAWld,KAAKmd,iBAAiBxS,KAAK3K,IAAI,EAC1C6F,WAAY7F,KAAK6F,WACjBuX,UAAW,UACd,EACDpd,KAAKgd,eAAiB,IAAIC,iBAAejd,KAAK+H,QAAS,CACnDmV,UAAWld,KAAKyM,qBAAqB9B,KAAK3K,IAAI,EAC9C6F,WAAY7F,KAAK6F,WACjBuX,UAAW,UACd,GAEL7X,EAAoBrF,UAAUmd,aAAe,WACpCjW,oBAAMpH,KAAK+R,SAASG,QAAQ,EAAE,IAC/BsK,eAAac,OAAOtd,KAAK+R,SAASG,QAAQ,GAAI,YAAalS,KAAKyc,WAAW,EAC3ED,eAAac,OAAOtd,KAAK+R,SAASG,QAAQ,GAAI,YAAalS,KAAK0c,aAAa,GAEjFF,eAAac,OAAOrH,SAAU,YAAajW,KAAK2c,eAAe,EAC/DH,eAAac,OAAOtd,KAAK2Q,SAAU,QAAS3Q,KAAK2a,YAAY,EAC7D6B,eAAac,OAAOtd,KAAKyS,aAAc,QAASzS,KAAKuM,OAAO,EAC5DiQ,eAAac,OAAOrW,OAAQ,SAAUjH,KAAK+c,YAAY,EACvDP,eAAac,OAAOtd,KAAK+H,QAAS,QAAS/H,KAAK4c,YAAY,EACxD5c,KAAKuS,iBACLiK,eAAac,OAAOtd,KAAK+R,SAAS8K,YAAa,YAAa7c,KAAK8c,SAAS,EAE1E9c,KAAKgd,gBACLhd,KAAKgd,eAAeO,WAG5BhY,EAAoBrF,UAAUuc,YAAc,SAAU3a,GAClDA,EAAE0b,kBAENjY,EAAoBrF,UAAUwc,cAAgB,SAAU5a,GACpD,IAGI2b,EAHAzd,KAAKsR,UAAYtR,KAAKoR,YAGtBqM,EAAazd,KAAK+H,QAAQgE,cAAc,cAAc,IAEtD0R,EAAW1O,UAAUuO,OAAO,aAAa,EAEzCtd,KAAKkM,YACLlM,KAAKsM,UAAUxK,CAAC,EAGhB9B,KAAK+a,UAAUjZ,CAAC,IAGxByD,EAAoBrF,UAAU0c,aAAe,SAAU9a,GACnD,IAAIxB,EAASwB,EAAExB,OACXgN,EAAMoQ,UAAQpd,EAAQ,QAAQ,EAC9B+L,EAAmBrM,KAAKyI,QAAQ4D,iBAChCiB,IACwB,GAApBjB,EACArM,KAAKmM,gBAAgBmB,EAAKxL,CAAC,GAG3B9B,KAAKyI,QAAQ4D,iBAAmBrM,KAAKyI,QAAQ2D,UAAUgB,QAAQE,CAAG,EAClEtN,KAAKyI,QAAQgF,UAAUzN,KAAKyI,QAAQ4D,gBAAgB,EACpDrM,KAAKsM,UAAUxK,CAAC,KAI5ByD,EAAoBrF,UAAUyc,gBAAkB,SAAU7a,GACtD,IAAIxB,EAASwB,EAAExB,OACXN,KAAKsR,UAAYtR,KAAKoR,UAAY,CAACpR,KAAKkM,YACnC5L,EAAOod,QAAQ,qBAAqB,GACrC1d,KAAK2d,WAIRrd,EAAOyO,UAAUW,SAAS,yBAAyB,GAAKgO,UAAQpd,EAAQ,UAAU,EACnFwB,EAAE0b,iBAGGld,EAAOyO,UAAUW,SAAS,uBAAuB,GAAMpP,EAAOyO,UAAUW,SAAS,cAAc,IAC3FtI,oBAAMpH,KAAKsL,IAAI,GAChBtL,KAAKob,iBAAiBpb,KAAKsL,IAAI,EAE/BsS,EAAqC,KAAxB5d,KAAK2Q,SAAShP,MAC/B3B,KAAK6d,oBAAoB/b,EAAG,KAAM8b,CAAU,IAIxDrY,EAAoBrF,UAAU2d,oBAAsB,SAAUC,EAAYC,EAAUC,EAAeC,GAC/F,IAAI9V,EAAQnI,KAER8B,EAAIgc,GAA0BC,EAC9BG,GAFwBD,EAAV,KAAA,IAAdA,EAAoC,CAAA,EAE9BA,GAAYje,KAAKyG,eAAiBzG,KAAK0G,oBAC5CwX,IACDle,KAAK2Q,SAAShP,MAAQ3B,KAAK2B,MAAQ3B,KAAKwN,MAAQxN,KAAKsL,KAAO,MAEhEtL,KAAKsM,UAAUxK,CAAC,EACZ9B,KAAKwG,eAAiB,CAACwX,GAAiBE,EACxChJ,WAAW,WACP,IAAIxH,EAAevF,EAAMwF,oBAErBmI,GADJ3N,EAAMwF,oBAAsB,CAAA,EACZxF,EAAMsL,iBAAiBtL,EAAMkD,OAAOC,KAAMnD,EAAM1B,cAAc,GAC1EiN,EAAavL,EAAMsL,iBAAiBtL,EAAMkD,OAAO1J,MAAOwG,EAAM1B,cAAc,EAG5E0X,GAFJhW,EAAMwI,SAAShP,MAAQmU,EACvB3N,EAAMxG,MAAQ+R,EACIvL,EAAMyF,UAAUzF,EAAMM,QAAQqT,gBAAiB3T,EAAM1B,cAAc,GACrF0B,EAAMqF,MAAQ2Q,EACdhW,EAAMmD,KAAOwK,EACb3N,EAAMM,QAAQgF,UAAU0Q,CAAW,EACnChW,EAAMgE,gBAAgBhE,EAAMM,QAAQsT,cAAcoC,CAAW,EAAGrc,CAAC,EACjEqG,EAAMuN,oBAAsBvN,EAAMM,QAAQiM,kBAAkB,GAC5DvM,EAAMwF,oBAAsBD,GAC7B,GAAG,EAGF1N,KAAK0Q,iBACL1Q,KAAK2Q,SAAShP,MAAQ,GAClB2T,EAAkB,CAClB3T,MAAO,KACP4T,SAAU,CAAEjK,KAAM,KAAM3J,MAAO,MAC/BqL,KAAM,KACNyI,iBAAkB,CAAEnK,KAAMtL,KAAKsL,KAAM3J,MAAO3B,KAAK2B,OACjD+T,oBAAqB1V,KAAK0V,oBAC1BC,YAAa,KACbC,MAAO9T,EACP+T,aAAc,CAAA,EACd5J,OAAQ,CAAA,GAERyB,EAAe1N,KAAK2N,oBACxB3N,KAAK2N,oBAAsB,CAAA,EAC3B3N,KAAKsL,KAAOtL,KAAK2B,MAAQ3B,KAAKwN,MAAQ,KACtCxN,KAAKyI,QAAQ2V,iBACbpe,KAAK2N,oBAAsBD,EAC3B1N,KAAK0a,mBAAmBpF,CAAe,EACvCtV,KAAK0Q,eAAiB,CAAA,EACtB1Q,KAAKyG,eAAiBzG,KAAKwG,cAAgB,OAIvDjB,EAAoBrF,UAAU4c,UAAY,SAAUhb,GAChD9B,KAAK0Q,eAAiB,CAAA,EACtB1Q,KAAK6d,oBAAoB/b,EAAG,KAAM,CAAA,CAAI,GAE1CyD,EAAoBrF,UAAU6c,aAAe,WACrC/c,KAAK6L,WACL7L,KAAK6L,SAASxE,cAAc,CAAE8G,MAAOnO,KAAKsW,QAAQ,CAAA,CAAI,EAAG,EACzDtW,KAAK6L,SAASC,oBAItBvG,EAAoBrF,UAAUme,YAAc,SAAUC,EAAUC,GAC5D,IAAIC,EAAWxe,KAAK6L,SAAW,CAAC7L,KAAKyS,aAAczS,KAAK6L,SAASpG,SAAW,CAACzF,KAAKyS,cAC7ErL,oBAAMmX,CAAQ,GAAkB,KAAbA,GACpBxO,cAAYyO,EAAUD,EAASE,MAAM,GAAG,CAAC,EAExCrX,oBAAMkX,CAAQ,GAAkB,KAAbA,GACpBxO,WAAS0O,EAAUF,EAASG,MAAM,GAAG,CAAC,GAG9ClZ,EAAoBrF,UAAUid,iBAAmB,SAAUrb,GACvD,OAAQA,EAAE4c,QACN,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,MACG1e,KAAKkM,YACLlM,KAAKsM,UAAUxK,CAAC,EAGhB9B,KAAK2d,WAET,MACJ,IAAK,UACI3d,KAAKkM,cACNlM,KAAK+a,UAAUjZ,CAAC,EAChB9B,KAAK2e,mBAAmB7c,EAAG,CAAA,CAAK,GAEpC,MACJ,IAAK,WACL,IAAK,SACD9B,KAAK2e,mBAAmB7c,EAAG,CAAA,EAAM,CAAA,CAAI,EACrC,MACJ,IAAK,QACD9B,KAAK6d,oBAAoB,KAAM/b,EAAG,CAAA,EAAO,CAAA,CAAI,EAC7C9B,KAAKuM,QAAQzK,CAAC,EACd,MACJ,IAAK,OACL,IAAK,MACD9B,KAAK2e,mBAAmB7c,CAAC,IAIrCyD,EAAoBrF,UAAUuM,qBAAuB,SAAU3K,EAAG8c,GAe9D,OAJIA,IACIre,GAAYuB,EAAE2Y,OAAS,OAAS,KAAO3Y,EAAE0Y,SAAW,SAAW,IAAM1Y,EAAEvB,IAC3EuB,EAAE4c,OAZa,CACfG,UAAa,WACbC,QAAW,SACXC,IAAO,MACPC,KAAQ,OACRC,IAAO,MACPC,OAAU,SACVC,YAAa,WACbC,cAAe,SAIS7e,IAAQuB,EAAE4c,QAE9B5c,EAAE4c,QACN,IAAK,SACL,IAAK,MACL,IAAK,WACL,IAAK,QACG1e,KAAKkM,cACLpK,EAAE0b,iBACe,WAAb1b,EAAE4c,QACF1e,KAAK2e,mBAAmB7c,CAAC,EAE7B9B,KAAKsM,UAAUxK,CAAC,GAEpB,MACJ,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,MACD9B,KAAK2e,mBAAmB7c,CAAC,IAIrCyD,EAAoBrF,UAAUye,mBAAqB,SAAU7c,EAAGud,EAAeC,GAC3E,IAGQC,EACAlD,EAJJlU,EAAQnI,KACU,KAAA,IAAlBqf,IAA4BA,EAAgB,CAAA,GAC5Crf,KAAKkM,cACDqT,EAAUvf,KAAKqL,OAAOmB,QAAWxM,KAAKyI,QAAQ4D,kBAAoB,EAAKrM,KAAKyI,QAAQ4D,iBACpFgQ,EAAarc,KAAK0I,sBAAsBiM,cAAc3U,KAAKwf,iBAC3Dxf,KAAK0I,WAAW/H,OACH,CAAC,IAAb4e,IAAgC,aAAbzd,EAAE4c,QAAsC,WAAb5c,EAAE4c,SAAuC,SAAb5c,EAAE4c,OAC7Ea,EAAU,EAEQlD,EAAa,GAAzBkD,GAA4C,aAAbzd,EAAE4c,QAAwC,QAAb5c,EAAE4c,OACpEa,EAAUlD,EAAa,EAEL,aAAbva,EAAE4c,QAAqC,GAAXa,GAAgBA,GAAYlD,EAAa,IAAQrc,KAAKqL,OAAOmB,SAAW8S,GACzGC,GAAW,GAEO,WAAbzd,EAAE4c,QAAiC,EAAVa,GAAgBvf,KAAKqL,OAAc,SAAKiU,IACtEC,EAAAA,EAECvf,KAAKkJ,qBAINgM,WAAW,WAAc/M,EAAMsF,UAAU3L,EAAGud,EAAeE,CAAO,EAAI,EAHtEvf,KAAKyN,UAAU3L,EAAGud,EAAeE,CAAO,IAOpDha,EAAoBrF,UAAUuN,UAAY,SAAU3L,EAAGud,EAAe7R,GAC5C,KAAA,IAAlB6R,IAA4BA,EAAgB,CAAA,GAChDrf,KAAKyI,QAAQgF,UAAUD,CAAK,EAC5BxN,KAAKyI,QAAQ4D,iBAAmBmB,EAChC,IAAIiQ,EAAazd,KAAK+H,QAAQgE,cAAc,cAAc,EACtD0R,GACAA,EAAW1O,UAAUuO,OAAO,aAAa,EAEzC+B,GACArf,KAAKmM,gBAAgBnM,KAAKyI,QAAQ2D,UAAUiJ,SAAS7H,EAAMjF,WAAY,EAAE,GAAIzG,EAAG,CAAA,CAAI,GAG5FyD,EAAoBrF,UAAUgY,qBAAuB,WACjD,IAAIuH,EAAezf,KAAKyS,aAAa1G,cAAc,eAAe,EAC9D0T,IACAA,EAAalP,MAAMmP,QAAkC,KAAxB1f,KAAK2Q,SAAShP,MAAe,OAAS,SAG3E4D,EAAoBrF,UAAUyf,wBAA0B,SAAUC,EAAeC,GAC7E,IACQC,EADJ9f,KAAKyI,UAELzI,KAAKyI,QAAQC,WAAakX,EACPC,aAAyBlL,cAExCkL,EAAcjL,aAAa,IAAIC,OAAO,EAAE3S,KAAK,SAAUJ,GAEnDge,EAAehe,EAAEE,OAAOrB,OAC3B,EAGDmf,EAAeD,EAAclf,OAEZ,IAAjBmf,IACA9f,KAAK2H,SAASG,YAAY9H,KAAK+H,OAAO,GAUlDxC,EAAoBrF,UAAUqM,QAAU,SAAUzK,GAC1C9B,KAAKsR,UAAYtR,KAAKoR,WAG1BtB,WAAS,CAAC9P,KAAKyS,cAAe,CAAC3O,EAAW,EAC1C9D,KAAK2Q,SAASsH,QACdjY,KAAKkY,uBACLlY,KAAKwK,QAAQ,QAAS1I,CAAC,EACK,UAAxB9B,KAAKmS,gBACLH,QAAM+N,eAAe/f,KAAK2Q,SAAU3Q,KAAKyS,YAAY,IAS7DlN,EAAoBrF,UAAUyd,SAAW,SAAU7b,GAC3C9B,KAAKsR,UAAYtR,KAAKoR,WAGtBpR,KAAKkM,aACLlM,KAAKsM,UAAUxK,CAAC,EAEhB9B,KAAKyS,eACL1C,cAAY,CAAC/P,KAAKyS,cAAe,CAAC3O,EAAW,GACzC2b,EAAezf,KAAKyS,aAAa1G,cAAc,eAAe,KAE9D0T,EAAalP,MAAMmP,QAAU,QAEL,UAAxB1f,KAAKmS,iBACLH,QAAM+N,eAAe/f,KAAK2Q,SAAU3Q,KAAKyS,YAAY,IAWjElN,EAAoBrF,UAAU6a,UAAY,SAAUjZ,EAAGke,GACnD,IAAI7X,EAAQnI,KAERma,EAAY,CAAE8F,MAAOjgB,KAAK6L,SAAU+J,MAAO9T,EAAGmK,OAAQ,CAAA,EAAOiU,UADjD,CAAEC,KAAM,SAAUC,SAAU,MAE5CpgB,KAAKwK,QAAQ,OAAQ2P,EAAW,SAAUA,GACtC,IAQgBkG,EAkBJC,EACAC,EA3BPpG,EAAUlO,QAAW9D,EAAM+D,cAC5B/D,EAAM+D,YAAc,CAAA,EACpB/D,EAAM0D,SAASC,kBACfgE,WAAS,CAAC3H,EAAMsK,cAAe,CAAC9O,EAAc,EAC9CsN,aAAW9I,EAAMwI,SAAU,CAAEO,gBAAiB,OAAQsP,YAAarY,EAAM1C,QAAQC,GAAK,SAAU+a,gBAAiBtY,EAAM1C,QAAQC,GAAI,EAC9Hsa,KACI7X,EAAMxG,OAASwG,EAAMmD,MAAQnD,EAAMqF,QACrBrF,EAAMM,QAAQiY,gBAGpB3T,QAAQ,SAAUhG,EAAMyG,GACzBrF,EAAMkD,OAAOmB,SAAWpF,oBAAML,EAAKA,KAAK4Z,KAAK,IACzCvZ,oBAAMiZ,CAAY,EAClBA,EAAe,EAGfA,GAAgB,GAGxBlY,EAAMoF,cAAcxG,EAAKA,KAAOoB,EAAMkD,OAAOmB,QAAkB6T,EAAR7S,CAAoB,EAC9E,EAELrF,EAAMoE,QAAQzK,CAAC,IAEf8e,EAAazY,EAAMM,QAAQwO,gBAEvBqJ,EAAYM,EAAW7U,cAAc,qBAAqB,EAC1DwU,EAAWK,EAAW7U,cAAc,QAAQ,EAC5CuU,EACAnY,EAAMwI,SAASI,aAAa,wBAAyBuP,EAAUzO,cAAcf,aAAa,UAAU,CAAC,EAEhGyP,GACLpY,EAAMwI,SAASI,aAAa,wBAAyBwP,EAASzP,aAAa,UAAU,CAAC,GAG1F,CAAC1J,oBAAMe,EAAMO,UAAU,GAAKP,EAAMO,sBAAsBiM,eACxDxM,EAAMO,WAAWkM,aAAa,IAAIC,OAAK,EAAE3S,KAAK,SAAUJ,GAEpDqG,EAAMqX,iBAAmB1d,EAAEE,OAAOrB,OACrC,EAELwH,EAAM0D,SAASgV,KAAK,IAAIC,YAAU3G,EAAU+F,SAAS,EAAG/X,EAAMmI,QAAQ,GAE7E,GAQL/K,EAAoBrF,UAAUoM,UAAY,SAAUxK,GAChD,IAAIqG,EAAQnI,KAERma,EAAY,CAAE8F,MAAOjgB,KAAK6L,SAAU+J,MAAO9T,GAAK,KAAMmK,OAAQ,CAAA,EAAOiU,UADzD,CAAEC,KAAM,UAAWC,SAAU,MAEzC9f,EAASwB,EAAIA,EAAExB,OAAS,KAC5BN,KAAKwK,QAAQ,QAAS2P,EAAW,SAAUA,GAClCA,EAAUlO,SACX9D,EAAM+D,YAAc,CAAA,EACpB6D,cAAY,CAAC5H,EAAMsK,cAAe,CAAC9O,EAAc,EACjDsN,aAAW9I,EAAMwI,SAAU,CAAEO,gBAAiB,QAAS,EACvD/I,EAAM0D,SAASwE,KAAK,IAAIyQ,YAAU3G,EAAU+F,SAAS,CAAC,EAClD5f,IAAWA,EAAOyO,UAAUW,SAAS,yBAAyB,GAAKpP,EAAOyO,UAAUW,SAAS,WAAW,IACnGvH,EAAMxG,OACPwG,EAAMM,QAAQ2V,iBAElBlJ,WAAW,WAAc/M,EAAMoE,QAAQzK,CAAC,EAAI,GAG5CqG,EAAMwV,WAEVxV,EAAMwI,SAASoQ,gBAAgB,WAAW,EAC1C5Y,EAAMwI,SAASoQ,gBAAgB,uBAAuB,GAE7D,EACD7L,WAAW,WACH/M,EAAMM,UACNN,EAAMM,QAAQC,WAAaP,EAAMO,WACjCP,EAAMwO,iBAAiB,CAAA,EAAM,CAAA,CAAK,IAEvC,GAAG,GAUVpR,EAAoBrF,UAAU8gB,SAAW,SAAUL,EAAOnT,GACtD,IAAIE,EAAe1N,KAAK2N,oBACxB3N,KAAK2N,oBAAsB,CAAA,EAC3B3N,KAAKyI,QAAQW,aAAaC,YAAc,CAAA,EACxCrJ,KAAKyI,QAAQ4K,WACbrT,KAAK2N,oBAAsBD,EAC3B1N,KAAKyI,QAAQwY,UAAUN,EAAOnT,CAAK,GAQvCjI,EAAoBrF,UAAUghB,SAAW,WACrC,OAAOlhB,KAAKyI,QAAQ0Y,eAQxB5b,EAAoBrF,UAAUsV,eAAiB,SAAU7T,GACrD,IAAIwG,EAAQnI,KACZ,MAAI,CAACoH,oBAAMpH,KAAK0I,UAAU,GAAK1I,KAAK0I,sBAAsB/I,MAC/CK,KAAK0I,WAAWsM,OAAO,SAAUhI,GAEpC,OADiB7E,EAAMsL,iBAAiBtL,EAAMkD,OAAO1J,MAAOqL,CAAI,IAC1CrL,EACzB,EAAE,IAEE,CAACyF,oBAAMpH,KAAK0I,UAAU,GAAK1I,KAAK0I,sBAAsBiM,eAC3D3U,KAAK0I,WAAWkM,aAAa,IAAIC,OAAO,EAAE3S,KAAK,SAAUJ,GAGrD,OADgBA,EAAEE,OACDgT,OAAO,SAAUhI,GAE9B,OADiB7E,EAAMsL,iBAAiBtL,EAAMkD,OAAO1J,MAAOqL,CAAI,IAC1CrL,EACzB,EAAE,GACN,EAEE,OAEX4D,EAAoBrF,UAAUqd,QAAU,WAMpC,GALAvd,KAAKqd,eACDrd,KAAKyI,UACLzI,KAAKyI,QAAQ8U,UACb6D,SAAOphB,KAAKyI,QAAQhD,OAAO,GAE3BzF,KAAK2Q,SAAU,CAGf,IAFA,IAAI0Q,EAAY,CAAC,cAAe,gBAAiB,aAAc,aAAc,OAAQ,OACjF,YAAa,gBAAiB,gBAAiB,eAAgB,iBAAkB,aAAc,yBAC1FrgB,EAAI,EAAGA,EAAIqgB,EAAU1gB,OAAQK,CAAC,GACnChB,KAAK2Q,SAASoQ,gBAAgBM,EAAUrgB,EAAE,EAE9ChB,KAAK2Q,SAAS5B,UAAUuO,OAAO,SAAS,EACxCtL,QAAM+D,SAAS,GAAI/V,KAAK2Q,SAAU3Q,KAAKmS,eAAgBnS,KAAKuS,eAAe,EAE3EvS,KAAKsQ,WACLtQ,KAAKsQ,SAASyQ,gBAAgB,YAAY,EAC1C/gB,KAAKsQ,SAASyQ,gBAAgB,MAAM,GAEpC/gB,KAAK6L,WACL7L,KAAK6L,SAAS0R,UACd6D,SAAOphB,KAAK6L,SAASpG,OAAO,GAE5BzF,KAAKyF,QAAQoL,UAAY7Q,KAAK4G,gBAC9B5G,KAAKyS,aAAaZ,cAAcC,aAAa9R,KAAKyF,QAASzF,KAAKyS,YAAY,EAE5EzS,KAAK+R,WACLqP,SAAOphB,KAAK+R,SAASW,SAAS,EAC9B1S,KAAK+R,SAAW,MAEpBC,QAAMuL,QAAQ,CACV9X,QAASzF,KAAK2Q,SACdwB,eAAgBnS,KAAKmS,eACrBC,WAAYpS,KAAKoS,WACpB,EACDgP,SAAOphB,KAAKyS,YAAY,EACxB2O,SAAOphB,KAAK2H,QAAQ,EACpB3H,KAAK2Q,SAAW,KAChB3Q,KAAK0V,oBAAsB,KAC3B1V,KAAKyS,aAAa4F,UAAY,GAC9BrY,KAAKyS,aAAe,KACpBzS,KAAK2H,SAAW,KAChB3H,KAAK6L,SAAW,KAChB7L,KAAKyI,QAAU,KACfzI,KAAK+H,QAAU,KACf/H,KAAKsQ,SAAW,KAChBtQ,KAAKwW,OAAS,KACdxW,KAAK8Y,SAAW,KAChBhU,EAAO5E,UAAUqd,QAAQ/Z,KAAKxD,IAAI,GAUtCuF,EAAoBrF,UAAUohB,kBAAoB,SAAUC,EAASC,GACjE,IAAK,IAAItO,EAAK,EAAGjF,EAAKzO,OAAOyN,KAAKsU,CAAO,EAAGrO,EAAKjF,EAAGtN,OAAQuS,CAAE,GAAI,CAC9D,IAcgBvJ,EAdZ8X,EAAOxT,EAAGiF,GAEd,OAAQuO,GACJ,IAAK,QACL,IAAK,aACY,UAATA,GACAzhB,KAAK2S,gBAAgB4O,EAAQpT,KAAK,EAElCnO,KAAK6L,WACL7L,KAAK6L,SAASpG,QAAQ8K,MAAMpC,MAAQnO,KAAKsW,QAAQ,CAAA,CAAI,GAEzD,MACJ,IAAK,cACGtW,KAAK6L,WACDlC,EAAS3J,KAAKsW,QAAQ,CAAA,CAAK,EAC/BtW,KAAK6L,SAASpG,QAAQ8K,MAAMgG,UAAY5M,EACxC3J,KAAK2H,SAAS4I,MAAMgG,UAAY5M,EAChC3J,KAAKyI,QAAQkB,OAASA,GAE1B,MACJ,IAAK,cACDqI,QAAMsB,eAAeiO,EAAQjP,YAAatS,KAAK2Q,QAAQ,EACvD,MACJ,IAAK,WACDqB,QAAM0P,YAAY1hB,KAAKoR,SAAUpR,KAAK2Q,QAAQ,EAC9C,MACJ,IAAK,WACDqB,QAAMuB,WAAW,CAACvT,KAAKsR,SAAUtR,KAAK2Q,QAAQ,EAC9C3Q,KAAKoT,YACL,MACJ,IAAK,WACDpT,KAAKqe,YAAYkD,EAAQ/O,SAAUgP,EAAQhP,QAAQ,EACnD,MACJ,IAAK,iBACDR,QAAM2P,eAAe3hB,KAAK+R,QAAQ,EAClCC,QAAM4P,YAAY5hB,KAAK2Q,SAAU3Q,KAAKmS,eAAgBnS,KAAKsS,WAAW,EACtE,MACJ,IAAK,kBACDN,QAAM6P,eAAeN,EAAQhP,gBAAiBvS,KAAK2Q,SAAU3Q,KAAK+R,QAAQ,EAC1E,MACJ,IAAK,QACD/R,KAAK4S,UAAU,CAAA,EAAM,CAAA,CAAI,EACzB,MACJ,IAAK,OACD5S,KAAK4S,UAAU,CAAA,EAAM,CAAA,CAAK,EAC1B,MACJ,IAAK,QACD5S,KAAK4S,UAAU,CAAA,CAAI,EACnB,MACJ,IAAK,YACG5S,KAAKyI,UACLzI,KAAKyI,QAAQ0C,aAAaxC,QAAU,CAAC,CAC7ByC,MAAOpL,KAAKqL,OAAOC,KAAMC,UAAWgW,EAAQjZ,YAAc3D,YAAU6G,UAChE7G,YAAU6G,UAAY7G,YAAU8G,cAGhD,MACJ,IAAK,iBACDzL,KAAKgI,oBACL,MACJ,IAAK,oBACDhI,KAAK4P,aACL,MACJ,IAAK,wBACD5P,KAAK4P,WAAW,CAAA,CAAI,EACpB,MACJ,IAAK,iBACD5P,KAAKqW,oBACL,MACJ,IAAK,eACGrW,KAAKyI,UACLzI,KAAKyI,QAAQuB,YAAcuX,EAAQtX,cAEvC,MACJ,IAAK,gBACDjK,KAAKoP,cAAgBmS,EAAQnS,cAC7BpP,KAAKiL,qBACL,MACJ,IAAK,YACGjL,KAAKyI,SAAWzI,KAAK6L,WACrB7L,KAAKyI,QAAQU,UAAYoY,EAAQpY,UACjC6I,QAAM8P,aAAaP,EAAQpY,UAAW,CAACnJ,KAAKyS,aAAa,EACzDzS,KAAK6L,SAAS1C,UAAYoY,EAAQpY,WAEtC,MACJ,IAAK,aACDnJ,KAAK2f,wBAAwB4B,EAAQ7Y,WAAY8Y,EAAQ9Y,UAAU,EACnE,MACJ,IAAK,QACG1I,KAAKyI,UACLzI,KAAKyI,QAAQa,MAAQiY,EAAQjY,OAEjC,MACJ,IAAK,eACGtJ,KAAKyI,UACLzI,KAAKyI,QAAQK,UAAYyY,EAAQxY,aAAaD,UAC9C9I,KAAKyI,QAAQO,UAAYuY,EAAQxY,aAAaC,UAC9ChJ,KAAKyI,QAAQQ,aAAesY,EAAQxY,aAAaE,aACjDjJ,KAAKyI,QAAQoB,cAAgB0X,EAAQxY,aAAac,cAC5CzC,oBAAMma,EAAQxY,aAAaQ,aAAc,IAC3CvJ,KAAKyI,QAAQc,cAAgBgY,EAAQxY,aAAaQ,eAEhDnC,oBAAMma,EAAQxY,aAAaW,YAAa,IAC1C1J,KAAKyI,QAAQe,iBAAiBC,SAAW8X,EAAQxY,aAAaW,eAGtE,MACJ,IAAK,SACD1J,KAAKqL,OAASkW,EAAQlW,OACtBrL,KAAKiL,qBACL,MACJ,IAAK,aACDjL,KAAKic,WAAasF,EAAQtF,WAC1B,MACJ,IAAK,uBACGjc,KAAKyI,UACLzI,KAAKkJ,qBAAuBlJ,KAAKyI,QAAQS,qBAAuBqY,EAAQrY,sBAE5E,MACJ,IAAK,WACGlJ,KAAKyI,UACLzI,KAAK+J,SAAWwX,EAAQxX,SACxB/J,KAAKyI,QAAQqB,kBAA+D,oBAA3C9J,KAAK+J,SAASxB,WAAWC,eAAuCxI,KAAK4I,cAE1G,MACJ,IAAK,iBACD5I,KAAKgb,eAAiBuG,EAAQvG,eAC9B,MACJ,IAAK,eACGhb,KAAKyI,UACLzI,KAAK4I,aAAe5I,KAAKyI,QAAQG,aAAe2Y,EAAQ3Y,cAE5D,MACJ,IAAK,UACG5I,KAAKyI,UACLL,EAAcpI,KAAKqI,iBACnBrI,KAAKyI,QAAQE,QAAUP,MAM3ChI,EAAW,CACP6E,WAAS,EAAE,GACZM,EAAoBrF,UAAW,aAAc,KAAA,CAAM,EACtDE,EAAW,CACP6E,WAAS,IAAI,GACdM,EAAoBrF,UAAW,OAAQ,KAAA,CAAM,EAChDE,EAAW,CACP6E,WAAS,IAAI,GACdM,EAAoBrF,UAAW,QAAS,KAAA,CAAM,EACjDE,EAAW,CACP6E,WAAS,IAAI,GACdM,EAAoBrF,UAAW,QAAS,KAAA,CAAM,EACjDE,EAAW,CACP6E,WAAS,MAAM,GAChBM,EAAoBrF,UAAW,QAAS,KAAA,CAAM,EACjDE,EAAW,CACP6E,WAAS,OAAO,GACjBM,EAAoBrF,UAAW,cAAe,KAAA,CAAM,EACvDE,EAAW,CACP6E,WAAS,MAAM,GAChBM,EAAoBrF,UAAW,aAAc,KAAA,CAAM,EACtDE,EAAW,CACP6E,WAAS,IAAI,GACdM,EAAoBrF,UAAW,cAAe,KAAA,CAAM,EACvDE,EAAW,CACP6E,WAAS,CAAA,CAAI,GACdM,EAAoBrF,UAAW,iBAAkB,KAAA,CAAM,EAC1DE,EAAW,CACP6E,WAAS,CAAA,CAAI,GACdM,EAAoBrF,UAAW,eAAgB,KAAA,CAAM,EACxDE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfM,EAAoBrF,UAAW,kBAAmB,KAAA,CAAM,EAC3DE,EAAW,CACP6E,WAAS,EAAE,GACZM,EAAoBrF,UAAW,WAAY,KAAA,CAAM,EACpDE,EAAW,CACP2hB,UAAQ,CAAEzW,KAAM,KAAM3J,MAAO,KAAM6K,QAAS,MAAQxH,CAAa,GAClEO,EAAoBrF,UAAW,SAAU,KAAA,CAAM,EAClDE,EAAW,CACP4hB,aAAW,GAAI9c,CAAM,GACtBK,EAAoBrF,UAAW,UAAW,KAAA,CAAM,EACnDE,EAAW,CACP2hB,UAAQ,GAAI5c,CAAY,GACzBI,EAAoBrF,UAAW,eAAgB,KAAA,CAAM,EACxDE,EAAW,CACP6E,WAASP,aAAWud,UAAU,GAC/B1c,EAAoBrF,UAAW,aAAc,KAAA,CAAM,EACtDE,EAAW,CACP6E,WAAS,OAAO,GACjBM,EAAoBrF,UAAW,iBAAkB,KAAA,CAAM,EAC1DE,EAAW,CACP6E,WAASN,YAAUud,IAAI,GACxB3c,EAAoBrF,UAAW,YAAa,KAAA,CAAM,EACrDE,EAAW,CACP6E,WAASL,WAASud,SAAS,GAC5B5c,EAAoBrF,UAAW,WAAY,KAAA,CAAM,EACpDE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfM,EAAoBrF,UAAW,uBAAwB,KAAA,CAAM,EAChEE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfM,EAAoBrF,UAAW,WAAY,KAAA,CAAM,EACpDE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfM,EAAoBrF,UAAW,WAAY,KAAA,CAAM,EACpDE,EAAW,CACP6E,WAAS,CAAA,CAAK,GACfM,EAAoBrF,UAAW,oBAAqB,KAAA,CAAM,EAC7DE,EAAW,CACP6E,cACDM,EAAoBrF,UAAW,QAAS,KAAA,CAAM,EACjDE,EAAW,CACP6E,WAAS,IAAI,GACdM,EAAoBrF,UAAW,eAAgB,KAAA,CAAM,EACxDE,EAAW,CACP6E,WAAS,IAAI,GACdM,EAAoBrF,UAAW,iBAAkB,KAAA,CAAM,EAC1DE,EAAW,CACP6E,WAAS,IAAI,GACdM,EAAoBrF,UAAW,gBAAiB,KAAA,CAAM,EACzDE,EAAW,CACP6E,WAAS,gBAAgB,GAC1BM,EAAoBrF,UAAW,wBAAyB,KAAA,CAAM,EACjEE,EAAW,CACP6E,WAAS,kBAAkB,GAC5BM,EAAoBrF,UAAW,oBAAqB,KAAA,CAAM,EAC7DE,EAAW,CACP6E,WAAS,EAAE,GACZM,EAAoBrF,UAAW,iBAAkB,KAAA,CAAM,EAC1DE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,UAAW,KAAA,CAAM,EACnDE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,OAAQ,KAAA,CAAM,EAChDE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,QAAS,KAAA,CAAM,EACjDE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,gBAAiB,KAAA,CAAM,EACzDE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,cAAe,KAAA,CAAM,EACvDE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,iBAAkB,KAAA,CAAM,EAC1DE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,YAAa,KAAA,CAAM,EACrDE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,SAAU,KAAA,CAAM,EAClDE,EAAW,CACPiF,WACDE,EAAoBrF,UAAW,SAAU,KAAA,CAAM,MA9qDH4E,EAA/CS,EA+qDsBnF,EAAW,CAC7BgiB,yBACD7c,CAAmB,EAxqDtB,SAASA,EAAoB8c,EAAS5c,GAC9B0C,EAAQrD,EAAOtB,KAAKxD,KAAMqiB,EAAS5c,CAAO,GAAKzF,KAGnD,OAFAmI,EAAMma,WAAa,IAAIre,EACvBkE,EAAMma,WAAWpe,gBACViE"}