@syncfusion/ej2-dropdowns 28.2.12 → 29.1.37

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 (137) hide show
  1. package/README.md +1 -1
  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 +135 -67
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +134 -66
  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 +13 -13
  13. package/src/auto-complete/auto-complete.js +4 -3
  14. package/src/combo-box/combo-box.js +7 -2
  15. package/src/drop-down-list/drop-down-list.js +37 -23
  16. package/src/drop-down-tree/drop-down-tree-model.d.ts +1 -1
  17. package/src/drop-down-tree/drop-down-tree.d.ts +1 -1
  18. package/src/drop-down-tree/drop-down-tree.js +6 -4
  19. package/src/list-box/list-box.js +8 -2
  20. package/src/mention/mention-model.d.ts +8 -0
  21. package/src/mention/mention.d.ts +7 -0
  22. package/src/mention/mention.js +27 -7
  23. package/src/multi-select/multi-select.js +45 -25
  24. package/styles/bds-lite.css +7 -0
  25. package/styles/bds.css +7 -0
  26. package/styles/bootstrap-dark-lite.css +11 -4
  27. package/styles/bootstrap-dark.css +11 -4
  28. package/styles/bootstrap-lite.css +7 -0
  29. package/styles/bootstrap.css +7 -0
  30. package/styles/bootstrap4-lite.css +18 -11
  31. package/styles/bootstrap4.css +18 -11
  32. package/styles/bootstrap5-dark-lite.css +38 -31
  33. package/styles/bootstrap5-dark.css +38 -31
  34. package/styles/bootstrap5-lite.css +9 -2
  35. package/styles/bootstrap5.3-lite.css +12 -4
  36. package/styles/bootstrap5.3.css +12 -4
  37. package/styles/bootstrap5.css +9 -2
  38. package/styles/drop-down-base/_bootstrap-dark-definition.scss +3 -1
  39. package/styles/drop-down-base/_bootstrap4-definition.scss +3 -1
  40. package/styles/drop-down-base/bootstrap-dark.css +2 -2
  41. package/styles/drop-down-base/bootstrap4.css +5 -5
  42. package/styles/drop-down-base/bootstrap5-dark.css +13 -13
  43. package/styles/drop-down-base/fabric-dark.css +2 -2
  44. package/styles/drop-down-base/fabric.css +2 -2
  45. package/styles/drop-down-list/_layout.scss +1 -1
  46. package/styles/drop-down-list/bootstrap5-dark.css +2 -2
  47. package/styles/drop-down-tree/_bds-definition.scss +0 -1
  48. package/styles/drop-down-tree/_bigger.scss +5 -0
  49. package/styles/drop-down-tree/_bootstrap4-definition.scss +5 -3
  50. package/styles/drop-down-tree/_layout.scss +5 -1
  51. package/styles/drop-down-tree/_material-definition.scss +4 -2
  52. package/styles/drop-down-tree/bds.css +3 -0
  53. package/styles/drop-down-tree/bootstrap-dark.css +3 -0
  54. package/styles/drop-down-tree/bootstrap.css +3 -0
  55. package/styles/drop-down-tree/bootstrap4.css +4 -1
  56. package/styles/drop-down-tree/bootstrap5-dark.css +9 -6
  57. package/styles/drop-down-tree/bootstrap5.3.css +3 -3
  58. package/styles/drop-down-tree/bootstrap5.css +3 -0
  59. package/styles/drop-down-tree/fabric-dark.css +3 -0
  60. package/styles/drop-down-tree/fabric.css +3 -0
  61. package/styles/drop-down-tree/fluent-dark.css +3 -0
  62. package/styles/drop-down-tree/fluent.css +3 -0
  63. package/styles/drop-down-tree/fluent2.css +9 -0
  64. package/styles/drop-down-tree/highcontrast-light.css +3 -0
  65. package/styles/drop-down-tree/highcontrast.css +3 -0
  66. package/styles/drop-down-tree/material-dark.css +3 -0
  67. package/styles/drop-down-tree/material.css +4 -1
  68. package/styles/drop-down-tree/material3-dark.css +3 -0
  69. package/styles/drop-down-tree/material3.css +3 -0
  70. package/styles/drop-down-tree/tailwind-dark.css +5 -2
  71. package/styles/drop-down-tree/tailwind.css +3 -0
  72. package/styles/drop-down-tree/tailwind3.css +3 -0
  73. package/styles/fabric-dark-lite.css +10 -3
  74. package/styles/fabric-dark.css +10 -3
  75. package/styles/fabric-lite.css +14 -7
  76. package/styles/fabric.css +14 -7
  77. package/styles/fluent-dark-lite.css +7 -0
  78. package/styles/fluent-dark.css +7 -0
  79. package/styles/fluent-lite.css +7 -0
  80. package/styles/fluent.css +7 -0
  81. package/styles/fluent2-lite.css +12 -1
  82. package/styles/fluent2.css +18 -1
  83. package/styles/highcontrast-light-lite.css +7 -0
  84. package/styles/highcontrast-light.css +7 -0
  85. package/styles/highcontrast-lite.css +7 -0
  86. package/styles/highcontrast.css +7 -0
  87. package/styles/list-box/_bootstrap-dark-definition.scss +3 -1
  88. package/styles/list-box/_bootstrap4-definition.scss +3 -1
  89. package/styles/list-box/_layout.scss +7 -3
  90. package/styles/list-box/bootstrap-dark.css +1 -1
  91. package/styles/list-box/bootstrap4.css +1 -1
  92. package/styles/list-box/bootstrap5-dark.css +3 -3
  93. package/styles/list-box/bootstrap5.3.css +5 -1
  94. package/styles/list-box/fabric-dark.css +1 -1
  95. package/styles/list-box/fabric.css +1 -1
  96. package/styles/list-box/fluent2.css +5 -1
  97. package/styles/list-box/tailwind3.css +6 -2
  98. package/styles/material-dark-lite.css +9 -2
  99. package/styles/material-dark.css +9 -2
  100. package/styles/material-lite.css +13 -6
  101. package/styles/material.css +13 -6
  102. package/styles/material3-dark-lite.css +9 -2
  103. package/styles/material3-dark.css +9 -2
  104. package/styles/material3-lite.css +9 -2
  105. package/styles/material3.css +9 -2
  106. package/styles/multi-select/_bootstrap4-definition.scss +5 -3
  107. package/styles/multi-select/_layout.scss +3 -0
  108. package/styles/multi-select/_material-dark-definition.scss +4 -2
  109. package/styles/multi-select/_material-definition.scss +7 -5
  110. package/styles/multi-select/_material3-definition.scss +4 -2
  111. package/styles/multi-select/bds.css +4 -0
  112. package/styles/multi-select/bootstrap-dark.css +5 -1
  113. package/styles/multi-select/bootstrap.css +4 -0
  114. package/styles/multi-select/bootstrap4.css +8 -4
  115. package/styles/multi-select/bootstrap5-dark.css +11 -7
  116. package/styles/multi-select/bootstrap5.3.css +4 -0
  117. package/styles/multi-select/bootstrap5.css +6 -2
  118. package/styles/multi-select/fabric-dark.css +4 -0
  119. package/styles/multi-select/fabric.css +8 -4
  120. package/styles/multi-select/fluent-dark.css +4 -0
  121. package/styles/multi-select/fluent.css +4 -0
  122. package/styles/multi-select/fluent2.css +4 -0
  123. package/styles/multi-select/highcontrast-light.css +4 -0
  124. package/styles/multi-select/highcontrast.css +4 -0
  125. package/styles/multi-select/material-dark.css +6 -2
  126. package/styles/multi-select/material.css +9 -5
  127. package/styles/multi-select/material3-dark.css +6 -2
  128. package/styles/multi-select/material3.css +6 -2
  129. package/styles/multi-select/tailwind-dark.css +4 -0
  130. package/styles/multi-select/tailwind.css +4 -0
  131. package/styles/multi-select/tailwind3.css +4 -0
  132. package/styles/tailwind-dark-lite.css +9 -2
  133. package/styles/tailwind-dark.css +9 -2
  134. package/styles/tailwind-lite.css +7 -0
  135. package/styles/tailwind.css +7 -0
  136. package/styles/tailwind3-lite.css +13 -2
  137. package/styles/tailwind3.css +13 -2
