@syncfusion/ej2-dropdowns 32.2.9 → 33.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/ej2-dropdowns.min.js +2 -2
  2. package/dist/ej2-dropdowns.umd.min.js +2 -2
  3. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-dropdowns.es2015.js +407 -116
  5. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es5.js +382 -91
  7. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  8. package/dist/global/ej2-dropdowns.min.js +2 -2
  9. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +8 -8
  12. package/src/combo-box/combo-box.js +3 -0
  13. package/src/common/virtual-scroll.d.ts +1 -0
  14. package/src/common/virtual-scroll.js +17 -1
  15. package/src/drop-down-base/drop-down-base.d.ts +2 -0
  16. package/src/drop-down-base/drop-down-base.js +42 -0
  17. package/src/drop-down-list/drop-down-list.js +84 -14
  18. package/src/drop-down-tree/drop-down-tree-model.d.ts +1 -1
  19. package/src/drop-down-tree/drop-down-tree.d.ts +1 -1
  20. package/src/mention/mention.js +8 -4
  21. package/src/multi-select/multi-select.d.ts +2 -0
  22. package/src/multi-select/multi-select.js +228 -72
  23. package/styles/bds-lite.css +17 -9
  24. package/styles/bds.css +29 -15
  25. package/styles/bootstrap-dark-lite.css +17 -9
  26. package/styles/bootstrap-dark.css +27 -14
  27. package/styles/bootstrap-lite.css +17 -9
  28. package/styles/bootstrap.css +27 -14
  29. package/styles/bootstrap4-lite.css +17 -9
  30. package/styles/bootstrap4.css +27 -14
  31. package/styles/bootstrap5-dark-lite.css +17 -9
  32. package/styles/bootstrap5-dark.css +27 -14
  33. package/styles/bootstrap5-lite.css +17 -9
  34. package/styles/bootstrap5.3-lite.css +19 -9
  35. package/styles/bootstrap5.3.css +29 -14
  36. package/styles/bootstrap5.css +27 -14
  37. package/styles/drop-down-base/_bds-definition.scss +2 -2
  38. package/styles/drop-down-base/_bigger.scss +3 -3
  39. package/styles/drop-down-base/_bootstrap-dark-definition.scss +3 -3
  40. package/styles/drop-down-base/_bootstrap-definition.scss +3 -3
  41. package/styles/drop-down-base/_bootstrap4-definition.scss +3 -3
  42. package/styles/drop-down-base/_bootstrap5-dark-definition.scss +3 -3
  43. package/styles/drop-down-base/_bootstrap5-definition.scss +3 -3
  44. package/styles/drop-down-base/_bootstrap5.3-definition.scss +6 -3
  45. package/styles/drop-down-base/_fabric-dark-definition.scss +3 -3
  46. package/styles/drop-down-base/_fabric-definition.scss +3 -3
  47. package/styles/drop-down-base/_fluent-dark-definition.scss +3 -3
  48. package/styles/drop-down-base/_fluent-definition.scss +3 -3
  49. package/styles/drop-down-base/_fluent2-definition.scss +8 -5
  50. package/styles/drop-down-base/_fusionnew-definition.scss +2 -2
  51. package/styles/drop-down-base/_highcontrast-definition.scss +3 -3
  52. package/styles/drop-down-base/_highcontrast-light-definition.scss +3 -3
  53. package/styles/drop-down-base/_layout.scss +12 -1
  54. package/styles/drop-down-base/_material-dark-definition.scss +2 -2
  55. package/styles/drop-down-base/_material-definition.scss +2 -2
  56. package/styles/drop-down-base/_material3-dark-definition.scss +6 -4
  57. package/styles/drop-down-base/_material3-definition.scss +6 -4
  58. package/styles/drop-down-base/_tailwind-dark-definition.scss +4 -4
  59. package/styles/drop-down-base/_tailwind-definition.scss +4 -4
  60. package/styles/drop-down-base/_tailwind3-definition.scss +5 -2
  61. package/styles/drop-down-base/_theme.scss +6 -0
  62. package/styles/drop-down-base/bds.css +21 -11
  63. package/styles/drop-down-base/bootstrap-dark.css +19 -10
  64. package/styles/drop-down-base/bootstrap.css +19 -10
  65. package/styles/drop-down-base/bootstrap4.css +19 -10
  66. package/styles/drop-down-base/bootstrap5-dark.css +19 -10
  67. package/styles/drop-down-base/bootstrap5.3.css +21 -10
  68. package/styles/drop-down-base/bootstrap5.css +19 -10
  69. package/styles/drop-down-base/fabric-dark.css +19 -10
  70. package/styles/drop-down-base/fabric.css +19 -10
  71. package/styles/drop-down-base/fluent-dark.css +19 -10
  72. package/styles/drop-down-base/fluent.css +19 -10
  73. package/styles/drop-down-base/fluent2.css +28 -12
  74. package/styles/drop-down-base/highcontrast-light.css +19 -10
  75. package/styles/drop-down-base/highcontrast.css +19 -10
  76. package/styles/drop-down-base/material-dark.css +17 -9
  77. package/styles/drop-down-base/material.css +17 -9
  78. package/styles/drop-down-base/material3-dark.css +19 -9
  79. package/styles/drop-down-base/material3.css +19 -9
  80. package/styles/drop-down-base/tailwind-dark.css +21 -11
  81. package/styles/drop-down-base/tailwind.css +21 -11
  82. package/styles/drop-down-base/tailwind3.css +19 -9
  83. package/styles/drop-down-list/bds.css +4 -2
  84. package/styles/drop-down-list/bootstrap-dark.css +4 -2
  85. package/styles/drop-down-list/bootstrap.css +4 -2
  86. package/styles/drop-down-list/bootstrap4.css +4 -2
  87. package/styles/drop-down-list/bootstrap5-dark.css +4 -2
  88. package/styles/drop-down-list/bootstrap5.3.css +4 -2
  89. package/styles/drop-down-list/bootstrap5.css +4 -2
  90. package/styles/drop-down-list/fabric-dark.css +4 -2
  91. package/styles/drop-down-list/fabric.css +4 -2
  92. package/styles/drop-down-list/fluent-dark.css +4 -2
  93. package/styles/drop-down-list/fluent.css +4 -2
  94. package/styles/drop-down-list/fluent2.css +4 -2
  95. package/styles/drop-down-list/highcontrast-light.css +4 -2
  96. package/styles/drop-down-list/highcontrast.css +4 -2
  97. package/styles/drop-down-list/material-dark.css +4 -2
  98. package/styles/drop-down-list/material.css +4 -2
  99. package/styles/drop-down-list/material3-dark.css +4 -2
  100. package/styles/drop-down-list/material3.css +4 -2
  101. package/styles/drop-down-list/tailwind-dark.css +4 -2
  102. package/styles/drop-down-list/tailwind.css +4 -2
  103. package/styles/drop-down-list/tailwind3.css +4 -2
  104. package/styles/drop-down-tree/bds.css +4 -2
  105. package/styles/drop-down-tree/bootstrap-dark.css +4 -2
  106. package/styles/drop-down-tree/bootstrap.css +4 -2
  107. package/styles/drop-down-tree/bootstrap4.css +4 -2
  108. package/styles/drop-down-tree/bootstrap5-dark.css +4 -2
  109. package/styles/drop-down-tree/bootstrap5.3.css +4 -2
  110. package/styles/drop-down-tree/bootstrap5.css +4 -2
  111. package/styles/drop-down-tree/fabric-dark.css +4 -2
  112. package/styles/drop-down-tree/fabric.css +4 -2
  113. package/styles/drop-down-tree/fluent-dark.css +4 -2
  114. package/styles/drop-down-tree/fluent.css +4 -2
  115. package/styles/drop-down-tree/fluent2.css +4 -2
  116. package/styles/drop-down-tree/highcontrast-light.css +4 -2
  117. package/styles/drop-down-tree/highcontrast.css +4 -2
  118. package/styles/drop-down-tree/material-dark.css +4 -2
  119. package/styles/drop-down-tree/material.css +4 -2
  120. package/styles/drop-down-tree/material3-dark.css +4 -2
  121. package/styles/drop-down-tree/material3.css +4 -2
  122. package/styles/drop-down-tree/tailwind-dark.css +4 -2
  123. package/styles/drop-down-tree/tailwind.css +4 -2
  124. package/styles/drop-down-tree/tailwind3.css +4 -2
  125. package/styles/fabric-dark-lite.css +17 -9
  126. package/styles/fabric-dark.css +27 -14
  127. package/styles/fabric-lite.css +17 -9
  128. package/styles/fabric.css +27 -14
  129. package/styles/fluent-dark-lite.css +17 -9
  130. package/styles/fluent-dark.css +27 -14
  131. package/styles/fluent-lite.css +17 -9
  132. package/styles/fluent.css +27 -14
  133. package/styles/fluent2-lite.css +24 -10
  134. package/styles/fluent2.css +36 -16
  135. package/styles/highcontrast-light-lite.css +17 -9
  136. package/styles/highcontrast-light.css +27 -14
  137. package/styles/highcontrast-lite.css +17 -9
  138. package/styles/highcontrast.css +27 -14
  139. package/styles/list-box/bds.css +4 -2
  140. package/styles/list-box/bootstrap-dark.css +4 -2
  141. package/styles/list-box/bootstrap.css +4 -2
  142. package/styles/list-box/bootstrap4.css +4 -2
  143. package/styles/list-box/bootstrap5-dark.css +4 -2
  144. package/styles/list-box/bootstrap5.3.css +4 -2
  145. package/styles/list-box/bootstrap5.css +4 -2
  146. package/styles/list-box/fabric-dark.css +4 -2
  147. package/styles/list-box/fabric.css +4 -2
  148. package/styles/list-box/fluent-dark.css +4 -2
  149. package/styles/list-box/fluent.css +4 -2
  150. package/styles/list-box/fluent2.css +4 -2
  151. package/styles/list-box/highcontrast-light.css +4 -2
  152. package/styles/list-box/highcontrast.css +4 -2
  153. package/styles/list-box/material-dark.css +4 -2
  154. package/styles/list-box/material.css +4 -2
  155. package/styles/list-box/material3-dark.css +4 -2
  156. package/styles/list-box/material3.css +4 -2
  157. package/styles/list-box/tailwind-dark.css +4 -2
  158. package/styles/list-box/tailwind.css +4 -2
  159. package/styles/list-box/tailwind3.css +4 -2
  160. package/styles/material-dark-lite.css +17 -9
  161. package/styles/material-dark.css +25 -13
  162. package/styles/material-lite.css +17 -9
  163. package/styles/material.css +25 -13
  164. package/styles/material3-dark-lite.css +19 -9
  165. package/styles/material3-dark.css +27 -13
  166. package/styles/material3-lite.css +19 -9
  167. package/styles/material3.css +27 -13
  168. package/styles/mention/bds.css +4 -2
  169. package/styles/mention/bootstrap-dark.css +4 -2
  170. package/styles/mention/bootstrap.css +4 -2
  171. package/styles/mention/bootstrap4.css +4 -2
  172. package/styles/mention/bootstrap5-dark.css +4 -2
  173. package/styles/mention/bootstrap5.3.css +4 -2
  174. package/styles/mention/bootstrap5.css +4 -2
  175. package/styles/mention/fabric-dark.css +4 -2
  176. package/styles/mention/fabric.css +4 -2
  177. package/styles/mention/fluent-dark.css +4 -2
  178. package/styles/mention/fluent.css +4 -2
  179. package/styles/mention/fluent2.css +4 -2
  180. package/styles/mention/highcontrast-light.css +4 -2
  181. package/styles/mention/highcontrast.css +4 -2
  182. package/styles/mention/material-dark.css +4 -2
  183. package/styles/mention/material.css +4 -2
  184. package/styles/mention/material3-dark.css +4 -2
  185. package/styles/mention/material3.css +4 -2
  186. package/styles/mention/tailwind-dark.css +4 -2
  187. package/styles/mention/tailwind.css +4 -2
  188. package/styles/mention/tailwind3.css +4 -2
  189. package/styles/multi-select/bds.css +12 -6
  190. package/styles/multi-select/bootstrap-dark.css +12 -6
  191. package/styles/multi-select/bootstrap.css +12 -6
  192. package/styles/multi-select/bootstrap4.css +12 -6
  193. package/styles/multi-select/bootstrap5-dark.css +12 -6
  194. package/styles/multi-select/bootstrap5.3.css +12 -6
  195. package/styles/multi-select/bootstrap5.css +12 -6
  196. package/styles/multi-select/fabric-dark.css +12 -6
  197. package/styles/multi-select/fabric.css +12 -6
  198. package/styles/multi-select/fluent-dark.css +12 -6
  199. package/styles/multi-select/fluent.css +12 -6
  200. package/styles/multi-select/fluent2.css +12 -6
  201. package/styles/multi-select/highcontrast-light.css +12 -6
  202. package/styles/multi-select/highcontrast.css +12 -6
  203. package/styles/multi-select/material-dark.css +12 -6
  204. package/styles/multi-select/material.css +12 -6
  205. package/styles/multi-select/material3-dark.css +12 -6
  206. package/styles/multi-select/material3.css +12 -6
  207. package/styles/multi-select/tailwind-dark.css +12 -6
  208. package/styles/multi-select/tailwind.css +12 -6
  209. package/styles/multi-select/tailwind3.css +12 -6
  210. package/styles/tailwind-dark-lite.css +17 -9
  211. package/styles/tailwind-dark.css +29 -15
  212. package/styles/tailwind-lite.css +17 -9
  213. package/styles/tailwind.css +29 -15
  214. package/styles/tailwind3-lite.css +19 -9
  215. package/styles/tailwind3.css +27 -13
