@syncfusion/ej2-multicolumn-combobox 26.2.10 → 27.1.48

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 (150) hide show
  1. package/.eslintrc.json +261 -0
  2. package/dist/ej2-multicolumn-combobox.umd.min.js +2 -2
  3. package/dist/ej2-multicolumn-combobox.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-multicolumn-combobox.es2015.js +109 -44
  5. package/dist/es6/ej2-multicolumn-combobox.es2015.js.map +1 -1
  6. package/dist/es6/ej2-multicolumn-combobox.es5.js +110 -42
  7. package/dist/es6/ej2-multicolumn-combobox.es5.js.map +1 -1
  8. package/dist/global/ej2-multicolumn-combobox.min.js +2 -2
  9. package/dist/global/ej2-multicolumn-combobox.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +9 -8
  12. package/src/multicolumn-combobox/multi-column-combo-box-model.d.ts +2 -2
  13. package/src/multicolumn-combobox/multi-column-combo-box.d.ts +4 -2
  14. package/src/multicolumn-combobox/multi-column-combo-box.js +111 -44
  15. package/styles/bootstrap-dark-lite.css +267 -0
  16. package/styles/bootstrap-dark-lite.scss +10 -0
  17. package/styles/bootstrap-dark.css +77 -108
  18. package/styles/bootstrap-dark.scss +1 -0
  19. package/styles/bootstrap-lite.css +267 -0
  20. package/styles/bootstrap-lite.scss +10 -0
  21. package/styles/bootstrap.css +77 -108
  22. package/styles/bootstrap.scss +1 -0
  23. package/styles/bootstrap4-lite.css +309 -0
  24. package/styles/bootstrap4-lite.scss +10 -0
  25. package/styles/bootstrap4.css +78 -131
  26. package/styles/bootstrap4.scss +1 -0
  27. package/styles/bootstrap5-dark-lite.css +317 -0
  28. package/styles/bootstrap5-dark-lite.scss +10 -0
  29. package/styles/bootstrap5-dark.css +78 -127
  30. package/styles/bootstrap5-dark.scss +1 -0
  31. package/styles/bootstrap5-lite.css +317 -0
  32. package/styles/bootstrap5-lite.scss +10 -0
  33. package/styles/bootstrap5.3-lite.css +321 -0
  34. package/styles/bootstrap5.3-lite.scss +10 -0
  35. package/styles/bootstrap5.3.css +372 -0
  36. package/styles/bootstrap5.3.scss +11 -0
  37. package/styles/bootstrap5.css +78 -127
  38. package/styles/bootstrap5.scss +1 -0
  39. package/styles/fabric-dark-lite.css +243 -0
  40. package/styles/fabric-dark-lite.scss +10 -0
  41. package/styles/fabric-dark.css +78 -108
  42. package/styles/fabric-dark.scss +1 -0
  43. package/styles/fabric-lite.css +243 -0
  44. package/styles/fabric-lite.scss +10 -0
  45. package/styles/fabric.css +78 -101
  46. package/styles/fabric.scss +1 -0
  47. package/styles/fluent-dark-lite.css +310 -0
  48. package/styles/fluent-dark-lite.scss +10 -0
  49. package/styles/fluent-dark.css +78 -114
  50. package/styles/fluent-dark.scss +1 -0
  51. package/styles/fluent-lite.css +310 -0
  52. package/styles/fluent-lite.scss +10 -0
  53. package/styles/fluent.css +78 -114
  54. package/styles/fluent.scss +1 -0
  55. package/styles/fluent2-lite.css +314 -0
  56. package/styles/fluent2-lite.scss +10 -0
  57. package/styles/fluent2.css +78 -111
  58. package/styles/fluent2.scss +1 -0
  59. package/styles/highcontrast-light-lite.css +264 -0
  60. package/styles/highcontrast-light-lite.scss +10 -0
  61. package/styles/highcontrast-light.css +78 -98
  62. package/styles/highcontrast-light.scss +1 -0
  63. package/styles/highcontrast-lite.css +268 -0
  64. package/styles/highcontrast-lite.scss +10 -0
  65. package/styles/highcontrast.css +82 -98
  66. package/styles/highcontrast.scss +1 -0
  67. package/styles/material-dark-lite.css +292 -0
  68. package/styles/material-dark-lite.scss +10 -0
  69. package/styles/material-dark.css +78 -92
  70. package/styles/material-dark.scss +1 -0
  71. package/styles/material-lite.css +296 -0
  72. package/styles/material-lite.scss +10 -0
  73. package/styles/material.css +78 -113
  74. package/styles/material.scss +1 -0
  75. package/styles/material3-dark-lite.css +306 -0
  76. package/styles/material3-dark-lite.scss +10 -0
  77. package/styles/material3-dark.css +77 -116
  78. package/styles/material3-dark.scss +1 -0
  79. package/styles/material3-lite.css +308 -0
  80. package/styles/material3-lite.scss +10 -0
  81. package/styles/material3.css +77 -116
  82. package/styles/material3.scss +1 -0
  83. package/styles/multicolumn-combobox/_bds-definition.scss +1 -0
  84. package/styles/multicolumn-combobox/_bigger.scss +37 -0
  85. package/styles/multicolumn-combobox/_bootstrap-dark-definition.scss +1 -0
  86. package/styles/multicolumn-combobox/_bootstrap-definition.scss +1 -0
  87. package/styles/multicolumn-combobox/_bootstrap4-definition.scss +1 -0
  88. package/styles/multicolumn-combobox/_bootstrap5-definition.scss +1 -0
  89. package/styles/multicolumn-combobox/_bootstrap5.3-definition.scss +15 -14
  90. package/styles/multicolumn-combobox/_fabric-dark-definition.scss +1 -0
  91. package/styles/multicolumn-combobox/_fabric-definition.scss +1 -0
  92. package/styles/multicolumn-combobox/_fluent-definition.scss +1 -0
  93. package/styles/multicolumn-combobox/_fluent2-definition.scss +1 -0
  94. package/styles/multicolumn-combobox/_fusionnew-definition.scss +1 -0
  95. package/styles/multicolumn-combobox/_highcontrast-definition.scss +1 -0
  96. package/styles/multicolumn-combobox/_highcontrast-light-definition.scss +1 -0
  97. package/styles/multicolumn-combobox/_layout.scss +34 -33
  98. package/styles/multicolumn-combobox/_material-dark-definition.scss +1 -0
  99. package/styles/multicolumn-combobox/_material-definition.scss +1 -0
  100. package/styles/multicolumn-combobox/_material3-definition.scss +1 -0
  101. package/styles/multicolumn-combobox/_tailwind-definition.scss +1 -0
  102. package/styles/multicolumn-combobox/_theme.scss +3 -0
  103. package/styles/multicolumn-combobox/bootstrap-dark.css +77 -108
  104. package/styles/multicolumn-combobox/bootstrap-dark.scss +1 -0
  105. package/styles/multicolumn-combobox/bootstrap.css +77 -108
  106. package/styles/multicolumn-combobox/bootstrap.scss +1 -0
  107. package/styles/multicolumn-combobox/bootstrap4.css +78 -131
  108. package/styles/multicolumn-combobox/bootstrap4.scss +1 -0
  109. package/styles/multicolumn-combobox/bootstrap5-dark.css +78 -127
  110. package/styles/multicolumn-combobox/bootstrap5-dark.scss +1 -0
  111. package/styles/multicolumn-combobox/bootstrap5.3.css +372 -0
  112. package/styles/multicolumn-combobox/bootstrap5.3.scss +11 -0
  113. package/styles/multicolumn-combobox/bootstrap5.css +78 -127
  114. package/styles/multicolumn-combobox/bootstrap5.scss +1 -0
  115. package/styles/multicolumn-combobox/fabric-dark.css +78 -108
  116. package/styles/multicolumn-combobox/fabric-dark.scss +1 -0
  117. package/styles/multicolumn-combobox/fabric.css +78 -101
  118. package/styles/multicolumn-combobox/fabric.scss +1 -0
  119. package/styles/multicolumn-combobox/fluent-dark.css +78 -114
  120. package/styles/multicolumn-combobox/fluent-dark.scss +1 -0
  121. package/styles/multicolumn-combobox/fluent.css +78 -114
  122. package/styles/multicolumn-combobox/fluent.scss +1 -0
  123. package/styles/multicolumn-combobox/fluent2.css +78 -111
  124. package/styles/multicolumn-combobox/fluent2.scss +1 -0
  125. package/styles/multicolumn-combobox/highcontrast-light.css +78 -98
  126. package/styles/multicolumn-combobox/highcontrast-light.scss +1 -0
  127. package/styles/multicolumn-combobox/highcontrast.css +82 -98
  128. package/styles/multicolumn-combobox/highcontrast.scss +1 -0
  129. package/styles/multicolumn-combobox/material-dark.css +78 -92
  130. package/styles/multicolumn-combobox/material-dark.scss +1 -0
  131. package/styles/multicolumn-combobox/material.css +78 -113
  132. package/styles/multicolumn-combobox/material.scss +1 -0
  133. package/styles/multicolumn-combobox/material3-dark.css +77 -116
  134. package/styles/multicolumn-combobox/material3-dark.scss +1 -0
  135. package/styles/multicolumn-combobox/material3.css +77 -116
  136. package/styles/multicolumn-combobox/material3.scss +1 -0
  137. package/styles/multicolumn-combobox/tailwind-dark.css +78 -111
  138. package/styles/multicolumn-combobox/tailwind-dark.scss +1 -0
  139. package/styles/multicolumn-combobox/tailwind.css +78 -111
  140. package/styles/multicolumn-combobox/tailwind.scss +1 -0
  141. package/styles/tailwind-dark-lite.css +297 -0
  142. package/styles/tailwind-dark-lite.scss +10 -0
  143. package/styles/tailwind-dark.css +78 -111
  144. package/styles/tailwind-dark.scss +1 -0
  145. package/styles/tailwind-lite.css +297 -0
  146. package/styles/tailwind-lite.scss +10 -0
  147. package/styles/tailwind.css +78 -111
  148. package/styles/tailwind.scss +1 -0
  149. package/tslint.json +111 -0
  150. package/hotfix/26.1.35_Vol2.txt +0 -1
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 26.2.10
3
+ * version : 27.1.48
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-multicolumn-combobox@*",
3
- "_id": "@syncfusion/ej2-multicolumn-combobox@26.2.8",
3
+ "_id": "@syncfusion/ej2-multicolumn-combobox@21.29.0",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-ZHdE2uzXDBWWQYNN+nNdKtXCjFyVKIezxHCGfDMr+606/biac1gDLEM6hEyNEiJ5SH+ZRhmxN3DgeY2VcPDJ0A==",
5
+ "_integrity": "sha512-NQY4jREgk95Sm3NZHI1iCsYP5qorvqhgxHX56w21xrUWcIP3AeeamLktYayZ0QrZXD539pHX4F1rnjYLSBwm6A==",
6
6
  "_location": "/@syncfusion/ej2-multicolumn-combobox",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,10 +23,10 @@
