igniteui-webcomponents 4.8.2 → 4.10.0

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 (1002) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +2 -2
  3. package/animations/player.d.ts +1 -1
  4. package/animations/player.js +1 -1
  5. package/animations/player.js.map +1 -1
  6. package/animations/presets/slide/index.js +4 -4
  7. package/animations/presets/slide/index.js.map +1 -1
  8. package/components/accordion/accordion.js +2 -2
  9. package/components/accordion/accordion.js.map +1 -1
  10. package/components/avatar/avatar.d.ts +1 -0
  11. package/components/avatar/avatar.js +11 -7
  12. package/components/avatar/avatar.js.map +1 -1
  13. package/components/avatar/themes/themes.js.map +1 -1
  14. package/components/badge/badge.js +7 -6
  15. package/components/badge/badge.js.map +1 -1
  16. package/components/badge/themes/themes.d.ts +1 -1
  17. package/components/badge/themes/themes.js.map +1 -1
  18. package/components/banner/banner.d.ts +55 -0
  19. package/components/banner/banner.js +100 -0
  20. package/components/banner/banner.js.map +1 -0
  21. package/components/banner/themes/banner.base.css.js +3 -0
  22. package/components/banner/themes/banner.base.css.js.map +1 -0
  23. package/components/banner/themes/dark/banner.bootstrap.css.js +3 -0
  24. package/components/banner/themes/dark/banner.bootstrap.css.js.map +1 -0
  25. package/components/banner/themes/dark/banner.fluent.css.d.ts +1 -0
  26. package/components/banner/themes/dark/banner.fluent.css.js +3 -0
  27. package/components/banner/themes/dark/banner.fluent.css.js.map +1 -0
  28. package/components/banner/themes/dark/banner.indigo.css.d.ts +1 -0
  29. package/components/banner/themes/dark/banner.indigo.css.js +3 -0
  30. package/components/banner/themes/dark/banner.indigo.css.js.map +1 -0
  31. package/components/banner/themes/dark/banner.material.css.d.ts +1 -0
  32. package/components/banner/themes/dark/banner.material.css.js +3 -0
  33. package/components/banner/themes/dark/banner.material.css.js.map +1 -0
  34. package/components/banner/themes/light/banner.bootstrap.css.d.ts +1 -0
  35. package/components/banner/themes/light/banner.bootstrap.css.js +3 -0
  36. package/components/banner/themes/light/banner.bootstrap.css.js.map +1 -0
  37. package/components/banner/themes/light/banner.fluent.css.d.ts +1 -0
  38. package/components/banner/themes/light/banner.fluent.css.js +3 -0
  39. package/components/banner/themes/light/banner.fluent.css.js.map +1 -0
  40. package/components/banner/themes/light/banner.indigo.css.d.ts +1 -0
  41. package/components/banner/themes/light/banner.indigo.css.js +3 -0
  42. package/components/banner/themes/light/banner.indigo.css.js.map +1 -0
  43. package/components/banner/themes/light/banner.material.css.d.ts +1 -0
  44. package/components/banner/themes/light/banner.material.css.js +3 -0
  45. package/components/banner/themes/light/banner.material.css.js.map +1 -0
  46. package/components/banner/themes/shared/banner.bootstrap.css.d.ts +1 -0
  47. package/components/banner/themes/shared/banner.bootstrap.css.js +3 -0
  48. package/components/banner/themes/shared/banner.bootstrap.css.js.map +1 -0
  49. package/components/banner/themes/shared/banner.fluent.css.d.ts +1 -0
  50. package/components/banner/themes/shared/banner.fluent.css.js +3 -0
  51. package/components/banner/themes/shared/banner.fluent.css.js.map +1 -0
  52. package/components/banner/themes/shared/banner.indigo.css.d.ts +1 -0
  53. package/components/banner/themes/shared/banner.indigo.css.js +3 -0
  54. package/components/banner/themes/shared/banner.indigo.css.js.map +1 -0
  55. package/components/banner/themes/shared/banner.material.css.d.ts +1 -0
  56. package/components/banner/themes/shared/banner.material.css.js +3 -0
  57. package/components/banner/themes/shared/banner.material.css.js.map +1 -0
  58. package/components/banner/themes/themes.d.ts +2 -0
  59. package/components/banner/themes/themes.js +43 -0
  60. package/components/banner/themes/themes.js.map +1 -0
  61. package/components/button/button-base.d.ts +4 -2
  62. package/components/button/button-base.js +13 -4
  63. package/components/button/button-base.js.map +1 -1
  64. package/components/button/button.js +6 -5
  65. package/components/button/button.js.map +1 -1
  66. package/components/button/icon-button.js +8 -7
  67. package/components/button/icon-button.js.map +1 -1
  68. package/components/button/themes/button/button.base.css.js +1 -1
  69. package/components/button/themes/button/button.base.css.js.map +1 -1
  70. package/components/button/themes/button/dark/button.bootstrap.css.js +1 -1
  71. package/components/button/themes/button/dark/button.bootstrap.css.js.map +1 -1
  72. package/components/button/themes/button/dark/button.fluent.css.js +1 -1
  73. package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
  74. package/components/button/themes/button/dark/button.indigo.css.js +1 -1
  75. package/components/button/themes/button/dark/button.indigo.css.js.map +1 -1
  76. package/components/button/themes/button/dark/button.material.css.js +1 -1
  77. package/components/button/themes/button/dark/button.material.css.js.map +1 -1
  78. package/components/button/themes/button/light/button.bootstrap.css.js +1 -1
  79. package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
  80. package/components/button/themes/button/light/button.fluent.css.js +1 -1
  81. package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
  82. package/components/button/themes/button/light/button.indigo.css.js +1 -1
  83. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  84. package/components/button/themes/button/light/button.material.css.js +1 -1
  85. package/components/button/themes/button/light/button.material.css.js.map +1 -1
  86. package/components/button/themes/button/light/button.shared.css.js +1 -1
  87. package/components/button/themes/button/light/button.shared.css.js.map +1 -1
  88. package/components/button/themes/button/shared/button.bootstrap.css.js +1 -1
  89. package/components/button/themes/button/shared/button.bootstrap.css.js.map +1 -1
  90. package/components/button/themes/button/shared/button.common.css.js +1 -1
  91. package/components/button/themes/button/shared/button.common.css.js.map +1 -1
  92. package/components/button/themes/button/shared/button.fluent.css.js +1 -1
  93. package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
  94. package/components/button/themes/button/shared/button.indigo.css.js +1 -1
  95. package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
  96. package/components/button/themes/button/shared/button.material.css.js +1 -1
  97. package/components/button/themes/button/shared/button.material.css.js.map +1 -1
  98. package/components/button/themes/button/themes.d.ts +1 -1
  99. package/components/button/themes/button/themes.js.map +1 -1
  100. package/components/button/themes/icon-button/dark/icon-button.bootstrap.css.js +1 -1
  101. package/components/button/themes/icon-button/dark/icon-button.bootstrap.css.js.map +1 -1
  102. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js +1 -1
  103. package/components/button/themes/icon-button/dark/icon-button.fluent.css.js.map +1 -1
  104. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js +1 -1
  105. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js.map +1 -1
  106. package/components/button/themes/icon-button/dark/icon-button.material.css.js +1 -1
  107. package/components/button/themes/icon-button/dark/icon-button.material.css.js.map +1 -1
  108. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  109. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  110. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +1 -1
  111. package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
  112. package/components/button/themes/icon-button/light/icon-button.fluent.css.js +1 -1
  113. package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
  114. package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
  115. package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
  116. package/components/button/themes/icon-button/light/icon-button.material.css.js +1 -1
  117. package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
  118. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js +1 -1
  119. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js.map +1 -1
  120. package/components/button/themes/icon-button/shared/icon-button.common.css.js +1 -1
  121. package/components/button/themes/icon-button/shared/icon-button.common.css.js.map +1 -1
  122. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js +1 -1
  123. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js.map +1 -1
  124. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
  125. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
  126. package/components/button/themes/icon-button/shared/icon-button.material.css.js +1 -1
  127. package/components/button/themes/icon-button/shared/icon-button.material.css.js.map +1 -1
  128. package/components/button/themes/icon-button/themes.d.ts +1 -1
  129. package/components/button/themes/icon-button/themes.js.map +1 -1
  130. package/components/button-group/button-group.js +27 -19
  131. package/components/button-group/button-group.js.map +1 -1
  132. package/components/button-group/themes/button.base.css.js +1 -1
  133. package/components/button-group/themes/button.base.css.js.map +1 -1
  134. package/components/button-group/themes/button.d.ts +1 -1
  135. package/components/button-group/themes/button.js +7 -0
  136. package/components/button-group/themes/button.js.map +1 -1
  137. package/components/button-group/themes/dark/button-group.bootstrap.css.js +1 -1
  138. package/components/button-group/themes/dark/button-group.bootstrap.css.js.map +1 -1
  139. package/components/button-group/themes/dark/button-group.fluent.css.js +1 -1
  140. package/components/button-group/themes/dark/button-group.fluent.css.js.map +1 -1
  141. package/components/button-group/themes/dark/button-group.indigo.css.js +1 -1
  142. package/components/button-group/themes/dark/button-group.indigo.css.js.map +1 -1
  143. package/components/button-group/themes/dark/button-group.material.css.js +1 -1
  144. package/components/button-group/themes/dark/button-group.material.css.js.map +1 -1
  145. package/components/button-group/themes/dark/button-group.shared.css.js +1 -1
  146. package/components/button-group/themes/dark/button-group.shared.css.js.map +1 -1
  147. package/components/button-group/themes/group.d.ts +1 -1
  148. package/components/button-group/themes/group.js.map +1 -1
  149. package/components/button-group/themes/light/button-group.bootstrap.css.js +1 -1
  150. package/components/button-group/themes/light/button-group.bootstrap.css.js.map +1 -1
  151. package/components/button-group/themes/light/button-group.fluent.css.js +1 -1
  152. package/components/button-group/themes/light/button-group.fluent.css.js.map +1 -1
  153. package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
  154. package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
  155. package/components/button-group/themes/light/button-group.material.css.js +1 -1
  156. package/components/button-group/themes/light/button-group.material.css.js.map +1 -1
  157. package/components/button-group/themes/light/button-group.shared.css.js +1 -1
  158. package/components/button-group/themes/light/button-group.shared.css.js.map +1 -1
  159. package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
  160. package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
  161. package/components/button-group/themes/shared/button/button.common.css.js +1 -1
  162. package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
  163. package/components/button-group/themes/shared/button/button.fluent.css.js +1 -1
  164. package/components/button-group/themes/shared/button/button.fluent.css.js.map +1 -1
  165. package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
  166. package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
  167. package/components/button-group/themes/shared/button/button.material.css.d.ts +1 -0
  168. package/components/button-group/themes/shared/button/button.material.css.js +3 -0
  169. package/components/button-group/themes/shared/button/button.material.css.js.map +1 -0
  170. package/components/button-group/themes/shared/group/group.bootstrap.css.js +1 -1
  171. package/components/button-group/themes/shared/group/group.bootstrap.css.js.map +1 -1
  172. package/components/button-group/themes/shared/group/group.common.css.js +1 -1
  173. package/components/button-group/themes/shared/group/group.common.css.js.map +1 -1
  174. package/components/button-group/themes/shared/group/group.indigo.css.js +1 -1
  175. package/components/button-group/themes/shared/group/group.indigo.css.js.map +1 -1
  176. package/components/button-group/toggle-button.d.ts +3 -1
  177. package/components/button-group/toggle-button.js +16 -7
  178. package/components/button-group/toggle-button.js.map +1 -1
  179. package/components/calendar/calendar.d.ts +4 -3
  180. package/components/calendar/calendar.js +32 -33
  181. package/components/calendar/calendar.js.map +1 -1
  182. package/components/calendar/common/calendar-base.d.ts +1 -1
  183. package/components/calendar/common/calendar-base.js +2 -2
  184. package/components/calendar/common/calendar-base.js.map +1 -1
  185. package/components/calendar/common/calendar.model.d.ts +1 -1
  186. package/components/calendar/common/calendar.model.js +12 -11
  187. package/components/calendar/common/calendar.model.js.map +1 -1
  188. package/components/calendar/common/utils.d.ts +1 -1
  189. package/components/calendar/common/utils.js +1 -1
  190. package/components/calendar/common/utils.js.map +1 -1
  191. package/components/calendar/days-view/days-view.d.ts +4 -4
  192. package/components/calendar/days-view/days-view.js +11 -14
  193. package/components/calendar/days-view/days-view.js.map +1 -1
  194. package/components/calendar/months-view/months-view.d.ts +2 -2
  195. package/components/calendar/months-view/months-view.js +4 -3
  196. package/components/calendar/months-view/months-view.js.map +1 -1
  197. package/components/calendar/themes/calendar.d.ts +1 -1
  198. package/components/calendar/themes/calendar.js.map +1 -1
  199. package/components/calendar/themes/dark/calendar.bootstrap.css.js +1 -1
  200. package/components/calendar/themes/dark/calendar.bootstrap.css.js.map +1 -1
  201. package/components/calendar/themes/dark/calendar.fluent.css.js +1 -1
  202. package/components/calendar/themes/dark/calendar.fluent.css.js.map +1 -1
  203. package/components/calendar/themes/dark/calendar.indigo.css.js +1 -1
  204. package/components/calendar/themes/dark/calendar.indigo.css.js.map +1 -1
  205. package/components/calendar/themes/dark/calendar.material.css.js +1 -1
  206. package/components/calendar/themes/dark/calendar.material.css.js.map +1 -1
  207. package/components/calendar/themes/days.d.ts +1 -1
  208. package/components/calendar/themes/days.js.map +1 -1
  209. package/components/calendar/themes/light/calendar.bootstrap.css.js +1 -1
  210. package/components/calendar/themes/light/calendar.bootstrap.css.js.map +1 -1
  211. package/components/calendar/themes/light/calendar.fluent.css.js +1 -1
  212. package/components/calendar/themes/light/calendar.fluent.css.js.map +1 -1
  213. package/components/calendar/themes/light/calendar.indigo.css.js +1 -1
  214. package/components/calendar/themes/light/calendar.indigo.css.js.map +1 -1
  215. package/components/calendar/themes/light/calendar.material.css.js +1 -1
  216. package/components/calendar/themes/light/calendar.material.css.js.map +1 -1
  217. package/components/calendar/themes/light/calendar.shared.css.js +1 -1
  218. package/components/calendar/themes/light/calendar.shared.css.js.map +1 -1
  219. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
  220. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
  221. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js +1 -1
  222. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  223. package/components/calendar/themes/shared/fluent/year-month-view.fluent.css.js +1 -1
  224. package/components/calendar/themes/shared/fluent/year-month-view.fluent.css.js.map +1 -1
  225. package/components/calendar/themes/shared/indigo/year-month-view.indigo.css.js +1 -1
  226. package/components/calendar/themes/shared/indigo/year-month-view.indigo.css.js.map +1 -1
  227. package/components/calendar/themes/shared/material/year-month-view.material.css.js +1 -1
  228. package/components/calendar/themes/shared/material/year-month-view.material.css.js.map +1 -1
  229. package/components/calendar/themes/year-month.d.ts +1 -1
  230. package/components/calendar/themes/year-month.js.map +1 -1
  231. package/components/calendar/years-view/years-view.d.ts +2 -2
  232. package/components/calendar/years-view/years-view.js +4 -3
  233. package/components/calendar/years-view/years-view.js.map +1 -1
  234. package/components/card/card.actions.js +6 -5
  235. package/components/card/card.actions.js.map +1 -1
  236. package/components/card/card.content.js +6 -5
  237. package/components/card/card.content.js.map +1 -1
  238. package/components/card/card.header.js +6 -5
  239. package/components/card/card.header.js.map +1 -1
  240. package/components/card/card.js +6 -5
  241. package/components/card/card.js.map +1 -1
  242. package/components/card/card.media.js +2 -2
  243. package/components/card/card.media.js.map +1 -1
  244. package/components/card/themes/actions.d.ts +1 -1
  245. package/components/card/themes/actions.js.map +1 -1
  246. package/components/card/themes/container.d.ts +1 -1
  247. package/components/card/themes/container.js.map +1 -1
  248. package/components/card/themes/content.d.ts +1 -1
  249. package/components/card/themes/content.js.map +1 -1
  250. package/components/card/themes/header.d.ts +1 -1
  251. package/components/card/themes/header.js.map +1 -1
  252. package/components/checkbox/checkbox-base.d.ts +4 -8
  253. package/components/checkbox/checkbox-base.js +19 -38
  254. package/components/checkbox/checkbox-base.js.map +1 -1
  255. package/components/checkbox/checkbox.js +7 -7
  256. package/components/checkbox/checkbox.js.map +1 -1
  257. package/components/checkbox/switch.js +7 -7
  258. package/components/checkbox/switch.js.map +1 -1
  259. package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
  260. package/components/checkbox/themes/checkbox-themes.js.map +1 -1
  261. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  262. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  263. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
  264. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
  265. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  266. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  267. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js +1 -1
  268. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js.map +1 -1
  269. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js +1 -1
  270. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js.map +1 -1
  271. package/components/checkbox/themes/dark/switch/switch.fluent.css.js +1 -1
  272. package/components/checkbox/themes/dark/switch/switch.fluent.css.js.map +1 -1
  273. package/components/checkbox/themes/dark/switch/switch.indigo.css.js +1 -1
  274. package/components/checkbox/themes/dark/switch/switch.indigo.css.js.map +1 -1
  275. package/components/checkbox/themes/dark/switch/switch.material.css.js +1 -1
  276. package/components/checkbox/themes/dark/switch/switch.material.css.js.map +1 -1
  277. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  278. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  279. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js +1 -1
  280. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js.map +1 -1
  281. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  282. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  283. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js +1 -1
  284. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js.map +1 -1
  285. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
  286. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
  287. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js +1 -1
  288. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js.map +1 -1
  289. package/components/checkbox/themes/light/switch/switch.fluent.css.js +1 -1
  290. package/components/checkbox/themes/light/switch/switch.fluent.css.js.map +1 -1
  291. package/components/checkbox/themes/light/switch/switch.indigo.css.js +1 -1
  292. package/components/checkbox/themes/light/switch/switch.indigo.css.js.map +1 -1
  293. package/components/checkbox/themes/light/switch/switch.material.css.js +1 -1
  294. package/components/checkbox/themes/light/switch/switch.material.css.js.map +1 -1
  295. package/components/checkbox/themes/light/switch/switch.shared.css.js +1 -1
  296. package/components/checkbox/themes/light/switch/switch.shared.css.js.map +1 -1
  297. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  298. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  299. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js +1 -1
  300. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js.map +1 -1
  301. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  302. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  303. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  304. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  305. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  306. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  307. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
  308. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
  309. package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
  310. package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
  311. package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
  312. package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
  313. package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
  314. package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
  315. package/components/checkbox/themes/shared/switch/switch.material.css.js +1 -1
  316. package/components/checkbox/themes/shared/switch/switch.material.css.js.map +1 -1
  317. package/components/checkbox/themes/switch-themes.d.ts +1 -1
  318. package/components/checkbox/themes/switch-themes.js +3 -4
  319. package/components/checkbox/themes/switch-themes.js.map +1 -1
  320. package/components/chip/chip.d.ts +1 -1
  321. package/components/chip/chip.js +7 -6
  322. package/components/chip/chip.js.map +1 -1
  323. package/components/chip/themes/chip.base.css.js +1 -1
  324. package/components/chip/themes/chip.base.css.js.map +1 -1
  325. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  326. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  327. package/components/chip/themes/light/chip.indigo.css.js +1 -1
  328. package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
  329. package/components/chip/themes/themes.d.ts +1 -1
  330. package/components/chip/themes/themes.js.map +1 -1
  331. package/components/combo/combo-header.js +5 -4
  332. package/components/combo/combo-header.js.map +1 -1
  333. package/components/combo/combo-item.js +5 -4
  334. package/components/combo/combo-item.js.map +1 -1
  335. package/components/combo/combo-list.js +1 -1
  336. package/components/combo/combo-list.js.map +1 -1
  337. package/components/combo/combo.d.ts +7 -5
  338. package/components/combo/combo.js +33 -14
  339. package/components/combo/combo.js.map +1 -1
  340. package/components/combo/controllers/data.d.ts +2 -2
  341. package/components/combo/controllers/data.js.map +1 -1
  342. package/components/combo/controllers/navigation.d.ts +4 -3
  343. package/components/combo/controllers/navigation.js +8 -4
  344. package/components/combo/controllers/navigation.js.map +1 -1
  345. package/components/combo/controllers/selection.d.ts +2 -1
  346. package/components/combo/controllers/selection.js +9 -0
  347. package/components/combo/controllers/selection.js.map +1 -1
  348. package/components/combo/operations/filter.d.ts +2 -2
  349. package/components/combo/operations/filter.js +2 -2
  350. package/components/combo/operations/filter.js.map +1 -1
  351. package/components/combo/operations/group.d.ts +1 -1
  352. package/components/combo/operations/group.js.map +1 -1
  353. package/components/combo/themes/combo.base.css.js +1 -1
  354. package/components/combo/themes/combo.base.css.js.map +1 -1
  355. package/components/combo/themes/dark/combo.bootstrap.css.js +1 -1
  356. package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -1
  357. package/components/combo/themes/dark/combo.fluent.css.js +1 -1
  358. package/components/combo/themes/dark/combo.fluent.css.js.map +1 -1
  359. package/components/combo/themes/dark/combo.indigo.css.js +1 -1
  360. package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
  361. package/components/combo/themes/dark/combo.material.css.js +1 -1
  362. package/components/combo/themes/dark/combo.material.css.js.map +1 -1
  363. package/components/combo/themes/light/combo.bootstrap.css.js +1 -1
  364. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  365. package/components/combo/themes/light/combo.fluent.css.js +1 -1
  366. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  367. package/components/combo/themes/light/combo.indigo.css.js +1 -1
  368. package/components/combo/themes/light/combo.indigo.css.js.map +1 -1
  369. package/components/combo/themes/light/combo.material.css.js +1 -1
  370. package/components/combo/themes/light/combo.material.css.js.map +1 -1
  371. package/components/combo/themes/shared/combo.common.css.js +1 -1
  372. package/components/combo/themes/shared/combo.common.css.js.map +1 -1
  373. package/components/combo/themes/themes.d.ts +1 -1
  374. package/components/combo/themes/themes.js.map +1 -1
  375. package/components/combo/types.d.ts +2 -2
  376. package/components/combo/types.js.map +1 -1
  377. package/components/common/controllers/focus-ring.d.ts +32 -0
  378. package/components/common/controllers/focus-ring.js +31 -0
  379. package/components/common/controllers/focus-ring.js.map +1 -0
  380. package/components/common/controllers/root-click.d.ts +1 -1
  381. package/components/common/controllers/root-click.js.map +1 -1
  382. package/components/common/controllers/root-scroll.d.ts +1 -1
  383. package/components/common/controllers/root-scroll.js.map +1 -1
  384. package/components/common/decorators/blazorDeepImport.d.ts +2 -1
  385. package/components/common/decorators/blazorDeepImport.js.map +1 -1
  386. package/components/common/decorators/blazorIndirectRender.d.ts +2 -1
  387. package/components/common/decorators/blazorIndirectRender.js.map +1 -1
  388. package/components/common/decorators/blazorSuppressComponent.d.ts +2 -1
  389. package/components/common/decorators/blazorSuppressComponent.js.map +1 -1
  390. package/components/common/decorators/watch.js +2 -2
  391. package/components/common/decorators/watch.js.map +1 -1
  392. package/components/common/definitions/defineAllComponents.js +10 -4
  393. package/components/common/definitions/defineAllComponents.js.map +1 -1
  394. package/components/common/definitions/defineComponents.d.ts +1 -1
  395. package/components/common/definitions/defineComponents.js.map +1 -1
  396. package/components/common/localization/validation-en.d.ts +1 -0
  397. package/components/common/localization/validation-en.js +1 -0
  398. package/components/common/localization/validation-en.js.map +1 -1
  399. package/components/common/mixins/alert.d.ts +1 -1
  400. package/components/common/mixins/alert.js.map +1 -1
  401. package/components/common/mixins/combo-box.js.map +1 -1
  402. package/components/common/mixins/constructor.d.ts +2 -2
  403. package/components/common/mixins/constructor.js.map +1 -1
  404. package/components/common/mixins/event-emitter.d.ts +2 -2
  405. package/components/common/mixins/event-emitter.js.map +1 -1
  406. package/components/common/mixins/form-associated-required.d.ts +2 -2
  407. package/components/common/mixins/form-associated-required.js +1 -1
  408. package/components/common/mixins/form-associated-required.js.map +1 -1
  409. package/components/common/mixins/form-associated.d.ts +2 -2
  410. package/components/common/mixins/form-associated.js.map +1 -1
  411. package/components/common/mixins/option.d.ts +10 -6
  412. package/components/common/mixins/option.js +28 -23
  413. package/components/common/mixins/option.js.map +1 -1
  414. package/components/common/mixins/sizable.d.ts +2 -2
  415. package/components/common/mixins/sizable.js.map +1 -1
  416. package/components/common/util.d.ts +9 -3
  417. package/components/common/util.js +18 -19
  418. package/components/common/util.js.map +1 -1
  419. package/components/common/validators.d.ts +9 -1
  420. package/components/common/validators.js +21 -6
  421. package/components/common/validators.js.map +1 -1
  422. package/components/date-picker/date-picker.d.ts +279 -0
  423. package/components/date-picker/date-picker.js +534 -0
  424. package/components/date-picker/date-picker.js.map +1 -0
  425. package/components/date-picker/themes/dark/date-picker.bootstrap.css.d.ts +1 -0
  426. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +3 -0
  427. package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -0
  428. package/components/date-picker/themes/dark/date-picker.fluent.css.d.ts +1 -0
  429. package/components/date-picker/themes/dark/date-picker.fluent.css.js +3 -0
  430. package/components/date-picker/themes/dark/date-picker.fluent.css.js.map +1 -0
  431. package/components/date-picker/themes/dark/date-picker.indigo.css.d.ts +1 -0
  432. package/components/date-picker/themes/dark/date-picker.indigo.css.js +3 -0
  433. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -0
  434. package/components/date-picker/themes/dark/date-picker.material.css.d.ts +1 -0
  435. package/components/date-picker/themes/dark/date-picker.material.css.js +3 -0
  436. package/components/date-picker/themes/dark/date-picker.material.css.js.map +1 -0
  437. package/components/date-picker/themes/date-picker.base.css.d.ts +1 -0
  438. package/components/date-picker/themes/date-picker.base.css.js +3 -0
  439. package/components/date-picker/themes/date-picker.base.css.js.map +1 -0
  440. package/components/date-picker/themes/light/date-picker.bootstrap.css.d.ts +1 -0
  441. package/components/date-picker/themes/light/date-picker.bootstrap.css.js +3 -0
  442. package/components/date-picker/themes/light/date-picker.bootstrap.css.js.map +1 -0
  443. package/components/date-picker/themes/light/date-picker.fluent.css.d.ts +1 -0
  444. package/components/date-picker/themes/light/date-picker.fluent.css.js +3 -0
  445. package/components/date-picker/themes/light/date-picker.fluent.css.js.map +1 -0
  446. package/components/date-picker/themes/light/date-picker.indigo.css.d.ts +1 -0
  447. package/components/date-picker/themes/light/date-picker.indigo.css.js +3 -0
  448. package/components/date-picker/themes/light/date-picker.indigo.css.js.map +1 -0
  449. package/components/date-picker/themes/light/date-picker.material.css.d.ts +1 -0
  450. package/components/date-picker/themes/light/date-picker.material.css.js +3 -0
  451. package/components/date-picker/themes/light/date-picker.material.css.js.map +1 -0
  452. package/components/date-picker/themes/light/date-picker.shared.css.d.ts +1 -0
  453. package/components/date-picker/themes/light/date-picker.shared.css.js +3 -0
  454. package/components/date-picker/themes/light/date-picker.shared.css.js.map +1 -0
  455. package/components/date-picker/themes/shared/date-picker.bootstrap.css.d.ts +1 -0
  456. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +3 -0
  457. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -0
  458. package/components/date-picker/themes/shared/date-picker.common.css.d.ts +1 -0
  459. package/components/date-picker/themes/shared/date-picker.common.css.js +3 -0
  460. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -0
  461. package/components/date-picker/themes/shared/date-picker.fluent.css.d.ts +1 -0
  462. package/components/date-picker/themes/shared/date-picker.fluent.css.js +3 -0
  463. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -0
  464. package/components/date-picker/themes/shared/date-picker.indigo.css.d.ts +1 -0
  465. package/components/date-picker/themes/shared/date-picker.indigo.css.js +3 -0
  466. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -0
  467. package/components/date-picker/themes/themes.d.ts +2 -0
  468. package/components/date-picker/themes/themes.js +49 -0
  469. package/components/date-picker/themes/themes.js.map +1 -0
  470. package/components/date-time-input/date-time-input.d.ts +7 -7
  471. package/components/date-time-input/date-time-input.js +53 -76
  472. package/components/date-time-input/date-time-input.js.map +1 -1
  473. package/components/date-time-input/date-util.d.ts +1 -1
  474. package/components/date-time-input/date-util.js +40 -32
  475. package/components/date-time-input/date-util.js.map +1 -1
  476. package/components/dialog/dialog.d.ts +2 -1
  477. package/components/dialog/dialog.js +22 -15
  478. package/components/dialog/dialog.js.map +1 -1
  479. package/components/dialog/themes/dialog.base.css.js +1 -1
  480. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  481. package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
  482. package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
  483. package/components/dialog/themes/themes.d.ts +1 -1
  484. package/components/dialog/themes/themes.js.map +1 -1
  485. package/components/divider/divider.d.ts +40 -0
  486. package/components/divider/divider.js +58 -0
  487. package/components/divider/divider.js.map +1 -0
  488. package/components/divider/themes/dark/divider.bootstrap.css.d.ts +1 -0
  489. package/components/divider/themes/dark/divider.bootstrap.css.js +3 -0
  490. package/components/divider/themes/dark/divider.bootstrap.css.js.map +1 -0
  491. package/components/divider/themes/dark/divider.fluent.css.d.ts +1 -0
  492. package/components/divider/themes/dark/divider.fluent.css.js +3 -0
  493. package/components/divider/themes/dark/divider.fluent.css.js.map +1 -0
  494. package/components/divider/themes/dark/divider.indigo.css.d.ts +1 -0
  495. package/components/divider/themes/dark/divider.indigo.css.js +3 -0
  496. package/components/divider/themes/dark/divider.indigo.css.js.map +1 -0
  497. package/components/divider/themes/dark/divider.material.css.d.ts +1 -0
  498. package/components/divider/themes/dark/divider.material.css.js +3 -0
  499. package/components/divider/themes/dark/divider.material.css.js.map +1 -0
  500. package/components/divider/themes/divider.base.css.d.ts +1 -0
  501. package/components/divider/themes/divider.base.css.js +3 -0
  502. package/components/divider/themes/divider.base.css.js.map +1 -0
  503. package/components/divider/themes/light/divider.bootstrap.css.d.ts +1 -0
  504. package/components/divider/themes/light/divider.bootstrap.css.js +3 -0
  505. package/components/divider/themes/light/divider.bootstrap.css.js.map +1 -0
  506. package/components/divider/themes/light/divider.fluent.css.d.ts +1 -0
  507. package/components/divider/themes/light/divider.fluent.css.js +3 -0
  508. package/components/divider/themes/light/divider.fluent.css.js.map +1 -0
  509. package/components/divider/themes/light/divider.indigo.css.d.ts +1 -0
  510. package/components/divider/themes/light/divider.indigo.css.js +3 -0
  511. package/components/divider/themes/light/divider.indigo.css.js.map +1 -0
  512. package/components/divider/themes/light/divider.material.css.d.ts +1 -0
  513. package/components/divider/themes/light/divider.material.css.js +3 -0
  514. package/components/divider/themes/light/divider.material.css.js.map +1 -0
  515. package/components/divider/themes/light/divider.shared.css.d.ts +1 -0
  516. package/components/divider/themes/light/divider.shared.css.js +3 -0
  517. package/components/divider/themes/light/divider.shared.css.js.map +1 -0
  518. package/components/divider/themes/shared/divider.common.css.d.ts +1 -0
  519. package/components/divider/themes/shared/divider.common.css.js +3 -0
  520. package/components/divider/themes/shared/divider.common.css.js.map +1 -0
  521. package/components/divider/themes/shared/divider.indigo.css.d.ts +1 -0
  522. package/components/divider/themes/shared/divider.indigo.css.js +3 -0
  523. package/components/divider/themes/shared/divider.indigo.css.js.map +1 -0
  524. package/components/divider/themes/themes.d.ts +2 -0
  525. package/components/divider/themes/themes.js +47 -0
  526. package/components/divider/themes/themes.js.map +1 -0
  527. package/components/dropdown/dropdown-group.d.ts +1 -1
  528. package/components/dropdown/dropdown-group.js +7 -6
  529. package/components/dropdown/dropdown-group.js.map +1 -1
  530. package/components/dropdown/dropdown-header.js +6 -5
  531. package/components/dropdown/dropdown-header.js.map +1 -1
  532. package/components/dropdown/dropdown-item.d.ts +3 -3
  533. package/components/dropdown/dropdown-item.js +7 -6
  534. package/components/dropdown/dropdown-item.js.map +1 -1
  535. package/components/dropdown/dropdown.d.ts +6 -4
  536. package/components/dropdown/dropdown.js +11 -10
  537. package/components/dropdown/dropdown.js.map +1 -1
  538. package/components/dropdown/themes/container.d.ts +1 -1
  539. package/components/dropdown/themes/container.js.map +1 -1
  540. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  541. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  542. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  543. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  544. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  545. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  546. package/components/dropdown/themes/dark/dropdown.material.css.js +1 -1
  547. package/components/dropdown/themes/dark/dropdown.material.css.js.map +1 -1
  548. package/components/dropdown/themes/group.d.ts +1 -1
  549. package/components/dropdown/themes/group.js.map +1 -1
  550. package/components/dropdown/themes/header.d.ts +1 -1
  551. package/components/dropdown/themes/header.js +7 -0
  552. package/components/dropdown/themes/header.js.map +1 -1
  553. package/components/dropdown/themes/item.d.ts +1 -1
  554. package/components/dropdown/themes/item.js +7 -0
  555. package/components/dropdown/themes/item.js.map +1 -1
  556. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
  557. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  558. package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
  559. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  560. package/components/dropdown/themes/light/dropdown.indigo.css.js +1 -1
  561. package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
  562. package/components/dropdown/themes/light/dropdown.material.css.js +1 -1
  563. package/components/dropdown/themes/light/dropdown.material.css.js.map +1 -1
  564. package/components/dropdown/themes/light/dropdown.shared.css.js +1 -1
  565. package/components/dropdown/themes/light/dropdown.shared.css.js.map +1 -1
  566. package/components/dropdown/themes/shared/dropdown.common.css.js +1 -1
  567. package/components/dropdown/themes/shared/dropdown.common.css.js.map +1 -1
  568. package/components/dropdown/themes/shared/dropdown.indigo.css.js +1 -1
  569. package/components/dropdown/themes/shared/dropdown.indigo.css.js.map +1 -1
  570. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.d.ts +1 -0
  571. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js +3 -0
  572. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js.map +1 -0
  573. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js +1 -1
  574. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js.map +1 -1
  575. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.d.ts +1 -0
  576. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +3 -0
  577. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -0
  578. package/components/expansion-panel/expansion-panel.js +4 -4
  579. package/components/expansion-panel/expansion-panel.js.map +1 -1
  580. package/components/expansion-panel/themes/themes.d.ts +1 -1
  581. package/components/expansion-panel/themes/themes.js.map +1 -1
  582. package/components/focus-trap/focus-trap.d.ts +35 -0
  583. package/components/focus-trap/focus-trap.js +144 -0
  584. package/components/focus-trap/focus-trap.js.map +1 -0
  585. package/components/form/form.d.ts +1 -1
  586. package/components/form/form.js +2 -2
  587. package/components/form/form.js.map +1 -1
  588. package/components/icon/icon.js +8 -7
  589. package/components/icon/icon.js.map +1 -1
  590. package/components/icon/internal-icons-lib.js +6 -0
  591. package/components/icon/internal-icons-lib.js.map +1 -1
  592. package/components/icon/themes/themes.d.ts +1 -1
  593. package/components/icon/themes/themes.js.map +1 -1
  594. package/components/input/input-base.d.ts +4 -3
  595. package/components/input/input-base.js +5 -5
  596. package/components/input/input-base.js.map +1 -1
  597. package/components/input/input.d.ts +19 -3
  598. package/components/input/input.js +23 -18
  599. package/components/input/input.js.map +1 -1
  600. package/components/input/themes/themes.d.ts +1 -1
  601. package/components/input/themes/themes.js.map +1 -1
  602. package/components/list/list-header.js +6 -5
  603. package/components/list/list-header.js.map +1 -1
  604. package/components/list/list-item.js +6 -5
  605. package/components/list/list-item.js.map +1 -1
  606. package/components/list/list.js +7 -6
  607. package/components/list/list.js.map +1 -1
  608. package/components/list/themes/container.d.ts +1 -1
  609. package/components/list/themes/container.js.map +1 -1
  610. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  611. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  612. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  613. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  614. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  615. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  616. package/components/list/themes/header.d.ts +1 -1
  617. package/components/list/themes/header.js +3 -2
  618. package/components/list/themes/header.js.map +1 -1
  619. package/components/list/themes/item.base.css.js +1 -1
  620. package/components/list/themes/item.base.css.js.map +1 -1
  621. package/components/list/themes/item.d.ts +1 -1
  622. package/components/list/themes/item.js.map +1 -1
  623. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  624. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  625. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  626. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  627. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  628. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  629. package/components/list/themes/shared/container/list.bootstrap.css.js +1 -1
  630. package/components/list/themes/shared/container/list.bootstrap.css.js.map +1 -1
  631. package/components/list/themes/shared/container/list.fluent.css.js +1 -1
  632. package/components/list/themes/shared/container/list.fluent.css.js.map +1 -1
  633. package/components/list/themes/shared/container/list.indigo.css.js +1 -1
  634. package/components/list/themes/shared/container/list.indigo.css.js.map +1 -1
  635. package/components/list/themes/shared/container/list.material.css.js +1 -1
  636. package/components/list/themes/shared/container/list.material.css.js.map +1 -1
  637. package/components/list/themes/shared/header/list-header.indigo.css.d.ts +1 -0
  638. package/components/list/themes/shared/header/list-header.indigo.css.js +3 -0
  639. package/components/list/themes/shared/header/list-header.indigo.css.js.map +1 -0
  640. package/components/list/themes/shared/item/list-item.common.css.js +1 -1
  641. package/components/list/themes/shared/item/list-item.common.css.js.map +1 -1
  642. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  643. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  644. package/components/mask-input/mask-input-base.d.ts +1 -1
  645. package/components/mask-input/mask-input-base.js +1 -1
  646. package/components/mask-input/mask-input-base.js.map +1 -1
  647. package/components/mask-input/mask-input.d.ts +2 -2
  648. package/components/mask-input/mask-input.js +4 -6
  649. package/components/mask-input/mask-input.js.map +1 -1
  650. package/components/mask-input/mask-parser.d.ts +2 -2
  651. package/components/mask-input/mask-parser.js +44 -34
  652. package/components/mask-input/mask-parser.js.map +1 -1
  653. package/components/nav-drawer/nav-drawer-header-item.js +6 -5
  654. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  655. package/components/nav-drawer/nav-drawer-item.js +8 -7
  656. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  657. package/components/nav-drawer/nav-drawer.d.ts +6 -6
  658. package/components/nav-drawer/nav-drawer.js +18 -19
  659. package/components/nav-drawer/nav-drawer.js.map +1 -1
  660. package/components/nav-drawer/themes/container.base.css.js +1 -1
  661. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  662. package/components/nav-drawer/themes/container.d.ts +1 -1
  663. package/components/nav-drawer/themes/container.js +3 -2
  664. package/components/nav-drawer/themes/container.js.map +1 -1
  665. package/components/nav-drawer/themes/dark/container/nav-drawer.bootstrap.css.js +1 -1
  666. package/components/nav-drawer/themes/dark/container/nav-drawer.bootstrap.css.js.map +1 -1
  667. package/components/nav-drawer/themes/dark/container/nav-drawer.fluent.css.js +1 -1
  668. package/components/nav-drawer/themes/dark/container/nav-drawer.fluent.css.js.map +1 -1
  669. package/components/nav-drawer/themes/dark/container/nav-drawer.indigo.css.js +1 -1
  670. package/components/nav-drawer/themes/dark/container/nav-drawer.indigo.css.js.map +1 -1
  671. package/components/nav-drawer/themes/dark/container/nav-drawer.material.css.js +1 -1
  672. package/components/nav-drawer/themes/dark/container/nav-drawer.material.css.js.map +1 -1
  673. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
  674. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
  675. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  676. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  677. package/components/nav-drawer/themes/header-item.d.ts +1 -1
  678. package/components/nav-drawer/themes/header-item.js +21 -0
  679. package/components/nav-drawer/themes/header-item.js.map +1 -1
  680. package/components/nav-drawer/themes/item.base.css.js +1 -1
  681. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  682. package/components/nav-drawer/themes/item.d.ts +1 -1
  683. package/components/nav-drawer/themes/item.js +7 -0
  684. package/components/nav-drawer/themes/item.js.map +1 -1
  685. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
  686. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
  687. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
  688. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
  689. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
  690. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
  691. package/components/nav-drawer/themes/light/container/nav-drawer.material.css.js +1 -1
  692. package/components/nav-drawer/themes/light/container/nav-drawer.material.css.js.map +1 -1
  693. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
  694. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
  695. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  696. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  697. package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js +1 -1
  698. package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js.map +1 -1
  699. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +1 -1
  700. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +1 -1
  701. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  702. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  703. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.d.ts +1 -0
  704. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +3 -0
  705. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -0
  706. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js +1 -1
  707. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js.map +1 -1
  708. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.d.ts +1 -0
  709. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js +3 -0
  710. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js.map +1 -0
  711. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.d.ts +1 -0
  712. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js +3 -0
  713. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js.map +1 -0
  714. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.d.ts +1 -0
  715. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js +3 -0
  716. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js.map +1 -0
  717. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js +1 -1
  718. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js.map +1 -1
  719. package/components/nav-drawer/themes/shared/item/item.common.css.js +1 -1
  720. package/components/nav-drawer/themes/shared/item/item.common.css.js.map +1 -1
  721. package/components/nav-drawer/themes/shared/item/item.fluent.css.js +1 -1
  722. package/components/nav-drawer/themes/shared/item/item.fluent.css.js.map +1 -1
  723. package/components/nav-drawer/themes/shared/item/item.indigo.css.js +1 -1
  724. package/components/nav-drawer/themes/shared/item/item.indigo.css.js.map +1 -1
  725. package/components/nav-drawer/themes/shared/item/item.material.css.d.ts +1 -0
  726. package/components/nav-drawer/themes/shared/item/item.material.css.js +3 -0
  727. package/components/nav-drawer/themes/shared/item/item.material.css.js.map +1 -0
  728. package/components/navbar/navbar.js +6 -5
  729. package/components/navbar/navbar.js.map +1 -1
  730. package/components/navbar/themes/dark/navbar.fluent.css.js +1 -1
  731. package/components/navbar/themes/dark/navbar.fluent.css.js.map +1 -1
  732. package/components/navbar/themes/light/navbar.fluent.css.js +1 -1
  733. package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
  734. package/components/navbar/themes/light/navbar.shared.css.js +1 -1
  735. package/components/navbar/themes/light/navbar.shared.css.js.map +1 -1
  736. package/components/navbar/themes/navbar.base.css.js +1 -1
  737. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  738. package/components/navbar/themes/shared/navbar.bootstrap.css.js +1 -1
  739. package/components/navbar/themes/shared/navbar.bootstrap.css.js.map +1 -1
  740. package/components/navbar/themes/shared/navbar.common.css.js +1 -1
  741. package/components/navbar/themes/shared/navbar.common.css.js.map +1 -1
  742. package/components/navbar/themes/shared/navbar.indigo.css.js +1 -1
  743. package/components/navbar/themes/shared/navbar.indigo.css.js.map +1 -1
  744. package/components/navbar/themes/themes.d.ts +1 -1
  745. package/components/navbar/themes/themes.js.map +1 -1
  746. package/components/popover/popover.d.ts +4 -4
  747. package/components/popover/popover.js +16 -18
  748. package/components/popover/popover.js.map +1 -1
  749. package/components/popover/themes/light/popover.base.css.js +1 -1
  750. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  751. package/components/progress/base.d.ts +1 -1
  752. package/components/progress/base.js +14 -9
  753. package/components/progress/base.js.map +1 -1
  754. package/components/progress/circular-gradient.js +1 -1
  755. package/components/progress/circular-gradient.js.map +1 -1
  756. package/components/progress/circular-progress.d.ts +13 -13
  757. package/components/progress/circular-progress.js +5 -5
  758. package/components/progress/circular-progress.js.map +1 -1
  759. package/components/progress/linear-progress.d.ts +11 -11
  760. package/components/progress/linear-progress.js +11 -10
  761. package/components/progress/linear-progress.js.map +1 -1
  762. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  763. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  764. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js +1 -1
  765. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js.map +1 -1
  766. package/components/progress/themes/circular/light/circular.progress.indigo.css.js +1 -1
  767. package/components/progress/themes/circular/light/circular.progress.indigo.css.js.map +1 -1
  768. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js +1 -1
  769. package/components/progress/themes/circular/shared/circular.progress.bootstrap.css.js.map +1 -1
  770. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  771. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  772. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js +1 -1
  773. package/components/progress/themes/circular/shared/circular.progress.fluent.css.js.map +1 -1
  774. package/components/progress/themes/circular/shared/circular.progress.indigo.css.d.ts +1 -0
  775. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js +3 -0
  776. package/components/progress/themes/circular/shared/circular.progress.indigo.css.js.map +1 -0
  777. package/components/progress/themes/circular/themes.d.ts +1 -1
  778. package/components/progress/themes/circular/themes.js +3 -2
  779. package/components/progress/themes/circular/themes.js.map +1 -1
  780. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js +1 -1
  781. package/components/progress/themes/linear/dark/linear.progress.bootstrap.css.js.map +1 -1
  782. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js +1 -1
  783. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js.map +1 -1
  784. package/components/progress/themes/linear/light/linear.progress.bootstrap.css.js +1 -1
  785. package/components/progress/themes/linear/light/linear.progress.bootstrap.css.js.map +1 -1
  786. package/components/progress/themes/linear/light/linear.progress.indigo.css.js +1 -1
  787. package/components/progress/themes/linear/light/linear.progress.indigo.css.js.map +1 -1
  788. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  789. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  790. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  791. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  792. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  793. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  794. package/components/progress/themes/linear/themes.d.ts +1 -1
  795. package/components/progress/themes/linear/themes.js.map +1 -1
  796. package/components/radio/radio.d.ts +15 -7
  797. package/components/radio/radio.js +56 -48
  798. package/components/radio/radio.js.map +1 -1
  799. package/components/radio/themes/dark/radio.bootstrap.css.js +1 -1
  800. package/components/radio/themes/dark/radio.bootstrap.css.js.map +1 -1
  801. package/components/radio/themes/dark/radio.fluent.css.js +1 -1
  802. package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
  803. package/components/radio/themes/dark/radio.indigo.css.js +1 -1
  804. package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
  805. package/components/radio/themes/dark/radio.material.css.js +1 -1
  806. package/components/radio/themes/dark/radio.material.css.js.map +1 -1
  807. package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
  808. package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
  809. package/components/radio/themes/light/radio.fluent.css.js +1 -1
  810. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  811. package/components/radio/themes/light/radio.indigo.css.js +1 -1
  812. package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
  813. package/components/radio/themes/light/radio.material.css.js +1 -1
  814. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  815. package/components/radio/themes/light/radio.shared.css.js +1 -1
  816. package/components/radio/themes/light/radio.shared.css.js.map +1 -1
  817. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  818. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  819. package/components/radio/themes/shared/radio.fluent.css.js +1 -1
  820. package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
  821. package/components/radio/themes/shared/radio.material.css.js +1 -1
  822. package/components/radio/themes/shared/radio.material.css.js.map +1 -1
  823. package/components/radio/themes/themes.d.ts +1 -1
  824. package/components/radio/themes/themes.js +3 -4
  825. package/components/radio/themes/themes.js.map +1 -1
  826. package/components/radio/utils.d.ts +1 -1
  827. package/components/radio/utils.js +9 -2
  828. package/components/radio/utils.js.map +1 -1
  829. package/components/radio-group/radio-group.d.ts +20 -0
  830. package/components/radio-group/radio-group.js +59 -9
  831. package/components/radio-group/radio-group.js.map +1 -1
  832. package/components/rating/rating-symbol.js +2 -2
  833. package/components/rating/rating-symbol.js.map +1 -1
  834. package/components/rating/rating.d.ts +3 -1
  835. package/components/rating/rating.js +24 -18
  836. package/components/rating/rating.js.map +1 -1
  837. package/components/rating/themes/themes.d.ts +1 -1
  838. package/components/rating/themes/themes.js.map +1 -1
  839. package/components/ripple/ripple.js +35 -23
  840. package/components/ripple/ripple.js.map +1 -1
  841. package/components/select/select-group.js +5 -4
  842. package/components/select/select-group.js.map +1 -1
  843. package/components/select/select-header.js +4 -3
  844. package/components/select/select-header.js.map +1 -1
  845. package/components/select/select-item.d.ts +9 -4
  846. package/components/select/select-item.js +13 -11
  847. package/components/select/select-item.js.map +1 -1
  848. package/components/select/select.d.ts +12 -10
  849. package/components/select/select.js +21 -10
  850. package/components/select/select.js.map +1 -1
  851. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  852. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  853. package/components/select/themes/dark/select.fluent.css.js +1 -1
  854. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  855. package/components/select/themes/dark/select.indigo.css.js +1 -1
  856. package/components/select/themes/dark/select.indigo.css.js.map +1 -1
  857. package/components/select/themes/dark/select.material.css.js +1 -1
  858. package/components/select/themes/dark/select.material.css.js.map +1 -1
  859. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  860. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  861. package/components/select/themes/light/select.fluent.css.js +1 -1
  862. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  863. package/components/select/themes/light/select.indigo.css.js +1 -1
  864. package/components/select/themes/light/select.indigo.css.js.map +1 -1
  865. package/components/select/themes/light/select.material.css.js +1 -1
  866. package/components/select/themes/light/select.material.css.js.map +1 -1
  867. package/components/select/themes/shared/select.common.css.js +1 -1
  868. package/components/select/themes/shared/select.common.css.js.map +1 -1
  869. package/components/select/themes/themes.d.ts +1 -1
  870. package/components/select/themes/themes.js.map +1 -1
  871. package/components/slider/range-slider.d.ts +1 -1
  872. package/components/slider/range-slider.js +15 -13
  873. package/components/slider/range-slider.js.map +1 -1
  874. package/components/slider/slider-base.d.ts +2 -2
  875. package/components/slider/slider-base.js +8 -8
  876. package/components/slider/slider-base.js.map +1 -1
  877. package/components/slider/slider-label.js +1 -1
  878. package/components/slider/slider-label.js.map +1 -1
  879. package/components/slider/slider.d.ts +1 -1
  880. package/components/slider/slider.js +3 -3
  881. package/components/slider/slider.js.map +1 -1
  882. package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
  883. package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
  884. package/components/slider/themes/dark/slider.fluent.css.js +1 -1
  885. package/components/slider/themes/dark/slider.fluent.css.js.map +1 -1
  886. package/components/slider/themes/dark/slider.indigo.css.js +1 -1
  887. package/components/slider/themes/dark/slider.indigo.css.js.map +1 -1
  888. package/components/slider/themes/dark/slider.material.css.js +1 -1
  889. package/components/slider/themes/dark/slider.material.css.js.map +1 -1
  890. package/components/slider/themes/light/slider.bootstrap.css.js +1 -1
  891. package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
  892. package/components/slider/themes/light/slider.fluent.css.js +1 -1
  893. package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
  894. package/components/slider/themes/light/slider.indigo.css.js +1 -1
  895. package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
  896. package/components/slider/themes/light/slider.material.css.js +1 -1
  897. package/components/slider/themes/light/slider.material.css.js.map +1 -1
  898. package/components/slider/themes/light/slider.shared.css.js +1 -1
  899. package/components/slider/themes/light/slider.shared.css.js.map +1 -1
  900. package/components/slider/themes/shared/slider.common.css.js +1 -1
  901. package/components/slider/themes/shared/slider.common.css.js.map +1 -1
  902. package/components/slider/themes/shared/slider.indigo.css.js +1 -1
  903. package/components/slider/themes/shared/slider.indigo.css.js.map +1 -1
  904. package/components/slider/themes/slider.base.css.js +1 -1
  905. package/components/slider/themes/slider.base.css.js.map +1 -1
  906. package/components/slider/themes/themes.d.ts +1 -1
  907. package/components/slider/themes/themes.js.map +1 -1
  908. package/components/snackbar/snackbar.d.ts +1 -1
  909. package/components/snackbar/snackbar.js +7 -6
  910. package/components/snackbar/snackbar.js.map +1 -1
  911. package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
  912. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
  913. package/components/snackbar/themes/light/snackbar.indigo.css.js +1 -1
  914. package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
  915. package/components/snackbar/themes/themes.d.ts +1 -1
  916. package/components/snackbar/themes/themes.js.map +1 -1
  917. package/components/stepper/step.d.ts +1 -1
  918. package/components/stepper/step.js +10 -11
  919. package/components/stepper/step.js.map +1 -1
  920. package/components/stepper/stepper.d.ts +2 -2
  921. package/components/stepper/stepper.js +21 -12
  922. package/components/stepper/stepper.js.map +1 -1
  923. package/components/stepper/themes/step/themes.d.ts +1 -1
  924. package/components/stepper/themes/step/themes.js.map +1 -1
  925. package/components/tabs/tab-panel.js +2 -2
  926. package/components/tabs/tab-panel.js.map +1 -1
  927. package/components/tabs/tab.js +5 -5
  928. package/components/tabs/tab.js.map +1 -1
  929. package/components/tabs/tabs.d.ts +2 -2
  930. package/components/tabs/tabs.js +14 -10
  931. package/components/tabs/tabs.js.map +1 -1
  932. package/components/tabs/themes/tab-themes.d.ts +1 -1
  933. package/components/tabs/themes/tab-themes.js.map +1 -1
  934. package/components/tabs/themes/tabs-themes.d.ts +1 -1
  935. package/components/tabs/themes/tabs-themes.js.map +1 -1
  936. package/components/textarea/textarea.d.ts +13 -3
  937. package/components/textarea/textarea.js +23 -10
  938. package/components/textarea/textarea.js.map +1 -1
  939. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  940. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  941. package/components/textarea/themes/themes.d.ts +1 -1
  942. package/components/textarea/themes/themes.js.map +1 -1
  943. package/components/toast/themes/themes.d.ts +1 -1
  944. package/components/toast/themes/themes.js.map +1 -1
  945. package/components/toast/toast.js +7 -6
  946. package/components/toast/toast.js.map +1 -1
  947. package/components/tree/themes/container.d.ts +1 -1
  948. package/components/tree/themes/container.js.map +1 -1
  949. package/components/tree/themes/dark/container.bootstrap.css.js +1 -1
  950. package/components/tree/themes/dark/container.bootstrap.css.js.map +1 -1
  951. package/components/tree/themes/dark/container.fluent.css.js +1 -1
  952. package/components/tree/themes/dark/container.fluent.css.js.map +1 -1
  953. package/components/tree/themes/dark/container.indigo.css.js +1 -1
  954. package/components/tree/themes/dark/container.indigo.css.js.map +1 -1
  955. package/components/tree/themes/dark/container.material.css.js +1 -1
  956. package/components/tree/themes/dark/container.material.css.js.map +1 -1
  957. package/components/tree/themes/item.base.css.js +1 -1
  958. package/components/tree/themes/item.base.css.js.map +1 -1
  959. package/components/tree/themes/item.d.ts +1 -1
  960. package/components/tree/themes/item.js.map +1 -1
  961. package/components/tree/themes/light/container.indigo.css.js +1 -1
  962. package/components/tree/themes/light/container.indigo.css.js.map +1 -1
  963. package/components/tree/themes/light/container.shared.css.js +1 -1
  964. package/components/tree/themes/light/container.shared.css.js.map +1 -1
  965. package/components/tree/themes/shared/item.common.css.js +1 -1
  966. package/components/tree/themes/shared/item.common.css.js.map +1 -1
  967. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  968. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  969. package/components/tree/tree-item.js +12 -13
  970. package/components/tree/tree-item.js.map +1 -1
  971. package/components/tree/tree.d.ts +2 -2
  972. package/components/tree/tree.js +25 -19
  973. package/components/tree/tree.js.map +1 -1
  974. package/components/tree/tree.navigation.d.ts +3 -3
  975. package/components/tree/tree.navigation.js.map +1 -1
  976. package/components/tree/tree.selection.d.ts +2 -2
  977. package/components/tree/tree.selection.js +12 -10
  978. package/components/tree/tree.selection.js.map +1 -1
  979. package/custom-elements.json +3596 -718
  980. package/igniteui-webcomponents.css-data.json +929 -0
  981. package/igniteui-webcomponents.html-data.json +2700 -0
  982. package/index.d.ts +3 -0
  983. package/index.js +3 -0
  984. package/index.js.map +1 -1
  985. package/package.json +6 -2
  986. package/themes/dark/fluent.css +1 -1
  987. package/themes/dark/indigo.css +1 -1
  988. package/themes/light/indigo.css +1 -1
  989. package/theming/config.js +4 -4
  990. package/theming/config.js.map +1 -1
  991. package/theming/theming-controller.d.ts +1 -1
  992. package/theming/theming-controller.js.map +1 -1
  993. package/theming/theming-decorator.js.map +1 -1
  994. package/theming/types.d.ts +1 -1
  995. package/theming/types.js.map +1 -1
  996. package/web-types.json +7623 -0
  997. package/components/checkbox/themes/dark/switch/switch.shared.css.js +0 -3
  998. package/components/checkbox/themes/dark/switch/switch.shared.css.js.map +0 -1
  999. package/components/radio/themes/dark/radio.shared.css.js +0 -3
  1000. package/components/radio/themes/dark/radio.shared.css.js.map +0 -1
  1001. /package/components/{checkbox/themes/dark/switch/switch.shared.css.d.ts → banner/themes/banner.base.css.d.ts} +0 -0
  1002. /package/components/{radio/themes/dark/radio.shared.css.d.ts → banner/themes/dark/banner.bootstrap.css.d.ts} +0 -0
