@syncfusion/ej2-multicolumn-combobox 32.1.19 → 32.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/.eslintrc.json +263 -0
  2. package/README.md +1 -1
  3. package/aceconfig.js +17 -0
  4. package/dist/ej2-multicolumn-combobox.umd.min.js +10 -1
  5. package/dist/ej2-multicolumn-combobox.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-multicolumn-combobox.es2015.js +1 -0
  7. package/dist/es6/ej2-multicolumn-combobox.es2015.js.map +1 -1
  8. package/dist/es6/ej2-multicolumn-combobox.es5.js +1 -0
  9. package/dist/es6/ej2-multicolumn-combobox.es5.js.map +1 -1
  10. package/dist/global/ej2-multicolumn-combobox.min.js +10 -1
  11. package/dist/global/ej2-multicolumn-combobox.min.js.map +1 -1
  12. package/dist/global/index.d.ts +9 -0
  13. package/package.json +3 -3
  14. package/src/multicolumn-combobox/multi-column-combo-box.js +1 -0
  15. package/styles/bds-lite.css +8 -0
  16. package/styles/bds-lite.scss +1 -1
  17. package/styles/bds.css +12 -0
  18. package/styles/bds.scss +2 -2
  19. package/styles/bootstrap-dark-lite.scss +1 -1
  20. package/styles/bootstrap-dark.scss +2 -2
  21. package/styles/bootstrap-lite.scss +1 -1
  22. package/styles/bootstrap.scss +2 -2
  23. package/styles/bootstrap4-lite.scss +1 -1
  24. package/styles/bootstrap4.scss +2 -2
  25. package/styles/bootstrap5-dark-lite.scss +1 -1
  26. package/styles/bootstrap5-dark.scss +2 -2
  27. package/styles/bootstrap5-lite.scss +1 -1
  28. package/styles/bootstrap5.3-lite.css +168 -0
  29. package/styles/bootstrap5.3-lite.scss +1 -1
  30. package/styles/bootstrap5.3.css +252 -0
  31. package/styles/bootstrap5.3.scss +2 -2
  32. package/styles/bootstrap5.scss +2 -2
  33. package/styles/fabric-dark-lite.scss +1 -1
  34. package/styles/fabric-dark.scss +2 -2
  35. package/styles/fabric-lite.scss +1 -1
  36. package/styles/fabric.scss +2 -2
  37. package/styles/fluent-dark-lite.scss +1 -1
  38. package/styles/fluent-dark.scss +2 -2
  39. package/styles/fluent-lite.scss +1 -1
  40. package/styles/fluent.scss +2 -2
  41. package/styles/fluent2-lite.css +172 -0
  42. package/styles/fluent2-lite.scss +1 -1
  43. package/styles/fluent2.css +258 -0
  44. package/styles/fluent2.scss +2 -2
  45. package/styles/highcontrast-light-lite.scss +1 -1
  46. package/styles/highcontrast-light.scss +2 -2
  47. package/styles/highcontrast-lite.scss +1 -1
  48. package/styles/highcontrast.scss +2 -2
  49. package/styles/material-dark-lite.scss +1 -1
  50. package/styles/material-dark.scss +2 -2
  51. package/styles/material-lite.scss +1 -1
  52. package/styles/material.scss +2 -2
  53. package/styles/material3-dark-lite.css +164 -0
  54. package/styles/material3-dark-lite.scss +1 -1
  55. package/styles/material3-dark.css +246 -0
  56. package/styles/material3-dark.scss +2 -2
  57. package/styles/material3-lite.css +168 -0
  58. package/styles/material3-lite.scss +1 -1
  59. package/styles/material3.css +252 -0
  60. package/styles/material3.scss +2 -2
  61. package/styles/multicolumn-combobox/_all.bds.scss +2 -0
  62. package/styles/multicolumn-combobox/_all.bootstrap-dark.scss +2 -0
  63. package/styles/multicolumn-combobox/_all.bootstrap.scss +2 -0
  64. package/styles/multicolumn-combobox/_all.bootstrap4.scss +2 -0
  65. package/styles/multicolumn-combobox/_all.bootstrap5-dark.scss +2 -0
  66. package/styles/multicolumn-combobox/_all.bootstrap5.3.scss +2 -0
  67. package/styles/multicolumn-combobox/_all.bootstrap5.scss +2 -0
  68. package/styles/multicolumn-combobox/_all.fabric-dark.scss +2 -0
  69. package/styles/multicolumn-combobox/_all.fabric.scss +2 -0
  70. package/styles/multicolumn-combobox/_all.fluent-dark.scss +2 -0
  71. package/styles/multicolumn-combobox/_all.fluent.scss +2 -0
  72. package/styles/multicolumn-combobox/_all.fluent2.scss +2 -0
  73. package/styles/multicolumn-combobox/_all.highcontrast-light.scss +2 -0
  74. package/styles/multicolumn-combobox/_all.highcontrast.scss +2 -0
  75. package/styles/multicolumn-combobox/_all.material-dark.scss +2 -0
  76. package/styles/multicolumn-combobox/_all.material.scss +2 -0
  77. package/styles/multicolumn-combobox/_all.material3-dark.scss +2 -0
  78. package/styles/multicolumn-combobox/_all.material3.scss +2 -0
  79. package/styles/multicolumn-combobox/_all.tailwind-dark.scss +2 -0
  80. package/styles/multicolumn-combobox/_all.tailwind.scss +2 -0
  81. package/styles/multicolumn-combobox/_all.tailwind3.scss +2 -0
  82. package/styles/multicolumn-combobox/_bigger.bds.scss +3 -0
  83. package/styles/multicolumn-combobox/_bigger.bootstrap-dark.scss +3 -0
  84. package/styles/multicolumn-combobox/_bigger.bootstrap.scss +3 -0
  85. package/styles/multicolumn-combobox/_bigger.bootstrap4.scss +3 -0
  86. package/styles/multicolumn-combobox/_bigger.bootstrap5-dark.scss +3 -0
  87. package/styles/multicolumn-combobox/_bigger.bootstrap5.3.scss +3 -0
  88. package/styles/multicolumn-combobox/_bigger.bootstrap5.scss +3 -0
  89. package/styles/multicolumn-combobox/_bigger.fabric-dark.scss +3 -0
  90. package/styles/multicolumn-combobox/_bigger.fabric.scss +3 -0
  91. package/styles/multicolumn-combobox/_bigger.fluent-dark.scss +3 -0
  92. package/styles/multicolumn-combobox/_bigger.fluent.scss +3 -0
  93. package/styles/multicolumn-combobox/_bigger.fluent2.scss +3 -0
  94. package/styles/multicolumn-combobox/_bigger.highcontrast-light.scss +3 -0
  95. package/styles/multicolumn-combobox/_bigger.highcontrast.scss +3 -0
  96. package/styles/multicolumn-combobox/_bigger.material-dark.scss +3 -0
  97. package/styles/multicolumn-combobox/_bigger.material.scss +3 -0
  98. package/styles/multicolumn-combobox/_bigger.material3-dark.scss +3 -0
  99. package/styles/multicolumn-combobox/_bigger.material3.scss +3 -0
  100. package/styles/multicolumn-combobox/_bigger.scss +0 -1
  101. package/styles/multicolumn-combobox/_bigger.tailwind-dark.scss +3 -0
  102. package/styles/multicolumn-combobox/_bigger.tailwind.scss +3 -0
  103. package/styles/multicolumn-combobox/_bigger.tailwind3.scss +3 -0
  104. package/styles/multicolumn-combobox/_layout.bds.scss +3 -0
  105. package/styles/multicolumn-combobox/_layout.bootstrap-dark.scss +3 -0
  106. package/styles/multicolumn-combobox/_layout.bootstrap.scss +3 -0
  107. package/styles/multicolumn-combobox/_layout.bootstrap4.scss +3 -0
  108. package/styles/multicolumn-combobox/_layout.bootstrap5-dark.scss +3 -0
  109. package/styles/multicolumn-combobox/_layout.bootstrap5.3.scss +3 -0
  110. package/styles/multicolumn-combobox/_layout.bootstrap5.scss +3 -0
  111. package/styles/multicolumn-combobox/_layout.fabric-dark.scss +3 -0
  112. package/styles/multicolumn-combobox/_layout.fabric.scss +3 -0
  113. package/styles/multicolumn-combobox/_layout.fluent-dark.scss +3 -0
  114. package/styles/multicolumn-combobox/_layout.fluent.scss +3 -0
  115. package/styles/multicolumn-combobox/_layout.fluent2.scss +3 -0
  116. package/styles/multicolumn-combobox/_layout.highcontrast-light.scss +3 -0
  117. package/styles/multicolumn-combobox/_layout.highcontrast.scss +3 -0
  118. package/styles/multicolumn-combobox/_layout.material-dark.scss +3 -0
  119. package/styles/multicolumn-combobox/_layout.material.scss +3 -0
  120. package/styles/multicolumn-combobox/_layout.material3-dark.scss +3 -0
  121. package/styles/multicolumn-combobox/_layout.material3.scss +3 -0
  122. package/styles/multicolumn-combobox/_layout.scss +0 -1
  123. package/styles/multicolumn-combobox/_layout.tailwind-dark.scss +3 -0
  124. package/styles/multicolumn-combobox/_layout.tailwind.scss +3 -0
  125. package/styles/multicolumn-combobox/_layout.tailwind3.scss +3 -0
  126. package/styles/multicolumn-combobox/_theme-variables.bds.scss +1 -0
  127. package/styles/multicolumn-combobox/_theme-variables.bootstrap-dark.scss +1 -0
  128. package/styles/multicolumn-combobox/_theme-variables.bootstrap.scss +1 -0
  129. package/styles/multicolumn-combobox/_theme-variables.bootstrap4.scss +1 -0
  130. package/styles/multicolumn-combobox/_theme-variables.bootstrap5-dark.scss +1 -0
  131. package/styles/multicolumn-combobox/_theme-variables.bootstrap5.3.scss +1 -0
  132. package/styles/multicolumn-combobox/_theme-variables.bootstrap5.scss +1 -0
  133. package/styles/multicolumn-combobox/_theme-variables.fabric-dark.scss +1 -0
  134. package/styles/multicolumn-combobox/_theme-variables.fabric.scss +1 -0
  135. package/styles/multicolumn-combobox/_theme-variables.fluent-dark.scss +1 -0
  136. package/styles/multicolumn-combobox/_theme-variables.fluent.scss +1 -0
  137. package/styles/multicolumn-combobox/_theme-variables.fluent2.scss +1 -0
  138. package/styles/multicolumn-combobox/_theme-variables.highcontrast-light.scss +1 -0
  139. package/styles/multicolumn-combobox/_theme-variables.highcontrast.scss +1 -0
  140. package/styles/multicolumn-combobox/_theme-variables.material-dark.scss +1 -0
  141. package/styles/multicolumn-combobox/_theme-variables.material.scss +1 -0
  142. package/styles/multicolumn-combobox/_theme-variables.material3-dark.scss +1 -0
  143. package/styles/multicolumn-combobox/_theme-variables.material3.scss +1 -0
  144. package/styles/multicolumn-combobox/_theme-variables.tailwind-dark.scss +1 -0
  145. package/styles/multicolumn-combobox/_theme-variables.tailwind.scss +1 -0
  146. package/styles/multicolumn-combobox/_theme.bds.scss +4 -0
  147. package/styles/multicolumn-combobox/_theme.bootstrap-dark.scss +4 -0
  148. package/styles/multicolumn-combobox/_theme.bootstrap.scss +4 -0
  149. package/styles/multicolumn-combobox/_theme.bootstrap4.scss +4 -0
  150. package/styles/multicolumn-combobox/_theme.bootstrap5-dark.scss +4 -0
  151. package/styles/multicolumn-combobox/_theme.bootstrap5.3.scss +4 -0
  152. package/styles/multicolumn-combobox/_theme.bootstrap5.scss +4 -0
  153. package/styles/multicolumn-combobox/_theme.fabric-dark.scss +4 -0
  154. package/styles/multicolumn-combobox/_theme.fabric.scss +4 -0
  155. package/styles/multicolumn-combobox/_theme.fluent-dark.scss +4 -0
  156. package/styles/multicolumn-combobox/_theme.fluent.scss +4 -0
  157. package/styles/multicolumn-combobox/_theme.fluent2.scss +4 -0
  158. package/styles/multicolumn-combobox/_theme.highcontrast-light.scss +4 -0
  159. package/styles/multicolumn-combobox/_theme.highcontrast.scss +4 -0
  160. package/styles/multicolumn-combobox/_theme.material-dark.scss +4 -0
  161. package/styles/multicolumn-combobox/_theme.material.scss +4 -0
  162. package/styles/multicolumn-combobox/_theme.material3-dark.scss +4 -0
  163. package/styles/multicolumn-combobox/_theme.material3.scss +4 -0
  164. package/styles/multicolumn-combobox/_theme.scss +0 -1
  165. package/styles/multicolumn-combobox/_theme.tailwind-dark.scss +4 -0
  166. package/styles/multicolumn-combobox/_theme.tailwind.scss +4 -0
  167. package/styles/multicolumn-combobox/_theme.tailwind3.scss +4 -0
  168. package/styles/multicolumn-combobox/bds.css +12 -0
  169. package/styles/multicolumn-combobox/bds.scss +2 -2
  170. package/styles/multicolumn-combobox/bootstrap-dark.scss +2 -2
  171. package/styles/multicolumn-combobox/bootstrap.scss +2 -2
  172. package/styles/multicolumn-combobox/bootstrap4.scss +2 -2
  173. package/styles/multicolumn-combobox/bootstrap5-dark.scss +2 -2
  174. package/styles/multicolumn-combobox/bootstrap5.3.css +252 -0
  175. package/styles/multicolumn-combobox/bootstrap5.3.scss +2 -2
  176. package/styles/multicolumn-combobox/bootstrap5.scss +2 -2
  177. package/styles/multicolumn-combobox/fabric-dark.scss +2 -2
  178. package/styles/multicolumn-combobox/fabric.scss +2 -2
  179. package/styles/multicolumn-combobox/fluent-dark.scss +2 -2
  180. package/styles/multicolumn-combobox/fluent.scss +2 -2
  181. package/styles/multicolumn-combobox/fluent2.css +258 -0
  182. package/styles/multicolumn-combobox/fluent2.scss +2 -2
  183. package/styles/multicolumn-combobox/highcontrast-light.scss +2 -2
  184. package/styles/multicolumn-combobox/highcontrast.scss +2 -2
  185. package/styles/multicolumn-combobox/material-dark.scss +2 -2
  186. package/styles/multicolumn-combobox/material.scss +2 -2
  187. package/styles/multicolumn-combobox/material3-dark.css +246 -0
  188. package/styles/multicolumn-combobox/material3-dark.scss +2 -2
  189. package/styles/multicolumn-combobox/material3.css +252 -0
  190. package/styles/multicolumn-combobox/material3.scss +2 -2
  191. package/styles/multicolumn-combobox/tailwind-dark.scss +2 -2
  192. package/styles/multicolumn-combobox/tailwind.scss +2 -2
  193. package/styles/multicolumn-combobox/tailwind3.css +222 -0
  194. package/styles/multicolumn-combobox/tailwind3.scss +2 -2
  195. package/styles/tailwind-dark-lite.scss +1 -1
  196. package/styles/tailwind-dark.scss +2 -2
  197. package/styles/tailwind-lite.scss +1 -1
  198. package/styles/tailwind.scss +2 -2
  199. package/styles/tailwind3-lite.css +148 -0
  200. package/styles/tailwind3-lite.scss +1 -1
  201. package/styles/tailwind3.css +222 -0
  202. package/styles/tailwind3.scss +2 -2
  203. package/tslint.json +111 -0
  204. /package/styles/multicolumn-combobox/{_theme-variables.scss → _theme-variables.tailwind3.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-multicolumn-combobox.min.js","sources":["../../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, getValue } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar HIDDENELEMENT = 'e-multicolumn-list-hidden';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort, Resize);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], GridSettings.prototype, \"textWrapMode\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type='text' id='multi-column'></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo('#multi-column');\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.isShowSpinner = true;\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id += '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderInput();\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource)\n && this.dataSource instanceof DataManager) {\n this.isInitialValueRender = true;\n }\n if (this.gridData == null) {\n this.setGridData(this.dataSource);\n }\n this.renderGrid();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.setGridData = function (dataSource, query) {\n var _this = this;\n this.trigger('actionBegin', { cancel: false, query: query }, function (args) {\n if (!args.cancel) {\n if (dataSource instanceof DataManager) {\n if (_this.isShowSpinner) {\n _this.showHideSpinner(true);\n }\n dataSource.executeQuery(_this.getQuery(query)).then(function (e) {\n _this.gridData = e.result;\n _this.trigger('actionComplete', e, function (e) {\n _this.showHideSpinner(false);\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.isInitialValueRender) {\n _this.isInitialValueRender = false;\n _this.initValue(null, null, true);\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }).catch(function (e) {\n _this.trigger('actionFailure', e, null);\n });\n }\n else {\n var dataManager = new DataManager(dataSource);\n var listItems = (_this.getQuery(query)).executeLocal(dataManager);\n _this.gridData = listItems;\n _this.trigger('actionComplete', { result: listItems }, function (e) {\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }\n }\n });\n };\n MultiColumnComboBox.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n if ((this.allowFiltering && this.typedString && this.typedString !== '')) {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, true, false);\n }\n }\n else {\n filterQuery = (this.customFilterQuery != null) ?\n this.customFilterQuery.clone() : query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n MultiColumnComboBox.prototype.setHiddenValue = function () {\n if (isNOU(this.value)) {\n this.hiddenElement.innerHTML = '';\n return;\n }\n var existingOption = this.hiddenElement.querySelector('option');\n if (!isNOU(existingOption)) {\n existingOption.textContent = this.text;\n existingOption.setAttribute('value', this.value.toString());\n }\n else if (!isNOU(this.hiddenElement)) {\n var newOption = document.createElement('option');\n newOption.text = this.text;\n newOption.setAttribute('value', this.value.toString());\n newOption.setAttribute('selected', '');\n this.hiddenElement.appendChild(newOption);\n }\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.gridData,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n beforeDataBound: function () {\n if (_this.dataSource instanceof DataManager && _this.isShowSpinner) {\n _this.showHideSpinner(true);\n _this.isShowSpinner = false;\n }\n },\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: this.element.id + \"_\" + getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.appendTo(this.gridEle);\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource) && this.dataSource instanceof Array) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n var _this = this;\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n if (Array.isArray(args.rows) && this.isDataFiltered) {\n var rows = args.rows;\n var rowHeight_1 = 0;\n rows.forEach(function (row) {\n var rowElement = _this.gridObj.getRowElementByUID(row.uid);\n if (rowElement) {\n rowHeight_1 += rowElement.getBoundingClientRect().height;\n }\n });\n this.popupRowHeight = rowHeight_1 || parseFloat(this.popupHeight);\n this.updateGridHeight(true, true);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (this.isPopupOpen) {\n this.selectedGridRow(this.gridObj.getRows()[this.gridObj.selectedRowIndex], args, true);\n this.hidePopup(args);\n this.focusIn(args);\n }\n }\n if (this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n this.gridKeyActionHandler(args, true);\n }\n };\n /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var flattenData = function (data) {\n var result = [];\n if (data && typeof data === 'object') {\n if (Array.isArray(data)) {\n data.forEach(function (item) { return result.push.apply(result, flattenData(item)); });\n }\n else {\n Object.keys(data).forEach(function (key) { return result.push.apply(result, flattenData(data[\"\" + key])); });\n }\n }\n else if (data != null) {\n result.push(String(data));\n }\n return result;\n };\n var flattenedValues = flattenData(data);\n return (flattenedValues.indexOf(selectedValue) !== -1 && flattenedValues.indexOf(selectedText) !== -1);\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n _this.selectDataRow(row.data, row.index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ?\n this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (_a) {\n var field = _a.field, header = _a.header, width = _a.width, textAlign = _a.textAlign, format = _a.format, displayAsCheckBox = _a.displayAsCheckBox, template = _a.template, headerTemplate = _a.headerTemplate, customAttributes = _a.customAttributes;\n return ({\n field: field,\n headerText: header,\n width: width,\n textAlign: textAlign.toString() === '' && _this.enableRtl ? 'Right' : textAlign,\n format: format,\n displayAsCheckBox: displayAsCheckBox,\n template: template,\n headerTemplate: headerTemplate,\n customAttributes: customAttributes,\n type: displayAsCheckBox && !format ? 'boolean' : undefined\n });\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n var groupByField = this.fields.groupBy;\n var isGroupByValid = groupByField !== '' && !isNOU(groupByField);\n if (isGroupByValid) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [groupByField]\n };\n if (this.groupTemplate && isGroupByValid) {\n this.gridObj.groupSettings.captionTemplate = this.groupTemplate;\n }\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var _this = this;\n if (this.isLocaleChanged) {\n this.isLocaleChanged = false;\n this.unWireEvents();\n this.wireEvents();\n }\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n if (this.dataSource instanceof DataManager) {\n setTimeout(function () {\n _this.showHideSpinner(false);\n });\n }\n };\n MultiColumnComboBox.prototype.showHideSpinner = function (isShow) {\n if (isShow) {\n showSpinner(this.dropdownElement);\n }\n else {\n hideSpinner(this.dropdownElement);\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'tabindex': '-1',\n 'class': HIDDENELEMENT\n }\n });\n prepend([this.hiddenElement], this.inputWrapper);\n var name = this.inputEle.getAttribute('name') ? this.inputEle.getAttribute('name') : this.inputEle.getAttribute('id');\n this.hiddenElement.setAttribute('name', name);\n this.inputEle.removeAttribute('name');\n if (!this.hiddenElement.hasAttribute('aria-label')) {\n this.hiddenElement.setAttribute('aria-label', this.getModuleName());\n }\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n this.dropdownElement = this.inputWrapper.querySelector('.e-input-group-icon.e-multicolumn-list-icon.e-icons');\n createSpinner({\n target: this.dropdownElement\n });\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = inputWidth.match(/px|%|em/) ? inputWidth : formatUnit(inputWidth);\n }\n };\n MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var _this = this;\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style': {\n var styles = htmlAttributes[htmlAttr];\n this.inputWrapper.style.cssText = '';\n if (styles) {\n styles.split(';').forEach(function (styleProperty) {\n var _a = styleProperty.split(':').map(function (part) { return part.trim(); }), property = _a[0], value = _a[1];\n if (property && value) {\n _this.inputWrapper.style.setProperty(property, value);\n }\n });\n }\n break;\n }\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.setAriaDisabled('false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.updateFieldValue = function (fieldValue, dataObj) {\n var fieldVal = getValue(fieldValue, dataObj).toString();\n return fieldVal;\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n var filteredData = dataLists.filter(function (item) {\n var fieldVal = item ? (_this.updateFieldValue(isRerender ? (isValue ? _this.fields.value :\n _this.fields.text) : !isNOU(_this.value) ? _this.fields.value : _this.fields.text, item)) : null;\n return fieldVal === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n var fieldVal = _this.updateFieldValue(isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text, data);\n return fieldVal === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n item = dataLists[this.index];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var fieldValue = item ? this.updateFieldValue(this.fields.value, item) : null;\n var ChangeEventArgs = {\n value: item ? fieldValue : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n var fieldText = this.updateFieldValue(this.fields.text, item);\n var fieldValue = this.updateFieldValue(this.fields.value, item);\n Input.setValue(fieldText, this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: fieldValue,\n currentText: fieldText,\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n this.popupRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (this.popupRowHeight < this.prevGridHeight ? (this.popupRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.includes('%')) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var dataText = selectedRecords ? this.updateFieldValue(this.fields.text, selectedRecords) : '';\n var dataValue = selectedRecords ? this.updateFieldValue(this.fields.value, selectedRecords) : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: selectedRecords ? dataText : '', value: selectedRecords ? dataValue : '' },\n event: e,\n cancel: false,\n value: selectedRecords ? dataValue : '',\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecords ? dataValue : '', selectedRecords ? dataText : '', _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecords ? dataText : '', _this.inputEle, _this.floatLabelType, _this.showClearButton);\n _this.setHiddenValue();\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text || this.text;\n this.value = value || this.value;\n this.index = this.selectedRowIndex = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n this.setHiddenValue();\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n this.typedString = e.target.value.toLowerCase();\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.typedString,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.customFilterQuery = query ? query.clone() : query;\n _this.setGridData(dataSource, query);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !_this.isCustomFilter) {\n _this.setGridData(_this.dataSource, _this.query ? _this.query.clone() : null);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData;\n return __generator(this, function (_c) {\n if (this.dataSource instanceof DataManager) {\n (_a = this.filterDatas(this.mainData, inputValue), data = _a.data, exactData = _a.exactData);\n }\n else if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return inputValue && fieldText.toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return fieldText === inputValue;\n });\n return { data: data, exactData: exactData };\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data, exactData) {\n if (data.length <= 0) {\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n return;\n }\n this.matchedContent = data[0];\n this.exactMatchedContent = exactData[0];\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function () {\n if (this.gridData && this.gridData.length > 0) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = this.gridData;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-multicolumn-list.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n var isClearVal = this.inputEle.value === '' ? true : false;\n this.updateValuesOnInput(e, null, isClearVal);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val && e.code !== 'Enter') {\n this.inputEle.value = null;\n this.setProperties({ value: null, index: null, text: null }, true);\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var fieldText = this.updateFieldValue(this.fields.text, this.matchedContent);\n var fieldValue = this.updateFieldValue(this.fields.value, this.matchedContent);\n this.inputEle.value = fieldText;\n this.value = fieldValue;\n var selectIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.index = selectIndex;\n this.text = fieldText;\n this.gridObj.selectRow(selectIndex);\n this.selectedGridRow(this.gridObj.getRowByIndex(selectIndex), e);\n this.previousItemElement = this.gridObj.getSelectedRows()[0];\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e, false, true);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[parseInt(index.toString(), 10)], e, true);\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.isShowSpinner = true;\n this.setGridData(newDataSource);\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n if (this.inputWrapper) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_options', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n _this.gridObj.selectRow(_this.selectedRowIndex);\n }\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle.firstElementChild);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n var target = e ? e.target : null;\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n _this.customFilterQuery = null;\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.allowFiltering ? _this.mainData : _this.gridData;\n var noRecordEle = _this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n _this.popupDiv.removeChild(noRecordEle);\n removeClass([_this.popupDiv], [NODATA]);\n }\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n return dataLists.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n this.hiddenElement = null;\n this.dropdownElement = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n this.isMainDataUpdated = false;\n this.setGridData(this.dataSource);\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\n if (!(isNOU(newProp.gridSettings.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.gridSettings.allowTextWrap;\n }\n if (!(isNOU(newProp.gridSettings.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.gridSettings.textWrapMode;\n }\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n case 'locale':\n this.isLocaleChanged = true;\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","verb","n","v","op","f","TypeError","_","y","t","call","label","ops","pop","trys","push","g","sent","throw","return","Symbol","iterator","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","gridInject","isShowSpinner","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","index","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","trigger","cancel","args","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","listItems","executeLocal","filterQuery","isCustomFilter","allowFiltering","clone","Query","filterType","typedString","fields","where","customFilterQuery","setHiddenValue","hiddenElement","innerHTML","existingOption","querySelector","newOption","document","setAttribute","toString","textContent","gridColumns","getGridColumns","sortOrder","toLowerCase","gridObj","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","beforeDataBound","dataBound","onDataBound","actionFailure","onActionFailure","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","isArray","rows","isDataFiltered","rowHeight_1","forEach","row","rowElement","getRowElementByUID","uid","getBoundingClientRect","popupRowHeight","parseFloat","updateGridHeight","popupObj","refreshPosition","scrollTop","isPopupOpen","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","flattenData","item","keys","String","flattenedValues","indexOf","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","every","map","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","isLocaleChanged","unWireEvents","dataCount","popupChild","hasNoDataClass","contains","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","rowElements","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","attributes","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","aria-hidden","class","prepend","name","removeAttribute","hasAttribute","setElementWidth","createSpinner","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","styles","cssText","split","styleProperty","part","trim","property","setProperty","defaultAttr","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","updateValues","dataList","updateCurrentValues","value_1","filteredData","dataLists","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","setValue","MULTICOLUMNLIST","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","eventArgs_1","preventDefaultAction","updateData","updateInputValue","inputValue","_b","exactData","_c","filterDatas","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","remove","destroy","preventDefault","focusedEle","closest","focusOut","isClearVal","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","code","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","action","updateSelectedItem","isGroup","keyActionMap","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","animModel","duration","popup","animation","aria-owns","aria-controls","contentEle","activeRow","firstRow","show","Animation","firstElementChild","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-multicolumn-combobox.min.js","sources":["../../src/multicolumn-combobox/multi-column-combo-box.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, getValue } from '@syncfusion/ej2-base';\nimport { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';\nimport { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Grid, Resize, VirtualScroll, Group as GridGroup, Edit, Sort } from '@syncfusion/ej2-grids';\nvar DROPDOWNICON = 'e-input-group-icon e-multicolumn-list-icon e-icons';\nvar CONTENT = 'e-popup-content';\nvar ICONANIMATION = 'e-icon-anim';\nvar NODATA = 'e-nodata';\nvar DISABLED = 'e-disabled';\nvar INPUTFOCUS = 'e-input-focus';\nvar MULTICOLUMNLIST = 'e-multicolumn-list';\nvar HIDDENELEMENT = 'e-multicolumn-list-hidden';\nvar MULTICOLUMNGRID = 'e-multicolumn-grid';\nvar MultiColumnGrid = /** @class */ (function () {\n function MultiColumnGrid() {\n }\n /**\n * Injecting required modules for component.\n *\n * @returns {void}\n * @private\n */\n MultiColumnGrid.prototype.InjectModules = function () {\n Grid.Inject(VirtualScroll, GridGroup, Edit, Sort, Resize);\n };\n return MultiColumnGrid;\n}());\nexport { MultiColumnGrid };\n/**\n * Defines the filter type.\n */\nexport var FilterType;\n(function (FilterType) {\n /**\n * Checks whether a value begins with the specified value.\n */\n FilterType[\"StartsWith\"] = \"StartsWith\";\n /**\n * Checks whether a value ends with specified value.\n */\n FilterType[\"EndsWith\"] = \"EndsWith\";\n /**\n * Checks whether a value contains with specified value.\n */\n FilterType[\"Contains\"] = \"Contains\";\n})(FilterType || (FilterType = {}));\n/**\n * Specifies the sortOrder to sort the data source.\n */\nexport var SortOrder;\n(function (SortOrder) {\n /**\n * The datasource is not sorting. Default value is None.\n */\n SortOrder[\"None\"] = \"None\";\n /**\n * The datasource is sorting with ascending order.\n */\n SortOrder[\"Ascending\"] = \"Ascending\";\n /**\n * The data source is sorting with descending order.\n */\n SortOrder[\"Descending\"] = \"Descending\";\n})(SortOrder || (SortOrder = {}));\n/**\n * Specifies the type of sorting to be applied for the columns.\n */\nexport var SortType;\n(function (SortType) {\n /**\n * Allow sorting only one column\n */\n SortType[\"OneColumn\"] = \"OneColumn\";\n /**\n * Allow sorting multiple columns\n */\n SortType[\"MultipleColumns\"] = \"MultipleColumns\";\n})(SortType || (SortType = {}));\n/**\n * Specifies the type of wrap mode to be applied for the grid cells.\n */\nexport var WrapMode;\n(function (WrapMode) {\n /**\n * Specifies that both header and content text wrapping are enabled.\n */\n WrapMode[\"Both\"] = \"Both\";\n /**\n * Specifies that only content text wrapping is enabled.\n */\n WrapMode[\"Content\"] = \"Content\";\n /**\n * Specifies that only header text wrapping is enabled.\n */\n WrapMode[\"Header\"] = \"Header\";\n})(WrapMode || (WrapMode = {}));\n/**\n * The fields property maps the columns of the data table and binds the data to the component.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies the number of columns and its respective fields to be displayed in the dropdown popup.\n */\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Column.prototype, \"field\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"header\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Column.prototype, \"textAlign\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"format\", void 0);\n __decorate([\n Property(false)\n ], Column.prototype, \"displayAsCheckBox\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], Column.prototype, \"customAttributes\", void 0);\n return Column;\n}(ChildProperty));\nexport { Column };\n/**\n * Specifies the configuration of the columns in the popup content.\n */\nvar GridSettings = /** @class */ (function (_super) {\n __extends(GridSettings, _super);\n function GridSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"enableAltRow\", void 0);\n __decorate([\n Property(null)\n ], GridSettings.prototype, \"rowHeight\", void 0);\n __decorate([\n Property('Default')\n ], GridSettings.prototype, \"gridLines\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Property(WrapMode.Both)\n ], GridSettings.prototype, \"textWrapMode\", void 0);\n __decorate([\n Property(false)\n ], GridSettings.prototype, \"allowResizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], GridSettings.prototype, \"resizeStop\", void 0);\n return GridSettings;\n}(ChildProperty));\nexport { GridSettings };\n/**\n * The `MultiColumnComboBox` allows the user to search and select values from a list. It provides a list of options that can be selected using a filter input.\n * The selected value will be displayed in the input element.\n *\n * ```html\n * <input type='text' id='multi-column'></input>\n * ```\n * ```typescript\n * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();\n * multiColObj.appendTo('#multi-column');\n * ```\n */\nvar MultiColumnComboBox = /** @class */ (function (_super) {\n __extends(MultiColumnComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {MultiColumnComboBoxModel} options - Specifies the MultiColumnComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function MultiColumnComboBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.gridInject = new MultiColumnGrid();\n _this.isShowSpinner = true;\n _this.gridInject.InjectModules();\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n MultiColumnComboBox.prototype.preRender = function () {\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.keyConfigs = {\n escape: 'escape',\n altUp: 'alt+uparrow',\n altDown: 'alt+downarrow',\n tab: 'tab',\n shiftTab: 'shift+tab',\n end: 'end',\n enter: 'enter',\n home: 'home',\n moveDown: 'downarrow',\n moveUp: 'uparrow'\n };\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n this.persistData();\n };\n MultiColumnComboBox.prototype.getDirective = function () {\n return 'EJS-MULTICOLUMNCOMBOBOX';\n };\n /**\n * To get component name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n MultiColumnComboBox.prototype.getModuleName = function () {\n return 'multicolumncombobox';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @private\n * @returns {string} - It returns the persisted data.\n */\n MultiColumnComboBox.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n MultiColumnComboBox.prototype.persistData = function () {\n if (this.enablePersistence) {\n this.element.id += '_wrapper';\n var data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n if (!(isNOU(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n }\n };\n MultiColumnComboBox.prototype.render = function () {\n this.renderInput();\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource)\n && this.dataSource instanceof DataManager) {\n this.isInitialValueRender = true;\n }\n if (this.gridData == null) {\n this.setGridData(this.dataSource);\n }\n this.renderGrid();\n this.popupDiv = this.createElement('div', { className: CONTENT });\n this.popupDiv.appendChild(this.gridEle);\n this.setHTMLAttributes();\n this.renderPopup();\n this.wireEvents();\n };\n MultiColumnComboBox.prototype.setGridData = function (dataSource, query) {\n var _this = this;\n this.trigger('actionBegin', { cancel: false, query: query }, function (args) {\n if (!args.cancel) {\n if (dataSource instanceof DataManager) {\n if (_this.isShowSpinner) {\n _this.showHideSpinner(true);\n }\n dataSource.executeQuery(_this.getQuery(query)).then(function (e) {\n _this.gridData = e.result;\n _this.trigger('actionComplete', e, function (e) {\n _this.showHideSpinner(false);\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.isInitialValueRender) {\n _this.isInitialValueRender = false;\n _this.initValue(null, null, true);\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }).catch(function (e) {\n _this.trigger('actionFailure', e, null);\n });\n }\n else {\n var dataManager = new DataManager(dataSource);\n var listItems = (_this.getQuery(query)).executeLocal(dataManager);\n _this.gridData = listItems;\n _this.trigger('actionComplete', { result: listItems }, function (e) {\n if (!_this.isMainDataUpdated) {\n _this.mainData = _this.gridData;\n _this.remoteDataLength = _this.gridData.length;\n _this.isMainDataUpdated = true;\n }\n if (_this.popupDiv) {\n _this.updateGridDataSource();\n }\n });\n }\n }\n });\n };\n MultiColumnComboBox.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n if ((this.allowFiltering && this.typedString && this.typedString !== '')) {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, true, false);\n }\n }\n else {\n filterQuery = (this.customFilterQuery != null) ?\n this.customFilterQuery.clone() : query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n MultiColumnComboBox.prototype.setHiddenValue = function () {\n if (isNOU(this.value)) {\n this.hiddenElement.innerHTML = '';\n return;\n }\n var existingOption = this.hiddenElement.querySelector('option');\n if (!isNOU(existingOption)) {\n existingOption.textContent = this.text;\n existingOption.setAttribute('value', this.value.toString());\n }\n else if (!isNOU(this.hiddenElement)) {\n var newOption = document.createElement('option');\n newOption.text = this.text;\n newOption.setAttribute('value', this.value.toString());\n newOption.setAttribute('selected', '');\n this.hiddenElement.appendChild(newOption);\n }\n };\n MultiColumnComboBox.prototype.renderGrid = function () {\n var _this = this;\n var gridColumns = this.getGridColumns();\n var sortOrder = this.sortOrder.toString().toLowerCase();\n this.gridObj = new Grid({\n dataSource: this.gridData,\n columns: gridColumns,\n allowSorting: this.allowSorting,\n enableStickyHeader: true,\n gridLines: this.gridSettings.gridLines,\n rowHeight: this.gridSettings.rowHeight,\n enableAltRow: this.gridSettings.enableAltRow,\n enableVirtualization: this.enableVirtualization,\n enableRtl: this.enableRtl,\n editSettings: { allowAdding: false },\n allowTextWrap: this.gridSettings.allowTextWrap,\n textWrapSettings: { wrapMode: this.gridSettings.textWrapMode },\n height: this.popupHeight,\n allowResizing: this.gridSettings.allowResizing,\n allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,\n rowTemplate: this.itemTemplate,\n beforeDataBound: function () {\n if (_this.dataSource instanceof DataManager && _this.isShowSpinner) {\n _this.showHideSpinner(true);\n _this.isShowSpinner = false;\n }\n },\n dataBound: function () { _this.onDataBound(); },\n actionFailure: function (args) { _this.onActionFailure(args); },\n actionComplete: this.handleActionComplete.bind(this),\n keyPressed: this.handleKeyPressed.bind(this),\n resizing: function (args) {\n if (_this.gridSettings.resizing) {\n _this.gridSettings.resizing.call(_this, args);\n }\n },\n resizeStart: function (args) {\n if (_this.gridSettings.resizeStart) {\n _this.gridSettings.resizeStart.call(_this, args);\n }\n },\n resizeStop: function (args) {\n if (_this.gridSettings.resizeStop) {\n _this.gridSettings.resizeStop.call(_this, args);\n }\n }\n });\n this.gridEle = this.createElement('div', { id: this.element.id + \"_\" + getUniqueID('grid'), className: MULTICOLUMNGRID });\n this.updateGroupByField();\n if (gridColumns.length > 0) {\n // Set first column as primary key to avoid PRIMARY KEY MISSING warning.\n this.gridObj.columns[0].isPrimaryKey = true;\n }\n if (sortOrder !== 'none') {\n this.gridObj.sortSettings = { columns: [{ field: this.fields.text, direction: sortOrder === 'ascending' ?\n SortOrder.Ascending : SortOrder.Descending }] };\n }\n this.gridObj.appendTo(this.gridEle);\n if ((!isNOU(this.value) || !isNOU(this.text) || !isNOU(this.index)) && !isNOU(this.dataSource) && this.dataSource instanceof Array) {\n this.initValue(null, null, true);\n }\n };\n MultiColumnComboBox.prototype.handleActionComplete = function (args) {\n var _this = this;\n if (args.requestType === 'sorting') {\n this.updateRowSelection(args);\n }\n if (Array.isArray(args.rows) && this.isDataFiltered) {\n var rows = args.rows;\n var rowHeight_1 = 0;\n rows.forEach(function (row) {\n var rowElement = _this.gridObj.getRowElementByUID(row.uid);\n if (rowElement) {\n rowHeight_1 += rowElement.getBoundingClientRect().height;\n }\n });\n this.popupRowHeight = rowHeight_1 || parseFloat(this.popupHeight);\n this.updateGridHeight(true, true);\n }\n this.popupObj.refreshPosition();\n this.gridObj.element.querySelector('.e-content').scrollTop = 0;\n };\n MultiColumnComboBox.prototype.handleKeyPressed = function (args) {\n if (args.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n if (this.isPopupOpen) {\n this.selectedGridRow(this.gridObj.getRows()[this.gridObj.selectedRowIndex], args, true);\n this.hidePopup(args);\n this.focusIn(args);\n }\n }\n if (this.fields.groupBy) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.cancel = true;\n this.gridKeyActionHandler(args, true);\n }\n };\n /* eslint-disable @typescript-eslint/no-explicit-any */\n MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {\n var flattenData = function (data) {\n var result = [];\n if (data && typeof data === 'object') {\n if (Array.isArray(data)) {\n data.forEach(function (item) { return result.push.apply(result, flattenData(item)); });\n }\n else {\n Object.keys(data).forEach(function (key) { return result.push.apply(result, flattenData(data[\"\" + key])); });\n }\n }\n else if (data != null) {\n result.push(String(data));\n }\n return result;\n };\n var flattenedValues = flattenData(data);\n return (flattenedValues.indexOf(selectedValue) !== -1 && flattenedValues.indexOf(selectedText) !== -1);\n };\n MultiColumnComboBox.prototype.updateRowSelection = function (args) {\n var _this = this;\n if (args) {\n var dataRows = args.rows;\n dataRows.forEach(function (row) {\n _this.selectDataRow(row.data, row.index);\n });\n }\n };\n MultiColumnComboBox.prototype.selectDataRow = function (data, index) {\n var isPresent = this.isRowMatching(data, this.value ?\n this.value.toString() : '', this.text ? this.text.toString() : '');\n if (isPresent) {\n this.gridObj.selectRow(index);\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.index = index;\n this.isProtectedOnChange = prevOnChange;\n return;\n }\n };\n MultiColumnComboBox.prototype.findIndex = function (arr, obj) {\n return arr.findIndex(function (item) {\n // eslint-disable-next-line\n return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });\n });\n };\n MultiColumnComboBox.prototype.getGridColumns = function () {\n var _this = this;\n return this.columns.map(function (_a) {\n var field = _a.field, header = _a.header, width = _a.width, textAlign = _a.textAlign, format = _a.format, displayAsCheckBox = _a.displayAsCheckBox, template = _a.template, headerTemplate = _a.headerTemplate, customAttributes = _a.customAttributes;\n return ({\n field: field,\n headerText: header,\n width: width,\n textAlign: textAlign.toString() === '' && _this.enableRtl ? 'Right' : textAlign,\n format: format,\n displayAsCheckBox: displayAsCheckBox,\n template: template,\n headerTemplate: headerTemplate,\n customAttributes: customAttributes,\n type: displayAsCheckBox && !format ? 'boolean' : undefined\n });\n });\n };\n MultiColumnComboBox.prototype.updateGroupByField = function () {\n var groupByField = this.fields.groupBy;\n var isGroupByValid = groupByField !== '' && !isNOU(groupByField);\n if (isGroupByValid) {\n if (this.sortType.toString().toLowerCase() !== 'multiplecolumns') {\n this.gridEle.classList.add('e-multicolumn-group');\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.allowGrouping = true;\n this.gridObj.groupSettings = {\n showDropArea: false,\n columns: [groupByField]\n };\n if (this.groupTemplate && isGroupByValid) {\n this.gridObj.groupSettings.captionTemplate = this.groupTemplate;\n }\n if (this.isVue) {\n this.gridObj.isVue = this.isVue;\n }\n this.isProtectedOnChange = prevOnChange;\n }\n };\n MultiColumnComboBox.prototype.onDataBound = function () {\n var _this = this;\n if (this.isLocaleChanged) {\n this.isLocaleChanged = false;\n this.unWireEvents();\n this.wireEvents();\n }\n var dataCount = this.dataSource.length;\n var popupChild = this.popupDiv.querySelector('.' + MULTICOLUMNGRID);\n var hasNoDataClass = this.popupDiv.classList.contains(NODATA);\n if (dataCount <= 0 && popupChild) {\n this.l10nUpdate();\n this.popupDiv.removeChild(this.gridEle);\n addClass([this.popupDiv], [NODATA]);\n }\n else if (hasNoDataClass && dataCount >= 1) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n }\n if (this.isInitialRender) {\n var gridContentRow = this.popupDiv.querySelector('.e-gridcontent tr');\n var rowHeight = !hasNoDataClass ? gridContentRow ?\n gridContentRow.getBoundingClientRect().height : 0 :\n this.popupDiv.getBoundingClientRect().height;\n this.popupRowHeight = rowHeight;\n this.popupObj.hide();\n this.popupEle.style.visibility = 'unset';\n this.isInitialRender = false;\n }\n var rowElements = this.gridObj.element.querySelectorAll('.e-row');\n if (this.isDataFiltered && rowElements.length > 0 && this.inputEle.value !== '') {\n var firstRowEle = rowElements[0];\n firstRowEle.classList.add('e-row-focus');\n }\n if (this.dataSource instanceof DataManager) {\n setTimeout(function () {\n _this.showHideSpinner(false);\n });\n }\n };\n MultiColumnComboBox.prototype.showHideSpinner = function (isShow) {\n if (isShow) {\n showSpinner(this.dropdownElement);\n }\n else {\n hideSpinner(this.dropdownElement);\n }\n };\n MultiColumnComboBox.prototype.onActionFailure = function (args) {\n this.trigger('actionFailure', args);\n this.l10nUpdate(true);\n addClass([this.popupDiv], [NODATA]);\n };\n MultiColumnComboBox.prototype.renderInput = function () {\n var allowedAttributes = ['aria-expanded', 'aria-readOnly', 'aria-disabled', 'autocomplete',\n 'autocapitalize', 'spellcheck', 'tabindex'];\n var setAttributes = function (element, attributes) {\n for (var key in attributes) {\n // eslint-disable-next-line no-prototype-builtins\n if (attributes.hasOwnProperty(key) && allowedAttributes.indexOf(key) !== -1 && isNOU(element.getAttribute(key))) {\n element.setAttribute(key, attributes[key]);\n }\n }\n };\n if (this.element.tagName === 'INPUT') {\n this.inputEle = this.element;\n if (isNOU(this.inputEle.getAttribute('role'))) {\n this.inputEle.setAttribute('role', 'combobox');\n }\n if (isNOU(this.inputEle.getAttribute('type'))) {\n this.inputEle.setAttribute('type', 'text');\n }\n setAttributes(this.inputEle, {\n 'aria-expanded': 'false',\n 'aria-readOnly': this.readonly.toString(),\n 'aria-disabled': this.disabled.toString(),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n tabindex: '0'\n });\n }\n else {\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\n this.element.parentElement.insertBefore(this.inputEle, this.element);\n }\n this.inputObj = Input.createInput({\n element: this.inputEle,\n buttons: [DROPDOWNICON],\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: !this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n cssClass: this.cssClass\n }\n }, this.createElement);\n this.inputWrapper = this.inputObj.container;\n this.inputWrapper.classList.add(MULTICOLUMNLIST);\n this.inputWrapper.setAttribute('spellcheck', 'false');\n this.hiddenElement = this.createElement('select', {\n attrs: {\n 'aria-hidden': 'true',\n 'tabindex': '-1',\n 'class': HIDDENELEMENT\n }\n });\n prepend([this.hiddenElement], this.inputWrapper);\n var name = this.inputEle.getAttribute('name') ? this.inputEle.getAttribute('name') : this.inputEle.getAttribute('id');\n this.hiddenElement.setAttribute('name', name);\n this.inputEle.removeAttribute('name');\n if (!this.hiddenElement.hasAttribute('aria-label')) {\n this.hiddenElement.setAttribute('aria-label', this.getModuleName());\n }\n if (this.element.tagName === this.getDirective()) {\n this.element.appendChild(this.inputWrapper);\n }\n this.setElementWidth(this.width);\n this.dropdownElement = this.inputWrapper.querySelector('.e-input-group-icon.e-multicolumn-list-icon.e-icons');\n createSpinner({\n target: this.dropdownElement\n });\n };\n MultiColumnComboBox.prototype.setElementWidth = function (inputWidth) {\n if (isNOU(inputWidth)) {\n return;\n }\n var ddElement = this.inputWrapper;\n if (typeof inputWidth === 'number') {\n ddElement.style.width = formatUnit(inputWidth);\n }\n else if (typeof inputWidth === 'string') {\n ddElement.style.width = inputWidth.match(/px|%|em/) ? inputWidth : formatUnit(inputWidth);\n }\n };\n MultiColumnComboBox.prototype.setHTMLAttributes = function () {\n var _this = this;\n var htmlAttributes = this.htmlAttributes;\n var inputEle = this.inputEle;\n if (Object.keys(htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n switch (htmlAttr) {\n case 'class':\n this.inputWrapper.classList.add(htmlAttributes[htmlAttr]);\n break;\n case 'disabled':\n this.setProperties({ enabled: false }, true);\n this.setEnable();\n break;\n case 'readonly':\n this.setProperties({ readonly: true }, true);\n this.dataBind();\n break;\n case 'style': {\n var styles = htmlAttributes[htmlAttr];\n this.inputWrapper.style.cssText = '';\n if (styles) {\n styles.split(';').forEach(function (styleProperty) {\n var _a = styleProperty.split(':').map(function (part) { return part.trim(); }), property = _a[0], value = _a[1];\n if (property && value) {\n _this.inputWrapper.style.setProperty(property, value);\n }\n });\n }\n break;\n }\n default: {\n var defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(htmlAttributes[htmlAttr], inputEle);\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n }\n else {\n inputEle.setAttribute(htmlAttr, htmlAttributes[htmlAttr]);\n }\n break;\n }\n }\n }\n }\n };\n /* To set enable property */\n MultiColumnComboBox.prototype.setEnable = function () {\n Input.setEnabled(!this.disabled, this.inputEle);\n if (!this.disabled) {\n removeClass([this.inputWrapper], DISABLED);\n this.setAriaDisabled('false');\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n addClass([this.inputWrapper], DISABLED);\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n }\n this.setAriaDisabled('true');\n }\n };\n MultiColumnComboBox.prototype.setAriaDisabled = function (value) {\n this.inputEle.setAttribute('aria-disabled', value);\n this.inputWrapper.setAttribute('aria-disabled', value);\n };\n MultiColumnComboBox.prototype.updateFieldValue = function (fieldValue, dataObj) {\n var fieldVal = getValue(fieldValue, dataObj).toString();\n return fieldVal;\n };\n MultiColumnComboBox.prototype.initValue = function (isRerender, isValue, isInitial) {\n var _this = this;\n var prevItemData = this.gridObj.getSelectedRecords()[0];\n var prevItemEle = this.gridObj.getSelectedRows()[0];\n var item;\n var currentValue;\n var currentText;\n var currentIndex;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = this.value ? this.value.toString() : this.value;\n this.isProtectedOnChange = prevOnChange;\n var updateValues = function (dataList) {\n var result = _this.updateCurrentValues(item, dataList);\n currentValue = result.currentValue;\n currentText = result.currentText;\n currentIndex = result.currentIndex;\n };\n if ((!isRerender && (!isNOU(this.value) || !isNOU(this.text))) || (isRerender && isValue !== undefined)) {\n var value_1 = isRerender ? (isValue ? this.value : this.text) : (!isNOU(this.value) ? this.value : this.text);\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n var filteredData = dataLists.filter(function (item) {\n var fieldVal = item ? (_this.updateFieldValue(isRerender ? (isValue ? _this.fields.value :\n _this.fields.text) : !isNOU(_this.value) ? _this.fields.value : _this.fields.text, item)) : null;\n return fieldVal === value_1;\n });\n if (filteredData.length > 0) {\n item = filteredData[0];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n item = this.dataSource.filter(function (data) {\n var fieldVal = _this.updateFieldValue(isRerender ? (isValue ? _this.fields.value : _this.fields.text) :\n !isNOU(_this.value) ? _this.fields.value : _this.fields.text, data);\n return fieldVal === value_1;\n })[0];\n updateValues(this.dataSource);\n }\n }\n else if (!isNOU(this.index)) {\n if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n item = dataLists[this.index];\n updateValues(dataLists);\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n this.gridObj.selectRow(this.index);\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n if (!this.fields.groupBy) {\n item = this.dataSource[this.index];\n updateValues(this.dataSource);\n }\n else {\n setTimeout(function () {\n var rows = _this.gridObj.getRows();\n if (rows && rows.length > 0) {\n var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;\n var value = _this.fields.value;\n for (var i = 0; i < rows.length; i++) {\n if (rowData && rowData[parseInt(value.toString(), 10)] ===\n _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {\n item = rowData;\n updateValues(_this.dataSource);\n _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n _this.gridObj.selectRow(_this.index);\n break;\n }\n }\n }\n });\n }\n }\n }\n if (!(this.dataSource instanceof DataManager)) {\n this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);\n }\n };\n MultiColumnComboBox.prototype.updateChangeEvent = function (item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial) {\n var fieldValue = item ? this.updateFieldValue(this.fields.value, item) : null;\n var ChangeEventArgs = {\n value: item ? fieldValue : null,\n itemData: { text: currentText, value: currentValue },\n item: this.getDataByValue(this.value),\n previousItemData: prevItemData,\n previousItemElement: prevItemEle,\n itemElement: this.inputWrapper,\n event: null,\n isInteracted: !isRerender\n };\n this.updateValues(currentValue, currentText, currentIndex, ChangeEventArgs, isInitial);\n };\n MultiColumnComboBox.prototype.updateCurrentValues = function (item, dataList) {\n if (!isNOU(item)) {\n var fieldText = this.updateFieldValue(this.fields.text, item);\n var fieldValue = this.updateFieldValue(this.fields.value, item);\n Input.setValue(fieldText, this.inputEle, this.floatLabelType, this.showClearButton);\n return {\n currentValue: fieldValue,\n currentText: fieldText,\n currentIndex: dataList.indexOf(item)\n };\n }\n return {\n currentValue: null,\n currentText: null,\n currentIndex: null\n };\n };\n MultiColumnComboBox.prototype.renderPopup = function () {\n this.popupEle = this.createElement('div', {\n id: this.element.id + '_options', className: MULTICOLUMNLIST + ' e-popup ' + (this.cssClass !== null ? this.cssClass : '')\n });\n attributes(this.popupEle, { 'aria-label': this.element.id, 'role': 'dialog' });\n document.body.appendChild(this.popupEle);\n this.createPopup(this.popupEle);\n prepend([this.popupDiv], this.popupEle);\n if (this.footerTemplate) {\n this.setFooterTemplate();\n }\n var popupHeight = this.getSize(false);\n this.popupEle.style.maxHeight = popupHeight;\n if (this.footerTemplate) {\n var height = Math.round(this.footer.getBoundingClientRect().height);\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\n }\n this.popupDiv.style.maxHeight = popupHeight;\n this.updateGridHeight();\n this.popupEle.style.visibility = 'hidden';\n this.isInitialRender = true;\n };\n MultiColumnComboBox.prototype.updateGridHeight = function (isFilter, autoHeight) {\n var height;\n if (isFilter) {\n var gridContentEle = this.gridObj.getContent().querySelector('.e-content');\n var scrollBarHeight = gridContentEle.offsetHeight - gridContentEle.clientHeight;\n if (this.fields.groupBy !== '' && !isNOU(this.fields.groupBy)) {\n this.popupRowHeight += this.popupRowHeight;\n }\n height = autoHeight ? (this.popupRowHeight < this.prevGridHeight ? (this.popupRowHeight + scrollBarHeight) + 'px' : this.prevGridHeight + 'px') : this.prevGridHeight + 'px';\n }\n else {\n this.prevGridHeight = this.popupDiv.getBoundingClientRect().height - this.popupDiv.querySelector('.e-gridheader').getBoundingClientRect().height;\n height = this.prevGridHeight + 'px';\n }\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.height = height;\n this.isProtectedOnChange = prevOnChange;\n };\n MultiColumnComboBox.prototype.createPopup = function (element) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.getSize(true),\n targetType: 'relative',\n collision: { X: 'flip', Y: 'flip' },\n relateTo: this.inputWrapper,\n enableRtl: this.enableRtl,\n position: { X: 'left', Y: 'bottom' },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n },\n open: function () {\n _this.inputEle.focus();\n _this.updateClearIconState();\n }\n });\n };\n MultiColumnComboBox.prototype.setFooterTemplate = function () {\n if (this.footer) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && typeof this.footerTemplate === 'function') {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], 'e-popup-footer');\n }\n var compiledString = this.getTemplateFunction(this.footerTemplate);\n var dataCount = this.dataSource.length;\n var tempArr = compiledString({ count: dataCount }, this, 'footerTemplate', this.element.id + 'footerTemplate', this.isStringTemplate, undefined, this.footer);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.footer);\n }\n append([this.footer], this.popupEle);\n };\n MultiColumnComboBox.prototype.l10nUpdate = function (actionFailure) {\n if (this.noRecord) {\n this.noRecord.innerHTML = '';\n }\n else {\n this.noRecord = this.createElement('div');\n }\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request Failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var templateId = actionFailure ? this.element.id + '_actionFailure' : this.element.id + '_noRecords';\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n var compiledString = this.getTemplateFunction(template);\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, this.noRecord);\n }\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request Failed' };\n this.l10n = new L10n('multicolumncombobox', l10nLocale, this.locale);\n this.noRecord.innerHTML = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n }\n addClass([this.noRecord], 'e-no-records');\n prepend([this.noRecord], this.popupDiv);\n this.popupObj.refreshPosition();\n };\n /**\n * Gets template content based on the template property value.\n *\n * @param {string | Function} template - Template property value.\n * @returns {Function} - Return template function.\n * @hidden\n */\n MultiColumnComboBox.prototype.getTemplateFunction = function (template) {\n if (typeof template === 'string') {\n var content = '';\n try {\n var tempEle = select(template);\n if (tempEle) {\n //Return innerHTML incase of jsrenderer script else outerHTML\n content = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML;\n }\n else {\n content = template;\n }\n }\n catch (e) {\n content = template;\n }\n return compile(content);\n }\n else {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n return compile(template);\n }\n };\n /*To calculate the width and height of the popup */\n MultiColumnComboBox.prototype.getSize = function (ispopupWidth) {\n var currentDimension = ispopupWidth ? this.popupWidth : this.popupHeight;\n var size = formatUnit(currentDimension);\n if (size.includes('%')) {\n var dimensionValue = ispopupWidth ? this.inputWrapper.offsetWidth : document.documentElement.clientHeight;\n size = (dimensionValue * parseFloat(size) / 100).toString() + 'px';\n }\n else if (typeof currentDimension === 'string') {\n size = currentDimension.match(/px|em/) ? currentDimension : size;\n }\n return size;\n };\n MultiColumnComboBox.prototype.selectedGridRow = function (row, e, isKeyNav) {\n var _this = this;\n var eventArgs = {\n isInteracted: e ? true : false,\n item: this.gridObj.getSelectedRecords()[0],\n itemElement: row,\n itemData: this.gridObj.getSelectedRecords()[0],\n event: e,\n cancel: false\n };\n var selectedRecords = this.gridObj.getSelectedRecords()[0];\n var dataText = selectedRecords ? this.updateFieldValue(this.fields.text, selectedRecords) : '';\n var dataValue = selectedRecords ? this.updateFieldValue(this.fields.value, selectedRecords) : '';\n var ChangeEventArgs = {\n isInteracted: e ? true : false,\n item: selectedRecords,\n itemElement: row,\n itemData: { text: selectedRecords ? dataText : '', value: selectedRecords ? dataValue : '' },\n event: e,\n cancel: false,\n value: selectedRecords ? dataValue : '',\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && eventArgs.itemData) {\n var event_1 = e;\n var isUpdateVal = event_1.key === 'Enter' || event_1.key === 'Tab' || event_1.shiftKey && event_1.key === 'Tab' || event_1.altKey && event_1.key === 'ArrowUp';\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.updateValues(selectedRecords ? dataValue : '', selectedRecords ? dataText : '', _this.gridObj.selectedRowIndex, ChangeEventArgs);\n }\n Input.setValue(selectedRecords ? dataText : '', _this.inputEle, _this.floatLabelType, _this.showClearButton);\n _this.setHiddenValue();\n if (!isKeyNav || (isKeyNav && isUpdateVal)) {\n _this.hidePopup(e);\n }\n }\n });\n };\n MultiColumnComboBox.prototype.updateValues = function (value, text, index, eventArgs, isInitial) {\n this.previousItemElement = eventArgs.itemElement;\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = text || this.text;\n this.value = value || this.value;\n this.index = this.selectedRowIndex = !isNOU(index) ? index : this.index;\n this.isProtectedOnChange = prevOnChange;\n this.setHiddenValue();\n if (!isInitial) {\n this.triggerChangeEvent(eventArgs);\n }\n };\n MultiColumnComboBox.prototype.triggerChangeEvent = function (eventArgs) {\n this.trigger('change', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n return;\n }\n });\n };\n MultiColumnComboBox.prototype.inputHandler = function (e) {\n var _this = this;\n this.showPopup(null, true);\n this.updateClearIconState();\n if (this.allowFiltering) {\n this.typedString = e.target.value.toLowerCase();\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.typedString,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.customFilterQuery = query ? query.clone() : query;\n _this.setGridData(dataSource, query);\n },\n event: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !eventArgs.preventDefaultAction && !_this.isCustomFilter) {\n _this.setGridData(_this.dataSource, _this.query ? _this.query.clone() : null);\n }\n });\n }\n this.updateInputValue(e.target.value);\n };\n MultiColumnComboBox.prototype.updateInputValue = function (inputValue) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, data, exactData;\n return __generator(this, function (_c) {\n if (this.dataSource instanceof DataManager) {\n (_a = this.filterDatas(this.mainData, inputValue), data = _a.data, exactData = _a.exactData);\n }\n else if (Array.isArray(this.dataSource)) {\n (_b = this.filterDatas(this.dataSource, inputValue), data = _b.data, exactData = _b.exactData);\n }\n this.selectFilteredRows(data, exactData);\n return [2 /*return*/];\n });\n });\n };\n MultiColumnComboBox.prototype.filterDatas = function (dataSource, inputValue) {\n var _this = this;\n var data = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return inputValue && fieldText.toLowerCase().startsWith(inputValue.toLowerCase());\n });\n var exactData = dataSource.filter(function (item) {\n var fieldText = _this.updateFieldValue(_this.fields.text, item);\n return fieldText === inputValue;\n });\n return { data: data, exactData: exactData };\n };\n MultiColumnComboBox.prototype.selectFilteredRows = function (data, exactData) {\n if (data.length <= 0) {\n this.matchedRowEle = this.matchedContent = this.exactMatchedContent = null;\n return;\n }\n this.matchedContent = data[0];\n this.exactMatchedContent = exactData[0];\n var selectedIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.matchedRowEle = this.gridObj.getRowByIndex(selectedIndex);\n };\n MultiColumnComboBox.prototype.updateGridDataSource = function () {\n if (this.gridData && this.gridData.length > 0) {\n removeClass([this.popupDiv], [NODATA]);\n var noRecordEle = this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n this.popupDiv.removeChild(noRecordEle);\n }\n this.gridObj.dataSource = this.gridData;\n this.isDataFiltered = true;\n }\n else {\n this.l10nUpdate();\n addClass([this.popupDiv], [NODATA]);\n }\n };\n MultiColumnComboBox.prototype.wireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputObj.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\n EventHandler.add(this.gridEle, 'click', this.onMouseClick, this);\n EventHandler.add(this.inputEle, 'input', this.inputHandler, this);\n EventHandler.add(this.inputEle, 'focus', this.focusIn, this);\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown', this.clearText, this);\n }\n EventHandler.add(window, 'resize', this.windowResize, this);\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n this.keyboardModule = new KeyboardEvents(this.gridEle, {\n keyAction: this.gridKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n };\n MultiColumnComboBox.prototype.unWireEvents = function () {\n if (!isNOU(this.inputObj.buttons[0])) {\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputObj.buttons[0], 'mousedown', this.dropDownClick);\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n EventHandler.remove(this.inputEle, 'input', this.inputHandler);\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(this.gridEle, 'click', this.onMouseClick);\n if (this.showClearButton) {\n EventHandler.remove(this.inputObj.clearButton, 'mousedown', this.clearText);\n }\n if (this.keyboardModule) {\n this.keyboardModule.destroy();\n }\n };\n MultiColumnComboBox.prototype.preventBlur = function (e) {\n e.preventDefault();\n };\n MultiColumnComboBox.prototype.dropDownClick = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.showPopup(e);\n }\n };\n MultiColumnComboBox.prototype.onMouseClick = function (e) {\n var target = e.target;\n var row = closest(target, '.e-row');\n var selectedRowIndex = this.gridObj.selectedRowIndex;\n if (row) {\n if (selectedRowIndex >= 0) {\n this.selectedGridRow(row, e);\n }\n else {\n this.gridObj.selectedRowIndex = this.gridObj.getRows().indexOf(row);\n this.gridObj.selectRow(this.gridObj.selectedRowIndex);\n this.hidePopup(e);\n }\n }\n };\n MultiColumnComboBox.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (this.disabled || this.readonly || !this.isPopupOpen) {\n if (!target.closest('.e-multicolumn-list')) {\n this.focusOut();\n }\n return;\n }\n if ((target.classList.contains('e-multicolumn-list-icon') || closest(target, '.e-multicolumn-list.e-popup'))) {\n e.preventDefault();\n }\n else {\n if (!target.classList.contains('e-multicolumncombobox') && !target.classList.contains('e-clear-icon')) {\n if (!isNOU(this.text)) {\n this.updateInputValue(this.text);\n }\n var isClearVal = this.inputEle.value === '' ? true : false;\n this.updateValuesOnInput(e, null, isClearVal);\n }\n }\n };\n MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues, isKeyDown) {\n if (isKeyDown === void 0) { isKeyDown = false; }\n var e = mouseEvent ? mouseEvent : keyEvent;\n var val = isKeyDown ? this.matchedContent : this.exactMatchedContent;\n if (!val && e.code !== 'Enter') {\n this.inputEle.value = null;\n this.setProperties({ value: null, index: null, text: null }, true);\n }\n this.hidePopup(e);\n if (this.matchedRowEle && !isClearValues && val) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var fieldText = this.updateFieldValue(this.fields.text, this.matchedContent);\n var fieldValue = this.updateFieldValue(this.fields.value, this.matchedContent);\n this.inputEle.value = fieldText;\n this.value = fieldValue;\n var selectIndex = this.findIndex(this.gridObj.currentViewData, this.matchedContent);\n this.index = selectIndex;\n this.text = fieldText;\n this.gridObj.selectRow(selectIndex);\n this.selectedGridRow(this.gridObj.getRowByIndex(selectIndex), e);\n this.previousItemElement = this.gridObj.getSelectedRows()[0];\n this.isProtectedOnChange = prevOnChange;\n }\n else {\n if (this.isDataFiltered) {\n this.inputEle.value = '';\n var ChangeEventArgs = {\n value: null,\n itemData: { text: null, value: null },\n item: null,\n previousItemData: { text: this.text, value: this.value },\n previousItemElement: this.previousItemElement,\n itemElement: null,\n event: e,\n isInteracted: true,\n cancel: false\n };\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.text = this.value = this.index = null;\n this.gridObj.refreshColumns();\n this.isProtectedOnChange = prevOnChange;\n this.triggerChangeEvent(ChangeEventArgs);\n this.isDataFiltered = false;\n this.matchedContent = this.matchedRowEle = null;\n }\n }\n };\n MultiColumnComboBox.prototype.clearText = function (e) {\n this.isDataFiltered = true;\n this.updateValuesOnInput(e, null, true);\n };\n MultiColumnComboBox.prototype.windowResize = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ width: this.getSize(true) });\n this.popupObj.refreshPosition();\n }\n };\n /* To set cssclass for the dropdowntree */\n MultiColumnComboBox.prototype.setCssClass = function (newClass, oldClass) {\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass(elements, newClass.split(' '));\n }\n };\n MultiColumnComboBox.prototype.keyActionHandler = function (e) {\n switch (e.action) {\n case 'escape':\n case 'altUp':\n case 'shiftTab':\n case 'tab':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n else {\n this.focusOut();\n }\n break;\n case 'altDown':\n if (!this.isPopupOpen) {\n this.showPopup(e);\n this.updateSelectedItem(e, false);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n this.updateSelectedItem(e, true, true);\n break;\n case 'enter':\n this.updateValuesOnInput(null, e, false, true);\n this.focusIn(e);\n break;\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.gridKeyActionHandler = function (e, isGroup) {\n var keyActionMap = {\n 'ArrowDown': 'moveDown',\n 'ArrowUp': 'moveUp',\n 'End': 'end',\n 'Home': 'home',\n 'Tab': 'tab',\n 'Escape': 'escape',\n 'Shift+Tab': 'shiftTab',\n 'Alt+ArrowUp': 'altUp'\n };\n if (isGroup) {\n var key = \"\" + (e.altKey ? 'Alt+' : '') + (e.shiftKey ? 'Shift+' : '') + e.key;\n e.action = keyActionMap[key] || e.action;\n }\n switch (e.action) {\n case 'escape':\n case 'tab':\n case 'shiftTab':\n case 'altUp':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (e.action !== 'escape') {\n this.updateSelectedItem(e);\n }\n this.hidePopup(e);\n }\n break;\n case 'moveDown':\n case 'moveUp':\n case 'home':\n case 'end':\n this.updateSelectedItem(e);\n break;\n }\n };\n MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {\n var _this = this;\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n if (this.isPopupOpen) {\n var index_1 = this.fields.groupBy ? (this.gridObj.selectedRowIndex || 0) : this.gridObj.selectedRowIndex;\n var dataLength = this.dataSource instanceof DataManager ? this.remoteDataLength :\n this.dataSource.length;\n if ((index_1 === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {\n index_1 = 0;\n }\n else if ((index_1 >= (dataLength - 1) && e.action === 'moveDown') || (e.action === 'end')) {\n index_1 = dataLength - 1;\n }\n else if (e.action === 'moveDown' && (index_1 >= 0 && index_1 <= (dataLength - 1)) && (this.fields.groupBy || isInputTarget)) {\n index_1 += 1;\n }\n else if (e.action === 'moveUp' && index_1 > 0 && (this.fields.groupBy) || isInputTarget) {\n index_1 -= 1;\n }\n if (!this.enableVirtualization) {\n this.selectRow(e, isUpdateIndex, index_1);\n }\n else {\n setTimeout(function () { _this.selectRow(e, isUpdateIndex, index_1); });\n }\n }\n };\n MultiColumnComboBox.prototype.selectRow = function (e, isUpdateIndex, index) {\n if (isUpdateIndex === void 0) { isUpdateIndex = true; }\n this.gridObj.selectRow(index);\n this.gridObj.selectedRowIndex = index;\n var focusedEle = this.gridEle.querySelector('.e-row-focus');\n if (focusedEle) {\n focusedEle.classList.remove('e-row-focus');\n }\n if (isUpdateIndex) {\n this.selectedGridRow(this.gridObj.getRows()[parseInt(index.toString(), 10)], e, true);\n }\n };\n MultiColumnComboBox.prototype.updateClearIconState = function () {\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = this.inputEle.value === '' ? 'none' : 'flex';\n }\n };\n MultiColumnComboBox.prototype.updateDynamicDataSource = function (newDataSource, oldDataSource) {\n if (this.gridObj) {\n var dataLength_1;\n this.isMainDataUpdated = false;\n this.isShowSpinner = true;\n this.setGridData(newDataSource);\n var isRemoteData = oldDataSource instanceof DataManager;\n if (isRemoteData) {\n oldDataSource.executeQuery(new Query()).then(function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataLength_1 = e.result.length;\n });\n }\n else {\n dataLength_1 = oldDataSource.length;\n }\n if (dataLength_1 === 0) {\n this.popupDiv.appendChild(this.gridEle);\n }\n }\n };\n /**\n * Sets the focus to the component for interaction.component for interaction.\n *\n * @param {FocusEvent | MouseEvent | KeyboardEvent | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusIn = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n addClass([this.inputWrapper], [INPUTFOCUS]);\n this.inputEle.focus();\n this.updateClearIconState();\n this.trigger('focus', e);\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @param {MouseEvent | KeyboardEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.focusOut = function (e) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n if (this.inputWrapper) {\n removeClass([this.inputWrapper], [INPUTFOCUS]);\n var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');\n if (clearIconEle) {\n clearIconEle.style.display = 'none';\n }\n if (this.floatLabelType !== 'Never') {\n Input.calculateWidth(this.inputEle, this.inputWrapper);\n }\n }\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @param {boolean} isInputOpen - Specifies whether the input is open or not.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {\n var _this = this;\n var animModel = { name: 'FadeIn', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };\n this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isPopupOpen) {\n _this.isPopupOpen = true;\n _this.popupObj.refreshPosition();\n addClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_options', 'aria-controls': _this.element.id });\n if (!isInputOpen) {\n if ((_this.value || _this.text || _this.index)) {\n _this.gridObj.selectRow(_this.selectedRowIndex);\n }\n }\n var contentEle = _this.gridObj.getContent();\n if (contentEle) {\n var activeRow = contentEle.querySelector('.e-rowcell.e-active');\n var firstRow = contentEle.querySelector('.e-row');\n if (activeRow) {\n _this.inputEle.setAttribute('aria-activedescendant', activeRow.parentElement.getAttribute('data-uid'));\n }\n else if (firstRow) {\n _this.inputEle.setAttribute('aria-activedescendant', firstRow.getAttribute('data-uid'));\n }\n }\n _this.popupObj.show(new Animation(eventArgs.animation), _this.popupEle.firstElementChild);\n }\n });\n };\n /**\n * Hides the popup if it is in open state.\n *\n * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.hidePopup = function (e) {\n var _this = this;\n var animModel = { name: 'FadeOut', duration: 100 };\n var eventArgs = { popup: this.popupObj, event: e || null, cancel: false, animation: animModel };\n var target = e ? e.target : null;\n this.trigger('close', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.isPopupOpen = false;\n removeClass([_this.inputWrapper], [ICONANIMATION]);\n attributes(_this.inputEle, { 'aria-expanded': 'false' });\n _this.popupObj.hide(new Animation(eventArgs.animation));\n if (target && (target.classList.contains('e-multicolumn-list-icon') || target.classList.contains('e-rowcell'))) {\n if (!_this.value) {\n _this.gridObj.refreshColumns();\n }\n setTimeout(function () { _this.focusIn(e); });\n }\n else {\n _this.focusOut();\n }\n _this.inputEle.removeAttribute('aria-owns');\n _this.inputEle.removeAttribute('aria-activedescendant');\n _this.customFilterQuery = null;\n }\n });\n setTimeout(function () {\n if (_this.gridObj) {\n _this.gridObj.dataSource = _this.allowFiltering ? _this.mainData : _this.gridData;\n var noRecordEle = _this.popupDiv.querySelector('.e-no-records');\n if (noRecordEle) {\n _this.popupDiv.removeChild(noRecordEle);\n removeClass([_this.popupDiv], [NODATA]);\n }\n _this.updateGridHeight(true, false);\n }\n }, 100);\n };\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } index - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n */\n MultiColumnComboBox.prototype.addItems = function (items, index) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.gridObj.editSettings.allowAdding = true;\n this.gridObj.dataBind();\n this.isProtectedOnChange = prevOnChange;\n this.gridObj.addRecord(items, index);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n MultiColumnComboBox.prototype.getItems = function () {\n return this.gridObj.getDataRows();\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string } value - Specifies the value of the list item.\n * @returns {Object}\n */\n MultiColumnComboBox.prototype.getDataByValue = function (value) {\n var _this = this;\n if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {\n return this.dataSource.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n else if (!isNOU(this.dataSource) && this.dataSource instanceof DataManager && this.mainData\n && this.isMainDataUpdated) {\n var dataLists = ((this.query && this.getQuery(this.query).isCountRequired) ||\n !this.query) ? this.mainData : this.mainData.result ? this.mainData.result : this.mainData;\n return dataLists.filter(function (item) {\n var fieldValue = _this.updateFieldValue(_this.fields.value, item);\n return fieldValue === value;\n })[0];\n }\n return null;\n };\n MultiColumnComboBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.gridObj) {\n this.gridObj.destroy();\n detach(this.gridObj.element);\n }\n if (this.inputEle) {\n var attrArray = ['placeholder', 'aria-expanded', 'spellcheck', 'aria-label', 'role', 'type',\n 'aria-owns', 'aria-controls', 'aria-readonly', 'autocomplete', 'autocapitalize', 'spellcheck', 'aria-activedescendant'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputEle.removeAttribute(attrArray[i]);\n }\n this.inputEle.classList.remove('e-input');\n Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);\n }\n if (this.popupEle) {\n this.popupEle.removeAttribute('aria-label');\n this.popupEle.removeAttribute('role');\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\n if (this.element.tagName !== this.getDirective()) {\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\n }\n if (this.inputObj) {\n detach(this.inputObj.container);\n this.inputObj = null;\n }\n Input.destroy({\n element: this.inputEle,\n floatLabelType: this.floatLabelType,\n properties: this.properties\n });\n detach(this.inputWrapper);\n detach(this.popupDiv);\n this.inputEle = null;\n this.previousItemElement = null;\n this.inputWrapper.innerHTML = '';\n this.inputWrapper = null;\n this.popupDiv = null;\n this.popupObj = null;\n this.gridObj = null;\n this.gridEle = null;\n this.popupEle = null;\n this.footer = null;\n this.noRecord = null;\n this.hiddenElement = null;\n this.dropdownElement = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {MultiColumnComboBoxModel} newProp - Specifies new properties\n * @param {MultiColumnComboBoxModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n MultiColumnComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n var gridColumns = void 0;\n switch (prop) {\n case 'width':\n case 'popupWidth':\n if (prop === 'width') {\n this.setElementWidth(newProp.width);\n }\n if (this.popupObj) {\n this.popupObj.element.style.width = this.getSize(true);\n }\n break;\n case 'popupHeight':\n if (this.popupObj) {\n var height = this.getSize(false);\n this.popupObj.element.style.maxHeight = height;\n this.popupDiv.style.maxHeight = height;\n this.gridObj.height = height;\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputEle);\n break;\n case 'disabled':\n Input.setEnabled(!this.disabled, this.inputEle);\n this.setEnable();\n break;\n case 'cssClass':\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'floatLabelType':\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.inputEle, this.floatLabelType, this.placeholder);\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.inputEle, this.inputObj);\n break;\n case 'value':\n this.initValue(true, true);\n break;\n case 'text':\n this.initValue(true, false);\n break;\n case 'index':\n this.initValue(true);\n break;\n case 'sortOrder':\n if (this.gridObj) {\n this.gridObj.sortSettings.columns = [{\n field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?\n SortOrder.Ascending : SortOrder.Descending\n }];\n }\n break;\n case 'htmlAttributes':\n this.setHTMLAttributes();\n break;\n case 'noRecordsTemplate':\n this.l10nUpdate();\n break;\n case 'actionFailureTemplate':\n this.l10nUpdate(true);\n break;\n case 'footerTemplate':\n this.setFooterTemplate();\n break;\n case 'itemTemplate':\n if (this.gridObj) {\n this.gridObj.rowTemplate = newProp.itemTemplate;\n }\n break;\n case 'groupTemplate':\n this.groupTemplate = newProp.groupTemplate;\n this.updateGroupByField();\n break;\n case 'enableRtl':\n if (this.gridObj && this.popupObj) {\n this.gridObj.enableRtl = newProp.enableRtl;\n Input.setEnableRtl(newProp.enableRtl, [this.inputWrapper]);\n this.popupObj.enableRtl = newProp.enableRtl;\n }\n break;\n case 'dataSource':\n this.updateDynamicDataSource(newProp.dataSource, oldProp.dataSource);\n break;\n case 'query':\n this.isMainDataUpdated = false;\n this.setGridData(this.dataSource);\n break;\n case 'gridSettings':\n if (this.gridObj) {\n this.gridObj.gridLines = newProp.gridSettings.gridLines;\n this.gridObj.rowHeight = newProp.gridSettings.rowHeight;\n this.gridObj.enableAltRow = newProp.gridSettings.enableAltRow;\n this.gridObj.allowResizing = newProp.gridSettings.allowResizing;\n if (!(isNOU(newProp.gridSettings.allowTextWrap))) {\n this.gridObj.allowTextWrap = newProp.gridSettings.allowTextWrap;\n }\n if (!(isNOU(newProp.gridSettings.textWrapMode))) {\n this.gridObj.textWrapSettings.wrapMode = newProp.gridSettings.textWrapMode;\n }\n }\n break;\n case 'fields':\n this.fields = newProp.fields;\n this.updateGroupByField();\n break;\n case 'filterType':\n this.filterType = newProp.filterType;\n break;\n case 'enableVirtualization':\n if (this.gridObj) {\n this.enableVirtualization = this.gridObj.enableVirtualization = newProp.enableVirtualization;\n }\n break;\n case 'sortType':\n if (this.gridObj) {\n this.sortType = newProp.sortType;\n this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;\n }\n break;\n case 'allowFiltering':\n this.allowFiltering = newProp.allowFiltering;\n break;\n case 'allowSorting':\n if (this.gridObj) {\n this.allowSorting = this.gridObj.allowSorting = newProp.allowSorting;\n }\n break;\n case 'columns':\n if (this.gridObj) {\n gridColumns = this.getGridColumns();\n this.gridObj.columns = gridColumns;\n }\n break;\n case 'locale':\n this.isLocaleChanged = true;\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], MultiColumnComboBox.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"index\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], MultiColumnComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], MultiColumnComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(true)\n ], MultiColumnComboBox.prototype, \"allowSorting\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property('')\n ], MultiColumnComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Complex({ text: null, value: null, groupBy: null }, FieldSettings)\n ], MultiColumnComboBox.prototype, \"fields\", void 0);\n __decorate([\n Collection([], Column)\n ], MultiColumnComboBox.prototype, \"columns\", void 0);\n __decorate([\n Complex({}, GridSettings)\n ], MultiColumnComboBox.prototype, \"gridSettings\", void 0);\n __decorate([\n Property(FilterType.StartsWith)\n ], MultiColumnComboBox.prototype, \"filterType\", void 0);\n __decorate([\n Property('Never')\n ], MultiColumnComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(SortOrder.None)\n ], MultiColumnComboBox.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(SortType.OneColumn)\n ], MultiColumnComboBox.prototype, \"sortType\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MultiColumnComboBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], MultiColumnComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], MultiColumnComboBox.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('Request Failed')\n ], MultiColumnComboBox.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], MultiColumnComboBox.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property({})\n ], MultiColumnComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MultiColumnComboBox.prototype, \"change\", void 0);\n MultiColumnComboBox = __decorate([\n NotifyPropertyChanges\n ], MultiColumnComboBox);\n return MultiColumnComboBox;\n}(Component));\nexport { MultiColumnComboBox };\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","verb","n","v","op","f","TypeError","_","y","t","call","label","ops","pop","trys","push","g","sent","throw","return","Symbol","iterator","NODATA","MultiColumnGrid","InjectModules","Grid","Inject","VirtualScroll","GridGroup","Edit","Sort","Resize","FilterType","SortOrder","SortType","WrapMode","FieldSettings","_super","Property","ChildProperty","Column","GridSettings","Both","Event","MultiColumnComboBox","options","element","_this","gridInject","isShowSpinner","preRender","id","getUniqueID","getModuleName","keyConfigs","escape","altUp","altDown","tab","shiftTab","end","enter","home","moveDown","moveUp","matchedRowEle","matchedContent","exactMatchedContent","persistData","getDirective","getPersistData","addOnPersist","enablePersistence","data","window","localStorage","getItem","isNOU","setProperties","JSON","parse","render","renderInput","text","index","dataSource","DataManager","isInitialValueRender","gridData","setGridData","renderGrid","popupDiv","createElement","className","appendChild","gridEle","setHTMLAttributes","renderPopup","wireEvents","query","trigger","cancel","args","showHideSpinner","executeQuery","getQuery","isMainDataUpdated","mainData","remoteDataLength","initValue","updateGridDataSource","catch","dataManager","listItems","executeLocal","filterQuery","isCustomFilter","allowFiltering","clone","Query","filterType","typedString","fields","where","customFilterQuery","setHiddenValue","hiddenElement","innerHTML","existingOption","querySelector","newOption","document","setAttribute","toString","textContent","gridColumns","getGridColumns","sortOrder","toLowerCase","gridObj","columns","allowSorting","enableStickyHeader","gridLines","gridSettings","rowHeight","enableAltRow","enableVirtualization","enableRtl","editSettings","allowAdding","allowTextWrap","textWrapSettings","wrapMode","textWrapMode","height","popupHeight","allowResizing","allowMultiSorting","sortType","rowTemplate","itemTemplate","beforeDataBound","dataBound","onDataBound","actionFailure","onActionFailure","actionComplete","handleActionComplete","bind","keyPressed","handleKeyPressed","resizing","resizeStart","resizeStop","updateGroupByField","isPrimaryKey","sortSettings","field","direction","Ascending","Descending","appendTo","requestType","updateRowSelection","isArray","rows","isDataFiltered","rowHeight_1","forEach","row","rowElement","getRowElementByUID","uid","getBoundingClientRect","popupRowHeight","parseFloat","updateGridHeight","popupObj","refreshPosition","scrollTop","isPopupOpen","selectedGridRow","getRows","selectedRowIndex","hidePopup","focusIn","groupBy","gridKeyActionHandler","isRowMatching","selectedValue","selectedText","flattenData","item","keys","String","flattenedValues","indexOf","selectDataRow","selectRow","prevOnChange","isProtectedOnChange","findIndex","arr","obj","every","map","_a","header","width","textAlign","format","displayAsCheckBox","template","headerTemplate","customAttributes","headerText","type","undefined","groupByField","isGroupByValid","classList","add","allowGrouping","groupSettings","showDropArea","groupTemplate","captionTemplate","isVue","isLocaleChanged","unWireEvents","dataCount","popupChild","hasNoDataClass","contains","l10nUpdate","removeChild","addClass","removeClass","noRecordEle","isInitialRender","gridContentRow","hide","popupEle","style","visibility","rowElements","querySelectorAll","inputEle","setTimeout","isShow","showSpinner","dropdownElement","hideSpinner","allowedAttributes","tagName","getAttribute","attributes","aria-expanded","aria-readOnly","readonly","aria-disabled","disabled","autocomplete","autocapitalize","spellcheck","tabindex","attrs","role","parentElement","insertBefore","inputObj","Input","createInput","buttons","floatLabelType","properties","enabled","placeholder","showClearButton","cssClass","inputWrapper","container","aria-hidden","class","prepend","name","removeAttribute","hasAttribute","setElementWidth","createSpinner","inputWidth","ddElement","formatUnit","match","htmlAttributes","_i","htmlAttr","setEnable","dataBind","styles","cssText","split","styleProperty","part","trim","property","setProperty","defaultAttr","setPlaceholder","setEnabled","setAriaDisabled","updateFieldValue","fieldValue","dataObj","getValue","isRerender","isValue","isInitial","currentValue","currentText","currentIndex","prevItemData","getSelectedRecords","prevItemEle","getSelectedRows","updateValues","dataList","updateCurrentValues","value_1","filteredData","dataLists","isCountRequired","filter","updateChangeEvent","rowData","getRowInfo","parseInt","ChangeEventArgs","itemData","getDataByValue","previousItemData","previousItemElement","itemElement","event","isInteracted","fieldText","setValue","MULTICOLUMNLIST","aria-label","createPopup","footerTemplate","setFooterTemplate","getSize","maxHeight","Math","round","footer","isFilter","autoHeight","gridContentEle","getContent","scrollBarHeight","offsetHeight","clientHeight","prevGridHeight","Popup","targetType","collision","X","Y","relateTo","position","targetExitViewport","Browser","isDevice","open","focus","updateClearIconState","isReact","clearTemplate","tempArr","getTemplateFunction","count","isStringTemplate","slice","append","noRecord","noRecordsTemplate","actionFailureTemplate","templateId","templatestring","l10nLocale","l10n","L10n","locale","getConstant","content","tempEle","select","outerHTML","compile","ispopupWidth","currentDimension","popupWidth","size","includes","offsetWidth","documentElement","isKeyNav","eventArgs","selectedRecords","dataText","dataValue","event_1","isUpdateVal","shiftKey","altKey","triggerChangeEvent","inputHandler","showPopup","eventArgs_1","preventDefaultAction","updateData","updateInputValue","inputValue","_b","exactData","_c","filterDatas","selectFilteredRows","startsWith","selectedIndex","currentViewData","getRowByIndex","EventHandler","preventBlur","dropDownClick","onDocumentClick","onMouseClick","clearButton","clearText","windowResize","keyboardModule","KeyboardEvents","keyAction","keyActionHandler","eventName","remove","destroy","preventDefault","focusedEle","closest","focusOut","isClearVal","updateValuesOnInput","mouseEvent","keyEvent","isClearValues","isKeyDown","val","code","selectIndex","refreshColumns","setCssClass","newClass","oldClass","elements","action","updateSelectedItem","isGroup","keyActionMap","ArrowDown","ArrowUp","End","Home","Tab","Escape","Shift+Tab","Alt+ArrowUp","isUpdateIndex","isInputTarget","index_1","dataLength","clearIconEle","display","updateDynamicDataSource","newDataSource","oldDataSource","dataLength_1","calculateWidth","isInputOpen","animModel","duration","popup","animation","aria-owns","aria-controls","contentEle","activeRow","firstRow","show","Animation","firstElementChild","addItems","items","addRecord","getItems","getDataRows","detach","attrArray","onPropertyChanged","newProp","oldProp","prop","setReadonly","removeFloating","addFloating","setClearButton","setEnableRtl","Complex","Collection","StartsWith","None","OneColumn","NotifyPropertyChanges","Component"],"mappings":"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"}