@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
@@ -150,8 +150,8 @@ var DropDownList = /** @class */ (function (_super) {
150
150
  this.popupObj.setProperties({ 'zIndex': this.zIndex });
151
151
  }
152
152
  };
153
- DropDownList.prototype.renderList = function (isEmptyData) {
154
- _super.prototype.render.call(this, isEmptyData);
153
+ DropDownList.prototype.renderList = function (e, isEmptyData) {
154
+ _super.prototype.render.call(this, e, isEmptyData);
155
155
  this.unWireListEvents();
156
156
  this.wireListEvents();
157
157
  };
@@ -183,6 +183,7 @@ var DropDownList = /** @class */ (function (_super) {
183
183
  }
184
184
  };
185
185
  DropDownList.prototype.clearAll = function (e, properties) {
186
+ this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;
186
187
  if (isNullOrUndefined(properties) || (!isNullOrUndefined(properties) &&
187
188
  (isNullOrUndefined(properties.dataSource) ||
188
189
  (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {
@@ -208,14 +209,18 @@ var DropDownList = /** @class */ (function (_super) {
208
209
  }
209
210
  else {
210
211
  if (this.allowFiltering && this.getModuleName() !== 'autocomplete'
211
- && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list)) {
212
+ && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list) && this.actionCompleteData.list.length > 0) {
212
213
  this.onActionComplete(this.actionCompleteData.ulElement.cloneNode(true), this.actionCompleteData.list);
213
214
  }
214
215
  this.resetFocusElement();
215
216
  }
216
217
  }
217
- this.hiddenElement.innerHTML = '';
218
- this.inputElement.value = '';
218
+ if (!isNullOrUndefined(this.hiddenElement)) {
219
+ this.hiddenElement.innerHTML = '';
220
+ }
221
+ if (!isNullOrUndefined(this.inputElement)) {
222
+ this.inputElement.value = '';
223
+ }
219
224
  this.value = null;
220
225
  this.itemData = null;
221
226
  this.text = null;
@@ -238,42 +243,42 @@ var DropDownList = /** @class */ (function (_super) {
238
243
  for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {
239
244
  var htmlAttr = _a[_i];
240
245
  if (htmlAttr === 'class') {
241
- var updatedClassValue = (this.htmlAttributes[htmlAttr].replace(/\s+/g, ' ')).trim();
246
+ var updatedClassValue = (this.htmlAttributes["" + htmlAttr].replace(/\s+/g, ' ')).trim();
242
247
  if (updatedClassValue !== '') {
243
248
  addClass([this.inputWrapper.container], updatedClassValue.split(' '));
244
249
  }
245
250
  }
246
- else if (htmlAttr === 'disabled' && this.htmlAttributes[htmlAttr] === 'disabled') {
251
+ else if (htmlAttr === 'disabled' && this.htmlAttributes["" + htmlAttr] === 'disabled') {
247
252
  this.enabled = false;
248
253
  this.setEnable();
249
254
  }
250
- else if (htmlAttr === 'readonly' && !isNullOrUndefined(this.htmlAttributes[htmlAttr])) {
255
+ else if (htmlAttr === 'readonly' && !isNullOrUndefined(this.htmlAttributes["" + htmlAttr])) {
251
256
  this.readonly = true;
252
257
  this.dataBind();
253
258
  }
254
259
  else if (htmlAttr === 'style') {
255
- this.inputWrapper.container.setAttribute('style', this.htmlAttributes[htmlAttr]);
260
+ this.inputWrapper.container.setAttribute('style', this.htmlAttributes["" + htmlAttr]);
256
261
  }
257
262
  else {
258
- var defaultAttr = ['title', 'id', 'placeholder', 'aria-placeholder',
259
- 'role', 'autocorrect', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];
263
+ var defaultAttr = ['title', 'id', 'placeholder',
264
+ 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];
260
265
  var validateAttr = ['name', 'required'];
261
266
  if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {
262
267
  defaultAttr.push('tabindex');
263
268
  }
264
269
  if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {
265
- this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
270
+ this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
266
271
  }
267
272
  else if (defaultAttr.indexOf(htmlAttr) > -1) {
268
273
  if (htmlAttr === 'placeholder') {
269
- Input.setPlaceholder(this.htmlAttributes[htmlAttr], this.inputElement);
274
+ Input.setPlaceholder(this.htmlAttributes["" + htmlAttr], this.inputElement);
270
275
  }
271
276
  else {
272
- this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
277
+ this.inputElement.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
273
278
  }
274
279
  }
275
280
  else {
276
- this.inputWrapper.container.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
281
+ this.inputWrapper.container.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
277
282
  }
278
283
  }
279
284
  }
@@ -285,11 +290,8 @@ var DropDownList = /** @class */ (function (_super) {
285
290
  DropDownList.prototype.getAriaAttributes = function () {
286
291
  return {
287
292
  'aria-disabled': 'false',
288
- 'aria-owns': this.element.id + '_options',
289
293
  'role': 'combobox',
290
- 'aria-haspopup': 'true',
291
294
  'aria-expanded': 'false',
292
- 'aria-activedescendant': 'null',
293
295
  'aria-live': 'polite',
294
296
  'aria-labelledby': this.hiddenElement.id
295
297
  };
@@ -332,7 +334,7 @@ var DropDownList = /** @class */ (function (_super) {
332
334
  }
333
335
  };
334
336
  DropDownList.prototype.targetElement = function () {
335
- return this.inputWrapper.container;
337
+ return !isNullOrUndefined(this.inputWrapper) ? this.inputWrapper.container : null;
336
338
  };
337
339
  DropDownList.prototype.getNgDirective = function () {
338
340
  return 'EJS-DROPDOWNLIST';
@@ -491,7 +493,7 @@ var DropDownList = /** @class */ (function (_super) {
491
493
  }
492
494
  };
493
495
  DropDownList.prototype.unBindCommonEvent = function () {
494
- if (this.targetElement()) {
496
+ if (!isNullOrUndefined(this.inputWrapper) && this.targetElement()) {
495
497
  EventHandler.remove(this.targetElement(), 'blur', this.onBlurHandler);
496
498
  }
497
499
  var formElement = this.inputElement && closest(this.inputElement, 'form');
@@ -521,9 +523,11 @@ var DropDownList = /** @class */ (function (_super) {
521
523
  * @returns {void}
522
524
  */
523
525
  DropDownList.prototype.wireListEvents = function () {
524
- EventHandler.add(this.list, 'click', this.onMouseClick, this);
525
- EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);
526
- EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);
526
+ if (!isNullOrUndefined(this.list)) {
527
+ EventHandler.add(this.list, 'click', this.onMouseClick, this);
528
+ EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);
529
+ EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);
530
+ }
527
531
  };
528
532
  DropDownList.prototype.onSearch = function (e) {
529
533
  if (e.charCode !== 32 && e.charCode !== 13) {
@@ -636,7 +640,7 @@ var DropDownList = /** @class */ (function (_super) {
636
640
  var isTabAction = e.action === 'tab' || e.action === 'close';
637
641
  if (this.list === undefined && !this.isRequested && !isTabAction && e.action !== 'escape') {
638
642
  this.searchKeyEvent = e;
639
- this.renderList();
643
+ this.renderList(e);
640
644
  }
641
645
  if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&
642
646
  isNavigation && this.liCollections.length === 0) || this.isRequested) {
@@ -675,7 +679,7 @@ var DropDownList = /** @class */ (function (_super) {
675
679
  }
676
680
  break;
677
681
  case 'open':
678
- this.showPopup();
682
+ this.showPopup(e);
679
683
  break;
680
684
  case 'hide':
681
685
  this.preventAltUp = this.isPopupOpen;
@@ -801,9 +805,11 @@ var DropDownList = /** @class */ (function (_super) {
801
805
  this.setSelection(previousItem, event);
802
806
  };
803
807
  DropDownList.prototype.unWireEvent = function () {
804
- EventHandler.remove(this.inputWrapper.container, 'mousedown', this.dropDownClick);
805
- EventHandler.remove(this.inputWrapper.container, 'keypress', this.onSearch);
806
- EventHandler.remove(this.inputWrapper.container, 'focus', this.focusIn);
808
+ if (!isNullOrUndefined(this.inputWrapper)) {
809
+ EventHandler.remove(this.inputWrapper.container, 'mousedown', this.dropDownClick);
810
+ EventHandler.remove(this.inputWrapper.container, 'keypress', this.onSearch);
811
+ EventHandler.remove(this.inputWrapper.container, 'focus', this.focusIn);
812
+ }
807
813
  this.unBindCommonEvent();
808
814
  };
809
815
  /**
@@ -812,9 +818,11 @@ var DropDownList = /** @class */ (function (_super) {
812
818
  * @returns {void}
813
819
  */
814
820
  DropDownList.prototype.unWireListEvents = function () {
815
- EventHandler.remove(this.list, 'click', this.onMouseClick);
816
- EventHandler.remove(this.list, 'mouseover', this.onMouseOver);
817
- EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);
821
+ if (this.list) {
822
+ EventHandler.remove(this.list, 'click', this.onMouseClick);
823
+ EventHandler.remove(this.list, 'mouseover', this.onMouseOver);
824
+ EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);
825
+ }
818
826
  };
819
827
  DropDownList.prototype.checkSelector = function (id) {
820
828
  return '[id="' + id.replace(/(:|\.|\[|\]|,|=|@|\\|\/|#)/g, '\\$1') + '"]';
@@ -822,7 +830,7 @@ var DropDownList = /** @class */ (function (_super) {
822
830
  DropDownList.prototype.onDocumentClick = function (e) {
823
831
  var target = e.target;
824
832
  if (!(!isNullOrUndefined(this.popupObj) && closest(target, this.checkSelector(this.popupObj.element.id))) &&
825
- !this.inputWrapper.container.contains(e.target)) {
833
+ !isNullOrUndefined(this.inputWrapper) && !this.inputWrapper.container.contains(e.target)) {
826
834
  if (this.inputWrapper.container.classList.contains(dropDownListClasses.inputFocus) || this.isPopupOpen) {
827
835
  this.isDocumentClick = true;
828
836
  var isActive = this.isRequested;
@@ -867,7 +875,7 @@ var DropDownList = /** @class */ (function (_super) {
867
875
  }
868
876
  if (!this.readonly) {
869
877
  if (this.isPopupOpen) {
870
- this.hidePopup();
878
+ this.hidePopup(e);
871
879
  if (this.isFilterLayout()) {
872
880
  this.focusDropDown(e);
873
881
  }
@@ -877,7 +885,7 @@ var DropDownList = /** @class */ (function (_super) {
877
885
  this.floatLabelChange();
878
886
  this.queryString = this.inputElement.value.trim() === '' ? null : this.inputElement.value;
879
887
  this.isDropDownClick = true;
880
- this.showPopup();
888
+ this.showPopup(e);
881
889
  }
882
890
  // eslint-disable-next-line @typescript-eslint/no-this-alias
883
891
  var proxy_1 = this;
@@ -941,6 +949,9 @@ var DropDownList = /** @class */ (function (_super) {
941
949
  };
942
950
  DropDownList.prototype.selectEventCallback = function (li, e, preventSelect, selectedData, value) {
943
951
  this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;
952
+ if (this.itemData != selectedData) {
953
+ this.previousValue = (!isNullOrUndefined(this.itemData)) ? typeof this.itemData == "object" ? this.checkFieldValue(this.itemData, this.fields.value.split('.')) : this.itemData : null;
954
+ }
944
955
  this.item = li;
945
956
  this.itemData = selectedData;
946
957
  var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);
@@ -1011,10 +1022,6 @@ var DropDownList = /** @class */ (function (_super) {
1011
1022
  if (this.setValue(e)) {
1012
1023
  return;
1013
1024
  }
1014
- attributes(this.targetElement(), { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });
1015
- if (this.isFilterLayout() && this.filterInput) {
1016
- attributes(this.filterInput, { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });
1017
- }
1018
1025
  if ((!this.isPopupOpen && !isNullOrUndefined(li)) || (this.isPopupOpen && !isNullOrUndefined(e) &&
1019
1026
  (e.type !== 'keydown' || e.type === 'keydown' && e.action === 'enter'))) {
1020
1027
  this.isSelectCustom = false;
@@ -1024,9 +1031,17 @@ var DropDownList = /** @class */ (function (_super) {
1024
1031
  this.setScrollPosition(e);
1025
1032
  }
1026
1033
  if (Browser.info.name !== 'mozilla') {
1027
- attributes(this.inputElement, { 'aria-label': this.inputElement.value });
1028
- attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id });
1029
- this.targetElement().removeAttribute('aria-live');
1034
+ if (this.targetElement()) {
1035
+ attributes(this.targetElement(), { 'aria-label': this.inputElement.value });
1036
+ attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id != '' ? this.inputElement.id : this.element.id });
1037
+ this.targetElement().removeAttribute('aria-live');
1038
+ }
1039
+ }
1040
+ if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {
1041
+ attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });
1042
+ }
1043
+ else if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {
1044
+ attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id });
1030
1045
  }
1031
1046
  };
1032
1047
  DropDownList.prototype.dropdownCompiler = function (dropdownTemplate) {
@@ -1191,9 +1206,11 @@ var DropDownList = /** @class */ (function (_super) {
1191
1206
  selectedElement.setAttribute('value', this.value.toString());
1192
1207
  }
1193
1208
  else {
1194
- this.hiddenElement.innerHTML = '<option selected>' + this.text + '</option>';
1195
- var selectedElement = this.hiddenElement.querySelector('option');
1196
- selectedElement.setAttribute('value', this.value.toString());
1209
+ if (!isNullOrUndefined(this.hiddenElement)) {
1210
+ this.hiddenElement.innerHTML = '<option selected>' + this.text + '</option>';
1211
+ var selectedElement = this.hiddenElement.querySelector('option');
1212
+ selectedElement.setAttribute('value', this.value.toString());
1213
+ }
1197
1214
  }
1198
1215
  }
1199
1216
  else {
@@ -1220,6 +1237,9 @@ var DropDownList = /** @class */ (function (_super) {
1220
1237
  this.preventAutoFill = false;
1221
1238
  }
1222
1239
  this.preventAltUp = false;
1240
+ if (this.getModuleName() === 'autocomplete' && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {
1241
+ attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });
1242
+ }
1223
1243
  e.preventDefault();
1224
1244
  break;
1225
1245
  case 46: //delete
@@ -1342,11 +1362,11 @@ var DropDownList = /** @class */ (function (_super) {
1342
1362
  /**
1343
1363
  * To filter the data from given data source by using query
1344
1364
  *
1345
- * @param {Object[] | DataManager } dataSource - Set the data source to filter.
1346
- * @param {Query} query - Specify the query to filter the data.
1347
- * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.
1365
+ * @param {Object[] | DataManager } dataSource - Set the data source to filter.
1366
+ * @param {Query} query - Specify the query to filter the data.
1367
+ * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.
1348
1368
  * @returns {void}
1349
-
1369
+ * @deprecated
1350
1370
  */
1351
1371
  DropDownList.prototype.filter = function (dataSource, query, fields) {
1352
1372
  this.isCustomFilter = true;
@@ -1410,11 +1430,8 @@ var DropDownList = /** @class */ (function (_super) {
1410
1430
  prepend([parentElement], popupElement);
1411
1431
  attributes(this.filterInput, {
1412
1432
  'aria-disabled': 'false',
1413
- 'aria-owns': this.element.id + '_options',
1414
- 'role': 'listbox',
1415
- 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null,
1433
+ 'role': 'combobox',
1416
1434
  'autocomplete': 'off',
1417
- 'autocorrect': 'off',
1418
1435
  'autocapitalize': 'off',
1419
1436
  'spellcheck': 'false'
1420
1437
  });
@@ -1500,7 +1517,8 @@ var DropDownList = /** @class */ (function (_super) {
1500
1517
  this.initRemoteRender = false;
1501
1518
  if (this.value && this.dataSource instanceof DataManager) {
1502
1519
  var checkField_1 = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;
1503
- var checkVal = list.some(function (x) { return x[checkField_1] === _this.value; });
1520
+ var fieldValue_1 = this.fields.value.split('.');
1521
+ var checkVal = list.some(function (x) { return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ? _this.checkFieldValue(x, fieldValue_1) === _this.value : x[checkField_1] === _this.value; });
1504
1522
  if (!checkVal) {
1505
1523
  this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField_1, 'equal', this.value)))
1506
1524
  .then(function (e) {
@@ -1522,6 +1540,9 @@ var DropDownList = /** @class */ (function (_super) {
1522
1540
  }
1523
1541
  this.initial = false;
1524
1542
  }
1543
+ else if (this.getModuleName() === 'autocomplete' && this.value) {
1544
+ this.setInputValue();
1545
+ }
1525
1546
  if (this.getModuleName() !== 'autocomplete' && this.isFiltering() && !this.isTyped) {
1526
1547
  if (!this.actionCompleteData.isUpdated || ((!this.isCustomFilter
1527
1548
  && !this.isFilterFocus) || (isNullOrUndefined(this.itemData) && this.allowFiltering)
@@ -1543,10 +1564,17 @@ var DropDownList = /** @class */ (function (_super) {
1543
1564
  }
1544
1565
  }
1545
1566
  if (this.beforePopupOpen) {
1546
- this.renderPopup();
1567
+ this.renderPopup(e);
1547
1568
  }
1548
1569
  }
1549
1570
  };
1571
+ DropDownList.prototype.checkFieldValue = function (list, fieldValue) {
1572
+ var checkField = list;
1573
+ fieldValue.forEach(function (value) {
1574
+ checkField = checkField[value];
1575
+ });
1576
+ return checkField;
1577
+ };
1550
1578
  DropDownList.prototype.updateActionCompleteDataValues = function (ulElement, list) {
1551
1579
  this.actionCompleteData = { ulElement: ulElement.cloneNode(true), list: list, isUpdated: true };
1552
1580
  if (this.actionData.list !== this.actionCompleteData.list && this.actionCompleteData.ulElement && this.actionCompleteData.list) {
@@ -1615,7 +1643,7 @@ var DropDownList = /** @class */ (function (_super) {
1615
1643
  removeClass(highlightedItem, dropDownListClasses.focus);
1616
1644
  }
1617
1645
  };
1618
- DropDownList.prototype.renderPopup = function () {
1646
+ DropDownList.prototype.renderPopup = function (e) {
1619
1647
  var _this = this;
1620
1648
  if (this.popupObj && document.body.contains(this.popupObj.element)) {
1621
1649
  this.refreshPopup();
@@ -1672,9 +1700,11 @@ var DropDownList = /** @class */ (function (_super) {
1672
1700
  (_this.isDropDownClick && _this.getModuleName() === 'combobox')))) {
1673
1701
  offsetValue = _this.getOffsetValue(popupEle);
1674
1702
  var firstItem = _this.isEmptyList() ? _this.list : _this.liCollections[0];
1675
- left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) -
1676
- parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +
1677
- parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));
1703
+ if (!isNullOrUndefined(_this.inputElement)) {
1704
+ left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) -
1705
+ parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +
1706
+ parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));
1707
+ }
1678
1708
  }
1679
1709
  _this.getFocusElement();
1680
1710
  _this.createPopup(popupEle, offsetValue, left);
@@ -1705,25 +1735,28 @@ var DropDownList = /** @class */ (function (_super) {
1705
1735
  var element = scrollParentElements_1[_i];
1706
1736
  EventHandler.add(element, 'scroll', _this.scrollHandler, _this);
1707
1737
  }
1708
- if (Browser.isDevice && _this.isFilterLayout()) {
1709
- EventHandler.add(_this.list, 'scroll', _this.listScroll, _this);
1710
- }
1711
1738
  if (!isNullOrUndefined(_this.list)) {
1712
1739
  _this.unWireListEvents();
1713
1740
  _this.wireListEvents();
1714
1741
  }
1715
- attributes(_this.targetElement(), { 'aria-expanded': 'true' });
1742
+ _this.selectedElementID = _this.selectedLI ? _this.selectedLI.id : null;
1743
+ attributes(_this.targetElement(), { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });
1744
+ _this.inputElement.setAttribute('aria-expanded', 'true');
1716
1745
  var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;
1717
1746
  addClass([inputParent], [dropDownListClasses.inputFocus]);
1718
1747
  var animModel = { name: 'FadeIn', duration: 100 };
1719
1748
  _this.beforePopupOpen = true;
1720
1749
  var popupInstance = _this.popupObj;
1721
- var eventArgs = { popup: popupInstance, cancel: false, animation: animModel };
1750
+ var eventArgs = { popup: popupInstance, event: e, cancel: false, animation: animModel };
1722
1751
  _this.trigger('open', eventArgs, function (eventArgs) {
1723
1752
  if (!eventArgs.cancel) {
1724
- addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);
1753
+ if (!isNullOrUndefined(_this.inputWrapper)) {
1754
+ addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);
1755
+ }
1725
1756
  _this.renderReactTemplates();
1726
- _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);
1757
+ if (!isNullOrUndefined(_this.popupObj)) {
1758
+ _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);
1759
+ }
1727
1760
  }
1728
1761
  else {
1729
1762
  _this.beforePopupOpen = false;
@@ -1781,6 +1814,12 @@ var DropDownList = /** @class */ (function (_super) {
1781
1814
  var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement &&
1782
1815
  _this.actionCompleteData.ulElement.querySelector('li');
1783
1816
  var ulElement = _this.list.querySelector('ul li');
1817
+ if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-item-focus')[0])) {
1818
+ attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-item-focus')[0].id });
1819
+ }
1820
+ else if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-active')[0])) {
1821
+ attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-active')[0].id });
1822
+ }
1784
1823
  if (_this.isFiltering() && _this.itemTemplate && (_this.element.tagName === _this.getNgDirective()) &&
1785
1824
  (actionList && ulElement && actionList.textContent !== ulElement.textContent) &&
1786
1825
  _this.element.tagName !== 'EJS-COMBOBOX') {
@@ -1936,9 +1975,6 @@ var DropDownList = /** @class */ (function (_super) {
1936
1975
  this.filterInput.value = this.typedString = '';
1937
1976
  this.searchLists(null);
1938
1977
  };
1939
- DropDownList.prototype.listScroll = function () {
1940
- this.filterInput.blur();
1941
- };
1942
1978
  DropDownList.prototype.setEleWidth = function (width) {
1943
1979
  if (!isNullOrUndefined(width)) {
1944
1980
  if (typeof width === 'number') {
@@ -1967,7 +2003,6 @@ var DropDownList = /** @class */ (function (_super) {
1967
2003
  }
1968
2004
  if (Browser.isDevice && this.isFilterLayout()) {
1969
2005
  removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);
1970
- EventHandler.remove(this.list, 'scroll', this.listScroll);
1971
2006
  }
1972
2007
  if (this.isFilterLayout()) {
1973
2008
  if (!Browser.isDevice) {
@@ -1980,14 +2015,19 @@ var DropDownList = /** @class */ (function (_super) {
1980
2015
  EventHandler.remove(this.backIconElement, 'click', this.clickOnBackIcon);
1981
2016
  EventHandler.remove(this.clearIconElement, 'click', this.clearText);
1982
2017
  }
1983
- EventHandler.remove(this.filterInput, 'input', this.onInput);
1984
- EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);
1985
- EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);
1986
- EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);
1987
- EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);
2018
+ if (!isNullOrUndefined(this.filterInput)) {
2019
+ EventHandler.remove(this.filterInput, 'input', this.onInput);
2020
+ EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);
2021
+ EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);
2022
+ EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);
2023
+ EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);
2024
+ }
1988
2025
  this.filterInput = null;
1989
2026
  }
1990
2027
  attributes(this.targetElement(), { 'aria-expanded': 'false' });
2028
+ this.inputElement.setAttribute('aria-expanded', 'false');
2029
+ this.targetElement().removeAttribute('aria-owns');
2030
+ this.targetElement().removeAttribute('aria-activedescendant');
1991
2031
  this.inputWrapper.container.classList.remove(dropDownListClasses.iconAnimation);
1992
2032
  if (this.isFiltering()) {
1993
2033
  this.actionCompleteData.isUpdated = false;
@@ -2040,14 +2080,15 @@ var DropDownList = /** @class */ (function (_super) {
2040
2080
  if (this.element.tagName === 'INPUT') {
2041
2081
  this.inputElement = this.element;
2042
2082
  if (isNullOrUndefined(this.inputElement.getAttribute('role'))) {
2043
- this.inputElement.setAttribute('role', 'textbox');
2083
+ this.inputElement.setAttribute('role', 'combobox');
2044
2084
  }
2045
2085
  if (isNullOrUndefined(this.inputElement.getAttribute('type'))) {
2046
2086
  this.inputElement.setAttribute('type', 'text');
2047
2087
  }
2088
+ this.inputElement.setAttribute('aria-expanded', 'false');
2048
2089
  }
2049
2090
  else {
2050
- this.inputElement = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });
2091
+ this.inputElement = this.createElement('input', { attrs: { role: 'combobox', type: 'text' } });
2051
2092
  if (this.element.tagName !== this.getNgDirective()) {
2052
2093
  this.element.style.display = 'none';
2053
2094
  }
@@ -2058,6 +2099,9 @@ var DropDownList = /** @class */ (function (_super) {
2058
2099
  if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {
2059
2100
  updatedCssClassValues = (this.cssClass.replace(/\s+/g, ' ')).trim();
2060
2101
  }
2102
+ if (!isNullOrUndefined(closest(this.element, "fieldset")) && closest(this.element, "fieldset").disabled) {
2103
+ this.enabled = false;
2104
+ }
2061
2105
  this.inputWrapper = Input.createInput({
2062
2106
  element: this.inputElement,
2063
2107
  buttons: this.isPopupButton() ? [dropDownListClasses.icon] : null,
@@ -2086,6 +2130,10 @@ var DropDownList = /** @class */ (function (_super) {
2086
2130
  this.setFields();
2087
2131
  this.inputWrapper.container.style.width = formatUnit(this.width);
2088
2132
  this.inputWrapper.container.classList.add('e-ddl');
2133
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
2134
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never') {
2135
+ this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
2136
+ }
2089
2137
  this.wireEvent();
2090
2138
  this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';
2091
2139
  this.element.removeAttribute('tabindex');
@@ -2096,6 +2144,9 @@ var DropDownList = /** @class */ (function (_super) {
2096
2144
  attributes(this.targetElement(), this.getAriaAttributes());
2097
2145
  this.updateDataAttribute(this.htmlAttributes);
2098
2146
  this.setHTMLAttributes();
2147
+ if (this.targetElement() === this.inputElement) {
2148
+ this.inputElement.removeAttribute('aria-labelledby');
2149
+ }
2099
2150
  if (this.value !== null || this.activeIndex !== null || this.text !== null) {
2100
2151
  this.initValue();
2101
2152
  }
@@ -2105,6 +2156,7 @@ var DropDownList = /** @class */ (function (_super) {
2105
2156
  this.text = isNullOrUndefined(this.value) ? null : selectElement.options[selectElement.selectedIndex].textContent;
2106
2157
  this.initValue();
2107
2158
  }
2159
+ this.setEnabled();
2108
2160
  this.preventTabIndex(this.element);
2109
2161
  if (!this.enabled) {
2110
2162
  this.targetElement().tabIndex = -1;
@@ -2126,12 +2178,22 @@ var DropDownList = /** @class */ (function (_super) {
2126
2178
  if (this.element.hasAttribute('data-val')) {
2127
2179
  this.element.setAttribute('data-val', 'false');
2128
2180
  }
2181
+ var floatLabelElement = this.inputWrapper.container.getElementsByClassName('e-float-text')[0];
2182
+ if (!isNullOrUndefined(this.element.id) && this.element.id !== '' && !isNullOrUndefined(floatLabelElement)) {
2183
+ floatLabelElement.id = 'label_' + this.element.id.replace(/ /g, '_');
2184
+ attributes(this.inputElement, { 'aria-labelledby': floatLabelElement.id });
2185
+ }
2129
2186
  this.renderComplete();
2130
2187
  };
2131
2188
  DropDownList.prototype.setFooterTemplate = function (popupEle) {
2132
2189
  var compiledString;
2133
2190
  if (this.footer) {
2134
- this.footer.innerHTML = '';
2191
+ if (this.isReact) {
2192
+ this.clearTemplate(['footerTemplate']);
2193
+ }
2194
+ else {
2195
+ this.footer.innerHTML = '';
2196
+ }
2135
2197
  }
2136
2198
  else {
2137
2199
  this.footer = this.createElement('div');
@@ -2179,6 +2241,14 @@ var DropDownList = /** @class */ (function (_super) {
2179
2241
  var contentEle = popupEle.querySelector('div.e-content');
2180
2242
  popupEle.insertBefore(this.header, contentEle);
2181
2243
  };
2244
+ /**
2245
+ * Sets the enabled state to DropDownBase.
2246
+ *
2247
+ * @returns {void}
2248
+ */
2249
+ DropDownList.prototype.setEnabled = function () {
2250
+ this.element.setAttribute('aria-disabled', (this.enabled) ? 'false' : 'true');
2251
+ };
2182
2252
  DropDownList.prototype.setOldText = function (text) {
2183
2253
  this.text = text;
2184
2254
  };
@@ -2266,6 +2336,7 @@ var DropDownList = /** @class */ (function (_super) {
2266
2336
  break;
2267
2337
  case 'width':
2268
2338
  this_1.setEleWidth(newProp.width);
2339
+ Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);
2269
2340
  break;
2270
2341
  case 'placeholder':
2271
2342
  Input.setPlaceholder(newProp.placeholder, this_1.inputElement);
@@ -2283,6 +2354,7 @@ var DropDownList = /** @class */ (function (_super) {
2283
2354
  break;
2284
2355
  case 'cssClass':
2285
2356
  this_1.setCssClass(newProp.cssClass, oldProp.cssClass);
2357
+ Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);
2286
2358
  break;
2287
2359
  case 'enableRtl':
2288
2360
  this_1.setEnableRtl();
@@ -2323,6 +2395,9 @@ var DropDownList = /** @class */ (function (_super) {
2323
2395
  }
2324
2396
  });
2325
2397
  }
2398
+ else if (this_1.getModuleName() === 'autocomplete') {
2399
+ this_1.setInputValue(newProp, oldProp);
2400
+ }
2326
2401
  else {
2327
2402
  this_1.setOldText(oldProp.text);
2328
2403
  }
@@ -2364,6 +2439,9 @@ var DropDownList = /** @class */ (function (_super) {
2364
2439
  }
2365
2440
  });
2366
2441
  }
2442
+ else if (this_1.getModuleName() === 'autocomplete') {
2443
+ this_1.setInputValue(newProp, oldProp);
2444
+ }
2367
2445
  else {
2368
2446
  this_1.setOldValue(oldProp.value);
2369
2447
  }
@@ -2423,6 +2501,9 @@ var DropDownList = /** @class */ (function (_super) {
2423
2501
  case 'floatLabelType':
2424
2502
  Input.removeFloating(this_1.inputWrapper);
2425
2503
  Input.addFloating(this_1.inputElement, newProp.floatLabelType, this_1.placeholder, this_1.createElement);
2504
+ if (!isNullOrUndefined(this_1.inputWrapper.buttons[0]) && this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0] && this_1.floatLabelType !== 'Never') {
2505
+ this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
2506
+ }
2426
2507
  break;
2427
2508
  case 'showClearButton':
2428
2509
  Input.setClearButton(newProp.showClearButton, this_1.inputElement, this_1.inputWrapper, null, this_1.createElement);
@@ -2482,6 +2563,8 @@ var DropDownList = /** @class */ (function (_super) {
2482
2563
  removeClass([this.inputWrapper.container], ['e-readonly']);
2483
2564
  }
2484
2565
  };
2566
+ DropDownList.prototype.setInputValue = function (newProp, oldProp) {
2567
+ };
2485
2568
  DropDownList.prototype.setCssClass = function (newClass, oldClass) {
2486
2569
  if (!isNullOrUndefined(oldClass)) {
2487
2570
  oldClass = (oldClass.replace(/\s+/g, ' ')).trim();
@@ -2508,7 +2591,7 @@ var DropDownList = /** @class */ (function (_super) {
2508
2591
  *
2509
2592
  * @returns {void}
2510
2593
  */
2511
- DropDownList.prototype.showPopup = function () {
2594
+ DropDownList.prototype.showPopup = function (e) {
2512
2595
  if (!this.enabled) {
2513
2596
  return;
2514
2597
  }
@@ -2528,11 +2611,11 @@ var DropDownList = /** @class */ (function (_super) {
2528
2611
  }
2529
2612
  else if (isNullOrUndefined(this.list) || !isUndefined(this.list) && (this.list.classList.contains(dropDownBaseClasses.noData) ||
2530
2613
  this.list.querySelectorAll('.' + dropDownBaseClasses.li).length <= 0)) {
2531
- this.renderList();
2614
+ this.renderList(e);
2532
2615
  }
2533
- this.invokeRenderPopup();
2616
+ this.invokeRenderPopup(e);
2534
2617
  };
2535
- DropDownList.prototype.invokeRenderPopup = function () {
2618
+ DropDownList.prototype.invokeRenderPopup = function (e) {
2536
2619
  if (Browser.isDevice && this.isFilterLayout()) {
2537
2620
  // eslint-disable-next-line @typescript-eslint/no-this-alias
2538
2621
  var proxy_2 = this;
@@ -2541,10 +2624,9 @@ var DropDownList = /** @class */ (function (_super) {
2541
2624
  };
2542
2625
  history.pushState({}, '');
2543
2626
  }
2544
- if (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData)) {
2545
- this.renderPopup();
2627
+ if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData))) {
2628
+ this.renderPopup(e);
2546
2629
  }
2547
- attributes(this.targetElement(), { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });
2548
2630
  };
2549
2631
  DropDownList.prototype.renderHightSearch = function () {
2550
2632
  // update high light search
@@ -2558,7 +2640,9 @@ var DropDownList = /** @class */ (function (_super) {
2558
2640
  DropDownList.prototype.hidePopup = function (e) {
2559
2641
  /* eslint-enable valid-jsdoc, jsdoc/require-param */
2560
2642
  if (this.isEscapeKey && this.getModuleName() === 'dropdownlist') {
2561
- Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);
2643
+ if (!isNullOrUndefined(this.inputElement)) {
2644
+ Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);
2645
+ }
2562
2646
  this.isEscapeKey = false;
2563
2647
  if (!isNullOrUndefined(this.index)) {
2564
2648
  var element = this.findListElement(this.ulElement, 'li', 'data-value', this.value);
@@ -2608,6 +2692,7 @@ var DropDownList = /** @class */ (function (_super) {
2608
2692
  }
2609
2693
  addClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);
2610
2694
  this.onFocus(e);
2695
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
2611
2696
  };
2612
2697
  /**
2613
2698
  * Moves the focus from the component if the component is already focused.
@@ -2625,6 +2710,7 @@ var DropDownList = /** @class */ (function (_super) {
2625
2710
  this.targetElement().blur();
2626
2711
  }
2627
2712
  removeClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);
2713
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
2628
2714
  };
2629
2715
  /**
2630
2716
  * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.
@@ -2648,10 +2734,9 @@ var DropDownList = /** @class */ (function (_super) {
2648
2734
  return;
2649
2735
  }
2650
2736
  if (this.inputElement) {
2651
- var attrArray = ['readonly', 'aria-disabled', 'aria-placeholder',
2652
- 'placeholder', 'aria-owns', 'aria-labelledby', 'aria-haspopup', 'aria-expanded',
2653
- 'aria-activedescendant', 'autocomplete', 'aria-readonly', 'autocorrect',
2654
- 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label'];
2737
+ var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby',
2738
+ 'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize',
2739
+ 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label'];
2655
2740
  for (var i = 0; i < attrArray.length; i++) {
2656
2741
  this.inputElement.removeAttribute(attrArray[i]);
2657
2742
  }
@@ -2667,6 +2752,21 @@ var DropDownList = /** @class */ (function (_super) {
2667
2752
  this.inputWrapper.container.parentElement.insertBefore(this.element, this.inputWrapper.container);
2668
2753
  detach(this.inputWrapper.container);
2669
2754
  }
2755
+ this.hiddenElement = null;
2756
+ this.inputWrapper = null;
2757
+ this.keyboardModule = null;
2758
+ this.ulElement = null;
2759
+ this.list = null;
2760
+ this.popupObj = null;
2761
+ this.rippleFun = null;
2762
+ this.selectedLI = null;
2763
+ this.liCollections = null;
2764
+ this.item = null;
2765
+ this.inputWrapper = null;
2766
+ this.footer = null;
2767
+ this.header = null;
2768
+ this.previousSelectedLI = null;
2769
+ this.valueTempElement = null;
2670
2770
  _super.prototype.destroy.call(this);
2671
2771
  };
2672
2772
  /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */
@@ -2708,6 +2808,12 @@ var DropDownList = /** @class */ (function (_super) {
2708
2808
  __decorate([
2709
2809
  Property('100%')
2710
2810
  ], DropDownList.prototype, "width", void 0);
2811
+ __decorate([
2812
+ Property(true)
2813
+ ], DropDownList.prototype, "enabled", void 0);
2814
+ __decorate([
2815
+ Property(false)
2816
+ ], DropDownList.prototype, "enablePersistence", void 0);
2711
2817
  __decorate([
2712
2818
  Property('300px')
2713
2819
  ], DropDownList.prototype, "popupHeight", void 0);