@syncfusion/ej2-dropdowns 30.1.41 → 30.2.4

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 (126) hide show
  1. package/aceconfig.js +17 -0
  2. package/dist/ej2-dropdowns.min.js +2 -2
  3. package/dist/ej2-dropdowns.umd.min.js +2 -2
  4. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-dropdowns.es2015.js +155 -11
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +156 -11
  8. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  9. package/dist/global/ej2-dropdowns.min.js +2 -2
  10. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +8 -8
  13. package/src/combo-box/combo-box.js +2 -2
  14. package/src/common/interface.d.ts +1 -0
  15. package/src/common/virtual-scroll.js +2 -1
  16. package/src/drop-down-base/drop-down-base.d.ts +2 -0
  17. package/src/drop-down-base/drop-down-base.js +90 -3
  18. package/src/drop-down-list/drop-down-list.js +3 -0
  19. package/src/drop-down-tree/drop-down-tree.js +1 -1
  20. package/src/list-box/list-box.d.ts +1 -0
  21. package/src/list-box/list-box.js +21 -3
  22. package/src/multi-select/multi-select.js +37 -1
  23. package/styles/bds-lite.css +12 -0
  24. package/styles/bds.css +12 -0
  25. package/styles/bootstrap-dark-lite.css +12 -0
  26. package/styles/bootstrap-dark.css +12 -0
  27. package/styles/bootstrap-lite.css +12 -0
  28. package/styles/bootstrap.css +12 -0
  29. package/styles/bootstrap4-lite.css +12 -0
  30. package/styles/bootstrap4.css +12 -0
  31. package/styles/bootstrap5-dark-lite.css +12 -0
  32. package/styles/bootstrap5-dark.css +12 -0
  33. package/styles/bootstrap5-lite.css +12 -0
  34. package/styles/bootstrap5.3-lite.css +12 -0
  35. package/styles/bootstrap5.3.css +12 -0
  36. package/styles/bootstrap5.css +12 -0
  37. package/styles/drop-down-tree/_layout.scss +5 -0
  38. package/styles/drop-down-tree/bds.css +3 -0
  39. package/styles/drop-down-tree/bootstrap-dark.css +3 -0
  40. package/styles/drop-down-tree/bootstrap.css +3 -0
  41. package/styles/drop-down-tree/bootstrap4.css +3 -0
  42. package/styles/drop-down-tree/bootstrap5-dark.css +3 -0
  43. package/styles/drop-down-tree/bootstrap5.3.css +3 -0
  44. package/styles/drop-down-tree/bootstrap5.css +3 -0
  45. package/styles/drop-down-tree/fabric-dark.css +3 -0
  46. package/styles/drop-down-tree/fabric.css +3 -0
  47. package/styles/drop-down-tree/fluent-dark.css +3 -0
  48. package/styles/drop-down-tree/fluent.css +3 -0
  49. package/styles/drop-down-tree/fluent2.css +3 -0
  50. package/styles/drop-down-tree/highcontrast-light.css +3 -0
  51. package/styles/drop-down-tree/highcontrast.css +3 -0
  52. package/styles/drop-down-tree/material-dark.css +3 -0
  53. package/styles/drop-down-tree/material.css +3 -0
  54. package/styles/drop-down-tree/material3-dark.css +3 -0
  55. package/styles/drop-down-tree/material3.css +3 -0
  56. package/styles/drop-down-tree/tailwind-dark.css +3 -0
  57. package/styles/drop-down-tree/tailwind.css +3 -0
  58. package/styles/drop-down-tree/tailwind3.css +3 -0
  59. package/styles/fabric-dark-lite.css +12 -0
  60. package/styles/fabric-dark.css +12 -0
  61. package/styles/fabric-lite.css +12 -0
  62. package/styles/fabric.css +12 -0
  63. package/styles/fluent-dark-lite.css +12 -0
  64. package/styles/fluent-dark.css +12 -0
  65. package/styles/fluent-lite.css +12 -0
  66. package/styles/fluent.css +12 -0
  67. package/styles/fluent2-lite.css +12 -0
  68. package/styles/fluent2.css +12 -0
  69. package/styles/highcontrast-light-lite.css +12 -0
  70. package/styles/highcontrast-light.css +12 -0
  71. package/styles/highcontrast-lite.css +12 -0
  72. package/styles/highcontrast.css +12 -0
  73. package/styles/list-box/_bds-definition.scss +1 -0
  74. package/styles/list-box/_bootstrap-dark-definition.scss +1 -0
  75. package/styles/list-box/_bootstrap-definition.scss +1 -0
  76. package/styles/list-box/_bootstrap4-definition.scss +1 -0
  77. package/styles/list-box/_bootstrap5-definition.scss +1 -0
  78. package/styles/list-box/_bootstrap5.3-definition.scss +1 -0
  79. package/styles/list-box/_fabric-dark-definition.scss +1 -0
  80. package/styles/list-box/_fabric-definition.scss +1 -0
  81. package/styles/list-box/_fluent-definition.scss +1 -0
  82. package/styles/list-box/_fluent2-definition.scss +1 -0
  83. package/styles/list-box/_fusionnew-definition.scss +1 -0
  84. package/styles/list-box/_highcontrast-definition.scss +1 -0
  85. package/styles/list-box/_highcontrast-light-definition.scss +1 -0
  86. package/styles/list-box/_layout.scss +8 -0
  87. package/styles/list-box/_material-dark-definition.scss +1 -0
  88. package/styles/list-box/_material-definition.scss +1 -0
  89. package/styles/list-box/_material3-definition.scss +1 -0
  90. package/styles/list-box/_tailwind-definition.scss +1 -0
  91. package/styles/list-box/_tailwind3-definition.scss +1 -0
  92. package/styles/list-box/bds.css +9 -0
  93. package/styles/list-box/bootstrap-dark.css +9 -0
  94. package/styles/list-box/bootstrap.css +9 -0
  95. package/styles/list-box/bootstrap4.css +9 -0
  96. package/styles/list-box/bootstrap5-dark.css +9 -0
  97. package/styles/list-box/bootstrap5.3.css +9 -0
  98. package/styles/list-box/bootstrap5.css +9 -0
  99. package/styles/list-box/fabric-dark.css +9 -0
  100. package/styles/list-box/fabric.css +9 -0
  101. package/styles/list-box/fluent-dark.css +9 -0
  102. package/styles/list-box/fluent.css +9 -0
  103. package/styles/list-box/fluent2.css +9 -0
  104. package/styles/list-box/highcontrast-light.css +9 -0
  105. package/styles/list-box/highcontrast.css +9 -0
  106. package/styles/list-box/material-dark.css +9 -0
  107. package/styles/list-box/material.css +9 -0
  108. package/styles/list-box/material3-dark.css +9 -0
  109. package/styles/list-box/material3.css +9 -0
  110. package/styles/list-box/tailwind-dark.css +9 -0
  111. package/styles/list-box/tailwind.css +9 -0
  112. package/styles/list-box/tailwind3.css +9 -0
  113. package/styles/material-dark-lite.css +12 -0
  114. package/styles/material-dark.css +12 -0
  115. package/styles/material-lite.css +12 -0
  116. package/styles/material.css +12 -0
  117. package/styles/material3-dark-lite.css +12 -0
  118. package/styles/material3-dark.css +12 -0
  119. package/styles/material3-lite.css +12 -0
  120. package/styles/material3.css +12 -0
  121. package/styles/tailwind-dark-lite.css +12 -0
  122. package/styles/tailwind-dark.css +12 -0
  123. package/styles/tailwind-lite.css +12 -0
  124. package/styles/tailwind.css +12 -0
  125. package/styles/tailwind3-lite.css +12 -0
  126. package/styles/tailwind3.css +12 -0
