@syncfusion/ej2-dropdowns 20.2.40 → 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 +116 -3
  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 +2232 -468
  8. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  9. package/dist/es6/ej2-dropdowns.es5.js +2273 -480
  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 +194 -109
  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 +49 -14
  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 +23 -1
  38. package/src/list-box/list-box.js +78 -35
  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 +295 -188
  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,26 +1540,8 @@ var DropDownList = /** @class */ (function (_super) {
1522
1540
  }
1523
1541
  this.initial = false;
1524
1542
  }
1525
- else if (this.getModuleName() === 'autocomplete' && this.value && this.typedString === '' && !(this.dataSource instanceof DataManager)) {
1526
- var checkFields_1 = this.typeOfData(this.dataSource).typeof === 'string' ? '' : this.fields.value;
1527
- var checkValue = list.some(function (x) { return x[checkFields_1] === _this.value; });
1528
- var query = new Query();
1529
- if (!checkValue) {
1530
- new DataManager(this.dataSource).executeQuery(query.where(new Predicate(checkFields_1, 'equal', this.value)))
1531
- .then(function (e) {
1532
- if (e.result.length > 0) {
1533
- _this.value = checkFields_1 !== '' ? e.result[0][_this.fields.value].toString() : e.result[0].toString();
1534
- _this.addItem(e.result, list.length);
1535
- _this.updateValues();
1536
- }
1537
- else {
1538
- _this.updateValues();
1539
- }
1540
- });
1541
- }
1542
- else {
1543
- this.updateValues();
1544
- }
1543
+ else if (this.getModuleName() === 'autocomplete' && this.value) {
1544
+ this.setInputValue();
1545
1545
  }
1546
1546
  if (this.getModuleName() !== 'autocomplete' && this.isFiltering() && !this.isTyped) {
1547
1547
  if (!this.actionCompleteData.isUpdated || ((!this.isCustomFilter
@@ -1564,10 +1564,17 @@ var DropDownList = /** @class */ (function (_super) {
1564
1564
  }
1565
1565
  }
1566
1566
  if (this.beforePopupOpen) {
1567
- this.renderPopup();
1567
+ this.renderPopup(e);
1568
1568
  }
1569
1569
  }
1570
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
+ };
1571
1578
  DropDownList.prototype.updateActionCompleteDataValues = function (ulElement, list) {
1572
1579
  this.actionCompleteData = { ulElement: ulElement.cloneNode(true), list: list, isUpdated: true };
1573
1580
  if (this.actionData.list !== this.actionCompleteData.list && this.actionCompleteData.ulElement && this.actionCompleteData.list) {
@@ -1636,7 +1643,7 @@ var DropDownList = /** @class */ (function (_super) {
1636
1643
  removeClass(highlightedItem, dropDownListClasses.focus);
1637
1644
  }
1638
1645
  };
1639
- DropDownList.prototype.renderPopup = function () {
1646
+ DropDownList.prototype.renderPopup = function (e) {
1640
1647
  var _this = this;
1641
1648
  if (this.popupObj && document.body.contains(this.popupObj.element)) {
1642
1649
  this.refreshPopup();
@@ -1693,9 +1700,11 @@ var DropDownList = /** @class */ (function (_super) {
1693
1700
  (_this.isDropDownClick && _this.getModuleName() === 'combobox')))) {
1694
1701
  offsetValue = _this.getOffsetValue(popupEle);
1695
1702
  var firstItem = _this.isEmptyList() ? _this.list : _this.liCollections[0];
1696
- left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) -
1697
- parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +
1698
- 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
+ }
1699
1708
  }
1700
1709
  _this.getFocusElement();
1701
1710
  _this.createPopup(popupEle, offsetValue, left);
@@ -1726,25 +1735,28 @@ var DropDownList = /** @class */ (function (_super) {
1726
1735
  var element = scrollParentElements_1[_i];
1727
1736
  EventHandler.add(element, 'scroll', _this.scrollHandler, _this);
1728
1737
  }
1729
- if (Browser.isDevice && _this.isFilterLayout()) {
1730
- EventHandler.add(_this.list, 'scroll', _this.listScroll, _this);
1731
- }
1732
1738
  if (!isNullOrUndefined(_this.list)) {
1733
1739
  _this.unWireListEvents();
1734
1740
  _this.wireListEvents();
1735
1741
  }
1736
- 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');
1737
1745
  var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;
1738
1746
  addClass([inputParent], [dropDownListClasses.inputFocus]);
1739
1747
  var animModel = { name: 'FadeIn', duration: 100 };
1740
1748
  _this.beforePopupOpen = true;
1741
1749
  var popupInstance = _this.popupObj;
1742
- var eventArgs = { popup: popupInstance, cancel: false, animation: animModel };
1750
+ var eventArgs = { popup: popupInstance, event: e, cancel: false, animation: animModel };
1743
1751
  _this.trigger('open', eventArgs, function (eventArgs) {
1744
1752
  if (!eventArgs.cancel) {
1745
- addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);
1753
+ if (!isNullOrUndefined(_this.inputWrapper)) {
1754
+ addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);
1755
+ }
1746
1756
  _this.renderReactTemplates();
1747
- _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
+ }
1748
1760
  }
1749
1761
  else {
1750
1762
  _this.beforePopupOpen = false;
@@ -1802,6 +1814,12 @@ var DropDownList = /** @class */ (function (_super) {
1802
1814
  var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement &&
1803
1815
  _this.actionCompleteData.ulElement.querySelector('li');
1804
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
+ }
1805
1823
  if (_this.isFiltering() && _this.itemTemplate && (_this.element.tagName === _this.getNgDirective()) &&
1806
1824
  (actionList && ulElement && actionList.textContent !== ulElement.textContent) &&
1807
1825
  _this.element.tagName !== 'EJS-COMBOBOX') {
@@ -1957,9 +1975,6 @@ var DropDownList = /** @class */ (function (_super) {
1957
1975
  this.filterInput.value = this.typedString = '';
1958
1976
  this.searchLists(null);
1959
1977
  };
1960
- DropDownList.prototype.listScroll = function () {
1961
- this.filterInput.blur();
1962
- };
1963
1978
  DropDownList.prototype.setEleWidth = function (width) {
1964
1979
  if (!isNullOrUndefined(width)) {
1965
1980
  if (typeof width === 'number') {
@@ -1988,7 +2003,6 @@ var DropDownList = /** @class */ (function (_super) {
1988
2003
  }
1989
2004
  if (Browser.isDevice && this.isFilterLayout()) {
1990
2005
  removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);
1991
- EventHandler.remove(this.list, 'scroll', this.listScroll);
1992
2006
  }
1993
2007
  if (this.isFilterLayout()) {
1994
2008
  if (!Browser.isDevice) {
@@ -2001,14 +2015,19 @@ var DropDownList = /** @class */ (function (_super) {
2001
2015
  EventHandler.remove(this.backIconElement, 'click', this.clickOnBackIcon);
2002
2016
  EventHandler.remove(this.clearIconElement, 'click', this.clearText);
2003
2017
  }
2004
- EventHandler.remove(this.filterInput, 'input', this.onInput);
2005
- EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);
2006
- EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);
2007
- EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);
2008
- 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
+ }
2009
2025
  this.filterInput = null;
2010
2026
  }
2011
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');
2012
2031
  this.inputWrapper.container.classList.remove(dropDownListClasses.iconAnimation);
2013
2032
  if (this.isFiltering()) {
2014
2033
  this.actionCompleteData.isUpdated = false;
@@ -2061,14 +2080,15 @@ var DropDownList = /** @class */ (function (_super) {
2061
2080
  if (this.element.tagName === 'INPUT') {
2062
2081
  this.inputElement = this.element;
2063
2082
  if (isNullOrUndefined(this.inputElement.getAttribute('role'))) {
2064
- this.inputElement.setAttribute('role', 'textbox');
2083
+ this.inputElement.setAttribute('role', 'combobox');
2065
2084
  }
2066
2085
  if (isNullOrUndefined(this.inputElement.getAttribute('type'))) {
2067
2086
  this.inputElement.setAttribute('type', 'text');
2068
2087
  }
2088
+ this.inputElement.setAttribute('aria-expanded', 'false');
2069
2089
  }
2070
2090
  else {
2071
- this.inputElement = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });
2091
+ this.inputElement = this.createElement('input', { attrs: { role: 'combobox', type: 'text' } });
2072
2092
  if (this.element.tagName !== this.getNgDirective()) {
2073
2093
  this.element.style.display = 'none';
2074
2094
  }
@@ -2079,6 +2099,9 @@ var DropDownList = /** @class */ (function (_super) {
2079
2099
  if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {
2080
2100
  updatedCssClassValues = (this.cssClass.replace(/\s+/g, ' ')).trim();
2081
2101
  }
2102
+ if (!isNullOrUndefined(closest(this.element, "fieldset")) && closest(this.element, "fieldset").disabled) {
2103
+ this.enabled = false;
2104
+ }
2082
2105
  this.inputWrapper = Input.createInput({
2083
2106
  element: this.inputElement,
2084
2107
  buttons: this.isPopupButton() ? [dropDownListClasses.icon] : null,
@@ -2107,6 +2130,10 @@ var DropDownList = /** @class */ (function (_super) {
2107
2130
  this.setFields();
2108
2131
  this.inputWrapper.container.style.width = formatUnit(this.width);
2109
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
+ }
2110
2137
  this.wireEvent();
2111
2138
  this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';
2112
2139
  this.element.removeAttribute('tabindex');
@@ -2117,6 +2144,9 @@ var DropDownList = /** @class */ (function (_super) {
2117
2144
  attributes(this.targetElement(), this.getAriaAttributes());
2118
2145
  this.updateDataAttribute(this.htmlAttributes);
2119
2146
  this.setHTMLAttributes();
2147
+ if (this.targetElement() === this.inputElement) {
2148
+ this.inputElement.removeAttribute('aria-labelledby');
2149
+ }
2120
2150
  if (this.value !== null || this.activeIndex !== null || this.text !== null) {
2121
2151
  this.initValue();
2122
2152
  }
@@ -2126,6 +2156,7 @@ var DropDownList = /** @class */ (function (_super) {
2126
2156
  this.text = isNullOrUndefined(this.value) ? null : selectElement.options[selectElement.selectedIndex].textContent;
2127
2157
  this.initValue();
2128
2158
  }
2159
+ this.setEnabled();
2129
2160
  this.preventTabIndex(this.element);
2130
2161
  if (!this.enabled) {
2131
2162
  this.targetElement().tabIndex = -1;
@@ -2147,12 +2178,22 @@ var DropDownList = /** @class */ (function (_super) {
2147
2178
  if (this.element.hasAttribute('data-val')) {
2148
2179
  this.element.setAttribute('data-val', 'false');
2149
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
+ }
2150
2186
  this.renderComplete();
2151
2187
  };
2152
2188
  DropDownList.prototype.setFooterTemplate = function (popupEle) {
2153
2189
  var compiledString;
2154
2190
  if (this.footer) {
2155
- this.footer.innerHTML = '';
2191
+ if (this.isReact) {
2192
+ this.clearTemplate(['footerTemplate']);
2193
+ }
2194
+ else {
2195
+ this.footer.innerHTML = '';
2196
+ }
2156
2197
  }
2157
2198
  else {
2158
2199
  this.footer = this.createElement('div');
@@ -2200,6 +2241,14 @@ var DropDownList = /** @class */ (function (_super) {
2200
2241
  var contentEle = popupEle.querySelector('div.e-content');
2201
2242
  popupEle.insertBefore(this.header, contentEle);
2202
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
+ };
2203
2252
  DropDownList.prototype.setOldText = function (text) {
2204
2253
  this.text = text;
2205
2254
  };
@@ -2287,6 +2336,7 @@ var DropDownList = /** @class */ (function (_super) {
2287
2336
  break;
2288
2337
  case 'width':
2289
2338
  this_1.setEleWidth(newProp.width);
2339
+ Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);
2290
2340
  break;
2291
2341
  case 'placeholder':
2292
2342
  Input.setPlaceholder(newProp.placeholder, this_1.inputElement);
@@ -2304,6 +2354,7 @@ var DropDownList = /** @class */ (function (_super) {
2304
2354
  break;
2305
2355
  case 'cssClass':
2306
2356
  this_1.setCssClass(newProp.cssClass, oldProp.cssClass);
2357
+ Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);
2307
2358
  break;
2308
2359
  case 'enableRtl':
2309
2360
  this_1.setEnableRtl();
@@ -2344,6 +2395,9 @@ var DropDownList = /** @class */ (function (_super) {
2344
2395
  }
2345
2396
  });
2346
2397
  }
2398
+ else if (this_1.getModuleName() === 'autocomplete') {
2399
+ this_1.setInputValue(newProp, oldProp);
2400
+ }
2347
2401
  else {
2348
2402
  this_1.setOldText(oldProp.text);
2349
2403
  }
@@ -2385,6 +2439,9 @@ var DropDownList = /** @class */ (function (_super) {
2385
2439
  }
2386
2440
  });
2387
2441
  }
2442
+ else if (this_1.getModuleName() === 'autocomplete') {
2443
+ this_1.setInputValue(newProp, oldProp);
2444
+ }
2388
2445
  else {
2389
2446
  this_1.setOldValue(oldProp.value);
2390
2447
  }
@@ -2444,6 +2501,9 @@ var DropDownList = /** @class */ (function (_super) {
2444
2501
  case 'floatLabelType':
2445
2502
  Input.removeFloating(this_1.inputWrapper);
2446
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
+ }
2447
2507
  break;
2448
2508
  case 'showClearButton':
2449
2509
  Input.setClearButton(newProp.showClearButton, this_1.inputElement, this_1.inputWrapper, null, this_1.createElement);
@@ -2503,6 +2563,8 @@ var DropDownList = /** @class */ (function (_super) {
2503
2563
  removeClass([this.inputWrapper.container], ['e-readonly']);
2504
2564
  }
2505
2565
  };
2566
+ DropDownList.prototype.setInputValue = function (newProp, oldProp) {
2567
+ };
2506
2568
  DropDownList.prototype.setCssClass = function (newClass, oldClass) {
2507
2569
  if (!isNullOrUndefined(oldClass)) {
2508
2570
  oldClass = (oldClass.replace(/\s+/g, ' ')).trim();
@@ -2529,7 +2591,7 @@ var DropDownList = /** @class */ (function (_super) {
2529
2591
  *
2530
2592
  * @returns {void}
2531
2593
  */
2532
- DropDownList.prototype.showPopup = function () {
2594
+ DropDownList.prototype.showPopup = function (e) {
2533
2595
  if (!this.enabled) {
2534
2596
  return;
2535
2597
  }
@@ -2549,11 +2611,11 @@ var DropDownList = /** @class */ (function (_super) {
2549
2611
  }
2550
2612
  else if (isNullOrUndefined(this.list) || !isUndefined(this.list) && (this.list.classList.contains(dropDownBaseClasses.noData) ||
2551
2613
  this.list.querySelectorAll('.' + dropDownBaseClasses.li).length <= 0)) {
2552
- this.renderList();
2614
+ this.renderList(e);
2553
2615
  }
2554
- this.invokeRenderPopup();
2616
+ this.invokeRenderPopup(e);
2555
2617
  };
2556
- DropDownList.prototype.invokeRenderPopup = function () {
2618
+ DropDownList.prototype.invokeRenderPopup = function (e) {
2557
2619
  if (Browser.isDevice && this.isFilterLayout()) {
2558
2620
  // eslint-disable-next-line @typescript-eslint/no-this-alias
2559
2621
  var proxy_2 = this;
@@ -2562,10 +2624,9 @@ var DropDownList = /** @class */ (function (_super) {
2562
2624
  };
2563
2625
  history.pushState({}, '');
2564
2626
  }
2565
- if (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData)) {
2566
- this.renderPopup();
2627
+ if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData))) {
2628
+ this.renderPopup(e);
2567
2629
  }
2568
- attributes(this.targetElement(), { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });
2569
2630
  };
2570
2631
  DropDownList.prototype.renderHightSearch = function () {
2571
2632
  // update high light search
@@ -2579,7 +2640,9 @@ var DropDownList = /** @class */ (function (_super) {
2579
2640
  DropDownList.prototype.hidePopup = function (e) {
2580
2641
  /* eslint-enable valid-jsdoc, jsdoc/require-param */
2581
2642
  if (this.isEscapeKey && this.getModuleName() === 'dropdownlist') {
2582
- 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
+ }
2583
2646
  this.isEscapeKey = false;
2584
2647
  if (!isNullOrUndefined(this.index)) {
2585
2648
  var element = this.findListElement(this.ulElement, 'li', 'data-value', this.value);
@@ -2629,6 +2692,7 @@ var DropDownList = /** @class */ (function (_super) {
2629
2692
  }
2630
2693
  addClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);
2631
2694
  this.onFocus(e);
2695
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
2632
2696
  };
2633
2697
  /**
2634
2698
  * Moves the focus from the component if the component is already focused.
@@ -2646,6 +2710,7 @@ var DropDownList = /** @class */ (function (_super) {
2646
2710
  this.targetElement().blur();
2647
2711
  }
2648
2712
  removeClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);
2713
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
2649
2714
  };
2650
2715
  /**
2651
2716
  * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.
@@ -2669,10 +2734,9 @@ var DropDownList = /** @class */ (function (_super) {
2669
2734
  return;
2670
2735
  }
2671
2736
  if (this.inputElement) {
2672
- var attrArray = ['readonly', 'aria-disabled', 'aria-placeholder',
2673
- 'placeholder', 'aria-owns', 'aria-labelledby', 'aria-haspopup', 'aria-expanded',
2674
- 'aria-activedescendant', 'autocomplete', 'aria-readonly', 'autocorrect',
2675
- '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'];
2676
2740
  for (var i = 0; i < attrArray.length; i++) {
2677
2741
  this.inputElement.removeAttribute(attrArray[i]);
2678
2742
  }
@@ -2688,6 +2752,21 @@ var DropDownList = /** @class */ (function (_super) {
2688
2752
  this.inputWrapper.container.parentElement.insertBefore(this.element, this.inputWrapper.container);
2689
2753
  detach(this.inputWrapper.container);
2690
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;
2691
2770
  _super.prototype.destroy.call(this);
2692
2771
  };
2693
2772
  /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */
@@ -2729,6 +2808,12 @@ var DropDownList = /** @class */ (function (_super) {
2729
2808
  __decorate([
2730
2809
  Property('100%')
2731
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);
2732
2817
  __decorate([
2733
2818
  Property('300px')
2734
2819
  ], DropDownList.prototype, "popupHeight", void 0);