@syncfusion/ej2-dropdowns 25.2.7-130084 → 26.1.35-750253

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 (290) hide show
  1. package/.eslintrc.json +3 -2
  2. package/{ReadMe.md → README.md} +1 -1
  3. package/dist/ej2-dropdowns.min.js +10 -1
  4. package/dist/ej2-dropdowns.umd.min.js +10 -1
  5. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es2015.js +505 -215
  7. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  8. package/dist/es6/ej2-dropdowns.es5.js +498 -207
  9. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  10. package/dist/global/ej2-dropdowns.min.js +10 -1
  11. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  12. package/dist/global/index.d.ts +9 -0
  13. package/package.json +80 -79
  14. package/src/auto-complete/auto-complete-model.d.ts +10 -10
  15. package/src/auto-complete/auto-complete.d.ts +12 -12
  16. package/src/auto-complete/auto-complete.js +3 -3
  17. package/src/combo-box/combo-box-model.d.ts +17 -17
  18. package/src/combo-box/combo-box.d.ts +27 -27
  19. package/src/combo-box/combo-box.js +25 -10
  20. package/src/common/interface.js +0 -1
  21. package/src/common/virtual-scroll.js +1 -0
  22. package/src/drop-down-base/drop-down-base-model.d.ts +21 -14
  23. package/src/drop-down-base/drop-down-base.d.ts +43 -17
  24. package/src/drop-down-base/drop-down-base.js +65 -10
  25. package/src/drop-down-list/drop-down-list-model.d.ts +3 -3
  26. package/src/drop-down-list/drop-down-list.d.ts +19 -5
  27. package/src/drop-down-list/drop-down-list.js +130 -5
  28. package/src/drop-down-tree/drop-down-tree-model.d.ts +16 -16
  29. package/src/drop-down-tree/drop-down-tree.d.ts +18 -14
  30. package/src/drop-down-tree/drop-down-tree.js +52 -38
  31. package/src/list-box/list-box-model.d.ts +2 -2
  32. package/src/list-box/list-box.d.ts +2 -2
  33. package/src/list-box/list-box.js +30 -9
  34. package/src/mention/mention.js +23 -8
  35. package/src/multi-select/interface.js +0 -1
  36. package/src/multi-select/multi-select.d.ts +15 -0
  37. package/src/multi-select/multi-select.js +135 -12
  38. package/styles/auto-complete/_bootstrap5.3-definition.scss +2 -0
  39. package/styles/auto-complete/_fluent2-definition.scss +2 -0
  40. package/styles/auto-complete/bootstrap-dark.css +5 -2
  41. package/styles/auto-complete/bootstrap.css +5 -2
  42. package/styles/auto-complete/bootstrap4.css +6 -2
  43. package/styles/auto-complete/bootstrap5-dark.css +6 -2
  44. package/styles/auto-complete/bootstrap5.css +6 -2
  45. package/styles/auto-complete/fabric-dark.css +3 -1
  46. package/styles/auto-complete/fabric.css +3 -1
  47. package/styles/auto-complete/fluent-dark.css +6 -2
  48. package/styles/auto-complete/fluent.css +6 -2
  49. package/styles/auto-complete/fluent2.css +1140 -0
  50. package/styles/auto-complete/fluent2.scss +4 -0
  51. package/styles/auto-complete/highcontrast-light.css +3 -1
  52. package/styles/auto-complete/highcontrast.css +3 -1
  53. package/styles/auto-complete/material-dark.css +16 -5
  54. package/styles/auto-complete/material.css +16 -5
  55. package/styles/auto-complete/material3-dark.css +17 -6
  56. package/styles/auto-complete/material3-dark.scss +1 -1
  57. package/styles/auto-complete/material3.css +17 -6
  58. package/styles/auto-complete/material3.scss +1 -1
  59. package/styles/auto-complete/tailwind-dark.css +16 -5
  60. package/styles/auto-complete/tailwind.css +16 -5
  61. package/styles/bootstrap-dark.css +196 -228
  62. package/styles/bootstrap-dark.scss +28 -8
  63. package/styles/bootstrap.css +196 -228
  64. package/styles/bootstrap.scss +28 -8
  65. package/styles/bootstrap4.css +199 -229
  66. package/styles/bootstrap4.scss +28 -8
  67. package/styles/bootstrap5-dark.css +196 -221
  68. package/styles/bootstrap5-dark.scss +28 -8
  69. package/styles/bootstrap5.css +196 -221
  70. package/styles/bootstrap5.scss +28 -8
  71. package/styles/combo-box/_bootstrap5.3-definition.scss +2 -0
  72. package/styles/combo-box/_fluent2-definition.scss +2 -0
  73. package/styles/combo-box/bootstrap-dark.css +5 -2
  74. package/styles/combo-box/bootstrap.css +5 -2
  75. package/styles/combo-box/bootstrap4.css +6 -2
  76. package/styles/combo-box/bootstrap5-dark.css +6 -2
  77. package/styles/combo-box/bootstrap5.css +6 -2
  78. package/styles/combo-box/fabric-dark.css +3 -1
  79. package/styles/combo-box/fabric.css +3 -1
  80. package/styles/combo-box/fluent-dark.css +6 -2
  81. package/styles/combo-box/fluent.css +6 -2
  82. package/styles/combo-box/fluent2.css +1140 -0
  83. package/styles/combo-box/fluent2.scss +4 -0
  84. package/styles/combo-box/highcontrast-light.css +3 -1
  85. package/styles/combo-box/highcontrast.css +3 -1
  86. package/styles/combo-box/material-dark.css +16 -5
  87. package/styles/combo-box/material.css +16 -5
  88. package/styles/combo-box/material3-dark.css +17 -6
  89. package/styles/combo-box/material3-dark.scss +1 -1
  90. package/styles/combo-box/material3.css +17 -6
  91. package/styles/combo-box/material3.scss +1 -1
  92. package/styles/combo-box/tailwind-dark.css +16 -5
  93. package/styles/combo-box/tailwind.css +16 -5
  94. package/styles/drop-down-base/_bds-definition.scss +2 -2
  95. package/styles/drop-down-base/_bootstrap5.3-definition.scss +117 -0
  96. package/styles/drop-down-base/_fluent2-definition.scss +134 -0
  97. package/styles/drop-down-base/_layout.scss +12 -2
  98. package/styles/drop-down-base/_material3-definition.scss +0 -11
  99. package/styles/drop-down-base/_theme.scss +2 -11
  100. package/styles/drop-down-base/bootstrap-dark.css +2 -1
  101. package/styles/drop-down-base/bootstrap.css +2 -1
  102. package/styles/drop-down-base/bootstrap4.css +2 -1
  103. package/styles/drop-down-base/bootstrap5-dark.css +2 -1
  104. package/styles/drop-down-base/bootstrap5.css +2 -1
  105. package/styles/drop-down-base/fabric-dark.css +2 -1
  106. package/styles/drop-down-base/fabric.css +2 -1
  107. package/styles/drop-down-base/fluent-dark.css +2 -1
  108. package/styles/drop-down-base/fluent.css +2 -1
  109. package/styles/drop-down-base/fluent2.css +1447 -0
  110. package/styles/drop-down-base/fluent2.scss +3 -0
  111. package/styles/drop-down-base/highcontrast-light.css +2 -1
  112. package/styles/drop-down-base/highcontrast.css +2 -1
  113. package/styles/drop-down-base/material-dark.css +2 -1
  114. package/styles/drop-down-base/material.css +2 -1
  115. package/styles/drop-down-base/material3-dark.css +9 -2
  116. package/styles/drop-down-base/material3-dark.scss +1 -1
  117. package/styles/drop-down-base/material3.css +9 -2
  118. package/styles/drop-down-base/material3.scss +1 -1
  119. package/styles/drop-down-base/tailwind-dark.css +2 -1
  120. package/styles/drop-down-base/tailwind.css +2 -1
  121. package/styles/drop-down-list/_bootstrap5.3-definition.scss +201 -0
  122. package/styles/drop-down-list/_fluent2-definition.scss +134 -0
  123. package/styles/drop-down-list/_layout.scss +5 -3
  124. package/styles/drop-down-list/_material3-definition.scss +0 -8
  125. package/styles/drop-down-list/bootstrap-dark.css +38 -3
  126. package/styles/drop-down-list/bootstrap.css +38 -3
  127. package/styles/drop-down-list/bootstrap4.css +39 -3
  128. package/styles/drop-down-list/bootstrap5-dark.css +39 -3
  129. package/styles/drop-down-list/bootstrap5.css +39 -3
  130. package/styles/drop-down-list/fabric-dark.css +36 -2
  131. package/styles/drop-down-list/fabric.css +36 -2
  132. package/styles/drop-down-list/fluent-dark.css +39 -3
  133. package/styles/drop-down-list/fluent.css +39 -3
  134. package/styles/drop-down-list/fluent2.css +1684 -0
  135. package/styles/drop-down-list/fluent2.scss +9 -0
  136. package/styles/drop-down-list/highcontrast-light.css +36 -2
  137. package/styles/drop-down-list/highcontrast.css +36 -2
  138. package/styles/drop-down-list/icons/_bootstrap5.3.scss +14 -0
  139. package/styles/drop-down-list/icons/_fluent2.scss +14 -0
  140. package/styles/drop-down-list/material-dark.css +58 -7
  141. package/styles/drop-down-list/material.css +72 -9
  142. package/styles/drop-down-list/material3-dark.css +74 -10
  143. package/styles/drop-down-list/material3-dark.scss +1 -1
  144. package/styles/drop-down-list/material3.css +74 -10
  145. package/styles/drop-down-list/material3.scss +1 -1
  146. package/styles/drop-down-list/tailwind-dark.css +49 -6
  147. package/styles/drop-down-list/tailwind.css +49 -6
  148. package/styles/drop-down-tree/_bds-definition.scss +5 -0
  149. package/styles/drop-down-tree/_bootstrap4-definition.scss +1 -0
  150. package/styles/drop-down-tree/_bootstrap5-definition.scss +5 -0
  151. package/styles/drop-down-tree/_bootstrap5.3-definition.scss +66 -0
  152. package/styles/drop-down-tree/_fluent-definition.scss +4 -0
  153. package/styles/drop-down-tree/_fluent2-definition.scss +75 -0
  154. package/styles/drop-down-tree/_layout.scss +289 -327
  155. package/styles/drop-down-tree/_material3-definition.scss +3 -5
  156. package/styles/drop-down-tree/_tailwind-definition.scss +7 -2
  157. package/styles/drop-down-tree/_theme.scss +24 -41
  158. package/styles/drop-down-tree/bootstrap-dark.css +63 -29
  159. package/styles/drop-down-tree/bootstrap.css +63 -29
  160. package/styles/drop-down-tree/bootstrap4.css +64 -30
  161. package/styles/drop-down-tree/bootstrap5-dark.css +63 -27
  162. package/styles/drop-down-tree/bootstrap5.css +63 -27
  163. package/styles/drop-down-tree/fabric-dark.css +63 -29
  164. package/styles/drop-down-tree/fabric.css +63 -29
  165. package/styles/drop-down-tree/fluent-dark.css +71 -35
  166. package/styles/drop-down-tree/fluent.css +71 -35
  167. package/styles/drop-down-tree/fluent2.css +1732 -0
  168. package/styles/drop-down-tree/fluent2.scss +9 -0
  169. package/styles/drop-down-tree/highcontrast-light.css +63 -29
  170. package/styles/drop-down-tree/highcontrast.css +63 -23
  171. package/styles/drop-down-tree/icons/_bootstrap5.3.scss +11 -0
  172. package/styles/drop-down-tree/icons/_fluent2.scss +14 -0
  173. package/styles/drop-down-tree/material-dark.css +80 -43
  174. package/styles/drop-down-tree/material.css +97 -51
  175. package/styles/drop-down-tree/material3-dark.css +85 -32
  176. package/styles/drop-down-tree/material3-dark.scss +1 -1
  177. package/styles/drop-down-tree/material3.css +85 -32
  178. package/styles/drop-down-tree/material3.scss +1 -1
  179. package/styles/drop-down-tree/tailwind-dark.css +72 -28
  180. package/styles/drop-down-tree/tailwind.css +72 -28
  181. package/styles/fabric-dark.css +194 -227
  182. package/styles/fabric-dark.scss +28 -8
  183. package/styles/fabric.css +194 -227
  184. package/styles/fabric.scss +28 -8
  185. package/styles/fluent-dark.css +206 -236
  186. package/styles/fluent-dark.scss +28 -8
  187. package/styles/fluent.css +206 -236
  188. package/styles/fluent.scss +28 -8
  189. package/styles/fluent2.css +4771 -0
  190. package/styles/fluent2.scss +28 -0
  191. package/styles/highcontrast-light.css +197 -227
  192. package/styles/highcontrast-light.scss +28 -8
  193. package/styles/highcontrast.css +197 -221
  194. package/styles/highcontrast.scss +28 -8
  195. package/styles/list-box/_bootstrap-dark-definition.scss +0 -2
  196. package/styles/list-box/_bootstrap5.3-definition.scss +120 -0
  197. package/styles/list-box/_fabric-dark-definition.scss +0 -2
  198. package/styles/list-box/_fluent2-definition.scss +121 -0
  199. package/styles/list-box/_highcontrast-light-definition.scss +0 -2
  200. package/styles/list-box/_layout.scss +65 -44
  201. package/styles/list-box/_material-dark-definition.scss +0 -2
  202. package/styles/list-box/_tailwind-definition.scss +1 -1
  203. package/styles/list-box/_theme.scss +36 -65
  204. package/styles/list-box/bootstrap-dark.css +72 -112
  205. package/styles/list-box/bootstrap.css +72 -112
  206. package/styles/list-box/bootstrap4.css +72 -112
  207. package/styles/list-box/bootstrap5-dark.css +72 -106
  208. package/styles/list-box/bootstrap5.css +72 -106
  209. package/styles/list-box/fabric-dark.css +72 -112
  210. package/styles/list-box/fabric.css +72 -112
  211. package/styles/list-box/fluent-dark.css +72 -112
  212. package/styles/list-box/fluent.css +72 -112
  213. package/styles/list-box/fluent2.css +2029 -0
  214. package/styles/list-box/fluent2.scss +5 -0
  215. package/styles/list-box/highcontrast-light.css +72 -112
  216. package/styles/list-box/highcontrast.css +72 -112
  217. package/styles/list-box/icons/_bootstrap5.3.scss +25 -0
  218. package/styles/list-box/icons/_fluent2.scss +25 -0
  219. package/styles/list-box/material-dark.css +72 -112
  220. package/styles/list-box/material.css +72 -112
  221. package/styles/list-box/material3-dark.css +73 -113
  222. package/styles/list-box/material3-dark.scss +1 -1
  223. package/styles/list-box/material3.css +73 -113
  224. package/styles/list-box/material3.scss +1 -1
  225. package/styles/list-box/tailwind-dark.css +74 -114
  226. package/styles/list-box/tailwind.css +74 -114
  227. package/styles/material-dark.css +236 -260
  228. package/styles/material-dark.scss +28 -8
  229. package/styles/material.css +253 -284
  230. package/styles/material.scss +28 -8
  231. package/styles/material3-dark.css +253 -266
  232. package/styles/material3-dark.scss +29 -9
  233. package/styles/material3.css +253 -266
  234. package/styles/material3.scss +29 -9
  235. package/styles/mention/_bootstrap5.3-definition.scss +1 -0
  236. package/styles/mention/_fluent2-definition.scss +1 -0
  237. package/styles/mention/bootstrap-dark.css +24 -0
  238. package/styles/mention/bootstrap.css +24 -0
  239. package/styles/mention/bootstrap4.css +24 -0
  240. package/styles/mention/bootstrap5-dark.css +24 -0
  241. package/styles/mention/bootstrap5.css +24 -0
  242. package/styles/mention/fabric-dark.css +24 -0
  243. package/styles/mention/fabric.css +24 -0
  244. package/styles/mention/fluent-dark.css +24 -0
  245. package/styles/mention/fluent.css +24 -0
  246. package/styles/mention/fluent2.css +1130 -0
  247. package/styles/mention/fluent2.scss +6 -0
  248. package/styles/mention/highcontrast-light.css +24 -0
  249. package/styles/mention/highcontrast.css +24 -0
  250. package/styles/mention/material-dark.css +24 -0
  251. package/styles/mention/material.css +24 -0
  252. package/styles/mention/material3-dark.css +25 -1
  253. package/styles/mention/material3-dark.scss +1 -1
  254. package/styles/mention/material3.css +25 -1
  255. package/styles/mention/material3.scss +1 -1
  256. package/styles/mention/tailwind-dark.css +24 -0
  257. package/styles/mention/tailwind.css +24 -0
  258. package/styles/multi-select/_bootstrap5.3-definition.scss +230 -0
  259. package/styles/multi-select/_fluent2-definition.scss +236 -0
  260. package/styles/multi-select/_layout.scss +32 -38
  261. package/styles/multi-select/_material3-definition.scss +0 -15
  262. package/styles/multi-select/_theme.scss +0 -4
  263. package/styles/multi-select/bootstrap-dark.css +67 -28
  264. package/styles/multi-select/bootstrap.css +67 -28
  265. package/styles/multi-select/bootstrap4.css +70 -29
  266. package/styles/multi-select/bootstrap5-dark.css +67 -28
  267. package/styles/multi-select/bootstrap5.css +67 -28
  268. package/styles/multi-select/fabric-dark.css +67 -28
  269. package/styles/multi-select/fabric.css +67 -28
  270. package/styles/multi-select/fluent-dark.css +69 -29
  271. package/styles/multi-select/fluent.css +69 -29
  272. package/styles/multi-select/fluent2.css +2663 -0
  273. package/styles/multi-select/fluent2.scss +9 -0
  274. package/styles/multi-select/highcontrast-light.css +70 -28
  275. package/styles/multi-select/highcontrast.css +70 -28
  276. package/styles/multi-select/icons/_bootstrap5.3.scss +26 -0
  277. package/styles/multi-select/icons/_fluent2.scss +692 -0
  278. package/styles/multi-select/material-dark.css +88 -32
  279. package/styles/multi-select/material.css +102 -34
  280. package/styles/multi-select/material3-dark.css +109 -35
  281. package/styles/multi-select/material3-dark.scss +1 -1
  282. package/styles/multi-select/material3.css +109 -35
  283. package/styles/multi-select/material3.scss +1 -1
  284. package/styles/multi-select/tailwind-dark.css +67 -28
  285. package/styles/multi-select/tailwind.css +67 -28
  286. package/styles/tailwind-dark.css +217 -233
  287. package/styles/tailwind-dark.scss +28 -8
  288. package/styles/tailwind.css +217 -233
  289. package/styles/tailwind.scss +28 -8
  290. package/CHANGELOG.md +0 -2200
