@syncfusion/ej2-dropdowns 23.2.7-52849 → 24.1.41

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 (256) hide show
  1. package/.eslintrc.json +260 -0
  2. package/CHANGELOG.md +2038 -2152
  3. package/{ReadMe.md → README.md} +217 -217
  4. package/dist/ej2-dropdowns.min.js +10 -0
  5. package/dist/ej2-dropdowns.umd.min.js +10 -1
  6. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es2015.js +709 -172
  8. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  9. package/dist/es6/ej2-dropdowns.es5.js +870 -332
  10. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  11. package/dist/global/ej2-dropdowns.min.js +11 -0
  12. package/dist/global/ej2-dropdowns.min.js.map +1 -0
  13. package/dist/global/index.d.ts +14 -0
  14. package/helpers/e2e/autocomplete.js +13 -13
  15. package/helpers/e2e/combobox.js +13 -13
  16. package/helpers/e2e/dropdownlist.js +13 -13
  17. package/helpers/e2e/index.js +3 -3
  18. package/helpers/e2e/listboxHelper.js +13 -13
  19. package/helpers/e2e/multiselect.js +13 -13
  20. package/license +2 -2
  21. package/package.json +80 -80
  22. package/src/auto-complete/auto-complete-model.d.ts +188 -188
  23. package/src/auto-complete/auto-complete.d.ts +12 -12
  24. package/src/auto-complete/auto-complete.js +30 -25
  25. package/src/combo-box/combo-box-model.d.ts +224 -224
  26. package/src/combo-box/combo-box.d.ts +27 -27
  27. package/src/combo-box/combo-box.js +103 -31
  28. package/src/common/incremental-search.d.ts +1 -1
  29. package/src/common/incremental-search.js +50 -7
  30. package/src/common/interface.d.ts +2 -0
  31. package/src/common/virtual-scroll.js +68 -47
  32. package/src/drop-down-base/drop-down-base-model.d.ts +200 -200
  33. package/src/drop-down-base/drop-down-base.d.ts +38 -18
  34. package/src/drop-down-base/drop-down-base.js +173 -60
  35. package/src/drop-down-list/drop-down-list-model.d.ts +202 -202
  36. package/src/drop-down-list/drop-down-list.d.ts +14 -7
  37. package/src/drop-down-list/drop-down-list.js +325 -61
  38. package/src/drop-down-tree/drop-down-tree-model.d.ts +468 -468
  39. package/src/drop-down-tree/drop-down-tree.js +43 -39
  40. package/src/list-box/list-box-model.d.ts +193 -193
  41. package/src/list-box/list-box.d.ts +2 -2
  42. package/src/list-box/list-box.js +27 -20
  43. package/src/mention/mention-model.d.ts +261 -261
  44. package/src/mention/mention.js +24 -20
  45. package/src/multi-select/checkbox-selection.js +4 -1
  46. package/src/multi-select/multi-select-model.d.ts +512 -512
  47. package/src/multi-select/multi-select.js +23 -21
  48. package/styles/auto-complete/_all.scss +1 -1
  49. package/styles/auto-complete/_bootstrap-dark-definition.scss +3 -3
  50. package/styles/auto-complete/_bootstrap-definition.scss +2 -2
  51. package/styles/auto-complete/_bootstrap4-definition.scss +11 -11
  52. package/styles/auto-complete/_bootstrap5-definition.scss +2 -2
  53. package/styles/auto-complete/_fabric-dark-definition.scss +2 -2
  54. package/styles/auto-complete/_fabric-definition.scss +2 -2
  55. package/styles/auto-complete/_fluent-definition.scss +2 -2
  56. package/styles/auto-complete/_fusionnew-definition.scss +2 -2
  57. package/styles/auto-complete/_highcontrast-definition.scss +2 -2
  58. package/styles/auto-complete/_highcontrast-light-definition.scss +2 -2
  59. package/styles/auto-complete/_material-dark-definition.scss +2 -2
  60. package/styles/auto-complete/_material-definition.scss +2 -2
  61. package/styles/auto-complete/_material3-definition.scss +2 -2
  62. package/styles/auto-complete/_tailwind-definition.scss +2 -2
  63. package/styles/auto-complete/material3-dark.scss +1 -1
  64. package/styles/auto-complete/material3.scss +1 -1
  65. package/styles/combo-box/_all.scss +1 -1
  66. package/styles/combo-box/_bootstrap-dark-definition.scss +2 -2
  67. package/styles/combo-box/_bootstrap-definition.scss +2 -2
  68. package/styles/combo-box/_bootstrap4-definition.scss +11 -11
  69. package/styles/combo-box/_bootstrap5-definition.scss +2 -2
  70. package/styles/combo-box/_fabric-dark-definition.scss +2 -2
  71. package/styles/combo-box/_fabric-definition.scss +2 -2
  72. package/styles/combo-box/_fluent-definition.scss +2 -2
  73. package/styles/combo-box/_fusionnew-definition.scss +2 -2
  74. package/styles/combo-box/_highcontrast-definition.scss +2 -2
  75. package/styles/combo-box/_highcontrast-light-definition.scss +3 -3
  76. package/styles/combo-box/_material-dark-definition.scss +2 -2
  77. package/styles/combo-box/_material-definition.scss +2 -2
  78. package/styles/combo-box/_material3-definition.scss +2 -2
  79. package/styles/combo-box/_tailwind-definition.scss +2 -2
  80. package/styles/combo-box/material3-dark.scss +1 -1
  81. package/styles/combo-box/material3.scss +1 -1
  82. package/styles/drop-down-base/_all.scss +2 -2
  83. package/styles/drop-down-base/_bootstrap-dark-definition.scss +83 -83
  84. package/styles/drop-down-base/_bootstrap-definition.scss +83 -83
  85. package/styles/drop-down-base/_bootstrap4-definition.scss +90 -90
  86. package/styles/drop-down-base/_bootstrap5-definition.scss +117 -117
  87. package/styles/drop-down-base/_definition.scss +23 -23
  88. package/styles/drop-down-base/_fabric-dark-definition.scss +86 -86
  89. package/styles/drop-down-base/_fabric-definition.scss +84 -84
  90. package/styles/drop-down-base/_fluent-definition.scss +121 -121
  91. package/styles/drop-down-base/_fusionnew-definition.scss +117 -117
  92. package/styles/drop-down-base/_highcontrast-definition.scss +105 -105
  93. package/styles/drop-down-base/_highcontrast-light-definition.scss +105 -105
  94. package/styles/drop-down-base/_layout.scss +195 -195
  95. package/styles/drop-down-base/_material-dark-definition.scss +86 -86
  96. package/styles/drop-down-base/_material-definition.scss +85 -85
  97. package/styles/drop-down-base/_material3-definition.scss +87 -87
  98. package/styles/drop-down-base/_tailwind-definition.scss +129 -129
  99. package/styles/drop-down-base/_theme.scss +391 -391
  100. package/styles/drop-down-base/material3-dark.scss +1 -1
  101. package/styles/drop-down-base/material3.scss +1 -1
  102. package/styles/drop-down-list/_all.scss +3 -3
  103. package/styles/drop-down-list/_bootstrap-dark-definition.scss +157 -157
  104. package/styles/drop-down-list/_bootstrap-definition.scss +156 -156
  105. package/styles/drop-down-list/_bootstrap4-definition.scss +202 -202
  106. package/styles/drop-down-list/_bootstrap5-definition.scss +201 -201
  107. package/styles/drop-down-list/_fabric-dark-definition.scss +128 -128
  108. package/styles/drop-down-list/_fabric-definition.scss +124 -124
  109. package/styles/drop-down-list/_fluent-definition.scss +185 -185
  110. package/styles/drop-down-list/_fusionnew-definition.scss +201 -201
  111. package/styles/drop-down-list/_highcontrast-definition.scss +142 -142
  112. package/styles/drop-down-list/_highcontrast-light-definition.scss +144 -144
  113. package/styles/drop-down-list/_layout.scss +310 -310
  114. package/styles/drop-down-list/_material-dark-definition.scss +143 -143
  115. package/styles/drop-down-list/_material-definition.scss +167 -167
  116. package/styles/drop-down-list/_material3-definition.scss +180 -180
  117. package/styles/drop-down-list/_tailwind-definition.scss +134 -134
  118. package/styles/drop-down-list/_theme.scss +10 -10
  119. package/styles/drop-down-list/icons/_bootstrap-dark.scss +14 -14
  120. package/styles/drop-down-list/icons/_bootstrap.scss +14 -14
  121. package/styles/drop-down-list/icons/_bootstrap4.scss +14 -14
  122. package/styles/drop-down-list/icons/_bootstrap5.scss +14 -14
  123. package/styles/drop-down-list/icons/_fabric-dark.scss +14 -14
  124. package/styles/drop-down-list/icons/_fabric.scss +14 -14
  125. package/styles/drop-down-list/icons/_fluent.scss +14 -14
  126. package/styles/drop-down-list/icons/_fusionnew.scss +14 -14
  127. package/styles/drop-down-list/icons/_highcontrast-light.scss +14 -14
  128. package/styles/drop-down-list/icons/_highcontrast.scss +14 -14
  129. package/styles/drop-down-list/icons/_material-dark.scss +14 -14
  130. package/styles/drop-down-list/icons/_material.scss +14 -14
  131. package/styles/drop-down-list/icons/_material3.scss +14 -14
  132. package/styles/drop-down-list/icons/_tailwind.scss +14 -14
  133. package/styles/drop-down-list/material3-dark.scss +1 -1
  134. package/styles/drop-down-list/material3.scss +1 -1
  135. package/styles/drop-down-tree/_all.scss +2 -2
  136. package/styles/drop-down-tree/_bootstrap-dark-definition.scss +71 -71
  137. package/styles/drop-down-tree/_bootstrap-definition.scss +70 -70
  138. package/styles/drop-down-tree/_bootstrap4-definition.scss +71 -71
  139. package/styles/drop-down-tree/_bootstrap5-definition.scss +59 -59
  140. package/styles/drop-down-tree/_fabric-dark-definition.scss +71 -71
  141. package/styles/drop-down-tree/_fabric-definition.scss +71 -71
  142. package/styles/drop-down-tree/_fluent-definition.scss +65 -65
  143. package/styles/drop-down-tree/_fusionnew-definition.scss +59 -59
  144. package/styles/drop-down-tree/_highcontrast-definition.scss +71 -71
  145. package/styles/drop-down-tree/_highcontrast-light-definition.scss +71 -71
  146. package/styles/drop-down-tree/_layout.scss +1418 -1418
  147. package/styles/drop-down-tree/_material-dark-definition.scss +72 -72
  148. package/styles/drop-down-tree/_material-definition.scss +72 -72
  149. package/styles/drop-down-tree/_material3-definition.scss +76 -76
  150. package/styles/drop-down-tree/_tailwind-definition.scss +61 -61
  151. package/styles/drop-down-tree/_theme.scss +132 -132
  152. package/styles/drop-down-tree/icons/_bootstrap-dark.scss +11 -11
  153. package/styles/drop-down-tree/icons/_bootstrap.scss +11 -11
  154. package/styles/drop-down-tree/icons/_bootstrap4.scss +11 -11
  155. package/styles/drop-down-tree/icons/_bootstrap5.scss +11 -11
  156. package/styles/drop-down-tree/icons/_fabric-dark.scss +11 -11
  157. package/styles/drop-down-tree/icons/_fabric.scss +11 -11
  158. package/styles/drop-down-tree/icons/_fluent.scss +11 -11
  159. package/styles/drop-down-tree/icons/_fusionnew.scss +11 -11
  160. package/styles/drop-down-tree/icons/_highcontrast-light.scss +11 -11
  161. package/styles/drop-down-tree/icons/_highcontrast.scss +11 -11
  162. package/styles/drop-down-tree/icons/_material-dark.scss +11 -11
  163. package/styles/drop-down-tree/icons/_material.scss +11 -11
  164. package/styles/drop-down-tree/icons/_material3.scss +11 -11
  165. package/styles/drop-down-tree/icons/_tailwind-dark.scss +11 -11
  166. package/styles/drop-down-tree/icons/_tailwind.scss +11 -11
  167. package/styles/drop-down-tree/material3-dark.scss +1 -1
  168. package/styles/drop-down-tree/material3.scss +1 -1
  169. package/styles/list-box/_all.scss +2 -2
  170. package/styles/list-box/_bootstrap-dark-definition.scss +126 -126
  171. package/styles/list-box/_bootstrap-definition.scss +119 -119
  172. package/styles/list-box/_bootstrap4-definition.scss +124 -124
  173. package/styles/list-box/_bootstrap5-definition.scss +120 -120
  174. package/styles/list-box/_fabric-dark-definition.scss +126 -126
  175. package/styles/list-box/_fabric-definition.scss +119 -119
  176. package/styles/list-box/_fluent-definition.scss +120 -120
  177. package/styles/list-box/_fusionnew-definition.scss +111 -111
  178. package/styles/list-box/_highcontrast-definition.scss +119 -119
  179. package/styles/list-box/_highcontrast-light-definition.scss +126 -126
  180. package/styles/list-box/_layout.scss +542 -542
  181. package/styles/list-box/_material-dark-definition.scss +126 -126
  182. package/styles/list-box/_material-definition.scss +119 -119
  183. package/styles/list-box/_material3-definition.scss +119 -119
  184. package/styles/list-box/_tailwind-definition.scss +119 -119
  185. package/styles/list-box/_theme.scss +382 -382
  186. package/styles/list-box/icons/_bootstrap-dark.scss +25 -25
  187. package/styles/list-box/icons/_bootstrap.scss +25 -25
  188. package/styles/list-box/icons/_bootstrap4.scss +25 -25
  189. package/styles/list-box/icons/_bootstrap5.scss +25 -25
  190. package/styles/list-box/icons/_fabric-dark.scss +25 -25
  191. package/styles/list-box/icons/_fabric.scss +25 -25
  192. package/styles/list-box/icons/_fluent.scss +25 -25
  193. package/styles/list-box/icons/_fusionnew.scss +25 -25
  194. package/styles/list-box/icons/_highcontrast-light.scss +25 -25
  195. package/styles/list-box/icons/_highcontrast.scss +25 -25
  196. package/styles/list-box/icons/_material-dark.scss +25 -25
  197. package/styles/list-box/icons/_material.scss +25 -25
  198. package/styles/list-box/icons/_material3.scss +25 -25
  199. package/styles/list-box/icons/_tailwind-dark.scss +25 -25
  200. package/styles/list-box/icons/_tailwind.scss +25 -25
  201. package/styles/list-box/material3-dark.scss +1 -1
  202. package/styles/list-box/material3.scss +1 -1
  203. package/styles/material3-dark.scss +1 -1
  204. package/styles/material3.scss +1 -1
  205. package/styles/mention/_all.scss +1 -1
  206. package/styles/mention/_bootstrap-dark-definition.scss +3 -3
  207. package/styles/mention/_bootstrap-definition.scss +3 -3
  208. package/styles/mention/_bootstrap4-definition.scss +3 -3
  209. package/styles/mention/_bootstrap5-definition.scss +1 -1
  210. package/styles/mention/_fabric-dark-definition.scss +2 -2
  211. package/styles/mention/_fabric-definition.scss +3 -3
  212. package/styles/mention/_fluent-definition.scss +1 -1
  213. package/styles/mention/_fusionnew-definition.scss +1 -1
  214. package/styles/mention/_highcontrast-definition.scss +3 -3
  215. package/styles/mention/_highcontrast-light-definition.scss +3 -3
  216. package/styles/mention/_layout.scss +6 -6
  217. package/styles/mention/_material-dark-definition.scss +3 -3
  218. package/styles/mention/_material-definition.scss +3 -3
  219. package/styles/mention/_material3-definition.scss +1 -1
  220. package/styles/mention/_tailwind-definition.scss +1 -1
  221. package/styles/mention/material3-dark.scss +1 -1
  222. package/styles/mention/material3.scss +1 -1
  223. package/styles/multi-select/_all.scss +2 -2
  224. package/styles/multi-select/_bootstrap-dark-definition.scss +203 -203
  225. package/styles/multi-select/_bootstrap-definition.scss +192 -192
  226. package/styles/multi-select/_bootstrap4-definition.scss +278 -278
  227. package/styles/multi-select/_bootstrap5-definition.scss +230 -230
  228. package/styles/multi-select/_fabric-dark-definition.scss +192 -192
  229. package/styles/multi-select/_fabric-definition.scss +183 -183
  230. package/styles/multi-select/_fluent-definition.scss +241 -241
  231. package/styles/multi-select/_fusionnew-definition.scss +227 -227
  232. package/styles/multi-select/_highcontrast-definition.scss +303 -303
  233. package/styles/multi-select/_highcontrast-light-definition.scss +297 -297
  234. package/styles/multi-select/_layout.scss +2199 -2199
  235. package/styles/multi-select/_material-dark-definition.scss +230 -230
  236. package/styles/multi-select/_material-definition.scss +223 -223
  237. package/styles/multi-select/_material3-definition.scss +246 -246
  238. package/styles/multi-select/_tailwind-definition.scss +235 -235
  239. package/styles/multi-select/_theme.scss +586 -586
  240. package/styles/multi-select/icons/_bootstrap-dark.scss +26 -26
  241. package/styles/multi-select/icons/_bootstrap.scss +26 -26
  242. package/styles/multi-select/icons/_bootstrap4.scss +37 -37
  243. package/styles/multi-select/icons/_bootstrap5.scss +26 -26
  244. package/styles/multi-select/icons/_fabric-dark.scss +26 -26
  245. package/styles/multi-select/icons/_fabric.scss +26 -26
  246. package/styles/multi-select/icons/_fluent.scss +55 -55
  247. package/styles/multi-select/icons/_fusionnew.scss +26 -26
  248. package/styles/multi-select/icons/_highcontrast-light.scss +26 -26
  249. package/styles/multi-select/icons/_highcontrast.scss +26 -26
  250. package/styles/multi-select/icons/_material-dark.scss +693 -693
  251. package/styles/multi-select/icons/_material.scss +693 -693
  252. package/styles/multi-select/icons/_material3.scss +692 -692
  253. package/styles/multi-select/icons/_tailwind.scss +26 -26
  254. package/styles/multi-select/material3-dark.scss +1 -1
  255. package/styles/multi-select/material3.scss +1 -1
  256. package/tslint.json +111 -0
