@syncfusion/ej2-dropdowns 23.1.36 → 23.1.39

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 (95) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/ej2-dropdowns.min.js +3 -3
  3. package/dist/ej2-dropdowns.umd.min.js +3 -3
  4. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-dropdowns.es2015.js +36 -6
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +36 -6
  8. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  9. package/dist/global/ej2-dropdowns.min.js +3 -3
  10. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  11. package/dist/global/index.d.ts +2 -2
  12. package/package.json +9 -9
  13. package/src/common/virtual-scroll.d.ts +1 -0
  14. package/src/common/virtual-scroll.js +3 -0
  15. package/src/drop-down-list/drop-down-list.d.ts +1 -0
  16. package/src/drop-down-list/drop-down-list.js +31 -5
  17. package/src/multi-select/multi-select.js +2 -1
  18. package/styles/bootstrap-dark.css +82 -8
  19. package/styles/bootstrap.css +82 -8
  20. package/styles/bootstrap4.css +83 -9
  21. package/styles/bootstrap5-dark.css +83 -9
  22. package/styles/bootstrap5.css +83 -9
  23. package/styles/fabric-dark.css +83 -9
  24. package/styles/fabric.css +83 -9
  25. package/styles/fluent-dark.css +82 -8
  26. package/styles/fluent.css +82 -8
  27. package/styles/highcontrast-light.css +82 -8
  28. package/styles/highcontrast.css +82 -8
  29. package/styles/list-box/_bootstrap-dark-definition.scss +6 -2
  30. package/styles/list-box/_bootstrap-definition.scss +7 -3
  31. package/styles/list-box/_bootstrap4-definition.scss +8 -4
  32. package/styles/list-box/_bootstrap5-definition.scss +6 -4
  33. package/styles/list-box/_fabric-dark-definition.scss +6 -2
  34. package/styles/list-box/_fabric-definition.scss +6 -2
  35. package/styles/list-box/_fluent-definition.scss +8 -6
  36. package/styles/list-box/_highcontrast-definition.scss +6 -2
  37. package/styles/list-box/_highcontrast-light-definition.scss +6 -2
  38. package/styles/list-box/_material-dark-definition.scss +8 -4
  39. package/styles/list-box/_material-definition.scss +8 -4
  40. package/styles/list-box/_material3-definition.scss +8 -6
  41. package/styles/list-box/_tailwind-definition.scss +8 -6
  42. package/styles/list-box/_theme.scss +72 -7
  43. package/styles/list-box/bootstrap-dark.css +70 -7
  44. package/styles/list-box/bootstrap.css +70 -7
  45. package/styles/list-box/bootstrap4.css +71 -8
  46. package/styles/list-box/bootstrap5-dark.css +71 -8
  47. package/styles/list-box/bootstrap5.css +71 -8
  48. package/styles/list-box/fabric-dark.css +70 -7
  49. package/styles/list-box/fabric.css +70 -7
  50. package/styles/list-box/fluent-dark.css +70 -7
  51. package/styles/list-box/fluent.css +70 -7
  52. package/styles/list-box/highcontrast-light.css +70 -7
  53. package/styles/list-box/highcontrast.css +70 -7
  54. package/styles/list-box/material-dark.css +71 -8
  55. package/styles/list-box/material.css +71 -8
  56. package/styles/list-box/material3-dark.css +71 -8
  57. package/styles/list-box/material3.css +71 -8
  58. package/styles/list-box/tailwind-dark.css +71 -8
  59. package/styles/list-box/tailwind.css +71 -8
  60. package/styles/material-dark.css +83 -9
  61. package/styles/material.css +83 -9
  62. package/styles/material3-dark.css +81 -8
  63. package/styles/material3.css +81 -8
  64. package/styles/multi-select/_bootstrap-dark-definition.scss +2 -0
  65. package/styles/multi-select/_bootstrap-definition.scss +2 -0
  66. package/styles/multi-select/_bootstrap4-definition.scss +2 -0
  67. package/styles/multi-select/_bootstrap5-definition.scss +2 -0
  68. package/styles/multi-select/_fabric-dark-definition.scss +3 -1
  69. package/styles/multi-select/_fabric-definition.scss +3 -1
  70. package/styles/multi-select/_fluent-definition.scss +2 -0
  71. package/styles/multi-select/_highcontrast-definition.scss +2 -0
  72. package/styles/multi-select/_highcontrast-light-definition.scss +2 -0
  73. package/styles/multi-select/_layout.scss +12 -1
  74. package/styles/multi-select/_material-dark-definition.scss +2 -0
  75. package/styles/multi-select/_material-definition.scss +2 -0
  76. package/styles/multi-select/_tailwind-definition.scss +2 -0
  77. package/styles/multi-select/bootstrap-dark.css +12 -1
  78. package/styles/multi-select/bootstrap.css +12 -1
  79. package/styles/multi-select/bootstrap4.css +12 -1
  80. package/styles/multi-select/bootstrap5-dark.css +12 -1
  81. package/styles/multi-select/bootstrap5.css +12 -1
  82. package/styles/multi-select/fabric-dark.css +13 -2
  83. package/styles/multi-select/fabric.css +13 -2
  84. package/styles/multi-select/fluent-dark.css +12 -1
  85. package/styles/multi-select/fluent.css +12 -1
  86. package/styles/multi-select/highcontrast-light.css +12 -1
  87. package/styles/multi-select/highcontrast.css +12 -1
  88. package/styles/multi-select/material-dark.css +12 -1
  89. package/styles/multi-select/material.css +12 -1
  90. package/styles/multi-select/material3-dark.css +10 -0
  91. package/styles/multi-select/material3.css +10 -0
  92. package/styles/multi-select/tailwind-dark.css +12 -1
  93. package/styles/multi-select/tailwind.css +12 -1
  94. package/styles/tailwind-dark.css +83 -9
  95. package/styles/tailwind.css +83 -9
