@syncfusion/ej2-dropdowns 27.2.4 → 28.1.33

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 (223) hide show
  1. package/README.md +2 -2
  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 +507 -39
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +506 -37
  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 +13 -13
  13. package/src/auto-complete/auto-complete.js +5 -2
  14. package/src/combo-box/combo-box.js +1 -1
  15. package/src/common/incremental-search.d.ts +1 -1
  16. package/src/common/incremental-search.js +5 -1
  17. package/src/common/virtual-scroll.js +2 -1
  18. package/src/drop-down-base/drop-down-base.js +21 -3
  19. package/src/drop-down-list/drop-down-list-model.d.ts +31 -0
  20. package/src/drop-down-list/drop-down-list.d.ts +44 -1
  21. package/src/drop-down-list/drop-down-list.js +202 -13
  22. package/src/drop-down-tree/drop-down-tree.js +4 -1
  23. package/src/list-box/list-box.d.ts +4 -0
  24. package/src/list-box/list-box.js +9 -4
  25. package/src/mention/mention.js +6 -1
  26. package/src/multi-select/multi-select-model.d.ts +31 -0
  27. package/src/multi-select/multi-select.d.ts +45 -0
  28. package/src/multi-select/multi-select.js +251 -10
  29. package/styles/auto-complete/_tailwind3-definition.scss +2 -0
  30. package/styles/auto-complete/bds.css +75 -0
  31. package/styles/auto-complete/bds.scss +4 -0
  32. package/styles/auto-complete/highcontrast.css +1 -1
  33. package/styles/auto-complete/tailwind3.css +101 -0
  34. package/styles/auto-complete/tailwind3.scss +4 -0
  35. package/styles/bds-lite.css +3013 -0
  36. package/styles/bds-lite.scss +28 -0
  37. package/styles/bds.css +3855 -0
  38. package/styles/bds.scss +33 -0
  39. package/styles/bootstrap-dark-lite.css +41 -2
  40. package/styles/bootstrap-dark.css +41 -2
  41. package/styles/bootstrap-lite.css +30 -1
  42. package/styles/bootstrap.css +30 -1
  43. package/styles/bootstrap4-lite.css +30 -0
  44. package/styles/bootstrap4.css +30 -0
  45. package/styles/bootstrap5-dark-lite.css +30 -0
  46. package/styles/bootstrap5-dark.css +30 -0
  47. package/styles/bootstrap5-lite.css +30 -0
  48. package/styles/bootstrap5.3-lite.css +30 -3
  49. package/styles/bootstrap5.3.css +30 -3
  50. package/styles/bootstrap5.css +30 -0
  51. package/styles/combo-box/_tailwind3-definition.scss +2 -0
  52. package/styles/combo-box/bds.css +75 -0
  53. package/styles/combo-box/bds.scss +4 -0
  54. package/styles/combo-box/highcontrast.css +1 -1
  55. package/styles/combo-box/tailwind3.css +101 -0
  56. package/styles/combo-box/tailwind3.scss +4 -0
  57. package/styles/drop-down-base/_bigger.scss +3 -0
  58. package/styles/drop-down-base/_layout.scss +7 -0
  59. package/styles/drop-down-base/_tailwind3-definition.scss +98 -0
  60. package/styles/drop-down-base/bds.css +496 -0
  61. package/styles/drop-down-base/bds.scss +4 -0
  62. package/styles/drop-down-base/bootstrap-dark.css +4 -0
  63. package/styles/drop-down-base/bootstrap.css +4 -0
  64. package/styles/drop-down-base/bootstrap4.css +4 -0
  65. package/styles/drop-down-base/bootstrap5-dark.css +4 -0
  66. package/styles/drop-down-base/bootstrap5.3.css +4 -0
  67. package/styles/drop-down-base/bootstrap5.css +4 -0
  68. package/styles/drop-down-base/fabric-dark.css +4 -0
  69. package/styles/drop-down-base/fabric.css +4 -0
  70. package/styles/drop-down-base/fluent-dark.css +4 -0
  71. package/styles/drop-down-base/fluent.css +4 -0
  72. package/styles/drop-down-base/fluent2.css +9 -5
  73. package/styles/drop-down-base/highcontrast-light.css +4 -0
  74. package/styles/drop-down-base/highcontrast.css +4 -0
  75. package/styles/drop-down-base/material-dark.css +4 -0
  76. package/styles/drop-down-base/material.css +4 -0
  77. package/styles/drop-down-base/material3-dark.css +4 -0
  78. package/styles/drop-down-base/material3.css +4 -0
  79. package/styles/drop-down-base/tailwind-dark.css +4 -0
  80. package/styles/drop-down-base/tailwind.css +4 -0
  81. package/styles/drop-down-base/tailwind3.css +392 -0
  82. package/styles/drop-down-base/tailwind3.scss +4 -0
  83. package/styles/drop-down-list/_highcontrast-definition.scss +1 -1
  84. package/styles/drop-down-list/_layout.scss +18 -2
  85. package/styles/drop-down-list/_tailwind3-definition.scss +135 -0
  86. package/styles/drop-down-list/_theme.scss +3 -1
  87. package/styles/drop-down-list/bds.css +609 -0
  88. package/styles/drop-down-list/bds.scss +10 -0
  89. package/styles/drop-down-list/bootstrap-dark.css +18 -1
  90. package/styles/drop-down-list/bootstrap.css +13 -1
  91. package/styles/drop-down-list/bootstrap4.css +13 -0
  92. package/styles/drop-down-list/bootstrap5-dark.css +13 -0
  93. package/styles/drop-down-list/bootstrap5.3.css +13 -0
  94. package/styles/drop-down-list/bootstrap5.css +13 -0
  95. package/styles/drop-down-list/fabric-dark.css +18 -1
  96. package/styles/drop-down-list/fabric.css +13 -1
  97. package/styles/drop-down-list/fluent-dark.css +13 -1
  98. package/styles/drop-down-list/fluent.css +13 -1
  99. package/styles/drop-down-list/fluent2.css +13 -1
  100. package/styles/drop-down-list/highcontrast-light.css +9 -1
  101. package/styles/drop-down-list/highcontrast.css +19 -1
  102. package/styles/drop-down-list/icons/_bootstrap-dark.scss +4 -0
  103. package/styles/drop-down-list/icons/_bootstrap.scss +4 -0
  104. package/styles/drop-down-list/icons/_bootstrap4.scss +4 -0
  105. package/styles/drop-down-list/icons/_bootstrap5.3.scss +4 -0
  106. package/styles/drop-down-list/icons/_bootstrap5.scss +4 -0
  107. package/styles/drop-down-list/icons/_fabric-dark.scss +4 -0
  108. package/styles/drop-down-list/icons/_fabric.scss +4 -0
  109. package/styles/drop-down-list/icons/_fluent.scss +4 -0
  110. package/styles/drop-down-list/icons/_fluent2.scss +4 -0
  111. package/styles/drop-down-list/icons/_highcontrast.scss +4 -0
  112. package/styles/drop-down-list/icons/_material-dark.scss +4 -0
  113. package/styles/drop-down-list/icons/_material.scss +4 -0
  114. package/styles/drop-down-list/icons/_material3.scss +4 -0
  115. package/styles/drop-down-list/icons/_tailwind.scss +4 -0
  116. package/styles/drop-down-list/icons/_tailwind3.scss +14 -0
  117. package/styles/drop-down-list/material-dark.css +18 -1
  118. package/styles/drop-down-list/material.css +13 -1
  119. package/styles/drop-down-list/material3-dark.css +13 -1
  120. package/styles/drop-down-list/material3.css +13 -1
  121. package/styles/drop-down-list/tailwind-dark.css +13 -1
  122. package/styles/drop-down-list/tailwind.css +13 -1
  123. package/styles/drop-down-list/tailwind3.css +455 -0
  124. package/styles/drop-down-list/tailwind3.scss +10 -0
  125. package/styles/drop-down-tree/_bigger.scss +41 -7
  126. package/styles/drop-down-tree/_layout.scss +34 -10
  127. package/styles/drop-down-tree/_tailwind3-definition.scss +67 -0
  128. package/styles/drop-down-tree/_theme.scss +3 -3
  129. package/styles/drop-down-tree/bds.css +712 -0
  130. package/styles/drop-down-tree/bds.scss +10 -0
  131. package/styles/drop-down-tree/bootstrap5.3.css +0 -3
  132. package/styles/drop-down-tree/icons/_tailwind3.scss +11 -0
  133. package/styles/drop-down-tree/tailwind3.css +512 -0
  134. package/styles/drop-down-tree/tailwind3.scss +10 -0
  135. package/styles/fabric-dark-lite.css +40 -1
  136. package/styles/fabric-dark.css +40 -1
  137. package/styles/fabric-lite.css +30 -1
  138. package/styles/fabric.css +30 -1
  139. package/styles/fluent-dark-lite.css +30 -1
  140. package/styles/fluent-dark.css +30 -1
  141. package/styles/fluent-lite.css +30 -1
  142. package/styles/fluent.css +30 -1
  143. package/styles/fluent2-lite.css +45 -12
  144. package/styles/fluent2.css +45 -12
  145. package/styles/highcontrast-light-lite.css +22 -1
  146. package/styles/highcontrast-light.css +22 -1
  147. package/styles/highcontrast-lite.css +41 -1
  148. package/styles/highcontrast.css +41 -1
  149. package/styles/list-box/_bigger.scss +18 -1
  150. package/styles/list-box/_layout.scss +29 -3
  151. package/styles/list-box/_tailwind3-definition.scss +123 -0
  152. package/styles/list-box/_theme.scss +11 -0
  153. package/styles/list-box/bds.css +971 -0
  154. package/styles/list-box/bds.scss +6 -0
  155. package/styles/list-box/fluent2.css +1 -1
  156. package/styles/list-box/icons/_tailwind3.scss +25 -0
  157. package/styles/list-box/tailwind3.css +991 -0
  158. package/styles/list-box/tailwind3.scss +6 -0
  159. package/styles/material-dark-lite.css +40 -1
  160. package/styles/material-dark.css +40 -1
  161. package/styles/material-lite.css +30 -1
  162. package/styles/material.css +30 -1
  163. package/styles/material3-dark-lite.css +36 -9
  164. package/styles/material3-dark.css +36 -9
  165. package/styles/material3-lite.css +36 -9
  166. package/styles/material3.css +36 -9
  167. package/styles/mention/_tailwind3-definition.scss +1 -0
  168. package/styles/mention/bds.css +78 -0
  169. package/styles/mention/bds.scss +6 -0
  170. package/styles/mention/tailwind3.css +67 -0
  171. package/styles/mention/tailwind3.scss +6 -0
  172. package/styles/multi-select/_bigger.scss +2 -2
  173. package/styles/multi-select/_bootstrap-dark-definition.scss +1 -1
  174. package/styles/multi-select/_layout.scss +27 -2
  175. package/styles/multi-select/_material3-definition.scss +2 -2
  176. package/styles/multi-select/_tailwind3-definition.scss +227 -0
  177. package/styles/multi-select/_theme.scss +1 -1
  178. package/styles/multi-select/bds.css +1575 -0
  179. package/styles/multi-select/bds.scss +10 -0
  180. package/styles/multi-select/bootstrap-dark.css +19 -1
  181. package/styles/multi-select/bootstrap.css +13 -0
  182. package/styles/multi-select/bootstrap4.css +13 -0
  183. package/styles/multi-select/bootstrap5-dark.css +13 -0
  184. package/styles/multi-select/bootstrap5.3.css +13 -0
  185. package/styles/multi-select/bootstrap5.css +13 -0
  186. package/styles/multi-select/fabric-dark.css +18 -0
  187. package/styles/multi-select/fabric.css +13 -0
  188. package/styles/multi-select/fluent-dark.css +13 -0
  189. package/styles/multi-select/fluent.css +13 -0
  190. package/styles/multi-select/fluent2.css +22 -5
  191. package/styles/multi-select/highcontrast-light.css +9 -0
  192. package/styles/multi-select/highcontrast.css +18 -0
  193. package/styles/multi-select/icons/_bootstrap-dark.scss +4 -0
  194. package/styles/multi-select/icons/_bootstrap.scss +4 -0
  195. package/styles/multi-select/icons/_bootstrap4.scss +4 -0
  196. package/styles/multi-select/icons/_bootstrap5.3.scss +4 -0
  197. package/styles/multi-select/icons/_bootstrap5.scss +4 -0
  198. package/styles/multi-select/icons/_fabric-dark.scss +4 -0
  199. package/styles/multi-select/icons/_fabric.scss +4 -0
  200. package/styles/multi-select/icons/_fluent.scss +4 -0
  201. package/styles/multi-select/icons/_fluent2.scss +4 -0
  202. package/styles/multi-select/icons/_highcontrast.scss +4 -0
  203. package/styles/multi-select/icons/_material-dark.scss +4 -0
  204. package/styles/multi-select/icons/_material.scss +4 -0
  205. package/styles/multi-select/icons/_material3.scss +4 -0
  206. package/styles/multi-select/icons/_tailwind.scss +4 -0
  207. package/styles/multi-select/icons/_tailwind3.scss +26 -0
  208. package/styles/multi-select/material-dark.css +18 -0
  209. package/styles/multi-select/material.css +13 -0
  210. package/styles/multi-select/material3-dark.css +19 -8
  211. package/styles/multi-select/material3.css +19 -8
  212. package/styles/multi-select/tailwind-dark.css +13 -0
  213. package/styles/multi-select/tailwind.css +13 -0
  214. package/styles/multi-select/tailwind3.css +1398 -0
  215. package/styles/multi-select/tailwind3.scss +10 -0
  216. package/styles/tailwind-dark-lite.css +30 -1
  217. package/styles/tailwind-dark.css +30 -1
  218. package/styles/tailwind-lite.css +30 -1
  219. package/styles/tailwind.css +30 -1
  220. package/styles/tailwind3-lite.css +2889 -0
  221. package/styles/tailwind3-lite.scss +28 -0
  222. package/styles/tailwind3.css +3550 -0
  223. package/styles/tailwind3.scss +33 -0