23
23
  "/@syncfusion/ej2-react-multicolumn-combobox",
24
24
  "/@syncfusion/ej2-vue-multicolumn-combobox"
25
25
  ],
26
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-multicolumn-combobox/-/ej2-multicolumn-combobox-26.2.8.tgz",
27
- "_shasum": "227ae841b1b84c994674f3c92039cadc3cd44827",
26
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-release/@syncfusion/ej2-multicolumn-combobox/-/ej2-multicolumn-combobox-21.29.0.tgz",
27
+ "_shasum": "5f41ac15a7cdb6fcf301d1f696988f40d3a1f7f4",
28
28
  "_spec": "@syncfusion/ej2-multicolumn-combobox@*",
29
- "_where": "/jenkins/workspace/elease-automation_release_26.1.1/packages/included",
29
+ "_where": "/jenkins/workspace/elease-automation_release_27.1.1/packages/included",
30
30
  "author": {
31
31
  "name": "Syncfusion Inc."
32
32
  },
@@ -35,8 +35,9 @@
35
35
  },
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
- "@syncfusion/ej2-base": "~26.2.10",
39
- "@syncfusion/ej2-grids": "~26.2.10"
38
+ "@syncfusion/ej2-base": "~27.1.48",
39
+ "@syncfusion/ej2-grids": "~27.1.48",
40
+ "markdown-spellcheck": "^1.3.1"
40
41
  },