@@ -506,6 +506,9 @@ class VirtualScroll {
506
506
  focusElement: document.activeElement });
507
507
  };
508
508
  }
509
+ destroy() {
510
+ this.removeEventListener();
511
+ }
509
512
  }
510
513
 
511
514
  /**
@@ -2848,7 +2851,17 @@ let DropDownList = class DropDownList extends DropDownBase {
2848
2851
  if (!isNullOrUndefined(previousItem) && previousItem.classList.contains('e-virtual-list')) {
2849
2852
  previousItem = this.liCollections[this.skeletonCount];
2850
2853
  }
2851
- this.setSelection(previousItem, event);
2854
+ this.PageUpDownSelection(previousItem, event);
2855
+ }
2856
+ PageUpDownSelection(previousItem, event) {
2857
+ if (this.enableVirtualization) {
2858
+ if (!isNullOrUndefined(previousItem) && ((this.getModuleName() !== 'autocomplete' && !previousItem.classList.contains('e-active')) || (this.getModuleName() === 'autocomplete' && !previousItem.classList.contains('e-item-focus')))) {
2859
+ this.setSelection(previousItem, event);
2860
+ }
2861
+ }
2862
+ else {
2863
+ this.setSelection(previousItem, event);
2864
+ }
2852
2865
  }
2853
2866
  pageDownSelection(steps, event, isVirtualKeyAction) {
2854
2867
  const list = this.getItems();
@@ -2856,7 +2869,7 @@ let DropDownList = class DropDownList extends DropDownBase {
2856
2869
  if ((this.enableVirtualization && this.activeIndex == null) || isVirtualKeyAction) {
2857
2870
  previousItem = steps <= list.length ? this.liCollections[steps + this.skeletonCount - 1] : this.liCollections[list.length - 1];
2858
2871
  }
2859
- this.setSelection(previousItem, event);
2872
+ this.PageUpDownSelection(previousItem, event);
2860
2873
  }
2861
2874
  unWireEvent() {
2862
2875
  if (!isNullOrUndefined(this.inputWrapper)) {
@@ -3014,6 +3027,9 @@ let DropDownList = class DropDownList extends DropDownBase {
3014
3027
  removeClass([focusedItem], dropDownBaseClasses.focus);
3015
3028
  }
3016
3029
  li.setAttribute('aria-selected', 'true');
3030
+ if (isNullOrUndefined(value)) {
3031
+ value = 'null';
3032
+ }
3017
3033
  this.activeIndex = this.getIndexByValue(value);
3018
3034
  }
3019
3035
  activeItem(li) {
@@ -3637,6 +3653,9 @@ let DropDownList = class DropDownList extends DropDownBase {
3637
3653
  const totalSkeletonCount = isSkeletonCountChange ? skeletonCount : this.skeletonCount;
3638
3654
  for (let i = 0; i < totalSkeletonCount; i++) {
3639
3655
  const liElement = this.createElement('li', { className: dropDownListClasses.virtualList, styles: 'overflow: inherit' });
3656
+ if (this.enableVirtualization && this.itemTemplate) {
3657
+ liElement.style.height = this.listItemHeight + 'px';
3658
+ }
3640
3659
  let skeleton = new Skeleton({
3641
3660
  shape: "Text",
3642
3661
  height: "10px",
@@ -3898,6 +3917,10 @@ let DropDownList = class DropDownList extends DropDownBase {
3898
3917
  this.setFooterTemplate(popupEle);
3899
3918
  }
3900
3919
  document.body.appendChild(popupEle);
3920
+ if (this.enableVirtualization && this.itemTemplate) {
3921
+ var listitems = popupEle.querySelectorAll('li.e-list-item:not(.e-virtual-list)');
3922
+ this.listItemHeight = listitems.length > 0 ? Math.ceil(listitems[0].getBoundingClientRect().height) : 0;
3923
+ }
3901
3924
  if (this.enableVirtualization && !this.list.classList.contains(dropDownBaseClasses.noData)) {
3902
3925
  if (!this.list.querySelector('.e-virtual-ddl-content')) {
3903
3926
  this.list.appendChild(this.createElement('div', {
@@ -4067,7 +4090,8 @@ let DropDownList = class DropDownList extends DropDownBase {
4067
4090
  createPopup(element, offsetValue, left) {
4068
4091
  this.popupObj = new Popup(element, {
4069
4092
  width: this.setWidth(), targetType: 'relative',
4070
- relateTo: this.inputWrapper.container, collision: { X: 'flip', Y: 'flip' }, offsetY: offsetValue,
4093
+ relateTo: this.inputWrapper.container,
4094
+ collision: this.enableRtl ? { X: 'fit', Y: 'flip' } : { X: 'flip', Y: 'flip' }, offsetY: offsetValue,
4071
4095
  enableRtl: this.enableRtl, offsetX: left,
4072
4096
  position: this.enableRtl ? { X: 'right', Y: 'bottom' } : { X: 'left', Y: 'bottom' },
4073
4097
  zIndex: this.zIndex,
@@ -4220,7 +4244,12 @@ let DropDownList = class DropDownList extends DropDownBase {
4220
4244
  if (!this.enableVirtualization || this.isKeyBoardAction || isInitialSelection) {
4221
4245
  if (this.isKeyBoardAction && this.enableVirtualization && lastElementValue && currentElementValue === lastElementValue && keyAction != "end" && !this.isVirtualScrolling) {
4222
4246
  this.isPreventKeyAction = true;
4223
- this.list.scrollTop += this.selectedLI.offsetHeight * liCount;
4247
+ if (this.enableVirtualization && this.itemTemplate) {
4248
+ this.list.scrollTop += nextOffset;
4249
+ }
4250
+ else {
4251
+ this.list.scrollTop += this.selectedLI.offsetHeight * liCount;
4252
+ }
4224
4253
  this.isPreventKeyAction = this.IsScrollerAtEnd() ? false : this.isPreventKeyAction;
4225
4254
  this.isKeyBoardAction = false;
4226
4255
  this.isPreventScrollAction = false;
@@ -4555,7 +4584,7 @@ let DropDownList = class DropDownList extends DropDownBase {
4555
4584
  this.inputElement.parentElement.insertBefore(this.element, this.inputElement);
4556
4585
  }
4557
4586
  this.hiddenElement = this.createElement('select', {
4558
- attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': dropDownListClasses.hiddenElement }
4587
+ attrs: { 'aria-hidden': 'true', 'aria-label': this.getModuleName(), 'tabindex': '-1', 'class': dropDownListClasses.hiddenElement }
4559
4588
  });
4560
4589
  prepend([this.hiddenElement], this.inputWrapper.container);
4561
4590
  this.validationAttribute(this.element, this.hiddenElement);
@@ -12157,7 +12186,8 @@ let MultiSelect = class MultiSelect extends DropDownBase {
12157
12186
  this.popupObj = new Popup(this.popupWrapper, {
12158
12187
  width: this.calcPopupWidth(), targetType: 'relative',
12159
12188
  position: this.enableRtl ? { X: 'right', Y: 'bottom' } : { X: 'left', Y: 'bottom' },
12160
- relateTo: this.overAllWrapper, collision: { X: 'flip', Y: 'flip' }, offsetY: 1,
12189
+ relateTo: this.overAllWrapper,
12190
+ collision: this.enableRtl ? { X: 'fit', Y: 'flip' } : { X: 'flip', Y: 'flip' }, offsetY: 1,
12161
12191
  enableRtl: this.enableRtl, zIndex: this.zIndex,
12162
12192
  close: () => {
12163
12193
  if (this.popupObj.element.parentElement) {