@syncfusion/ej2-dropdowns 26.2.8 → 26.2.10

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 (109) 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 +67 -24
  5. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es5.js +68 -24
  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 +12 -12
  12. package/src/common/virtual-scroll.js +5 -7
  13. package/src/drop-down-base/drop-down-base.js +10 -5
  14. package/src/drop-down-list/drop-down-list.js +4 -1
  15. package/src/drop-down-tree/drop-down-tree.d.ts +1 -0
  16. package/src/drop-down-tree/drop-down-tree.js +39 -3
  17. package/src/list-box/list-box.js +6 -6
  18. package/src/multi-select/multi-select.js +4 -2
  19. package/styles/auto-complete/fluent2.css +3 -1031
  20. package/styles/auto-complete/material3-dark.css +1 -54
  21. package/styles/auto-complete/material3.css +2 -109
  22. package/styles/bootstrap-dark.css +9 -0
  23. package/styles/bootstrap.css +9 -0
  24. package/styles/bootstrap4.css +9 -0
  25. package/styles/bootstrap5-dark.css +9 -0
  26. package/styles/bootstrap5.css +9 -0
  27. package/styles/combo-box/fluent2.css +3 -1031
  28. package/styles/combo-box/material3-dark.css +1 -54
  29. package/styles/combo-box/material3.css +2 -109
  30. package/styles/drop-down-base/_theme.scss +2 -0
  31. package/styles/drop-down-base/bootstrap-dark.css +2 -0
  32. package/styles/drop-down-base/bootstrap.css +2 -0
  33. package/styles/drop-down-base/bootstrap4.css +2 -0
  34. package/styles/drop-down-base/bootstrap5-dark.css +2 -0
  35. package/styles/drop-down-base/bootstrap5.css +2 -0
  36. package/styles/drop-down-base/fabric-dark.css +2 -0
  37. package/styles/drop-down-base/fabric.css +2 -0
  38. package/styles/drop-down-base/fluent-dark.css +2 -0
  39. package/styles/drop-down-base/fluent.css +2 -0
  40. package/styles/drop-down-base/fluent2.css +7 -1033
  41. package/styles/drop-down-base/highcontrast-light.css +2 -0
  42. package/styles/drop-down-base/highcontrast.css +2 -0
  43. package/styles/drop-down-base/material-dark.css +2 -0
  44. package/styles/drop-down-base/material.css +2 -0
  45. package/styles/drop-down-base/material3-dark.css +3 -54
  46. package/styles/drop-down-base/material3.css +5 -110
  47. package/styles/drop-down-base/tailwind-dark.css +2 -0
  48. package/styles/drop-down-base/tailwind.css +2 -0
  49. package/styles/drop-down-list/fluent2.css +5 -1033
  50. package/styles/drop-down-list/material3-dark.css +1 -54
  51. package/styles/drop-down-list/material3.css +3 -110
  52. package/styles/drop-down-tree/fluent2.css +3 -1031
  53. package/styles/drop-down-tree/material3-dark.css +1 -54
  54. package/styles/drop-down-tree/material3.css +2 -109
  55. package/styles/fabric-dark.css +9 -0
  56. package/styles/fabric.css +9 -0
  57. package/styles/fluent-dark.css +9 -0
  58. package/styles/fluent.css +9 -0
  59. package/styles/fluent2.css +14 -1033
  60. package/styles/highcontrast-light.css +9 -0
  61. package/styles/highcontrast.css +9 -0
  62. package/styles/list-box/_layout.scss +6 -0
  63. package/styles/list-box/bootstrap-dark.css +6 -0
  64. package/styles/list-box/bootstrap.css +6 -0
  65. package/styles/list-box/bootstrap4.css +6 -0
  66. package/styles/list-box/bootstrap5-dark.css +6 -0
  67. package/styles/list-box/bootstrap5.css +6 -0
  68. package/styles/list-box/fabric-dark.css +6 -0
  69. package/styles/list-box/fabric.css +6 -0
  70. package/styles/list-box/fluent-dark.css +6 -0
  71. package/styles/list-box/fluent.css +6 -0
  72. package/styles/list-box/fluent2.css +9 -1031
  73. package/styles/list-box/highcontrast-light.css +6 -0
  74. package/styles/list-box/highcontrast.css +6 -0
  75. package/styles/list-box/material-dark.css +6 -0
  76. package/styles/list-box/material.css +6 -0
  77. package/styles/list-box/material3-dark.css +7 -54
  78. package/styles/list-box/material3.css +8 -109
  79. package/styles/list-box/tailwind-dark.css +6 -0
  80. package/styles/list-box/tailwind.css +6 -0
  81. package/styles/material-dark.css +9 -0
  82. package/styles/material.css +9 -0
  83. package/styles/material3-dark.css +10 -54
  84. package/styles/material3.css +12 -110
  85. package/styles/mention/fluent2.css +3 -1031
  86. package/styles/mention/material3-dark.css +1 -54
  87. package/styles/mention/material3.css +2 -109
  88. package/styles/multi-select/_layout.scss +1 -0
  89. package/styles/multi-select/bootstrap-dark.css +1 -0
  90. package/styles/multi-select/bootstrap.css +1 -0
  91. package/styles/multi-select/bootstrap4.css +1 -0
  92. package/styles/multi-select/bootstrap5-dark.css +1 -0
  93. package/styles/multi-select/bootstrap5.css +1 -0
  94. package/styles/multi-select/fabric-dark.css +1 -0
  95. package/styles/multi-select/fabric.css +1 -0
  96. package/styles/multi-select/fluent-dark.css +1 -0
  97. package/styles/multi-select/fluent.css +1 -0
  98. package/styles/multi-select/fluent2.css +6 -1033
  99. package/styles/multi-select/highcontrast-light.css +1 -0
  100. package/styles/multi-select/highcontrast.css +1 -0
  101. package/styles/multi-select/material-dark.css +1 -0
  102. package/styles/multi-select/material.css +1 -0
  103. package/styles/multi-select/material3-dark.css +2 -54
  104. package/styles/multi-select/material3.css +4 -110
  105. package/styles/multi-select/tailwind-dark.css +1 -0
  106. package/styles/multi-select/tailwind.css +1 -0
  107. package/styles/tailwind-dark.css +9 -0
  108. package/styles/tailwind.css +9 -0
  109. package/hotfix/26.1.35_Vol2.txt +0 -1
