@syncfusion/ej2-dropdowns 20.2.39 → 20.2.43-3197

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 (378) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +123 -2
  3. package/{README.md → ReadMe.md} +1 -1
  4. package/dist/ej2-dropdowns.min.js +1 -0
  5. package/dist/ej2-dropdowns.umd.min.js +1 -10
  6. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es2015.js +2243 -445
  8. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  9. package/dist/es6/ej2-dropdowns.es5.js +2285 -458
  10. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  11. package/dist/global/ej2-dropdowns.min.js +1 -10
  12. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  13. package/dist/global/index.d.ts +0 -9
  14. package/mention.d.ts +4 -0
  15. package/mention.js +4 -0
  16. package/package.json +76 -76
  17. package/src/auto-complete/auto-complete-model.d.ts +12 -11
  18. package/src/auto-complete/auto-complete.d.ts +20 -18
  19. package/src/auto-complete/auto-complete.js +67 -37
  20. package/src/combo-box/combo-box-model.d.ts +17 -17
  21. package/src/combo-box/combo-box.d.ts +33 -33
  22. package/src/combo-box/combo-box.js +33 -29
  23. package/src/common/incremental-search.d.ts +3 -4
  24. package/src/common/incremental-search.js +22 -7
  25. package/src/drop-down-base/drop-down-base-model.d.ts +13 -31
  26. package/src/drop-down-base/drop-down-base.d.ts +22 -41
  27. package/src/drop-down-base/drop-down-base.js +75 -59
  28. package/src/drop-down-list/drop-down-list-model.d.ts +19 -1
  29. package/src/drop-down-list/drop-down-list.d.ts +35 -11
  30. package/src/drop-down-list/drop-down-list.js +195 -89
  31. package/src/drop-down-tree/drop-down-tree-model.d.ts +16 -2
  32. package/src/drop-down-tree/drop-down-tree.d.ts +15 -1
  33. package/src/drop-down-tree/drop-down-tree.js +51 -15
  34. package/src/index.d.ts +1 -0
  35. package/src/index.js +1 -0
  36. package/src/list-box/list-box-model.d.ts +18 -0
  37. package/src/list-box/list-box.d.ts +22 -0
  38. package/src/list-box/list-box.js +86 -31
  39. package/src/mention/index.d.ts +5 -0
  40. package/src/mention/index.js +4 -0
  41. package/src/mention/mention-model.d.ts +285 -0
  42. package/src/mention/mention.d.ts +457 -0
  43. package/src/mention/mention.js +1465 -0
  44. package/src/multi-select/checkbox-selection.js +11 -12
  45. package/src/multi-select/float-label.js +4 -2
  46. package/src/multi-select/multi-select-model.d.ts +1 -1
  47. package/src/multi-select/multi-select.d.ts +9 -5
  48. package/src/multi-select/multi-select.js +296 -189
  49. package/styles/auto-complete/_all.scss +1 -1
  50. package/styles/auto-complete/_bootstrap-dark-definition.scss +1 -1
  51. package/styles/auto-complete/_bootstrap-definition.scss +1 -1
  52. package/styles/auto-complete/_bootstrap4-definition.scss +2 -2
  53. package/styles/auto-complete/_bootstrap5-definition.scss +1 -1
  54. package/styles/auto-complete/_fabric-dark-definition.scss +1 -1
  55. package/styles/auto-complete/_fabric-definition.scss +1 -1
  56. package/styles/auto-complete/_fluent-definition.scss +1 -1
  57. package/styles/auto-complete/_fusionnew-definition.scss +1 -1
  58. package/styles/auto-complete/_highcontrast-definition.scss +1 -1
  59. package/styles/auto-complete/_highcontrast-light-definition.scss +1 -1
  60. package/styles/auto-complete/_material-dark-definition.scss +1 -1
  61. package/styles/auto-complete/_material-definition.scss +1 -1
  62. package/styles/auto-complete/_material3-definition.scss +1 -1
  63. package/styles/auto-complete/_tailwind-definition.scss +1 -1
  64. package/styles/auto-complete/bootstrap-dark.css +3 -1
  65. package/styles/auto-complete/bootstrap.css +3 -1
  66. package/styles/auto-complete/bootstrap4.css +3 -1
  67. package/styles/auto-complete/bootstrap5-dark.css +3 -1
  68. package/styles/auto-complete/bootstrap5.css +3 -1
  69. package/styles/auto-complete/fabric-dark.css +3 -1
  70. package/styles/auto-complete/fabric.css +3 -1
  71. package/styles/auto-complete/fluent-dark.css +3 -1
  72. package/styles/auto-complete/fluent.css +3 -1
  73. package/styles/auto-complete/highcontrast-light.css +3 -1
  74. package/styles/auto-complete/highcontrast.css +3 -1
  75. package/styles/auto-complete/material-dark.css +3 -1
  76. package/styles/auto-complete/material.css +3 -1
  77. package/styles/auto-complete/tailwind-dark.css +3 -1
  78. package/styles/auto-complete/tailwind.css +3 -1
  79. package/styles/bootstrap-dark.css +121 -44
  80. package/styles/bootstrap-dark.scss +1 -0
  81. package/styles/bootstrap.css +121 -44
  82. package/styles/bootstrap.scss +1 -0
  83. package/styles/bootstrap4.css +134 -55
  84. package/styles/bootstrap4.scss +1 -0
  85. package/styles/bootstrap5-dark.css +135 -50
  86. package/styles/bootstrap5-dark.scss +1 -0
  87. package/styles/bootstrap5.css +135 -50
  88. package/styles/bootstrap5.scss +1 -0
  89. package/styles/combo-box/_all.scss +1 -1
  90. package/styles/combo-box/_bootstrap-dark-definition.scss +1 -1
  91. package/styles/combo-box/_bootstrap-definition.scss +1 -1
  92. package/styles/combo-box/_bootstrap4-definition.scss +2 -2
  93. package/styles/combo-box/_bootstrap5-definition.scss +1 -1
  94. package/styles/combo-box/_fabric-dark-definition.scss +1 -1
  95. package/styles/combo-box/_fabric-definition.scss +1 -1
  96. package/styles/combo-box/_fluent-definition.scss +1 -1
  97. package/styles/combo-box/_fusionnew-definition.scss +1 -1
  98. package/styles/combo-box/_highcontrast-definition.scss +1 -1
  99. package/styles/combo-box/_highcontrast-light-definition.scss +1 -1
  100. package/styles/combo-box/_material-dark-definition.scss +1 -1
  101. package/styles/combo-box/_material-definition.scss +1 -1
  102. package/styles/combo-box/_material3-definition.scss +1 -1
  103. package/styles/combo-box/_tailwind-definition.scss +1 -1
  104. package/styles/combo-box/bootstrap-dark.css +3 -1
  105. package/styles/combo-box/bootstrap.css +3 -1
  106. package/styles/combo-box/bootstrap4.css +3 -1
  107. package/styles/combo-box/bootstrap5-dark.css +3 -1
  108. package/styles/combo-box/bootstrap5.css +3 -1
  109. package/styles/combo-box/fabric-dark.css +3 -1
  110. package/styles/combo-box/fabric.css +3 -1
  111. package/styles/combo-box/fluent-dark.css +3 -1
  112. package/styles/combo-box/fluent.css +3 -1
  113. package/styles/combo-box/highcontrast-light.css +3 -1
  114. package/styles/combo-box/highcontrast.css +3 -1
  115. package/styles/combo-box/material-dark.css +3 -1
  116. package/styles/combo-box/material.css +3 -1
  117. package/styles/combo-box/tailwind-dark.css +3 -1
  118. package/styles/combo-box/tailwind.css +3 -1
  119. package/styles/drop-down-base/_all.scss +1 -1
  120. package/styles/drop-down-base/_bootstrap-dark-definition.scss +9 -2
  121. package/styles/drop-down-base/_bootstrap-definition.scss +7 -1
  122. package/styles/drop-down-base/_bootstrap4-definition.scss +7 -1
  123. package/styles/drop-down-base/_bootstrap5-definition.scss +9 -3
  124. package/styles/drop-down-base/_fabric-dark-definition.scss +7 -1
  125. package/styles/drop-down-base/_fabric-definition.scss +7 -1
  126. package/styles/drop-down-base/_fluent-definition.scss +9 -2
  127. package/styles/drop-down-base/_fusionnew-definition.scss +9 -3
  128. package/styles/drop-down-base/_highcontrast-definition.scss +17 -6
  129. package/styles/drop-down-base/_highcontrast-light-definition.scss +19 -7
  130. package/styles/drop-down-base/_layout.scss +44 -3
  131. package/styles/drop-down-base/_material-dark-definition.scss +8 -1
  132. package/styles/drop-down-base/_material-definition.scss +7 -0
  133. package/styles/drop-down-base/_material3-definition.scss +9 -3
  134. package/styles/drop-down-base/_tailwind-definition.scss +9 -3
  135. package/styles/drop-down-base/_theme.scss +4 -4
  136. package/styles/drop-down-base/bootstrap-dark.css +42 -1
  137. package/styles/drop-down-base/bootstrap.css +42 -1
  138. package/styles/drop-down-base/bootstrap4.css +42 -1
  139. package/styles/drop-down-base/bootstrap5-dark.css +42 -1
  140. package/styles/drop-down-base/bootstrap5.css +42 -1
  141. package/styles/drop-down-base/fabric-dark.css +42 -1
  142. package/styles/drop-down-base/fabric.css +42 -1
  143. package/styles/drop-down-base/fluent-dark.css +42 -1
  144. package/styles/drop-down-base/fluent.css +42 -1
  145. package/styles/drop-down-base/highcontrast-light.css +42 -1
  146. package/styles/drop-down-base/highcontrast.css +42 -1
  147. package/styles/drop-down-base/material-dark.css +42 -1
  148. package/styles/drop-down-base/material.css +42 -1
  149. package/styles/drop-down-base/tailwind-dark.css +42 -1
  150. package/styles/drop-down-base/tailwind.css +42 -1
  151. package/styles/drop-down-list/_all.scss +2 -1
  152. package/styles/drop-down-list/_bootstrap-dark-definition.scss +2 -1
  153. package/styles/drop-down-list/_bootstrap-definition.scss +2 -1
  154. package/styles/drop-down-list/_bootstrap4-definition.scss +3 -1
  155. package/styles/drop-down-list/_bootstrap5-definition.scss +3 -3
  156. package/styles/drop-down-list/_fabric-dark-definition.scss +2 -1
  157. package/styles/drop-down-list/_fabric-definition.scss +2 -0
  158. package/styles/drop-down-list/_fluent-definition.scss +2 -1
  159. package/styles/drop-down-list/_fusionnew-definition.scss +3 -3
  160. package/styles/drop-down-list/_highcontrast-definition.scss +21 -10
  161. package/styles/drop-down-list/_highcontrast-light-definition.scss +22 -11
  162. package/styles/drop-down-list/_layout.scss +11 -9
  163. package/styles/drop-down-list/_material-dark-definition.scss +2 -2
  164. package/styles/drop-down-list/_material-definition.scss +1 -0
  165. package/styles/drop-down-list/_material3-definition.scss +3 -3
  166. package/styles/drop-down-list/_tailwind-definition.scss +1 -0
  167. package/styles/drop-down-list/_theme.scss +3 -3
  168. package/styles/drop-down-list/bootstrap-dark.css +8 -0
  169. package/styles/drop-down-list/bootstrap.css +8 -0
  170. package/styles/drop-down-list/bootstrap4.css +8 -0
  171. package/styles/drop-down-list/bootstrap5-dark.css +9 -0
  172. package/styles/drop-down-list/bootstrap5.css +9 -0
  173. package/styles/drop-down-list/fabric-dark.css +8 -0
  174. package/styles/drop-down-list/fabric.css +8 -0
  175. package/styles/drop-down-list/fluent-dark.css +9 -0
  176. package/styles/drop-down-list/fluent.css +9 -0
  177. package/styles/drop-down-list/highcontrast-light.css +8 -0
  178. package/styles/drop-down-list/highcontrast.css +8 -0
  179. package/styles/drop-down-list/icons/_bootstrap.scss +0 -1
  180. package/styles/drop-down-list/icons/_fabric.scss +0 -1
  181. package/styles/drop-down-list/icons/_material.scss +0 -1
  182. package/styles/drop-down-list/material-dark.css +8 -0
  183. package/styles/drop-down-list/material.css +8 -0
  184. package/styles/drop-down-list/tailwind-dark.css +9 -0
  185. package/styles/drop-down-list/tailwind.css +9 -0
  186. package/styles/drop-down-tree/_all.scss +1 -1
  187. package/styles/drop-down-tree/_bootstrap-dark-definition.scss +1 -1
  188. package/styles/drop-down-tree/_bootstrap-definition.scss +1 -1
  189. package/styles/drop-down-tree/_bootstrap4-definition.scss +1 -1
  190. package/styles/drop-down-tree/_bootstrap5-definition.scss +2 -2
  191. package/styles/drop-down-tree/_fabric-dark-definition.scss +1 -1
  192. package/styles/drop-down-tree/_fabric-definition.scss +2 -2
  193. package/styles/drop-down-tree/_fluent-definition.scss +2 -2
  194. package/styles/drop-down-tree/_fusionnew-definition.scss +2 -2
  195. package/styles/drop-down-tree/_highcontrast-definition.scss +1 -1
  196. package/styles/drop-down-tree/_highcontrast-light-definition.scss +1 -1
  197. package/styles/drop-down-tree/_layout.scss +10 -3
  198. package/styles/drop-down-tree/_material-dark-definition.scss +2 -2
  199. package/styles/drop-down-tree/_material-definition.scss +2 -2
  200. package/styles/drop-down-tree/_material3-definition.scss +2 -2
  201. package/styles/drop-down-tree/_tailwind-definition.scss +2 -2
  202. package/styles/drop-down-tree/bootstrap-dark.css +4 -0
  203. package/styles/drop-down-tree/bootstrap.css +4 -0
  204. package/styles/drop-down-tree/bootstrap4.css +4 -0
  205. package/styles/drop-down-tree/bootstrap5-dark.css +9 -1
  206. package/styles/drop-down-tree/bootstrap5.css +9 -1
  207. package/styles/drop-down-tree/fabric-dark.css +4 -0
  208. package/styles/drop-down-tree/fabric.css +4 -0
  209. package/styles/drop-down-tree/fluent-dark.css +5 -0
  210. package/styles/drop-down-tree/fluent.css +5 -0
  211. package/styles/drop-down-tree/highcontrast-light.css +4 -0
  212. package/styles/drop-down-tree/highcontrast.css +4 -0
  213. package/styles/drop-down-tree/icons/_bootstrap.scss +0 -1
  214. package/styles/drop-down-tree/icons/_bootstrap4.scss +0 -1
  215. package/styles/drop-down-tree/icons/_fabric.scss +0 -1
  216. package/styles/drop-down-tree/icons/_highcontrast-light.scss +0 -1
  217. package/styles/drop-down-tree/icons/_highcontrast.scss +0 -1
  218. package/styles/drop-down-tree/icons/_material-dark.scss +0 -1
  219. package/styles/drop-down-tree/icons/_material.scss +0 -1
  220. package/styles/drop-down-tree/material-dark.css +4 -0
  221. package/styles/drop-down-tree/material.css +4 -0
  222. package/styles/drop-down-tree/tailwind-dark.css +5 -0
  223. package/styles/drop-down-tree/tailwind.css +5 -0
  224. package/styles/fabric-dark.css +129 -52
  225. package/styles/fabric-dark.scss +1 -0
  226. package/styles/fabric.css +129 -52
  227. package/styles/fabric.scss +1 -0
  228. package/styles/fluent-dark.css +129 -47
  229. package/styles/fluent-dark.scss +1 -0
  230. package/styles/fluent.css +129 -47
  231. package/styles/fluent.scss +1 -0
  232. package/styles/highcontrast-light.css +124 -44
  233. package/styles/highcontrast-light.scss +1 -0
  234. package/styles/highcontrast.css +133 -53
  235. package/styles/highcontrast.scss +1 -0
  236. package/styles/list-box/_all.scss +1 -1
  237. package/styles/list-box/_bootstrap-dark-definition.scss +2 -0
  238. package/styles/list-box/_bootstrap-definition.scss +1 -0
  239. package/styles/list-box/_bootstrap4-definition.scss +1 -0
  240. package/styles/list-box/_bootstrap5-definition.scss +3 -0
  241. package/styles/list-box/_fabric-dark-definition.scss +3 -1
  242. package/styles/list-box/_fabric-definition.scss +1 -0
  243. package/styles/list-box/_fluent-definition.scss +3 -0
  244. package/styles/list-box/_fusionnew-definition.scss +1 -0
  245. package/styles/list-box/_highcontrast-definition.scss +1 -0
  246. package/styles/list-box/_highcontrast-light-definition.scss +3 -1
  247. package/styles/list-box/_layout.scss +8 -17
  248. package/styles/list-box/_material-dark-definition.scss +2 -0
  249. package/styles/list-box/_material-definition.scss +1 -0
  250. package/styles/list-box/_material3-definition.scss +1 -0
  251. package/styles/list-box/_tailwind-definition.scss +3 -0
  252. package/styles/list-box/_theme.scss +11 -25
  253. package/styles/list-box/bootstrap-dark.css +12 -33
  254. package/styles/list-box/bootstrap.css +14 -35
  255. package/styles/list-box/bootstrap4.css +14 -35
  256. package/styles/list-box/bootstrap5-dark.css +15 -36
  257. package/styles/list-box/bootstrap5.css +15 -36
  258. package/styles/list-box/fabric-dark.css +12 -33
  259. package/styles/list-box/fabric.css +14 -35
  260. package/styles/list-box/fluent-dark.css +15 -36
  261. package/styles/list-box/fluent.css +15 -36
  262. package/styles/list-box/highcontrast-light.css +12 -33
  263. package/styles/list-box/highcontrast.css +14 -35
  264. package/styles/list-box/icons/_bootstrap-dark.scss +2 -2
  265. package/styles/list-box/icons/_bootstrap.scss +1 -1
  266. package/styles/list-box/icons/_bootstrap4.scss +1 -1
  267. package/styles/list-box/icons/_bootstrap5.scss +1 -1
  268. package/styles/list-box/icons/_fabric-dark.scss +1 -1
  269. package/styles/list-box/icons/_fabric.scss +1 -1
  270. package/styles/list-box/icons/_fluent.scss +1 -1
  271. package/styles/list-box/icons/_fusionnew.scss +1 -1
  272. package/styles/list-box/icons/_highcontrast-light.scss +1 -1
  273. package/styles/list-box/icons/_highcontrast.scss +1 -1
  274. package/styles/list-box/icons/_material-dark.scss +1 -1
  275. package/styles/list-box/icons/_material.scss +2 -2
  276. package/styles/list-box/icons/_material3.scss +1 -1
  277. package/styles/list-box/icons/_tailwind-dark.scss +1 -1
  278. package/styles/list-box/icons/_tailwind.scss +1 -1
  279. package/styles/list-box/material-dark.css +12 -33
  280. package/styles/list-box/material.css +14 -35
  281. package/styles/list-box/tailwind-dark.css +15 -36
  282. package/styles/list-box/tailwind.css +15 -36
  283. package/styles/material-dark.css +120 -43
  284. package/styles/material-dark.scss +1 -0
  285. package/styles/material.css +120 -43
  286. package/styles/material.scss +1 -0
  287. package/styles/mention/_all.scss +1 -0
  288. package/styles/mention/_bootstrap-dark-definition.scss +3 -0
  289. package/styles/mention/_bootstrap-definition.scss +3 -0
  290. package/styles/mention/_bootstrap4-definition.scss +3 -0
  291. package/styles/mention/_bootstrap5-dark-definition.scss +1 -0
  292. package/styles/mention/_bootstrap5-definition.scss +1 -0
  293. package/styles/mention/_fabric-dark-definition.scss +2 -0
  294. package/styles/mention/_fabric-definition.scss +3 -0
  295. package/styles/mention/_fluent-dark-definition.scss +1 -0
  296. package/styles/mention/_fluent-definition.scss +1 -0
  297. package/styles/mention/_fusionnew-definition.scss +1 -0
  298. package/styles/mention/_highcontrast-definition.scss +3 -0
  299. package/styles/mention/_highcontrast-light-definition.scss +3 -0
  300. package/styles/mention/_layout.scss +6 -0
  301. package/styles/mention/_material-dark-definition.scss +3 -0
  302. package/styles/mention/_material-definition.scss +3 -0
  303. package/styles/mention/_material3-definition.scss +1 -0
  304. package/styles/mention/_tailwind-dark-definition.scss +1 -0
  305. package/styles/mention/_tailwind-definition.scss +1 -0
  306. package/styles/mention/bootstrap-dark.css +29 -0
  307. package/styles/mention/bootstrap-dark.scss +6 -0
  308. package/styles/mention/bootstrap.css +29 -0
  309. package/styles/mention/bootstrap.scss +6 -0
  310. package/styles/mention/bootstrap4.css +47 -0
  311. package/styles/mention/bootstrap4.scss +6 -0
  312. package/styles/mention/bootstrap5-dark.css +58 -0
  313. package/styles/mention/bootstrap5-dark.scss +6 -0
  314. package/styles/mention/bootstrap5.css +58 -0
  315. package/styles/mention/bootstrap5.scss +6 -0
  316. package/styles/mention/fabric-dark.css +29 -0
  317. package/styles/mention/fabric-dark.scss +6 -0
  318. package/styles/mention/fabric.css +29 -0
  319. package/styles/mention/fabric.scss +6 -0
  320. package/styles/mention/fluent-dark.css +58 -0
  321. package/styles/mention/fluent-dark.scss +6 -0
  322. package/styles/mention/fluent.css +58 -0
  323. package/styles/mention/fluent.scss +6 -0
  324. package/styles/mention/highcontrast-light.css +43 -0
  325. package/styles/mention/highcontrast-light.scss +6 -0
  326. package/styles/mention/highcontrast.css +43 -0
  327. package/styles/mention/highcontrast.scss +6 -0
  328. package/styles/mention/material-dark.css +29 -0
  329. package/styles/mention/material-dark.scss +6 -0
  330. package/styles/mention/material.css +29 -0
  331. package/styles/mention/material.scss +6 -0
  332. package/styles/mention/tailwind-dark.css +68 -0
  333. package/styles/mention/tailwind-dark.scss +6 -0
  334. package/styles/mention/tailwind.css +68 -0
  335. package/styles/mention/tailwind.scss +6 -0
  336. package/styles/multi-select/_all.scss +1 -1
  337. package/styles/multi-select/_bootstrap-dark-definition.scss +11 -1
  338. package/styles/multi-select/_bootstrap-definition.scss +9 -0
  339. package/styles/multi-select/_bootstrap4-definition.scss +20 -9
  340. package/styles/multi-select/_bootstrap5-definition.scss +11 -3
  341. package/styles/multi-select/_fabric-dark-definition.scss +16 -7
  342. package/styles/multi-select/_fabric-definition.scss +15 -6
  343. package/styles/multi-select/_fluent-definition.scss +11 -2
  344. package/styles/multi-select/_fusionnew-definition.scss +10 -2
  345. package/styles/multi-select/_highcontrast-definition.scss +59 -29
  346. package/styles/multi-select/_highcontrast-light-definition.scss +55 -25
  347. package/styles/multi-select/_layout.scss +91 -78
  348. package/styles/multi-select/_material-dark-definition.scss +10 -1
  349. package/styles/multi-select/_material-definition.scss +8 -0
  350. package/styles/multi-select/_material3-definition.scss +9 -2
  351. package/styles/multi-select/_tailwind-definition.scss +11 -4
  352. package/styles/multi-select/_theme.scss +20 -21
  353. package/styles/multi-select/bootstrap-dark.css +34 -8
  354. package/styles/multi-select/bootstrap.css +34 -8
  355. package/styles/multi-select/bootstrap4.css +46 -19
  356. package/styles/multi-select/bootstrap5-dark.css +38 -11
  357. package/styles/multi-select/bootstrap5.css +38 -11
  358. package/styles/multi-select/fabric-dark.css +42 -16
  359. package/styles/multi-select/fabric.css +42 -16
  360. package/styles/multi-select/fluent-dark.css +36 -9
  361. package/styles/multi-select/fluent.css +36 -9
  362. package/styles/multi-select/highcontrast-light.css +37 -8
  363. package/styles/multi-select/highcontrast.css +46 -17
  364. package/styles/multi-select/icons/_bootstrap5.scss +0 -1
  365. package/styles/multi-select/icons/_fluent.scss +0 -1
  366. package/styles/multi-select/icons/_fusionnew.scss +0 -1
  367. package/styles/multi-select/icons/_material-dark.scss +53 -54
  368. package/styles/multi-select/icons/_material.scss +53 -54
  369. package/styles/multi-select/icons/_material3.scss +0 -1
  370. package/styles/multi-select/icons/_tailwind.scss +0 -1
  371. package/styles/multi-select/material-dark.css +33 -7
  372. package/styles/multi-select/material.css +33 -7
  373. package/styles/multi-select/tailwind-dark.css +38 -9
  374. package/styles/multi-select/tailwind.css +38 -9
  375. package/styles/tailwind-dark.css +132 -47
  376. package/styles/tailwind-dark.scss +1 -0
  377. package/styles/tailwind.css +132 -47
  378. package/styles/tailwind.scss +1 -0