@@ -364,7 +364,8 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
364
364
  this.touchModule = new Touch(this.parent.popupContentElement, {
365
365
  scroll: this.popupScrollHandler.bind(this)
366
366
  });
367
- EventHandler.add(this.parent.popupContentElement, 'scroll', this.virtualScrollHandler(callback), this);
367
+ this.scrollHandler = this.virtualScrollHandler(callback);
368
+ EventHandler.add(this.parent.popupContentElement, 'scroll', this.scrollHandler, this);
368
369
  };
369
370
  VirtualScroll.prototype.getModuleName = function () {
370
371
  return 'VirtualScroll';
@@ -503,6 +504,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
503
504
  this.parent.resetList(this.parent.dataSource, this.parent.fields, query);
504
505
  isListUpdated = false;
505
506
  this.parent.appendUncheckList = this.parent.dataSource instanceof DataManager ? this.parent.appendUncheckList : false;
507
+ oldUlElement = null;
506
508
  }
507
509
  }
508
510
  else {
@@ -518,6 +520,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
518
520
  this.parent.setCurrentView = false;
519
521
  this.parent.resetList(this.parent.dataSource, this.parent.fields, query);
520
522
  isListUpdated = false;
523
+ reOrderList = null;
521
524
  }
522
525
  this.parent.totalItemsCount();
523
526
  }
@@ -533,6 +536,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
533
536
  if (oldUlElement) {
534
537
  this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement);
535
538
  }
539
+ oldUlElement = null;
536
540
  }
537
541
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
538
542
  var alreadyAddedData = this.parent.generatedDataObject[index];
@@ -866,6 +870,18 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
866
870
  };
867
871
  };
868
872
  VirtualScroll.prototype.destroy = function () {
873
+ if (this.parent.popupContentElement) {
874
+ EventHandler.remove(this.parent.popupContentElement, 'wheel mousedown', this.popupScrollHandler);
875
+ EventHandler.remove(this.parent.popupContentElement, 'scroll', this.scrollHandler);
876
+ }
877
+ // Destroy touch module
878
+ if (this.touchModule) {
879
+ this.touchModule.destroy();
880
+ this.touchModule = null;
881
+ }
882
+ // Clear references
883
+ this.containerElementRect = null;
884
+ this.scrollHandler = null;
869
885
  this.removeEventListener();
870
886
  };
