@syncfusion/ej2-dropdowns 28.2.5 → 28.2.7

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 (100) 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 +51 -25
  5. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es5.js +51 -25
  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 +7 -7
  12. package/src/drop-down-base/drop-down-base.js +2 -1
  13. package/src/drop-down-tree/drop-down-tree.d.ts +2 -0
  14. package/src/drop-down-tree/drop-down-tree.js +33 -17
  15. package/src/mention/mention.js +3 -2
  16. package/src/multi-select/multi-select.d.ts +1 -0
  17. package/src/multi-select/multi-select.js +13 -5
  18. package/styles/bds-lite.css +9 -2
  19. package/styles/bds.css +19 -4
  20. package/styles/bootstrap-dark-lite.css +7 -0
  21. package/styles/bootstrap-dark.css +22 -0
  22. package/styles/bootstrap-lite.css +7 -0
  23. package/styles/bootstrap.css +22 -0
  24. package/styles/bootstrap4-lite.css +8 -1
  25. package/styles/bootstrap4.css +24 -2
  26. package/styles/bootstrap5-dark-lite.css +8 -1
  27. package/styles/bootstrap5-dark.css +17 -2
  28. package/styles/bootstrap5-lite.css +8 -1
  29. package/styles/bootstrap5.3-lite.css +8 -1
  30. package/styles/bootstrap5.3.css +24 -2
  31. package/styles/bootstrap5.css +17 -2
  32. package/styles/drop-down-tree/_bds-definition.scss +12 -3
  33. package/styles/drop-down-tree/_bigger.scss +12 -12
  34. package/styles/drop-down-tree/_bootstrap-dark-definition.scss +9 -0
  35. package/styles/drop-down-tree/_bootstrap-definition.scss +10 -1
  36. package/styles/drop-down-tree/_bootstrap4-definition.scss +12 -3
  37. package/styles/drop-down-tree/_bootstrap5-definition.scss +10 -2
  38. package/styles/drop-down-tree/_bootstrap5.3-definition.scss +10 -2
  39. package/styles/drop-down-tree/_fabric-dark-definition.scss +9 -0
  40. package/styles/drop-down-tree/_fabric-definition.scss +9 -0
  41. package/styles/drop-down-tree/_fluent-definition.scss +10 -2
  42. package/styles/drop-down-tree/_fluent2-definition.scss +12 -3
  43. package/styles/drop-down-tree/_fusionnew-definition.scss +9 -0
  44. package/styles/drop-down-tree/_highcontrast-definition.scss +10 -1
  45. package/styles/drop-down-tree/_highcontrast-light-definition.scss +9 -0
  46. package/styles/drop-down-tree/_layout.scss +9 -5
  47. package/styles/drop-down-tree/_material-dark-definition.scss +10 -1
  48. package/styles/drop-down-tree/_material-definition.scss +10 -1
  49. package/styles/drop-down-tree/_material3-definition.scss +11 -2
  50. package/styles/drop-down-tree/_tailwind-definition.scss +11 -3
  51. package/styles/drop-down-tree/_tailwind3-definition.scss +9 -1
  52. package/styles/drop-down-tree/bds.css +19 -4
  53. package/styles/drop-down-tree/bootstrap-dark.css +22 -0
  54. package/styles/drop-down-tree/bootstrap.css +22 -0
  55. package/styles/drop-down-tree/bootstrap4.css +24 -2
  56. package/styles/drop-down-tree/bootstrap5-dark.css +17 -2
  57. package/styles/drop-down-tree/bootstrap5.3.css +24 -2
  58. package/styles/drop-down-tree/bootstrap5.css +17 -2
  59. package/styles/drop-down-tree/fabric-dark.css +22 -0
  60. package/styles/drop-down-tree/fabric.css +22 -0
  61. package/styles/drop-down-tree/fluent-dark.css +17 -2
  62. package/styles/drop-down-tree/fluent.css +17 -2
  63. package/styles/drop-down-tree/fluent2.css +25 -3
  64. package/styles/drop-down-tree/highcontrast-light.css +22 -0
  65. package/styles/drop-down-tree/highcontrast.css +23 -1
  66. package/styles/drop-down-tree/material-dark.css +22 -0
  67. package/styles/drop-down-tree/material.css +23 -1
  68. package/styles/drop-down-tree/material3-dark.css +24 -2
  69. package/styles/drop-down-tree/material3.css +24 -2
  70. package/styles/drop-down-tree/tailwind-dark.css +19 -4
  71. package/styles/drop-down-tree/tailwind.css +19 -4
  72. package/styles/drop-down-tree/tailwind3.css +22 -1
  73. package/styles/fabric-dark-lite.css +7 -0
  74. package/styles/fabric-dark.css +22 -0
  75. package/styles/fabric-lite.css +7 -0
  76. package/styles/fabric.css +22 -0
  77. package/styles/fluent-dark-lite.css +8 -1
  78. package/styles/fluent-dark.css +17 -2
  79. package/styles/fluent-lite.css +8 -1
  80. package/styles/fluent.css +17 -2
  81. package/styles/fluent2-lite.css +9 -2
  82. package/styles/fluent2.css +25 -3
  83. package/styles/highcontrast-light-lite.css +7 -0
  84. package/styles/highcontrast-light.css +22 -0
  85. package/styles/highcontrast-lite.css +8 -1
  86. package/styles/highcontrast.css +23 -1
  87. package/styles/material-dark-lite.css +7 -0
  88. package/styles/material-dark.css +22 -0
  89. package/styles/material-lite.css +8 -1
  90. package/styles/material.css +23 -1
  91. package/styles/material3-dark-lite.css +8 -1
  92. package/styles/material3-dark.css +24 -2
  93. package/styles/material3-lite.css +8 -1
  94. package/styles/material3.css +24 -2
  95. package/styles/tailwind-dark-lite.css +9 -2
  96. package/styles/tailwind-dark.css +19 -4
  97. package/styles/tailwind-lite.css +9 -2
  98. package/styles/tailwind.css +19 -4
  99. package/styles/tailwind3-lite.css +6 -0
  100. package/styles/tailwind3.css +22 -1