@@ -1,5 +1,10 @@
1
1
  import { isDate } from '../calendar/common/utils.js';
2
2
  import { MaskParser } from '../mask-input/mask-parser.js';
3
+ export var FormatDesc;
4
+ (function (FormatDesc) {
5
+ FormatDesc["Numeric"] = "numeric";
6
+ FormatDesc["TwoDigits"] = "2-digit";
7
+ })(FormatDesc || (FormatDesc = {}));
3
8
  export var DateParts;
4
9
  (function (DateParts) {
5
10
  DateParts["Day"] = "day";
@@ -26,7 +31,7 @@ export class DateTimeUtil {
26
31
  static parseValueFromMask(inputData, dateTimeParts, promptChar) {
27
32
  const parts = {};
28
33
  dateTimeParts.forEach((dp) => {
29
- let value = parseInt(DateTimeUtil.getCleanVal(inputData, dp, promptChar), 10);
34
+ let value = Number.parseInt(DateTimeUtil.getCleanVal(inputData, dp, promptChar), 10);
30
35
  if (!value) {
31
36
  value =
32
37
  dp.type === DateParts.Date || dp.type === DateParts.Month ? 1 : 0;
@@ -61,12 +66,11 @@ export class DateTimeUtil {
61
66
  return new Date(parts[DateParts.Year] || 2000, parts[DateParts.Month] || 0, parts[DateParts.Date] || 1, parts[DateParts.Hours] || 0, parts[DateParts.Minutes] || 0, parts[DateParts.Seconds] || 0);
62
67
  }
63
68
  static getDefaultMask(locale) {
64
- locale = locale || DateTimeUtil.DEFAULT_LOCALE;
65
- const parts = DateTimeUtil.getDefaultLocaleMask(locale);
69
+ const parts = DateTimeUtil.getDefaultLocaleMask(locale || DateTimeUtil.DEFAULT_LOCALE);
66
70
  if (parts !== undefined) {
67
71
  parts.forEach((p) => {
68
72
  if (p.type !== DateParts.Year && p.type !== DateTimeUtil.SEPARATOR) {
69
- p.formatType = "2-digit";
73
+ p.formatType = FormatDesc.TwoDigits;
70
74
  }
71
75
  });
72
76
  return DateTimeUtil.getMask(parts);
@@ -113,7 +117,7 @@ export class DateTimeUtil {
113
117
  let regex = /^\d{4}/g;
114
118
  const timeLiteral = 'T';
115
119
  if (regex.test(value)) {
116
- return new Date(value + `${value.indexOf(timeLiteral) === -1 ? 'T00:00:00' : ''}`);
120
+ return new Date(`${value}${value.indexOf(timeLiteral) === -1 ? 'T00:00:00' : ''}`);
117
121
  }
118
122
  regex = /^\d{2}/g;
119
123
  if (regex.test(value)) {
@@ -125,7 +129,7 @@ export class DateTimeUtil {
125
129
  }
126
130
  static isValidDate(value) {
127
131
  if (isDate(value)) {
128
- return !isNaN(value.getTime());
132
+ return !Number.isNaN(value.getTime());
129
133
  }
130
134
  return false;
131
135
  }
@@ -137,30 +141,30 @@ export class DateTimeUtil {
137
141
  case 'long':
138
142
  case 'medium':
139
143
  case 'full':
140
- options['dateStyle'] = format;
141
- options['timeStyle'] = format;
144
+ options.dateStyle = format;
145
+ options.timeStyle = format;
142
146
  break;
143
147
  case 'shortDate':
144
148
  case 'longDate':
145
149
  case 'mediumDate':
146
150
  case 'fullDate':
147
- options['dateStyle'] = format.toLowerCase().split('date')[0];
151
+ options.dateStyle = format.toLowerCase().split('date')[0];
148
152
  break;
149
153
  case 'shortTime':
150
154
  case 'longTime':
151
155
  case 'mediumTime':
152
156
  case 'fullTime':
153
- options['timeStyle'] = format.toLowerCase().split('time')[0];
157
+ options.timeStyle = format.toLowerCase().split('time')[0];
154
158
  break;
155
159
  default:
156
- return this.setDisplayFormatOptions(value, format, locale, noLeadingZero);
160
+ return DateTimeUtil.setDisplayFormatOptions(value, format, locale, noLeadingZero);
157
161
  }
158
162
  let formatter;
159
163
  try {
160
164
  formatter = new Intl.DateTimeFormat(locale, options);
161
165
  }
162
166
  catch {
163
- formatter = new Intl.DateTimeFormat(this.DEFAULT_LOCALE, options);
167
+ formatter = new Intl.DateTimeFormat(DateTimeUtil.DEFAULT_LOCALE, options);
164
168
  }
165
169
  formattedDate = formatter.format(value);
166
170
  return formattedDate;
@@ -177,7 +181,7 @@ export class DateTimeUtil {
177
181
  break;
178
182
  case DateParts.Year:
179
183
  if (partLength === 2) {
180
- maskedValue = this.prependValue(parseInt(_dateValue.getFullYear().toString().slice(-2), 10), partLength, '0');
184
+ maskedValue = DateTimeUtil.prependValue(Number.parseInt(_dateValue.getFullYear().toString().slice(-2), 10), partLength, '0');
181
185
  }
182
186
  else {
183
187
  maskedValue = _dateValue.getFullYear();
@@ -185,7 +189,7 @@ export class DateTimeUtil {
185
189
  break;
186
190
  case DateParts.Hours:
187
191
  if (datePartInfo.format.indexOf('h') !== -1) {
188
- maskedValue = this.prependValue(this.toTwelveHourFormat(_dateValue.getHours().toString()), partLength, '0');
192
+ maskedValue = DateTimeUtil.prependValue(DateTimeUtil.toTwelveHourFormat(_dateValue.getHours().toString()), partLength, '0');
189
193
  }
190
194
  else {
191
195
  maskedValue = _dateValue.getHours();
@@ -202,7 +206,7 @@ export class DateTimeUtil {
202
206
  break;
203
207
  }
204
208
  if (datePartInfo.type !== DateParts.AmPm) {
205
- return this.prependValue(maskedValue, partLength, '0');
209
+ return DateTimeUtil.prependValue(maskedValue, partLength, '0');
206
210
  }
207
211
  return maskedValue;
208
212
  }
@@ -278,18 +282,19 @@ export class DateTimeUtil {
278
282
  newDate.setSeconds(seconds);
279
283
  }
280
284
  static spinAmPm(newDate, currentDate, amPmFromMask) {
285
+ let date = new Date(newDate);
281
286
  switch (amPmFromMask) {
282
287
  case 'AM':
283
- newDate = new Date(newDate.setHours(newDate.getHours() + 12));
288
+ date = new Date(newDate.setHours(newDate.getHours() + 12));
284
289
  break;
285
290
  case 'PM':
286
- newDate = new Date(newDate.setHours(newDate.getHours() - 12));
291
+ date = new Date(newDate.setHours(newDate.getHours() - 12));
287
292
  break;
288
293
  }
289
- if (newDate.getDate() !== currentDate.getDate()) {
294
+ if (date.getDate() !== currentDate.getDate()) {
290
295
  return currentDate;
291
296
  }
292
- return newDate;
297
+ return date;
293
298
  }
294
299
  static greaterThanMaxValue(value, maxValue, includeTime = true, includeDate = true) {
295
300
  if (includeTime && includeDate) {
@@ -345,7 +350,7 @@ export class DateTimeUtil {
345
350
  }
346
351
  static setDisplayFormatOptions(value, format, locale, noLeadingZero = false) {
347
352
  const options = {};
348
- const parts = this.parseDateTimeFormat(format, locale, noLeadingZero);
353
+ const parts = DateTimeUtil.parseDateTimeFormat(format, locale, noLeadingZero);
349
354
  const datePartFormatOptionMap = new Map([
350
355
  [DateParts.Date, 'day'],
351
356
  [DateParts.Month, 'month'],
@@ -387,14 +392,17 @@ export class DateTimeUtil {
387
392
  if (option && format) {
388
393
  options[option] = format;
389
394
  if (part.type === DateParts.Hours) {
390
- part.format.charAt(0) === 'h'
391
- ? (options['hourCycle'] = 'h12')
392
- : (options['hourCycle'] = 'h23');
395
+ if (part.format.charAt(0) === 'h') {
396
+ options.hourCycle = 'h12';
397
+ }
398
+ else {
399
+ options.hourCycle = 'h23';
400
+ }
393
401
  }
394
402
  }
395
403
  if (part.type === DateParts.AmPm && part.format.length <= 2) {
396
- options['hour'] = '2-digit';
397
- options['hourCycle'] = 'h12';
404
+ options.hour = '2-digit';
405
+ options.hourCycle = 'h12';
398
406
  }
399
407
  }
400
408
  }
@@ -403,7 +411,7 @@ export class DateTimeUtil {
403
411
  formatter = new Intl.DateTimeFormat(locale, options);
404
412
  }
405
413
  catch {
406
- formatter = new Intl.DateTimeFormat(this.DEFAULT_LOCALE, options);
414
+ formatter = new Intl.DateTimeFormat(DateTimeUtil.DEFAULT_LOCALE, options);
407
415
  }
408
416
  const formattedParts = formatter.formatToParts(value);
409
417
  let result = '';
@@ -421,7 +429,7 @@ export class DateTimeUtil {
421
429
  const mask = [];
422
430
  for (const part of dateStruct) {
423
431
  switch (part.formatType) {
424
- case "numeric": {
432
+ case FormatDesc.Numeric: {
425
433
  if (part.type === DateParts.Day) {
426
434
  mask.push('d');
427
435
  }
@@ -433,7 +441,7 @@ export class DateTimeUtil {
433
441
  }
434
442
  break;
435
443
  }
436
- case "2-digit": {
444
+ case FormatDesc.TwoDigits: {
437
445
  if (part.type === DateParts.Day) {
438
446
  mask.push('dd');
439
447
  }
@@ -546,12 +554,12 @@ export class DateTimeUtil {
546
554
  }
547
555
  else if (part.type === DateParts.Year) {
548
556
  switch (part.formatType) {
549
- case "numeric": {
557
+ case FormatDesc.Numeric: {
550
558
  part.position = [currentPos, currentPos + 4];
551
559
  currentPos += 4;
552
560
  break;
553
561
  }
554
- case "2-digit": {
562
+ case FormatDesc.TwoDigits: {
555
563
  part.position = [currentPos, currentPos + 2];
556
564
  currentPos += 2;
557
565
  break;
@@ -571,7 +579,7 @@ export class DateTimeUtil {
571
579
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
572
580
  }
573
581
  static trimEmptyPlaceholders(value, prompt) {
574
- const result = value.replace(new RegExp(this.escapeRegExp(prompt ?? '_'), 'g'), '');
582
+ const result = value.replace(new RegExp(DateTimeUtil.escapeRegExp(prompt ?? '_'), 'g'), '');
575
583
  return result;
576
584
  }
577
585
  static daysInMonth(fullYear, month) {
@@ -581,7 +589,7 @@ export class DateTimeUtil {
581
589
  return (prependChar + value.toString()).slice(-partLength);
582
590
  }
583
591
  static toTwelveHourFormat(value) {
584
- let hour = parseInt(value.replace(new RegExp(this.escapeRegExp(this._parser.prompt), 'g'), '0'), 10);
592
+ let hour = Number.parseInt(value.replace(new RegExp(DateTimeUtil.escapeRegExp(DateTimeUtil._parser.prompt), 'g'), '0'), 10);
585
593
  if (hour > 12) {
586
594
  hour -= 12;
587
595
  }
@@ -1 +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 const [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['hourCycle'] = 'h12')\n : (options['hourCycle'] = 'h23');\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['hourCycle'] = 'h12';\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 escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n private static trimEmptyPlaceholders(value: string, prompt?: string): string {\n const result = value.replace(\n new RegExp(this.escapeRegExp(prompt ?? '_'), 'g'),\n ''\n );\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(\n new RegExp(this.escapeRegExp(this._parser.prompt), 'g'),\n '0'\n ),\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
+ {"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 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 = Number.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 const parts = DateTimeUtil.getDefaultLocaleMask(\n locale || DateTimeUtil.DEFAULT_LOCALE\n );\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 const [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 !Number.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 DateTimeUtil.setDisplayFormatOptions(\n value,\n format,\n locale,\n noLeadingZero\n );\n }\n\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(locale, options);\n } catch {\n formatter = new Intl.DateTimeFormat(DateTimeUtil.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 = DateTimeUtil.prependValue(\n Number.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 = DateTimeUtil.prependValue(\n DateTimeUtil.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 DateTimeUtil.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 let date = new Date(newDate);\n\n switch (amPmFromMask) {\n case 'AM':\n date = new Date(newDate.setHours(newDate.getHours() + 12));\n break;\n case 'PM':\n date = new Date(newDate.setHours(newDate.getHours() - 12));\n break;\n }\n if (date.getDate() !== currentDate.getDate()) {\n return currentDate;\n }\n\n return date;\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 = DateTimeUtil.parseDateTimeFormat(\n format,\n locale,\n noLeadingZero\n );\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 if (part.format.charAt(0) === 'h') {\n options.hourCycle = 'h12';\n } else {\n options.hourCycle = 'h23';\n }\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.hourCycle = 'h12';\n }\n }\n }\n\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(\n locale,\n options as Intl.DateTimeFormatOptions\n );\n } catch {\n formatter = new Intl.DateTimeFormat(DateTimeUtil.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: Intl.DateTimeFormat;\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 escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n private static trimEmptyPlaceholders(value: string, prompt?: string): string {\n const result = value.replace(\n new RegExp(DateTimeUtil.escapeRegExp(prompt ?? '_'), 'g'),\n ''\n );\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 = Number.parseInt(\n value.replace(\n new RegExp(DateTimeUtil.escapeRegExp(DateTimeUtil._parser.prompt), 'g'),\n '0'\n ),\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"]}
@@ -94,7 +94,8 @@ export default class IgcDialogComponent extends IgcDialogComponent_base {
94
94
  private handleClick;
95
95
  private handleClosing;
96
96
  protected formSubmitHandler: (e: Event) => void;
97
- private handleSlotChange;
97
+ private slotChanged;
98
+ private handleContentChange;
98
99
  protected render(): import("lit-html").TemplateResult<1>;
99
100
  }
100
101
  declare global {
@@ -9,9 +9,6 @@ import { LitElement, html, nothing } from 'lit';
9
9
  import { property, queryAssignedElements, state } from 'lit/decorators.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { createRef, ref } from 'lit/directives/ref.js';
12
- import { styles } from './themes/dialog.base.css.js';
13
- import { styles as shared } from './themes/shared/dialog.common.css.js';
14
- import { all } from './themes/themes.js';
15
12
  import { addAnimationController } from '../../animations/player.js';
16
13
  import { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';
17
14
  import { themes } from '../../theming/theming-decorator.js';
@@ -21,6 +18,9 @@ import { watch } from '../common/decorators/watch.js';
21
18
  import { registerComponent } from '../common/definitions/register.js';
22
19
  import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
23
20
  import { createCounter, partNameMap } from '../common/util.js';
21
+ import { styles } from './themes/dialog.base.css.js';
22
+ import { styles as shared } from './themes/shared/dialog.common.css.js';
23
+ import { all } from './themes/themes.js';
24
24
  let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends EventEmitterMixin(LitElement) {
25
25
  constructor() {
26
26
  super(...arguments);
@@ -42,7 +42,7 @@ let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends
42
42
  };
43
43
  }
44
44
  static register() {
45
- registerComponent(this, IgcButtonComponent);
45
+ registerComponent(IgcDialogComponent_1, IgcButtonComponent);
46
46
  }
47
47
  get dialog() {
48
48
  return this.dialogRef.value;
@@ -130,14 +130,19 @@ let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends
130
130
  handleClosing() {
131
131
  return this.emitEvent('igcClosing', { cancelable: true });
132
132
  }
133
- handleSlotChange() {
134
- Array.from(this.querySelectorAll('igc-form, form'))
135
- .filter((each) => each.getAttribute('method') === 'dialog')
136
- .forEach((form) => {
137
- const event = /igc-form/i.test(form.tagName) ? 'igcSubmit' : 'submit';
138
- form.removeEventListener(event, this.formSubmitHandler);
139
- form.addEventListener(event, this.formSubmitHandler);
140
- });
133
+ slotChanged() {
134
+ this.requestUpdate();
135
+ }
136
+ handleContentChange() {
137
+ for (const form of this.querySelectorAll('igc-form, form')) {
138
+ if (form.getAttribute('method') !== 'dialog') {
139
+ continue;
140
+ }
141
+ const eventName = form.matches('form') ? 'submit' : 'igcSubmit';
142
+ form.removeEventListener(eventName, this.formSubmitHandler);
143
+ form.addEventListener(eventName, this.formSubmitHandler);
144
+ }
145
+ this.slotChanged();
141
146
  }
142
147
  render() {
143
148
  const label = this.ariaLabel ? this.ariaLabel : undefined;
@@ -158,13 +163,15 @@ let IgcDialogComponent = IgcDialogComponent_1 = class IgcDialogComponent extends
158
163
  aria-labelledby=${ifDefined(labelledby)}
159
164
  >
160
165
  <header part="title" id=${this.titleId}>
161
- <slot name="title"><span>${this.title}</span></slot>
166
+ <slot name="title" @slotchange=${this.slotChanged}
167
+ ><span>${this.title}</span></slot
168
+ >
162
169
  </header>
163
170
  <section part="content">
164
- <slot @slotchange=${this.handleSlotChange}></slot>
171
+ <slot @slotchange=${this.handleContentChange}></slot>
165
172
  </section>
166
173
  <footer part="footer">
167
- <slot name="footer">
174
+ <slot name="footer" @slotchange=${this.slotChanged}>
168
175
  ${this.hideDefaultAction
169
176
  ? nothing
170
177
  : html `<igc-button variant="flat" @click=${this.hideWithEvent}
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAO,SAAS,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0BhD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,iBAAiB,CAG/D,UAAU,CAAC;IAHE;;QAaL,YAAO,GAAG,SAAS,oBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC;QAEpD,cAAS,GAA2B,SAAS,EAAE,CAAC;QAChD,oBAAe,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QA+BhE,qBAAgB,GAAG,KAAK,CAAC;QAOzB,wBAAmB,GAAG,KAAK,CAAC;QAU5B,sBAAiB,GAAG,KAAK,CAAC;QAO1B,SAAI,GAAG,KAAK,CAAC;QAOZ,cAAS,GAAG,KAAK,CAAC;QAmHhB,sBAAiB,GAAG,CAAC,CAAQ,EAAE,EAAE;YACzC,IAAI,CAAC,YAAY,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC5C,IAAI,CAAC,WAAW,GAAI,CAAC,CAAC,SAAiB,EAAE,KAAK,IAAI,EAAE,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;IAkDJ,CAAC;IAlPQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IAQD,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAM,CAAC;IAC/B,CAAC;IAeD,IAAW,aAAa,CAAC,KAAc;QACrC,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,IAAW,aAAa;QACtB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAChC,CAAC;IAmDS,gBAAgB,CAAC,IAAY;QACrC,OAAO;YACL,CAAC,IAAI,CAAC,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK;YACnD,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB;SAClE,CAAC;IACJ,CAAC;IAGS,eAAe;QACvB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;IAEkB,KAAK,CAAC,YAAY;QACnC,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,GAAqB;QACjD,MAAM,SAAS,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAEpD,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;SACvC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IACjC,CAAC;IAGM,IAAI;QACT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAGM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAGM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,aAAa;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,KAAY;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAc;QAC1D,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACzE,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,IAAY,EAAE,EAAE,CACvD,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;YACxB,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAWO,gBAAgB;QAEtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC;aAC1D,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAEkB,MAAM;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACpD,MAAM,aAAa,GAAG,WAAW,CAAC;YAChC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAA;kBACG,aAAa,gBAAgB,CAAC,IAAI,CAAC,IAAI;;UAE/C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACb,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;iBAEzC,IAAI,CAAC,WAAW;kBACf,IAAI,CAAC,YAAY;qBACd,SAAS,CAAC,KAAK,CAAC;0BACX,SAAS,CAAC,UAAU,CAAC;;kCAEb,IAAI,CAAC,OAAO;qCACT,IAAI,CAAC,KAAK;;;8BAGjB,IAAI,CAAC,gBAAgB;;;;cAIrC,IAAI,CAAC,iBAAiB;YACtB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,IAAI,CAAA,qCAAqC,IAAI,CAAC,aAAa;;kBAEzD;;;;KAIb,CAAC;IACJ,CAAC;;AArPsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AAChC,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAOhB,4BAAS,GAAG,aAAa,EAAE,AAAlB,CAAmB;AAW5C;IADP,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACE;AAGnC;IADP,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;0DACE;AAS5C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;uDAGzD;AAUM;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;4DAC9B;AAOzB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC;+DAC9B;AAU5B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;6DAC7B;AAO1B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACvB;AAOZ;IADP,KAAK,EAAE;qDACkB;AAOV;IADf,QAAQ,EAAE;iDACoB;AAIxB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;uDACH;AAWlB;IADT,KAAK,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;yDAG7C;AAtGkB,kBAAkB;IAFtC,MAAM,CAAC,GAAG,CAAC;IACX,4BAA4B,CAAC,oBAAoB,CAAC;GAC9B,kBAAkB,CA0PtC;eA1PoB,kBAAkB","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, queryAssignedElements, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { Ref, createRef, ref } from 'lit/directives/ref.js';\n\nimport { styles } from './themes/dialog.base.css.js';\nimport { styles as shared } from './themes/shared/dialog.common.css.js';\nimport { all } from './themes/themes.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { createCounter, partNameMap } from '../common/util.js';\n\nexport interface IgcDialogEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot.\n * @slot title - Renders the title of the dialog header.\n * @slot footer - Renders the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container.\n * @csspart footer - The footer container.\n * @csspart overlay - The overlay.\n */\n@themes(all)\n@blazorAdditionalDependencies('IgcButtonComponent')\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-dialog';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(this, IgcButtonComponent);\n }\n\n private static readonly increment = createCounter();\n private titleId = `title-${IgcDialogComponent.increment()}`;\n\n private dialogRef: Ref<HTMLDialogElement> = createRef();\n private animationPlayer = addAnimationController(this, this.dialogRef);\n\n private get dialog() {\n return this.dialogRef.value!;\n }\n\n @queryAssignedElements({ slot: 'title' })\n private titleElements!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'footer' })\n private footerElements!: Array<HTMLElement>;\n\n /* blazorSuppress */\n /**\n * Whether the dialog should be closed when pressing the 'ESCAPE' button.\n * @deprecated since version 4.2.3. Use `keepOpenOnEscape` instead.\n * @attr close-on-escape\n */\n @property({ type: Boolean, attribute: 'close-on-escape' })\n public set closeOnEscape(value: boolean) {\n this.keepOpenOnEscape = !value;\n }\n public get closeOnEscape(): boolean {\n return !this.keepOpenOnEscape;\n }\n\n /**\n * Whether the dialog should be kept open when pressing the 'ESCAPE' button.\n * @attr keep-open-on-escape\n */\n @property({ type: Boolean, attribute: 'keep-open-on-escape' })\n public keepOpenOnEscape = false;\n\n /**\n * Whether the dialog should be closed when clicking outside of it.\n * @attr close-on-outside-click\n */\n @property({ type: Boolean, attribute: 'close-on-outside-click' })\n public closeOnOutsideClick = false;\n\n /**\n * Whether to hide the default action button for the dialog.\n *\n * When there is projected content in the `footer` slot this property\n * has no effect.\n * @attr hide-default-action\n */\n @property({ type: Boolean, attribute: 'hide-default-action' })\n public hideDefaultAction = false;\n\n /**\n * Whether the dialog is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Backdrop animation helper.\n * @hidden @internal\n */\n @state()\n private animating = false;\n\n /**\n * Sets the title of the dialog.\n * @attr\n */\n @property()\n public override title!: string;\n\n /** Sets the return value for the dialog. */\n @property({ attribute: false })\n public returnValue!: string;\n\n protected resolvePartNames(base: string) {\n return {\n [base]: true,\n titled: this.titleElements.length > 0 || this.title,\n footed: this.footerElements.length > 0 || !this.hideDefaultAction,\n };\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected handleOpenState() {\n this.open ? this.dialog.showModal() : this.dialog.close();\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n if (this.open) {\n this.dialog.showModal();\n }\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n /** Opens the dialog. */\n public show() {\n if (this.open) {\n return;\n }\n\n this.toggleAnimation('open');\n this.open = true;\n }\n\n /** Closes the dialog. */\n public async hide() {\n if (!this.open) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.animating = false;\n this.open = false;\n }\n }\n\n /** Toggles the open state of the dialog. */\n public toggle() {\n this.open ? this.hide() : this.show();\n }\n\n protected async hideWithEvent() {\n if (!this.open) {\n return;\n }\n\n if (!this.handleClosing()) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.open = false;\n this.animating = false;\n await this.updateComplete;\n this.emitEvent('igcClosed');\n }\n }\n\n private handleCancel(event: Event) {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this.hideWithEvent();\n }\n }\n\n private handleClick({ clientX, clientY, target }: MouseEvent) {\n if (this.closeOnOutsideClick && this.dialog === target) {\n const { left, top, right, bottom } = this.dialog.getBoundingClientRect();\n const between = (x: number, low: number, high: number) =>\n x >= low && x <= high;\n if (!(between(clientX, left, right) && between(clientY, top, bottom))) {\n this.hideWithEvent();\n }\n }\n }\n\n private handleClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n protected formSubmitHandler = (e: Event) => {\n if (e instanceof SubmitEvent && e.submitter) {\n this.returnValue = (e.submitter as any)?.value || '';\n }\n if (!e.defaultPrevented) {\n this.hideWithEvent();\n }\n };\n\n private handleSlotChange() {\n // Setup submit handling for supported forms\n Array.from(this.querySelectorAll('igc-form, form'))\n .filter((each) => each.getAttribute('method') === 'dialog')\n .forEach((form) => {\n const event = /igc-form/i.test(form.tagName) ? 'igcSubmit' : 'submit';\n form.removeEventListener(event, this.formSubmitHandler);\n form.addEventListener(event, this.formSubmitHandler);\n });\n }\n\n protected override render() {\n const label = this.ariaLabel ? this.ariaLabel : undefined;\n const labelledby = label ? undefined : this.titleId;\n const backdropParts = partNameMap({\n backdrop: true,\n animating: this.animating,\n });\n\n return html`\n <div part=${backdropParts} aria-hidden=${!this.open}></div>\n <dialog\n ${ref(this.dialogRef)}\n part=\"${partNameMap(this.resolvePartNames('base'))}\"\n role=\"dialog\"\n @click=${this.handleClick}\n @cancel=${this.handleCancel}\n aria-label=${ifDefined(label)}\n aria-labelledby=${ifDefined(labelledby)}\n >\n <header part=\"title\" id=${this.titleId}>\n <slot name=\"title\"><span>${this.title}</span></slot>\n </header>\n <section part=\"content\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </section>\n <footer part=\"footer\">\n <slot name=\"footer\">\n ${this.hideDefaultAction\n ? nothing\n : html`<igc-button variant=\"flat\" @click=${this.hideWithEvent}\n >OK</igc-button\n >`}\n </slot>\n </footer>\n </dialog>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, queryAssignedElements, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { type Ref, createRef, ref } from 'lit/directives/ref.js';\n\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { createCounter, partNameMap } from '../common/util.js';\nimport { styles } from './themes/dialog.base.css.js';\nimport { styles as shared } from './themes/shared/dialog.common.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcDialogEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot.\n * @slot title - Renders the title of the dialog header.\n * @slot footer - Renders the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container.\n * @csspart footer - The footer container.\n * @csspart overlay - The overlay.\n */\n@themes(all)\n@blazorAdditionalDependencies('IgcButtonComponent')\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-dialog';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcDialogComponent, IgcButtonComponent);\n }\n\n private static readonly increment = createCounter();\n private titleId = `title-${IgcDialogComponent.increment()}`;\n\n private dialogRef: Ref<HTMLDialogElement> = createRef();\n private animationPlayer = addAnimationController(this, this.dialogRef);\n\n private get dialog() {\n return this.dialogRef.value!;\n }\n\n @queryAssignedElements({ slot: 'title' })\n private titleElements!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'footer' })\n private footerElements!: Array<HTMLElement>;\n\n /* blazorSuppress */\n /**\n * Whether the dialog should be closed when pressing the 'ESCAPE' button.\n * @deprecated since version 4.2.3. Use `keepOpenOnEscape` instead.\n * @attr close-on-escape\n */\n @property({ type: Boolean, attribute: 'close-on-escape' })\n public set closeOnEscape(value: boolean) {\n this.keepOpenOnEscape = !value;\n }\n public get closeOnEscape(): boolean {\n return !this.keepOpenOnEscape;\n }\n\n /**\n * Whether the dialog should be kept open when pressing the 'ESCAPE' button.\n * @attr keep-open-on-escape\n */\n @property({ type: Boolean, attribute: 'keep-open-on-escape' })\n public keepOpenOnEscape = false;\n\n /**\n * Whether the dialog should be closed when clicking outside of it.\n * @attr close-on-outside-click\n */\n @property({ type: Boolean, attribute: 'close-on-outside-click' })\n public closeOnOutsideClick = false;\n\n /**\n * Whether to hide the default action button for the dialog.\n *\n * When there is projected content in the `footer` slot this property\n * has no effect.\n * @attr hide-default-action\n */\n @property({ type: Boolean, attribute: 'hide-default-action' })\n public hideDefaultAction = false;\n\n /**\n * Whether the dialog is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Backdrop animation helper.\n * @hidden @internal\n */\n @state()\n private animating = false;\n\n /**\n * Sets the title of the dialog.\n * @attr\n */\n @property()\n public override title!: string;\n\n /** Sets the return value for the dialog. */\n @property({ attribute: false })\n public returnValue!: string;\n\n protected resolvePartNames(base: string) {\n return {\n [base]: true,\n titled: this.titleElements.length > 0 || this.title,\n footed: this.footerElements.length > 0 || !this.hideDefaultAction,\n };\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected handleOpenState() {\n this.open ? this.dialog.showModal() : this.dialog.close();\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n if (this.open) {\n this.dialog.showModal();\n }\n }\n\n private async toggleAnimation(dir: 'open' | 'close') {\n const animation = dir === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this.animationPlayer.stopAll(),\n this.animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n /** Opens the dialog. */\n public show() {\n if (this.open) {\n return;\n }\n\n this.toggleAnimation('open');\n this.open = true;\n }\n\n /** Closes the dialog. */\n public async hide() {\n if (!this.open) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.animating = false;\n this.open = false;\n }\n }\n\n /** Toggles the open state of the dialog. */\n public toggle() {\n this.open ? this.hide() : this.show();\n }\n\n protected async hideWithEvent() {\n if (!this.open) {\n return;\n }\n\n if (!this.handleClosing()) {\n return;\n }\n\n this.animating = true;\n\n if (await this.toggleAnimation('close')) {\n this.open = false;\n this.animating = false;\n await this.updateComplete;\n this.emitEvent('igcClosed');\n }\n }\n\n private handleCancel(event: Event) {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this.hideWithEvent();\n }\n }\n\n private handleClick({ clientX, clientY, target }: MouseEvent) {\n if (this.closeOnOutsideClick && this.dialog === target) {\n const { left, top, right, bottom } = this.dialog.getBoundingClientRect();\n const between = (x: number, low: number, high: number) =>\n x >= low && x <= high;\n if (!(between(clientX, left, right) && between(clientY, top, bottom))) {\n this.hideWithEvent();\n }\n }\n }\n\n private handleClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n protected formSubmitHandler = (e: Event) => {\n if (e instanceof SubmitEvent && e.submitter) {\n this.returnValue = (e.submitter as any)?.value || '';\n }\n if (!e.defaultPrevented) {\n this.hideWithEvent();\n }\n };\n\n private slotChanged() {\n this.requestUpdate();\n }\n\n private handleContentChange() {\n // Setup submit handling for supported forms\n for (const form of this.querySelectorAll('igc-form, form')) {\n if (form.getAttribute('method') !== 'dialog') {\n continue;\n }\n\n const eventName = form.matches('form') ? 'submit' : 'igcSubmit';\n form.removeEventListener(eventName, this.formSubmitHandler);\n form.addEventListener(eventName, this.formSubmitHandler);\n }\n\n this.slotChanged();\n }\n\n protected override render() {\n const label = this.ariaLabel ? this.ariaLabel : undefined;\n const labelledby = label ? undefined : this.titleId;\n const backdropParts = partNameMap({\n backdrop: true,\n animating: this.animating,\n });\n\n return html`\n <div part=${backdropParts} aria-hidden=${!this.open}></div>\n <dialog\n ${ref(this.dialogRef)}\n part=\"${partNameMap(this.resolvePartNames('base'))}\"\n role=\"dialog\"\n @click=${this.handleClick}\n @cancel=${this.handleCancel}\n aria-label=${ifDefined(label)}\n aria-labelledby=${ifDefined(labelledby)}\n >\n <header part=\"title\" id=${this.titleId}>\n <slot name=\"title\" @slotchange=${this.slotChanged}\n ><span>${this.title}</span></slot\n >\n </header>\n <section part=\"content\">\n <slot @slotchange=${this.handleContentChange}></slot>\n </section>\n <footer part=\"footer\">\n <slot name=\"footer\" @slotchange=${this.slotChanged}>\n ${this.hideDefaultAction\n ? nothing\n : html`<igc-button variant=\"flat\" @click=${this.hideWithEvent}\n >OK</igc-button\n >`}\n </slot>\n </footer>\n </dialog>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n"]}