@@ -132,7 +132,7 @@ function incrementalSearch(keyCode, items, selectedIndex, ignoreCase, elementId,
132
132
  * @param {string} [type] - Specifies the type.
133
133
  * @returns {{ item: Element | null, index: number | null }} Returns the search matched items.
134
134
  */
135
- function Search(inputVal, items, searchType, ignoreCase, dataSource, fields, type) {
135
+ function Search(inputVal, items, searchType, ignoreCase, dataSource, fields, type, ignoreAccent) {
136
136
  var listItems = items;
137
137
  ignoreCase = ignoreCase !== undefined && ignoreCase !== null ? ignoreCase : true;
138
138
  var itemData = { item: null, index: null };
@@ -158,6 +158,10 @@ function Search(inputVal, items, searchType, ignoreCase, dataSource, fields, typ
158
158
  }
159
159
  var text = dataSource && filterValue ? (ignoreCase ? filterValue.toString().toLocaleLowerCase() : filterValue).replace(/^\s+|\s+$/g, '') : (ignoreCase ? item.textContent.toLocaleLowerCase() : item.textContent).replace(/^\s+|\s+$/g, '');
160
160
  /* eslint-disable security/detect-non-literal-regexp */
161
+ if (ignoreAccent && text && queryStr) {
162
+ text = text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
163
+ queryStr = queryStr.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
164
+ }
161
165
  if ((searchType === 'Equal' && text === queryStr) || (searchType === 'StartsWith' && text.substr(0, strLength) === queryStr) || (searchType === 'EndsWith' && text.substr(text.length - queryStr.length) === queryStr) || (searchType === 'Contains' && new RegExp(queryStr, 'g').test(text))) {
162
166
  itemData.item = item;
163
167
  itemData.index = i;
@@ -746,7 +750,8 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
746
750
  direction: direction, sentinelInfo: info, offsets: e,
747
751
  startIndex: this.parent.previousStartIndex, endIndex: this.parent.previousEndIndex
748
752
  };
749
- var vHeight = this.parent.popupContentElement.getBoundingClientRect().height;
753
+ var vHeight = this.parent.popupContentElement ?
754
+ this.parent.popupContentElement.getBoundingClientRect().height : 0;
750
755
  //Row Start and End Index calculation
751
756
  var rowHeight = this.parent.listItemHeight;
752
757
  var exactTopIndex = e.top / rowHeight;
@@ -1863,7 +1868,13 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1863
1868
  var focusItem = this.fields.disabled ? listElement.querySelector('.' + dropDownBaseClasses.li + ':not(.e-disabled') : listElement.querySelector('.' + dropDownBaseClasses.li);
1864
1869
  var selectedItem = listElement.querySelector('.' + dropDownBaseClasses.selected);
1865
1870
  if (focusItem && !selectedItem) {
1866
- focusItem.classList.add(dropDownBaseClasses.focus);
1871
+ if (this.isVirtualizationEnabled && this.viewPortInfo.startIndex !== 0) {
1872
+ var elements = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');
1873
+ focusItem = elements && elements.length > 0 ? elements[2] : focusItem;
1874
+ }
1875
+ if (focusItem) {
1876
+ focusItem.classList.add(dropDownBaseClasses.focus);
1877
+ }
1867
1878
  }
1868
1879
  if (list.length <= 0) {
1869
1880
  this.l10nUpdate();
@@ -2079,11 +2090,23 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2079
2090
  new DataManager(dataSource).executeLocal(new Query().take(100))
2080
2091
  : dataSource;
2081
2092
  ulElement = this.templateListItem((this.getModuleName() === 'autocomplete') ? spliceData : dataSource, fields);
2093
+ if (this.isIncrementalRequest) {
2094
+ this.incrementalLiCollections = ulElement.querySelectorAll('.' + dropDownBaseClasses.li);
2095
+ this.incrementalUlElement = ulElement;
2096
+ this.incrementalListData = listData;
2097
+ return ulElement;
2098
+ }
2082
2099
  if (this.isVirtualizationEnabled) {
2083
2100
  var oldUlElement = this.list.querySelector('.e-list-parent');
2084
2101
  var virtualUlElement = this.list.querySelector('.e-virtual-ddl-content');
2085
2102
  if ((listData.length >= this.virtualizedItemsCount && oldUlElement && virtualUlElement) || (oldUlElement && virtualUlElement && this.isAllowFiltering) || (oldUlElement && virtualUlElement && this.getModuleName() === 'autocomplete')) {
2086
- virtualUlElement.replaceChild(ulElement, oldUlElement);
2103
+ if (this.getModuleName() === 'multiselect' && this.isCheckBoxSelection && this.appendUncheckList && this.list && this.list.querySelector('.e-active')) {
2104
+ virtualUlElement.appendChild(ulElement);
2105
+ isCheckBoxUpdate = true;
2106
+ }
2107
+ else {
2108
+ virtualUlElement.replaceChild(ulElement, oldUlElement);
2109
+ }
2087
2110
  var reOrderList = this.list.querySelectorAll('.e-reorder');
2088
2111
  if (this.list.querySelector('.e-virtual-ddl-content') && reOrderList && reOrderList.length > 0 && !isCheckBoxUpdate) {
2089
2112
  this.list.querySelector('.e-virtual-ddl-content').removeChild(reOrderList[0]);
@@ -2360,7 +2383,7 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2360
2383
  updateData.dataSource = this.dataSource;
2361
2384
  }
2362
2385
  if (this.getModuleName() === 'listbox') {
2363
- if (!this.isReact || (this.isReact && !isNullOrUndefined(newProp.dataSource))) {
2386
+ if (!this.isReact || (this.isReact && (!isNullOrUndefined(newProp.dataSource) || !isNullOrUndefined(newProp.sortOrder)))) {
2364
2387
  this.updateDataSource(updateData, oldProp);
2365
2388
  }
2366
2389
  }
@@ -2853,6 +2876,7 @@ var dropDownListClasses = {
2853
2876
  backIcon: 'e-input-group-icon e-back-icon e-icons',
2854
2877
  filterBarClearIcon: 'e-input-group-icon e-clear-icon e-icons',
2855
2878
  filterInput: 'e-input-filter',
2879
+ resizeIcon: 'e-resizer-right e-icons',
2856
2880
  filterParent: 'e-filter-parent',
2857
2881
  mobileFilter: 'e-ddl-device-filter',
2858
2882
  footer: 'e-ddl-footer',
@@ -2895,6 +2919,8 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
2895
2919
  _this.isTouched = false;
2896
2920
  _this.isFocused = false;
2897
2921
  _this.autoFill = false;
2922
+ _this.isUpdateHeaderHeight = false;
2923
+ _this.isUpdateFooterHeight = false;
2898
2924
  return _this;
2899
2925
  }
2900
2926
  /**
@@ -3037,6 +3063,10 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3037
3063
  (this.allowObjectBinding && this.previousValue &&
3038
3064
  this.isObjectInArray(this.previousValue, [this.allowCustom ? this.value ? this.value : dataItem :
3039
3065
  dataItem.value ? this.getDataByValue(dataItem.value) : dataItem]))) {
3066
+ this.checkAndResetCache();
3067
+ if (this.enableVirtualization && this.list) {
3068
+ this.updateInitialData();
3069
+ }
3040
3070
  return;
3041
3071
  }
3042
3072
  this.onChangeEvent(e);
@@ -3353,6 +3383,22 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3353
3383
  this.updateIconState();
3354
3384
  this.isFocused = true;
3355
3385
  };
3386
+ DropDownList.prototype.resizingWireEvent = function () {
3387
+ // Mouse events
3388
+ EventHandler.add(document, 'mousemove', this.resizePopup, this);
3389
+ EventHandler.add(document, 'mouseup', this.stopResizing, this);
3390
+ // Touch events
3391
+ EventHandler.add(document, 'touchmove', this.resizePopup, this);
3392
+ EventHandler.add(document, 'touchend', this.stopResizing, this);
3393
+ };
3394
+ DropDownList.prototype.resizingUnWireEvent = function () {
3395
+ // Mouse events
3396
+ EventHandler.remove(document, 'mousemove', this.resizePopup);
3397
+ EventHandler.remove(document, 'mouseup', this.stopResizing);
3398
+ // Touch events
3399
+ EventHandler.remove(document, 'touchmove', this.resizePopup);
3400
+ EventHandler.remove(document, 'touchend', this.stopResizing);
3401
+ };
3356
3402
  DropDownList.prototype.resetValueHandler = function (e) {
3357
3403
  var formElement = closest(this.inputElement, 'form');
3358
3404
  if (formElement && e.target === formElement) {
@@ -3447,6 +3493,68 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3447
3493
  this.incrementalSearch(e);
3448
3494
  }
3449
3495
  };
3496
+ DropDownList.prototype.startResizing = function (event) {
3497
+ this.isResizing = true;
3498
+ this.trigger('resizeStart', event);
3499
+ // Get initial touch or mouse coordinates
3500
+ var clientX = (event instanceof MouseEvent) ? event.clientX : event.touches[0].clientX;
3501
+ var clientY = (event instanceof MouseEvent) ? event.clientY : event.touches[0].clientY;
3502
+ // Store the initial dimensions of the popup
3503
+ if (this.list && this.list.parentElement) {
3504
+ this.originalWidth = this.list.parentElement.offsetWidth;
3505
+ this.originalHeight = this.list.parentElement.offsetHeight;
3506
+ this.originalMouseX = clientX;
3507
+ this.originalMouseY = clientY;
3508
+ }
3509
+ // Wire up events for resizing
3510
+ this.resizingWireEvent();
3511
+ if (event) {
3512
+ event.preventDefault(); // Prevent selection behavior if event exists
3513
+ }
3514
+ };
3515
+ DropDownList.prototype.resizePopup = function (event) {
3516
+ if (!this.isResizing) {
3517
+ return;
3518
+ }
3519
+ this.trigger('resizing', event);
3520
+ // Get the current touch or mouse position
3521
+ var clientX = (event instanceof MouseEvent) ? event.clientX : event.touches[0].clientX;
3522
+ var clientY = (event instanceof MouseEvent) ? event.clientY : event.touches[0].clientY;
3523
+ // Calculate the new width and height based on drag
3524
+ var dx = clientX - this.originalMouseX;
3525
+ var dy = clientY - this.originalMouseY;
3526
+ if (this.list && this.list.parentElement) {
3527
+ // Minimum width and height (100px)
3528
+ var minWidth = parseInt(window.getComputedStyle(this.list.parentElement).minWidth, 10);
3529
+ var minHeight = parseInt(window.getComputedStyle(this.list.parentElement).minHeight, 10);
3530
+ minWidth = minWidth || 100;
3531
+ minHeight = minHeight || 120;
3532
+ // Ensure the new width and height are not less than the minimum
3533
+ this.resizeWidth = Math.max(this.originalWidth + dx, minWidth);
3534
+ this.resizeHeight = Math.max(this.originalHeight + dy, minHeight);
3535
+ this.list.parentElement.style.width = this.resizeWidth + "px";
3536
+ this.list.parentElement.style.height = this.resizeHeight + "px";
3537
+ this.list.parentElement.style.maxHeight = this.resizeHeight + "px";
3538
+ this.list.style.maxHeight = this.resizeHeight + "px";
3539
+ if (this.fixedHeaderElement && this.ulElement) {
3540
+ this.fixedHeaderElement.style.width = this.ulElement.offsetWidth + "px";
3541
+ }
3542
+ }
3543
+ if (event) {
3544
+ event.preventDefault(); // Prevent selection behavior if event exists
3545
+ }
3546
+ };
3547
+ DropDownList.prototype.stopResizing = function (event) {
3548
+ if (this.isResizing) {
3549
+ this.isResizing = false;
3550
+ this.trigger('resizeStop', event);
3551
+ // Unwire the resize event listeners
3552
+ this.resizingUnWireEvent();
3553
+ }
3554
+ if (event) {
3555
+ event.preventDefault(); // Prevent selection behavior if event exists
3556
+ }
3557
+ };
3450
3558
  DropDownList.prototype.onMouseClick = function (e) {
3451
3559
  var target = e.target;
3452
3560
  this.keyboardEvent = null;
@@ -3918,6 +4026,9 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3918
4026
  }
3919
4027
  return;
3920
4028
  }
4029
+ if (!this.enableVirtualization && this.liCollections[findLi] && this.liCollections[findLi].classList.contains('e-disabled')) {
4030
+ return;
4031
+ }
3921
4032
  this.setSelection(this.liCollections[findLi], e);
3922
4033
  }
3923
4034
  };
@@ -4013,6 +4124,19 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4013
4124
  };
4014
4125
  DropDownList.prototype.pageUpSelection = function (steps, event, isVirtualKeyAction) {
4015
4126
  var previousItem = steps >= 0 ? this.liCollections[steps + 1] : this.liCollections[0];
4127
+ if (!this.enableVirtualization && previousItem && previousItem.classList.contains('e-disabled')) {
4128
+ var validIndex = steps >= 0 ? steps + 1 : 0;
4129
+ while (validIndex < this.liCollections.length) {
4130
+ previousItem = this.liCollections[validIndex];
4131
+ if (previousItem && !previousItem.classList.contains('e-disabled')) {
4132
+ break;
4133
+ }
4134
+ validIndex--;
4135
+ if (validIndex < 0) {
4136
+ return;
4137
+ }
4138
+ }
4139
+ }
4016
4140
  if ((this.enableVirtualization && this.activeIndex == null)) {
4017
4141
  previousItem = (this.liCollections.length >= steps && steps >= 0) ?
4018
4142
  this.liCollections[steps + this.skeletonCount + 1] : this.liCollections[0];
@@ -4045,6 +4169,15 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4045
4169
  DropDownList.prototype.pageDownSelection = function (steps, event, isVirtualKeyAction) {
4046
4170
  var list = this.getItems();
4047
4171
  var previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];
4172
+ if (!this.enableVirtualization && previousItem && previousItem.classList.contains('e-disabled')) {
4173
+ while (steps >= 0 && steps < this.liCollections.length) {
4174
+ previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];
4175
+ if (previousItem && !previousItem.classList.contains('e-disabled')) {
4176
+ break;
4177
+ }
4178
+ steps++;
4179
+ }
4180
+ }
4048
4181
  if (this.enableVirtualization && this.skeletonCount > 0) {
4049
4182
  steps = this.getModuleName() === 'dropdownlist' && this.allowFiltering ? steps + 1 : steps;
4050
4183
  previousItem = steps < list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];
@@ -4823,7 +4956,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4823
4956
  var virualElement = this.createElement('div', {
4824
4957
  id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
4825
4958
  });
4826
- document.getElementsByClassName('e-popup')[0].querySelector('.e-dropdownbase').appendChild(virualElement);
4959
+ this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);
4827
4960
  }
4828
4961
  }
4829
4962
  }
@@ -4862,7 +4995,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4862
4995
  var virualElement = this.createElement('div', {
4863
4996
  id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
4864
4997
  });
4865
- document.getElementsByClassName('e-popup')[0].querySelector('.e-dropdownbase').appendChild(virualElement);
4998
+ this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);
4866
4999
  }
4867
5000
  }
4868
5001
  }
@@ -5221,7 +5354,7 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5221
5354
  };
5222
5355
  DropDownList.prototype.updateSelectionList = function () {
5223
5356
  var selectedItem = this.list && this.list.querySelector('.' + 'e-active');
5224
- if (!selectedItem && !isNullOrUndefined(this.value)) {
5357
+ if (!selectedItem && !isNullOrUndefined(this.value) && this.getModuleName() !== 'autocomplete') {
5225
5358
  var value = this.allowObjectBinding ? getValue((this.fields.value) ? this.fields.value : '', this.value) : this.value;
5226
5359
  var findEle = this.findListElement(this.list, 'li', 'data-value', value);
5227
5360
  if (findEle) {
@@ -5254,10 +5387,12 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5254
5387
  formatUnit(Math.round(window.outerHeight).toString() + 'px') : formatUnit(_this.popupHeight);
5255
5388
  if (_this.headerTemplate) {
5256
5389
  _this.setHeaderTemplate(popupEle);
5390
+ _this.isUpdateHeaderHeight = _this.header.offsetHeight !== 0;
5257
5391
  }
5258
5392
  append([_this.list], popupEle);
5259
5393
  if (_this.footerTemplate) {
5260
5394
  _this.setFooterTemplate(popupEle);
5395
+ _this.isUpdateFooterHeight = _this.footer.offsetHeight !== 0;
5261
5396
  }
5262
5397
  document.body.appendChild(popupEle);
5263
5398
  popupEle.style.top = '0px';
@@ -5422,12 +5557,57 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5422
5557
  if (!isNullOrUndefined(_this.popupObj)) {
5423
5558
  _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);
5424
5559
  }
5560
+ if (_this.isReact) {
5561
+ setTimeout(function () {
5562
+ if (_this.popupHeight && _this.list && _this.popupHeight !== 'auto' && !(_this.getModuleName() === 'dropdownlist' && _this.allowFiltering)) {
5563
+ var popupHeightValue = typeof _this.popupHeight === 'string' ? parseInt(_this.popupHeight, 10) : _this.popupHeight;
5564
+ if (!_this.isUpdateHeaderHeight && _this.headerTemplate && _this.header) {
5565
+ var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);
5566
+ _this.list.style.maxHeight = (listHeight - _this.header.offsetHeight).toString() + 'px';
5567
+ _this.isUpdateHeaderHeight = true;
5568
+ }
5569
+ if (!_this.isUpdateFooterHeight && _this.footerTemplate && _this.footer) {
5570
+ var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);
5571
+ _this.list.style.maxHeight = (listHeight - _this.footer.offsetHeight).toString() + 'px';
5572
+ _this.isUpdateFooterHeight = true;
5573
+ }
5574
+ }
5575
+ }, 15);
5576
+ }
5425
5577
  }
5426
5578
  else {
5427
5579
  _this.beforePopupOpen = false;
5428
5580
  _this.destroyPopup();
5429
5581
  }
5430
5582
  });
5583
+ if (_this.allowResize) {
5584
+ var resizePaddingBottom = 16;
5585
+ // Create the resizer div
5586
+ _this.resizer = _this.createElement('div', {
5587
+ id: _this.element.id + '_resize-popup',
5588
+ className: dropDownListClasses.resizeIcon // Adding class for styling
5589
+ });
5590
+ // Add the resizer div to the popup
5591
+ if (_this.list && _this.list.parentElement) {
5592
+ _this.list.parentElement.classList.add('e-resize');
5593
+ if (_this.popupHeight.toString().toLowerCase() !== 'auto') {
5594
+ _this.list.parentElement.style.height = '100%';
5595
+ }
5596
+ _this.list.parentElement.style.paddingBottom = (_this.getModuleName() === 'dropdownlist' && _this.allowFiltering && _this.searchBoxHeight) ? (_this.searchBoxHeight + resizePaddingBottom).toString() + 'px' : resizePaddingBottom.toString() + 'px';
5597
+ if (_this.header || _this.footer || _this.itemTemplate) {
5598
+ _this.list.parentElement.style.paddingBottom = ((parseInt(_this.list.parentElement.style.maxHeight, 10) - parseInt(_this.list.style.maxHeight, 10)) + resizePaddingBottom).toString() + 'px';
5599
+ }
5600
+ _this.list.parentElement.appendChild(_this.resizer);
5601
+ //hold the popup resize
5602
+ _this.list.parentElement.style.width = _this.resizeWidth + "px";
5603
+ _this.list.parentElement.style.height = _this.resizeHeight + "px";
5604
+ _this.list.parentElement.style.maxHeight = _this.resizeHeight + "px";
5605
+ _this.list.style.maxHeight = _this.resizeHeight + "px";
5606
+ }
5607
+ // Attach mouse and touch events to the resizer
5608
+ EventHandler.add(_this.resizer, 'mousedown', _this.startResizing, _this);
5609
+ EventHandler.add(_this.resizer, 'touchstart', _this.startResizing, _this);
5610
+ }
5431
5611
  }
5432
5612
  else {
5433
5613
  _this.beforePopupOpen = false;
@@ -5665,7 +5845,8 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5665
5845
  }
5666
5846
  else {
5667
5847
  this.list.scrollTop = this.virtualListInfo && this.virtualListInfo.startIndex ?
5668
- this.virtualListInfo.startIndex * this.listItemHeight : 0;
5848
+ isInitial && this.virtualListInfo.startIndex ? this.virtualListInfo.startIndex * this.listItemHeight +
5849
+ (this.listItemHeight * 2) : this.virtualListInfo.startIndex * this.listItemHeight : 0;
5669
5850
  }
5670
5851
  isScrollerCHanged = this.isKeyBoardAction;
5671
5852
  }
@@ -5814,15 +5995,6 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5814
5995
  this.keyboardEvent = null;
5815
5996
  EventHandler.remove(document, 'mousedown', this.onDocumentClick);
5816
5997
  this.isActive = false;
5817
- if (this.getModuleName() === 'dropdownlist') {
5818
- Input.destroy({
5819
- element: this.filterInput,
5820
- floatLabelType: this.floatLabelType,
5821
- properties: { placeholder: this.filterBarPlaceholder },
5822
- buttons: this.clearIconElement
5823
- }, this.clearIconElement);
5824
- }
5825
- this.filterInputObj = null;
5826
5998
  this.isDropDownClick = false;
5827
5999
  this.preventAutoFill = false;
5828
6000
  var scrollableParentElements = this.popupObj.getScrollableParent(this.inputWrapper.container);
@@ -5895,6 +6067,15 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5895
6067
  var popupInstance = this.popupObj;
5896
6068
  var eventArgs = { popup: popupInstance, cancel: false, animation: animModel, event: e || null };
5897
6069
  this.trigger('close', eventArgs, function (eventArgs) {
6070
+ if (_this.getModuleName() === 'dropdownlist') {
6071
+ Input.destroy({
6072
+ element: _this.filterInput,
6073
+ floatLabelType: _this.floatLabelType,
6074
+ properties: { placeholder: _this.filterBarPlaceholder },
6075
+ buttons: _this.clearIconElement
6076
+ }, _this.clearIconElement);
6077
+ }
6078
+ _this.filterInputObj = null;
5898
6079
  if (!isNullOrUndefined(_this.popupObj) &&
5899
6080
  !isNullOrUndefined(_this.popupObj.element.querySelector('.e-fixed-head'))) {
5900
6081
  var fixedHeader = _this.popupObj.element.querySelector('.e-fixed-head');
@@ -5965,6 +6146,12 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5965
6146
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5966
6147
  this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();
5967
6148
  }
6149
+ else if (!this.list.querySelector('.e-virtual-ddl')) {
6150
+ var virualElement = this.createElement('div', {
6151
+ id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
6152
+ });
6153
+ this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virualElement);
6154
+ }
5968
6155
  if (this.getModuleName() !== 'autocomplete' && this.totalItemCount !== 0 && this.totalItemCount > (this.itemCount * 2)) {
5969
6156
  this.getSkeletonCount();
5970
6157
  }
@@ -5983,6 +6170,10 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5983
6170
  this.isFilterFocus = false;
5984
6171
  this.inputElement.removeAttribute('aria-controls');
5985
6172
  if (this.popupObj) {
6173
+ if (this.resizer) {
6174
+ EventHandler.remove(this.resizer, 'mousedown', this.startResizing);
6175
+ EventHandler.remove(this.resizer, 'touchstart', this.startResizing);
6176
+ }
5986
6177
  this.popupObj.destroy();
5987
6178
  detach(this.popupObj.element);
5988
6179
  }
@@ -6702,6 +6893,15 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
6702
6893
  isOpen: true
6703
6894
  });
6704
6895
  }
6896
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
6897
+ var proxy = this;
6898
+ var duration = (this.element.tagName === this.getNgDirective() && this.itemTemplate) ? 500 : 100;
6899
+ if (!this.isSecondClick && this.isReact && !this.isDropDownClick && this.isFiltering() && this.itemTemplate != null) {
6900
+ setTimeout(function () {
6901
+ proxy.cloneElements();
6902
+ proxy.isSecondClick = true;
6903
+ }, duration);
6904
+ }
6705
6905
  };
6706
6906
  DropDownList.prototype.invokeRenderPopup = function (e) {
6707
6907
  if (Browser.isDevice && this.isFilterLayout()) {
@@ -7038,6 +7238,9 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7038
7238
  __decorate$1([
7039
7239
  Property(false)
7040
7240
  ], DropDownList.prototype, "enableVirtualization", void 0);
7241
+ __decorate$1([
7242
+ Property(false)
7243
+ ], DropDownList.prototype, "allowResize", void 0);
7041
7244
  __decorate$1([
7042
7245
  Property(null)
7043
7246
  ], DropDownList.prototype, "text", void 0);
@@ -7077,6 +7280,15 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
7077
7280
  __decorate$1([
7078
7281
  Event()
7079
7282
  ], DropDownList.prototype, "focus", void 0);
7283
+ __decorate$1([
7284
+ Event()
7285
+ ], DropDownList.prototype, "resizeStop", void 0);
7286
+ __decorate$1([
7287
+ Event()
7288
+ ], DropDownList.prototype, "resizing", void 0);
7289
+ __decorate$1([
7290
+ Event()
7291
+ ], DropDownList.prototype, "resizeStart", void 0);
7080
7292
  DropDownList = __decorate$1([
7081
7293
  NotifyPropertyChanges
7082
7294
  ], DropDownList);
@@ -7346,7 +7558,7 @@ var DropDownTree = /** @__PURE__ @class */ (function (_super) {
7346
7558
  }
7347
7559
  else {
7348
7560
  if (!isNullOrUndefined(this.element.id)) {
7349
- this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text', id: this.element.id } });
7561
+ this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text', id: this.element.id + '_textbox' } });
7350
7562
  }
7351
7563
  else {
7352
7564
  this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });
@@ -8591,6 +8803,9 @@ var DropDownTree = /** @__PURE__ @class */ (function (_super) {
8591
8803
  var id = this.value[0].toString();
8592
8804
  if (this.treeObj.selectedNodes[0] !== id) {
8593
8805
  setValue('selectedNodes', [id], this.treeObj);
8806
+ if (this.fields.dataSource instanceof DataManager) {
8807
+ this.updateSelectedValues();
8808
+ }
8594
8809
  }
8595
8810
  }
8596
8811
  else {
@@ -10916,7 +11131,7 @@ var ComboBox = /** @__PURE__ @class */ (function (_super) {
10916
11131
  var inputValue = this.inputElement.value;
10917
11132
  var dataSource = this.sortedData;
10918
11133
  var type = this.typeOfData(dataSource).typeof;
10919
- var activeItem = Search(inputValue, this.liCollections, this.filterType, true, dataSource, this.fields, type);
11134
+ var activeItem = Search(inputValue, this.liCollections, this.filterType, true, dataSource, this.fields, type, this.ignoreAccent);
10920
11135
  if (this.enableVirtualization && inputValue !== '' && this.getModuleName() !== 'autocomplete' && this.isTyped && !this.allowFiltering) {
10921
11136
  var updatingincrementalindex = false;
10922
11137
  var isEndIndexValid = this.viewPortInfo.endIndex >= this.incrementalEndIndex &&
@@ -11893,11 +12108,11 @@ var AutoComplete = /** @__PURE__ @class */ (function (_super) {
11893
12108
  });
11894
12109
  this.list.appendChild(virtualElement).appendChild(this.list.querySelector('.e-list-parent'));
11895
12110
  }
11896
- if (!this.list.querySelector('.e-virtual-ddl') && document.getElementsByClassName('e-popup') && document.getElementsByClassName('e-popup')[0]) {
12111
+ if (!this.list.querySelector('.e-virtual-ddl') && this.list.parentElement) {
11897
12112
  var virtualElement = this.createElement('div', {
11898
12113
  id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
11899
12114
  });
11900
- document.getElementsByClassName('e-popup')[0].querySelector('.e-dropdownbase').appendChild(virtualElement);
12115
+ this.list.parentElement.querySelector('.e-dropdownbase').appendChild(virtualElement);
11901
12116
  }
11902
12117
  }
11903
12118
  if ((this.getModuleName() === 'autocomplete' && !(this.dataSource instanceof DataManager)) || (this.getModuleName() === 'autocomplete' && (this.dataSource instanceof DataManager) && this.totalItemCount !== 0)) {
@@ -11932,6 +12147,9 @@ var AutoComplete = /** @__PURE__ @class */ (function (_super) {
11932
12147
  if (!isNullOrUndefined(item)) {
11933
12148
  removeClass([item], dropDownListClasses.focus);
11934
12149
  }
12150
+ if (!isNullOrUndefined(this.itemData) && !this.enableVirtualization) {
12151
+ this.focusIndexItem();
12152
+ }
11935
12153
  this.postBackAction();
11936
12154
  };
11937
12155
  AutoComplete.prototype.postBackAction = function () {
@@ -12440,6 +12658,7 @@ var BOX_ELEMENT = 'e-multiselect-box';
12440
12658
  var FILTERPARENT = 'e-filter-parent';
12441
12659
  var CUSTOM_WIDTH = 'e-search-custom-width';
12442
12660
  var FILTERINPUT = 'e-input-filter';
12661
+ var RESIZE_ICON = 'e-resizer-right e-icons';
12443
12662
  /**
12444
12663
  * The Multiselect allows the user to pick a more than one value from list of predefined values.
12445
12664
  * ```html
@@ -12471,6 +12690,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12471
12690
  var _this = _super.call(this, option, element) || this;
12472
12691
  _this.clearIconWidth = 0;
12473
12692
  _this.previousFilterText = '';
12693
+ _this.storedSelectAllHeight = 0;
12694
+ _this.isUpdateHeaderHeight = false;
12695
+ _this.isUpdateFooterHeight = false;
12474
12696
  _this.isValidKey = false;
12475
12697
  _this.selectAllEventData = [];
12476
12698
  _this.selectAllEventEle = [];
@@ -12621,7 +12843,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12621
12843
  var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };
12622
12844
  this.trigger('open', eventArgs, function (eventArgs) {
12623
12845
  if (!eventArgs.cancel) {
12624
- _this.focusAtFirstListItem();
12846
+ _this.focusAtFirstListItem(true);
12625
12847
  if (_this.popupObj) {
12626
12848
  document.body.appendChild(_this.popupObj.element);
12627
12849
  }
@@ -12636,6 +12858,23 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12636
12858
  if (_this.popupObj) {
12637
12859
  _this.popupObj.show(eventArgs.animation, (_this.zIndex === 1000) ? _this.element : null);
12638
12860
  }
12861
+ if (_this.isReact) {
12862
+ setTimeout(function () {
12863
+ if (_this.popupHeight && _this.list && _this.popupHeight !== 'auto') {
12864
+ var popupHeightValue = typeof _this.popupHeight === 'string' ? parseInt(_this.popupHeight, 10) : _this.popupHeight;
12865
+ if (!_this.isUpdateHeaderHeight && _this.headerTemplate && _this.header) {
12866
+ var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);
12867
+ _this.list.style.maxHeight = (listHeight - _this.header.offsetHeight).toString() + 'px';
12868
+ _this.isUpdateHeaderHeight = true;
12869
+ }
12870
+ if (!_this.isUpdateFooterHeight && _this.footerTemplate && _this.footer) {
12871
+ var listHeight = _this.list.style.maxHeight === '' ? popupHeightValue : parseInt(_this.list.style.maxHeight, 10);
12872
+ _this.list.style.maxHeight = (listHeight - _this.footer.offsetHeight).toString() + 'px';
12873
+ _this.isUpdateFooterHeight = true;
12874
+ }
12875
+ }
12876
+ }, 15);
12877
+ }
12639
12878
  attributes(_this.inputElement, {
12640
12879
  'aria-expanded': 'true', 'aria-owns': _this.element.id + '_popup', 'aria-controls': _this.element.id
12641
12880
  });
@@ -12712,16 +12951,16 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12712
12951
  : this.value[this.value.length - 1];
12713
12952
  var valueEle = this.findListElement((this.hideSelectedItem ? this.ulElement : this.list), 'li', 'data-value', value);
12714
12953
  if (!isNullOrUndefined(valueEle)) {
12715
- this.scrollBottom(valueEle);
12954
+ this.scrollBottom(valueEle, undefined, false, null, true);
12716
12955
  }
12717
12956
  }
12718
12957
  if (this.enableVirtualization) {
12719
12958
  var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);
12720
12959
  this.isKeyBoardAction = false;
12721
- this.scrollBottom(focusedItem);
12960
+ this.scrollBottom(focusedItem, undefined, false, null, true);
12722
12961
  }
12723
12962
  };
12724
- MultiSelect.prototype.focusAtFirstListItem = function () {
12963
+ MultiSelect.prototype.focusAtFirstListItem = function (isOpen) {
12725
12964
  if (this.ulElement && this.ulElement.querySelector('li.'
12726
12965
  + dropDownBaseClasses.li)) {
12727
12966
  var element = void 0;
@@ -12734,10 +12973,18 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12734
12973
  if (this.fields.disabled) {
12735
12974
  element = this.ulElement.querySelector('li.'
12736
12975
  + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)' + ':not(.' + DISABLED$1 + ')');
12976
+ if (isOpen && this.viewPortInfo && this.viewPortInfo.startIndex !== 0) {
12977
+ var elements = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');
12978
+ element = elements && elements.length > 0 ? elements[2] : element;
12979
+ }
12737
12980
  }
12738
12981
  else {
12739
12982
  element = this.ulElement.querySelector('li.'
12740
12983
  + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');
12984
+ if (isOpen && this.viewPortInfo && this.viewPortInfo.startIndex !== 0) {
12985
+ var elements = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');
12986
+ element = elements && elements.length > 0 ? elements[2] : element;
12987
+ }
12741
12988
  }
12742
12989
  }
12743
12990
  else {
@@ -13034,7 +13281,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13034
13281
  if (this.hideSelectedItem && element.classList.contains(dropDownBaseClasses.focus)) {
13035
13282
  removeClass([element], dropDownBaseClasses.focus);
13036
13283
  var listEle = element.parentElement.querySelectorAll('.' +
13037
- dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');
13284
+ dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.' + DISABLED$1 + ')');
13038
13285
  if (listEle.length > 0) {
13039
13286
  addClass([listEle[0]], dropDownBaseClasses.focus);
13040
13287
  this.updateAriaActiveDescendant();
@@ -13203,7 +13450,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13203
13450
  if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {
13204
13451
  filterQuery.where('', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);
13205
13452
  }
13206
- else if ((this.enableVirtualization && this.targetElement() !== '') || !this.enableVirtualization) {
13453
+ else if ((this.enableVirtualization && this.targetElement() !== '' && !this.isClearAllAction) || !this.enableVirtualization) {
13207
13454
  var fields = this.fields;
13208
13455
  filterQuery.where(!isNullOrUndefined(fields.text) ? fields.text : '', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);
13209
13456
  }
@@ -13211,6 +13458,11 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13211
13458
  if (this.enableVirtualization && (this.viewPortInfo.endIndex !== 0) && !this.virtualSelectAll) {
13212
13459
  return this.virtualFilterQuery(filterQuery);
13213
13460
  }
13461
+ if (this.virtualSelectAll) {
13462
+ return query ? query.take(this.maximumSelectionLength).requiresCount() : this.query ?
13463
+ this.query.take(this.maximumSelectionLength).requiresCount() :
13464
+ new Query().take(this.maximumSelectionLength).requiresCount();
13465
+ }
13214
13466
  return filterQuery;
13215
13467
  }
13216
13468
  else {
@@ -13396,6 +13648,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13396
13648
  this.getFilteringSkeletonCount();
13397
13649
  }
13398
13650
  this.refreshPopup();
13651
+ if (this.allowResize) {
13652
+ this.setResize();
13653
+ }
13399
13654
  if (this.mode === 'CheckBox') {
13400
13655
  this.removeFocus();
13401
13656
  }
@@ -13729,6 +13984,15 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13729
13984
  ':not(.' + HIDE_LIST + ')' +
13730
13985
  ':not(.e-reorder-hide)');
13731
13986
  var previousItem = steps >= 0 ? collection[steps + 1] : collection[0];
13987
+ if (this.fields.disabled && previousItem && !this.enableVirtualization) {
13988
+ while (previousItem && (previousItem.classList.contains('e-disabled') || previousItem.classList.contains(HIDE_LIST) ||
13989
+ previousItem.classList.contains('.e-reorder-hide') || previousItem.classList.contains('e-list-group-item'))) {
13990
+ previousItem = previousItem.previousElementSibling;
13991
+ }
13992
+ if (!previousItem) {
13993
+ return;
13994
+ }
13995
+ }
13732
13996
  if (this.enableVirtualization && isVirtualKeyAction) {
13733
13997
  previousItem = (this.liCollections.length >= steps && steps >= 0)
13734
13998
  ? this.liCollections[steps]
@@ -13760,6 +14024,15 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13760
14024
  var collection = this.list.querySelectorAll('li.'
13761
14025
  + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');
13762
14026
  var previousItem = steps <= collection.length ? collection[steps - 1] : collection[collection.length - 1];
14027
+ if (this.fields.disabled && previousItem && !this.enableVirtualization) {
14028
+ while (previousItem && (previousItem.classList.contains('e-disabled') || previousItem.classList.contains(HIDE_LIST) ||
14029
+ previousItem.classList.contains('.e-reorder-hide') || previousItem.classList.contains('e-list-group-item'))) {
14030
+ previousItem = previousItem.nextElementSibling;
14031
+ }
14032
+ if (!previousItem) {
14033
+ return;
14034
+ }
14035
+ }
13763
14036
  if (this.enableVirtualization && this.skeletonCount > 0) {
13764
14037
  previousItem = steps < list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];
13765
14038
  }
@@ -13811,6 +14084,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13811
14084
  if (this.isPopupOpen()) {
13812
14085
  this.refreshPopup();
13813
14086
  }
14087
+ if (this.allowResize) {
14088
+ this.setResize();
14089
+ }
13814
14090
  setTimeout(function () {
13815
14091
  _this.calculateWidth();
13816
14092
  }, 150);
@@ -14047,6 +14323,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14047
14323
  if (this.mode === 'CheckBox') {
14048
14324
  this.inputElement.focus();
14049
14325
  }
14326
+ this.isKeyBoardAction = false;
14050
14327
  return;
14051
14328
  case 13:
14052
14329
  e.preventDefault();
@@ -14055,10 +14332,12 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14055
14332
  this.selectByKey(e);
14056
14333
  }
14057
14334
  this.checkPlaceholderSize();
14335
+ this.isKeyBoardAction = false;
14058
14336
  return;
14059
14337
  case 32:
14060
14338
  this.isKeyBoardAction = true;
14061
14339
  this.spaceKeySelection(e);
14340
+ this.isKeyBoardAction = false;
14062
14341
  return;
14063
14342
  case 9:
14064
14343
  e.preventDefault();
@@ -14100,6 +14379,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14100
14379
  if (!(this.mode === 'CheckBox' && this.showSelectAll)) {
14101
14380
  this.refreshPopup();
14102
14381
  }
14382
+ if (this.allowResize) {
14383
+ this.setResize();
14384
+ }
14103
14385
  this.isKeyBoardAction = false;
14104
14386
  };
14105
14387
  MultiSelect.prototype.arrowDown = function (e, isVirtualKeyAction) {
@@ -14224,9 +14506,10 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14224
14506
  }
14225
14507
  this.makeTextBoxEmpty();
14226
14508
  };
14227
- MultiSelect.prototype.scrollBottom = function (selectedLI, activeIndex, isInitialSelection, keyCode) {
14509
+ MultiSelect.prototype.scrollBottom = function (selectedLI, activeIndex, isInitialSelection, keyCode, isInitial) {
14228
14510
  if (isInitialSelection === void 0) { isInitialSelection = false; }
14229
14511
  if (keyCode === void 0) { keyCode = null; }
14512
+ if (isInitial === void 0) { isInitial = false; }
14230
14513
  if ((!isNullOrUndefined(selectedLI) && selectedLI.classList.contains('e-virtual-list')) ||
14231
14514
  (this.enableVirtualization && isNullOrUndefined(selectedLI))) {
14232
14515
  selectedLI = this.liCollections[this.skeletonCount];
@@ -14280,8 +14563,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14280
14563
  }
14281
14564
  }
14282
14565
  else {
14283
- this.list.scrollTop = this.virtualListInfo &&
14284
- this.virtualListInfo.startIndex ? this.virtualListInfo.startIndex * this.listItemHeight : 0;
14566
+ this.list.scrollTop = this.virtualListInfo && this.virtualListInfo.startIndex ?
14567
+ isInitial && this.virtualListInfo.startIndex ? this.virtualListInfo.startIndex * this.listItemHeight +
14568
+ (this.listItemHeight * 2) : this.virtualListInfo.startIndex * this.listItemHeight : 0;
14285
14569
  }
14286
14570
  isScrollerCHanged = this.isKeyBoardAction;
14287
14571
  }
@@ -14483,6 +14767,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14483
14767
  this.getDataByValue(this.getFormattedValue(selectedElem.getAttribute('data-value'))) :
14484
14768
  selectedElem.getAttribute('data-value');
14485
14769
  this.removeValue(currentChip, e);
14770
+ this.updateDelimeter(this.delimiterChar, e);
14486
14771
  this.makeTextBoxEmpty();
14487
14772
  }
14488
14773
  if (this.closePopupOnSelect) {
@@ -14605,7 +14890,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14605
14890
  return;
14606
14891
  }
14607
14892
  var index = this.getIndexByValue(focusedLi.getAttribute('data-value'));
14608
- if (index === 0 && this.mode !== 'CheckBox') {
14893
+ if (index === 0) {
14609
14894
  position = 1;
14610
14895
  }
14611
14896
  if (index === (this.list.querySelectorAll('.e-list-item:not(.e-hide-listitem)').length - 1)) {
@@ -15261,6 +15546,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
15261
15546
  if (this.headerTemplate) {
15262
15547
  this.setHeaderTemplate();
15263
15548
  overAllHeight -= this.header.offsetHeight;
15549
+ this.isUpdateHeaderHeight = this.header.offsetHeight !== 0;
15264
15550
  }
15265
15551
  append([this.list], this.popupWrapper);
15266
15552
  if (!this.list.classList.contains(dropDownBaseClasses.noData) && this.getItems()[1]) {
@@ -15298,6 +15584,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
15298
15584
  if (this.footerTemplate) {
15299
15585
  this.setFooterTemplate();
15300
15586
  overAllHeight -= this.footer.offsetHeight;
15587
+ this.isUpdateFooterHeight = this.footer.offsetHeight !== 0;
15301
15588
  }
15302
15589
  if (this.mode === 'CheckBox' && this.showSelectAll) {
15303
15590
  this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
@@ -15415,6 +15702,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
15415
15702
  if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering && this.isDeviceFullScreen) {
15416
15703
  this.notify('deviceSearchBox', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
15417
15704
  }
15705
+ if (this.allowResize) {
15706
+ this.setResize();
15707
+ }
15418
15708
  this.popupObj.close();
15419
15709
  this.popupWrapper.style.visibility = '';
15420
15710
  }
@@ -15537,6 +15827,8 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
15537
15827
  MultiSelect.prototype.clearAll = function (e) {
15538
15828
  if (this.enabled && !this.readonly) {
15539
15829
  var temp = void 0;
15830
+ this.setDynValue = false;
15831
+ this.isClearAllAction = true;
15540
15832
  if (this.value && this.value.length > 0) {
15541
15833
  if (this.allowFiltering) {
15542
15834
  this.refreshListItems(null);
@@ -15583,6 +15875,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
15583
15875
  this.previousStartIndex = 0;
15584
15876
  this.previousEndIndex = 0;
15585
15877
  }
15878
+ this.isClearAllAction = false;
15586
15879
  }
15587
15880
  this.isClearAllItem = true;
15588
15881
  EventHandler.add(document, 'mouseup', this.preventSelection, this);
@@ -15613,6 +15906,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
15613
15906
  if (this.isPopupOpen()) {
15614
15907
  this.refreshPopup();
15615
15908
  }
15909
+ if (this.allowResize) {
15910
+ this.setResize();
15911
+ }
15616
15912
  if (!this.inputFocus) {
15617
15913
  if (this.changeOnBlur) {
15618
15914
  this.updateValueState(e, this.value, tempValues);
@@ -16427,6 +16723,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16427
16723
  }
16428
16724
  this.checkSelectAll();
16429
16725
  this.refreshPopup();
16726
+ if (this.allowResize) {
16727
+ this.setResize();
16728
+ }
16430
16729
  if (this.hideSelectedItem) {
16431
16730
  this.focusAtFirstListItem();
16432
16731
  }
@@ -16941,6 +17240,22 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16941
17240
  EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);
16942
17241
  }
16943
17242
  };
17243
+ MultiSelect.prototype.resizingWireEvent = function () {
17244
+ // Mouse events
17245
+ EventHandler.add(document, 'mousemove', this.resizePopup, this);
17246
+ EventHandler.add(document, 'mouseup', this.stopResizing, this);
17247
+ // Touch events
17248
+ EventHandler.add(document, 'touchmove', this.resizePopup, this);
17249
+ EventHandler.add(document, 'touchend', this.stopResizing, this);
17250
+ };
17251
+ MultiSelect.prototype.resizingUnWireEvent = function () {
17252
+ // Mouse events
17253
+ EventHandler.remove(document, 'mousemove', this.resizePopup);
17254
+ EventHandler.remove(document, 'mouseup', this.stopResizing);
17255
+ // Touch events
17256
+ EventHandler.remove(document, 'touchmove', this.resizePopup);
17257
+ EventHandler.remove(document, 'touchend', this.stopResizing);
17258
+ };
16944
17259
  MultiSelect.prototype.selectAllItem = function (state, event, list) {
16945
17260
  var li;
16946
17261
  if (!isNullOrUndefined(this.list)) {
@@ -17467,6 +17782,20 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
17467
17782
  this.enableRTL(newProp.enableRtl);
17468
17783
  _super.prototype.onPropertyChanged.call(this, newProp, oldProp);
17469
17784
  break;
17785
+ case 'allowResize':
17786
+ this.allowResize = newProp.allowResize;
17787
+ if (!this.allowResize && this.popupObj) {
17788
+ var overAllHeight = parseInt(this.popupHeight, 10);
17789
+ if (this.popupHeight !== 'auto') {
17790
+ this.list.style.maxHeight = formatUnit(overAllHeight);
17791
+ this.popupWrapper.style.height = formatUnit(this.popupHeight);
17792
+ this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);
17793
+ }
17794
+ else {
17795
+ this.list.style.maxHeight = formatUnit(this.popupHeight);
17796
+ }
17797
+ }
17798
+ break;
17470
17799
  case 'readonly':
17471
17800
  this.updateReadonly(newProp.readonly);
17472
17801
  this.hidePopup();
@@ -17711,6 +18040,24 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
17711
18040
  if (_this.mode === 'CheckBox' && _this.showSelectAll) {
17712
18041
  EventHandler.remove(_this.popupObj.element, 'click', _this.clickHandler);
17713
18042
  }
18043
+ if (_this.list && _this.list.parentElement && _this.allowResize) {
18044
+ if (_this.resizer && _this.list.parentElement.contains(_this.resizer)) {
18045
+ _this.list.parentElement.removeChild(_this.resizer);
18046
+ }
18047
+ if (_this.list.parentElement.classList.contains('e-resize')) {
18048
+ _this.list.parentElement.classList.remove('e-resize');
18049
+ }
18050
+ _this.list.parentElement.style.boxSizing = '';
18051
+ _this.list.parentElement.style.paddingBottom = '';
18052
+ var overAllHeight = parseInt(_this.popupHeight, 10);
18053
+ _this.list.style.maxHeight = formatUnit(overAllHeight);
18054
+ _this.list.parentElement.style.height = formatUnit(_this.popupHeight);
18055
+ _this.list.parentElement.style.maxHeight = formatUnit(_this.popupHeight);
18056
+ }
18057
+ if (_this.resizer) {
18058
+ EventHandler.remove(_this.resizer, 'mousedown', _this.startResizing);
18059
+ _this.resizer.remove();
18060
+ }
17714
18061
  if (_this.enableVirtualization && _this.mode === 'CheckBox' && _this.value && _this.value.length > 0 &&
17715
18062
  _this.enableSelectionOrder) {
17716
18063
  _this.viewPortInfo.startIndex = _this.virtualItemStartIndex = 0;
@@ -17828,6 +18175,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
17828
18175
  }
17829
18176
  }
17830
18177
  }
18178
+ if (_this.allowResize) {
18179
+ _this.setResize();
18180
+ }
17831
18181
  _this.preventSetCurrentData = true;
17832
18182
  }
17833
18183
  });
@@ -18013,6 +18363,102 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18013
18363
  }
18014
18364
  this.renderComplete();
18015
18365
  };
18366
+ MultiSelect.prototype.setResize = function () {
18367
+ var resizePaddingBottom = 16;
18368
+ if (this.list && this.list.parentElement && isNullOrUndefined(this.list.parentElement.querySelector('.e-resizer-right.e-icons'))) {
18369
+ this.resizer = this.createElement('div', {
18370
+ id: this.element.id + '_resize-popup',
18371
+ className: RESIZE_ICON
18372
+ });
18373
+ }
18374
+ if (this.mode === 'CheckBox' && this.showSelectAll && this.selectAllHeight && this.selectAllHeight !== 0) {
18375
+ this.storedSelectAllHeight = this.selectAllHeight;
18376
+ }
18377
+ if (this.list && this.list.parentElement) {
18378
+ this.list.parentElement.classList.add('e-resize');
18379
+ if (this.popupHeight.toString().toLowerCase() !== 'auto') {
18380
+ this.list.parentElement.style.height = '100%';
18381
+ }
18382
+ this.list.parentElement.style.boxSizing = 'border-box'; // Ensures padding doesn't affect element size
18383
+ var paddingBottom = this.mode === 'CheckBox' && this.searchBoxHeight ? this.searchBoxHeight + resizePaddingBottom + (this.showSelectAll ? this.storedSelectAllHeight : 0) : resizePaddingBottom;
18384
+ this.list.parentElement.style.paddingBottom = paddingBottom + "px";
18385
+ this.list.parentElement.appendChild(this.resizer);
18386
+ this.list.parentElement.style.width = this.resizeWidth + 'px';
18387
+ this.list.parentElement.style.height = this.resizeHeight + 'px';
18388
+ this.list.parentElement.style.maxHeight = this.resizeHeight + 'px';
18389
+ this.list.style.maxHeight = this.resizeHeight + "px";
18390
+ }
18391
+ if (this.resizer) {
18392
+ EventHandler.add(this.resizer, 'mousedown', this.startResizing, this);
18393
+ EventHandler.add(this.resizer, 'touchstart', this.startResizing, this);
18394
+ }
18395
+ };
18396
+ MultiSelect.prototype.startResizing = function (event) {
18397
+ this.isResizing = true;
18398
+ this.trigger('resizeStart', event);
18399
+ // Get initial touch or mouse coordinates
18400
+ var clientX = (event instanceof MouseEvent) ? event.clientX : event.touches[0].clientX;
18401
+ var clientY = (event instanceof MouseEvent) ? event.clientY : event.touches[0].clientY;
18402
+ if (this.list && this.list.parentElement) {
18403
+ this.originalWidth = this.list.parentElement.offsetWidth;
18404
+ this.originalHeight = this.list.parentElement.offsetHeight;
18405
+ this.originalMouseX = clientX;
18406
+ this.originalMouseY = clientY;
18407
+ }
18408
+ this.resizingWireEvent();
18409
+ // Prevent default behavior like text selection
18410
+ if (event) {
18411
+ event.preventDefault();
18412
+ }
18413
+ };
18414
+ MultiSelect.prototype.resizePopup = function (event) {
18415
+ if (!this.isResizing) {
18416
+ return;
18417
+ }
18418
+ this.trigger('resizing', event);
18419
+ // Get the current touch or mouse position
18420
+ var clientX = (event instanceof MouseEvent) ? event.clientX : event.touches[0].clientX;
18421
+ var clientY = (event instanceof MouseEvent) ? event.clientY : event.touches[0].clientY;
18422
+ // Calculate the new width and height based on drag
18423
+ var dx = clientX - this.originalMouseX;
18424
+ var dy = clientY - this.originalMouseY;
18425
+ // Set minimum width and height (100px)
18426
+ var minWidth = 100;
18427
+ var minHeight = 130;
18428
+ // Ensure the new width and height are not smaller than the minimum
18429
+ this.resizeWidth = Math.max(this.originalWidth + dx, minWidth);
18430
+ this.resizeHeight = Math.max(this.originalHeight + dy, minHeight);
18431
+ if (this.list && this.list.parentElement) {
18432
+ // Set minimum width and height (100px)
18433
+ var minWidth_1 = parseInt(window.getComputedStyle(this.list.parentElement).minWidth, 10);
18434
+ var minHeight_1 = parseInt(window.getComputedStyle(this.list.parentElement).minHeight, 10);
18435
+ minWidth_1 = minWidth_1 || 100;
18436
+ minHeight_1 = minHeight_1 || 120;
18437
+ // Ensure the new width and height are not smaller than the minimum
18438
+ this.resizeWidth = Math.max(this.originalWidth + dx, minWidth_1);
18439
+ this.resizeHeight = Math.max(this.originalHeight + dy, minHeight_1);
18440
+ this.list.parentElement.style.width = this.resizeWidth + "px";
18441
+ this.list.parentElement.style.height = this.resizeHeight + "px";
18442
+ this.list.parentElement.style.maxHeight = this.resizeHeight + "px";
18443
+ this.list.style.maxHeight = this.resizeHeight + "px";
18444
+ if (this.fixedHeaderElement && this.ulElement) {
18445
+ this.fixedHeaderElement.style.width = this.ulElement.offsetWidth + "px";
18446
+ }
18447
+ }
18448
+ if (event) {
18449
+ event.preventDefault();
18450
+ }
18451
+ };
18452
+ MultiSelect.prototype.stopResizing = function (event) {
18453
+ if (this.isResizing) {
18454
+ this.isResizing = false;
18455
+ this.trigger('resizeStop', event);
18456
+ this.resizingUnWireEvent();
18457
+ }
18458
+ if (event) {
18459
+ event.preventDefault();
18460
+ }
18461
+ };
18016
18462
  MultiSelect.prototype.getListHeight = function () {
18017
18463
  var listParent = this.createElement('div', {
18018
18464
  className: 'e-dropdownbase'
@@ -18400,6 +18846,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18400
18846
  this.inputElement = null;
18401
18847
  this.delimiterWrapper = null;
18402
18848
  this.liCollections = null;
18849
+ this.popupContentElement = null;
18403
18850
  this.header = null;
18404
18851
  this.mainList = null;
18405
18852
  this.mainListCollection = null;
@@ -18509,6 +18956,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18509
18956
  __decorate$5([
18510
18957
  Property(false)
18511
18958
  ], MultiSelect.prototype, "readonly", void 0);
18959
+ __decorate$5([
18960
+ Property(false)
18961
+ ], MultiSelect.prototype, "allowResize", void 0);
18512
18962
  __decorate$5([
18513
18963
  Property(null)
18514
18964
  ], MultiSelect.prototype, "text", void 0);
@@ -18590,6 +19040,15 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18590
19040
  __decorate$5([
18591
19041
  Event()
18592
19042
  ], MultiSelect.prototype, "chipSelection", void 0);
19043
+ __decorate$5([
19044
+ Event()
19045
+ ], MultiSelect.prototype, "resizeStop", void 0);
19046
+ __decorate$5([
19047
+ Event()
19048
+ ], MultiSelect.prototype, "resizing", void 0);
19049
+ __decorate$5([
19050
+ Event()
19051
+ ], MultiSelect.prototype, "resizeStart", void 0);
18593
19052
  __decorate$5([
18594
19053
  Event()
18595
19054
  ], MultiSelect.prototype, "filtering", void 0);
@@ -19338,7 +19797,7 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
19338
19797
  new Sortable(this.ulElement, {
19339
19798
  scope: this.scope,
19340
19799
  itemClass: 'e-list-item',
19341
- dragStart: this.triggerDragStart.bind(this),
19800
+ beforeDragStart: this.triggerDragStart.bind(this),
19342
19801
  drag: this.triggerDrag.bind(this),
19343
19802
  beforeDrop: this.beforeDragEnd.bind(this),
19344
19803
  drop: this.dragEnd.bind(this),
@@ -19588,11 +20047,11 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
19588
20047
  ListBox.prototype.triggerDragStart = function (args) {
19589
20048
  var _this = this;
19590
20049
  var badge;
19591
- args = extend(this.getDragArgs(args), { dragSelected: true });
20050
+ var extendedArgs = extend(this.getDragArgs(args), { dragSelected: true }, { cancel: false });
19592
20051
  if (Browser.isIos) {
19593
20052
  this.list.style.overflow = 'hidden';
19594
20053
  }
19595
- this.trigger('dragStart', args, function (dragEventArgs) {
20054
+ this.trigger('dragStart', extendedArgs, function (dragEventArgs) {
19596
20055
  _this.allowDragAll = dragEventArgs.dragSelected;
19597
20056
  if (!_this.allowDragAll) {
19598
20057
  badge = _this.ulElement.getElementsByClassName('e-list-badge')[0];
@@ -19600,6 +20059,9 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
19600
20059
  detach(badge);
19601
20060
  }
19602
20061
  }
20062
+ if (dragEventArgs.cancel) {
20063
+ args.cancel = true;
20064
+ }
19603
20065
  });
19604
20066
  };
19605
20067
  ListBox.prototype.triggerDrag = function (args) {
@@ -19830,7 +20292,9 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
19830
20292
  listObj.liCollections = liColl;
19831
20293
  listObj.jsonData = extend([], [], jsonData, false);
19832
20294
  listObj.listData = extend([], [], listData, false);
19833
- listObj.sortedData = extend([], [], sortedData, false);
20295
+ if (listObj.sortOrder === 'None') {
20296
+ listObj.sortedData = extend([], [], sortedData, false);
20297
+ }
19834
20298
  if (this.listData.length === 0) {
19835
20299
  this.l10nUpdate();
19836
20300
  }
@@ -22186,6 +22650,9 @@ var Mention = /** @__PURE__ @class */ (function (_super) {
22186
22650
  this.hidePopup();
22187
22651
  this.lineBreak = true;
22188
22652
  }
22653
+ else if ((e.key === 'Backspace' || e.key === 'Delete') && this.range && this.range.startOffset !== this.range.endOffset) {
22654
+ this.range.deleteContents();
22655
+ }
22189
22656
  return;
22190
22657
  }
22191
22658
  if (lastWordRange.includes(this.mentionChar)) {
@@ -22963,7 +23430,9 @@ var Mention = /** @__PURE__ @class */ (function (_super) {
22963
23430
  };
22964
23431
  Mention.prototype.scrollTop = function () {
22965
23432
  if (!isNullOrUndefined(this.selectedLI)) {
22966
- var nextOffset = this.selectedLI.offsetTop - this.list.scrollTop;
23433
+ var nextOffset = !isNullOrUndefined(this.fields.groupBy) && !isNullOrUndefined(this.fixedHeaderElement) ?
23434
+ this.selectedLI.offsetTop - (this.list.scrollTop + this.fixedHeaderElement.offsetHeight) :
23435
+ this.selectedLI.offsetTop - this.list.scrollTop;
22967
23436
  nextOffset = this.fields.groupBy && nextOffset;
22968
23437
  var boxRange = (this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop);
22969
23438
  if (this.activeIndex === 0) {