@@ -634,10 +634,8 @@ class VirtualScroll {
634
634
  else if (this.parent.isScrollActionTriggered) {
635
635
  this.parent.isPreventKeyAction = false;
636
636
  this.parent.isScrollActionTriggered = false;
637
- let virtualListCount = this.parent.list.querySelectorAll('.e-virtual-list').length;
638
- let listElement = this.parent.list.querySelector('.' + 'e-list-item');
639
- let translateY = scrollArgs.offset.top - (listElement.offsetHeight * virtualListCount);
640
- this.parent.list.getElementsByClassName('e-virtual-ddl-content')[0].style.transform = "translate(0px," + translateY + "px)";
637
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
638
+ this.parent.list.getElementsByClassName('e-virtual-ddl-content')[0].style = this.parent.getTransformValues();
641
639
  }
642
640
  this.parent.previousInfo = this.parent.viewPortInfo;
643
641
  }
@@ -671,13 +669,13 @@ class VirtualScroll {
671
669
  }
672
670
  }
673
671
  else if (infoType.direction === 'up') {
674
- if (infoType.startIndex && infoType.endIndex) {
672
+ if ((infoType.startIndex && infoType.endIndex) || (Math.ceil(exactTopIndex) > this.parent.previousStartIndex)) {
675
673
  let loadAtIndex = Math.round(((infoType.startIndex * rowHeight) + (pageSizeBy4 * rowHeight)) / rowHeight);
676
- if (exactTopIndex < loadAtIndex) {
674
+ if (exactTopIndex < loadAtIndex || (Math.ceil(exactTopIndex) > this.parent.previousStartIndex)) {
677
675
  let idxAddedToExactTop = (pageSizeBy4) > infoViewIndices ? pageSizeBy4 :
678
676
  (infoViewIndices + infoViewIndices / 4);
679
677
  let eIndex = Math.round(exactTopIndex + idxAddedToExactTop);
680
- infoType.endIndex = (eIndex < totalItemCount || this.component == "multiselect") ? eIndex : totalItemCount;
678
+ infoType.endIndex = (eIndex < totalItemCount) ? eIndex : totalItemCount;
681
679
  let sIndex = infoType.endIndex - this.parent.virtualItemCount;
682
680
  infoType.startIndex = sIndex > 0 ? sIndex : 0;
683
681
  infoType.endIndex = sIndex < 0 ? this.parent.virtualItemCount : infoType.endIndex;
@@ -1041,7 +1039,7 @@ let DropDownBase = class DropDownBase extends Component {
1041
1039
  }
1042
1040
  }
1043
1041
  else {
1044
- if (noDataElement[i] instanceof HTMLElement || noDataElement[i] instanceof Text) {
1042
+ if (noDataElement[i] instanceof HTMLElement || ((noDataElement[i] instanceof Text) && (noDataElement[i]).textContent !== '')) {
1045
1043
  ele.appendChild(noDataElement[i]);
1046
1044
  }
1047
1045
  }
@@ -1845,10 +1843,15 @@ let DropDownBase = class DropDownBase extends Component {
1845
1843
  }
1846
1844
  }
1847
1845
  getPageCount(returnExactCount) {
1848
- const liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :
1849
- getComputedStyle(this.getItems()[0], null).getPropertyValue('height');
1850
- let pageCount = Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));
1851
- return returnExactCount ? pageCount : Math.round(pageCount);
1846
+ if (this.list) {
1847
+ const liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :
1848
+ getComputedStyle(this.getItems()[0], null).getPropertyValue('height');
1849
+ let pageCount = Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));
1850
+ return returnExactCount ? pageCount : Math.round(pageCount);
1851
+ }
1852
+ else {
1853
+ return 0;
1854
+ }
1852
1855
  }
