igniteui-webcomponents 3.2.0 → 3.3.1

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 (359) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +54 -3
  3. package/components/accordion/accordion.d.ts +36 -0
  4. package/components/accordion/accordion.js +129 -0
  5. package/components/accordion/accordion.js.map +1 -0
  6. package/components/{nav-drawer/styles/indigo/nav-drawer-header-item.indigo.css.d.ts → accordion/themes/accordion.base.css.d.ts} +0 -0
  7. package/components/accordion/themes/accordion.base.css.js +3 -0
  8. package/components/accordion/themes/accordion.base.css.js.map +1 -0
  9. package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
  10. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  11. package/components/button/button-base.d.ts +1 -1
  12. package/components/button/button-base.js +7 -2
  13. package/components/button/button-base.js.map +1 -1
  14. package/components/button/icon-button.d.ts +0 -1
  15. package/components/button/icon-button.js +3 -1
  16. package/components/button/icon-button.js.map +1 -1
  17. package/components/button/themes/button/light/button.base.css.js +1 -1
  18. package/components/button/themes/button/light/button.base.css.js.map +1 -1
  19. package/components/button/themes/button/light/button.material.css.js +1 -1
  20. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  21. package/components/calendar/calendar.d.ts +1 -5
  22. package/components/calendar/calendar.js +6 -4
  23. package/components/calendar/calendar.js.map +1 -1
  24. package/components/calendar/common/calendar-base.js +3 -1
  25. package/components/calendar/common/calendar-base.js.map +1 -1
  26. package/components/calendar/common/calendar.model.js.map +1 -1
  27. package/components/calendar/days-view/days-view.d.ts +2 -1
  28. package/components/calendar/days-view/days-view.js +2 -2
  29. package/components/calendar/days-view/days-view.js.map +1 -1
  30. package/components/calendar/months-view/months-view.d.ts +2 -1
  31. package/components/calendar/months-view/months-view.js +2 -2
  32. package/components/calendar/months-view/months-view.js.map +1 -1
  33. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js +1 -1
  34. package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js.map +1 -1
  35. package/components/calendar/years-view/years-view.d.ts +2 -1
  36. package/components/calendar/years-view/years-view.js +2 -2
  37. package/components/calendar/years-view/years-view.js.map +1 -1
  38. package/components/card/card.header.js +2 -0
  39. package/components/card/card.header.js.map +1 -1
  40. package/components/card/card.js +6 -0
  41. package/components/card/card.js.map +1 -1
  42. package/components/card/themes/light/card.header.bootstrap.css.js +1 -1
  43. package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
  44. package/components/{nav-drawer/styles/indigo/nav-drawer-item.indigo.css.d.ts → card/themes/light/card.header.fluent.css.d.ts} +0 -0
  45. package/components/card/themes/light/card.header.fluent.css.js +3 -0
  46. package/components/card/themes/light/card.header.fluent.css.js.map +1 -0
  47. package/components/checkbox/checkbox-base.d.ts +1 -1
  48. package/components/checkbox/checkbox-base.js +7 -2
  49. package/components/checkbox/checkbox-base.js.map +1 -1
  50. package/components/checkbox/checkbox.d.ts +1 -0
  51. package/components/checkbox/checkbox.js +6 -5
  52. package/components/checkbox/checkbox.js.map +1 -1
  53. package/components/checkbox/switch.d.ts +1 -0
  54. package/components/checkbox/switch.js +6 -5
  55. package/components/checkbox/switch.js.map +1 -1
  56. package/components/checkbox/themes/light/checkbox.base.css.js +1 -1
  57. package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
  58. package/components/checkbox/themes/light/checkbox.bootstrap.css.js +1 -1
  59. package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
  60. package/components/checkbox/themes/light/checkbox.fluent.css.js +1 -1
  61. package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
  62. package/components/checkbox/themes/light/checkbox.indigo.css.js +1 -1
  63. package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
  64. package/components/checkbox/themes/light/checkbox.material.css.js +1 -1
  65. package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
  66. package/components/checkbox/themes/light/switch.base.css.js +1 -1
  67. package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
  68. package/components/checkbox/themes/light/switch.fluent.css.js +1 -1
  69. package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
  70. package/components/chip/chip.d.ts +1 -2
  71. package/components/chip/chip.js +3 -1
  72. package/components/chip/chip.js.map +1 -1
  73. package/components/chip/themes/chip.base.css.js +1 -1
  74. package/components/chip/themes/chip.base.css.js.map +1 -1
  75. package/components/chip/themes/chip.bootstrap.css.js +1 -1
  76. package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
  77. package/components/chip/themes/chip.fluent.css.js +1 -1
  78. package/components/chip/themes/chip.fluent.css.js.map +1 -1
  79. package/components/chip/themes/chip.indigo.css.js +1 -1
  80. package/components/chip/themes/chip.indigo.css.js.map +1 -1
  81. package/components/chip/themes/chip.material.css.js +1 -1
  82. package/components/chip/themes/chip.material.css.js.map +1 -1
  83. package/components/common/decorators/blazorAdditionalDependencies.d.ts +5 -0
  84. package/components/common/decorators/blazorAdditionalDependencies.js +6 -0
  85. package/components/common/decorators/blazorAdditionalDependencies.js.map +1 -0
  86. package/components/common/decorators/blazorDeepImport.d.ts +4 -0
  87. package/components/common/decorators/blazorDeepImport.js +2 -0
  88. package/components/common/decorators/blazorDeepImport.js.map +1 -0
  89. package/components/common/decorators/index.d.ts +1 -0
  90. package/components/common/decorators/index.js +1 -0
  91. package/components/common/decorators/index.js.map +1 -1
  92. package/components/common/definitions/defineAllComponents.js +10 -0
  93. package/components/common/definitions/defineAllComponents.js.map +1 -1
  94. package/components/common/i18n/calendar.resources.js.map +1 -1
  95. package/components/common/mixins/constructor.d.ts +1 -0
  96. package/components/common/mixins/constructor.js.map +1 -1
  97. package/components/common/mixins/event-emitter.d.ts +2 -2
  98. package/components/common/mixins/event-emitter.js +2 -2
  99. package/components/common/mixins/event-emitter.js.map +1 -1
  100. package/components/common/types.d.ts +1 -0
  101. package/components/common/types.js +2 -0
  102. package/components/common/types.js.map +1 -0
  103. package/components/common/util.d.ts +18 -0
  104. package/components/common/util.js +17 -0
  105. package/components/common/util.js.map +1 -1
  106. package/components/date-time-input/date-time-input.d.ts +110 -0
  107. package/components/date-time-input/date-time-input.js +505 -0
  108. package/components/date-time-input/date-time-input.js.map +1 -0
  109. package/components/date-time-input/date-util.d.ts +89 -0
  110. package/components/date-time-input/date-util.js +597 -0
  111. package/components/date-time-input/date-util.js.map +1 -0
  112. package/components/dropdown/dropdown-group.d.ts +3 -2
  113. package/components/dropdown/dropdown-group.js +9 -10
  114. package/components/dropdown/dropdown-group.js.map +1 -1
  115. package/components/dropdown/dropdown.d.ts +25 -21
  116. package/components/dropdown/dropdown.js +63 -79
  117. package/components/dropdown/dropdown.js.map +1 -1
  118. package/components/expansion-panel/expansion-panel.d.ts +2 -1
  119. package/components/expansion-panel/expansion-panel.js +11 -5
  120. package/components/expansion-panel/expansion-panel.js.map +1 -1
  121. package/components/expansion-panel/themes/light/expansion-panel.base.css.js +1 -1
  122. package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -1
  123. package/components/form/form.d.ts +1 -1
  124. package/components/form/form.js +3 -1
  125. package/components/form/form.js.map +1 -1
  126. package/components/icon/icon.js +3 -7
  127. package/components/icon/icon.js.map +1 -1
  128. package/components/icon/icon.material.css.js +1 -1
  129. package/components/icon/icon.material.css.js.map +1 -1
  130. package/components/icon/icon.registry.js +2 -0
  131. package/components/icon/icon.registry.js.map +1 -1
  132. package/components/input/input-base.d.ts +7 -3
  133. package/components/input/input-base.js +19 -12
  134. package/components/input/input-base.js.map +1 -1
  135. package/components/input/input.d.ts +1 -4
  136. package/components/input/input.js +8 -4
  137. package/components/input/input.js.map +1 -1
  138. package/components/input/themes/light/input.bootstrap.css.js +1 -1
  139. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  140. package/components/list/list.js +4 -0
  141. package/components/list/list.js.map +1 -1
  142. package/components/list/themes/light/list-item.bootstrap.css.js +1 -1
  143. package/components/list/themes/light/list-item.bootstrap.css.js.map +1 -1
  144. package/components/list/themes/light/list-item.fluent.css.js +1 -1
  145. package/components/list/themes/light/list-item.fluent.css.js.map +1 -1
  146. package/components/list/themes/light/list-item.indigo.css.js +1 -1
  147. package/components/list/themes/light/list-item.indigo.css.js.map +1 -1
  148. package/components/mask-input/mask-input-base.d.ts +38 -0
  149. package/components/mask-input/mask-input-base.js +115 -0
  150. package/components/mask-input/mask-input-base.js.map +1 -0
  151. package/components/mask-input/mask-input.d.ts +5 -36
  152. package/components/mask-input/mask-input.js +11 -89
  153. package/components/mask-input/mask-input.js.map +1 -1
  154. package/components/nav-drawer/nav-drawer-header-item.js +4 -3
  155. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  156. package/components/nav-drawer/nav-drawer-item.js +4 -3
  157. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  158. package/components/nav-drawer/nav-drawer.js +6 -2
  159. package/components/nav-drawer/nav-drawer.js.map +1 -1
  160. package/components/nav-drawer/{styles → themes/dark}/nav-drawer-item.base.css.d.ts +0 -0
  161. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js +3 -0
  162. package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js.map +1 -0
  163. package/components/nav-drawer/{styles/indigo/nav-drawer.indigo.css.d.ts → themes/dark/nav-drawer-item.bootstrap.css.d.ts} +0 -0
  164. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js +3 -0
  165. package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js.map +1 -0
  166. package/components/nav-drawer/{styles/nav-drawer-header-item.base.css.d.ts → themes/dark/nav-drawer-item.fluent.css.d.ts} +0 -0
  167. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js +3 -0
  168. package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js.map +1 -0
  169. package/components/nav-drawer/{styles/nav-drawer.base.css.d.ts → themes/dark/nav-drawer-item.indigo.css.d.ts} +0 -0
  170. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js +3 -0
  171. package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js.map +1 -0
  172. package/components/{snackbar/themes/snackbar.base.css.d.ts → nav-drawer/themes/dark/nav-drawer.indigo.css.d.ts} +0 -0
  173. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js +3 -0
  174. package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js.map +1 -0
  175. package/components/{snackbar/themes/snackbar.bootstrap.css.d.ts → nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.d.ts} +0 -0
  176. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js +3 -0
  177. package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js.map +1 -0
  178. package/components/{snackbar/themes/snackbar.fluent.css.d.ts → nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.d.ts} +0 -0
  179. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +3 -0
  180. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -0
  181. package/components/{snackbar/themes/snackbar.indigo.css.d.ts → nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.d.ts} +0 -0
  182. package/components/nav-drawer/{styles → themes/light}/indigo/nav-drawer-header-item.indigo.css.js +0 -0
  183. package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js.map +1 -0
  184. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.d.ts +1 -0
  185. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +3 -0
  186. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -0
  187. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.d.ts +1 -0
  188. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js +3 -0
  189. package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js.map +1 -0
  190. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.d.ts +1 -0
  191. package/components/nav-drawer/{styles → themes/light}/nav-drawer-header-item.base.css.js +1 -1
  192. package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -0
  193. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.d.ts +1 -0
  194. package/components/nav-drawer/{styles → themes/light}/nav-drawer-item.base.css.js +1 -1
  195. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -0
  196. package/components/nav-drawer/themes/light/nav-drawer.base.css.d.ts +1 -0
  197. package/components/nav-drawer/{styles → themes/light}/nav-drawer.base.css.js +0 -0
  198. package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -0
  199. package/components/progress/circular-progress.d.ts +1 -1
  200. package/components/progress/circular-progress.js +3 -0
  201. package/components/progress/circular-progress.js.map +1 -1
  202. package/components/progress/linear-progress.js +1 -0
  203. package/components/progress/linear-progress.js.map +1 -1
  204. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  205. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  206. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  207. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  208. package/components/progress/themes/linear/linear.progress.bootstrap.css.js +1 -1
  209. package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
  210. package/components/progress/themes/linear/linear.progress.fluent.css.js +1 -1
  211. package/components/progress/themes/linear/linear.progress.fluent.css.js.map +1 -1
  212. package/components/progress/themes/linear/linear.progress.indigo.css.js +1 -1
  213. package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
  214. package/components/radio/radio.d.ts +2 -1
  215. package/components/radio/radio.js +6 -5
  216. package/components/radio/radio.js.map +1 -1
  217. package/components/radio/themes/light/radio.base.css.js +1 -1
  218. package/components/radio/themes/light/radio.base.css.js.map +1 -1
  219. package/components/radio/themes/light/radio.fluent.css.js +1 -1
  220. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  221. package/components/radio-group/radio-group.js +3 -0
  222. package/components/radio-group/radio-group.js.map +1 -1
  223. package/components/rating/rating-symbol.base.css.d.ts +1 -0
  224. package/components/rating/rating-symbol.base.css.js +3 -0
  225. package/components/rating/rating-symbol.base.css.js.map +1 -0
  226. package/components/rating/rating-symbol.d.ts +8 -2
  227. package/components/rating/rating-symbol.js +12 -3
  228. package/components/rating/rating-symbol.js.map +1 -1
  229. package/components/rating/rating.base.css.js +1 -1
  230. package/components/rating/rating.base.css.js.map +1 -1
  231. package/components/rating/rating.bootstrap.css.js +1 -1
  232. package/components/rating/rating.bootstrap.css.js.map +1 -1
  233. package/components/rating/rating.d.ts +19 -14
  234. package/components/rating/rating.fluent.css.js +1 -1
  235. package/components/rating/rating.fluent.css.js.map +1 -1
  236. package/components/rating/rating.indigo.css.js +1 -1
  237. package/components/rating/rating.indigo.css.js.map +1 -1
  238. package/components/rating/rating.js +86 -44
  239. package/components/rating/rating.js.map +1 -1
  240. package/components/slider/range-slider.d.ts +1 -1
  241. package/components/slider/range-slider.js.map +1 -1
  242. package/components/slider/slider-base.js +7 -2
  243. package/components/slider/slider-base.js.map +1 -1
  244. package/components/slider/slider.d.ts +1 -1
  245. package/components/slider/themes/light/slider.base.css.js +1 -1
  246. package/components/slider/themes/light/slider.base.css.js.map +1 -1
  247. package/components/slider/themes/light/slider.bootstrap.css.js +1 -1
  248. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  249. package/components/slider/themes/light/slider.fluent.css.js +1 -1
  250. package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
  251. package/components/slider/themes/light/slider.indigo.css.js +1 -1
  252. package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
  253. package/components/slider/themes/light/slider.material.css.js +1 -1
  254. package/components/slider/themes/light/slider.material.css.js.map +1 -1
  255. package/components/snackbar/snackbar.d.ts +1 -1
  256. package/components/snackbar/snackbar.js +8 -4
  257. package/components/snackbar/snackbar.js.map +1 -1
  258. package/components/snackbar/themes/dark/snackbar.indigo.css.d.ts +1 -0
  259. package/components/snackbar/themes/dark/snackbar.indigo.css.js +3 -0
  260. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -0
  261. package/components/snackbar/themes/light/snackbar.base.css.d.ts +1 -0
  262. package/components/snackbar/themes/light/snackbar.base.css.js +3 -0
  263. package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -0
  264. package/components/snackbar/themes/light/snackbar.bootstrap.css.d.ts +1 -0
  265. package/components/snackbar/themes/light/snackbar.bootstrap.css.js +3 -0
  266. package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -0
  267. package/components/snackbar/themes/light/snackbar.fluent.css.d.ts +1 -0
  268. package/components/snackbar/themes/light/snackbar.fluent.css.js +3 -0
  269. package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -0
  270. package/components/snackbar/themes/light/snackbar.indigo.css.d.ts +1 -0
  271. package/components/snackbar/themes/light/snackbar.indigo.css.js +3 -0
  272. package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -0
  273. package/components/tabs/tab-panel.d.ts +20 -0
  274. package/components/tabs/tab-panel.js +20 -0
  275. package/components/tabs/tab-panel.js.map +1 -0
  276. package/components/tabs/tab.d.ts +37 -0
  277. package/components/tabs/tab.js +71 -0
  278. package/components/tabs/tab.js.map +1 -0
  279. package/components/tabs/tabs.d.ts +79 -0
  280. package/components/tabs/tabs.js +316 -0
  281. package/components/tabs/tabs.js.map +1 -0
  282. package/components/tabs/themes/dark/tab.dark.base.css.d.ts +1 -0
  283. package/components/tabs/themes/dark/tab.dark.base.css.js +3 -0
  284. package/components/tabs/themes/dark/tab.dark.base.css.js.map +1 -0
  285. package/components/tabs/themes/dark/tab.dark.bootstrap.css.d.ts +1 -0
  286. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js +3 -0
  287. package/components/tabs/themes/dark/tab.dark.bootstrap.css.js.map +1 -0
  288. package/components/tabs/themes/light/tab-panel.base.css.d.ts +1 -0
  289. package/components/tabs/themes/light/tab-panel.base.css.js +3 -0
  290. package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -0
  291. package/components/tabs/themes/light/tab.base.css.d.ts +1 -0
  292. package/components/tabs/themes/light/tab.base.css.js +3 -0
  293. package/components/tabs/themes/light/tab.base.css.js.map +1 -0
  294. package/components/tabs/themes/light/tab.bootstrap.css.d.ts +1 -0
  295. package/components/tabs/themes/light/tab.bootstrap.css.js +3 -0
  296. package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -0
  297. package/components/tabs/themes/light/tab.fluent.css.d.ts +1 -0
  298. package/components/tabs/themes/light/tab.fluent.css.js +3 -0
  299. package/components/tabs/themes/light/tab.fluent.css.js.map +1 -0
  300. package/components/tabs/themes/light/tab.indigo.css.d.ts +1 -0
  301. package/components/tabs/themes/light/tab.indigo.css.js +3 -0
  302. package/components/tabs/themes/light/tab.indigo.css.js.map +1 -0
  303. package/components/tabs/themes/light/tabs.base.css.d.ts +1 -0
  304. package/components/tabs/themes/light/tabs.base.css.js +3 -0
  305. package/components/tabs/themes/light/tabs.base.css.js.map +1 -0
  306. package/components/tabs/themes/light/tabs.bootstrap.css.d.ts +1 -0
  307. package/components/tabs/themes/light/tabs.bootstrap.css.js +3 -0
  308. package/components/tabs/themes/light/tabs.bootstrap.css.js.map +1 -0
  309. package/components/tabs/themes/light/tabs.fluent.css.d.ts +1 -0
  310. package/components/tabs/themes/light/tabs.fluent.css.js +3 -0
  311. package/components/tabs/themes/light/tabs.fluent.css.js.map +1 -0
  312. package/components/tabs/themes/light/tabs.indigo.css.d.ts +1 -0
  313. package/components/tabs/themes/light/tabs.indigo.css.js +3 -0
  314. package/components/tabs/themes/light/tabs.indigo.css.js.map +1 -0
  315. package/components/tabs/utils.d.ts +14 -0
  316. package/components/tabs/utils.js +32 -0
  317. package/components/tabs/utils.js.map +1 -0
  318. package/components/toast/themes/toast.base.css.js +1 -1
  319. package/components/toast/themes/toast.base.css.js.map +1 -1
  320. package/components/toggle/toggle.controller.d.ts +24 -4
  321. package/components/toggle/toggle.controller.js +36 -30
  322. package/components/toggle/toggle.controller.js.map +1 -1
  323. package/components/toggle/toggle.directive.d.ts +1 -1
  324. package/components/toggle/toggle.directive.js +1 -0
  325. package/components/toggle/toggle.directive.js.map +1 -1
  326. package/components/tree/themes/light/tree.base.css.js +1 -1
  327. package/components/tree/themes/light/tree.base.css.js.map +1 -1
  328. package/components/tree/tree-item.js +21 -3
  329. package/components/tree/tree-item.js.map +1 -1
  330. package/components/tree/tree.common.js.map +1 -1
  331. package/components/tree/tree.d.ts +3 -3
  332. package/components/tree/tree.js +32 -2
  333. package/components/tree/tree.js.map +1 -1
  334. package/custom-elements.json +672 -70
  335. package/index.d.ts +8 -8
  336. package/index.js +5 -7
  337. package/index.js.map +1 -1
  338. package/package.json +10 -8
  339. package/themes/dark/bootstrap.css +1 -1
  340. package/themes/dark/fluent.css +1 -1
  341. package/themes/dark/indigo.css +1 -1
  342. package/themes/dark/material.css +1 -1
  343. package/vscode-html-custom-data.json +233 -58
  344. package/components/nav-drawer/styles/indigo/nav-drawer-header-item.indigo.css.js.map +0 -1
  345. package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js +0 -3
  346. package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js.map +0 -1
  347. package/components/nav-drawer/styles/indigo/nav-drawer.indigo.css.js +0 -3
  348. package/components/nav-drawer/styles/indigo/nav-drawer.indigo.css.js.map +0 -1
  349. package/components/nav-drawer/styles/nav-drawer-header-item.base.css.js.map +0 -1
  350. package/components/nav-drawer/styles/nav-drawer-item.base.css.js.map +0 -1
  351. package/components/nav-drawer/styles/nav-drawer.base.css.js.map +0 -1
  352. package/components/snackbar/themes/snackbar.base.css.js +0 -3
  353. package/components/snackbar/themes/snackbar.base.css.js.map +0 -1
  354. package/components/snackbar/themes/snackbar.bootstrap.css.js +0 -3
  355. package/components/snackbar/themes/snackbar.bootstrap.css.js.map +0 -1
  356. package/components/snackbar/themes/snackbar.fluent.css.js +0 -3
  357. package/components/snackbar/themes/snackbar.fluent.css.js.map +0 -1
  358. package/components/snackbar/themes/snackbar.indigo.css.js +0 -3
  359. package/components/snackbar/themes/snackbar.indigo.css.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-util.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDate } from '../calendar/common/utils.js';\nimport { MaskParser } from '../mask-input/mask-parser.js';\n\nexport const enum FormatDesc {\n Numeric = 'numeric',\n TwoDigits = '2-digit',\n}\n\nexport enum DateParts {\n Day = 'day',\n Month = 'month',\n Year = 'year',\n Date = 'date',\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n AmPm = 'amPm',\n Literal = 'literal',\n}\n\nexport enum DatePart {\n Month = 'month',\n Year = 'year',\n Date = 'date',\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n AmPm = 'amPm',\n}\n\n/** @ignore */\nexport interface DatePartInfo {\n type: DateParts;\n start: number;\n end: number;\n format: string;\n}\n\nexport interface DatePartDeltas {\n date?: number;\n month?: number;\n year?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n}\n\nexport abstract class DateTimeUtil {\n public static readonly DEFAULT_INPUT_FORMAT = 'MM/dd/yyyy';\n public static readonly DEFAULT_TIME_INPUT_FORMAT = 'hh:mm tt';\n private static readonly SEPARATOR = 'literal';\n private static readonly DEFAULT_LOCALE = 'en';\n private static _parser = new MaskParser();\n\n public static parseValueFromMask(\n inputData: string,\n dateTimeParts: DatePartInfo[],\n promptChar?: string\n ): Date | null {\n const parts: { [key in DateParts]: number } = {} as any;\n dateTimeParts.forEach((dp) => {\n let value = parseInt(\n DateTimeUtil.getCleanVal(inputData, dp, promptChar),\n 10\n );\n if (!value) {\n value =\n dp.type === DateParts.Date || dp.type === DateParts.Month ? 1 : 0;\n }\n parts[dp.type] = value;\n });\n parts[DateParts.Month] -= 1;\n\n if (parts[DateParts.Month] < 0 || 11 < parts[DateParts.Month]) {\n return null;\n }\n\n // TODO: Century threshold\n if (parts[DateParts.Year] < 50) {\n parts[DateParts.Year] += 2000;\n }\n\n if (\n parts[DateParts.Date] >\n DateTimeUtil.daysInMonth(parts[DateParts.Year], parts[DateParts.Month])\n ) {\n return null;\n }\n\n if (\n parts[DateParts.Hours] > 23 ||\n parts[DateParts.Minutes] > 59 ||\n parts[DateParts.Seconds] > 59\n ) {\n return null;\n }\n\n const amPm = dateTimeParts.find((p) => p.type === DateParts.AmPm);\n if (amPm) {\n parts[DateParts.Hours] %= 12;\n }\n\n if (\n amPm &&\n DateTimeUtil.getCleanVal(inputData, amPm, promptChar).toLowerCase() ===\n 'pm'\n ) {\n parts[DateParts.Hours] += 12;\n }\n\n return new Date(\n parts[DateParts.Year] || 2000,\n parts[DateParts.Month] || 0,\n parts[DateParts.Date] || 1,\n parts[DateParts.Hours] || 0,\n parts[DateParts.Minutes] || 0,\n parts[DateParts.Seconds] || 0\n );\n }\n\n public static getDefaultMask(locale: string): string {\n locale = locale || DateTimeUtil.DEFAULT_LOCALE;\n const parts = DateTimeUtil.getDefaultLocaleMask(locale);\n\n if (parts !== undefined) {\n parts.forEach((p: any) => {\n if (p.type !== DateParts.Year && p.type !== DateTimeUtil.SEPARATOR) {\n p.formatType = FormatDesc.TwoDigits;\n }\n });\n\n return DateTimeUtil.getMask(parts);\n }\n\n return '';\n }\n\n public static parseDateTimeFormat(\n mask: string,\n locale: string = DateTimeUtil.DEFAULT_LOCALE,\n noLeadingZero = false\n ): DatePartInfo[] {\n const format = mask || DateTimeUtil.getDefaultMask(locale);\n const dateTimeParts: DatePartInfo[] = [];\n const formatArray = Array.from(format);\n let currentPart: DatePartInfo | null = null;\n let position = 0;\n\n for (let i = 0; i < formatArray.length; i++, position++) {\n const type = DateTimeUtil.determineDatePart(formatArray[i]);\n if (currentPart) {\n if (currentPart.type === type) {\n currentPart.format += formatArray[i];\n if (i < formatArray.length - 1) {\n continue;\n }\n }\n\n DateTimeUtil.addCurrentPart(currentPart, dateTimeParts, noLeadingZero);\n position = currentPart.end;\n }\n\n currentPart = {\n start: position,\n end: position + formatArray[i].length,\n type,\n format: formatArray[i],\n };\n }\n\n // make sure the last member of a format like H:m:s is not omitted\n if (\n !dateTimeParts.filter((p) => p.format.includes(currentPart!.format))\n .length\n ) {\n DateTimeUtil.addCurrentPart(currentPart!, dateTimeParts, noLeadingZero);\n }\n // formats like \"y\" or \"yyy\" are treated like \"yyyy\" while editing\n const yearPart = dateTimeParts.filter((p) => p.type === DateParts.Year)[0];\n if (yearPart && yearPart.format !== 'yy') {\n yearPart.end += 4 - yearPart.format.length;\n yearPart.format = 'yyyy';\n }\n\n return dateTimeParts;\n }\n\n public static parseIsoDate(value: string): Date | null {\n let regex = /^\\d{4}/g;\n const timeLiteral = 'T';\n if (regex.test(value)) {\n return new Date(\n value + `${value.indexOf(timeLiteral) === -1 ? 'T00:00:00' : ''}`\n );\n }\n\n regex = /^\\d{2}/g;\n if (regex.test(value)) {\n const dateNow = new Date().toISOString();\n // eslint-disable-next-line prefer-const\n let [datePart, _timePart] = dateNow.split(timeLiteral);\n return new Date(`${datePart}T${value}`);\n }\n\n return null;\n }\n\n public static isValidDate(value: any): value is Date {\n if (isDate(value)) {\n return !isNaN(value.getTime());\n }\n\n return false;\n }\n\n public static formatDate(\n value: Date,\n locale: string,\n format: string,\n noLeadingZero = false\n ): string {\n const options: any = {};\n let formattedDate = '';\n\n switch (format) {\n case 'short':\n case 'long':\n case 'medium':\n case 'full':\n options['dateStyle'] = format;\n options['timeStyle'] = format;\n break;\n case 'shortDate':\n case 'longDate':\n case 'mediumDate':\n case 'fullDate':\n options['dateStyle'] = format.toLowerCase().split('date')[0];\n break;\n case 'shortTime':\n case 'longTime':\n case 'mediumTime':\n case 'fullTime':\n options['timeStyle'] = format.toLowerCase().split('time')[0];\n break;\n default:\n return this.setDisplayFormatOptions(\n value,\n format,\n locale,\n noLeadingZero\n );\n }\n\n let formatter;\n try {\n formatter = new Intl.DateTimeFormat(locale, options);\n } catch {\n formatter = new Intl.DateTimeFormat(this.DEFAULT_LOCALE, options);\n }\n\n formattedDate = formatter.format(value);\n\n return formattedDate;\n }\n\n public static getPartValue(\n datePartInfo: DatePartInfo,\n partLength: number,\n _dateValue: Date | null\n ): string {\n let maskedValue: any;\n const datePart = datePartInfo.type;\n\n switch (datePart) {\n case DateParts.Date:\n maskedValue = _dateValue!.getDate();\n break;\n case DateParts.Month:\n // months are zero based\n maskedValue = _dateValue!.getMonth() + 1;\n break;\n case DateParts.Year:\n if (partLength === 2) {\n maskedValue = this.prependValue(\n parseInt(_dateValue!.getFullYear().toString().slice(-2), 10),\n partLength,\n '0'\n );\n } else {\n maskedValue = _dateValue!.getFullYear();\n }\n break;\n case DateParts.Hours:\n if (datePartInfo.format.indexOf('h') !== -1) {\n maskedValue = this.prependValue(\n this.toTwelveHourFormat(_dateValue!.getHours().toString()),\n partLength,\n '0'\n );\n } else {\n maskedValue = _dateValue!.getHours();\n }\n break;\n case DateParts.Minutes:\n maskedValue = _dateValue!.getMinutes();\n break;\n case DateParts.Seconds:\n maskedValue = _dateValue!.getSeconds();\n break;\n case DateParts.AmPm:\n maskedValue = _dateValue!.getHours() >= 12 ? 'PM' : 'AM';\n break;\n }\n\n if (datePartInfo.type !== DateParts.AmPm) {\n return this.prependValue(maskedValue, partLength, '0');\n }\n\n return maskedValue;\n }\n\n public static spinYear(delta: number, newDate: Date): Date {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear() + delta,\n newDate.getMonth()\n );\n if (newDate.getDate() > maxDate) {\n // clip to max to avoid leap year change shifting the entire value\n newDate.setDate(maxDate);\n }\n newDate.setFullYear(newDate.getFullYear() + delta);\n\n return newDate;\n }\n\n public static spinMonth(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear(),\n newDate.getMonth() + delta\n );\n if (newDate.getDate() > maxDate) {\n newDate.setDate(maxDate);\n }\n\n const maxMonth = 11;\n const minMonth = 0;\n let month = newDate.getMonth() + delta;\n if (month > maxMonth) {\n month = spinLoop ? (month % maxMonth) - 1 : maxMonth;\n } else if (month < minMonth) {\n month = spinLoop ? maxMonth + (month % maxMonth) + 1 : minMonth;\n }\n\n newDate.setMonth(month);\n }\n\n public static spinDate(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear(),\n newDate.getMonth()\n );\n let date = newDate.getDate() + delta;\n if (date > maxDate) {\n date = spinLoop ? date % maxDate : maxDate;\n } else if (date < 1) {\n date = spinLoop ? maxDate + (date % maxDate) : 1;\n }\n\n newDate.setDate(date);\n }\n\n public static spinHours(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxHour = 23;\n const minHour = 0;\n let hours = newDate.getHours() + delta;\n if (hours > maxHour) {\n hours = spinLoop ? (hours % maxHour) - 1 : maxHour;\n } else if (hours < minHour) {\n hours = spinLoop ? maxHour + (hours % maxHour) + 1 : minHour;\n }\n\n newDate.setHours(hours);\n }\n\n public static spinMinutes(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxMinutes = 59;\n const minMinutes = 0;\n let minutes = newDate.getMinutes() + delta;\n if (minutes > maxMinutes) {\n minutes = spinLoop ? (minutes % maxMinutes) - 1 : maxMinutes;\n } else if (minutes < minMinutes) {\n minutes = spinLoop ? maxMinutes + (minutes % maxMinutes) + 1 : minMinutes;\n }\n\n newDate.setMinutes(minutes);\n }\n\n public static spinSeconds(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxSeconds = 59;\n const minSeconds = 0;\n let seconds = newDate.getSeconds() + delta;\n if (seconds > maxSeconds) {\n seconds = spinLoop ? (seconds % maxSeconds) - 1 : maxSeconds;\n } else if (seconds < minSeconds) {\n seconds = spinLoop ? maxSeconds + (seconds % maxSeconds) + 1 : minSeconds;\n }\n\n newDate.setSeconds(seconds);\n }\n\n public static spinAmPm(\n newDate: Date,\n currentDate: Date,\n amPmFromMask: string\n ): Date {\n switch (amPmFromMask) {\n case 'AM':\n newDate = new Date(newDate.setHours(newDate.getHours() + 12));\n break;\n case 'PM':\n newDate = new Date(newDate.setHours(newDate.getHours() - 12));\n break;\n }\n if (newDate.getDate() !== currentDate.getDate()) {\n return currentDate;\n }\n\n return newDate;\n }\n\n public static greaterThanMaxValue(\n value: Date,\n maxValue: Date,\n includeTime = true,\n includeDate = true\n ): boolean {\n if (includeTime && includeDate) {\n return value.getTime() > maxValue.getTime();\n }\n\n const _value = new Date(value.getTime());\n const _maxValue = new Date(maxValue.getTime());\n if (!includeTime) {\n _value.setHours(0, 0, 0, 0);\n _maxValue.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n _value.setFullYear(0, 0, 0);\n _maxValue.setFullYear(0, 0, 0);\n }\n\n return _value.getTime() > _maxValue.getTime();\n }\n\n /**\n * Determines whether the provided value is less than the provided min value.\n *\n * @param includeTime set to false if you want to exclude time portion of the two dates\n * @param includeDate set to false if you want to exclude the date portion of the two dates\n * @returns true if provided value is less than provided minValue\n */\n public static lessThanMinValue(\n value: Date,\n minValue: Date,\n includeTime = true,\n includeDate = true\n ): boolean {\n if (includeTime && includeDate) {\n return value.getTime() < minValue.getTime();\n }\n\n const _value = new Date(value.getTime());\n const _minValue = new Date(minValue.getTime());\n if (!includeTime) {\n _value.setHours(0, 0, 0, 0);\n _minValue.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n _value.setFullYear(0, 0, 0);\n _minValue.setFullYear(0, 0, 0);\n }\n\n return _value.getTime() < _minValue.getTime();\n }\n\n /**\n * Validates a value within a given min and max value range.\n *\n * @param value The value to validate\n * @param minValue The lowest possible value that `value` can take\n * @param maxValue The largest possible value that `value` can take\n */\n public static validateMinMax(\n value: Date,\n minValue: Date | string,\n maxValue: Date | string,\n includeTime = true,\n includeDate = true\n ) {\n // if (!value) {\n // return null;\n // }\n const errors = {};\n const min = DateTimeUtil.isValidDate(minValue)\n ? minValue\n : DateTimeUtil.parseIsoDate(minValue);\n const max = DateTimeUtil.isValidDate(maxValue)\n ? maxValue\n : DateTimeUtil.parseIsoDate(maxValue);\n if (\n min &&\n value &&\n DateTimeUtil.lessThanMinValue(value, min, includeTime, includeDate)\n ) {\n Object.assign(errors, { minValue: true });\n }\n if (\n max &&\n value &&\n DateTimeUtil.greaterThanMaxValue(value, max, includeTime, includeDate)\n ) {\n Object.assign(errors, { maxValue: true });\n }\n\n return errors;\n }\n\n private static setDisplayFormatOptions(\n value: Date,\n format: string,\n locale: string,\n noLeadingZero = false\n ) {\n const options: any = {};\n const parts = this.parseDateTimeFormat(format, locale, noLeadingZero);\n\n const datePartFormatOptionMap = new Map([\n [DateParts.Date, 'day'],\n [DateParts.Month, 'month'],\n [DateParts.Year, 'year'],\n [DateParts.Hours, 'hour'],\n [DateParts.Minutes, 'minute'],\n [DateParts.Seconds, 'second'],\n [DateParts.AmPm, 'dayPeriod'],\n ]);\n\n const dateFormatMap = new Map([\n ['d', 'numeric'],\n ['dd', '2-digit'],\n ['M', 'numeric'],\n ['MM', '2-digit'],\n ['MMM', 'short'],\n ['MMMM', 'long'],\n ['MMMMM', 'narrow'],\n ['y', 'numeric'],\n ['yy', '2-digit'],\n ['yyy', 'numeric'],\n ['yyyy', 'numeric'],\n ['h', 'numeric'],\n ['hh', '2-digit'],\n ['H', 'numeric'],\n ['HH', '2-digit'],\n ['m', 'numeric'],\n ['mm', '2-digit'],\n ['s', 'numeric'],\n ['ss', '2-digit'],\n ['ttt', 'short'],\n ['tttt', 'long'],\n ['ttttt', 'narrow'],\n ]);\n\n for (const part of parts) {\n if (part.type !== DateParts.Literal) {\n const option = datePartFormatOptionMap.get(part.type);\n const format =\n dateFormatMap.get(part.format) ||\n dateFormatMap.get(part.format.substring(0, 2));\n\n if (option && format) {\n options[option] = format;\n\n if (part.type === DateParts.Hours) {\n part.format.charAt(0) === 'h'\n ? (options['hour12'] = true)\n : (options['hour12'] = false);\n }\n }\n\n // Need to be set if we have 't' or 'tt'.\n if (part.type === DateParts.AmPm && part.format.length <= 2) {\n options['hour'] = '2-digit';\n options['hour12'] = true;\n }\n }\n }\n\n let formatter;\n try {\n formatter = new Intl.DateTimeFormat(\n locale,\n options as Intl.DateTimeFormatOptions\n );\n } catch {\n formatter = new Intl.DateTimeFormat(this.DEFAULT_LOCALE, options);\n }\n\n const formattedParts = formatter.formatToParts(value);\n\n let result = '';\n\n for (const part of parts) {\n if (part.type === DateParts.Literal) {\n result += part.format;\n continue;\n }\n\n const option = datePartFormatOptionMap.get(part.type)!;\n result += formattedParts.filter((p) => p.type === option)[0]?.value || '';\n }\n\n return result;\n }\n\n private static getMask(dateStruct: any[]): string {\n const mask = [];\n\n for (const part of dateStruct) {\n switch (part.formatType) {\n case FormatDesc.Numeric: {\n if (part.type === DateParts.Day) {\n mask.push('d');\n } else if (part.type === DateParts.Month) {\n mask.push('M');\n } else {\n mask.push('yyyy');\n }\n break;\n }\n case FormatDesc.TwoDigits: {\n if (part.type === DateParts.Day) {\n mask.push('dd');\n } else if (part.type === DateParts.Month) {\n mask.push('MM');\n } else {\n mask.push('yy');\n }\n }\n }\n\n if (part.type === DateTimeUtil.SEPARATOR) {\n mask.push(part.value);\n }\n }\n\n return mask.join('');\n }\n\n private static addCurrentPart(\n currentPart: DatePartInfo,\n dateTimeParts: DatePartInfo[],\n noLeadingZero = false\n ): void {\n DateTimeUtil.ensureLeadingZero(currentPart, noLeadingZero);\n currentPart.end = currentPart.start + currentPart.format.length;\n dateTimeParts.push(currentPart);\n }\n\n private static ensureLeadingZero(part: DatePartInfo, noLeadingZero = false) {\n switch (part.type) {\n case DateParts.Date:\n case DateParts.Month:\n case DateParts.Hours:\n case DateParts.Minutes:\n case DateParts.Seconds:\n if (part.format.length === 1 && !noLeadingZero) {\n part.format = part.format.repeat(2);\n }\n break;\n }\n }\n\n private static determineDatePart(char: string): DateParts {\n switch (char) {\n case 'd':\n case 'D':\n return DateParts.Date;\n case 'M':\n return DateParts.Month;\n case 'y':\n case 'Y':\n return DateParts.Year;\n case 'h':\n case 'H':\n return DateParts.Hours;\n case 'm':\n return DateParts.Minutes;\n case 's':\n case 'S':\n return DateParts.Seconds;\n case 't':\n case 'T':\n return DateParts.AmPm;\n default:\n return DateParts.Literal;\n }\n }\n\n private static getDefaultLocaleMask(locale: string) {\n const dateStruct: any = [];\n let formatter;\n try {\n formatter = new Intl.DateTimeFormat(locale);\n } catch {\n return;\n }\n\n const formatToParts = formatter.formatToParts(new Date());\n\n for (const part of formatToParts) {\n if (part.type === DateTimeUtil.SEPARATOR) {\n dateStruct.push({\n type: DateTimeUtil.SEPARATOR,\n value: part.value,\n });\n } else {\n dateStruct.push({\n type: part.type,\n });\n }\n }\n\n const formatterOptions = formatter.resolvedOptions();\n\n for (const part of dateStruct) {\n switch (part.type) {\n case DateParts.Day: {\n part.formatType = formatterOptions.day;\n break;\n }\n case DateParts.Month: {\n part.formatType = formatterOptions.month;\n break;\n }\n case DateParts.Year: {\n part.formatType = formatterOptions.year;\n break;\n }\n }\n }\n\n DateTimeUtil.fillDatePartsPositions(dateStruct);\n return dateStruct;\n }\n\n private static fillDatePartsPositions(dateArray: any[]): void {\n let currentPos = 0;\n\n for (const part of dateArray) {\n // Day|Month part positions\n if (part.type === DateParts.Day || part.type === DateParts.Month) {\n // Offset 2 positions for number\n part.position = [currentPos, currentPos + 2];\n currentPos += 2;\n } else if (part.type === DateParts.Year) {\n // Year part positions\n switch (part.formatType) {\n case FormatDesc.Numeric: {\n // Offset 4 positions for full year\n part.position = [currentPos, currentPos + 4];\n currentPos += 4;\n break;\n }\n case FormatDesc.TwoDigits: {\n // Offset 2 positions for short year\n part.position = [currentPos, currentPos + 2];\n currentPos += 2;\n break;\n }\n }\n } else if (part.type === DateTimeUtil.SEPARATOR) {\n // Separator positions\n part.position = [currentPos, currentPos + 1];\n currentPos++;\n }\n }\n }\n\n private static getCleanVal(\n inputData: string,\n datePart: DatePartInfo,\n prompt?: string\n ): string {\n return DateTimeUtil.trimEmptyPlaceholders(\n inputData.substring(datePart.start, datePart.end),\n prompt\n );\n }\n\n private static trimEmptyPlaceholders(value: string, prompt?: string): string {\n const result = value.replace(new RegExp(prompt || '_', 'g'), '');\n return result;\n }\n\n private static daysInMonth(fullYear: number, month: number): number {\n return new Date(fullYear, month + 1, 0).getDate();\n }\n\n private static prependValue(\n value: number,\n partLength: number,\n prependChar: string\n ): string {\n return (prependChar + value.toString()).slice(-partLength);\n }\n\n private static toTwelveHourFormat(value: string): number {\n let hour = parseInt(\n value.replace(new RegExp(this._parser.prompt, 'g'), '0'),\n 10\n );\n if (hour > 12) {\n hour -= 12;\n } else if (hour === 0) {\n hour = 12;\n }\n\n return hour;\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
2
  import type IgcDropdownItemComponent from './dropdown-item';
3
+ import { SizableInterface } from '../common/mixins/sizable.js';
3
4
  /**
4
5
  * @element igc-dropdown-group - A container for a group of `igc-dropdown-item` components.
5
6
  *
@@ -11,11 +12,11 @@ import type IgcDropdownItemComponent from './dropdown-item';
11
12
  export default class IgcDropdownGroupComponent extends LitElement {
12
13
  static readonly tagName = "igc-dropdown-group";
13
14
  static styles: import("lit").CSSResult;
15
+ protected parent: SizableInterface;
14
16
  /** All child `igc-dropdown-item`s. */
15
17
  items: Array<IgcDropdownItemComponent>;
16
- /** @private */
17
- size: 'small' | 'medium' | 'large';
18
18
  connectedCallback(): void;
19
+ protected getParent(): import("./dropdown.js").default;
19
20
  protected render(): import("lit-html").TemplateResult<1>;
20
21
  }
21
22
  declare global {
@@ -5,22 +5,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { html, LitElement } from 'lit';
8
- import { property, queryAssignedElements } from 'lit/decorators.js';
8
+ import { queryAssignedElements } from 'lit/decorators.js';
9
9
  import { themes } from '../../theming/theming-decorator.js';
10
10
  import { styles } from './themes/light/dropdown-group.base.css.js';
11
11
  import { styles as fluent } from './themes/light/dropdown-group.fluent.css.js';
12
+ import { blazorSuppress } from '../common/decorators/blazorSuppress.js';
12
13
  let IgcDropdownGroupComponent = class IgcDropdownGroupComponent extends LitElement {
13
- constructor() {
14
- super(...arguments);
15
- this.size = 'large';
16
- }
17
14
  connectedCallback() {
18
15
  super.connectedCallback();
19
16
  this.setAttribute('role', 'group');
20
- const dropdown = this.closest('igc-dropdown');
21
- this.size = dropdown.size;
17
+ this.parent = this.getParent();
18
+ }
19
+ getParent() {
20
+ return this.closest('igc-dropdown');
22
21
  }
23
22
  render() {
23
+ var _a, _b;
24
+ this.setAttribute('size', (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 'large');
24
25
  return html `
25
26
  <label part="label"><slot name="label"></slot></label>
26
27
  <slot></slot>
@@ -30,11 +31,9 @@ let IgcDropdownGroupComponent = class IgcDropdownGroupComponent extends LitEleme
30
31
  IgcDropdownGroupComponent.tagName = 'igc-dropdown-group';
31
32
  IgcDropdownGroupComponent.styles = styles;
32
33
  __decorate([
34
+ blazorSuppress(),
33
35
  queryAssignedElements({ flatten: true, selector: 'igc-dropdown-item' })
34
36
  ], IgcDropdownGroupComponent.prototype, "items", void 0);
35
- __decorate([
36
- property({ reflect: true })
37
- ], IgcDropdownGroupComponent.prototype, "size", void 0);
38
37
  IgcDropdownGroupComponent = __decorate([
39
38
  themes({ fluent })
40
39
  ], IgcDropdownGroupComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-group.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAa/E,IAAqB,yBAAyB,GAA9C,MAAqB,yBAA0B,SAAQ,UAAU;IAAjE;;QAWS,SAAI,GAAiC,OAAO,CAAC;IAgBtD,CAAC;IAdiB,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAyB,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;KAGV,CAAC;IACJ,CAAC;CACF,CAAA;AA1BwB,iCAAO,GAAG,oBAAqB,CAAA;AAE/B,gCAAM,GAAG,MAAO,CAAA;AAIvC;IADC,qBAAqB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;wDACzB;AAI/C;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uDACwB;AAXjC,yBAAyB;IAD7C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;GACE,yBAAyB,CA2B7C;eA3BoB,yBAAyB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/dropdown-group.base.css.js';\nimport { styles as fluent } from './themes/light/dropdown-group.fluent.css.js';\nimport type IgcDropdownItemComponent from './dropdown-item';\nimport type IgcDropdownComponent from './dropdown';\n\n/**\n * @element igc-dropdown-group - A container for a group of `igc-dropdown-item` components.\n *\n * @slot label - Contains the group's label.\n * @slot - Intended to contain the items belonging to this group.\n *\n * @csspart label - The native label element.\n */\n@themes({ fluent })\nexport default class IgcDropdownGroupComponent extends LitElement {\n public static readonly tagName = 'igc-dropdown-group';\n\n public static override styles = styles;\n\n /** All child `igc-dropdown-item`s. */\n @queryAssignedElements({ flatten: true, selector: 'igc-dropdown-item' })\n public items!: Array<IgcDropdownItemComponent>;\n\n /** @private */\n @property({ reflect: true })\n public size: 'small' | 'medium' | 'large' = 'large';\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this.setAttribute('role', 'group');\n const dropdown = this.closest('igc-dropdown') as IgcDropdownComponent;\n this.size = dropdown.size;\n }\n\n protected override render() {\n return html`\n <label part=\"label\"><slot name=\"label\"></slot></label>\n <slot></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-group': IgcDropdownGroupComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"dropdown-group.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAYxE,IAAqB,yBAAyB,GAA9C,MAAqB,yBAA0B,SAAQ,UAAU;IAW/C,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAES,SAAS;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAE,CAAC;IACvC,CAAC;IAEkB,MAAM;;QACvB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,mCAAI,OAAO,CAAC,CAAC;QAExD,OAAO,IAAI,CAAA;;;KAGV,CAAC;IACJ,CAAC;CACF,CAAA;AA7BwB,iCAAO,GAAG,oBAAqB,CAAA;AAE/B,gCAAM,GAAG,MAAO,CAAA;AAMvC;IAFC,cAAc,EAAE;IAChB,qBAAqB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;wDACzB;AAT5B,yBAAyB;IAD7C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;GACE,yBAAyB,CA8B7C;eA9BoB,yBAAyB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { queryAssignedElements } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/dropdown-group.base.css.js';\nimport { styles as fluent } from './themes/light/dropdown-group.fluent.css.js';\nimport type IgcDropdownItemComponent from './dropdown-item';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { SizableInterface } from '../common/mixins/sizable.js';\n\n/**\n * @element igc-dropdown-group - A container for a group of `igc-dropdown-item` components.\n *\n * @slot label - Contains the group's label.\n * @slot - Intended to contain the items belonging to this group.\n *\n * @csspart label - The native label element.\n */\n@themes({ fluent })\nexport default class IgcDropdownGroupComponent extends LitElement {\n public static readonly tagName = 'igc-dropdown-group';\n\n public static override styles = styles;\n protected parent!: SizableInterface;\n\n /** All child `igc-dropdown-item`s. */\n @blazorSuppress()\n @queryAssignedElements({ flatten: true, selector: 'igc-dropdown-item' })\n public items!: Array<IgcDropdownItemComponent>;\n\n public override connectedCallback() {\n super.connectedCallback();\n\n this.setAttribute('role', 'group');\n this.parent = this.getParent();\n }\n\n protected getParent() {\n return this.closest('igc-dropdown')!;\n }\n\n protected override render() {\n this.setAttribute('size', this.parent?.size ?? 'large');\n\n return html`\n <label part=\"label\"><slot name=\"label\"></slot></label>\n <slot></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-group': IgcDropdownGroupComponent;\n }\n}\n"]}
@@ -1,16 +1,12 @@
1
1
  import { LitElement } from 'lit';
2
2
  import { Constructor } from '../common/mixins/constructor.js';
3
3
  import type { IgcPlacement, IgcToggleComponent, IgcToggleEventMap } from '../toggle/types';
4
+ import IgcDropdownGroupComponent from './dropdown-group.js';
4
5
  import IgcDropdownItemComponent from './dropdown-item.js';
5
- import type IgcDropdownGroupComponent from './dropdown-group';
6
- export declare enum DropdownActionKey {
7
- ESCAPE = "escape",
8
- ENTER = "enter"
9
- }
10
6
  export interface IgcDropdownEventMap extends IgcToggleEventMap {
11
7
  igcChange: CustomEvent<IgcDropdownItemComponent>;
12
8
  }
13
- declare const IgcDropdownComponent_base: Constructor<import("../common/mixins/sizable.js").SizableInterface> & Constructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcDropdownEventMap>> & Constructor<LitElement>;
9
+ declare const IgcDropdownComponent_base: Constructor<import("../common/mixins/sizable.js").SizableInterface> & import("../common/mixins/constructor.js").AbstractConstructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcDropdownEventMap>> & Constructor<LitElement>;
14
10
  /**
15
11
  * Represents a DropDown component.
16
12
  *
@@ -35,7 +31,8 @@ export default class IgcDropdownComponent extends IgcDropdownComponent_base impl
35
31
  private selectedItem;
36
32
  private activeItem;
37
33
  private target;
38
- private get allItems();
34
+ private readonly keyDownHandlers;
35
+ protected get allItems(): IgcDropdownItemComponent[];
39
36
  private targetNodes;
40
37
  protected content: HTMLElement;
41
38
  protected scrollContainer: HTMLElement;
@@ -68,21 +65,28 @@ export default class IgcDropdownComponent extends IgcDropdownComponent_base impl
68
65
  protected updateOptions(): void;
69
66
  protected sizeChange(): void;
70
67
  constructor();
71
- firstUpdated(): void;
68
+ firstUpdated(): Promise<void>;
72
69
  protected getUpdateComplete(): Promise<boolean>;
73
- private handleKeyDown;
74
- private handleItemActionKey;
75
- private handleClick;
76
- private handleTargetClick;
77
- private handleOpening;
78
- private handleClosing;
79
- private handleChange;
80
- private handleSlotChange;
81
- private handleFocusout;
82
- private getItem;
83
- private activateItem;
84
- private selectItem;
85
- private navigate;
70
+ protected setInitialSelection(): void;
71
+ protected handleKeyDown: (event: KeyboardEvent) => void;
72
+ protected onHomeKey(): void;
73
+ protected onEndKey(): void;
74
+ protected onEscapeKey(): void;
75
+ protected onEnterKey(): void;
76
+ protected handleClick(event: MouseEvent): void;
77
+ protected handleTargetClick: () => Promise<void>;
78
+ protected handleOpening(): boolean;
79
+ protected handleClosing(): boolean;
80
+ protected handleChange(item: IgcDropdownItemComponent): void;
81
+ protected handleSlotChange(): void;
82
+ protected handleFocusout(event: Event): void;
83
+ protected getItem(value: string): {
84
+ item: IgcDropdownItemComponent;
85
+ index: number;
86
+ };
87
+ protected activateItem(value: IgcDropdownItemComponent): void;
88
+ protected selectItem(item: IgcDropdownItemComponent, emit?: boolean): IgcDropdownItemComponent | null;
89
+ protected navigate(direction: -1 | 1, currentIndex?: number): void;
86
90
  private navigateItem;
87
91
  private scrollToHiddenItem;
88
92
  private getNearestSiblingFocusableItemIndex;
@@ -11,21 +11,29 @@ import { styles } from './themes/light/dropdown.base.css.js';
11
11
  import { styles as bootstrap } from './themes/light/dropdown.bootstrap.css.js';
12
12
  import { styles as fluent } from './themes/light/dropdown.fluent.css.js';
13
13
  import { styles as indigo } from './themes/light/dropdown.indigo.css.js';
14
- import IgcDropdownItemComponent from './dropdown-item.js';
15
14
  import { IgcToggleController } from '../toggle/toggle.controller.js';
16
15
  import { styleMap } from 'lit/directives/style-map.js';
17
16
  import { SizableMixin } from '../common/mixins/sizable.js';
18
17
  import { themes } from '../../theming/theming-decorator.js';
19
18
  import { watch } from '../common/decorators/watch.js';
20
19
  import { blazorSuppress } from '../common/decorators/blazorSuppress.js';
21
- export var DropdownActionKey;
22
- (function (DropdownActionKey) {
23
- DropdownActionKey["ESCAPE"] = "escape";
24
- DropdownActionKey["ENTER"] = "enter";
25
- })(DropdownActionKey || (DropdownActionKey = {}));
20
+ import { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';
21
+ import { defineComponents } from '../common/definitions/defineComponents.js';
22
+ import IgcDropdownGroupComponent from './dropdown-group.js';
23
+ import IgcDropdownHeaderComponent from './dropdown-header.js';
24
+ import IgcDropdownItemComponent from './dropdown-item.js';
25
+ defineComponents(IgcDropdownGroupComponent, IgcDropdownHeaderComponent, IgcDropdownItemComponent);
26
26
  let IgcDropdownComponent = class IgcDropdownComponent extends SizableMixin(EventEmitterMixin(LitElement)) {
27
27
  constructor() {
28
28
  super();
29
+ this.keyDownHandlers = new Map(Object.entries({
30
+ Escape: this.onEscapeKey,
31
+ Enter: this.onEnterKey,
32
+ ArrowUp: this.onArrowUpKeyDown,
33
+ ArrowDown: this.onArrowDownKeyDown,
34
+ Home: this.onHomeKey,
35
+ End: this.onEndKey,
36
+ }));
29
37
  this.keepOpenOnSelect = false;
30
38
  this.open = false;
31
39
  this.placement = 'bottom-start';
@@ -36,62 +44,35 @@ let IgcDropdownComponent = class IgcDropdownComponent extends SizableMixin(Event
36
44
  this.keepOpenOnOutsideClick = false;
37
45
  this.sameWidth = false;
38
46
  this.handleKeyDown = (event) => {
39
- if (this.open &&
40
- event &&
41
- (event.composedPath().includes(this.target) ||
42
- event.composedPath().includes(this.content))) {
43
- const key = event.key.toLowerCase();
44
- const navKeys = [
45
- 'esc',
46
- 'escape',
47
- 'enter',
48
- 'arrowup',
49
- 'up',
50
- 'arrowdown',
51
- 'down',
52
- ];
53
- if (navKeys.indexOf(key) === -1) {
54
- return;
55
- }
47
+ var _a;
48
+ const path = event.composedPath();
49
+ if (!(path.includes(this.target) || path.includes(this.content)))
50
+ return;
51
+ if (this.keyDownHandlers.has(event.key)) {
56
52
  event.preventDefault();
57
53
  event.stopPropagation();
58
- switch (key) {
59
- case 'esc':
60
- case 'escape':
61
- this.handleItemActionKey(DropdownActionKey.ESCAPE);
62
- break;
63
- case 'enter':
64
- this.handleItemActionKey(DropdownActionKey.ENTER);
65
- break;
66
- case 'arrowup':
67
- case 'up':
68
- this.onArrowUpKeyDown();
69
- break;
70
- case 'arrowdown':
71
- case 'down':
72
- this.onArrowDownKeyDown();
73
- break;
74
- default:
75
- return;
76
- }
54
+ (_a = this.keyDownHandlers.get(event.key)) === null || _a === void 0 ? void 0 : _a.call(this);
77
55
  }
78
56
  };
79
- this.handleTargetClick = () => {
57
+ this.handleTargetClick = async () => {
80
58
  if (!this.open) {
81
59
  if (!this.handleOpening())
82
60
  return;
83
61
  this.show();
62
+ await this.updateComplete;
84
63
  this.emitEvent('igcOpened');
85
64
  }
86
65
  else {
87
66
  this._hide();
88
67
  }
89
68
  };
90
- this.toggleController = new IgcToggleController(this, this.target);
69
+ this.toggleController = new IgcToggleController(this, {
70
+ target: this.target,
71
+ closeCallback: () => this._hide(),
72
+ });
91
73
  }
92
74
  get allItems() {
93
- const groupItems = this.groups.flatMap((group) => group.items);
94
- return [...this.items, ...groupItems];
75
+ return [...this.items, ...this.groups.flatMap((group) => group.items)];
95
76
  }
96
77
  toggleDirectiveChange() {
97
78
  var _a;
@@ -112,44 +93,50 @@ let IgcDropdownComponent = class IgcDropdownComponent extends SizableMixin(Event
112
93
  updateOptions() {
113
94
  if (!this.toggleController)
114
95
  return;
115
- this.toggleController.updateToggleDir();
96
+ this.toggleController.update();
116
97
  }
117
98
  sizeChange() {
118
- this.groups.forEach((g) => (g.size = this.size));
99
+ this.groups.forEach((g) => g.requestUpdate());
119
100
  }
120
- firstUpdated() {
101
+ async firstUpdated() {
121
102
  if (this.targetNodes.length) {
122
103
  this.target = this.targetNodes[0];
123
104
  this.target.setAttribute('aria-haspopup', 'listbox');
124
105
  }
106
+ await this.updateComplete;
107
+ this.setInitialSelection();
125
108
  }
126
109
  async getUpdateComplete() {
127
110
  const result = await super.getUpdateComplete();
128
111
  await this.toggleController.rendered;
129
112
  return result;
130
113
  }
131
- handleItemActionKey(key) {
132
- switch (key) {
133
- case DropdownActionKey.ENTER:
134
- this.selectItem(this.activeItem);
135
- this.handleChange(this.activeItem);
136
- break;
137
- case DropdownActionKey.ESCAPE:
138
- break;
114
+ setInitialSelection() {
115
+ const item = this.allItems.filter((item) => item.selected).at(-1);
116
+ this.allItems.forEach((item) => (item.selected = false));
117
+ if (item) {
118
+ this.selectItem(item, false);
139
119
  }
140
- if (!this.keepOpenOnSelect)
141
- this._hide();
120
+ }
121
+ onHomeKey() {
122
+ this.navigateTo(this.allItems.filter((item) => !item.disabled).at(0).value);
123
+ }
124
+ onEndKey() {
125
+ this.navigateTo(this.allItems.filter((item) => !item.disabled).at(-1).value);
126
+ }
127
+ onEscapeKey() {
128
+ this._hide();
129
+ }
130
+ onEnterKey() {
131
+ this.selectItem(this.activeItem);
142
132
  }
143
133
  handleClick(event) {
144
- const newSelectedItem = event
134
+ const item = event
145
135
  .composedPath()
146
136
  .find((e) => e instanceof IgcDropdownItemComponent);
147
- if (!newSelectedItem || newSelectedItem.disabled)
137
+ if (!item || item.disabled)
148
138
  return;
149
- this.selectItem(newSelectedItem);
150
- this.handleChange(newSelectedItem);
151
- if (!this.keepOpenOnSelect)
152
- this._hide();
139
+ this.selectItem(item);
153
140
  }
154
141
  handleOpening() {
155
142
  const args = { cancelable: true };
@@ -186,25 +173,25 @@ let IgcDropdownComponent = class IgcDropdownComponent extends SizableMixin(Event
186
173
  activateItem(value) {
187
174
  if (!value)
188
175
  return;
189
- if (this.activeItem && this.activeItem !== value) {
176
+ if (this.activeItem) {
190
177
  this.activeItem.active = false;
191
178
  }
192
179
  this.activeItem = value;
193
180
  this.activeItem.active = true;
194
181
  }
195
182
  selectItem(item, emit = true) {
196
- const oldItem = this.selectedItem;
197
- if (!item) {
183
+ if (!item)
198
184
  return null;
199
- }
200
- if (oldItem && oldItem !== item) {
201
- oldItem.selected = false;
185
+ if (this.selectedItem) {
186
+ this.selectedItem.selected = false;
202
187
  }
203
188
  this.activateItem(item);
204
189
  this.selectedItem = item;
205
190
  this.selectedItem.selected = true;
206
191
  if (emit)
207
192
  this.handleChange(this.selectedItem);
193
+ if (emit && !this.keepOpenOnSelect)
194
+ this._hide();
208
195
  return this.selectedItem;
209
196
  }
210
197
  navigate(direction, currentIndex) {
@@ -264,13 +251,14 @@ let IgcDropdownComponent = class IgcDropdownComponent extends SizableMixin(Event
264
251
  onArrowUpKeyDown() {
265
252
  this.navigatePrev();
266
253
  }
267
- _hide(emit = true) {
254
+ async _hide(emit = true) {
268
255
  if (emit && !this.handleClosing())
269
256
  return;
270
257
  if (!this.open)
271
258
  return;
272
259
  this.open = false;
273
260
  if (emit) {
261
+ await this.updateComplete;
274
262
  this.emitEvent('igcClosed');
275
263
  }
276
264
  }
@@ -285,12 +273,7 @@ let IgcDropdownComponent = class IgcDropdownComponent extends SizableMixin(Event
285
273
  this._hide(false);
286
274
  }
287
275
  toggle(target) {
288
- if (!this.open) {
289
- this.show(target);
290
- }
291
- else {
292
- this.hide();
293
- }
276
+ this.open ? this.hide() : this.show(target);
294
277
  }
295
278
  navigateTo(value) {
296
279
  const index = typeof value === 'string' ? this.getItem(value).index : value;
@@ -401,7 +384,8 @@ __decorate([
401
384
  blazorSuppress()
402
385
  ], IgcDropdownComponent.prototype, "select", null);
403
386
  IgcDropdownComponent = __decorate([
404
- themes({ bootstrap, fluent, indigo })
387
+ themes({ bootstrap, fluent, indigo }),
388
+ blazorAdditionalDependencies('IgcDropdownItemComponent, IgcDropdownHeaderComponent, IgcDropdownGroupComponent')
405
389
  ], IgcDropdownComponent);
406
390
  export default IgcDropdownComponent;
407
391
  //# sourceMappingURL=dropdown.js.map