@@ -4388,6 +4388,9 @@ let DropDownList = class DropDownList extends DropDownBase {
4388
4388
  if ((this.value === dataItem.value && this.text !== dataItem.text) ||
4389
4389
  (this.value !== dataItem.value && this.text === dataItem.text)) {
4390
4390
  this.setProperties({ 'text': dataItem.text ? dataItem.text.toString() : dataItem.text, 'value': value });
4391
+ if (isNullOrUndefined(li)) {
4392
+ this.previousValue = this.value;
4393
+ }
4391
4394
  }
4392
4395
  }
4393
4396
  }
@@ -4874,16 +4877,19 @@ let DropDownList = class DropDownList extends DropDownBase {
4874
4877
  this.resetList(dataSource, fields, query);
4875
4878
  if (isNoData && !this.list.classList.contains(dropDownBaseClasses.noData)) {
4876
4879
  if (!this.list.querySelector('.e-virtual-ddl-content')) {
4877
- this.list.appendChild(this.createElement('div', {
4878
- className: 'e-virtual-ddl-content',
4879
- styles: this.getTransformValues()
4880
- })).appendChild(this.list.querySelector('.e-list-parent'));
4880
+ const virtualContentElement = this.createElement('div', {
4881
+ className: 'e-virtual-ddl-content'
4882
+ });
4883
+ virtualContentElement.style.cssText = this.getTransformValues();
4884
+ this.list.appendChild(virtualContentElement).appendChild(this.list.querySelector('.e-list-parent'));
4881
4885
  }
4882
4886
  if (!this.list.querySelector('.e-virtual-ddl')) {
4883
- const virualElement = this.createElement('div', {
4884
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
4887
+ const virtualElement = this.createElement('div', {
4888
+ id: this.element.id + '_popup',
4889
+ className: 'e-virtual-ddl'
4885
4890
  });
4886
- this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);
4891
+ virtualElement.style.cssText = this.GetVirtualTrackHeight();
4892
+ this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virtualElement);
4887
4893
  }
4888
4894
  }
4889
4895
  }