@@ -367,7 +367,7 @@ class VirtualScroll {
367
367
  if (this.component === 'combobox') {
368
368
  let totalData = 0;
369
369
  if (this.parent.dataSource instanceof DataManager) {
370
- totalData = this.parent.dataSource.dataSource.json.length;
370
+ totalData = this.parent.remoteDataCount;
371
371
  }
372
372
  else if (this.parent.dataSource && this.parent.dataSource.length > 0) {
373
373
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -687,6 +687,7 @@ class VirtualScroll {
687
687
  this.parent.isVirtualScrolling = true;
688
688
  setTimeout(() => {
689
689
  this.parent.pageCount = this.parent.getPageCount();
690
+ this.parent.isRequesting = false;
690
691
  this.virtualScrollRefreshAsync().then(() => {
691
692
  if (this.parent.popupObj) {
692
693
  this.parent.list = this.parent.popupObj.element.querySelector('.' + 'e-content') || select('.' + 'e-content');
@@ -1505,11 +1506,12 @@ let DropDownBase = class DropDownBase extends Component {
1505
1506
  this.emptyDataRequest(fields);
1506
1507
  return;
1507
1508
  }
1508
- eventArgs.data.executeQuery(this.getQuery(eventArgs.query)).then((e) => {
1509
+ const query = this.getQuery(eventArgs.query);
1510
+ eventArgs.data.executeQuery(query).then((e) => {
1509
1511
  this.isPreventChange = this.isAngular && this.preventChange ? true : this.isPreventChange;
1510
1512
  let isReOrder = true;
1511
1513
  if (!this.virtualSelectAll) {
1512
- const newQuery = this.getQuery(eventArgs.query);
1514
+ const newQuery = query.clone();
1513
1515
  for (let queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
1514
1516
  if (newQuery.queries[queryElements].fn === 'onWhere') {
1515
1517
  isWhereExist = true;
@@ -1716,6 +1718,86 @@ let DropDownBase = class DropDownBase extends Component {
1716
1718
  this.fiteredGroupHeaderItems = clonedHeaders;
1717
1719
  }
1718
1720
  }
1721
+ setCustomListData(dataSource, fields, query, event) {
1722
+ fields = fields ? fields : this.fields;
1723
+ let ulElement;
1724
+ this.isActive = true;
1725
+ this.isPreventChange = this.isAngular && this.preventChange ? true : this.isPreventChange;
1726
+ if (!this.isRequesting) {
1727
+ this.isRequesting = true;
1728
+ this.showSpinner();
1729
+ this.isRequesting = false;
1730
+ let isReOrder = true;
1731
+ let listItems;
1732
+ if (this.isVirtualizationEnabled && !this.virtualGroupDataSource && this.fields.groupBy) {
1733
+ const data = new DataManager(this.dataSource).executeLocal(new Query().group(this.fields.groupBy));
1734
+ this.virtualGroupDataSource = data.records;
1735
+ }
1736
+ const dataManager = this.isVirtualizationEnabled &&
1737
+ this.virtualGroupDataSource
1738
+ && !this.isCustomDataUpdated ? new DataManager(this.virtualGroupDataSource) :
1739
+ new DataManager(dataSource);
1740
+ listItems = (this.getQuery(query)).executeLocal(dataManager);
1741
+ if (!this.virtualSelectAll) {
1742
+ const newQuery = this.getQuery(query);
1743
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1744
+ if (this.isVirtualizationEnabled && (listItems.count !== 0 &&
1745
+ listItems.count < (this.itemCount * 2)) && !this.appendUncheckList) {
1746
+ if (newQuery) {
1747
+ for (let queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
1748
+ if (newQuery.queries[queryElements].fn === 'onTake') {
1749
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1750
+ newQuery.queries[queryElements].e.nos = listItems.count;
1751
+ listItems = (newQuery).executeLocal(dataManager);
1752
+ }
1753
+ if (this.getModuleName() === 'multiselect' && (newQuery.queries[queryElements].e.condition === 'or' || newQuery.queries[queryElements].e.operator === 'equal') && !this.isCustomFiltering) {
1754
+ isReOrder = false;
1755
+ }
1756
+ }
1757
+ if (isReOrder) {
1758
+ listItems = (newQuery).executeLocal(dataManager);
1759
+ this.isVirtualTrackHeight = (!(this.dataSource instanceof DataManager) &&
1760
+ !this.isCustomDataUpdated) ? true : false;
1761
+ }
1762
+ }
1763
+ }
1764
+ else {
1765
+ this.isVirtualTrackHeight = false;
1766
+ if (newQuery) {
1767
+ for (let queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
1768
+ if (this.getModuleName() === 'multiselect' && ((newQuery.queries[queryElements].e && newQuery.queries[queryElements].e.condition === 'or') || (newQuery.queries[queryElements].e && newQuery.queries[queryElements].e.operator === 'equal'))) {
1769
+ isReOrder = false;
1770
+ }
1771
+ }
1772
+ }
1773
+ }
1774
+ }
1775
+ if (isReOrder && (!(this.dataSource instanceof DataManager) && !this.isCustomDataUpdated) &&
1776
+ !this.virtualSelectAll) {
1777
+ // eslint-disable @typescript-eslint/no-explicit-any
1778
+ this.dataCount = this.totalItemCount = this.virtualSelectAll ? listItems.length :
1779
+ listItems.count;
1780
+ }
1781
+ listItems = this.isVirtualizationEnabled ? listItems.result : listItems;
1782
+ this.isPreventChange = this.isAngular && this.preventChange ? true : this.isPreventChange;
1783
+ this.isCustomFiltering = false;
1784
+ if (this.isIncrementalRequest) {
1785
+ ulElement = this.renderItems(listItems, fields);
1786
+ return;
1787
+ }
1788
+ ulElement = this.renderItems(listItems, fields);
1789
+ this.onActionComplete(ulElement, listItems, event);
1790
+ if (this.groupTemplate) {
1791
+ this.renderGroupTemplate(ulElement);
1792
+ }
1793
+ this.bindChildItems(listItems, ulElement, fields);
1794
+ setTimeout(() => {
1795
+ if (this.getModuleName() === 'multiselect' && this.itemTemplate != null && (ulElement.childElementCount > 0 && (ulElement.children[0].childElementCount > 0 || (this.fields.groupBy && ulElement.children[1] && ulElement.children[1].childElementCount > 0)))) {
1796
+ this.updateDataList();
1797
+ }
1798
+ });
1799
+ }
1800
+ }
1719
1801
  handleVirtualKeyboardActions(e, pageCount) {
1720
1802
  // Used this method in component side.
1721
1803
  }
@@ -2434,7 +2516,12 @@ let DropDownBase = class DropDownBase extends Component {
2434
2516
  }
2435
2517
  dataSource = this.getModuleName() === 'combobox' && this.selectData && dataSource instanceof Array && dataSource.length < this.selectData.length && this.addedNewItem ? this.selectData : dataSource;
2436
2518
  this.addedNewItem = false;
2437
- this.setListData(dataSource, fields, query, e);
2519
+ if (this.isCustomReset && this.getModuleName() === 'multiselect') {
2520
+ this.setCustomListData(dataSource, fields, query, e);
2521
+ }
2522
+ else {
2523
+ this.setListData(dataSource, fields, query, e);
2524
+ }
2438
2525
  }
2439
2526
  }
2440
2527
  updateSelectElementData(isFiltering) {
@@ -4502,6 +4589,9 @@ let DropDownList = class DropDownList extends DropDownBase {
4502
4589
  }
4503
4590
  if (!isNullOrUndefined(dataItem.value) && !this.enableVirtualization && this.allowFiltering) {
4504
4591
  this.activeIndex = this.getIndexByValueFilter(dataItem.value, this.actionCompleteData.ulElement);
4592
+ if (isNullOrUndefined(this.activeIndex)) {
4593
+ this.activeIndex = this.getIndexByValue(dataItem.value);
4594
+ }
4505
4595
  }
4506
4596
  const clearIcon = dropDownListClasses.clearIcon;
4507
4597
  const isFilterElement = this.isFiltering() && this.filterInput && (this.getModuleName() === 'combobox');
@@ -8128,7 +8218,7 @@ let DropDownTree = class DropDownTree extends Component {
8128
8218
  if (this.isPopupOpen) {
8129
8219
  this.hidePopup();
8130
8220
  }
8131
- else if (!(e instanceof TouchEvent) && e.button !== 2) {
8221
+ else if (e.type === 'touchstart' || ('button' in e && e.button !== 2)) {
8132
8222
  this.focusIn(e);
8133
8223
  this.renderPopup();
8134
8224
  }
@@ -11155,8 +11245,8 @@ let ComboBox = class ComboBox extends DropDownList {
11155
11245
  const dataItem = this.getItemData();
11156
11246
  const value = this.allowObjectBinding ?
11157
11247
  this.getDataByValue(dataItem.value) : dataItem.value;
11158
- if ((this.value === dataItem.value && this.text !== dataItem.text) ||
11159
- (this.value !== dataItem.value && this.text === dataItem.text)) {
11248
+ if ((this.value === dataItem.value && this.text !== dataItem.text.toString()) ||
11249
+ (this.value !== dataItem.value && this.text === dataItem.text.toString())) {
11160
11250
  this.setProperties({ 'text': dataItem.text ? dataItem.text.toString() : dataItem.text, 'value': value });
11161
11251
  }
11162
11252
  }
@@ -13822,6 +13912,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13822
13912
  checkForCustomValue(query, fields) {
13823
13913
  const dataChecks = !this.getValueByText(this.inputElement.value, this.ignoreCase);
13824
13914
  const field = fields ? fields : this.fields;
13915
+ this.isCustomReset = true;
13825
13916
  if (this.allowCustomValue && dataChecks) {
13826
13917
  const value = this.inputElement.value;
13827
13918
  const customData = (!isNullOrUndefined(this.mainData) && this.mainData.length > 0) ?
@@ -13875,6 +13966,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13875
13966
  const tempData = JSON.parse(JSON.stringify(this.listData));
13876
13967
  tempData.splice(0, 0, dataItem);
13877
13968
  this.resetList(tempData, field, query);
13969
+ this.focusAtLastListItem(value);
13878
13970
  }
13879
13971
  }
13880
13972
  else if (this.listData) {
@@ -13903,6 +13995,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13903
13995
  }
13904
13996
  }
13905
13997
  }
13998
+ this.isCustomReset = false;
13906
13999
  if (this.value && this.value.length) {
13907
14000
  this.refreshSelection();
13908
14001
  }
@@ -15168,11 +15261,20 @@ let MultiSelect = class MultiSelect extends DropDownBase {
15168
15261
  }
15169
15262
  removeChipSelection() {
15170
15263
  if (this.chipCollectionWrapper) {
15264
+ const selectedChips = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP$1 + '.' + CHIP_SELECTED);
15265
+ if (selectedChips && selectedChips.length > 0) {
15266
+ for (let i = 0; i < selectedChips.length; i++) {
15267
+ selectedChips[i].removeAttribute('aria-live');
15268
+ }
15269
+ }
15171
15270
  this.removeChipFocus();
15172
15271
  }
15173
15272
  }
15174
15273
  addChipSelection(element, e) {
15175
15274
  addClass([element], CHIP_SELECTED);
15275
+ if (element) {
15276
+ element.setAttribute('aria-live', 'polite');
15277
+ }
15176
15278
  this.trigger('chipSelection', e);
15177
15279
  }
15178
15280
  getVirtualDataByValue(value) {
@@ -15370,6 +15472,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
15370
15472
  const collection = this.list.querySelectorAll('li.'
15371
15473
  + dropDownBaseClasses.li + ':not(.e-active)');
15372
15474
  removeClass(collection, 'e-disable');
15475
+ const mainListCollection = this.mainList.querySelectorAll('li.'
15476
+ + dropDownBaseClasses.li + ':not(.e-active)');
15477
+ removeClass(mainListCollection, 'e-disable');
15373
15478
  }
15374
15479
  this.trigger('removed', eventArgs);
15375
15480
  const targetEle = eve && eve.currentTarget;
@@ -15664,7 +15769,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
15664
15769
  let itemData = { text: value, value: value };
15665
15770
  const chip = this.createElement('span', {
15666
15771
  className: CHIP$1,
15667
- attrs: { 'data-value': value, 'title': data }
15772
+ attrs: { 'data-value': value, 'title': data, 'role': 'option', 'aria-selected': 'true' }
15668
15773
  });
15669
15774
  let compiledString;
15670
15775
  const chipContent = this.createElement('span', { className: CHIP_CONTENT$1 });
@@ -16820,6 +16925,11 @@ let MultiSelect = class MultiSelect extends DropDownBase {
16820
16925
  removeClass(selectedItems, className);
16821
16926
  while (temp > 0) {
16822
16927
  selectedItems[temp - 1].setAttribute('aria-selected', 'false');
16928
+ if (this.mode === 'CheckBox') {
16929
+ if (selectedItems && (selectedItems.length > (temp - 1))) {
16930
+ removeClass([selectedItems[temp - 1].firstElementChild.lastElementChild], 'e-check');
16931
+ }
16932
+ }
16823
16933
  temp--;
16824
16934
  }
16825
16935
  }
@@ -18521,6 +18631,22 @@ let MultiSelect = class MultiSelect extends DropDownBase {
18521
18631
  else {
18522
18632
  this.setProperties({ value: null }, true);
18523
18633
  }
18634
+ this.checkAndResetCache();
18635
+ if (this.enableVirtualization) {
18636
+ this.updateInitialData();
18637
+ if (this.chipCollectionWrapper) {
18638
+ this.chipCollectionWrapper.innerHTML = '';
18639
+ }
18640
+ if (!this.isCustomDataUpdated) {
18641
+ this.notify('setGeneratedData', {
18642
+ module: 'VirtualScroll'
18643
+ });
18644
+ }
18645
+ this.list.scrollTop = 0;
18646
+ this.virtualListInfo = null;
18647
+ this.previousStartIndex = 0;
18648
+ this.previousEndIndex = this.itemCount;
18649
+ }
18524
18650
  }
18525
18651
  /**
18526
18652
  * To Initialize the control rendering
@@ -20082,6 +20208,22 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
20082
20208
  this.unSelectAllText = l10nSelect.getConstant('unSelectAllText');
20083
20209
  this.popupWrapper = this.list;
20084
20210
  this.checkBoxSelectionModule.checkAllParent = null;
20211
+ if (this.filterParent) {
20212
+ const parentNode = this.filterParent.parentNode;
20213
+ if (parentNode) {
20214
+ const firstChild = this.filterParent.querySelector('input.e-input-filter');
20215
+ if (!firstChild.classList.contains('e-input-focus') && !firstChild.classList.contains('e-valid-input')
20216
+ && this.selectedListItemCount === 0) {
20217
+ this.filterParent = null;
20218
+ }
20219
+ if (this.selectedListItemCount > 0 && this.showSelectAll) {
20220
+ this.filterParent = null;
20221
+ }
20222
+ }
20223
+ else {
20224
+ this.filterParent = null;
20225
+ }
20226
+ }
20085
20227
  this.notify('selectAll', {});
20086
20228
  }
20087
20229
  }
@@ -20189,7 +20331,7 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
20189
20331
  setHeight() {
20190
20332
  const ele = this.toolbarSettings.items.length ? this.list.parentElement : this.list;
20191
20333
  ele.style.height = formatUnit(this.height);
20192
- if (this.allowFiltering && this.height.toString().indexOf('%') < 0) {
20334
+ if (this.allowFiltering && this.height.toString().indexOf('%') > 0) {
20193
20335
  addClass([this.list], 'e-filter-list');
20194
20336
  }
20195
20337
  else {
@@ -20277,6 +20419,7 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
20277
20419
  }
20278
20420
  }
20279
20421
  super.onActionComplete(ulElement, list, e);
20422
+ this.initWrapper();
20280
20423
  if (this.allowFiltering && !isNullOrUndefined(searchEle)) {
20281
20424
  this.list.insertBefore(searchEle, this.list.firstElementChild);
20282
20425
  this.filterParent = this.list.getElementsByClassName('e-filter-parent')[0];
@@ -20295,7 +20438,6 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
20295
20438
  });
20296
20439
  }
20297
20440
  }
20298
- this.initWrapper();
20299
20441
  this.setSelection(this.value, true, false, !this.isRendered);
20300
20442
  this.initDraggable();
20301
20443
  this.mainList = this.ulElement;
@@ -21099,6 +21241,7 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
21099
21241
  }
21100
21242
  }
21101
21243
  const len = this.getSelectedItems().length;
21244
+ this.selectedListItemCount = len;
21102
21245
  if (this.showSelectAll && searchCount) {
21103
21246
  this.notify('checkSelectAll', { module: 'CheckBoxSelection',
21104
21247
  value: (searchCount === len) ? 'check' : (len === 0) ? 'uncheck' : 'indeterminate' });
@@ -21907,7 +22050,8 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
21907
22050
  e.preventDefault();
21908
22051
  return;
21909
22052
  }
21910
- const char = String.fromCharCode(e.keyCode);
22053
+ const char = e.code && e.keyCode >= 96 && e.keyCode <= 105 ?
22054
+ String.fromCharCode(e.keyCode - 48) : String.fromCharCode(e.keyCode);
21911
22055
  const isWordCharacter = char.match(/\w/);
21912
22056
  const isWordAccentCharacter = char.match(/[A-Za-z0-9\u00C0-\u024F ]/);
21913
22057
  if (!isNullOrUndefined(isWordCharacter) || !isNullOrUndefined(isWordAccentCharacter)) {