@@ -906,6 +906,13 @@ export declare class MultiSelect extends DropDownBase implements IInput {
906
906
  */
907
907
  render(): void;
908
908
  private getListHeight;
909
+ /**
910
+ * Removes disabled values from the given array.
911
+ *
912
+ * @param { number[] | string[] | boolean[] | object[] } value - The array to check.
913
+ * @returns {void}
914
+ */
915
+ private removeDisabledItemsValue;
909
916
  private checkInitialValue;
910
917
  private checkAutoFocus;
911
918
  private updatevirtualizationList;
@@ -913,6 +920,14 @@ export declare class MultiSelect extends DropDownBase implements IInput {
913
920
  private addValidInputClass;
914
921
  private dropDownIcon;
915
922
  private initialUpdate;
923
+ /**
924
+ * Method to disable specific item in the popup.
925
+ *
926
+ * @param {string | number | object | HTMLLIElement} item - Specifies the item to be disabled.
927
+ * @returns {void}
928
+
929
+ */
930
+ disableItem(item: string | number | object | HTMLLIElement): void;
916
931
  /**
917
932
  * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.
918
933
  *
@@ -358,13 +358,26 @@ var MultiSelect = /** @class */ (function (_super) {
358
358
  }
359
359
  else {
360
360
  if (this.enableVirtualization) {
361
- element = this.ulElement.querySelector('li.'
362
- + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');
361
+ if (this.fields.disabled) {
362
+ element = this.ulElement.querySelector('li.'
363
+ + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)' + ':not(.' + DISABLED + ')');
364
+ }
365
+ else {
366
+ element = this.ulElement.querySelector('li.'
367
+ + dropDownBaseClasses.li + ':not(.e-virtual-list)' + ':not(.e-hide-listitem)');
368
+ }
363
369
  }
364
370
  else {
365
- element = this.ulElement.querySelector('li.'
366
- + dropDownBaseClasses.li + ':not(.'
367
- + HIDE_LIST + ')');
371
+ if (this.fields.disabled) {
372
+ element = this.ulElement.querySelector('li.'
373
+ + dropDownBaseClasses.li + ':not(.'
374
+ + HIDE_LIST + ')' + ':not(.' + DISABLED + ')');
375
+ }
376
+ else {
377
+ element = this.ulElement.querySelector('li.'
378
+ + dropDownBaseClasses.li + ':not(.'
379
+ + HIDE_LIST + ')');
380
+ }
368
381
  }
369
382
  }
370
383
  if (element !== null) {
@@ -2097,6 +2110,21 @@ var MultiSelect = /** @class */ (function (_super) {
2097
2110
  }
2098
2111
  }
2099
2112
  }
2113
+ var focusedLi = this.list ? this.list.querySelector('.e-item-focus') : null;
2114
+ if (this.isDisabledElement(focusedLi)) {
2115
+ if (this.list.querySelectorAll('.e-list-item:not(.e-hide-listitem):not(.e-disabled)').length === 0) {
2116
+ this.removeFocus();
2117
+ return;
2118
+ }
2119
+ var index = this.getIndexByValue(focusedLi.getAttribute('data-value'));
2120
+ if (index === 0 && this.mode !== 'CheckBox') {
2121
+ position = 1;
2122
+ }
2123
+ if (index === (this.list.querySelectorAll('.e-list-item:not(.e-hide-listitem)').length - 1)) {
2124
+ position = -1;
2125
+ }
2126
+ this.moveByList(position);
2127
+ }
2100
2128
  };
2101
2129
  MultiSelect.prototype.getElementByValue = function (value) {
2102
2130
  var item;
@@ -2287,7 +2315,7 @@ var MultiSelect = /** @class */ (function (_super) {
2287
2315
  }
2288
2316
  _this.setProperties({ value: [].concat([], removeVal) }, true);
2289
2317
  if (_this.enableVirtualization) {
2290
- var currentText = index == 0 ? _this.text.replace(_this.text.split(_this.delimiterChar)[index] + _this.delimiterChar, '') : _this.text.replace(_this.delimiterChar + _this.text.split(_this.delimiterChar)[index], '');
2318
+ var currentText = index == 0 && _this.text.split(_this.delimiterChar) && _this.text.split(_this.delimiterChar).length == 1 ? _this.text.replace(_this.text.split(_this.delimiterChar)[index], '') : index == 0 ? _this.text.replace(_this.text.split(_this.delimiterChar)[index] + _this.delimiterChar, '') : _this.text.replace(_this.delimiterChar + _this.text.split(_this.delimiterChar)[index], '');
2291
2319
  _this.setProperties({ text: currentText.toString() }, true);
2292
2320
  }
2293
2321
  if (element_1 !== null) {
@@ -3679,7 +3707,7 @@ var MultiSelect = /** @class */ (function (_super) {
3679
3707
  }
3680
3708
  };
3681
3709
  MultiSelect.prototype.addListFocus = function (element) {
3682
- if (this.enabled && this.isValidLI(element)) {
3710
+ if (this.enabled && (this.isValidLI(element) || (this.fields.disabled && this.isDisabledElement(element)))) {
3683
3711
  this.removeFocus();
3684
3712
  addClass([element], dropDownBaseClasses.focus);
3685
3713
  this.updateAriaActiveDescendant();
@@ -4270,14 +4298,14 @@ var MultiSelect = /** @class */ (function (_super) {
4270
4298
  var li;
4271
4299
  if (!isNullOrUndefined(this.list)) {
4272
4300
  li = this.list.querySelectorAll(state ?
4273
- 'li.e-list-item:not([aria-selected="true"]):not(.e-reorder-hide):not(.e-virtual-list)' :
4274
- 'li.e-list-item[aria-selected="true"]:not(.e-reorder-hide):not(.e-virtual-list)');
4301
+ 'li.e-list-item:not([aria-selected="true"]):not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)' :
4302
+ 'li.e-list-item[aria-selected="true"]:not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)');
4275
4303
  }
4276
4304
  if (this.value && this.value.length && event && event.target
4277
4305
  && closest(event.target, '.e-close-hooker') && this.allowFiltering) {
4278
4306
  li = this.mainList.querySelectorAll(state ?
4279
- 'li.e-list-item:not([aria-selected="true"]):not(.e-reorder-hide):not(.e-virtual-list)' :
4280
- 'li.e-list-item[aria-selected="true"]:not(.e-reorder-hide):not(.e-virtual-list)');
4307
+ 'li.e-list-item:not([aria-selected="true"]):not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)' :
4308
+ 'li.e-list-item[aria-selected="true"]:not(.e-reorder-hide):not(.e-disabled):not(.e-virtual-list)');
4281
4309
  }
4282
4310
  if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {
4283
4311
  var target = (event ? (this.groupTemplate ? closest(event.target, '.e-list-group-item') : event.target) : null);
@@ -4725,9 +4753,16 @@ var MultiSelect = /** @class */ (function (_super) {
4725
4753
  this.updateClearButton(newProp.showClearButton);
4726
4754
  break;
4727
4755
  case 'text':
4756
+ if (this.fields.disabled) {
4757
+ this.text =
4758
+ this.text && !this.isDisabledItemByIndex(this.getIndexByValue(this.getValueByText(this.text))) ? this.text : null;
4759
+ }
4728
4760
  this.updateVal(this.value, this.value, 'text');
4729
4761
  break;
4730
4762
  case 'value':
4763
+ if (this.fields.disabled) {
4764
+ this.removeDisabledItemsValue(this.value);
4765
+ }
4731
4766
  this.updateVal(this.value, oldProp.value, 'value');
4732
4767
  this.addValidInputClass();
4733
4768
  if (!this.closePopupOnSelect && this.isPopupOpen()) {
@@ -5299,8 +5334,33 @@ var MultiSelect = /** @class */ (function (_super) {
5299
5334
  listParent.remove();
5300
5335
  return listItemHeight;
5301
5336
  };
5337
+ /**
5338
+ * Removes disabled values from the given array.
5339
+ *
5340
+ * @param { number[] | string[] | boolean[] | object[] } value - The array to check.
5341
+ * @returns {void}
5342
+ */
5343
+ MultiSelect.prototype.removeDisabledItemsValue = function (value) {
5344
+ if (value) {
5345
+ var data = [];
5346
+ var dataIndex = 0;
5347
+ for (var index = 0; index < value.length; index++) {
5348
+ var indexValue = value[index];
5349
+ if (typeof (indexValue) === 'object') {
5350
+ indexValue = JSON.parse(JSON.stringify(indexValue))[this.fields.value];
5351
+ }
5352
+ if ((indexValue != null) && !(this.isDisabledItemByIndex(this.getIndexByValue(indexValue)))) {
5353
+ data[dataIndex++] = value[index];
5354
+ }
5355
+ }
5356
+ this.value = data.length > 0 ? data : null;
5357
+ }
5358
+ };
5302
5359
  MultiSelect.prototype.checkInitialValue = function () {
5303
5360
  var _this = this;
5361
+ if (this.fields.disabled) {
5362
+ this.removeDisabledItemsValue(this.value);
5363
+ }
5304
5364
  var isData = this.dataSource instanceof Array ? (this.dataSource.length > 0)
5305
5365
  : !isNullOrUndefined(this.dataSource);
5306
5366
  if (!(this.value && this.value.length) &&
@@ -5339,6 +5399,9 @@ var MultiSelect = /** @class */ (function (_super) {
5339
5399
  _super.prototype.render.call(this);
5340
5400
  }
5341
5401
  }
5402
+ if (this.fields.disabled) {
5403
+ this.text = this.text && !this.isDisabledItemByIndex(this.getIndexByValue(this.getValueByText(this.text))) ? this.text : null;
5404
+ }
5342
5405
  if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {
5343
5406
  this.initialTextUpdate();
5344
5407
  }
@@ -5473,6 +5536,66 @@ var MultiSelect = /** @class */ (function (_super) {
5473
5536
  this.refreshInputHight();
5474
5537
  this.checkPlaceholderSize();
5475
5538
  };
5539
+ /**
5540
+ * Method to disable specific item in the popup.
5541
+ *
5542
+ * @param {string | number | object | HTMLLIElement} item - Specifies the item to be disabled.
5543
+ * @returns {void}
5544
+
5545
+ */
5546
+ MultiSelect.prototype.disableItem = function (item) {
5547
+ if (this.fields.disabled) {
5548
+ if (!this.list) {
5549
+ this.renderList();
5550
+ }
5551
+ var itemIndex = -1;
5552
+ if (this.liCollections && this.liCollections.length > 0 && this.listData && this.fields.disabled) {
5553
+ if (typeof (item) === 'string') {
5554
+ itemIndex = this.getIndexByValue(item);
5555
+ }
5556
+ else if (typeof item === 'object') {
5557
+ if (item instanceof HTMLLIElement) {
5558
+ for (var index = 0; index < this.liCollections.length; index++) {
5559
+ if (this.liCollections[index] === item) {
5560
+ itemIndex = this.getIndexByValue(item.getAttribute('data-value'));
5561
+ break;
5562
+ }
5563
+ }
5564
+ }
5565
+ else {
5566
+ var value = JSON.parse(JSON.stringify(item))[this.fields.value];
5567
+ for (var index = 0; index < this.listData.length; index++) {
5568
+ if (JSON.parse(JSON.stringify(this.listData[index]))[this.fields.value] === value) {
5569
+ itemIndex = this.getIndexByValue(value);
5570
+ break;
5571
+ }
5572
+ }
5573
+ }
5574
+ }
5575
+ else {
5576
+ itemIndex = item;
5577
+ }
5578
+ var isValidIndex = itemIndex < this.liCollections.length && itemIndex > -1;
5579
+ if (isValidIndex && !(JSON.parse(JSON.stringify(this.listData[itemIndex]))[this.fields.disabled])) {
5580
+ var li = this.liCollections[itemIndex];
5581
+ if (li) {
5582
+ this.disableListItem(li);
5583
+ var parsedData = JSON.parse(JSON.stringify(this.listData[itemIndex]));
5584
+ parsedData[this.fields.disabled] = true;
5585
+ this.listData[itemIndex] = parsedData;
5586
+ if (li.classList.contains(dropDownBaseClasses.focus)) {
5587
+ this.removeFocus();
5588
+ }
5589
+ if (li.classList.contains(HIDE_LIST) || li.classList.contains(dropDownBaseClasses.selected)) {
5590
+ var oldValue = this.value;
5591
+ this.removeDisabledItemsValue(this.value);
5592
+ this.updateVal(this.value, oldValue, 'value');
5593
+ }
5594
+ }
5595
+ }
5596
+ }
5597
+ }
5598
+ };
5476
5599
  /**
5477
5600
  * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.
5478
5601
  *
@@ -5540,7 +5663,7 @@ var MultiSelect = /** @class */ (function (_super) {
5540
5663
  this.selectAllEventEle = null;
5541
5664
  };
5542
5665
  __decorate([
5543
- Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)
5666
+ Complex({ text: null, value: null, iconCss: null, groupBy: null, disabled: null }, FieldSettings)
5544
5667
  ], MultiSelect.prototype, "fields", void 0);
5545
5668
  __decorate([
5546
5669
  Property(false)
@@ -0,0 +1,2 @@
1
+ //default
2
+ //enddefault
@@ -0,0 +1,2 @@
1
+ //default
2
+ //enddefault
@@ -1,6 +1,7 @@
1
1
  .e-popup.e-ddl {
2
2
  border-radius: 4px;
3
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
3
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
4
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
4
5
  margin-top: 3px;
5
6
  }
6
7
  .e-popup.e-ddl .e-input-group {
@@ -15,6 +16,7 @@
15
16
  }
16
17
 
17
18
  .e-popup.e-ddl .e-filter-parent .e-input-group {
19
+ display: -webkit-box;
18
20
  display: -ms-flexbox;
19
21
  display: flex;
20
22
  width: auto;
@@ -73,7 +75,8 @@
73
75
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
74
76
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
75
77
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
76
- box-shadow: none;
78
+ -webkit-box-shadow: none;
79
+ box-shadow: none;
77
80
  }
78
81
 
79
82
  .e-ddl.e-popup .e-filter-parent {
@@ -1,6 +1,7 @@
1
1
  .e-popup.e-ddl {
2
2
  border-radius: 4px;
3
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
4
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
4
5
  margin-top: 3px;
5
6
  }
6
7
  .e-popup.e-ddl .e-input-group {
@@ -15,6 +16,7 @@
15
16
  }
16
17
 
17
18
  .e-popup.e-ddl .e-filter-parent .e-input-group {
19
+ display: -webkit-box;
18
20
  display: -ms-flexbox;
19
21
  display: flex;
20
22
  width: auto;
@@ -73,7 +75,8 @@
73
75
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
74
76
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
75
77
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
76
- box-shadow: none;
78
+ -webkit-box-shadow: none;
79
+ box-shadow: none;
77
80
  }
78
81
 
79
82
  .e-ddl.e-popup .e-filter-parent {
@@ -1,6 +1,7 @@
1
1
  .e-popup.e-ddl {
2
2
  border-radius: 4px;
3
- box-shadow: none;
3
+ -webkit-box-shadow: none;
4
+ box-shadow: none;
4
5
  margin-top: 3px;
5
6
  }
6
7
  .e-popup.e-ddl .e-input-group {
@@ -15,6 +16,7 @@
15
16
  }
16
17
 
17
18
  .e-popup.e-ddl .e-filter-parent .e-input-group {
19
+ display: -webkit-box;
18
20
  display: -ms-flexbox;
19
21
  display: flex;
20
22
  width: auto;
@@ -91,11 +93,13 @@
91
93
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
92
94
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
93
95
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
94
- box-shadow: none;
96
+ -webkit-box-shadow: none;
97
+ box-shadow: none;
95
98
  }
96
99
 
97
100
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon {
98
101
  background: transparent;
102
+ display: -webkit-box;
99
103
  display: -ms-flexbox;
100
104
  display: flex;
101
105
  position: relative;
@@ -1,6 +1,7 @@
1
1
  .e-popup.e-ddl {
2
2
  border-radius: 4px;
3
- box-shadow: none;
3
+ -webkit-box-shadow: none;
4
+ box-shadow: none;
4
5
  margin-top: 3px;
5
6
  }
6
7
  .e-popup.e-ddl .e-input-group {
@@ -15,6 +16,7 @@
15
16
  }
16
17
 
17
18
  .e-popup.e-ddl .e-filter-parent .e-input-group {
19
+ display: -webkit-box;
18
20
  display: -ms-flexbox;
19
21
  display: flex;
20
22
  width: auto;
@@ -102,11 +104,13 @@
102
104
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
103
105
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
104
106
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
105
- box-shadow: none;
107
+ -webkit-box-shadow: none;
108
+ box-shadow: none;
106
109
  }
107
110
 
108
111
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon {
109
112
  background: transparent;
113
+ display: -webkit-box;
110
114
  display: -ms-flexbox;
111
115
  display: flex;
112
116
  position: relative;
@@ -1,6 +1,7 @@
1
1
  .e-popup.e-ddl {
2
2
  border-radius: 4px;
3
- box-shadow: none;
3
+ -webkit-box-shadow: none;
4
+ box-shadow: none;
4
5
  margin-top: 3px;
5
6
  }
6
7
  .e-popup.e-ddl .e-input-group {
@@ -15,6 +16,7 @@
15
16
  }
16
17
 
17
18
  .e-popup.e-ddl .e-filter-parent .e-input-group {
19
+ display: -webkit-box;
18
20
  display: -ms-flexbox;
19
21
  display: flex;
20
22
  width: auto;
@@ -102,11 +104,13 @@
102
104
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
103
105
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
104
106
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
105
- box-shadow: none;
107
+ -webkit-box-shadow: none;
108
+ box-shadow: none;
106
109
  }
107
110
 
108
111
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon {
109
112
  background: transparent;
113
+ display: -webkit-box;
110
114
  display: -ms-flexbox;
111
115
  display: flex;
112
116
  position: relative;
@@ -1,6 +1,7 @@
1
1
  .e-ddl.e-popup {
2
2
  border: 0;
3
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.26);
3
+ -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.26);
4
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.26);
4
5
  margin-top: 1px;
5
6
  }
6
7
  .e-ddl.e-popup .e-input-group input {
@@ -8,6 +9,7 @@
8
9
  }
9
10
 
10
11
  .e-ddl.e-popup .e-input-group {
12
+ display: -webkit-box;
11
13
  display: -ms-flexbox;
12
14
  display: flex;
13
15
  width: auto;
@@ -1,6 +1,7 @@
1
1
  .e-ddl.e-popup {
2
2
  border: 0;
3
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.4);
3
+ -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.4);
4
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.4);
4
5
  margin-top: 1px;
5
6
  }
6
7
  .e-ddl.e-popup .e-input-group input {
@@ -8,6 +9,7 @@
8
9
  }
9
10
 
10
11
  .e-ddl.e-popup .e-input-group {
12
+ display: -webkit-box;
11
13
  display: -ms-flexbox;
12
14
  display: flex;
13
15
  width: auto;
@@ -1,6 +1,7 @@
1
1
  .e-popup.e-ddl {
2
2
  border-radius: 4px;
3
- box-shadow: none;
3
+ -webkit-box-shadow: none;
4
+ box-shadow: none;
4
5
  margin-top: 1px;
5
6
  }
6
7
  .e-popup.e-ddl .e-input-group {
@@ -15,6 +16,7 @@
15
16
  }
16
17
 
17
18
  .e-popup.e-ddl .e-filter-parent .e-input-group {
19
+ display: -webkit-box;
18
20
  display: -ms-flexbox;
19
21
  display: flex;
20
22
  width: auto;
@@ -86,11 +88,13 @@
86
88
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
87
89
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
88
90
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
89
- box-shadow: none;
91
+ -webkit-box-shadow: none;
92
+ box-shadow: none;
90
93
  }
91
94
 
92
95
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon {
93
96
  background: none;
97
+ display: -webkit-box;
94
98
  display: -ms-flexbox;
95
99
  display: flex;
96
100
  position: relative;
@@ -1,6 +1,7 @@
1
1
  .e-popup.e-ddl {
2
2
  border-radius: 4px;
3
- box-shadow: none;
3
+ -webkit-box-shadow: none;
4
+ box-shadow: none;
4
5
  margin-top: 1px;
5
6
  }
6
7
  .e-popup.e-ddl .e-input-group {
@@ -15,6 +16,7 @@
15
16
  }
16
17
 
17
18
  .e-popup.e-ddl .e-filter-parent .e-input-group {
19
+ display: -webkit-box;
18
20
  display: -ms-flexbox;
19
21
  display: flex;
20
22
  width: auto;
@@ -86,11 +88,13 @@
86
88
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
87
89
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
88
90
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
89
- box-shadow: none;
91
+ -webkit-box-shadow: none;
92
+ box-shadow: none;
90
93
  }
91
94
 
92
95
  .e-ddl.e-popup .e-input-group:not(.e-disabled) .e-clear-icon {
93
96
  background: none;
97
+ display: -webkit-box;
94
98
  display: -ms-flexbox;
95
99
  display: flex;
96
100
  position: relative;