@syncfusion/ej2-dropdowns 29.1.37 → 29.1.40

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 (93) 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 +81 -23
  5. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es5.js +87 -29
  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 +8 -8
  12. package/src/common/incremental-search.js +1 -1
  13. package/src/common/virtual-scroll.js +14 -6
  14. package/src/drop-down-base/drop-down-base.d.ts +2 -0
  15. package/src/drop-down-base/drop-down-base.js +30 -10
  16. package/src/mention/mention.js +6 -1
  17. package/src/multi-select/multi-select.d.ts +1 -1
  18. package/src/multi-select/multi-select.js +36 -11
  19. package/styles/bds-lite.css +5 -0
  20. package/styles/bds.css +5 -0
  21. package/styles/bootstrap-dark-lite.css +5 -0
  22. package/styles/bootstrap-dark.css +5 -0
  23. package/styles/bootstrap-lite.css +12 -0
  24. package/styles/bootstrap.css +12 -0
  25. package/styles/bootstrap4-lite.css +12 -0
  26. package/styles/bootstrap4.css +12 -0
  27. package/styles/bootstrap5-dark-lite.css +12 -0
  28. package/styles/bootstrap5-dark.css +12 -0
  29. package/styles/bootstrap5-lite.css +12 -0
  30. package/styles/bootstrap5.3-lite.css +12 -0
  31. package/styles/bootstrap5.3.css +12 -0
  32. package/styles/bootstrap5.css +12 -0
  33. package/styles/drop-down-list/_bootstrap-dark-definition.scss +1 -0
  34. package/styles/drop-down-list/_bootstrap-definition.scss +1 -0
  35. package/styles/drop-down-list/_bootstrap4-definition.scss +1 -0
  36. package/styles/drop-down-list/_bootstrap5-definition.scss +1 -0
  37. package/styles/drop-down-list/_bootstrap5.3-definition.scss +1 -0
  38. package/styles/drop-down-list/_fabric-dark-definition.scss +1 -0
  39. package/styles/drop-down-list/_fabric-definition.scss +1 -0
  40. package/styles/drop-down-list/_highcontrast-definition.scss +1 -0
  41. package/styles/drop-down-list/_highcontrast-light-definition.scss +1 -0
  42. package/styles/drop-down-list/_layout.scss +20 -0
  43. package/styles/drop-down-list/bds.css +5 -0
  44. package/styles/drop-down-list/bootstrap-dark.css +5 -0
  45. package/styles/drop-down-list/bootstrap.css +12 -0
  46. package/styles/drop-down-list/bootstrap4.css +12 -0
  47. package/styles/drop-down-list/bootstrap5-dark.css +12 -0
  48. package/styles/drop-down-list/bootstrap5.3.css +12 -0
  49. package/styles/drop-down-list/bootstrap5.css +12 -0
  50. package/styles/drop-down-list/fabric-dark.css +5 -0
  51. package/styles/drop-down-list/fabric.css +10 -0
  52. package/styles/drop-down-list/fluent-dark.css +5 -0
  53. package/styles/drop-down-list/fluent.css +5 -0
  54. package/styles/drop-down-list/fluent2.css +5 -0
  55. package/styles/drop-down-list/highcontrast-light.css +5 -0
  56. package/styles/drop-down-list/highcontrast.css +10 -0
  57. package/styles/drop-down-list/material-dark.css +5 -0
  58. package/styles/drop-down-list/material.css +5 -0
  59. package/styles/drop-down-list/material3-dark.css +5 -0
  60. package/styles/drop-down-list/material3.css +5 -0
  61. package/styles/drop-down-list/tailwind-dark.css +5 -0
  62. package/styles/drop-down-list/tailwind.css +5 -0
  63. package/styles/drop-down-list/tailwind3.css +5 -0
  64. package/styles/fabric-dark-lite.css +5 -0
  65. package/styles/fabric-dark.css +5 -0
  66. package/styles/fabric-lite.css +10 -0
  67. package/styles/fabric.css +10 -0
  68. package/styles/fluent-dark-lite.css +5 -0
  69. package/styles/fluent-dark.css +5 -0
  70. package/styles/fluent-lite.css +5 -0
  71. package/styles/fluent.css +5 -0
  72. package/styles/fluent2-lite.css +5 -0
  73. package/styles/fluent2.css +5 -0
  74. package/styles/highcontrast-light-lite.css +5 -0
  75. package/styles/highcontrast-light.css +5 -0
  76. package/styles/highcontrast-lite.css +10 -0
  77. package/styles/highcontrast.css +10 -0
  78. package/styles/material-dark-lite.css +5 -0
  79. package/styles/material-dark.css +5 -0
  80. package/styles/material-lite.css +14 -0
  81. package/styles/material.css +14 -0
  82. package/styles/material3-dark-lite.css +5 -0
  83. package/styles/material3-dark.css +5 -0
  84. package/styles/material3-lite.css +5 -0
  85. package/styles/material3.css +5 -0
  86. package/styles/multi-select/_material-definition.scss +9 -0
  87. package/styles/multi-select/material.css +9 -0
  88. package/styles/tailwind-dark-lite.css +5 -0
  89. package/styles/tailwind-dark.css +5 -0
  90. package/styles/tailwind-lite.css +5 -0
  91. package/styles/tailwind.css +5 -0
  92. package/styles/tailwind3-lite.css +5 -0
  93. package/styles/tailwind3.css +5 -0