871
887
  return VirtualScroll;
@@ -1250,6 +1266,7 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1250
1266
  }
1251
1267
  }
1252
1268
  }
1269
+ ele = null;
1253
1270
  };
1254
1271
  DropDownBase.prototype.checkAndResetCache = function () {
1255
1272
  if (this.isVirtualizationEnabled) {
@@ -1352,6 +1369,9 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1352
1369
  DropDownBase.prototype.UpdateSkeleton = function (isSkeletonCountChange, skeletonCount) {
1353
1370
  var isContainSkeleton = this.list.querySelector('.e-virtual-ddl-content');
1354
1371
  var isContainVirtualList = this.list.querySelector('.e-virtual-list');
1372
+ if (!this.skeletonInstances) {
1373
+ this.skeletonInstances = [];
1374
+ }
1355
1375
  if (isContainSkeleton && (!isContainVirtualList || isSkeletonCountChange) && this.isVirtualizationEnabled) {
1356
1376
  var totalSkeletonCount = isSkeletonCountChange ? skeletonCount : this.skeletonCount;
1357
1377
  for (var i = 0; i < totalSkeletonCount; i++) {
@@ -1365,6 +1385,7 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1365
1385
  width: '95%',
1366
1386
  cssClass: 'e-skeleton-text'
1367
1387
  });
1388
+ this.skeletonInstances.push(skeleton);
1368
1389
  skeleton.appendTo(this.createElement('div'));
1369
1390
  liElement.appendChild(skeleton.element);
1370
1391
  if (isContainSkeleton.firstChild) {
@@ -1397,6 +1418,16 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1397
1418
  }
1398
1419
  }
1399
1420
  };
1421
+ DropDownBase.prototype.destroySkeletons = function () {
1422
+ if (this.skeletonInstances && this.skeletonInstances.length > 0) {
1423
+ this.skeletonInstances.forEach(function (skeleton) {
1424
+ if (skeleton && !skeleton.isDestroyed) {
1425
+ skeleton.destroy();
1426
+ }
1427
+ });
1428
+ this.skeletonInstances = [];
1429
+ }
1430
+ };
1400
1431
  DropDownBase.prototype.getLocaleName = function () {
1401
1432
  return 'drop-down-base';
1402
1433
  };
@@ -1530,6 +1561,8 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1530
1561
  }
1531
1562
  this.updateFields(fields.text, fields.value, isSelectGroupCheck ? fields.groupBy : this.fields.groupBy, this.fields.htmlAttributes, this.fields.iconCss, this.fields.disabled);
1532
1563
  this.resetList(jsonElement, fields);
1564
+ element = null;
1565
+ group = null;
1533
1566
  };
1534
1567
  DropDownBase.prototype.updateFields = function (text, value, groupBy, htmlAttributes, iconCss, disabled) {
1535
1568
  var field = {
@@ -2068,6 +2101,12 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2068
2101
  this.ulElement = this.list.querySelector('ul');
2069
2102
  this.postRender(this.list, list, this.bindEvent);
2070
2103
  }
2104
+ else if (this.getModuleName() === 'dropdownlist' && this.isVirtualizationEnabled) {
2105
+ this.list.innerHTML = '';
2106
+ this.createVirtualContent();
2107
+ this.list.querySelector('.e-virtual-ddl-content').appendChild(ulElement);
2108
+ this.updateListElements(this.listData);
2109
+ }
2071
2110
  }
2072
2111
  if (this.getModuleName() === 'multiselect' && this.isAngular && this.ngEle) {
2073
2112
  var popupHolder_1 = this.list;
@@ -2317,6 +2356,7 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2317
2356
  }
2318
2357
  this.fixedHeaderElement.innerHTML = groupData.innerHTML;
2319
2358
  this.renderGroupTemplate(this.fixedHeaderElement);
2359
+ groupData = null;
2320
2360
  };
2321
2361
  DropDownBase.prototype.updateGroupFixedHeader = function (element, target) {
2322
2362
  if (this.fixedHeaderElement && this.list && this.list.parentElement) {
@@ -2437,6 +2477,8 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2437
2477
  this.list.querySelector('.e-virtual-ddl-content').appendChild(ulElement);
2438
2478
  this.updateListElements(listData);
2439
2479
  }
2480
+ oldUlElement = null;
2481
+ virtualUlElement = null;
2440
2482
  }
2441
2483
  }
2442
2484
  return ulElement;
@@ -2967,6 +3009,7 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2967
3009
  this.updateSelection();
2968
3010
  }
2969
3011
  this.addedNewItem = true;
3012
+ liCollections = null;
2970
3013
  };