@@ -1212,7 +1212,8 @@ let DropDownBase = class DropDownBase extends Component {
1212
1212
  }
1213
1213
  getSkeletonCount(retainSkeleton) {
1214
1214
  this.virtualListHeight = this.listContainerHeight != null ? parseInt(this.listContainerHeight, 10) : this.virtualListHeight;
1215
- const actualCount = this.virtualListHeight > 0 ? Math.floor(this.virtualListHeight / this.listItemHeight) : 0;
1215
+ const actualCount = this.virtualListHeight > 0 && this.listItemHeight > 0 ?
1216
+ Math.floor(this.virtualListHeight / this.listItemHeight) : 0;
1216
1217
  this.skeletonCount = actualCount * 4 < this.itemCount ? this.itemCount : actualCount * 4;
1217
1218
  this.itemCount = retainSkeleton ? this.itemCount : this.skeletonCount;
1218
1219
  this.virtualItemCount = this.itemCount;
@@ -8858,11 +8859,9 @@ let DropDownTree = class DropDownTree extends Component {
8858
8859
  removeClass([this.popupEle], DDTHIDEICON);
8859
8860
  this.updatePopupHeight();
8860
8861
  this.popupObj.refreshPosition();
8861
- if (this.showSelectAll && !this.allowFiltering) {
8862
- this.checkAllParent.focus();
8863
- }
8864
- if ((!this.popupDiv.classList.contains(NODATA) && this.treeItems.length > 0)) {
8865
- let focusedElement = this.value != null || this.text != null ? this.treeObj.element.querySelector('[data-uid="' + this.value[0] + '"]') : null;
8862
+ if (!(this.showSelectAll || this.allowFiltering) && (!this.popupDiv.classList.contains(NODATA)
8863
+ && this.treeItems.length > 0)) {
8864
+ let focusedElement = this.value != null && this.text != null ? this.treeObj.element.querySelector('[data-uid="' + this.value[0] + '"]') : null;
8866
8865
  if (focusedElement) {
8867
8866
  this.treeObj.element.querySelector('li').setAttribute('tabindex', '-1');
8868
8867
  focusedElement.setAttribute('tabindex', '0');
@@ -8871,17 +8870,9 @@ let DropDownTree = class DropDownTree extends Component {
8871
8870
  const oldFocussedNode = this.treeObj.element.querySelector('.e-node-focus');
8872
8871
  focusedElement = this.treeObj.element.querySelector('li[tabindex="0"]:not(.e-disable)') ||
8873
8872
  this.treeObj.element.querySelector('li:not(.e-disable)');
8874
- if (oldFocussedNode && oldFocussedNode !== focusedElement) {
8875
- oldFocussedNode.setAttribute('tabindex', '-1');
8876
- removeClass([oldFocussedNode], 'e-node-focus');
8877
- }
8878
- }
8879
- if (!isNullOrUndefined(focusedElement)) {
8880
- if (!this.allowFiltering) {
8881
- focusedElement.focus();
8882
- }
8883
- addClass([focusedElement], ['e-node-focus']);
8873
+ this.removeFocus(focusedElement, oldFocussedNode);
8884
8874
  }
8875
+ this.updateFocus(focusedElement);
8885
8876
  }
8886
8877
  if (this.treeObj.checkedNodes.length > 0 && !this.isFilterRestore) {
8887
8878
  const nodes = this.treeObj.element.querySelectorAll('li');
@@ -8892,7 +8883,17 @@ let DropDownTree = class DropDownTree extends Component {
8892
8883
  this.checkSelectAll = false;
8893
8884
  }
8894
8885
  }
8886
+ if (this.showSelectAll && !this.allowFiltering) {
8887
+ const oldFocussedNode = this.treeObj.element.querySelector('.e-node-focus');
8888
+ const focusedElement = this.popupEle.querySelector('.e-selectall-parent');
8889
+ this.removeFocus(focusedElement, oldFocussedNode);
8890
+ this.updateFocus(focusedElement);
8891
+ }
8895
8892
  if (this.allowFiltering) {
8893
+ const focusedElement = this.treeObj.element.querySelector('li.e-node-focus');
8894
+ if (!isNullOrUndefined(focusedElement)) {
8895
+ removeClass([focusedElement], 'e-node-focus');
8896
+ }
8896
8897
  removeClass([this.inputWrapper], [INPUTFOCUS]);
8897
8898
  this.filterObj.element.focus();
8898
8899
  }
@@ -8901,6 +8902,18 @@ let DropDownTree = class DropDownTree extends Component {
8901
8902
  }
8902
8903
  });
8903
8904
  }
8905
+ removeFocus(focusedElement, oldFocusedElement) {
8906
+ if (oldFocusedElement && oldFocusedElement !== focusedElement) {
8907
+ oldFocusedElement.setAttribute('tabindex', '-1');
8908
+ removeClass([oldFocusedElement], 'e-node-focus');
8909
+ }
8910
+ }
8911
+ updateFocus(focusedElement) {
8912
+ if (!isNullOrUndefined(focusedElement)) {
8913
+ focusedElement.focus();
8914
+ addClass([focusedElement], ['e-node-focus']);
8915
+ }
8916
+ }
8904
8917
  reactCallBack() {
8905
8918
  if (!isNullOrUndefined(this.popupObj)) {
8906
8919
  this.updatePopupHeight();
@@ -9734,7 +9747,7 @@ let DropDownTree = class DropDownTree extends Component {
9734
9747
  this.chipCollection.appendChild(chip);
9735
9748
  if (this.showClearButton) {
9736
9749
  chip.appendChild(chipClose);
9737
- EventHandler.add(chipClose, 'mousedown', this.removeChip, this);
9750
+ EventHandler.add(chipClose, 'mouseup', this.removeChip, this);
9738
9751
  }
9739
9752
  }
9740
9753
  setTagValues() {
@@ -9867,6 +9880,10 @@ let DropDownTree = class DropDownTree extends Component {
9867
9880
  if (!this.enabled || this.readonly) {
9868
9881
  return;
9869
9882
  }
9883
+ if (e.target.classList.contains('e-chips-close') && !this.isPopupOpen) {
9884
+ e.stopPropagation();
9885
+ e.preventDefault();
9886
+ }
9870
9887
  const element = e.target.parentElement;
9871
9888
  const value = element.getAttribute('data-value');
9872
9889
  if (this.chipCollection) {
@@ -10423,7 +10440,7 @@ let DropDownTree = class DropDownTree extends Component {
10423
10440
  if (this.chipCollection) {
10424
10441
  const chipsIcons = selectAll('.e-chips-close', this.chipCollection);
10425
10442
  for (const element of chipsIcons) {
10426
- EventHandler.remove(element, 'mousedown', this.removeChip);
10443
+ EventHandler.remove(element, 'mouseup', this.removeChip);
10427
10444
  }
10428
10445
  }
10429
10446
  this.chipWrapper = null;
@@ -12539,6 +12556,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
12539
12556
  this.isBlurDispatching = false;
12540
12557
  this.isFilterPrevented = false;
12541
12558
  this.isFilteringAction = false;
12559
+ this.isVirtualReorder = false;
12542
12560
  this.isValidKey = false;
12543
12561
  this.selectAllEventData = [];
12544
12562
  this.selectAllEventEle = [];
@@ -12733,12 +12751,14 @@ let MultiSelect = class MultiSelect extends DropDownBase {
12733
12751
  }
12734
12752
  updateVirtualReOrderList(isCheckBoxUpdate) {
12735
12753
  const query = this.getForQuery(this.value, true).clone();
12754
+ this.isVirtualReorder = true;
12736
12755
  if (this.enableVirtualization && this.dataSource instanceof DataManager) {
12737
12756
  this.resetList(this.selectedListData, this.fields, query);
12738
12757
  }
12739
12758
  else {
12740
12759
  this.resetList(this.dataSource, this.fields, query);
12741
12760
  }
12761
+ this.isVirtualReorder = false;
12742
12762
  this.UpdateSkeleton();
12743
12763
  this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
12744
12764
  this.virtualItemCount = this.itemCount;
@@ -12947,10 +12967,14 @@ let MultiSelect = class MultiSelect extends DropDownBase {
12947
12967
  const field = this.isPrimitiveData ? '' : this.fields.value;
12948
12968
  if (this.enableVirtualization && valuecheck) {
12949
12969
  if (isCheckbox) {
12950
- for (let i = 0; i < valuecheck.length; i++) {
12970
+ const startindex = this.viewPortInfo.startIndex;
12971
+ const endindex = (((startindex + this.viewPortInfo.endIndex) <= (valuecheck.length)) &&
12972
+ valuecheck[(startindex + this.viewPortInfo.endIndex)]) ? (startindex + this.viewPortInfo.endIndex)
12973
+ : (valuecheck.length);
12974
+ for (let i = startindex; i < endindex; i++) {
12951
12975
  const value = this.allowObjectBinding ? getValue((this.fields.value) ?
12952
12976
  this.fields.value : '', valuecheck[i]) : valuecheck[i];
12953
- if (i === 0) {
12977
+ if (i === startindex) {
12954
12978
  predicate = new Predicate(field, 'equal', (value));
12955
12979
  }
12956
12980
  else {
@@ -13377,7 +13401,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13377
13401
  }
13378
13402
  }
13379
13403
  }
13380
- if ((this.allowFiltering && isSkip) || !isReOrder || (!this.allowFiltering && isSkip)) {
13404
+ if ((this.allowFiltering && isSkip) || !isReOrder || (!this.allowFiltering && isSkip) && !this.isVirtualReorder) {
13381
13405
  if (!isReOrder) {
13382
13406
  filterQuery.skip(this.viewPortInfo.startIndex);
13383
13407
  }
@@ -16076,7 +16100,8 @@ let MultiSelect = class MultiSelect extends DropDownBase {
16076
16100
  }
16077
16101
  else {
16078
16102
  temp = isInitialVirtualData && delim ? this.text : this.getTextByValue(value);
16079
- const textValues = this.isDynamicRemoteVirtualData && value != null && value !== '' ? this.getTextByValue(value) : isInitialVirtualData ? this.text : (this.text && this.text !== '' ? this.text + this.delimiterChar + temp : temp);
16103
+ const textValues = this.isDynamicRemoteVirtualData && value != null && value !== '' && !isInitialVirtualData ?
16104
+ this.getTextByValue(value) : isInitialVirtualData ? this.text : (this.text && this.text !== '' ? this.text + this.delimiterChar + temp : temp);
16080
16105
  data += temp + delimiterChar + ' ';
16081
16106
  text.push(textValues);
16082
16107
  hiddenElementContent = this.hiddenElement.innerHTML;
@@ -16236,7 +16261,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
16236
16261
  (this.mode === 'Box' || this.mode === 'Default'))) ||
16237
16262
  (this.enableVirtualization && value != null && text != null && !isCustomData)) {
16238
16263
  const currentText = [];
16239
- const textValues = this.isDynamicRemoteVirtualData && text != null && text !== '' ? text : this.text != null && this.text !== '' ? this.text + this.delimiterChar + text : text;
16264
+ const textValues = this.isDynamicRemoteVirtualData && text != null && text !== '' && index === 0 ? text : this.text != null && this.text !== '' && !this.text.includes(text) ? this.text + this.delimiterChar + text : text;
16240
16265
  currentText.push(textValues);
16241
16266
  this.setProperties({ text: currentText.toString() }, true);
16242
16267
  this.addChip(text, value);
@@ -23544,6 +23569,7 @@ let Mention = class Mention extends DropDownBase {
23544
23569
  this.range = this.getCurrentRange();
23545
23570
  }
23546
23571
  const currentRange = this.getTextRange();
23572
+ this.queryString = text;
23547
23573
  const lastWordRange = this.getLastLetter(currentRange);
23548
23574
  if ((this.ignoreCase && (text === lastWordRange || text === lastWordRange.toLowerCase()))
23549
23575
  || !this.ignoreCase && text === lastWordRange) {
@@ -23559,8 +23585,8 @@ let Mention = class Mention extends DropDownBase {
23559
23585
  this.renderList();
23560
23586
  this.renderPopup();
23561
23587
  }
23562
- else {
23563
- this.showPopup();
23588
+ else if (!this.isPopupOpen) {
23589
+ this.renderPopup();
23564
23590
  }
23565
23591
  this.popupObj.element.style.left = formatUnit(positionX);
23566
23592
  this.popupObj.element.style.top = formatUnit(positionY);