@@ -149,7 +149,7 @@ function Search(inputVal, items, searchType, ignoreCase, dataSource, fields, typ
149
149
  dataSource.filter((data) => {
150
150
  Array.prototype.slice.call(fieldValue).forEach((value) => {
151
151
  /* eslint-disable security/detect-object-injection */
152
- if ((type === 'object' && !data.isHeader && checkField.textContent.toString().indexOf(data[value]) !== -1 && checkField.getAttribute('data-value') === data[fields.value].toString()) ||
152
+ if ((type === 'object' && !data.isHeader && checkField.textContent.toString().indexOf(data[value]) !== -1 && data[fields.value] != null && checkField.getAttribute('data-value') === data[fields.value].toString()) ||
153
153
  (type === 'string' && checkField.textContent.toString().indexOf(data) !== -1)) {
154
154
  filterValue = type === 'object' ? data[value] : data;
155
155
  }
@@ -400,6 +400,10 @@ class VirtualScroll {
400
400
  if (this.parent.viewPortInfo.startIndex < this.parent.value.length) {
401
401
  endIndex = this.parent.viewPortInfo.endIndex - this.parent.value.length;
402
402
  if (this.parent.viewPortInfo.startIndex === 0) {
403
+ const oldUlElement = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
404
+ if (oldUlElement) {
405
+ this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement);
406
+ }
403
407
  this.parent.updateVirtualReOrderList(true);
404
408
  if (this.parent.value.length < this.parent.itemCount && this.parent.value.length !== this.parent.totalItemCount) {
405
409
  const oldUlElement = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
@@ -440,6 +444,10 @@ class VirtualScroll {
440
444
  query = query.skip(0).take(this.parent.itemCount - (this.parent.value.length - this.parent.viewPortInfo.startIndex));
441
445
  this.parent.appendUncheckList = true;
442
446
  this.parent.setCurrentView = false;
447
+ const oldUlElement = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
448
+ if (oldUlElement) {
449
+ this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement);
450
+ }
443
451
  this.parent.resetList(this.parent.dataSource, this.parent.fields, query);
444
452
  isListUpdated = false;
445
453
  this.parent.appendUncheckList = this.parent.dataSource instanceof DataManager ? this.parent.appendUncheckList : false;
@@ -889,6 +897,7 @@ let DropDownBase = class DropDownBase extends Component {
889
897
  this.skeletonCount = 32;
890
898
  this.isVirtualTrackHeight = false;
891
899
  this.virtualSelectAll = false;
900
+ this.isVirtualReorder = false;
892
901
  this.incrementalQueryString = '';
893
902
  this.incrementalEndIndex = 0;
894
903
  this.incrementalStartIndex = 0;
@@ -1581,7 +1590,7 @@ let DropDownBase = class DropDownBase extends Component {
1581
1590
  const newQuery = this.getQuery(eventArgs.query);
1582
1591
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1583
1592
  if (this.isVirtualizationEnabled && (listItems.count !== 0 &&
1584
- listItems.count < (this.itemCount * 2))) {
1593
+ listItems.count < (this.itemCount * 2)) && !this.appendUncheckList) {
1585
1594
  if (newQuery) {
1586
1595
  for (let queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
1587
1596
  if (newQuery.queries[queryElements].fn === 'onTake') {
@@ -1890,12 +1899,9 @@ let DropDownBase = class DropDownBase extends Component {
1890
1899
  if (this.sortOrder !== 'None') {
1891
1900
  dataSource = this.getSortedDataSource(dataSource);
1892
1901
  }
1893
- if (this.element.querySelector('optgroup') && this.isGroupChecking && this.getModuleName() === 'multiselect') {
1894
- dataSource = ListBase.groupDataSource(dataSource, fields, this.sortOrder);
1895
- }
1896
- else {
1897
- dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);
1898
- }
1902
+ const fieldSet = fields.properties ||
1903
+ fields;
1904
+ dataSource = ListBase.groupDataSource(dataSource, fieldSet, this.sortOrder);
1899
1905
  }
1900
1906
  addClass([this.list], dropDownBaseClasses.grouping);
1901
1907
  }
@@ -2081,7 +2087,7 @@ let DropDownBase = class DropDownBase extends Component {
2081
2087
  let oldUlElement = this.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
2082
2088
  const virtualUlElement = this.list.querySelector('.e-virtual-ddl-content');
2083
2089
  const isRemovedUlelement = false;
2084
- if (!oldUlElement && this.list.querySelector('.e-list-parent' + '.e-reorder')) {
2090
+ if ((!oldUlElement && this.list.querySelector('.e-list-parent' + '.e-reorder')) || (oldUlElement && this.isVirtualReorder && this.list.querySelector('.e-list-parent' + '.e-reorder'))) {
2085
2091
  oldUlElement = this.list.querySelector('.e-list-parent' + '.e-reorder');
2086
2092
  }
2087
2093
  if ((listData.length >= this.virtualizedItemsCount && oldUlElement && virtualUlElement) || (oldUlElement && virtualUlElement && this.isAllowFiltering) || (oldUlElement && virtualUlElement && (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'multiselect')) || isRemovedUlelement) {
@@ -2177,7 +2183,9 @@ let DropDownBase = class DropDownBase extends Component {
2177
2183
  }
2178
2184
  setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });
2179
2185
  const firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');
2180
- this.fixedHeaderElement.innerHTML = firstLi.innerHTML;
2186
+ if (!isNullOrUndefined(firstLi)) {
2187
+ this.fixedHeaderElement.innerHTML = firstLi.innerHTML;
2188
+ }
2181
2189
  }
2182
2190
  getSortedDataSource(dataSource) {
2183
2191
  if (dataSource && this.sortOrder !== 'None') {
@@ -2402,7 +2410,11 @@ let DropDownBase = class DropDownBase extends Component {
2402
2410
  const group = this.element.querySelector('select>optgroup');
2403
2411
  if ((this.fields.groupBy || !isNullOrUndefined(group)) && !this.isGroupChecking) {
2404
2412
  EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);
2405
- EventHandler.add(document, 'scroll', this.updateGroupFixedHeader, this);
2413
+ const elements = this.getScrollableParent();
2414
+ for (let i = 0; i < elements.length; i++) {
2415
+ const ele = elements[i];
2416
+ EventHandler.add(ele, 'scroll', this.updateGroupFixedHeader, this);
2417
+ }
2406
2418
  }
2407
2419
  if (this.getModuleName() === 'dropdownbase') {
2408
2420
  if (this.element.getAttribute('tabindex')) {
@@ -2420,6 +2432,22 @@ let DropDownBase = class DropDownBase extends Component {
2420
2432
  this.initialize(e);
2421
2433
  }
2422
2434
  }
2435
+ getScrollableParent() {
2436
+ const eleStyle = getComputedStyle(this.element);
2437
+ const scrollParents = [];
2438
+ const overflowRegex = /(auto|scroll)/;
2439
+ let parent = this.element.parentElement;
2440
+ while (parent && parent.tagName !== 'HTML') {
2441
+ const parentStyle = getComputedStyle(parent);
2442
+ if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')
2443
+ && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {
2444
+ scrollParents.push(parent);
2445
+ }
2446
+ parent = parent.parentElement;
2447
+ }
2448
+ scrollParents.push(document);
2449
+ return scrollParents;
2450
+ }
2423
2451
  removeScrollEvent() {
2424
2452
  if (this.list) {
2425
2453
  EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);
@@ -12578,7 +12606,6 @@ let MultiSelect = class MultiSelect extends DropDownBase {
12578
12606
  this.isBlurDispatching = false;
12579
12607
  this.isFilterPrevented = false;
12580
12608
  this.isFilteringAction = false;
12581
- this.isVirtualReorder = false;
12582
12609
  this.isValidKey = false;
12583
12610
  this.selectAllEventData = [];
12584
12611
  this.selectAllEventEle = [];
@@ -13280,11 +13307,10 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13280
13307
  }
13281
13308
  if ((!this.enableVirtualization && ((searchCount === searchActiveCount || searchActiveCount === this.maximumSelectionLength)
13282
13309
  && (this.mode === 'CheckBox' && this.showSelectAll))) || (this.enableVirtualization && this.mode === 'CheckBox' &&
13283
- this.showSelectAll && this.virtualSelectAll && this.value && this.value.length === this.totalItemCount)) {
13310
+ this.showSelectAll && this.value && this.value.length === this.totalItemCount)) {
13284
13311
  this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'check' });
13285
13312
  }
13286
- else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll) &&
13287
- ((!this.enableVirtualization) || (this.enableVirtualization && !this.virtualSelectAll))) {
13313
+ else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll)) {
13288
13314
  this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'uncheck' });
13289
13315
  }
13290
13316
  if (this.enableGroupCheckBox && this.fields.groupBy && !this.enableSelectionOrder) {
@@ -13429,7 +13455,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13429
13455
  }
13430
13456
  }
13431
13457
  }
13432
- if ((this.allowFiltering && isSkip) || !isReOrder || (!this.allowFiltering && isSkip) && !this.isVirtualReorder) {
13458
+ if (((this.allowFiltering && isSkip) || !isReOrder || (!this.allowFiltering && isSkip)) && !this.isVirtualReorder) {
13433
13459
  if (!isReOrder) {
13434
13460
  filterQuery.skip(this.viewPortInfo.startIndex);
13435
13461
  }
@@ -13593,10 +13619,13 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13593
13619
  if (this.allowObjectBinding) {
13594
13620
  const keys = this.listData && this.listData.length > 0 ? Object.keys(this.listData[0]) : this.firstItem ?
13595
13621
  Object.keys(this.firstItem) : Object.keys(dataItem);
13622
+ const isNumberType = (typeof getValue((this.fields.value ? this.fields.value : 'value'), customData)
13623
+ === 'number' && this.fields.value !== this.fields.text);
13596
13624
  // Create an empty object with predefined keys
13597
13625
  keys.forEach((key) => {
13598
13626
  emptyObject[key] = ((key === fields.value) || (key === fields.text)) ?
13599
- getValue(fields.value, dataItem) : null;
13627
+ ((key === fields.text) && isNumberType) ? getValue(fields.text, dataItem) :
13628
+ getValue(fields.value, dataItem) : null;
13600
13629
  });
13601
13630
  }
13602
13631
  dataItem = this.allowObjectBinding ? emptyObject : dataItem;
@@ -13698,6 +13727,17 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13698
13727
  if (!(this.targetElement() && this.targetElement() !== '')) {
13699
13728
  e.preventDefault();
13700
13729
  }
13730
+ this.checkAndScrollParent();
13731
+ }
13732
+ checkAndScrollParent() {
13733
+ const parentElement = this.overAllWrapper ? this.overAllWrapper.parentElement : null;
13734
+ if (parentElement) {
13735
+ const wrapperHeight = parseFloat(getComputedStyle(this.overAllWrapper).height);
13736
+ const parentMaxHeight = parseFloat(getComputedStyle(parentElement).maxHeight);
13737
+ if (!isNaN(parentMaxHeight) && wrapperHeight > parentMaxHeight) {
13738
+ parentElement.scrollTop = parentElement.scrollHeight;
13739
+ }
13740
+ }
13701
13741
  }
13702
13742
  enable(state) {
13703
13743
  if (state) {
@@ -13880,6 +13920,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
13880
13920
  else {
13881
13921
  this.trigger('change', eventArgs);
13882
13922
  }
13923
+ if (this.enableVirtualization && this.enableSelectionOrder && this.mode === 'CheckBox') {
13924
+ this.preventSetCurrentData = false;
13925
+ }
13883
13926
  this.updateTempValue();
13884
13927
  if (!this.changeOnBlur) {
13885
13928
  this.dispatchEvent(this.hiddenElement, 'change');
@@ -14411,6 +14454,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
14411
14454
  if (this.value && this.validateValues(this.value, temp)) {
14412
14455
  if (this.mode !== 'CheckBox') {
14413
14456
  this.value = temp;
14457
+ if (this.allowFiltering || this.allowCustomValue) {
14458
+ this.refreshListItems(null);
14459
+ }
14414
14460
  this.initialValueUpdate();
14415
14461
  }
14416
14462
  if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {
@@ -16431,6 +16477,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
16431
16477
  else {
16432
16478
  this.removeValue(value, e, length);
16433
16479
  }
16480
+ this.checkAndScrollParent();
16434
16481
  }
16435
16482
  updateListSelectEventCallback(value, li, e, currentText) {
16436
16483
  value = this.allowObjectBinding ? getValue(((this.fields.value) ? this.fields.value : ''), value) : value;
@@ -17010,7 +17057,8 @@ let MultiSelect = class MultiSelect extends DropDownBase {
17010
17057
  this.updateWrapperText(this.viewWrapper, data);
17011
17058
  }
17012
17059
  wrapperleng = this.viewWrapper.offsetWidth +
17013
- parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);
17060
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10) +
17061
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingLeft, 10);
17014
17062
  overAllContainer = this.componentWrapper.offsetWidth -
17015
17063
  parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -
17016
17064
  parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);
@@ -17022,14 +17070,16 @@ let MultiSelect = class MultiSelect extends DropDownBase {
17022
17070
  this.updateWrapperText(this.viewWrapper, temp);
17023
17071
  remaining = this.value.length - index;
17024
17072
  wrapperleng = this.viewWrapper.offsetWidth +
17025
- parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);
17073
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10) +
17074
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingLeft, 10);
17026
17075
  while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) > overAllContainer) && wrapperleng !== 0
17027
17076
  && this.viewWrapper.innerHTML !== '') {
17028
17077
  const textArr = [];
17029
17078
  this.viewWrapper.innerHTML = textArr.join(this.delimiterChar);
17030
17079
  remaining = this.value.length;
17031
17080
  wrapperleng = this.viewWrapper.offsetWidth +
17032
- parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);
17081
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10) +
17082
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingLeft, 10);
17033
17083
  }