2971
3014
  /**
2972
3015
  * Checks if the given HTML element is disabled.
@@ -3084,13 +3127,28 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
3084
3127
  detach(this.list);
3085
3128
  }
3086
3129
  }
3130
+ if (this.generatedDataObject) {
3131
+ this.generatedDataObject = {};
3132
+ }
3133
+ this.destroySkeletons();
3087
3134
  this.liCollections = null;
3135
+ this.incrementalLiCollections = null;
3136
+ this.incrementalUlElement = null;
3088
3137
  this.ulElement = null;
3138
+ this.fixedHeaderElement = null;
3089
3139
  this.list = null;
3140
+ this.item = null;
3090
3141
  this.enableRtlElements = null;
3091
3142
  this.groupHeaderItems = null;
3092
3143
  this.fiteredGroupHeaderItems = null;
3093
3144
  this.rippleFun = null;
3145
+ this.popupContentElement = null;
3146
+ this.virtualListInfo = null;
3147
+ this.viewPortInfo = null;
3148
+ this.selectedValueInfo = null;
3149
+ this.virtualGroupDataSource = null;
3150
+ this.virtualSelectAllData = null;
3151
+ this.incrementalListData = null;
3094
3152
  _super.prototype.destroy.call(this);
3095
3153
  };
3096
3154
  __decorate([
@@ -3347,6 +3405,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3347
3405
  else if (floatElement) {
3348
3406
  classList(floatElement, ['e-label-bottom'], ['e-label-top']);
3349
3407
  }
3408
+ floatElement = null;
3350
3409
  }
3351
3410
  };
3352
3411
  DropDownList.prototype.resetHandler = function (e) {
@@ -3627,6 +3686,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3627
3686
  else {
3628
3687
  this.setSelection(element, null);
3629
3688
  }
3689
+ element = null;
3630
3690
  }
3631
3691
  else {
3632
3692
  this.setSelection(this.liCollections[this.activeIndex], null);
@@ -3783,7 +3843,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3783
3843
  if (formElement) {
3784
3844
  EventHandler.remove(formElement, 'reset', this.resetValueHandler);
3785
3845
  }
3786
- if (!Browser.isDevice) {
3846
+ if (!Browser.isDevice && !isNullOrUndefined(this.keyboardModule)) {
3787
3847
  this.keyboardModule.destroy();
3788
3848
  }
3789
3849
  if (this.showClearButton) {
@@ -3904,10 +3964,12 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3904
3964
  var delay = 100;
3905
3965
  this.closePopup(delay, e);
3906
3966
  }
3967
+ li = null;
3907
3968
  };
3908
3969
  DropDownList.prototype.onMouseOver = function (e) {
3909
3970
  var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);
3910
3971
  this.setHover(currentLi);
3972
+ currentLi = null;
3911
3973
  };
3912
3974
  DropDownList.prototype.setHover = function (li) {
3913
3975
  if (this.enabled && this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.hover)) {
@@ -4045,6 +4107,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4045
4107
  this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();
4046
4108
  this.list.scrollTop = 0;
4047
4109
  }
4110
+ li = null;
4048
4111
  }
4049
4112
  else {
4050
4113
  var li = void 0;
@@ -4059,6 +4122,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4059
4122
  this.setSelection(li, e);
4060
4123
  this.setScrollPosition();
4061
4124
  }
4125
+ li = null;
4062
4126
  }
4063
4127
  }
4064
4128
  };
@@ -4292,6 +4356,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4292
4356
  this.ulElement = this.list.querySelector('ul');
4293
4357
  this.handleVirtualKeyboardActions(e, this.pageCount);
4294
4358
  }
4359
+ nextItem = null;
4295
4360
  }
4296
4361
  if (this.allowFiltering && !this.enableVirtualization && this.getModuleName() !== 'autocomplete') {
4297
4362
  var value = this.getItemData().value;
@@ -4328,6 +4393,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4328
4393
  this.updateUpDownAction(e);
4329
4394
  }
4330
4395
  e.preventDefault();
4396
+ focusEle = null;
4331
4397
  };
4332
4398
  DropDownList.prototype.updateHomeEndAction = function (e, isVirtualKeyAction) {
4333
4399
  if (this.getModuleName() === 'dropdownlist') {
@@ -4448,6 +4514,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4448
4514
  }
4449
4515
  this.hidePopup(e);
4450
4516
  this.focusDropDown(e);
4517
+ li = null;
4451
4518
  }
4452
4519
  else {
4453
4520
  this.showPopup();
@@ -4645,6 +4712,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4645
4712
  ulElement = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;
4646
4713
  this.actionCompleteData.ulElement = ulElement;
4647
4714
  }
4715
+ ulElement = null;
4648
4716
  }
4649
4717
  };
4650
4718
  DropDownList.prototype.updateSelectedItem = function (li, e, preventSelect, isSelection) {
@@ -4683,6 +4751,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4683
4751
  this.setSelectOptions(li, e);
4684
4752
  }
4685
4753
  }
4754
+ li = null;
4686
4755
  };
4687
4756
  DropDownList.prototype.selectEventCallback = function (li, e, preventSelect, selectedData, value) {
4688
4757
  this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;
@@ -4717,6 +4786,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4717
4786
  }
4718
4787
  this.activeIndex = this.getIndexByValue(value);
4719
4788
  }
4789
+ focusedItem = null;
4720
4790
  };
4721
4791
  DropDownList.prototype.activeItem = function (li) {
4722
4792
  if (this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.selected)) {
@@ -5439,6 +5509,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5439
5509
  EventHandler.add(this.filterInput, 'keydown', this.onFilterDown, this);
5440
5510
  EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);
5441
5511
  EventHandler.add(this.filterInput, 'paste', this.pasteHandler, this);
5512
+ parentElement = null;
5442
5513
  return this.filterInputObj;
5443
5514
  }
5444
5515
  else {
@@ -5602,6 +5673,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5602
5673
  this.activeIndex = this.getIndexByValue(value);
5603
5674
  var element = this.findListElement(this.list, 'li', 'data-value', value);
5604
5675
  this.selectedLI = element;
5676
+ element = null;
5605
5677
  }
5606
5678
  else if (this.enableVirtualization && this.getModuleName() === 'autocomplete') {
5607
5679
  this.activeIndex = this.skeletonCount;
@@ -5782,6 +5854,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5782
5854
  if (!(this.enableVirtualization && isNullOrUndefined(element))) {
5783
5855
  this.removeFocus();
5784
5856
  }
5857
+ element = null;
5785
5858
  };
5786
5859
  DropDownList.prototype.updateSelection = function () {
5787
5860
  var selectedItem = this.list.querySelector('.' + dropDownBaseClasses.selected);
@@ -5800,6 +5873,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5800
5873
  }
5801
5874
  this.list.querySelector('.' + dropDownBaseClasses.li).classList.add(dropDownListClasses.focus);
5802
5875
  }
5876
+ selectedItem = null;
5803
5877
  };
5804
5878
  DropDownList.prototype.updateSelectionList = function () {
5805
5879
  var selectedItem = this.list && this.list.querySelector('.' + 'e-active');
@@ -5943,6 +6017,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5943
6017
  parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +
5944
6018
  parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));
5945
6019
  }
6020
+ firstItem = null;
5946
6021
  }
5947
6022
  _this.createPopup(popupEle_1, offsetValue, left);
5948
6023
  _this.popupContentElement = _this.popupObj.element.querySelector('.e-content');
@@ -6196,6 +6271,8 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6196
6271
  }
6197
6272
  }
6198
6273
  _this.activeStateChange();
6274
+ actionList = null;
6275
+ ulElement = null;
6199
6276
  },
6200
6277
  targetExitViewport: function () {
6201
6278
  if (!Browser.isDevice) {
@@ -6235,6 +6312,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6235
6312
  var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);
6236
6313
  detach(this.filterInput);
6237
6314
  clearElement.parentElement.insertBefore(this.filterInput, clearElement);
6315
+ clearElement = null;
6238
6316
  };
6239
6317
  DropDownList.prototype.setPopupPosition = function (border) {
6240
6318
  var offsetValue;
@@ -6263,6 +6341,9 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6263
6341
  }
6264
6342
  var inputHeight = this.inputWrapper.container.offsetHeight;
6265
6343
  offsetValue = offsetValue + liHeight + popupOffset - ((liHeight - inputHeight) / 2);
6344
+ selectedLI = null;
6345
+ firstItem = null;
6346
+ lastItem = null;
6266
6347
  return -offsetValue;
6267
6348
  };
6268
6349
  DropDownList.prototype.setWidth = function () {
@@ -6277,6 +6358,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6277
6358
  width = (parseInt(width, 10) + (parseInt(getComputedStyle(firstItem).textIndent, 10) -
6278
6359
  parseInt(getComputedStyle(this.inputElement).paddingLeft, 10) +
6279
6360
  parseInt(getComputedStyle(this.inputElement.parentElement).borderLeftWidth, 10)) * 2) + 'px';
6361
+ firstItem = null;
6280
6362
  }
6281
6363
  return width;
6282
6364
  };
@@ -6531,7 +6613,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6531
6613
  EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);
6532
6614
  EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);
6533
6615
  }
6534
- if (this.allowFiltering && this.getModuleName() === 'dropdownlist') {
6616
+ if (this.allowFiltering && !isNullOrUndefined(this.filterInput) && this.getModuleName() === 'dropdownlist') {
6535
6617
  this.filterInput.removeAttribute('aria-activedescendant');
6536
6618
  this.filterInput.removeAttribute('aria-disabled');
6537
6619
  this.filterInput.removeAttribute('role');
@@ -6539,7 +6621,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6539
6621
  this.filterInput.removeAttribute('autocapitalize');
6540
6622
  this.filterInput.removeAttribute('spellcheck');
6541
6623
  }
6542
- if (this.filterInput.parentNode) {
6624
+ if (!isNullOrUndefined(this.filterInput) && this.filterInput.parentNode) {
6543
6625
  this.filterInput.parentNode.removeChild(this.filterInput);
6544
6626
  var attrs = Array.prototype.slice.call(this.filterInput.attributes);
6545
6627
  for (var n = 0; n < attrs.length; n++) {
@@ -6690,6 +6772,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6690
6772
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6691
6773
  this.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.getTransformValues();
6692
6774
  }
6775
+ ulElement = null;
6693
6776
  };
6694
6777
  DropDownList.prototype.destroyPopup = function () {
6695
6778
  this.isPopupOpen = false;
@@ -6896,6 +6979,8 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6896
6979
  var listItemHeight = Math.ceil(item.getBoundingClientRect().height) +
6897
6980
  parseInt(window.getComputedStyle(item).marginBottom, 10);
6898
6981
  listParent.remove();
6982
+ listParent = null;
6983
+ item = null;
6899
6984
  return listItemHeight;
6900
6985
  };
6901
6986
  DropDownList.prototype.setFooterTemplate = function (popupEle) {
@@ -6949,6 +7034,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6949
7034
  }
6950
7035
  var contentEle = popupEle.querySelector('div.e-content');
6951
7036
  popupEle.insertBefore(this.header, contentEle);
7037
+ contentEle = null;
6952
7038
  };
6953
7039
  /**
6954
7040
  * Sets the enabled state to DropDownBase.
@@ -7013,6 +7099,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7013
7099
  ((props.dataSource instanceof DataManager) || (!isNullOrUndefined(props) && Array.isArray(props.dataSource) &&
7014
7100
  !isNullOrUndefined(oldProps) && Array.isArray(oldProps.dataSource) && props.dataSource.length !== oldProps.dataSource.length))) {
7015
7101
  this.typedString = '';
7102
+ this.selectData = null;
7016
7103
  this.resetList(this.dataSource);
7017
7104
  }
7018
7105
  if (!this.isCustomFilter && !this.isFilterFocus && document.activeElement !== this.filterInput) {
@@ -7165,9 +7252,9 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7165
7252
  return { value: void 0 };
7166
7253
  }
7167
7254
  if (this_1.enableVirtualization) {
7255
+ var isOfflineMode = this_1.dataSource instanceof DataManager &&
7256
+ this_1.dataSource.dataSource.offline === true;
7168
7257
  if (newProp.value && this_1.dataSource instanceof DataManager) {
7169
- var isOfflineMode = this_1.dataSource instanceof DataManager &&
7170
- this_1.dataSource.dataSource.offline === true;
7171
7258
  var checkField = isNullOrUndefined(this_1.fields.value) ? this_1.fields.text : this_1.fields.value;
7172
7259
  var value = this_1.allowObjectBinding && !isNullOrUndefined(newProp.value) ?
7173
7260
  getValue(checkField, newProp.value) : newProp.value;
@@ -7251,6 +7338,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7251
7338
  }
7252
7339
  }
7253
7340
  this_1.updateInputFields();
7341
+ element = null;
7254
7342
  }
7255
7343
  break;
7256
7344
  case 'footerTemplate':
@@ -7342,6 +7430,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7342
7430
  }
7343
7431
  }
7344
7432
  };
7433
+ li = null;
7345
7434
  };
7346
7435
  DropDownList.prototype.updatePopupState = function () {
7347
7436
  if (this.beforePopupOpen) {
@@ -7514,6 +7603,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7514
7603
  this.setValueTemplate();
7515
7604
  }
7516
7605
  }
7606
+ element = null;
7517
7607
  }
7518
7608
  else {
7519
7609
  this.resetSelection();
@@ -7639,6 +7729,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7639
7729
  this.clear();
7640
7730
  }
7641
7731
  }
7732
+ li = null;
7642
7733
  }
7643
7734
  }
7644
7735
  }
@@ -7674,7 +7765,8 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7674
7765
  if (this.inputElement) {
7675
7766
  var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby',
7676
7767
  'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize',
7677
- 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label'];
7768
+ 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label',
7769
+ 'role', 'value', 'style', 'type'];
7678
7770
  for (var i = 0; i < attrArray.length; i++) {
7679
7771
  this.inputElement.removeAttribute(attrArray[i]);
7680
7772
  }
@@ -7755,6 +7847,43 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7755
7847
  detach(this.popupObj.element);
7756
7848
  this.popupObj.element = null;
7757
7849
  }
7850
+ if (this.list) {
7851
+ while (this.list.firstChild) {
7852
+ this.list.removeChild(this.list.firstChild);
7853
+ }
7854
+ if (this.list.parentNode) {
7855
+ this.list.parentNode.removeChild(this.list);
7856
+ }
7857
+ detach(this.list);
7858
+ }
7859
+ if (this.ulElement) {
7860
+ while (this.ulElement.firstChild) {
7861
+ this.ulElement.removeChild(this.ulElement.firstChild);
7862
+ }
7863
+ if (this.ulElement.parentNode) {
7864
+ this.ulElement.parentNode.removeChild(this.ulElement);
7865
+ }
7866
+ detach(this.ulElement);
7867
+ }
7868
+ if (this.actionData && this.actionData.ulElement) {
7869
+ while (this.actionData.ulElement.firstChild) {
7870
+ this.actionData.ulElement.removeChild(this.actionData.ulElement.firstChild);
7871
+ }
7872
+ detach(this.actionData.ulElement);
7873
+ this.actionData.ulElement = null;
7874
+ this.actionData.list = null;
7875
+ this.actionData = null;
7876
+ }
7877
+ if (this.actionCompleteData && this.actionCompleteData.ulElement) {
7878
+ while (this.actionCompleteData.ulElement.firstChild) {
7879
+ this.actionCompleteData.ulElement.removeChild(this.actionCompleteData.ulElement.firstChild);
7880
+ }
7881
+ detach(this.actionCompleteData.ulElement);
7882
+ this.actionCompleteData.ulElement = null;
7883
+ this.actionCompleteData.list = null;
7884
+ this.actionCompleteData = null;
7885
+ }
7886
+ this.listData = null;
7758
7887
  this.ulElement = null;
7759
7888
  this.list = null;
7760
7889
  this.clearIconElement = null;
@@ -7768,20 +7897,19 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7768
7897
  this.header = null;
7769
7898
  this.previousSelectedLI = null;
7770
7899
  this.valueTempElement = null;
7771
- if (this.actionData.ulElement) {
7772
- detach(this.actionData.ulElement);
7773
- }
7774
- this.actionData.ulElement = null;
7775
- if (this.actionCompleteData.ulElement) {
7776
- detach(this.actionCompleteData.ulElement);
7777
- }
7778
- this.actionCompleteData.ulElement = null;
7900
+ this.resizer = null;
7779
7901
  if (this.inputElement && !isNullOrUndefined(this.inputElement.onchange)) {
7780
7902
  this.inputElement.onchange = null;
7781
7903
  }
7782
7904
  if (this.inputElement && !isNullOrUndefined(this.inputElement.onselect)) {
7783
7905
  this.inputElement.onselect = null;
7784
7906
  }
7907
+ if (this.enableVirtualization) {
7908
+ this.notify('destroy', { module: 'VirtualScroll' });
7909
+ this.virtualGroupDataSource = null;
7910
+ this.viewPortInfo = null;
7911
+ this.selectedValueInfo = null;
7912
+ }
7785
7913
  Input.destroy({
7786
7914
  element: this.inputElement,
7787
7915
  floatLabelType: this.floatLabelType,
@@ -12377,6 +12505,9 @@ var ComboBox = /** @__PURE__ @class */ (function (_super) {
12377
12505
  break;
12378
12506
  case 'allowCustom':
12379
12507
  break;
12508
+ case 'placeholder':
12509
+ Input.setPlaceholder(newProp.placeholder, this.inputElement, this.getModuleName());
12510
+ break;
12380
12511
  default: {
12381
12512
  // eslint-disable-next-line max-len
12382
12513
  var comboProps = this.getPropObject(prop, newProp, oldProp);
@@ -14786,7 +14917,15 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14786
14917
  MultiSelect.prototype.setPlaceholderSize = function (downIconWidth) {
14787
14918
  if (isNullOrUndefined(this.value) || this.value.length === 0) {
14788
14919
  if (this.dropIcon.offsetWidth !== 0) {
14789
- this.searchWrapper.style.width = ('calc(100% - ' + (downIconWidth + 10)) + 'px';
14920
+ var totalIconWidth = downIconWidth + 10;
14921
+ if (this.showClearButton && this.overAllClear) {
14922
+ var display = this.overAllClear.style.display;
14923
+ this.overAllClear.style.display = 'block';
14924
+ var clearWidth = this.overAllClear.offsetWidth;
14925
+ totalIconWidth += clearWidth;
14926
+ this.overAllClear.style.display = display;
14927
+ }
14928
+ this.searchWrapper.style.width = 'calc(100% - ' + totalIconWidth + 'px)';
14790
14929
  }
14791
14930
  else {
14792
14931
  addClass([this.searchWrapper], CUSTOM_WIDTH);
@@ -16177,10 +16316,12 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16177
16316
  if (!isNullOrUndefined(this.chipCollectionWrapper)) {
16178
16317
  (this.chipCollectionWrapper.style.display = '');
16179
16318
  }
16180
- if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {
16319
+ if (this.mode === 'Delimiter' || (this.mode === 'CheckBox' && !this.isSelectAllClicked)) {
16181
16320
  this.showDelimWrapper();
16182
16321
  }
16183
- this.showOverAllClear();
16322
+ if (!this.isSelectAllClicked) {
16323
+ this.showOverAllClear();
16324
+ }
16184
16325
  }
16185
16326
  else {
16186
16327
  if (!isNullOrUndefined(this.chipCollectionWrapper)) {
@@ -16223,7 +16364,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16223
16364
  temp = this.getOverflowVal(this.value.length - 1);
16224
16365
  data += temp;
16225
16366
  temp = this.viewWrapper.innerHTML;
16226
- this.updateWrapperText(this.viewWrapper, data);
16367
+ if (!this.isSelectAllClicked) {
16368
+ this.updateWrapperText(this.viewWrapper, data);
16369
+ }
16227
16370
  }
16228
16371
  if (this.enableVirtualization && this.mode === 'CheckBox') {
16229
16372
  var currentText = [];
@@ -17691,6 +17834,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
17691
17834
  };
17692
17835
  MultiSelect.prototype.onMouseClick = function (e) {
17693
17836
  var _this = this;
17837
+ this.isSelectAllClicked = false;
17694
17838
  if (!this.isClearAllItem) {
17695
17839
  this.keyCode = null;
17696
17840
  this.scrollFocusStatus = false;
@@ -17769,7 +17913,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
17769
17913
  }
17770
17914
  else {
17771
17915
  e.preventDefault();
17772
- if (this.value.length === this.listData.length && this.isPopupOpen()) {
17916
+ if (this.mode !== 'CheckBox' && this.hideSelectedItem && this.value.length === this.listData.length && this.isPopupOpen()) {
17773
17917
  this.hidePopup(e);
17774
17918
  }
17775
17919
  }
@@ -18107,6 +18251,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18107
18251
  var remainCompildTemp = remainContent.replace('${count}', this.value.length.toString());
18108
18252
  raminElement.innerText = remainCompildTemp;
18109
18253
  this.viewWrapper.appendChild(raminElement);
18254
+ if (this.isSelectAllClicked) {
18255
+ this.showOverAllClear();
18256
+ }
18110
18257
  this.renderReactTemplates();
18111
18258
  var remainSize = raminElement.offsetWidth;
18112
18259
  remove(raminElement);
@@ -18428,9 +18575,22 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18428
18575
  index++;
18429
18576
  }
18430
18577
  if (length > 50) {
18578
+ createSpinner({ target: this.filterParent, width: Browser.isDevice ? '16px' : '14px' }, this.createElement);
18579
+ showSpinner(this.filterParent);
18580
+ if (this.popupObj && this.filterParent) {
18581
+ [this.popupObj.element.querySelector('.e-content'), this.popupObj.element.querySelector('.e-selectall-parent'), this.filterParent].forEach(function (el) { return el && (el.style.opacity = '0.5'); });
18582
+ this.filterParent.querySelector('.e-input').setAttribute('readonly', 'true');
18583
+ this.filterParent.style.cursor = 'progress';
18584
+ }
18431
18585
  setTimeout(function () {
18432
- if (_this.virtualSelectAllData && _this.virtualSelectAllData.length > 0) {
18433
- _this.virtualSelectAllData.map(function (obj) {
18586
+ var dataArray = _this.virtualSelectAllData;
18587
+ var batchSize = 500;
18588
+ var currentIndex = 0;
18589
+ var processBatch = function () {
18590
+ var endIndex = Math.min(currentIndex + batchSize, dataArray.length);
18591
+ var batch = dataArray.slice(currentIndex, endIndex);
18592
+ // Use map on the batch
18593
+ batch.map(function (obj) {
18434
18594
  if (_this.value && obj[_this.fields.value] != null && Array.isArray(_this.value) &&
18435
18595
  ((!_this.allowObjectBinding && _this.value.indexOf(obj[_this.fields.value]) < 0) ||
18436
18596
  (_this.allowObjectBinding && !_this.isObjectInArray(obj[_this.fields.value], _this.value)))) {
@@ -18439,21 +18599,34 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18439
18599
  _this.dispatchSelect(value, event, null, false, length, obj, text);
18440
18600
  }
18441
18601
  });
18442
- }
18443
- _this.updatedataValueItems(event);
18444
- _this.isSelectAllLoop = false;
18445
- if (!_this.changeOnBlur) {
18446
- _this.updateValueState(event, _this.value, _this.tempValues);
18447
- _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;
18448
- }
18449
- _this.updateHiddenElement(true);
18450
- if (_this.popupWrapper && li[index - 1] && li[index - 1].classList.contains('e-item-focus')) {
18451
- var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];
18452
- if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {
18453
- li[index - 1].classList.remove('e-item-focus');
18602
+ currentIndex = endIndex;
18603
+ if (currentIndex < dataArray.length) {
18604
+ requestAnimationFrame(processBatch);
18454
18605
  }
18455
- }
18456
- _this.checkSelectAll();
18606
+ else {
18607
+ _this.updatedataValueItems(event);
18608
+ _this.isSelectAllLoop = false;
18609
+ if (!_this.changeOnBlur) {
18610
+ _this.updateValueState(event, _this.value, _this.tempValues);
18611
+ _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;
18612
+ }
18613
+ _this.updateHiddenElement(true);
18614
+ if (_this.popupWrapper && li[index - 1] && li[index - 1].classList.contains('e-item-focus')) {
18615
+ var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];
18616
+ if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {
18617
+ li[index - 1].classList.remove('e-item-focus');
18618
+ }
18619
+ }
18620
+ _this.checkSelectAll();
18621
+ hideSpinner(_this.filterParent);
18622
+ if (_this.popupObj && _this.filterParent) {
18623
+ [_this.popupObj.element.querySelector('.e-content'), _this.popupObj.element.querySelector('.e-selectall-parent'), _this.filterParent].forEach(function (el) { return el && (el.style.opacity = ''); });
18624
+ _this.filterParent.style.cursor = '';
18625
+ _this.filterParent.querySelector('.e-input').removeAttribute('readonly');
18626
+ }
18627
+ }
18628
+ };
18629
+ processBatch();
18457
18630
  }, 0);
18458
18631
  }
18459
18632
  else if (this.virtualSelectAllData && this.virtualSelectAllData.length > 0) {
@@ -18467,25 +18640,60 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18467
18640
  }
18468
18641
  else {
18469
18642
  if (this.virtualSelectAllData && this.virtualSelectAllData.length > 0) {
18470
- this.virtualSelectAllData.map(function (obj) {
18471
- _this.virtualSelectAll = true;
18472
- _this.removeValue(_this.value[index], event, _this.value.length - index);
18473
- });
18474
- }
18475
- this.updatedataValueItems(event);
18476
- if (!this.changeOnBlur) {
18477
- this.updateValueState(event, this.value, this.tempValues);
18478
- this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;
18479
- }
18480
- this.updateHiddenElement();
18481
- this.setProperties({ value: [] }, true);
18482
- this.selectedListData = [];
18483
- this.virtualSelectAll = false;
18484
- if (!isNullOrUndefined(this.viewPortInfo.startIndex) && !isNullOrUndefined(this.viewPortInfo.endIndex)) {
18485
- this.notify('setCurrentViewDataAsync', {
18486
- component: this.getModuleName(),
18487
- module: 'VirtualScroll'
18488
- });
18643
+ var dataArray_1 = this.virtualSelectAllData;
18644
+ var batchSize_1 = 500;
18645
+ var currentIndex_1 = 0;
18646
+ this.isProcessingVirtualSelectAll = true;
18647
+ createSpinner({ target: this.filterParent, width: Browser.isDevice ? '16px' : '14px' }, this.createElement);
18648
+ showSpinner(this.filterParent);
18649
+ if (this.popupObj && this.filterParent) {
18650
+ [this.popupObj.element.querySelector('.e-content'), this.popupObj.element.querySelector('.e-selectall-parent'), this.filterParent].forEach(function (el) { return el && (el.style.opacity = '0.5'); });
18651
+ this.filterParent.querySelector('.e-input').setAttribute('readonly', 'true');
18652
+ this.filterParent.style.cursor = 'progress';
18653
+ }
18654
+ var processBatch_1 = function () {
18655
+ var endIndex = Math.min(currentIndex_1 + batchSize_1, dataArray_1.length);
18656
+ var batch = dataArray_1.slice(currentIndex_1, endIndex);
18657
+ // Use map on the batch
18658
+ batch.map(function (obj) {
18659
+ _this.virtualSelectAll = true;
18660
+ // eslint-disable-next-line security/detect-object-injection
18661
+ _this.removeValue(_this.value[index], event, _this.value.length - index);
18662
+ });
18663
+ currentIndex_1 = endIndex;
18664
+ if (currentIndex_1 < dataArray_1.length) {
18665
+ requestAnimationFrame(processBatch_1);
18666
+ }
18667
+ else {
18668
+ // All batches completed
18669
+ _this.isProcessingVirtualSelectAll = false;
18670
+ hideSpinner(_this.filterParent);
18671
+ if (_this.popupObj && _this.filterParent) {
18672
+ [_this.popupObj.element.querySelector('.e-content'), _this.popupObj.element.querySelector('.e-selectall-parent'), _this.filterParent].forEach(function (el) { return el && (el.style.opacity = ''); });
18673
+ _this.filterParent.querySelector('.e-input').removeAttribute('readonly');
18674
+ _this.filterParent.style.cursor = '';
18675
+ }
18676
+ if (!_this.isSelectAllClicked) {
18677
+ _this.showOverAllClear();
18678
+ }
18679
+ _this.updatedataValueItems(event);
18680
+ if (!_this.changeOnBlur) {
18681
+ _this.updateValueState(event, _this.value, _this.tempValues);
18682
+ _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;
18683
+ }
18684
+ _this.updateHiddenElement();
18685
+ _this.setProperties({ value: [] }, true);
18686
+ _this.selectedListData = [];
18687
+ _this.virtualSelectAll = false;
18688
+ if (!isNullOrUndefined(_this.viewPortInfo.startIndex) && !isNullOrUndefined(_this.viewPortInfo.endIndex)) {
18689
+ _this.notify('setCurrentViewDataAsync', {
18690
+ component: _this.getModuleName(),
18691
+ module: 'VirtualScroll'
18692
+ });
18693
+ }
18694
+ }
18695
+ };
18696
+ processBatch_1();
18489
18697
  }
18490
18698
  }
18491
18699
  this.checkSelectAll();
@@ -18514,13 +18722,13 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18514
18722
  };
18515
18723
  this.trigger('beforeSelectAll', beforeSelectArgs);
18516
18724
  if ((li && li.length) || (this.enableVirtualization && !state)) {
18517
- var index_1 = 0;
18518
- var count_1 = 0;
18725
+ var index = 0;
18726
+ var count = 0;
18519
18727
  if (this.enableGroupCheckBox) {
18520
- count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : li.length;
18728
+ count = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : li.length;
18521
18729
  }
18522
18730
  else {
18523
- count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : this.maximumSelectionLength;
18731
+ count = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : this.maximumSelectionLength;
18524
18732
  }
18525
18733
  if (!beforeSelectArgs.preventSelectEvent) {
18526
18734
  if (this.enableVirtualization) {
@@ -18535,42 +18743,73 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18535
18743
  }
18536
18744
  }
18537
18745
  else {
18538
- while (index_1 < length && index_1 <= 50 && index_1 < count_1) {
18539
- this.isSelectAllTarget = (length === index_1 + 1);
18540
- this.updateListSelection(li[index_1], event, length - index_1);
18746
+ while (index < length && index <= 50 && index < count) {
18747
+ this.isSelectAllTarget = (length === index + 1);
18748
+ this.updateListSelection(li[index], event, length - index);
18541
18749
  if (this.enableGroupCheckBox) {
18542
- this.findGroupStart(li[index_1]);
18750
+ this.findGroupStart(li[index]);
18543
18751
  }
18544
- index_1++;
18752
+ index++;
18545
18753
  }
18546
18754
  if (length > 50) {
18547
- setTimeout(function () {
18548
- while (index_1 < length && index_1 < count_1) {
18549
- _this.isSelectAllTarget = (length === index_1 + 1);
18550
- _this.updateListSelection(li[index_1], event, length - index_1);
18551
- if (_this.enableGroupCheckBox) {
18552
- _this.findGroupStart(li[index_1]);
18755
+ createSpinner({ target: this.filterParent, width: Browser.isDevice ? '16px' : '14px' }, this.createElement);
18756
+ showSpinner(this.filterParent);
18757
+ if (this.popupObj && this.filterParent) {
18758
+ [this.popupObj.element.querySelector('.e-content'), this.popupObj.element.querySelector('.e-selectall-parent'), this.filterParent].forEach(function (el) { return el && (el.style.opacity = '0.5'); });
18759
+ this.filterParent.querySelector('.e-input').setAttribute('readonly', 'true');
18760
+ this.filterParent.style.cursor = 'progress';
18761
+ }
18762
+ this.isProcessingVirtualSelectAll = !this.isSelectAllClicked;
18763
+ var indexLocal_1 = index; // preserve original index value
18764
+ var maxIndex_1 = Math.min(length, count);
18765
+ // Use two-frame yield to ensure spinner paints before heavy work starts
18766
+ var CHUNK_SIZE_1 = 6;
18767
+ requestAnimationFrame(function () {
18768
+ requestAnimationFrame(function processFrame() {
18769
+ if (!this.list) {
18770
+ return;
18553
18771
  }
18554
- index_1++;
18555
- }
18556
- _this.updatedataValueItems(event);
18557
- if (!_this.changeOnBlur) {
18558
- _this.updateValueState(event, _this.value, _this.tempValues);
18559
- _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;
18560
- }
18561
- _this.updateHiddenElement();
18562
- if (_this.popupWrapper && li[index_1 - 1].classList.contains('e-item-focus')) {
18563
- var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];
18564
- if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {
18565
- li[index_1 - 1].classList.remove('e-item-focus');
18772
+ if (indexLocal_1 >= maxIndex_1) {
18773
+ this.isProcessingVirtualSelectAll = !this.isProcessingVirtualSelectAll;
18774
+ this.updatedataValueItems(event);
18775
+ if (!this.changeOnBlur) {
18776
+ this.updateValueState(event, this.value, this.tempValues);
18777
+ this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;
18778
+ }
18779
+ this.updateHiddenElement();
18780
+ if (this.popupWrapper && li[indexLocal_1 - 1] && li[indexLocal_1 - 1].classList.contains('e-item-focus')) {
18781
+ var selectAllParent = document.getElementsByClassName('e-selectall-parent')[0];
18782
+ if (selectAllParent && selectAllParent.classList.contains('e-item-focus')) {
18783
+ li[indexLocal_1 - 1].classList.remove('e-item-focus');
18784
+ }
18785
+ }
18786
+ hideSpinner(this.filterParent);
18787
+ if (this.popupObj && this.filterParent) {
18788
+ [this.popupObj.element.querySelector('.e-content'), this.popupObj.element.querySelector('.e-selectall-parent'), this.filterParent].forEach(function (el) { return el && (el.style.opacity = ''); });
18789
+ this.filterParent.querySelector('.e-input').removeAttribute('readonly');
18790
+ this.filterParent.style.cursor = '';
18791
+ }
18792
+ return;
18566
18793
  }
18567
- }
18568
- }, 0);
18794
+ // process up to CHUNK_SIZE items this frame
18795
+ var processed = 0;
18796
+ while (processed < CHUNK_SIZE_1 && indexLocal_1 < maxIndex_1) {
18797
+ this.isSelectAllTarget = (length === indexLocal_1 + 1);
18798
+ this.updateListSelection(li[indexLocal_1], event, length - indexLocal_1);
18799
+ if (this.enableGroupCheckBox) {
18800
+ this.findGroupStart(li[indexLocal_1]);
18801
+ }
18802
+ indexLocal_1++;
18803
+ processed++;
18804
+ }
18805
+ requestAnimationFrame(processFrame.bind(this));
18806
+ }.bind(_this));
18807
+ });
18569
18808
  }
18570
18809
  }
18571
18810
  }
18572
18811
  else {
18573
- for (var i = 0; i < li.length && i < count_1; i++) {
18812
+ for (var i = 0; i < li.length && i < count; i++) {
18574
18813
  this.removeHover();
18575
18814
  var customVal = li[i].getAttribute('data-value');
18576
18815
  var value = this.getFormattedValue(customVal);
@@ -18614,7 +18853,10 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18614
18853
  this.trigger('selectedAll', args);
18615
18854
  }
18616
18855
  }
18617
- this.updatedataValueItems(event);
18856
+ if (!this.isProcessingVirtualSelectAll &&
18857
+ ((!this.isSelectAllClicked) || (this.isSelectAllClicked && (this.enableVirtualization ? length > 30 : length <= 50)))) {
18858
+ this.updatedataValueItems(event);
18859
+ }
18618
18860
  this.checkPlaceholderSize();
18619
18861
  if (length <= 50 && !beforeSelectArgs.preventSelectEvent) {
18620
18862
  if (!this.changeOnBlur) {
@@ -18707,6 +18949,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18707
18949
  };
18708
18950
  MultiSelect.prototype.selectAllItems = function (state, event) {
18709
18951
  var _this = this;
18952
+ this.isSelectAllClicked = state;
18710
18953
  if (isNullOrUndefined(this.list)) {
18711
18954
  this.selectAllAction = function () {
18712
18955
  if (_this.mode === 'CheckBox' && _this.showSelectAll) {
@@ -19991,6 +20234,50 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
19991
20234
  if (this.delimiterWrapper && this.delimiterWrapper.parentElement) {
19992
20235
  this.delimiterWrapper.parentElement.remove();
19993
20236
  }
20237
+ if (this.hiddenElement) {
20238
+ if (this.hiddenElement.onchange) {
20239
+ this.hiddenElement.onchange = null;
20240
+ }
20241
+ this.hiddenElement.onchange = null;
20242
+ this.hiddenElement.onclick = null;
20243
+ this.hiddenElement.oninput = null;
20244
+ var attrs = Array.prototype.slice.call(this.hiddenElement.attributes);
20245
+ for (var n = 0; n < attrs.length; n++) {
20246
+ this.hiddenElement.removeAttribute(attrs[n].name);
20247
+ }
20248
+ var children = this.hiddenElement.children;
20249
+ for (var i = 0; i < children.length; i++) {
20250
+ var child = children[i];
20251
+ child.onclick = null;
20252
+ child.onchange = null;
20253
+ child.textContent = '';
20254
+ var attr = Array.prototype.slice.call(child.attributes);
20255
+ for (var n = 0; n < attr.length; n++) {
20256
+ child.removeAttribute(attr[n].name);
20257
+ }
20258
+ }
20259
+ var selectedElement = this.hiddenElement.querySelector('option');
20260
+ if (selectedElement) {
20261
+ selectedElement.removeAttribute('value');
20262
+ selectedElement.removeAttribute('selected');
20263
+ selectedElement.text = '';
20264
+ selectedElement.innerHTML = '';
20265
+ selectedElement = null;
20266
+ }
20267
+ while (this.hiddenElement.firstChild) {
20268
+ this.hiddenElement.removeChild(this.hiddenElement.firstChild);
20269
+ }
20270
+ if (this.hiddenElement.attributes) {
20271
+ var attr = Array.prototype.slice.call(this.hiddenElement.attributes);
20272
+ for (var n = 0; n < attr.length; n++) {
20273
+ this.hiddenElement.removeAttribute(attr[n].name);
20274
+ }
20275
+ }
20276
+ if (this.hiddenElement.parentNode) {
20277
+ this.hiddenElement.parentNode.removeChild(this.hiddenElement);
20278
+ }
20279
+ this.hiddenElement.innerHTML = '';
20280
+ }
19994
20281
  // Remove the select element if it exists
19995
20282
  var selectElement = this.overAllWrapper.querySelector('select.e-multi-hidden');
19996
20283
  if (selectElement && selectElement.parentElement) {
@@ -20010,7 +20297,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
20010
20297
  var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby',
20011
20298
  'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize',
20012
20299
  'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-label', 'aria-hidden', 'tabindex', 'aria-controls',
20013
- 'aria-describedby', 'size', 'role', 'type', 'class'];
20300
+ 'aria-describedby', 'size', 'role', 'type', 'class', 'aria-activedescendant'];
20014
20301
  for (var i = 0; i < attrArray.length; i++) {
20015
20302
  this.inputElement.removeAttribute(attrArray[i]);
20016
20303
  }
@@ -23884,8 +24171,10 @@ var Mention = /** @__PURE__ @class */ (function (_super) {
23884
24171
  return;
23885
24172
  }
23886
24173
  this.isTyped = e.code !== 'Enter' && e.code !== 'Space' && e.code !== 'ArrowDown' && e.code !== 'ArrowUp' ? true : false;
23887
- var isRteImage = document.activeElement.parentElement && document.activeElement.parentElement.querySelector('.e-rte-image') ? true : false;
23888
- if (document.activeElement !== this.inputElement && !isRteImage) {
24174
+ var activeParent = document.activeElement && document.activeElement.parentElement;
24175
+ var isRteImage = activeParent && !!activeParent.querySelector('.e-rte-image');
24176
+ var isBECodeDropdownFocused = activeParent && !!activeParent.querySelector('.e-blockeditor .e-code-block-container .e-input-group.e-input-focus');
24177
+ if (document.activeElement !== this.inputElement && !isRteImage && !isBECodeDropdownFocused) {
23889
24178
  this.inputElement.focus();
23890
24179
  }
23891
24180
  if (this.isContentEditable(this.inputElement)) {
@@ -23910,7 +24199,7 @@ var Mention = /** @__PURE__ @class */ (function (_super) {
23910
24199
  if (!this.requireLeadingSpace && lastWordRange && lastWordRange.includes(this.mentionChar)) {
23911
24200
  lastWordRange = this.mentionChar + lastWordRange.split(this.mentionChar).pop();
23912
24201
  }
23913
- if (lastWordRange.includes(' ')) {
24202
+ if (/\s|\u00A0/.test(lastWordRange)) {
23914
24203
  return;
23915
24204
  }
23916
24205
  }
@@ -24444,7 +24733,9 @@ var Mention = /** @__PURE__ @class */ (function (_super) {
24444
24733
  };
24445
24734
  Mention.prototype.setHeight = function (popupEle) {
24446
24735
  if (this.popupHeight !== 'auto' && this.list) {
24447
- this.list.style.maxHeight = (parseInt(this.listHeight, 10) - 2).toString() + 'px'; // due to box-sizing property
24736
+ var parentStyle = getComputedStyle(this.list.parentElement);
24737
+ var paddingY = parseInt(parentStyle.paddingTop || '0', 10) + parseInt(parentStyle.paddingBottom || '0', 10);
24738
+ this.list.style.maxHeight = (parseInt(this.listHeight, 10) - 2 - paddingY).toString() + 'px'; // due to box-sizing property
24448
24739
  popupEle.style.maxHeight = formatUnit(this.popupHeight);
24449
24740
  }
24450
24741
  else {