1853
1856
  updateGroupHeader(index, liCollections, target) {
1854
1857
  if (!isNullOrUndefined(liCollections[index]) && liCollections[index].classList.contains(dropDownBaseClasses.group)) {
@@ -5869,9 +5872,12 @@ let DropDownList = class DropDownList extends DropDownBase {
5869
5872
  checkData(newProp) {
5870
5873
  if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) && this.itemTemplate && this.allowFiltering &&
5871
5874
  !(this.isListSearched && (newProp.dataSource instanceof DataManager))) {
5872
- if (this.list) {
5875
+ if (this.list && !(this.isReact)) {
5873
5876
  this.list.innerHTML = '';
5874
5877
  }
5878
+ else {
5879
+ this.list = null;
5880
+ }
5875
5881
  this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };
5876
5882
  }
5877
5883
  this.isListSearched = false;
@@ -7023,6 +7029,39 @@ let DropDownTree = class DropDownTree extends Component {
7023
7029
  input: this.filterChangeHandler.bind(this)
7024
7030
  });
7025
7031
  this.filterObj.appendTo('#' + this.element.id + '_filter');
7032
+ this.keyboardModule = new KeyboardEvents(this.filterObj.element, {
7033
+ keyAction: this.filterKeyAction.bind(this),
7034
+ keyConfigs: this.keyConfigs,
7035
+ eventName: 'keydown'
7036
+ });
7037
+ }
7038
+ filterKeyAction(e) {
7039
+ const eventArgs = {
7040
+ cancel: false,
7041
+ event: e
7042
+ };
7043
+ this.trigger('keyPress', eventArgs, (observedArgs) => {
7044
+ if (!observedArgs.cancel) {
7045
+ switch (e.action) {
7046
+ case 'altUp':
7047
+ if (this.isPopupOpen) {
7048
+ this.hidePopup();
7049
+ }
7050
+ break;
7051
+ case 'shiftTab':
7052
+ addClass([this.inputWrapper], [INPUTFOCUS]);
7053
+ break;
7054
+ case 'moveDown':
7055
+ e.preventDefault();
7056
+ this.filterObj.element.blur();
7057
+ let focusedElement = this.treeObj.element.querySelector('li');
7058
+ if (focusedElement) {
7059
+ focusedElement.focus();
7060
+ }
7061
+ break;
7062
+ }
7063
+ }
7064
+ });
7026
7065
  }