17034
17084
  break;
17035
17085
  }
@@ -17059,13 +17109,13 @@ let MultiSelect = class MultiSelect extends DropDownBase {
17059
17109
  }
17060
17110
  checkClearIconWidth() {
17061
17111
  if (this.showClearButton) {
17062
- this.clearIconWidth = this.overAllClear.offsetWidth;
17112
+ this.clearIconWidth = parseInt(window.getComputedStyle(this.overAllClear).width, 10);
17063
17113
  }
17064
17114
  }
17065
17115
  updateRemainWidth(viewWrapper, totalWidth) {
17066
17116
  if (viewWrapper.classList.contains(TOTAL_COUNT_WRAPPER$1) && totalWidth < (viewWrapper.offsetWidth +
17067
17117
  parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10)
17068
- + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10))) {
17118
+ + parseInt(window.getComputedStyle(viewWrapper).paddingRight, 10))) {
17069
17119
  viewWrapper.style.width = totalWidth + 'px';
17070
17120
  }
17071
17121
  }
@@ -17324,6 +17374,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
17324
17374
  li[index - 1].classList.remove('e-item-focus');
17325
17375
  }
17326
17376
  }
17377
+ this.checkSelectAll();
17327
17378
  }, 0);
17328
17379
  }
17329
17380
  }
@@ -17350,6 +17401,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
17350
17401
  });
17351
17402
  }
17352
17403
  }
17404
+ this.checkSelectAll();
17353
17405
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
17354
17406
  const virtualTrackElement = this.list.getElementsByClassName('e-virtual-ddl')[0];
17355
17407
  if (virtualTrackElement) {
@@ -17548,6 +17600,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
17548
17600
  }
17549
17601
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17550
17602
  updateDataSource(prop) {
17603
+ this.checkAndResetCache();
17551
17604
  if (isNullOrUndefined(this.list)) {
17552
17605
  this.renderPopup();
17553
17606
  }
@@ -23424,7 +23477,12 @@ let Mention = class Mention extends DropDownBase {
23424
23477
  if (lastNode) {
23425
23478
  range = range.cloneRange();
23426
23479
  if (this.isRTE) {
23427
- range.setStart(lastNode, lastNode.textContent.length);
23480
+ if (lastNode.nodeType === 3) {
23481
+ range.setStart(lastNode, lastNode.textContent.length);
23482
+ }
23483
+ else {
23484
+ range.setStartAfter(lastNode);
23485
+ }
23428
23486
  }
23429
23487
  else {
23430
23488
  range.setStartAfter(lastNode);