@@ -22,6 +22,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
22
22
  import { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';
23
23
  import { FieldSettings } from '../drop-down-base/drop-down-base';
24
24
  import { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';
25
+ import { Input } from '@syncfusion/ej2-inputs';
25
26
  import { attributes, setValue, SanitizeHtmlHelper, getValue } from '@syncfusion/ej2-base';
26
27
  import { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';
27
28
  import { EventHandler, Property, Event, compile, L10n } from '@syncfusion/ej2-base';
@@ -101,6 +102,8 @@ var MultiSelect = /** @class */ (function (_super) {
101
102
  _this.isValidKey = false;
102
103
  _this.selectAllEventData = [];
103
104
  _this.selectAllEventEle = [];
105
+ _this.resetMainList = null;
106
+ _this.resetFilteredData = false;
104
107
  _this.scrollFocusStatus = false;
105
108
  _this.keyDownStatus = false;
106
109
  return _this;
@@ -143,7 +146,7 @@ var MultiSelect = /** @class */ (function (_super) {
143
146
  var htmlAttr = _a[_i];
144
147
  switch (htmlAttr) {
145
148
  case 'class': {
146
- var updatedClassValue = (this.htmlAttributes[htmlAttr].replace(/\s+/g, ' ')).trim();
149
+ var updatedClassValue = (this.htmlAttributes["" + htmlAttr].replace(/\s+/g, ' ')).trim();
147
150
  if (updatedClassValue !== '') {
148
151
  addClass([this.overAllWrapper], updatedClassValue.split(' '));
149
152
  addClass([this.popupWrapper], updatedClassValue.split(' '));
@@ -155,7 +158,7 @@ var MultiSelect = /** @class */ (function (_super) {
155
158
  break;
156
159
  case 'placeholder':
157
160
  if (!this.placeholder) {
158
- this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
161
+ this.inputElement.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
159
162
  this.setProperties({ placeholder: this.inputElement.placeholder }, true);
160
163
  this.refreshPlaceHolder();
161
164
  }
@@ -165,16 +168,16 @@ var MultiSelect = /** @class */ (function (_super) {
165
168
  var validateAttr = ['name', 'required', 'aria-required', 'form'];
166
169
  var containerAttr = ['title', 'role', 'style', 'class'];
167
170
  if (defaultAttr.indexOf(htmlAttr) > -1) {
168
- this.element.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
171
+ this.element.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
169
172
  }
170
173
  else if (htmlAttr.indexOf('data') === 0 || validateAttr.indexOf(htmlAttr) > -1) {
171
- this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
174
+ this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
172
175
  }
173
176
  else if (containerAttr.indexOf(htmlAttr) > -1) {
174
- this.overAllWrapper.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
177
+ this.overAllWrapper.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
175
178
  }
176
- else if (htmlAttr !== 'size') {
177
- this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
179
+ else if (htmlAttr !== 'size' && !isNullOrUndefined(this.inputElement)) {
180
+ this.inputElement.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
178
181
  }
179
182
  break;
180
183
  }
@@ -183,11 +186,13 @@ var MultiSelect = /** @class */ (function (_super) {
183
186
  }
184
187
  };
185
188
  MultiSelect.prototype.updateReadonly = function (state) {
186
- if (state || this.mode === 'CheckBox') {
187
- this.inputElement.setAttribute('readonly', 'true');
188
- }
189
- else {
190
- this.inputElement.removeAttribute('readonly');
189
+ if (!isNullOrUndefined(this.inputElement)) {
190
+ if (state || this.mode === 'CheckBox') {
191
+ this.inputElement.setAttribute('readonly', 'true');
192
+ }
193
+ else {
194
+ this.inputElement.removeAttribute('readonly');
195
+ }
191
196
  }
192
197
  };
193
198
  MultiSelect.prototype.updateClearButton = function (state) {
@@ -224,7 +229,7 @@ var MultiSelect = /** @class */ (function (_super) {
224
229
  }
225
230
  }
226
231
  };
227
- MultiSelect.prototype.onPopupShown = function () {
232
+ MultiSelect.prototype.onPopupShown = function (e) {
228
233
  var _this = this;
229
234
  if (Browser.isDevice && (this.mode === 'CheckBox' && this.allowFiltering)) {
230
235
  // eslint-disable-next-line @typescript-eslint/no-this-alias
@@ -236,7 +241,7 @@ var MultiSelect = /** @class */ (function (_super) {
236
241
  history.pushState({}, '');
237
242
  }
238
243
  var animModel = { name: 'FadeIn', duration: 100 };
239
- var eventArgs = { popup: this.popupObj, cancel: false, animation: animModel };
244
+ var eventArgs = { popup: this.popupObj, event: e, cancel: false, animation: animModel };
240
245
  this.trigger('open', eventArgs, function (eventArgs) {
241
246
  if (!eventArgs.cancel) {
242
247
  _this.focusAtFirstListItem();
@@ -250,7 +255,8 @@ var MultiSelect = /** @class */ (function (_super) {
250
255
  _this.refreshPopup();
251
256
  _this.renderReactTemplates();
252
257
  _this.popupObj.show(eventArgs.animation, (_this.zIndex === 1000) ? _this.element : null);
253
- attributes(_this.inputElement, { 'aria-expanded': 'true' });
258
+ attributes(_this.inputElement, { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });
259
+ _this.updateAriaActiveDescendant();
254
260
  if (_this.isFirstClick) {
255
261
  _this.loadTemplate();
256
262
  }
@@ -320,11 +326,7 @@ var MultiSelect = /** @class */ (function (_super) {
320
326
  MultiSelect.prototype.getAriaAttributes = function () {
321
327
  var ariaAttributes = {
322
328
  'aria-disabled': 'false',
323
- 'aria-owns': this.element.id + '_options',
324
- 'role': 'listbox',
325
- 'aria-multiselectable': 'true',
326
- 'aria-activedescendant': 'null',
327
- 'aria-haspopup': 'true',
329
+ 'role': 'combobox',
328
330
  'aria-expanded': 'false'
329
331
  };
330
332
  return ariaAttributes;
@@ -333,8 +335,10 @@ var MultiSelect = /** @class */ (function (_super) {
333
335
  if (!isNullOrUndefined(this.ulElement)) {
334
336
  attributes(this.ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });
335
337
  }
336
- var disableStatus = (this.inputElement.disabled) ? true : false;
337
- attributes(this.inputElement, this.getAriaAttributes());
338
+ var disableStatus = !isNullOrUndefined(this.inputElement) && (this.inputElement.disabled) ? true : false;
339
+ if (!this.isPopupOpen() && !isNullOrUndefined(this.inputElement)) {
340
+ attributes(this.inputElement, this.getAriaAttributes());
341
+ }
338
342
  if (disableStatus) {
339
343
  attributes(this.inputElement, { 'aria-disabled': 'true' });
340
344
  }
@@ -402,13 +406,23 @@ var MultiSelect = /** @class */ (function (_super) {
402
406
  if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {
403
407
  for (var i = 0; i < this.value.length; i++) {
404
408
  var checkEle = this.findListElement(((this.allowFiltering && !isNullOrUndefined(this.mainList)) ? this.mainList : ulElement), 'li', 'data-value', proxy.value[i]);
405
- if (!checkEle) {
409
+ if (!checkEle && !(this.dataSource instanceof DataManager)) {
406
410
  this.value.splice(i, 1);
407
411
  i -= 1;
408
412
  }
409
413
  }
410
414
  }
411
- this.updateActionList(ulElement, list, e);
415
+ var valuecheck = [];
416
+ if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {
417
+ valuecheck = this.presentItemValue(this.ulElement);
418
+ }
419
+ if (valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value)
420
+ && this.listData != null) {
421
+ this.addNonPresentItems(valuecheck, this.ulElement, this.listData);
422
+ }
423
+ else {
424
+ this.updateActionList(ulElement, list, e);
425
+ }
412
426
  if (this.dataSource instanceof DataManager && this.mode === 'CheckBox' && this.allowFiltering) {
413
427
  this.removeFocus();
414
428
  }
@@ -432,7 +446,7 @@ var MultiSelect = /** @class */ (function (_super) {
432
446
  this.checkForCustomValue(this.tempQuery, this.fields);
433
447
  return;
434
448
  }
435
- if (this.value && this.value.length && ((this.mode !== 'CheckBox' && this.inputElement.value.trim() !== '') ||
449
+ if (this.value && this.value.length && ((this.mode !== 'CheckBox' && !isNullOrUndefined(this.inputElement) && this.inputElement.value.trim() !== '') ||
436
450
  this.mode === 'CheckBox' || ((this.keyCode === 8 || this.keyCode === 46) && this.allowFiltering &&
437
451
  this.allowCustomValue && this.dataSource instanceof DataManager && this.inputElement.value === ''))) {
438
452
  this.refreshSelection();
@@ -460,7 +474,7 @@ var MultiSelect = /** @class */ (function (_super) {
460
474
  this.renderPopup();
461
475
  if (this.beforePopupOpen) {
462
476
  this.beforePopupOpen = false;
463
- this.onPopupShown();
477
+ this.onPopupShown(e);
464
478
  }
465
479
  };
466
480
  MultiSelect.prototype.refreshSelection = function () {
@@ -490,6 +504,7 @@ var MultiSelect = /** @class */ (function (_super) {
490
504
  dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');
491
505
  if (listEle.length > 0) {
492
506
  addClass([listEle[0]], dropDownBaseClasses.focus);
507
+ this.updateAriaActiveDescendant();
493
508
  }
494
509
  else {
495
510
  //EJ2-57588 - for this task, we prevent the ul element cloning ( this.ulElement = this.ulElement.cloneNode ? <HTMLElement>this.ulElement.cloneNode(true) : this.ulElement;)
@@ -501,8 +516,8 @@ var MultiSelect = /** @class */ (function (_super) {
501
516
  }
502
517
  element.setAttribute('aria-selected', 'true');
503
518
  if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {
504
- var ariaValue = element.firstElementChild.getAttribute('aria-checked');
505
- if (isNullOrUndefined(ariaValue) || ariaValue === 'false') {
519
+ var ariaValue = element.getElementsByClassName('e-check').length;
520
+ if (ariaValue === 0) {
506
521
  var args = {
507
522
  module: 'CheckBoxSelection',
508
523
  enable: this.mode === 'CheckBox',
@@ -626,9 +641,9 @@ var MultiSelect = /** @class */ (function (_super) {
626
641
  /**
627
642
  * To filter the multiselect data from given data source by using query
628
643
  *
629
- * @param {Object[] | DataManager } dataSource - Set the data source to filter.
630
- * @param {Query} query - Specify the query to filter the data.
631
- * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.
644
+ * @param {Object[] | DataManager } dataSource - Set the data source to filter.
645
+ * @param {Query} query - Specify the query to filter the data.
646
+ * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.
632
647
  * @returns {void}
633
648
  */
634
649
  MultiSelect.prototype.filter = function (dataSource, query, fields) {
@@ -716,7 +731,8 @@ var MultiSelect = /** @class */ (function (_super) {
716
731
  this.resetList(tempData, field, query);
717
732
  }
718
733
  else {
719
- var tempData = [this.inputElement.value];
734
+ var tempData = JSON.parse(JSON.stringify(this.listData));
735
+ tempData.splice(0, 0, this.inputElement.value);
720
736
  tempData[0] = (typeof customData === 'number' && !isNaN(parseFloat(tempData[0]))) ?
721
737
  parseFloat(tempData[0]) : tempData[0];
722
738
  tempData[0] = (typeof customData === 'boolean') ?
@@ -752,7 +768,7 @@ var MultiSelect = /** @class */ (function (_super) {
752
768
  }
753
769
  if (!this.isPopupOpen() &&
754
770
  (this.openOnClick || (this.showDropDownIcon && e.target && e.target.className === dropdownIcon))) {
755
- this.showPopup();
771
+ this.showPopup(e);
756
772
  }
757
773
  else {
758
774
  this.hidePopup(e);
@@ -834,6 +850,10 @@ var MultiSelect = /** @class */ (function (_super) {
834
850
  }
835
851
  }
836
852
  this.updateDataList();
853
+ if (this.resetMainList) {
854
+ this.mainList = this.resetMainList;
855
+ this.resetMainList = null;
856
+ }
837
857
  this.refreshListItems(null);
838
858
  if (this.mode !== 'Box' && this.mode !== 'CheckBox') {
839
859
  this.updateDelimView();
@@ -861,6 +881,11 @@ var MultiSelect = /** @class */ (function (_super) {
861
881
  this.ulElement = this.mainList;
862
882
  }
863
883
  this.checkPlaceholderSize();
884
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
885
+ Input.calculateWidth(this.inputElement, this.overAllWrapper);
886
+ if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
887
+ this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
888
+ }
864
889
  };
865
890
  MultiSelect.prototype.checkPlaceholderSize = function () {
866
891
  if (this.showDropDownIcon) {
@@ -889,11 +914,13 @@ var MultiSelect = /** @class */ (function (_super) {
889
914
  }
890
915
  };
891
916
  MultiSelect.prototype.refreshInputHight = function () {
892
- if ((!this.value || !this.value.length) && (isNullOrUndefined(this.text) || this.text === '')) {
893
- this.searchWrapper.classList.remove(ZERO_SIZE);
894
- }
895
- else {
896
- this.searchWrapper.classList.add(ZERO_SIZE);
917
+ if (!isNullOrUndefined(this.searchWrapper)) {
918
+ if ((!this.value || !this.value.length) && (isNullOrUndefined(this.text) || this.text === '')) {
919
+ this.searchWrapper.classList.remove(ZERO_SIZE);
920
+ }
921
+ else {
922
+ this.searchWrapper.classList.add(ZERO_SIZE);
923
+ }
897
924
  }
898
925
  };
899
926
  MultiSelect.prototype.validateValues = function (newValue, oldValue) {
@@ -931,6 +958,11 @@ var MultiSelect = /** @class */ (function (_super) {
931
958
  this.tempValues = this.value.slice();
932
959
  }
933
960
  };
961
+ MultiSelect.prototype.updateAriaActiveDescendant = function () {
962
+ if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {
963
+ attributes(this.inputElement, { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });
964
+ }
965
+ };
934
966
  MultiSelect.prototype.getPagingCount = function () {
935
967
  var height = this.list.classList.contains(dropDownBaseClasses.noData) ? null :
936
968
  getComputedStyle(this.getItems()[0], null).getPropertyValue('height');
@@ -991,6 +1023,7 @@ var MultiSelect = /** @class */ (function (_super) {
991
1023
  if (this.isPopupOpen()) {
992
1024
  this.refreshPopup();
993
1025
  }
1026
+ Input.calculateWidth(this.inputElement, this.overAllWrapper);
994
1027
  return true;
995
1028
  }
996
1029
  else {
@@ -1046,7 +1079,7 @@ var MultiSelect = /** @class */ (function (_super) {
1046
1079
  break;
1047
1080
  case 40:
1048
1081
  if (!this.isPopupOpen()) {
1049
- this.showPopup();
1082
+ this.showPopup(e);
1050
1083
  e.preventDefault();
1051
1084
  }
1052
1085
  break;
@@ -1073,6 +1106,7 @@ var MultiSelect = /** @class */ (function (_super) {
1073
1106
  var element = scrollEle[(isHome) ? 0 : (scrollEle.length - 1)];
1074
1107
  element.classList.add(dropDownBaseClasses.focus);
1075
1108
  this.scrollBottom(element);
1109
+ this.updateAriaActiveDescendant();
1076
1110
  }
1077
1111
  };
1078
1112
  MultiSelect.prototype.onKeyDown = function (e) {
@@ -1574,7 +1608,7 @@ var MultiSelect = /** @class */ (function (_super) {
1574
1608
  };
1575
1609
  MultiSelect.prototype.invokeCheckboxSelection = function (element, eve, isClearAll) {
1576
1610
  this.notify('updatelist', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: eve });
1577
- attributes(this.inputElement, { 'aria-activedescendant': element.id });
1611
+ this.updateAriaActiveDescendant();
1578
1612
  if ((this.value && this.value.length !== this.mainData.length)
1579
1613
  && (this.mode === 'CheckBox' && this.showSelectAll && !(this.isSelectAll || isClearAll))) {
1580
1614
  this.notify('checkSelectAll', {
@@ -1687,7 +1721,6 @@ var MultiSelect = /** @class */ (function (_super) {
1687
1721
  HIDE_LIST :
1688
1722
  dropDownBaseClasses.selected);
1689
1723
  if (this.mode === 'CheckBox') {
1690
- element2.firstElementChild.setAttribute('aria-checked', 'false');
1691
1724
  removeClass([element2.firstElementChild.lastElementChild], 'e-check');
1692
1725
  }
1693
1726
  }
@@ -1697,7 +1730,6 @@ var MultiSelect = /** @class */ (function (_super) {
1697
1730
  HIDE_LIST :
1698
1731
  dropDownBaseClasses.selected);
1699
1732
  if (this.mode === 'CheckBox') {
1700
- element2.firstElementChild.setAttribute('aria-checked', 'true');
1701
1733
  addClass([element2.firstElementChild.lastElementChild], 'e-check');
1702
1734
  }
1703
1735
  }
@@ -1958,109 +1990,111 @@ var MultiSelect = /** @class */ (function (_super) {
1958
1990
  _super.prototype.render.call(this);
1959
1991
  }
1960
1992
  if (!this.popupObj) {
1961
- document.body.appendChild(this.popupWrapper);
1962
- var checkboxFilter = this.popupWrapper.querySelector('.' + FILTERPARENT);
1963
- if (this.mode === 'CheckBox' && !this.allowFiltering && checkboxFilter && this.filterParent) {
1964
- checkboxFilter.remove();
1965
- this.filterParent = null;
1966
- }
1967
- var overAllHeight = parseInt(this.popupHeight, 10);
1968
- this.popupWrapper.style.visibility = 'hidden';
1969
- if (this.headerTemplate) {
1970
- this.setHeaderTemplate();
1971
- overAllHeight -= this.header.offsetHeight;
1972
- }
1973
- append([this.list], this.popupWrapper);
1974
- if (this.footerTemplate) {
1975
- this.setFooterTemplate();
1976
- overAllHeight -= this.footer.offsetHeight;
1977
- }
1978
- if (this.mode === 'CheckBox' && this.showSelectAll) {
1979
- this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
1980
- overAllHeight -= this.selectAllHeight;
1981
- }
1982
- else if (this.mode === 'CheckBox' && !this.showSelectAll && (!this.headerTemplate && !this.footerTemplate)) {
1983
- this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
1984
- overAllHeight = parseInt(this.popupHeight, 10);
1985
- }
1986
- else if (this.mode === 'CheckBox' && !this.showSelectAll) {
1987
- this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
1988
- overAllHeight = parseInt(this.popupHeight, 10);
1989
- if (this.headerTemplate && this.header) {
1993
+ if (!isNullOrUndefined(this.popupWrapper)) {
1994
+ document.body.appendChild(this.popupWrapper);
1995
+ var checkboxFilter = this.popupWrapper.querySelector('.' + FILTERPARENT);
1996
+ if (this.mode === 'CheckBox' && !this.allowFiltering && checkboxFilter && this.filterParent) {
1997
+ checkboxFilter.remove();
1998
+ this.filterParent = null;
1999
+ }
2000
+ var overAllHeight = parseInt(this.popupHeight, 10);
2001
+ this.popupWrapper.style.visibility = 'hidden';
2002
+ if (this.headerTemplate) {
2003
+ this.setHeaderTemplate();
1990
2004
  overAllHeight -= this.header.offsetHeight;
1991
2005
  }
1992
- if (this.footerTemplate && this.footer) {
2006
+ append([this.list], this.popupWrapper);
2007
+ if (this.footerTemplate) {
2008
+ this.setFooterTemplate();
1993
2009
  overAllHeight -= this.footer.offsetHeight;
1994
2010
  }
1995
- }
1996
- if (this.mode === 'CheckBox') {
1997
- var args = {
1998
- module: 'CheckBoxSelection',
1999
- enable: this.mode === 'CheckBox',
2000
- popupElement: this.popupWrapper
2001
- };
2002
- if (this.allowFiltering) {
2003
- this.notify('searchBox', args);
2004
- overAllHeight -= this.searchBoxHeight;
2011
+ if (this.mode === 'CheckBox' && this.showSelectAll) {
2012
+ this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
2013
+ overAllHeight -= this.selectAllHeight;
2005
2014
  }
2006
- addClass([this.popupWrapper], 'e-checkbox');
2007
- }
2008
- if (this.popupHeight !== 'auto') {
2009
- this.list.style.maxHeight = formatUnit(overAllHeight);
2010
- this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);
2011
- }
2012
- else {
2013
- this.list.style.maxHeight = formatUnit(this.popupHeight);
2014
- }
2015
- this.popupObj = new Popup(this.popupWrapper, {
2016
- width: this.calcPopupWidth(), targetType: 'relative', position: { X: 'left', Y: 'bottom' },
2017
- relateTo: this.overAllWrapper, collision: { X: 'flip', Y: 'flip' }, offsetY: 1,
2018
- enableRtl: this.enableRtl, zIndex: this.zIndex,
2019
- close: function () {
2020
- if (_this.popupObj.element.parentElement) {
2021
- _this.popupObj.unwireScrollEvents();
2022
- // For restrict the page scrolling in safari browser
2023
- var checkboxFilterInput = _this.popupWrapper.querySelector('.' + FILTERINPUT);
2024
- if (_this.mode === 'CheckBox' && checkboxFilterInput && document.activeElement === checkboxFilterInput) {
2025
- checkboxFilterInput.blur();
2026
- }
2027
- detach(_this.popupObj.element);
2028
- }
2029
- },
2030
- open: function () {
2031
- _this.popupObj.resolveCollision();
2032
- if (!_this.isFirstClick) {
2033
- var ulElement = _this.list.querySelector('ul');
2034
- if (ulElement) {
2035
- if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&
2036
- _this.targetElement().trim() !== '')) {
2037
- _this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;
2038
- }
2039
- }
2040
- _this.isFirstClick = true;
2015
+ else if (this.mode === 'CheckBox' && !this.showSelectAll && (!this.headerTemplate && !this.footerTemplate)) {
2016
+ this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
2017
+ overAllHeight = parseInt(this.popupHeight, 10);
2018
+ }
2019
+ else if (this.mode === 'CheckBox' && !this.showSelectAll) {
2020
+ this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
2021
+ overAllHeight = parseInt(this.popupHeight, 10);
2022
+ if (this.headerTemplate && this.header) {
2023
+ overAllHeight -= this.header.offsetHeight;
2041
2024
  }
2042
- _this.popupObj.wireScrollEvents();
2043
- if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&
2044
- _this.targetElement().trim() !== '')) {
2045
- _this.loadTemplate();
2025
+ if (this.footerTemplate && this.footer) {
2026
+ overAllHeight -= this.footer.offsetHeight;
2046
2027
  }
2047
- _this.setScrollPosition();
2048
- if (_this.allowFiltering) {
2049
- _this.notify('inputFocus', {
2050
- module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox', value: 'focus'
2051
- });
2028
+ }
2029
+ if (this.mode === 'CheckBox') {
2030
+ var args = {
2031
+ module: 'CheckBoxSelection',
2032
+ enable: this.mode === 'CheckBox',
2033
+ popupElement: this.popupWrapper
2034
+ };
2035
+ if (this.allowFiltering) {
2036
+ this.notify('searchBox', args);
2037
+ overAllHeight -= this.searchBoxHeight;
2052
2038
  }
2053
- }, targetExitViewport: function () {
2054
- if (!Browser.isDevice) {
2055
- _this.hidePopup();
2039
+ addClass([this.popupWrapper], 'e-checkbox');
2040
+ }
2041
+ if (this.popupHeight !== 'auto') {
2042
+ this.list.style.maxHeight = formatUnit(overAllHeight);
2043
+ this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);
2044
+ }
2045
+ else {
2046
+ this.list.style.maxHeight = formatUnit(this.popupHeight);
2047
+ }
2048
+ this.popupObj = new Popup(this.popupWrapper, {
2049
+ width: this.calcPopupWidth(), targetType: 'relative', position: { X: 'left', Y: 'bottom' },
2050
+ relateTo: this.overAllWrapper, collision: { X: 'flip', Y: 'flip' }, offsetY: 1,
2051
+ enableRtl: this.enableRtl, zIndex: this.zIndex,
2052
+ close: function () {
2053
+ if (_this.popupObj.element.parentElement) {
2054
+ _this.popupObj.unwireScrollEvents();
2055
+ // For restrict the page scrolling in safari browser
2056
+ var checkboxFilterInput = _this.popupWrapper.querySelector('.' + FILTERINPUT);
2057
+ if (_this.mode === 'CheckBox' && checkboxFilterInput && document.activeElement === checkboxFilterInput) {
2058
+ checkboxFilterInput.blur();
2059
+ }
2060
+ detach(_this.popupObj.element);
2061
+ }
2062
+ },
2063
+ open: function () {
2064
+ _this.popupObj.resolveCollision();
2065
+ if (!_this.isFirstClick) {
2066
+ var ulElement = _this.list.querySelector('ul');
2067
+ if (ulElement) {
2068
+ if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&
2069
+ _this.targetElement().trim() !== '')) {
2070
+ _this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;
2071
+ }
2072
+ }
2073
+ _this.isFirstClick = true;
2074
+ }
2075
+ _this.popupObj.wireScrollEvents();
2076
+ if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&
2077
+ _this.targetElement().trim() !== '')) {
2078
+ _this.loadTemplate();
2079
+ }
2080
+ _this.setScrollPosition();
2081
+ if (_this.allowFiltering) {
2082
+ _this.notify('inputFocus', {
2083
+ module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox', value: 'focus'
2084
+ });
2085
+ }
2086
+ }, targetExitViewport: function () {
2087
+ if (!Browser.isDevice) {
2088
+ _this.hidePopup();
2089
+ }
2056
2090
  }
2091
+ });
2092
+ if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering) {
2093
+ this.notify('deviceSearchBox', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
2057
2094
  }
2058
- });
2059
- if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering) {
2060
- this.notify('deviceSearchBox', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
2095
+ this.popupObj.close();
2096
+ this.popupWrapper.style.visibility = '';
2061
2097
  }
2062
- this.popupObj.close();
2063
- this.popupWrapper.style.visibility = '';
2064
2098
  }
2065
2099
  };
2066
2100
  MultiSelect.prototype.setHeaderTemplate = function () {
@@ -2130,6 +2164,8 @@ var MultiSelect = /** @class */ (function (_super) {
2130
2164
  this.removeValue(temp, e, null, true);
2131
2165
  }
2132
2166
  }
2167
+ this.selectedElementID = null;
2168
+ this.inputElement.removeAttribute('aria-activedescendant');
2133
2169
  }
2134
2170
  else {
2135
2171
  this.clearAllCallback(e);
@@ -2233,11 +2269,12 @@ var MultiSelect = /** @class */ (function (_super) {
2233
2269
  };
2234
2270
  MultiSelect.prototype.search = function (e) {
2235
2271
  var _this = this;
2272
+ this.resetFilteredData = true;
2236
2273
  if (!isNullOrUndefined(e)) {
2237
2274
  this.keyCode = e.keyCode;
2238
2275
  }
2239
2276
  if (!this.isPopupOpen() && this.openOnClick) {
2240
- this.showPopup();
2277
+ this.showPopup(e);
2241
2278
  }
2242
2279
  this.openClick(e);
2243
2280
  if (this.checkTextLength() && !this.allowFiltering && !isNullOrUndefined(e) && (e.keyCode !== 8)) {
@@ -2321,7 +2358,9 @@ var MultiSelect = /** @class */ (function (_super) {
2321
2358
  var temp;
2322
2359
  var tempData = this.listData;
2323
2360
  this.listData = this.mainData;
2324
- this.hiddenElement.innerHTML = '';
2361
+ if (!isNullOrUndefined(this.hiddenElement)) {
2362
+ this.hiddenElement.innerHTML = '';
2363
+ }
2325
2364
  if (!isNullOrUndefined(this.value)) {
2326
2365
  for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {
2327
2366
  var listValue = this.findListElement(((!isNullOrUndefined(this.mainList)) ? this.mainList : this.ulElement), 'li', 'data-value', this.value[index]);
@@ -2339,7 +2378,9 @@ var MultiSelect = /** @class */ (function (_super) {
2339
2378
  data += temp + delimiterChar + ' ';
2340
2379
  text.push(temp);
2341
2380
  }
2342
- this.hiddenElement.innerHTML += '<option selected value ="' + this.value[index] + '">' + index + '</option>';
2381
+ if (!isNullOrUndefined(this.hiddenElement)) {
2382
+ this.hiddenElement.innerHTML += '<option selected value ="' + this.value[index] + '">' + index + '</option>';
2383
+ }
2343
2384
  }
2344
2385
  }
2345
2386
  this.setProperties({ text: text.toString() }, true);
@@ -2384,7 +2425,7 @@ var MultiSelect = /** @class */ (function (_super) {
2384
2425
  || this.list.querySelector('.e-ul') && this.list.querySelector('.e-ul').childElementCount === 0)) {
2385
2426
  isEmptyData = true;
2386
2427
  }
2387
- _super.prototype.render.call(this, isEmptyData);
2428
+ _super.prototype.render.call(this, null, isEmptyData);
2388
2429
  this.unwireListEvents();
2389
2430
  this.wireListEvents();
2390
2431
  };
@@ -2472,7 +2513,7 @@ var MultiSelect = /** @class */ (function (_super) {
2472
2513
  }
2473
2514
  };
2474
2515
  MultiSelect.prototype.updateDataList = function () {
2475
- if (this.mainList && this.ulElement && !(this.isFiltered || this.filterAction)) {
2516
+ if (this.mainList && this.ulElement && !(this.isFiltered || this.filterAction || this.targetElement().trim())) {
2476
2517
  var isDynamicGroupItemUpdate = this.mainList.childElementCount < this.ulElement.childElementCount;
2477
2518
  var isReactTemplateUpdate = ((this.ulElement.childElementCount > 0 && this.ulElement.children[0].childElementCount > 0) && (this.mainList.children[0].childElementCount < this.ulElement.children[0].childElementCount));
2478
2519
  var isAngularTemplateUpdate = this.itemTemplate && this.ulElement.childElementCount > 0 && !(this.ulElement.childElementCount < this.mainList.childElementCount) && (this.ulElement.children[0].childElementCount > 0 || (this.fields.groupBy && this.ulElement.children[1] && this.ulElement.children[1].childElementCount > 0));
@@ -2551,10 +2592,8 @@ var MultiSelect = /** @class */ (function (_super) {
2551
2592
  selectItems[temp1 - 1].setAttribute('aria-selected', 'false');
2552
2593
  if (this.mode === 'CheckBox') {
2553
2594
  if (selectedItems && (selectedItems.length > (temp1 - 1))) {
2554
- selectedItems[temp1 - 1].firstElementChild.setAttribute('aria-checked', 'false');
2555
2595
  removeClass([selectedItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');
2556
2596
  }
2557
- selectItems[temp1 - 1].firstElementChild.setAttribute('aria-checked', 'false');
2558
2597
  removeClass([selectItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');
2559
2598
  }
2560
2599
  temp1--;
@@ -2595,10 +2634,12 @@ var MultiSelect = /** @class */ (function (_super) {
2595
2634
  if (this.enabled && this.isValidLI(element)) {
2596
2635
  this.removeFocus();
2597
2636
  addClass([element], dropDownBaseClasses.focus);
2637
+ this.updateAriaActiveDescendant();
2598
2638
  }
2599
2639
  else {
2600
2640
  if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {
2601
2641
  addClass([element], dropDownBaseClasses.focus);
2642
+ this.updateAriaActiveDescendant();
2602
2643
  }
2603
2644
  }
2604
2645
  };
@@ -2610,9 +2651,9 @@ var MultiSelect = /** @class */ (function (_super) {
2610
2651
  addClass([element], className);
2611
2652
  this.updateMainList(false, element.getAttribute('data-value'), mainElement);
2612
2653
  element.setAttribute('aria-selected', 'true');
2613
- if (this.mode === 'CheckBox') {
2614
- var ariaCheck = element.firstElementChild.getAttribute('aria-checked');
2615
- if (ariaCheck === 'false' || isNullOrUndefined(ariaCheck)) {
2654
+ if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {
2655
+ var ariaCheck = element.getElementsByClassName('e-check').length;
2656
+ if (ariaCheck === 0) {
2616
2657
  this.notify('updatelist', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: this });
2617
2658
  }
2618
2659
  }
@@ -2620,7 +2661,7 @@ var MultiSelect = /** @class */ (function (_super) {
2620
2661
  if (this.chipCollectionWrapper) {
2621
2662
  this.removeChipSelection();
2622
2663
  }
2623
- attributes(this.inputElement, { 'aria-activedescendant': element.id });
2664
+ this.selectedElementID = element.id;
2624
2665
  }
2625
2666
  };
2626
2667
  MultiSelect.prototype.updateDelimeter = function (delimChar, e) {
@@ -2931,9 +2972,11 @@ var MultiSelect = /** @class */ (function (_super) {
2931
2972
  if (this.chipCollectionWrapper) {
2932
2973
  this.chipCollectionWrapper.style.display = 'none';
2933
2974
  }
2934
- this.viewWrapper.style.display = '';
2935
- this.viewWrapper.style.width = '';
2936
- this.viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);
2975
+ if (!isNullOrUndefined(this.viewWrapper)) {
2976
+ this.viewWrapper.style.display = '';
2977
+ this.viewWrapper.style.width = '';
2978
+ this.viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);
2979
+ }
2937
2980
  if (this.value && this.value.length) {
2938
2981
  var data = '';
2939
2982
  var temp = void 0;
@@ -2984,7 +3027,7 @@ var MultiSelect = /** @class */ (function (_super) {
2984
3027
  overAllContainer = this.componentWrapper.offsetWidth -
2985
3028
  parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -
2986
3029
  parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);
2987
- if ((wrapperleng + downIconWidth + this.clearIconWidth) > overAllContainer) {
3030
+ if ((wrapperleng + downIconWidth + this.clearIconWidth) >= overAllContainer) {
2988
3031
  if (tempData !== undefined && tempData !== '') {
2989
3032
  temp = tempData;
2990
3033
  index = tempIndex + 1;
@@ -2993,7 +3036,7 @@ var MultiSelect = /** @class */ (function (_super) {
2993
3036
  remaining = this.value.length - index;
2994
3037
  wrapperleng = this.viewWrapper.offsetWidth +
2995
3038
  parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);
2996
- while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) > overAllContainer) && wrapperleng !== 0
3039
+ while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) >= overAllContainer) && wrapperleng !== 0
2997
3040
  && this.viewWrapper.innerHTML !== '') {
2998
3041
  var textArr = [];
2999
3042
  this.viewWrapper.innerHTML = textArr.join(this.delimiterChar);
@@ -3003,7 +3046,7 @@ var MultiSelect = /** @class */ (function (_super) {
3003
3046
  }
3004
3047
  break;
3005
3048
  }
3006
- else if ((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) <= overAllContainer) {
3049
+ else if ((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) < overAllContainer) {
3007
3050
  tempData = data;
3008
3051
  tempIndex = index;
3009
3052
  }
@@ -3021,8 +3064,10 @@ var MultiSelect = /** @class */ (function (_super) {
3021
3064
  }
3022
3065
  }
3023
3066
  else {
3024
- this.viewWrapper.innerHTML = '';
3025
- this.viewWrapper.style.display = 'none';
3067
+ if (!isNullOrUndefined(this.viewWrapper)) {
3068
+ this.viewWrapper.innerHTML = '';
3069
+ this.viewWrapper.style.display = 'none';
3070
+ }
3026
3071
  }
3027
3072
  };
3028
3073
  MultiSelect.prototype.checkClearIconWidth = function () {
@@ -3095,29 +3140,41 @@ var MultiSelect = /** @class */ (function (_super) {
3095
3140
  return temp;
3096
3141
  };
3097
3142
  MultiSelect.prototype.unWireEvent = function () {
3098
- EventHandler.remove(this.componentWrapper, 'mousedown', this.wrapperClick);
3143
+ if (!isNullOrUndefined(this.componentWrapper)) {
3144
+ EventHandler.remove(this.componentWrapper, 'mousedown', this.wrapperClick);
3145
+ }
3099
3146
  EventHandler.remove(window, 'resize', this.windowResize);
3100
- EventHandler.remove(this.inputElement, 'focus', this.focusInHandler);
3101
- EventHandler.remove(this.inputElement, 'keydown', this.onKeyDown);
3102
- if (this.mode !== 'CheckBox') {
3103
- EventHandler.remove(this.inputElement, 'input', this.onInput);
3147
+ if (!isNullOrUndefined(this.inputElement)) {
3148
+ EventHandler.remove(this.inputElement, 'focus', this.focusInHandler);
3149
+ EventHandler.remove(this.inputElement, 'keydown', this.onKeyDown);
3150
+ if (this.mode !== 'CheckBox') {
3151
+ EventHandler.remove(this.inputElement, 'input', this.onInput);
3152
+ }
3153
+ EventHandler.remove(this.inputElement, 'keyup', this.keyUp);
3154
+ var formElement = closest(this.inputElement, 'form');
3155
+ if (formElement) {
3156
+ EventHandler.remove(formElement, 'reset', this.resetValueHandler);
3157
+ }
3158
+ EventHandler.remove(this.inputElement, 'blur', this.onBlurHandler);
3104
3159
  }
3105
- EventHandler.remove(this.inputElement, 'keyup', this.keyUp);
3106
- var formElement = closest(this.inputElement, 'form');
3107
- if (formElement) {
3108
- EventHandler.remove(formElement, 'reset', this.resetValueHandler);
3160
+ if (!isNullOrUndefined(this.componentWrapper)) {
3161
+ EventHandler.remove(this.componentWrapper, 'mouseover', this.mouseIn);
3162
+ EventHandler.remove(this.componentWrapper, 'mouseout', this.mouseOut);
3163
+ }
3164
+ if (!isNullOrUndefined(this.overAllClear)) {
3165
+ EventHandler.remove(this.overAllClear, 'mousedown', this.clearAll);
3166
+ }
3167
+ if (!isNullOrUndefined(this.inputElement)) {
3168
+ EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);
3109
3169
  }
3110
- EventHandler.remove(this.inputElement, 'blur', this.onBlurHandler);
3111
- EventHandler.remove(this.componentWrapper, 'mouseover', this.mouseIn);
3112
- EventHandler.remove(this.componentWrapper, 'mouseout', this.mouseOut);
3113
- EventHandler.remove(this.overAllClear, 'mousedown', this.clearAll);
3114
- EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);
3115
3170
  };
3116
3171
  MultiSelect.prototype.selectAllItem = function (state, event, list) {
3117
3172
  var li;
3118
- li = this.list.querySelectorAll(state ?
3119
- 'li.e-list-item:not([aria-selected="true"]):not(.e-reorder-hide)' :
3120
- 'li.e-list-item[aria-selected="true"]:not(.e-reorder-hide)');
3173
+ if (!isNullOrUndefined(this.list)) {
3174
+ li = this.list.querySelectorAll(state ?
3175
+ 'li.e-list-item:not([aria-selected="true"]):not(.e-reorder-hide)' :
3176
+ 'li.e-list-item[aria-selected="true"]:not(.e-reorder-hide)');
3177
+ }
3121
3178
  if (this.value && this.value.length && event && event.target
3122
3179
  && closest(event.target, '.e-close-hooker') && this.allowFiltering) {
3123
3180
  li = this.mainList.querySelectorAll(state ?
@@ -3167,6 +3224,7 @@ var MultiSelect = /** @class */ (function (_super) {
3167
3224
  target.classList.remove('e-active');
3168
3225
  }
3169
3226
  target.classList.add('e-item-focus');
3227
+ this.updateAriaActiveDescendant();
3170
3228
  }
3171
3229
  this.textboxValueUpdate();
3172
3230
  this.checkPlaceholderSize();
@@ -3181,6 +3239,7 @@ var MultiSelect = /** @class */ (function (_super) {
3181
3239
  else {
3182
3240
  this.updateValue(event, li, state);
3183
3241
  }
3242
+ this.addValidInputClass();
3184
3243
  };
3185
3244
  MultiSelect.prototype.updateValue = function (event, li, state) {
3186
3245
  var _this = this;
@@ -3406,6 +3465,11 @@ var MultiSelect = /** @class */ (function (_super) {
3406
3465
  MultiSelect.prototype.onPropertyChanged = function (newProp, oldProp) {
3407
3466
  if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))
3408
3467
  || newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {
3468
+ if (this.resetFilteredData) {
3469
+ // The filtered data is not being reset in the component after the user focuses out.
3470
+ this.resetMainList = !this.resetMainList ? this.mainList : this.resetMainList;
3471
+ this.resetFilteredData = false;
3472
+ }
3409
3473
  this.mainList = null;
3410
3474
  this.mainData = null;
3411
3475
  this.isFirstClick = false;
@@ -3466,6 +3530,7 @@ var MultiSelect = /** @class */ (function (_super) {
3466
3530
  case 'cssClass':
3467
3531
  this.updateOldPropCssClass(oldProp.cssClass);
3468
3532
  this.updateCssClass();
3533
+ Input.calculateWidth(this.inputElement.parentElement.parentElement, this.overAllWrapper);
3469
3534
  break;
3470
3535
  case 'enableRtl':
3471
3536
  this.enableRTL(newProp.enableRtl);
@@ -3492,6 +3557,11 @@ var MultiSelect = /** @class */ (function (_super) {
3492
3557
  case 'floatLabelType':
3493
3558
  this.setFloatLabelType();
3494
3559
  this.addValidInputClass();
3560
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
3561
+ Input.calculateWidth(this.inputElement.parentElement.parentElement, this.overAllWrapper);
3562
+ if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
3563
+ this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
3564
+ }
3495
3565
  break;
3496
3566
  case 'enableSelectionOrder':
3497
3567
  break;
@@ -3551,7 +3621,9 @@ var MultiSelect = /** @class */ (function (_super) {
3551
3621
  MultiSelect.prototype.addNonPresentItems = function (valuecheck, ulElement, list, event) {
3552
3622
  var _this = this;
3553
3623
  this.dataSource.executeQuery(this.getForQuery(valuecheck)).then(function (e) {
3554
- _this.addItem(e.result, list.length);
3624
+ if (e.result.length > 0) {
3625
+ _this.addItem(e.result, list.length);
3626
+ }
3555
3627
  _this.updateActionList(ulElement, list, event);
3556
3628
  });
3557
3629
  };
@@ -3610,7 +3682,7 @@ var MultiSelect = /** @class */ (function (_super) {
3610
3682
  * Adds a new item to the multiselect popup list. By default, new item appends to the list as the last item,
3611
3683
  * but you can insert based on the index parameter.
3612
3684
  *
3613
- * @param { Object[] } items - Specifies an array of JSON data or a JSON data.
3685
+ * @param { Object[] } items - Specifies an array of JSON data or a JSON data.
3614
3686
  * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.
3615
3687
  * @returns {void}
3616
3688
  */
@@ -3642,6 +3714,8 @@ var MultiSelect = /** @class */ (function (_super) {
3642
3714
  _this.overAllWrapper.classList.remove(iconAnimation);
3643
3715
  _this.popupObj.hide(new Animation(eventArgs.animation));
3644
3716
  attributes(_this.inputElement, { 'aria-expanded': 'false' });
3717
+ _this.inputElement.removeAttribute('aria-owns');
3718
+ _this.inputElement.removeAttribute('aria-activedescendant');
3645
3719
  if (_this.allowFiltering) {
3646
3720
  _this.notify('inputFocus', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox', value: 'clear' });
3647
3721
  }
@@ -3657,7 +3731,7 @@ var MultiSelect = /** @class */ (function (_super) {
3657
3731
  *
3658
3732
  * @returns {void}
3659
3733
  */
3660
- MultiSelect.prototype.showPopup = function () {
3734
+ MultiSelect.prototype.showPopup = function (e) {
3661
3735
  var _this = this;
3662
3736
  if (!this.enabled) {
3663
3737
  return;
@@ -3667,7 +3741,7 @@ var MultiSelect = /** @class */ (function (_super) {
3667
3741
  if (!args.cancel) {
3668
3742
  if (!_this.ulElement) {
3669
3743
  _this.beforePopupOpen = true;
3670
- _super.prototype.render.call(_this);
3744
+ _super.prototype.render.call(_this, e);
3671
3745
  if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering) {
3672
3746
  _this.notify('popupFullScreen', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox' });
3673
3747
  }
@@ -3683,7 +3757,7 @@ var MultiSelect = /** @class */ (function (_super) {
3683
3757
  _this.beforePopupOpen = false;
3684
3758
  return;
3685
3759
  }
3686
- _this.onPopupShown();
3760
+ _this.onPopupShown(e);
3687
3761
  }
3688
3762
  });
3689
3763
  };
@@ -3785,12 +3859,12 @@ var MultiSelect = /** @class */ (function (_super) {
3785
3859
  spellcheck: 'false',
3786
3860
  type: 'text',
3787
3861
  autocomplete: 'off',
3788
- tabindex: '0'
3862
+ tabindex: '0',
3863
+ role: 'combobox'
3789
3864
  }
3790
3865
  });
3791
3866
  if (this.mode === 'Default' || this.mode === 'Box') {
3792
3867
  this.inputElement.setAttribute('aria-describedby', this.chipCollectionWrapper.id);
3793
- this.inputElement.setAttribute('aria-labelledby', this.chipCollectionWrapper.id);
3794
3868
  }
3795
3869
  if (this.element.tagName !== this.getNgDirective()) {
3796
3870
  this.element.style.display = 'none';
@@ -3823,6 +3897,9 @@ var MultiSelect = /** @class */ (function (_super) {
3823
3897
  if (this.mode !== 'CheckBox') {
3824
3898
  this.hideOverAllClear();
3825
3899
  }
3900
+ if (!isNullOrUndefined(closest(this.element, "fieldset")) && closest(this.element, "fieldset").disabled) {
3901
+ this.enabled = false;
3902
+ }
3826
3903
  this.wireEvent();
3827
3904
  this.enable(this.enabled);
3828
3905
  this.enableRTL(this.enableRtl);
@@ -3830,6 +3907,11 @@ var MultiSelect = /** @class */ (function (_super) {
3830
3907
  if (this.element.hasAttribute('data-val')) {
3831
3908
  this.element.setAttribute('data-val', 'false');
3832
3909
  }
3910
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
3911
+ Input.calculateWidth(this.inputElement.parentElement.parentElement, this.overAllWrapper);
3912
+ if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
3913
+ this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
3914
+ }
3833
3915
  this.renderComplete();
3834
3916
  };
3835
3917
  MultiSelect.prototype.checkInitialValue = function () {
@@ -3911,11 +3993,13 @@ var MultiSelect = /** @class */ (function (_super) {
3911
3993
  }
3912
3994
  };
3913
3995
  MultiSelect.prototype.addValidInputClass = function () {
3914
- if ((!isNullOrUndefined(this.value) && this.value.length) || this.floatLabelType === 'Always') {
3915
- addClass([this.overAllWrapper], 'e-valid-input');
3916
- }
3917
- else {
3918
- removeClass([this.overAllWrapper], 'e-valid-input');
3996
+ if (!isNullOrUndefined(this.overAllWrapper)) {
3997
+ if ((!isNullOrUndefined(this.value) && this.value.length) || this.floatLabelType === 'Always') {
3998
+ addClass([this.overAllWrapper], 'e-valid-input');
3999
+ }
4000
+ else {
4001
+ removeClass([this.overAllWrapper], 'e-valid-input');
4002
+ }
3919
4003
  }
3920
4004
  };
3921
4005
  MultiSelect.prototype.dropDownIcon = function () {
@@ -3966,15 +4050,19 @@ var MultiSelect = /** @class */ (function (_super) {
3966
4050
  this.ulElement = null;
3967
4051
  this.mainListCollection = null;
3968
4052
  _super.prototype.destroy.call(this);
3969
- var temp = ['readonly', 'aria-disabled', 'aria-placeholder', 'placeholder'];
4053
+ var temp = ['readonly', 'aria-disabled', 'placeholder'];
3970
4054
  var length = temp.length;
3971
- while (length > 0) {
3972
- this.inputElement.removeAttribute(temp[length - 1]);
3973
- length--;
4055
+ if (!isNullOrUndefined(this.inputElement)) {
4056
+ while (length > 0) {
4057
+ this.inputElement.removeAttribute(temp[length - 1]);
4058
+ length--;
4059
+ }
4060
+ }
4061
+ if (!isNullOrUndefined(this.element)) {
4062
+ this.element.removeAttribute('data-initial-value');
4063
+ this.element.style.display = 'block';
3974
4064
  }
3975
- this.element.removeAttribute('data-initial-value');
3976
- this.element.style.display = 'block';
3977
- if (this.overAllWrapper.parentElement) {
4065
+ if (this.overAllWrapper && this.overAllWrapper.parentElement) {
3978
4066
  if (this.overAllWrapper.parentElement.tagName === this.getNgDirective()) {
3979
4067
  remove(this.overAllWrapper);
3980
4068
  }
@@ -3983,6 +4071,25 @@ var MultiSelect = /** @class */ (function (_super) {
3983
4071
  remove(this.overAllWrapper);
3984
4072
  }
3985
4073
  }
4074
+ this.componentWrapper = null;
4075
+ this.overAllClear = null;
4076
+ this.overAllWrapper = null;
4077
+ this.hiddenElement = null;
4078
+ this.searchWrapper = null;
4079
+ this.viewWrapper = null;
4080
+ this.chipCollectionWrapper = null;
4081
+ this.targetInputElement = null;
4082
+ this.popupWrapper = null;
4083
+ this.inputElement = null;
4084
+ this.delimiterWrapper = null;
4085
+ this.popupObj = null;
4086
+ this.popupWrapper = null;
4087
+ this.liCollections = null;
4088
+ this.header = null;
4089
+ this.mainList = null;
4090
+ this.mainListCollection = null;
4091
+ this.footer = null;
4092
+ this.selectAllEventEle = null;
3986
4093
  };
3987
4094
  __decorate([
3988
4095
  Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)