@@ -1,22 +1,22 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- extendStatics(d, b);
10
- function __() { this.constructor = d; }
11
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
- };
13
- })();
14
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- };
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ };
20
20
  import { Component, EventHandler, addClass, append, Property, Event, L10n, compile } from '@syncfusion/ej2-base';
21
21
  import { setStyleAttribute, extend, removeClass, prepend, isNullOrUndefined, detach, getValue } from '@syncfusion/ej2-base';
22
22
  import { NotifyPropertyChanges, rippleEffect, ChildProperty, Complex } from '@syncfusion/ej2-base';
@@ -96,6 +96,9 @@ var DropDownBase = /** @class */ (function (_super) {
96
96
  _this.virtualizedItemsCount = 0;
97
97
  _this.totalItemCount = 0;
98
98
  _this.dataCount = 0;
99
+ _this.isRemoteDataUpdated = false;
100
+ _this.isIncrementalRequest = false;
101
+ _this.itemCount = 10;
99
102
  return _this;
100
103
  }
101
104
  DropDownBase.prototype.getPropObject = function (prop, newProp, oldProp) {
@@ -492,7 +495,7 @@ var DropDownBase = /** @class */ (function (_super) {
492
495
  if (!eventArgs.cancel) {
493
496
  _this.isRequesting = true;
494
497
  _this.showSpinner();
495
- if (dataSource instanceof DataManager) {
498
+ if (dataSource instanceof DataManager && !_this.virtualGroupDataSource) {
496
499
  _this.isRequested = true;
497
500
  if (_this.isDataFetched) {
498
501
  _this.emptyDataRequest(fields);
@@ -501,12 +504,42 @@ var DropDownBase = /** @class */ (function (_super) {
501
504
  eventArgs.data.executeQuery(_this.getQuery(eventArgs.query)).then(function (e) {
502
505
  _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;
503
506
  _this.trigger('actionComplete', e, function (e) {
507
+ if (!_this.virtualGroupDataSource && _this.isVirtualizationEnabled) {
508
+ _this.isRemoteDataUpdated = true;
509
+ if ((_this.getModuleName() === 'combobox' && _this.isAllowFiltering && _this.isVirtualizationEnabled && e.result)) {
510
+ e.result = e.result.result;
511
+ }
512
+ if (e.result.length > 0) {
513
+ var dataSource_2 = e.result;
514
+ if (_this.isVirtualizationEnabled && _this.fields.groupBy) {
515
+ var data = new DataManager(dataSource_2).executeLocal(new Query().group(_this.fields.groupBy));
516
+ _this.virtualGroupDataSource = data.records;
517
+ }
518
+ else {
519
+ _this.virtualGroupDataSource = dataSource_2;
520
+ _this.hideSpinner();
521
+ _this.isRequested = false;
522
+ _this.isRequesting = false;
523
+ _this.setListData(dataSource_2, fields, query, event);
524
+ return;
525
+ }
526
+ }
527
+ _this.hideSpinner();
528
+ _this.isRequested = false;
529
+ _this.isRequesting = false;
530
+ _this.updatePopupState();
531
+ return;
532
+ }
504
533
  if (!e.cancel) {
534
+ _this.isRequesting = false;
505
535
  var listItems = e.result;
536
+ if (_this.isIncrementalRequest) {
537
+ ulElement = _this.renderItems(listItems, fields);
538
+ return;
539
+ }
506
540
  if (listItems.length === 0) {
507
541
  _this.isDataFetched = true;
508
542
  }
509
- _this.isRequesting = false;
510
543
  _this.dataCount = e.count;
511
544
  _this.totalItemCount = e.count;
512
545
  ulElement = _this.renderItems(listItems, fields);
@@ -527,8 +560,25 @@ var DropDownBase = /** @class */ (function (_super) {
527
560
  }
528
561
  else {
529
562
  _this.isRequesting = false;
530
- var dataManager = new DataManager(eventArgs.data);
531
- var listItems = (_this.getQuery(eventArgs.query)).executeLocal(dataManager);
563
+ var listItems = void 0;
564
+ if (_this.isVirtualizationEnabled && !_this.virtualGroupDataSource && _this.fields.groupBy) {
565
+ var data = new DataManager(_this.dataSource).executeLocal(new Query().group(_this.fields.groupBy));
566
+ _this.virtualGroupDataSource = data.records;
567
+ }
568
+ var dataManager = _this.isVirtualizationEnabled && _this.virtualGroupDataSource ? new DataManager(_this.virtualGroupDataSource) : new DataManager(eventArgs.data);
569
+ listItems = (_this.getQuery(eventArgs.query)).executeLocal(dataManager);
570
+ if (_this.isVirtualizationEnabled && _this.getModuleName() === 'autocomplete' && (listItems.count != 0 && listItems.count < (_this.itemCount * 2))) {
571
+ var newQuery = _this.getQuery(eventArgs.query);
572
+ if (newQuery) {
573
+ for (var queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
574
+ if (newQuery.queries[queryElements].fn === 'onTake') {
575
+ newQuery.queries[queryElements].e.nos = listItems.count;
576
+ listItems = (newQuery).executeLocal(dataManager);
577
+ break;
578
+ }
579
+ }
580
+ }
581
+ }
532
582
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
533
583
  _this.dataCount = listItems.count;
534
584
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -538,6 +588,10 @@ var DropDownBase = /** @class */ (function (_super) {
538
588
  var localDataArgs = { cancel: false, result: listItems };
539
589
  _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;
540
590
  _this.trigger('actionComplete', localDataArgs, function (localDataArgs) {
591
+ if (_this.isIncrementalRequest) {
592
+ ulElement = _this.renderItems(localDataArgs.result, fields);
593
+ return;
594
+ }
541
595
  if (!localDataArgs.cancel) {
542
596
  ulElement = _this.renderItems(localDataArgs.result, fields);
543
597
  _this.onActionComplete(ulElement, localDataArgs.result, event);
@@ -557,6 +611,12 @@ var DropDownBase = /** @class */ (function (_super) {
557
611
  });
558
612
  }
559
613
  };
614
+ DropDownBase.prototype.updatePopupState = function () {
615
+ // Used this method in component side.
616
+ };
617
+ DropDownBase.prototype.updateRemoteData = function () {
618
+ this.setListData(this.dataSource, this.fields, this.query);
619
+ };
560
620
  DropDownBase.prototype.bindChildItems = function (listItems, ulElement, fields, e) {
561
621
  var _this = this;
562
622
  if (listItems.length >= 100 && this.getModuleName() === 'autocomplete') {
@@ -644,7 +704,9 @@ var DropDownBase = /** @class */ (function (_super) {
644
704
  if (this.isReact) {
645
705
  this.clearTemplate(['itemTemplate', 'groupTemplate', 'actionFailureTemplate', 'noRecordsTemplate']);
646
706
  }
647
- this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;
707
+ if (!this.isVirtualizationEnabled) {
708
+ this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;
709
+ }
648
710
  if (this.getModuleName() === 'multiselect' && this.properties.allowCustomValue && this.fields.groupBy) {
649
711
  for (var i = 0; i < ulElement.childElementCount; i++) {
650
712
  if (ulElement.children[i].classList.contains('e-list-group-item')) {
@@ -785,25 +847,67 @@ var DropDownBase = /** @class */ (function (_super) {
785
847
  this.scrollStop(e);
786
848
  }
787
849
  };
788
- DropDownBase.prototype.scrollStop = function (e) {
850
+ DropDownBase.prototype.scrollStop = function (e, isDownkey) {
789
851
  var target = !isNullOrUndefined(e) ? e.target : this.list;
790
852
  var liHeight = parseInt(getComputedStyle(this.getValidLi(), null).getPropertyValue('height'), 10);
791
853
  var topIndex = Math.round(target.scrollTop / liHeight);
792
854
  var liCollections = this.list.querySelectorAll('li' + ':not(.e-hide-listitem)');
855
+ var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;
856
+ var count = 0;
857
+ var isCount = false;
793
858
  for (var i = topIndex; i > -1; i--) {
794
- if (!isNullOrUndefined(liCollections[i]) && liCollections[i].classList.contains(dropDownBaseClasses.group)) {
795
- var currentLi = liCollections[i];
796
- this.fixedHeaderElement.innerHTML = currentLi.innerHTML;
797
- this.fixedHeaderElement.style.top = target.scrollTop + 'px';
798
- this.fixedHeaderElement.style.display = 'block';
799
- break;
859
+ var index = this.isVirtualizationEnabled ? i + virtualListCount : i;
860
+ if (this.isVirtualizationEnabled) {
861
+ var groupListLength = this.list.querySelectorAll('.e-list-group-item').length;
862
+ var loadedGroupList = 0;
863
+ if (isCount) {
864
+ count++;
865
+ }
866
+ if (this.updateGroupHeader(index, liCollections, target)) {
867
+ loadedGroupList++;
868
+ if (count >= this.getPageCount()) {
869
+ break;
870
+ }
871
+ if (groupListLength <= loadedGroupList) {
872
+ break;
873
+ }
874
+ }
875
+ if (isDownkey) {
876
+ if ((!isNullOrUndefined(liCollections[index]) && liCollections[index].classList.contains(dropDownBaseClasses.selected) && this.getModuleName() !== 'autocomplete') || (!isNullOrUndefined(liCollections[index]) && liCollections[index].classList.contains(dropDownBaseClasses.focus) && this.getModuleName() === 'autocomplete')) {
877
+ count++;
878
+ isCount = true;
879
+ }
880
+ }
800
881
  }
801
882
  else {
802
- this.fixedHeaderElement.style.display = 'none';
803
- this.fixedHeaderElement.style.top = 'none';
883
+ if (this.updateGroupHeader(index, liCollections, target)) {
884
+ break;
885
+ }
804
886
  }
805
887
  }
806
888
  };
889
+ DropDownBase.prototype.getPageCount = function (returnExactCount) {
890
+ var liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :
891
+ getComputedStyle(this.getItems()[0], null).getPropertyValue('height');
892
+ var pageCount = Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));
893
+ return returnExactCount ? pageCount : Math.round(pageCount);
894
+ };
895
+ DropDownBase.prototype.updateGroupHeader = function (index, liCollections, target) {
896
+ if (!isNullOrUndefined(liCollections[index]) && liCollections[index].classList.contains(dropDownBaseClasses.group)) {
897
+ this.updateGroupFixedHeader(liCollections[index], target);
898
+ return true;
899
+ }
900
+ else {
901
+ this.fixedHeaderElement.style.display = 'none';
902
+ this.fixedHeaderElement.style.top = 'none';
903
+ return false;
904
+ }
905
+ };
906
+ DropDownBase.prototype.updateGroupFixedHeader = function (element, target) {
907
+ this.fixedHeaderElement.innerHTML = element.innerHTML;
908
+ this.fixedHeaderElement.style.top = target.scrollTop + 'px';
909
+ this.fixedHeaderElement.style.display = 'block';
910
+ };
807
911
  DropDownBase.prototype.getValidLi = function () {
808
912
  return this.liCollections[0];
809
913
  };
@@ -837,45 +941,54 @@ var DropDownBase = /** @class */ (function (_super) {
837
941
  var virtualUlElement = this.list.querySelector('.e-virtual-ddl-content');
838
942
  if ((listData.length >= this.virtualizedItemsCount && oldUlElement && virtualUlElement) || (oldUlElement && virtualUlElement && this.isAllowFiltering) || (oldUlElement && virtualUlElement && this.getModuleName() === 'autocomplete')) {
839
943
  virtualUlElement.replaceChild(ulElement, oldUlElement);
840
- this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
841
- this.ulElement = this.list.querySelector('ul');
842
- this.listData = listData;
843
- this.postRender(this.list, listData, this.bindEvent);
944
+ this.updateListElements(listData);
844
945
  }
845
946
  else if ((!virtualUlElement)) {
846
947
  this.list.innerHTML = '';
847
- this.list.appendChild(ulElement);
848
- this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
849
- this.ulElement = this.list.querySelector('ul');
850
- this.listData = listData;
851
- this.postRender(this.list, listData, this.bindEvent);
948
+ this.createVirtualContent();
949
+ this.list.querySelector('.e-virtual-ddl-content').appendChild(ulElement);
950
+ this.updateListElements(listData);
852
951
  }
853
952
  }
854
953
  }
855
954
  else {
856
955
  ulElement = this.createListItems(listData, fields);
956
+ if (this.isIncrementalRequest) {
957
+ this.incrementalLiCollections = ulElement.querySelectorAll('.' + dropDownBaseClasses.li);
958
+ this.incrementalUlElement = ulElement;
959
+ this.incrementalListData = listData;
960
+ return ulElement;
961
+ }
857
962
  if (this.isVirtualizationEnabled) {
858
963
  var oldUlElement = this.list.querySelector('.e-list-parent');
859
964
  var virtualUlElement = this.list.querySelector('.e-virtual-ddl-content');
860
965
  if ((listData.length >= this.virtualizedItemsCount && oldUlElement && virtualUlElement) || (oldUlElement && virtualUlElement && this.isAllowFiltering) || (oldUlElement && virtualUlElement && this.getModuleName() === 'autocomplete')) {
861
966
  virtualUlElement.replaceChild(ulElement, oldUlElement);
862
- this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
863
- this.ulElement = this.list.querySelector('ul');
864
- this.listData = listData;
865
- this.postRender(this.list, listData, this.bindEvent);
967
+ this.updateListElements(listData);
866
968
  }
867
969
  else if ((!virtualUlElement)) {
868
970
  this.list.innerHTML = '';
869
- this.list.appendChild(ulElement);
870
- this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
871
- this.ulElement = this.list.querySelector('ul');
872
- this.listData = listData;
873
- this.postRender(this.list, listData, this.bindEvent);
971
+ this.createVirtualContent();
972
+ this.list.querySelector('.e-virtual-ddl-content').appendChild(ulElement);
973
+ this.updateListElements(listData);
874
974
  }
875
975
  }
876
976
  }
877
977
  return ulElement;
878
978
  };
979
+ DropDownBase.prototype.createVirtualContent = function () {
980
+ if (!this.list.querySelector('.e-virtual-ddl-content')) {
981
+ this.list.appendChild(this.createElement('div', {
982
+ className: 'e-virtual-ddl-content',
983
+ }));
984
+ }
985
+ };
986
+ DropDownBase.prototype.updateListElements = function (listData) {
987
+ this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
988
+ this.ulElement = this.list.querySelector('ul');
989
+ this.listData = listData;
990
+ this.postRender(this.list, listData, this.bindEvent);
991
+ };
879
992
  DropDownBase.prototype.templateListItem = function (dataSource, fields) {
880
993
  var option = this.listOption(dataSource, fields);
881
994
  option.templateID = this.itemTemplateId;
@@ -947,11 +1060,11 @@ var DropDownBase = /** @class */ (function (_super) {
947
1060
  * @param {string | number | boolean} value - Specifies given value.
948
1061
  * @returns {number} Returns the index of the item.
949
1062
  */
950
- DropDownBase.prototype.getIndexByValueFilter = function (value) {
1063
+ DropDownBase.prototype.getIndexByValue = function (value) {
951
1064
  var index;
952
- var listItems = this.renderItems(this.selectData, this.fields);
953
- for (var i = 0; i < listItems.children.length; i++) {
954
- if (!isNullOrUndefined(value) && listItems.children[i].getAttribute('data-value') === value.toString()) {
1065
+ var listItems = this.getItems();
1066
+ for (var i = 0; i < listItems.length; i++) {
1067
+ if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {
955
1068
  index = i;
956
1069
  break;
957
1070
  }
@@ -964,11 +1077,11 @@ var DropDownBase = /** @class */ (function (_super) {
964
1077
  * @param {string | number | boolean} value - Specifies given value.
965
1078
  * @returns {number} Returns the index of the item.
966
1079
  */
967
- DropDownBase.prototype.getIndexByValue = function (value) {
1080
+ DropDownBase.prototype.getIndexByValueFilter = function (value) {
968
1081
  var index;
969
- var listItems = this.getItems();
970
- for (var i = 0; i < listItems.length; i++) {
971
- if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {
1082
+ var listItems = this.renderItems(this.selectData, this.fields);
1083
+ for (var i = 0; i < listItems.children.length; i++) {
1084
+ if (!isNullOrUndefined(value) && listItems.children[i].getAttribute('data-value') === value.toString()) {
972
1085
  index = i;
973
1086
  break;
974
1087
  }
@@ -1177,7 +1290,7 @@ var DropDownBase = /** @class */ (function (_super) {
1177
1290
  * @param { Object[] } items - Specifies an array of JSON data or a JSON data.
1178
1291
  * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.
1179
1292
  * @returns {void}
1180
- * @deprecated
1293
+
1181
1294
  */
1182
1295
  DropDownBase.prototype.addItem = function (items, itemIndex) {
1183
1296
  if (!this.list || (this.list.textContent === this.noRecordsTemplate && this.getModuleName() !== 'listbox')) {