@@ -4913,16 +4919,19 @@ let DropDownList = class DropDownList extends DropDownBase {
4913
4919
  }
4914
4920
  if (this.enableVirtualization && isNoData && !this.list.classList.contains(dropDownBaseClasses.noData)) {
4915
4921
  if (!this.list.querySelector('.e-virtual-ddl-content')) {
4916
- this.list.appendChild(this.createElement('div', {
4917
- className: 'e-virtual-ddl-content',
4918
- styles: this.getTransformValues()
4919
- })).appendChild(this.list.querySelector('.e-list-parent'));
4922
+ const virtualContentElement = this.createElement('div', {
4923
+ className: 'e-virtual-ddl-content'
4924
+ });
4925
+ virtualContentElement.style.cssText = this.getTransformValues();
4926
+ this.list.appendChild(virtualContentElement).appendChild(this.list.querySelector('.e-list-parent'));
4920
4927
  }
4921
4928
  if (!this.list.querySelector('.e-virtual-ddl')) {
4922
- const virualElement = this.createElement('div', {
4923
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
4929
+ const virtualElement = this.createElement('div', {
4930
+ id: this.element.id + '_popup',
4931
+ className: 'e-virtual-ddl'
4924
4932
  });
4925
- this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);
4933
+ virtualElement.style.cssText = this.GetVirtualTrackHeight();
4934
+ this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virtualElement);
4926
4935
  }
4927
4936
  }
4928
4937
  }