7027
7066
  filterChangeHandler(args) {
7028
7067
  if (!isNullOrUndefined(args.value)) {
@@ -7514,7 +7553,6 @@ let DropDownTree = class DropDownTree extends Component {
7514
7553
  }
7515
7554
  break;
7516
7555
  case 'shiftTab':
7517
- case 'tab':
7518
7556
  if (this.isPopupOpen) {
7519
7557
  this.hidePopup();
7520
7558
  }
@@ -8226,13 +8264,16 @@ let DropDownTree = class DropDownTree extends Component {
8226
8264
  }
8227
8265
  else {
8228
8266
  const oldFocussedNode = this.treeObj.element.querySelector('.e-node-focus');
8229
- focusedElement = this.treeObj.element.querySelector('li:not(.e-disable):not(.e-prevent)');
8267
+ focusedElement = this.treeObj.element.querySelector('li[tabindex="0"]:not(.e-disable):not(.e-prevent)') ||
8268
+ this.treeObj.element.querySelector('li:not(.e-disable):not(.e-prevent)');
8230
8269
  if (oldFocussedNode && oldFocussedNode !== focusedElement) {
8231
8270
  oldFocussedNode.setAttribute('tabindex', '-1');
8232
8271
  removeClass([oldFocussedNode], 'e-node-focus');
8233
8272
  }
8234
8273
  }
8235
- focusedElement.focus();
8274
+ if (!this.allowFiltering) {
8275
+ focusedElement.focus();
8276
+ }
8236
8277
  addClass([focusedElement], ['e-node-focus']);
8237
8278
  }
8238
8279
  if (this.treeObj.checkedNodes.length > 0) {
@@ -17049,8 +17090,10 @@ let MultiSelect = class MultiSelect extends DropDownBase {
17049
17090
  if (e.result.length > 0) {
17050
17091
  listItems = e.result;
17051
17092
  this.initStatus = false;
17052
- this.initialValueUpdate(listItems, true);
17053
- this.initialUpdate();
17093
+ setTimeout(() => {
17094
+ this.initialValueUpdate(listItems, true);
17095
+ this.initialUpdate();
17096
+ }, 100);
17054
17097
  this.initStatus = true;
17055
17098
  }
17056
17099
  });
@@ -19209,6 +19252,7 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
19209
19252
  }
19210
19253
  this.inputString = this.filterInput.value;
19211
19254
  this.filterWireEvents();
19255
+ this.ulElement.style.setProperty('height', 'calc(100% - ' + (this.filterParent.offsetHeight) + 'px)', 'important');
19212
19256
  return filterInputObj;
19213
19257
  }
19214
19258
  }
@@ -20016,11 +20060,8 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
20016
20060
  }
20017
20061
  resizeHandler() {
20018
20062
  if (this.list && !(this.cssClass && this.cssClass.indexOf('e-horizontal-listbox') > -1)) {
20019
- if (this.list.scrollWidth > this.list.offsetWidth) {
20020
- this.list.querySelector('.e-list-parent').style.display = 'inline-block';
20021
- }
20022
- else {
20023
- this.list.querySelector('.e-list-parent').style.display = 'block';
20063
+ if (this.list.getElementsByClassName('e-filter-parent').length > 0 && this.allowFiltering) {
20064
+ this.ulElement.style.setProperty('height', 'calc(100% - ' + (this.filterParent.offsetHeight) + 'px)', 'important');
20024
20065
  }
20025
20066
  }
20026
20067
  }
@@ -20353,7 +20394,9 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
20353
20394
  this.initDraggable();
20354
20395
  }
20355
20396
  else {
20356
- getComponent(this.ulElement, 'sortable').destroy();
20397
+ if (this.ulElement.classList.contains("e-sortable")) {
20398
+ getComponent(this.ulElement, 'sortable').destroy();
20399
+ }
20357
20400
  }
20358
20401
  break;
20359
20402
  case 'allowFiltering':