41
42
  "deprecated": false,
42
43
  "description": "Essential JS 2 Component",
@@ -57,6 +58,6 @@
57
58
  "url": "git+https://github.com/syncfusion/ej2-multicolumn-combobox-component.git"
58
59
  },
59
60
  "typings": "index.d.ts",
60
- "version": "26.2.10",
61
+ "version": "27.1.48",
61
62
  "sideEffects": false
62
63
  }
@@ -1,4 +1,4 @@
1
- import { Component, EventHandler, INotifyPropertyChanged, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents } from '@syncfusion/ej2-base';import { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';import { formatUnit, addClass, removeClass, NumberFormatOptions, DateFormatOptions, Event, EmitType, AnimationModel, Animation, KeyboardEventArgs } from '@syncfusion/ej2-base';import { Input, InputObject } from '@syncfusion/ej2-inputs';import { DataManager, Query, Group } from '@syncfusion/ej2-data';import { Popup } from '@syncfusion/ej2-popups';import { Grid, FailureEventArgs, VirtualScroll, Group as GridGroup, Edit, Sort, GridColumnModel } from '@syncfusion/ej2-grids';
1
+ import { Component, EventHandler, INotifyPropertyChanged, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, isNullOrUndefined } from '@syncfusion/ej2-base';import { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';import { formatUnit, addClass, removeClass, NumberFormatOptions, DateFormatOptions, Event, EmitType, AnimationModel, Animation, KeyboardEventArgs } from '@syncfusion/ej2-base';import { Input, InputObject } from '@syncfusion/ej2-inputs';import { DataManager, Query, Group } from '@syncfusion/ej2-data';import { Popup } from '@syncfusion/ej2-popups';import { Grid, FailureEventArgs, VirtualScroll, Group as GridGroup, Edit, Sort, GridColumnModel } from '@syncfusion/ej2-grids';
2
2
  import {TextAlign,GridLine,WrapMode,DataResult,FilterType,FloatLabelType,SortOrder,SortType,PopupEventArgs,FilteringEventArgs,SelectEventArgs,ChangeEventArgs} from "./multi-column-combo-box";
3
3
  import {ComponentModel} from '@syncfusion/ej2-base';
4
4
 
@@ -159,7 +159,7 @@ export interface GridSettingsModel {
159
159
 
160
160
  /**
161
161
  * Specifies the mode for text wrapping in the popup grid content. Options include 'Both', 'Content', and 'Header'.
162
- *
162
+ *
163
163
  * @isenumeration true
164
164
  *
165
165
  * @default WrapMode.Both
@@ -381,11 +381,11 @@ export interface DataResult {
381
381
  * The selected value will be displayed in the input element.
382
382
  *
383
383
  * ```html
384
- * <input type="text" id="multi-column"></input>
384
+ * <input type='text' id='multi-column'></input>
385
385
  * ```
386
386
  * ```typescript
387
387
  * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();
388
- * multiColObj.appendTo("#multi-column");
388
+ * multiColObj.appendTo('#multi-column');
389
389
  * ```
390
390
  */
391
391
  export declare class MultiColumnComboBox extends Component<HTMLElement> implements INotifyPropertyChanged {
@@ -810,6 +810,7 @@ export declare class MultiColumnComboBox extends Component<HTMLElement> implemen
810
810
  private updateInputValue;
811
811
  private selectFilteredRows;
812
812
  private filterAction;
813
+ private filteringHandler;
813
814
  private filterData;
814
815
  private updateGridDataSource;
815
816
  private wireEvents;
@@ -844,6 +845,7 @@ export declare class MultiColumnComboBox extends Component<HTMLElement> implemen
844
845
  * Opens the popup that displays the list of items.
845
846
  *
846
847
  * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.
848
+ * @param {boolean} isInputOpen - Specifies whether the input is open or not.
847
849
  * @returns {void}
848
850
  */
849
851
  showPopup(e?: MouseEvent | KeyboardEventArgs | TouchEvent, isInputOpen?: boolean): void;
@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
17
17
  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;
18
18
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19
19
  };
20
- import { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents } from '@syncfusion/ej2-base';
20
+ import { Component, EventHandler, Property, NotifyPropertyChanges, closest, attributes, append, compile, detach, KeyboardEvents, isNullOrUndefined } from '@syncfusion/ej2-base';
21
21
  import { ChildProperty, prepend, Collection, getUniqueID, Complex, isNullOrUndefined as isNOU, select, L10n, Browser } from '@syncfusion/ej2-base';
22
22
  import { formatUnit, addClass, removeClass, Event, Animation } from '@syncfusion/ej2-base';
23
23
  import { Input } from '@syncfusion/ej2-inputs';
@@ -204,11 +204,11 @@ export { GridSettings };
204
204
  * The selected value will be displayed in the input element.
205
205
  *
206
206
  * ```html
207
- * <input type="text" id="multi-column"></input>
207
+ * <input type='text' id='multi-column'></input>
208
208
  * ```
209
209
  * ```typescript
210
210
  * let multiColObj: MultiColumnComboBox = new MultiColumnComboBox();
211
- * multiColObj.appendTo("#multi-column");
211
+ * multiColObj.appendTo('#multi-column');
212
212
  * ```
213
213
  */
214
214
  var MultiColumnComboBox = /** @class */ (function (_super) {
@@ -318,6 +318,7 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
318
318
  if (args.requestType === 'sorting') {
319
319
  _this.updateRowSelection(args);
320
320
  }
321
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
321
322
  var dataRows = args.rows;
322
323
  if (_this.isDataFiltered && dataRows.length > 0 && _this.inputEle.value !== '' && args.requestType !== 'sorting') {
323
324
  var firstRowEle = _this.gridObj.getRows()[0];
@@ -353,7 +354,7 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
353
354
  }
354
355
  this.gridObj.appendTo(this.gridEle);
355
356
  };
356
- // eslint-disable @typescript-eslint/no-explicit-any
357
+ /* eslint-disable @typescript-eslint/no-explicit-any */
357
358
  MultiColumnComboBox.prototype.isRowMatching = function (data, selectedValue, selectedText) {
358
359
  var values = Object.values(data).map(String);
359
360
  var isRowPresent = values.includes(selectedValue) && values.includes(selectedText);
@@ -383,11 +384,11 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
383
384
  };
384
385
  MultiColumnComboBox.prototype.findIndex = function (arr, obj) {
385
386
  return arr.findIndex(function (item) {
387
+ // eslint-disable-next-line
386
388
  return Object.keys(obj).every(function (key) { return item[key] === obj[key]; });
387
389
  });
388
390
  };
389
- ;
390
- // eslint-enable @typescript-eslint/no-explicit-any
391
+ /* eslint-enable @typescript-eslint/no-explicit-any */
391
392
  MultiColumnComboBox.prototype.getGridColumns = function () {
392
393
  var _this = this;
393
394
  return this.columns.map(function (column) {
@@ -421,7 +422,7 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
421
422
  showDropArea: false,
422
423
  columns: [this.fields.groupBy],
423
424
  captionTemplate: (this.groupTemplate && this.fields.groupBy !== '' && !isNOU(this.fields.groupBy))
424
- ? this.groupTemplate : "${key}"
425
+ ? this.groupTemplate : '${key}'
425
426
  };
426
427
  if (this.isVue) {
427
428
  this.gridObj.isVue = this.isVue;
@@ -445,7 +446,9 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
445
446
  }
446
447
  }
447
448
  if (this.isInitialRender) {
448
- var rowHeight = !this.popupDiv.classList.contains(NODATA) ? this.popupDiv.querySelector('.e-gridcontent tr').getBoundingClientRect().height : this.popupDiv.getBoundingClientRect().height;
449
+ var rowHeight = !this.popupDiv.classList.contains(NODATA) ? this.popupDiv.querySelector('.e-gridcontent tr') ?
450
+ this.popupDiv.querySelector('.e-gridcontent tr').getBoundingClientRect().height : 0 :
451
+ this.popupDiv.getBoundingClientRect().height;
449
452
  this.popupRowHeight = rowHeight;
450
453
  this.popupObj.hide();
451
454
  this.popupEle.style.visibility = 'unset';
@@ -626,8 +629,29 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
626
629
  });
627
630
  }
628
631
  else if (!isNOU(this.dataSource) && this.dataSource instanceof Array) {
629
- item = this.dataSource[this.index];
630
- updateValues(this.dataSource);
632
+ if (!this.fields.groupBy) {
633
+ item = this.dataSource[this.index];
634
+ updateValues(this.dataSource);
635
+ }
636
+ else {
637
+ setTimeout(function () {
638
+ var rows = _this.gridObj.getRows();
639
+ if (rows && rows.length > 0) {
640
+ var rowData = _this.gridObj.getRowInfo(rows[_this.index]).rowData;
641
+ var value = _this.fields.value;
642
+ for (var i = 0; i < rows.length; i++) {
643
+ if (rowData && rowData[parseInt(value.toString(), 10)] ===
644
+ _this.dataSource[parseInt(i.toString(), 10)][parseInt(value.toString(), 10)]) {
645
+ item = rowData;
646
+ updateValues(_this.dataSource);
647
+ _this.updateChangeEvent(item, prevItemData, prevItemEle, currentValue, currentText, currentIndex, isRerender, isInitial);
648
+ _this.gridObj.selectRow(_this.index);
649
+ break;
650
+ }
651
+ }
652
+ }
653
+ });
654
+ }
631
655
  }
632
656
  }
633
657
  if (!(this.dataSource instanceof DataManager)) {
@@ -910,6 +934,7 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
910
934
  var data;
911
935
  if (this.dataSource instanceof DataManager) {
912
936
  var query = new Query();
937
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
913
938
  this.dataSource.executeQuery(query).then(function (result) {
914
939
  var totaldata = result.result;
915
940
  data = totaldata.filter(function (item) {
@@ -943,26 +968,47 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
943
968
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
944
969
  MultiColumnComboBox.prototype.filterAction = function (dataSource, inputValue, query, fields) {
945
970
  var _this = this;
946
- var filterType = this.filterType.toString().toLowerCase();
947
- var isQuery = query || new Query();
948
- var filteredData;
949
- if (dataSource instanceof DataManager) {
950
- // Handle filtering for DataManager
951
- dataSource.executeQuery(isQuery).then(function (e) {
952
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
953
- var dataLists = e.result;
954
- var dataLength = dataLists.length;
955
- filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });
956
- _this.updateGridDataSource(filteredData, dataLength);
957
- });
971
+ if (isNullOrUndefined(query) && isNullOrUndefined(fields)) {
972
+ this.updateGridDataSource(dataSource);
958
973
  }
959
- else if (Array.isArray(dataSource)) {
960
- // Handle filtering for array data source
961
- filteredData = dataSource.filter(function (item) {
962
- return _this.filterData(item, filterType, inputValue, fields);
963
- });
964
- this.updateGridDataSource(filteredData);
974
+ else if (query) {
975
+ if (dataSource instanceof DataManager) {
976
+ this.filteringHandler(dataSource, inputValue, query, fields);
977
+ }
978
+ else {
979
+ new DataManager(dataSource).executeQuery(query).then(function (e) {
980
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
981
+ var dataLists = e.result;
982
+ _this.updateGridDataSource(dataLists);
983
+ });
984
+ }
965
985
  }
986
+ else {
987
+ var isQuery = query || new Query();
988
+ if (dataSource instanceof DataManager) {
989
+ this.filteringHandler(dataSource, inputValue, isQuery, fields);
990
+ }
991
+ else if (Array.isArray(dataSource)) {
992
+ var filterType_1 = this.filterType.toString().toLowerCase();
993
+ var filteredData = dataSource.filter(function (item) {
994
+ return _this.filterData(item, filterType_1, inputValue, fields);
995
+ });
996
+ this.updateGridDataSource(filteredData);
997
+ }
998
+ }
999
+ };
1000
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1001
+ MultiColumnComboBox.prototype.filteringHandler = function (dataSource, inputValue, query, fields) {
1002
+ var _this = this;
1003
+ var filterType = this.filterType.toString().toLowerCase();
1004
+ var filteredData;
1005
+ dataSource.executeQuery(query).then(function (e) {
1006
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1007
+ var dataLists = e.result;
1008
+ var dataLength = dataLists.length;
1009
+ filteredData = dataLists.filter(function (item) { return _this.filterData(item, filterType, inputValue, fields); });
1010
+ _this.updateGridDataSource(filteredData, dataLength);
1011
+ });
966
1012
  };
967
1013
  MultiColumnComboBox.prototype.filterData = function (item, filterType, inputValue, fields) {
968
1014
  var itemValue = item[fields ? fields.text : this.fields.text].toString().toLowerCase();
@@ -980,7 +1026,8 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
980
1026
  MultiColumnComboBox.prototype.updateGridDataSource = function (dataSource, dataLength) {
981
1027
  var autoHeight = true;
982
1028
  if (dataSource.length > 0) {
983
- var length_1 = this.dataSource instanceof DataManager ? dataLength : this.dataSource.length;
1029
+ var length_1 = this.dataSource instanceof DataManager ? dataLength
1030
+ : this.dataSource.length;
984
1031
  autoHeight = length_1 !== dataSource.length;
985
1032
  removeClass([this.popupDiv], [NODATA]);
986
1033
  var noRecordEle = this.popupDiv.querySelector('.e-no-records');
@@ -1089,6 +1136,7 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
1089
1136
  };
1090
1137
  MultiColumnComboBox.prototype.updateValuesOnInput = function (mouseEvent, keyEvent, isClearValues) {
1091
1138
  var _this = this;
1139
+ if (isClearValues === void 0) { isClearValues = false; }
1092
1140
  var e = mouseEvent ? mouseEvent : keyEvent;
1093
1141
  this.hidePopup(e);
1094
1142
  if (this.matchedRowEle && !isClearValues) {
@@ -1235,7 +1283,8 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
1235
1283
  MultiColumnComboBox.prototype.updateSelectedItem = function (e, isUpdateIndex, isInputTarget) {
1236
1284
  if (isUpdateIndex === void 0) { isUpdateIndex = true; }
1237
1285
  if (this.isPopupOpen) {
1238
- var index = !this.fields.groupBy ? this.gridObj.selectedRowIndex : this.gridObj.selectedRowIndex ? this.gridObj.selectedRowIndex : 0;
1286
+ var index = !this.fields.groupBy ? this.gridObj.selectedRowIndex
1287
+ : this.gridObj.selectedRowIndex ? this.gridObj.selectedRowIndex : 0;
1239
1288
  if ((index === -1 && (e.action === 'moveDown' || e.action === 'moveUp')) || (e.action === 'home')) {
1240
1289
  index = 0;
1241
1290
  }
@@ -1255,7 +1304,7 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
1255
1304
  focusedEle.classList.remove('e-row-focus');
1256
1305
  }
1257
1306
  if (isUpdateIndex) {
1258
- this.selectedGridRow(this.gridObj.getRows()[index], e, true);
1307
+ this.selectedGridRow(this.gridObj.getRows()[parseInt(index.toString(), 10)], e, true);
1259
1308
  }
1260
1309
  }
1261
1310
  };
@@ -1296,19 +1345,22 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
1296
1345
  if (this.isPopupOpen) {
1297
1346
  this.hidePopup(e);
1298
1347
  }
1299
- removeClass([this.inputWrapper], [INPUTFOCUS]);
1300
- var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');
1301
- if (clearIconEle) {
1302
- clearIconEle.style.display = 'none';
1303
- }
1304
- if (this.floatLabelType !== 'Never') {
1305
- Input.calculateWidth(this.inputEle, this.inputWrapper);
1348
+ if (this.inputWrapper) {
1349
+ removeClass([this.inputWrapper], [INPUTFOCUS]);
1350
+ var clearIconEle = this.inputWrapper.querySelector('.e-clear-icon');
1351
+ if (clearIconEle) {
1352
+ clearIconEle.style.display = 'none';
1353
+ }
1354
+ if (this.floatLabelType !== 'Never') {
1355
+ Input.calculateWidth(this.inputEle, this.inputWrapper);
1356
+ }
1306
1357
  }
1307
1358
  };
1308
1359
  /**
1309
1360
  * Opens the popup that displays the list of items.
1310
1361
  *
1311
1362
  * @param {MouseEvent | KeyboardEventArgs | TouchEvent} e - Specifies the event.
1363
+ * @param {boolean} isInputOpen - Specifies whether the input is open or not.
1312
1364
  * @returns {void}
1313
1365
  */
1314
1366
  MultiColumnComboBox.prototype.showPopup = function (e, isInputOpen) {
@@ -1323,9 +1375,19 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
1323
1375
  attributes(_this.inputEle, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_popup', 'aria-controls': _this.element.id });
1324
1376
  if (!isInputOpen) {
1325
1377
  if ((_this.value || _this.text || _this.index)) {
1326
- var dataRows = _this.gridObj.currentViewData;
1378
+ var dataRows = _this.gridObj.getRowsObject();
1379
+ var groupIndex_1;
1380
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1327
1381
  dataRows.forEach(function (data, index) {
1328
- _this.selectDataRow(data, index);
1382
+ if (_this.fields.groupBy && isNOU(data.data.items)) {
1383
+ if (isNOU(groupIndex_1)) {
1384
+ groupIndex_1 = 0;
1385
+ }
1386
+ else {
1387
+ groupIndex_1 += 1;
1388
+ }
1389
+ }
1390
+ _this.selectDataRow(data.data, !_this.fields.groupBy ? index : groupIndex_1);
1329
1391
  });
1330
1392
  }
1331
1393
  _this.focusIn(e);
@@ -1540,12 +1602,14 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
1540
1602
  this.initValue(true, false);
1541
1603
  break;
1542
1604
  case 'index':
1543
- this.initValue();
1605
+ this.initValue(true);
1544
1606
  break;
1545
1607
  case 'sortOrder':
1546
1608
  if (this.gridObj) {
1547
- this.gridObj.sortSettings.columns = [{ field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?
1548
- SortOrder.Ascending : SortOrder.Descending }];
1609
+ this.gridObj.sortSettings.columns = [{
1610
+ field: this.fields.text, direction: newProp.sortOrder === SortOrder.Ascending ?
1611
+ SortOrder.Ascending : SortOrder.Descending
1612
+ }];
1549
1613
  }
1550
1614
  break;
1551
1615
  case 'htmlAttributes':
@@ -1612,7 +1676,10 @@ var MultiColumnComboBox = /** @class */ (function (_super) {
1612
1676
  }
1613
1677
  break;
1614
1678
  case 'sortType':
1615
- this.sortType = newProp.sortType;
1679
+ if (this.gridObj) {
1680
+ this.sortType = newProp.sortType;
1681
+ this.gridObj.allowMultiSorting = this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting;
1682
+ }
1616
1683
  break;
1617
1684
  case 'allowFiltering':
1618
1685
  this.allowFiltering = newProp.allowFiltering;
@@ -0,0 +1,267 @@
1
+ .e-dropdownbase .e-list-item .e-list-icon {
2
+ padding: 0 10px 0 0;
3
+ }
4
+
5
+ .e-small .e-dropdownbase .e-list-item .e-list-icon {
6
+ padding: 0 8px 0 0;
7
+ }
8
+
9
+ .e-popup.e-ddl {
10
+ border-radius: 4px;
11
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
12
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
13
+ margin-top: 3px;
14
+ }
15
+ .e-popup.e-ddl .e-input-group {
16
+ width: auto;
17
+ }
18
+ .e-popup.e-ddl .e-input-group input {
19
+ line-height: 15px;
20
+ }
21
+
22
+ .e-popup.e-ddl .e-dropdownbase {
23
+ min-height: 26px;
24
+ }
25
+
26
+ .e-popup.e-ddl .e-filter-parent .e-input-group {
27
+ display: -webkit-box;
28
+ display: -ms-flexbox;
29
+ display: flex;
30
+ width: auto;
31
+ }
32
+ .e-popup.e-ddl .e-filter-parent .e-input-group .e-back-icon {
33
+ border: 0;
34
+ }
35
+
36
+ .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:active,
37
+ .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:hover,
38
+ .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
39
+ .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:hover,
40
+ .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active,
41
+ .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:hover,
42
+ .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
43
+ .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:hover {
44
+ background: transparent;
45
+ color: #f0f0f0;
46
+ }
47
+
48
+ .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon,
49
+ .e-input-group.e-disabled.e-ddl .e-control.e-dropdownlist ~ .e-input-group-icon,
50
+ .e-control.e-dropdownlist .e-input-group.e-disabled.e-ddl .e-input-group-icon,
51
+ .e-control.e-dropdownlist .e-input-group.e-ddl .e-input-group-icon {
52
+ border: 0;
53
+ }
54
+
55
+ .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-input-group-icon:active,
56
+ .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
57
+ .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
58
+ .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
59
+ -webkit-box-shadow: none;
60
+ box-shadow: none;
61
+ }
62
+
63
+ .e-ddl.e-popup .e-filter-parent {
64
+ border-bottom: 1px solid #484848;
65
+ }
66
+
67
+ .e-input-group.e-control-wrapper .e-multicolumn-list-icon::before {
68
+ content: "\e969";
69
+ font-family: "e-icons";
70
+ }
71
+
72
+ .e-multicolumn-grid tr.e-groupcaptionrow {
73
+ position: sticky;
74
+ top: 0;
75
+ }
76
+
77
+ .e-multicolumn-grid th.e-grouptopleftcell.e-lastgrouptopleftcell,
78
+ .e-multicolumn-grid th.e-grouptopleftcell.e-lastgroupleftcell,
79
+ .e-multicolumn-grid td.e-recordplusexpand,
80
+ .e-multicolumn-grid td.e-indentcell,
81
+ .e-multicolumn-grid col.e-group-intent,
82
+ .e-multicolumn-list .e-no-records + .e-grid {
83
+ display: none;
84
+ }
85
+
86
+ .e-multicolumn-grid td.e-rowcell {
87
+ cursor: default;
88
+ }
89
+
90
+ .e-multicolumn-grid .e-gridheader .e-headercelldiv {
91
+ overflow: hidden;
92
+ }
93
+
94
+ .e-multicolumn-list .e-popup-footer {
95
+ vertical-align: middle;
96
+ border-style: solid;
97
+ border-width: 0 1px 0 1px;
98
+ font-size: 14px;
99
+ height: 36px;
100
+ display: -webkit-box;
101
+ display: -ms-flexbox;
102
+ display: flex;
103
+ -webkit-box-align: center;
104
+ -ms-flex-align: center;
105
+ align-items: center;
106
+ border-radius: 0 0 4px 4px;
107
+ }
108
+
109
+ .e-multicolumn-grid.e-grid {
110
+ border-width: 1px;
111
+ border-radius: 4px;
112
+ }
113
+ .e-multicolumn-grid.e-grid .e-gridcontent {
114
+ border-radius: 0 0 4px 4px;
115
+ }
116
+
117
+ .e-input-group.e-multicolumn-list input[readonly].e-input {
118
+ pointer-events: none;
119
+ }
120
+
121
+ .e-multicolumn-list:has(.e-popup-footer) .e-multicolumn-grid.e-grid {
122
+ border-radius: 4px 4px 0 0;
123
+ }
124
+ .e-multicolumn-list:has(.e-popup-footer) .e-multicolumn-grid.e-grid .e-gridcontent {
125
+ border-radius: 0;
126
+ }
127
+ .e-multicolumn-list.e-icon-anim .e-multicolumn-list-icon::before {
128
+ -webkit-transform: rotate(180deg);
129
+ transform: rotate(180deg);
130
+ }
131
+ .e-multicolumn-list:not(.e-icon-anim) .e-multicolumn-list-icon::before {
132
+ -webkit-transform: rotate(0deg);
133
+ transform: rotate(0deg);
134
+ }
135
+ .e-multicolumn-list .e-multicolumn-list-icon::before {
136
+ -webkit-transition: -webkit-transform 300ms ease;
137
+ transition: -webkit-transform 300ms ease;
138
+ transition: transform 300ms ease;
139
+ transition: transform 300ms ease, -webkit-transform 300ms ease;
140
+ }
141
+
142
+ .e-multicolumn-grid .e-grid {
143
+ overflow: auto;
144
+ }
145
+
146
+ .e-multicolumn-grid .e-row,
147
+ .e-multicolumn-grid .e-emptyrow {
148
+ height: 36px;
149
+ }
150
+
151
+ .e-multicolumn-group .e-sortnumber {
152
+ display: none;
153
+ }
154
+
155
+ .e-popup.e-multicolumn-list {
156
+ position: absolute;
157
+ border-radius: 4px;
158
+ margin-top: unset;
159
+ }
160
+ .e-popup.e-multicolumn-list .e-nodata {
161
+ cursor: default;
162
+ font-family: inherit;
163
+ font-size: 14px;
164
+ padding: 14px 16px;
165
+ text-align: center;
166
+ border-radius: inherit;
167
+ }
168
+ .e-popup.e-multicolumn-list .e-headertext {
169
+ font-weight: 500;
170
+ }
171
+ .e-popup.e-multicolumn-list .e-gridheader {
172
+ position: sticky;
173
+ top: 0;
174
+ z-index: 1;
175
+ border-radius: 4px 4px 0 0;
176
+ }
177
+
178
+ .e-multicolumn-grid .e-headercontent {
179
+ border-right-color: transparent; /* stylelint-disable-line declaration-no-important */
180
+ }
181
+
182
+ .e-multicolumn-grid.e-rtl .e-headercontent {
183
+ border-left-color: transparent; /* stylelint-disable-line declaration-no-important */
184
+ }
185
+
186
+ .e-multicolumn-grid .e-content {
187
+ overflow: auto !important; /* stylelint-disable-line declaration-no-important */
188
+ }
189
+
190
+ .e-multicolumn-container .e-input-group-icon.e-multicolumn-list-icon.e-ddl-disable-icon {
191
+ position: relative;
192
+ }
193
+
194
+ .e-small.e-popup .e-multicolumn-grid .e-headercelldiv,
195
+ .e-small.e-popup .e-multicolumn-grid .e-rowcell, .e-small.e-popup.e-multicolumn-list .e-popup-footer,
196
+ .e-small .e-popup .e-multicolumn-grid .e-headercelldiv,
197
+ .e-small .e-popup .e-multicolumn-grid .e-rowcell,
198
+ .e-small .e-popup.e-multicolumn-list .e-popup-footer {
199
+ font-size: 12px;
200
+ }
201
+ .e-small.e-popup.e-multicolumn-list .e-popup-footer,
202
+ .e-small.e-popup .e-multicolumn-grid .e-row,
203
+ .e-small.e-popup .e-multicolumn-grid .e-emptyrow,
204
+ .e-small .e-popup.e-multicolumn-list .e-popup-footer,
205
+ .e-small .e-popup .e-multicolumn-grid .e-row,
206
+ .e-small .e-popup .e-multicolumn-grid .e-emptyrow {
207
+ height: 32px;
208
+ }
209
+ .e-small.e-popup.e-multicolumn-list,
210
+ .e-small .e-popup.e-multicolumn-list {
211
+ margin-top: unset;
212
+ }
213
+
214
+ .e-multicolumn-list .e-popup-footer {
215
+ background: #2a2a2a;
216
+ color: #0070f0;
217
+ border-color: #484848;
218
+ }
219
+
220
+ .e-input-group.e-multicolumn-list:focus-visible {
221
+ outline: transparent;
222
+ }
223
+
224
+ .e-popup.e-multicolumn-list {
225
+ background: transparent;
226
+ -webkit-box-shadow: 0 3px 4px -1px rgba(0, 0, 0, 0.05), 0 2px 11px 0 rgba(0, 0, 0, 0.1);
227
+ box-shadow: 0 3px 4px -1px rgba(0, 0, 0, 0.05), 0 2px 11px 0 rgba(0, 0, 0, 0.1);
228
+ }
229
+ .e-popup.e-multicolumn-list .e-nodata {
230
+ color: #0070f0;
231
+ border: 1px solid #484848;
232
+ background: #2a2a2a;
233
+ }
234
+ .e-popup.e-multicolumn-list .e-multicolumn-grid .e-rowcell {
235
+ color: #fff;
236
+ }
237
+ .e-popup.e-multicolumn-list .e-multicolumn-grid .e-focused {
238
+ -webkit-box-shadow: none;
239
+ box-shadow: none;
240
+ }
241
+ .e-popup.e-multicolumn-list .e-gridhover .e-row:hover .e-rowcell:not(.e-active),
242
+ .e-popup.e-multicolumn-list .e-gridcontent .e-row-focus {
243
+ background: #414141 !important; /* stylelint-disable-line declaration-no-important */
244
+ }
245
+ .e-popup.e-multicolumn-list .e-multicolumn-grid td.e-active {
246
+ background: #0070f0;
247
+ color: #fff;
248
+ }
249
+ .e-popup.e-multicolumn-list .e-groupcaption {
250
+ color: #0070f0;
251
+ background: #2a2a2a;
252
+ }
253
+ .e-popup.e-multicolumn-list .e-gridheader,
254
+ .e-popup.e-multicolumn-list .e-gridheader colgroup {
255
+ background: transparent;
256
+ }
257
+ .e-popup.e-multicolumn-list .e-altrow {
258
+ background: #393939;
259
+ }
260
+ .e-popup.e-multicolumn-list .e-grid .e-headercell {
261
+ background-color: unset;
262
+ }
263
+ .e-popup.e-multicolumn-list .e-headertext,
264
+ .e-popup.e-multicolumn-list .e-grid th.e-headercell[aria-sort=ascending] .e-headertext,
265
+ .e-popup.e-multicolumn-list .e-grid th.e-headercell[aria-sort=descending] .e-headertext {
266
+ color: #0070f0;
267
+ }
@@ -0,0 +1,10 @@
1
+ @import 'ej2-base/styles/definition/bootstrap-dark.scss';
2
+ @import 'ej2-buttons/styles/button/bootstrap-dark-definition.scss';
3
+ @import 'ej2-splitbuttons/styles/drop-down-button/bootstrap-dark-definition.scss';
4
+ @import 'ej2-dropdowns/styles/drop-down-base/bootstrap-dark-definition.scss';
5
+ @import 'ej2-dropdowns/styles/drop-down-list/bootstrap-dark-definition.scss';
6
+ @import 'ej2-dropdowns/styles/combo-box/bootstrap-dark-definition.scss';
7
+ @import 'ej2-grids/styles/grid/bootstrap-dark-definition.scss';
8
+ @import 'multicolumn-combobox/bootstrap-dark-definition.scss';
9
+ @import 'multicolumn-combobox/icons/bootstrap-dark.scss';
10
+ @import 'multicolumn-combobox/all.scss';