@@ -5332,10 +5341,11 @@ let DropDownList = class DropDownList extends DropDownBase {
5332
5341
  this.skeletonCount = this.totalItemCount < (this.itemCount * 2) && ((!(this.dataSource instanceof DataManager)) ||
5333
5342
  ((this.dataSource instanceof DataManager) && (this.totalItemCount <= this.itemCount))) ? 0 : this.skeletonCount;
5334
5343
  if (!this.list.querySelector('.e-virtual-ddl-content')) {
5335
- this.list.appendChild(this.createElement('div', {
5336
- className: 'e-virtual-ddl-content',
5337
- styles: this.getTransformValues()
5338
- })).appendChild(this.list.querySelector('.e-list-parent'));
5344
+ const virtualContentElement = this.createElement('div', {
5345
+ className: 'e-virtual-ddl-content'
5346
+ });
5347
+ virtualContentElement.style.cssText = this.getTransformValues();
5348
+ this.list.appendChild(virtualContentElement).appendChild(this.list.querySelector('.e-list-parent'));
5339
5349
  }
5340
5350
  else {
5341
5351
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -5345,10 +5355,12 @@ let DropDownList = class DropDownList extends DropDownBase {
5345
5355
  this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
5346
5356
  this.virtualItemCount = this.itemCount;
5347
5357
  if (!this.list.querySelector('.e-virtual-ddl')) {
5348
- const virualElement = this.createElement('div', {
5349
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
5358
+ const virtualElement = this.createElement('div', {
5359
+ id: this.element.id + '_popup',
5360
+ className: 'e-virtual-ddl'
5350
5361
  });
5351
- popupEle.querySelector('.e-dropdownbase').appendChild(virualElement);
5362
+ virtualElement.style.cssText = this.GetVirtualTrackHeight();
5363
+ popupEle.querySelector('.e-dropdownbase').appendChild(virtualElement);
5352
5364
  }
5353
5365
  else {
5354
5366
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -5518,7 +5530,7 @@ let DropDownList = class DropDownList extends DropDownBase {
5518
5530
  // Add the resizer div to the popup
5519
5531
  if (this.list && this.list.parentElement) {
5520
5532
  this.list.parentElement.classList.add('e-resize');
5521
- if (this.popupHeight.toString().toLowerCase() !== 'auto' && initialPopupHeight > parseInt(this.popupHeight.toString(), 10)) {
5533
+ if (this.popupHeight.toString().toLowerCase() !== 'auto' && initialPopupHeight >= (parseInt(this.popupHeight.toString(), 10) - 2)) {
5522
5534
  this.list.parentElement.style.height = '100%';
5523
5535
  }
5524
5536
  this.list.parentElement.style.paddingBottom = (this.getModuleName() === 'dropdownlist' && this.allowFiltering && this.searchBoxHeight) ? (this.searchBoxHeight + resizePaddingBottom).toString() + 'px' : resizePaddingBottom.toString() + 'px';
@@ -6076,8 +6088,10 @@ let DropDownList = class DropDownList extends DropDownBase {
6076
6088
  }
6077
6089
  else if (!this.list.querySelector('.e-virtual-ddl') && this.list.parentElement) {
6078
6090
  const virualElement = this.createElement('div', {
6079
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
6091
+ id: this.element.id + '_popup',
6092
+ className: 'e-virtual-ddl'
6080
6093
  });
6094
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
6081
6095
  this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);
6082
6096
  }
6083
6097
  if (this.getModuleName() !== 'autocomplete' && this.totalItemCount !== 0 && this.totalItemCount > (this.itemCount * 2)) {
@@ -8518,7 +8532,7 @@ let DropDownTree = class DropDownTree extends Component {
8518
8532
  this.dataBind();
8519
8533
  }
8520
8534
  else if (htmlAttr === 'style') {
8521
- this.inputWrapper.setAttribute('style', this.htmlAttributes[`${htmlAttr}`]);
8535
+ this.inputWrapper.style.cssText = this.htmlAttributes[`${htmlAttr}`];
8522
8536
  }
8523
8537
  else {
8524
8538
  const defaultAttr = ['title', 'id', 'placeholder', 'aria-placeholder',
@@ -8805,6 +8819,9 @@ let DropDownTree = class DropDownTree extends Component {
8805
8819
  this.trigger('beforeOpen', args, (args) => {
8806
8820
  if (!args.cancel) {
8807
8821
  addClass([this.inputWrapper], [ICONANIMATION]);
8822
+ if (this.isReact && this.isFilterRestore) {
8823
+ this.treeObj.refresh();
8824
+ }
8808
8825
  if (this.isFirstRender) {
8809
8826
  this.popupEle = this.createElement('div', {
8810
8827
  id: this.element.id + '_options', className: POPUP_CLASS + ' ' + (this.cssClass != null ? this.cssClass : '')
@@ -8817,7 +8834,6 @@ let DropDownTree = class DropDownTree extends Component {
8817
8834
  else {
8818
8835
  this.popupEle = this.popupObj.element;
8819
8836
  if (this.isReact && this.isFilterRestore) {
8820
- this.treeObj.refresh();
8821
8837
  this.isFilteredData = true;
8822
8838
  this.popupEle.removeChild(this.filterContainer);
8823
8839
  }
@@ -8875,7 +8891,7 @@ let DropDownTree = class DropDownTree extends Component {
8875
8891
  this.updateFocus(focusedElement);
8876
8892
  }
8877
8893
  if (this.treeObj.checkedNodes.length > 0 && !this.isFilterRestore) {
8878
- const nodes = this.treeObj.element.querySelectorAll('li');
8894
+ const nodes = this.treeObj.element.querySelectorAll('li:not(.e-disable)');
8879
8895
  const checkedNodes = this.treeObj.element.querySelectorAll('li[aria-checked=true]');
8880
8896
  if ((checkedNodes.length === nodes.length) && this.checkBoxElement) {
8881
8897
  const wrap = closest(this.checkBoxElement, '.' + CHECKBOXWRAP);
@@ -9335,7 +9351,7 @@ let DropDownTree = class DropDownTree extends Component {
9335
9351
  this.ensurePlaceHolder();
9336
9352
  }
9337
9353
  if (this.showSelectAll && this.checkBoxElement) {
9338
- const nodes = this.treeObj.element.querySelectorAll('li');
9354
+ const nodes = this.treeObj.element.querySelectorAll('li:not(.e-disable)');
9339
9355
  const checkedNodes = this.treeObj.element.querySelectorAll('li[aria-checked=true]');
9340
9356
  const wrap = closest(this.checkBoxElement, '.' + CHECKBOXWRAP);
9341
9357
  if ((wrap && args.action === 'uncheck' && (args.isInteracted || checkedNodes.length === 0 ||
@@ -10802,7 +10818,8 @@ let ComboBox = class ComboBox extends DropDownList {
10802
10818
  onBlurHandler(e) {
10803
10819
  const inputValue = this.inputElement && this.inputElement.value === '' ?
10804
10820
  null : this.inputElement && this.inputElement.value;
10805
- if (!isNullOrUndefined(this.listData) && !isNullOrUndefined(inputValue) && inputValue !== this.text) {
10821
+ const text = !isNullOrUndefined(this.text) ? this.text.replace(/\r\n|\n|\r/g, '') : this.text;
10822
+ if (!isNullOrUndefined(this.listData) && !isNullOrUndefined(inputValue) && inputValue !== text) {
10806
10823
  this.customValue(e);
10807
10824
  }
10808
10825
  super.onBlurHandler(e);
@@ -10927,6 +10944,9 @@ let ComboBox = class ComboBox extends DropDownList {
10927
10944
  if ((this.value === dataItem.value && this.text !== dataItem.text)
10928
10945
  || (this.value !== dataItem.value && this.text === dataItem.text)) {
10929
10946
  this.setProperties({ 'text': dataItem.text ? dataItem.text.toString() : dataItem.text, 'value': value });
10947
+ if (isNullOrUndefined(li)) {
10948
+ this.previousValue = this.value;
10949
+ }
10930
10950
  }
10931
10951
  }
10932
10952
  }
@@ -11603,8 +11623,9 @@ let ComboBox = class ComboBox extends DropDownList {
11603
11623
  this.removeFillSelection();
11604
11624
  }
11605
11625
  const dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();
11626
+ const text = !isNullOrUndefined(dataItem.text) ? dataItem.text.replace(/\r\n|\n|\r/g, '') : dataItem.text;
11606
11627
  const selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : null;
11607
- if (this.inputElement && dataItem.text === this.inputElement.value && !isNullOrUndefined(selected)) {
11628
+ if (this.inputElement && text === this.inputElement.value && !isNullOrUndefined(selected)) {
11608
11629
  if (this.isSelected) {
11609
11630
  this.onChangeEvent(e);
11610
11631
  this.isSelectCustom = false;
@@ -11980,15 +12001,16 @@ let AutoComplete = class AutoComplete extends ComboBox {
11980
12001
  if (this.enableVirtualization && !isNoDataElement) {
11981
12002
  if (!this.list.querySelector('.e-virtual-ddl-content') && this.list.querySelector('.e-list-parent')) {
11982
12003
  const virtualElement = this.createElement('div', {
11983
- className: 'e-virtual-ddl-content',
11984
- styles: this.getTransformValues()
12004
+ className: 'e-virtual-ddl-content'
11985
12005
  });
12006
+ virtualElement.style.cssText = this.getTransformValues();
11986
12007
  this.list.appendChild(virtualElement).appendChild(this.list.querySelector('.e-list-parent'));
11987
12008
  }
11988
12009
  if (!this.list.querySelector('.e-virtual-ddl') && this.list.parentElement) {
11989
12010
  const virtualElement = this.createElement('div', {
11990
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
12011
+ id: this.element.id + '_popup', className: 'e-virtual-ddl'
11991
12012
  });
12013
+ virtualElement.style.cssText = this.GetVirtualTrackHeight();
11992
12014
  this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virtualElement);
11993
12015
  }
11994
12016
  }
@@ -12767,8 +12789,10 @@ let MultiSelect = class MultiSelect extends DropDownBase {
12767
12789
  }
12768
12790
  if (!this.list.querySelector('.e-virtual-ddl')) {
12769
12791
  const virualElement = this.createElement('div', {
12770
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
12792
+ id: this.element.id + '_popup',
12793
+ className: 'e-virtual-ddl'
12771
12794
  });
12795
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
12772
12796
  this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);
12773
12797
  }
12774
12798
  else {
@@ -13126,7 +13150,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13126
13150
  if (!this.enableVirtualization || (this.enableVirtualization && (!(this.dataSource instanceof DataManager)))) {
13127
13151
  this.initialValueUpdate();
13128
13152
  }
13129
- else {
13153
+ else if (!this.isRemoveSelection) {
13130
13154
  this.initialValueUpdate(this.listData, true);
13131
13155
  }
13132
13156
  this.initialUpdate();
@@ -13466,15 +13490,18 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13466
13490
  this.UpdateSkeleton();
13467
13491
  if ((isNoData || this.allowCustomValue) && !this.list.classList.contains(dropDownBaseClasses.noData)) {
13468
13492
  if (!this.list.querySelector('.e-virtual-ddl-content')) {
13469
- this.list.appendChild(this.createElement('div', {
13470
- className: 'e-virtual-ddl-content',
13471
- styles: this.getTransformValues()
13472
- })).appendChild(this.list.querySelector('.e-list-parent'));
13493
+ const contentElement = this.createElement('div', {
13494
+ className: 'e-virtual-ddl-content'
13495
+ });
13496
+ contentElement.style.cssText = this.getTransformValues();
13497
+ this.list.appendChild(contentElement).appendChild(this.list.querySelector('.e-list-parent'));
13473
13498
  }
13474
13499
  if (!this.list.querySelector('.e-virtual-ddl')) {
13475
13500
  const virualElement = this.createElement('div', {
13476
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
13501
+ id: this.element.id + '_popup',
13502
+ className: 'e-virtual-ddl'
13477
13503
  });
13504
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
13478
13505
  document.getElementsByClassName('e-multi-select-list-wrapper')[0].querySelector('.e-dropdownbase').appendChild(virualElement);
13479
13506
  }
13480
13507
  }
@@ -13506,18 +13533,21 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13506
13533
  if (this.enableVirtualization && (isNoData || this.allowCustomValue) &&
13507
13534
  !this.list.classList.contains(dropDownBaseClasses.noData)) {
13508
13535
  if (!this.list.querySelector('.e-virtual-ddl-content')) {
13509
- this.list.appendChild(this.createElement('div', {
13510
- className: 'e-virtual-ddl-content',
13511
- styles: this.getTransformValues()
13512
- })).appendChild(this.list.querySelector('.e-list-parent'));
13536
+ const contentElement = this.createElement('div', {
13537
+ className: 'e-virtual-ddl-content'
13538
+ });
13539
+ contentElement.style.cssText = this.getTransformValues();
13540
+ this.list.appendChild(contentElement).appendChild(this.list.querySelector('.e-list-parent'));
13513
13541
  }
13514
13542
  if (this.mode !== 'CheckBox') {
13515
13543
  this.totalItemCount = this.value && this.value.length ? this.totalItemCount - this.value.length : this.totalItemCount;
13516
13544
  }
13517
13545
  if (!this.list.querySelector('.e-virtual-ddl')) {
13518
13546
  const virualElement = this.createElement('div', {
13519
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
13547
+ id: this.element.id + '_popup',
13548
+ className: 'e-virtual-ddl'
13520
13549
  });
13550
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
13521
13551
  document.getElementsByClassName('e-multi-select-list-wrapper')[0].querySelector('.e-dropdownbase').appendChild(virualElement);
13522
13552
  }
13523
13553
  }
@@ -14618,8 +14648,10 @@ let MultiSelect = class MultiSelect extends DropDownBase {
14618
14648
  }
14619
14649
  else if (!this.list.querySelector('.e-virtual-ddl') && this.skeletonCount > 0) {
14620
14650
  const virualElement = this.createElement('div', {
14621
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
14651
+ id: this.element.id + '_popup',
14652
+ className: 'e-virtual-ddl'
14622
14653
  });
14654
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
14623
14655
  this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);
14624
14656
  }
14625
14657
  }
@@ -15438,10 +15470,11 @@ let MultiSelect = class MultiSelect extends DropDownBase {
15438
15470
  }
15439
15471
  if (this.enableVirtualization && !this.list.classList.contains(dropDownBaseClasses.noData)) {
15440
15472
  if (!this.list.querySelector('.e-virtual-ddl-content') && this.list.querySelector('.e-list-parent')) {
15441
- this.list.appendChild(this.createElement('div', {
15442
- className: 'e-virtual-ddl-content',
15443
- styles: this.getTransformValues()
15444
- })).appendChild(this.list.querySelector('.e-list-parent'));
15473
+ const contentElement = this.createElement('div', {
15474
+ className: 'e-virtual-ddl-content'
15475
+ });
15476
+ contentElement.style.cssText = this.getTransformValues();
15477
+ this.list.appendChild(contentElement).appendChild(this.list.querySelector('.e-list-parent'));
15445
15478
  }
15446
15479
  else if (this.list.querySelector('.e-virtual-ddl-content')) {
15447
15480
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -15455,8 +15488,10 @@ let MultiSelect = class MultiSelect extends DropDownBase {
15455
15488
  }
15456
15489
  if (!this.list.querySelector('.e-virtual-ddl')) {
15457
15490
  const virualElement = this.createElement('div', {
15458
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
15491
+ id: this.element.id + '_popup',
15492
+ className: 'e-virtual-ddl'
15459
15493
  });
15494
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
15460
15495
  this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);
15461
15496
  }
15462
15497
  else {
@@ -15693,8 +15728,10 @@ let MultiSelect = class MultiSelect extends DropDownBase {
15693
15728
  }
15694
15729
  else if (!this.list.querySelector('.e-virtual-ddl') && this.skeletonCount > 0) {
15695
15730
  const virualElement = this.createElement('div', {
15696
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
15731
+ id: this.element.id + '_popup',
15732
+ className: 'e-virtual-ddl'
15697
15733
  });
15734
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
15698
15735
  this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);
15699
15736
  }
15700
15737
  this.listData = currentData;
@@ -16645,8 +16682,10 @@ let MultiSelect = class MultiSelect extends DropDownBase {
16645
16682
  }
16646
16683
  if (!this.list.querySelector('.e-virtual-ddl')) {
16647
16684
  const virualElement = this.createElement('div', {
16648
- id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
16685
+ id: this.element.id + '_popup',
16686
+ className: 'e-virtual-ddl'
16649
16687
  });
16688
+ virualElement.style.cssText = this.GetVirtualTrackHeight();
16650
16689
  this.popupWrapper.querySelector('.e-dropdownbase').appendChild(virualElement);
16651
16690
  }
16652
16691
  else {
@@ -18115,11 +18154,13 @@ let MultiSelect = class MultiSelect extends DropDownBase {
18115
18154
  BOX_ELEMENT : '')
18116
18155
  });
18117
18156
  this.viewWrapper = this.createElement('span', {
18118
- className: DELIMITER_VIEW + ' ' + DELIMITER_WRAPPER, styles: 'display:none;'
18157
+ className: DELIMITER_VIEW + ' ' + DELIMITER_WRAPPER
18119
18158
  });
18159
+ this.viewWrapper.style.display = 'none';
18120
18160
  this.overAllClear = this.createElement('span', {
18121
- className: CLOSEICON_CLASS$1, styles: 'display:none;'
18161
+ className: CLOSEICON_CLASS$1
18122
18162
  });
18163
+ this.overAllClear.style.display = 'none';
18123
18164
  this.componentWrapper = this.createElement('div', { className: ELEMENT_WRAPPER });
18124
18165
  this.overAllWrapper = this.createElement('div', { className: OVER_ALL_WRAPPER });
18125
18166
  if (this.mode === 'CheckBox') {
@@ -18134,14 +18175,15 @@ let MultiSelect = class MultiSelect extends DropDownBase {
18134
18175
  this.popupWrapper.setAttribute('aria-label', this.element.id);
18135
18176
  this.popupWrapper.setAttribute('role', 'dialog');
18136
18177
  if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {
18137
- this.delimiterWrapper = this.createElement('span', { className: DELIMITER_WRAPPER, styles: 'display:none' });
18178
+ this.delimiterWrapper = this.createElement('span', { className: DELIMITER_WRAPPER });
18179
+ this.delimiterWrapper.style.display = 'none';
18138
18180
  this.componentWrapper.appendChild(this.delimiterWrapper);
18139
18181
  }
18140
18182
  else {
18141
18183
  this.chipCollectionWrapper = this.createElement('span', {
18142
- className: CHIP_WRAPPER$1,
18143
- styles: 'display:none'
18184
+ className: CHIP_WRAPPER$1
18144
18185
  });
18186
+ this.chipCollectionWrapper.style.display = 'none';
18145
18187
  if (this.mode === 'Default') {
18146
18188
  this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_default'));
18147
18189
  }
@@ -21634,8 +21676,14 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
21634
21676
  text = value;
21635
21677
  }
21636
21678
  if (typeof (text) === 'string') {
21637
- text = text.split('\\').join('\\\\');
21638
- li = this.list.querySelector('[data-value="' + text.replace(/"/g, '\\"') + '"]');
21679
+ if (text.indexOf('\n') !== -1) {
21680
+ const txt = CSS.escape(text);
21681
+ li = this.list.querySelector('[data-value="' + txt + '"]');
21682
+ }
21683
+ else {
21684
+ text = text.split('\\').join('\\\\');
21685
+ li = this.list.querySelector('[data-value="' + text.replace(/"/g, '\\"') + '"]');
21686
+ }
21639
21687
  }
21640
21688
  else {
21641
21689
  li = this.list.querySelector('[data-value="' + text + '"]');
@@ -22126,6 +22174,9 @@ let Mention = class Mention extends DropDownBase {
22126
22174
  case 'showMentionChar':
22127
22175
  this.showMentionChar = newProp.showMentionChar;
22128
22176
  break;
22177
+ case 'requireLeadingSpace':
22178
+ this.requireLeadingSpace = newProp.requireLeadingSpace;
22179
+ break;
22129
22180
  case 'cssClass':
22130
22181
  this.updateCssClass(newProp.cssClass, oldProp.cssClass);
22131
22182
  break;
@@ -22419,7 +22470,18 @@ let Mention = class Mention extends DropDownBase {
22419
22470
  rangetextContent = this.range.startContainer.textContent.split('');
22420
22471
  }
22421
22472
  const currentRange = this.getTextRange();
22422
- const lastWordRange = this.getLastLetter(currentRange);
22473
+ // eslint-disable-next-line security/detect-non-literal-regexp
22474
+ const mentionRegex = new RegExp(this.mentionChar.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '\\s');
22475
+ const isValid = currentRange && mentionRegex.test(currentRange) ? false : true;
22476
+ let lastWordRange = this.getLastLetter(currentRange);
22477
+ const previousChar = currentRange ? currentRange.charAt(Math.max(0, currentRange.indexOf(this.mentionChar) - 1)) : '';
22478
+ if (isValid && this.allowSpaces && currentRange && currentRange.includes(this.mentionChar) && currentRange.split(this.mentionChar).pop() !== ''
22479
+ && (!this.requireLeadingSpace || (this.requireLeadingSpace && (previousChar === ' ' || currentRange.indexOf(this.mentionChar) === 0)))) {
22480
+ lastWordRange = this.mentionChar + currentRange.split(this.mentionChar).pop();
22481
+ }
22482
+ if (!this.requireLeadingSpace && lastWordRange && lastWordRange.includes(this.mentionChar)) {
22483
+ lastWordRange = this.mentionChar + lastWordRange.split(this.mentionChar).pop();
22484
+ }
22423
22485
  const lastTwoLetters = this.mentionChar.toString() + this.mentionChar.toString();
22424
22486
  // eslint-disable-next-line security/detect-non-literal-regexp
22425
22487
  const Regex = new RegExp(this.mentionChar.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'), 'g');
@@ -22431,19 +22493,19 @@ let Mention = class Mention extends DropDownBase {
22431
22493
  this.hidePopup();
22432
22494
  return;
22433
22495
  }
22434
- if ((!currentRange || !lastWordRange) || e.code === 'Enter' || e.keyCode === 27 ||
22496
+ if (((!currentRange || !lastWordRange) || (!lastWordRange.includes(this.mentionChar) && !this.requireLeadingSpace)) || e.code === 'Enter' || e.keyCode === 27 ||
22435
22497
  (lastWordRange.match(Regex) && lastWordRange.match(Regex).length > 1) ||
22436
22498
  (this.isContentEditable(this.inputElement) && this.range.startContainer &&
22437
22499
  this.range.startContainer.previousElementSibling && this.range.startContainer.previousElementSibling.tagName !== 'BR' && this.range.startContainer.textContent.split('').length > 0 &&
22438
22500
  (rangetextContent.length === 1 || rangetextContent[rangetextContent.length - 2].indexOf('') === -1 ||
22439
22501
  this.range.startContainer.nodeType === 1))) {
22440
- if (this.isPopupOpen && this.allowSpaces && currentRange && currentRange.trim() !== '' && charRegex.test(currentRange) && currentRange.indexOf(this.mentionChar) !== -1
22502
+ if (isValid && this.isPopupOpen && this.allowSpaces && currentRange && currentRange.trim() !== '' && charRegex.test(currentRange) && currentRange.indexOf(this.mentionChar) !== -1
22441
22503
  && !this.isMatchedText() && (currentRange.length > 1 && currentRange.replace(/\u00A0/g, ' ').charAt(currentRange.length - 2) !== ' ') &&
22442
22504
  (this.list && this.list.querySelectorAll('ul').length > 0) && e.code !== 'Enter') {
22443
22505
  this.queryString = currentRange.substring(currentRange.lastIndexOf(this.mentionChar) + 1).replace('\u00a0', ' ');
22444
22506
  this.searchLists(e);
22445
22507
  }
22446
- else if (this.isPopupOpen && (!this.allowSpaces || !lastWordRange) && (e.code !== 'ArrowDown' && e.code !== 'ArrowUp')) {
22508
+ else if (!this.requireLeadingSpace || this.isPopupOpen && (!this.allowSpaces || !lastWordRange) && (e.code !== 'ArrowDown' && e.code !== 'ArrowUp')) {
22447
22509
  this.hidePopup();
22448
22510
  this.lineBreak = true;
22449
22511
  }
@@ -22453,7 +22515,9 @@ let Mention = class Mention extends DropDownBase {
22453
22515
  return;
22454
22516
  }
22455
22517
  if (lastWordRange.includes(this.mentionChar)) {
22456
- this.queryString = lastWordRange.replace(this.mentionChar, '');
22518
+ this.queryString = !this.requireLeadingSpace
22519
+ ? lastWordRange.substring(lastWordRange.lastIndexOf(this.mentionChar) + 1).trim()
22520
+ : lastWordRange.replace(this.mentionChar, '');
22457
22521
  }
22458
22522
  if (this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0) &&
22459
22523
  this.queryString !== '' && e.keyCode !== 38 && e.keyCode !== 40 && !this.lineBreak) {
@@ -22468,9 +22532,10 @@ let Mention = class Mention extends DropDownBase {
22468
22532
  }
22469
22533
  }
22470
22534
  }
22471
- else if (lastWordRange.indexOf(this.mentionChar) === 0 && !this.isPopupOpen && e.keyCode !== 8 && (!this.popupObj ||
22472
- (isNullOrUndefined(this.target) && !document.body.contains(this.popupObj.element) ||
22473
- !isNullOrUndefined(this.target) && document.body.contains(this.popupObj.element)))) {
22535
+ else if ((!this.requireLeadingSpace ? lastWordRange.includes(this.mentionChar)
22536
+ : lastWordRange.indexOf(this.mentionChar) === 0) && !this.isPopupOpen && e.keyCode !== 8 &&
22537
+ (!this.popupObj || ((isNullOrUndefined(this.target) && !document.body.contains(this.popupObj.element)) ||
22538
+ (!isNullOrUndefined(this.target) && document.body.contains(this.popupObj.element))))) {
22474
22539
  if (this.initRemoteRender && this.list && this.list.classList.contains('e-nodata')) {
22475
22540
  this.searchLists(e);
22476
22541
  }
@@ -23719,6 +23784,9 @@ __decorate$7([
23719
23784
  __decorate$7([
23720
23785
  Property(true)
23721
23786
  ], Mention.prototype, "ignoreCase", void 0);
23787
+ __decorate$7([
23788
+ Property(true)
23789
+ ], Mention.prototype, "requireLeadingSpace", void 0);
23722
23790
  __decorate$7([
23723
23791
  Property(false)
23724
23792
  ], Mention.prototype, "highlight", void 0);