@syncfusion/ej2-dropdowns 23.1.36 → 23.1.38

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 (65) hide show
  1. package/CHANGELOG.md +8 -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 +32 -5
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +32 -5
  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 +8 -8
  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 +27 -4
  17. package/src/multi-select/multi-select.js +2 -1
  18. package/styles/bootstrap-dark.css +70 -7
  19. package/styles/bootstrap.css +70 -7
  20. package/styles/bootstrap4.css +71 -8
  21. package/styles/bootstrap5-dark.css +71 -8
  22. package/styles/bootstrap5.css +71 -8
  23. package/styles/fabric-dark.css +70 -7
  24. package/styles/fabric.css +70 -7
  25. package/styles/fluent-dark.css +70 -7
  26. package/styles/fluent.css +70 -7
  27. package/styles/highcontrast-light.css +70 -7
  28. package/styles/highcontrast.css +70 -7
  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 +71 -8
  61. package/styles/material.css +71 -8
  62. package/styles/material3-dark.css +71 -8
  63. package/styles/material3.css +71 -8
  64. package/styles/tailwind-dark.css +71 -8
  65. package/styles/tailwind.css +71 -8
@@ -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)) {
@@ -3637,6 +3650,9 @@ let DropDownList = class DropDownList extends DropDownBase {
3637
3650
  const totalSkeletonCount = isSkeletonCountChange ? skeletonCount : this.skeletonCount;
3638
3651
  for (let i = 0; i < totalSkeletonCount; i++) {
3639
3652
  const liElement = this.createElement('li', { className: dropDownListClasses.virtualList, styles: 'overflow: inherit' });
3653
+ if (this.enableVirtualization && this.itemTemplate) {
3654
+ liElement.style.height = this.listItemHeight + 'px';
3655
+ }
3640
3656
  let skeleton = new Skeleton({
3641
3657
  shape: "Text",
3642
3658
  height: "10px",
@@ -3898,6 +3914,10 @@ let DropDownList = class DropDownList extends DropDownBase {
3898
3914
  this.setFooterTemplate(popupEle);
3899
3915
  }
3900
3916
  document.body.appendChild(popupEle);
3917
+ if (this.enableVirtualization && this.itemTemplate) {
3918
+ var listitems = popupEle.querySelectorAll('li.e-list-item:not(.e-virtual-list)');
3919
+ this.listItemHeight = listitems.length > 0 ? Math.ceil(listitems[0].getBoundingClientRect().height) : 0;
3920
+ }
3901
3921
  if (this.enableVirtualization && !this.list.classList.contains(dropDownBaseClasses.noData)) {
3902
3922
  if (!this.list.querySelector('.e-virtual-ddl-content')) {
3903
3923
  this.list.appendChild(this.createElement('div', {
@@ -4067,7 +4087,8 @@ let DropDownList = class DropDownList extends DropDownBase {
4067
4087
  createPopup(element, offsetValue, left) {
4068
4088
  this.popupObj = new Popup(element, {
4069
4089
  width: this.setWidth(), targetType: 'relative',
4070
- relateTo: this.inputWrapper.container, collision: { X: 'flip', Y: 'flip' }, offsetY: offsetValue,
4090
+ relateTo: this.inputWrapper.container,
4091
+ collision: this.enableRtl ? { X: 'fit', Y: 'flip' } : { X: 'flip', Y: 'flip' }, offsetY: offsetValue,
4071
4092
  enableRtl: this.enableRtl, offsetX: left,
4072
4093
  position: this.enableRtl ? { X: 'right', Y: 'bottom' } : { X: 'left', Y: 'bottom' },
4073
4094
  zIndex: this.zIndex,
@@ -4220,7 +4241,12 @@ let DropDownList = class DropDownList extends DropDownBase {
4220
4241
  if (!this.enableVirtualization || this.isKeyBoardAction || isInitialSelection) {
4221
4242
  if (this.isKeyBoardAction && this.enableVirtualization && lastElementValue && currentElementValue === lastElementValue && keyAction != "end" && !this.isVirtualScrolling) {
4222
4243
  this.isPreventKeyAction = true;
4223
- this.list.scrollTop += this.selectedLI.offsetHeight * liCount;
4244
+ if (this.enableVirtualization && this.itemTemplate) {
4245
+ this.list.scrollTop += nextOffset;
4246
+ }
4247
+ else {
4248
+ this.list.scrollTop += this.selectedLI.offsetHeight * liCount;
4249
+ }
4224
4250
  this.isPreventKeyAction = this.IsScrollerAtEnd() ? false : this.isPreventKeyAction;
4225
4251
  this.isKeyBoardAction = false;
4226
4252
  this.isPreventScrollAction = false;
@@ -12157,7 +12183,8 @@ let MultiSelect = class MultiSelect extends DropDownBase {
12157
12183
  this.popupObj = new Popup(this.popupWrapper, {
12158
12184
  width: this.calcPopupWidth(), targetType: 'relative',
12159
12185
  position: this.enableRtl ? { X: 'right', Y: 'bottom' } : { X: 'left', Y: 'bottom' },
12160
- relateTo: this.overAllWrapper, collision: { X: 'flip', Y: 'flip' }, offsetY: 1,
12186
+ relateTo: this.overAllWrapper,
12187
+ collision: this.enableRtl ? { X: 'fit', Y: 'flip' } : { X: 'flip', Y: 'flip' }, offsetY: 1,
12161
12188
  enableRtl: this.enableRtl, zIndex: this.zIndex,
12162
12189
  close: () => {
12163
12190
  if (this.popupObj.element.parentElement) {