igniteui-webcomponents 6.2.0 → 6.3.0-RC.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 (688) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/components/accordion/accordion.js +4 -8
  3. package/components/accordion/accordion.js.map +1 -1
  4. package/components/accordion/themes/accordion.base.css.js +1 -1
  5. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  6. package/components/avatar/avatar.js +3 -4
  7. package/components/avatar/avatar.js.map +1 -1
  8. package/components/badge/badge.js +3 -4
  9. package/components/badge/badge.js.map +1 -1
  10. package/components/banner/banner.js +3 -4
  11. package/components/banner/banner.js.map +1 -1
  12. package/components/banner/themes/banner.base.css.js +1 -1
  13. package/components/banner/themes/banner.base.css.js.map +1 -1
  14. package/components/banner/themes/shared/banner.bootstrap.css.js +1 -1
  15. package/components/banner/themes/shared/banner.bootstrap.css.js.map +1 -1
  16. package/components/banner/themes/shared/banner.fluent.css.js +1 -1
  17. package/components/banner/themes/shared/banner.fluent.css.js.map +1 -1
  18. package/components/banner/themes/shared/banner.indigo.css.js +1 -1
  19. package/components/banner/themes/shared/banner.indigo.css.js.map +1 -1
  20. package/components/banner/themes/shared/banner.material.css.js +1 -1
  21. package/components/banner/themes/shared/banner.material.css.js.map +1 -1
  22. package/components/button/button-base.js +1 -1
  23. package/components/button/button-base.js.map +1 -1
  24. package/components/button/button.js +3 -4
  25. package/components/button/button.js.map +1 -1
  26. package/components/button/icon-button.js +3 -4
  27. package/components/button/icon-button.js.map +1 -1
  28. package/components/button/themes/button/button.base.css.js +1 -1
  29. package/components/button/themes/button/button.base.css.js.map +1 -1
  30. package/components/button/themes/button/shared/button.common.css.js +1 -1
  31. package/components/button/themes/button/shared/button.common.css.js.map +1 -1
  32. package/components/button/themes/button/shared/button.fluent.css.js +1 -1
  33. package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
  34. package/components/button/themes/button/shared/button.indigo.css.js +1 -1
  35. package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
  36. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  37. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  38. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js +1 -1
  39. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js.map +1 -1
  40. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js +1 -1
  41. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js.map +1 -1
  42. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
  43. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
  44. package/components/button/themes/icon-button/shared/icon-button.material.css.js +1 -1
  45. package/components/button/themes/icon-button/shared/icon-button.material.css.js.map +1 -1
  46. package/components/button-group/button-group.js +3 -4
  47. package/components/button-group/button-group.js.map +1 -1
  48. package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
  49. package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
  50. package/components/button-group/themes/shared/button/button.common.css.js +1 -1
  51. package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
  52. package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
  53. package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
  54. package/components/button-group/toggle-button.js +4 -3
  55. package/components/button-group/toggle-button.js.map +1 -1
  56. package/components/calendar/calendar.d.ts +1 -1
  57. package/components/calendar/calendar.js +3 -4
  58. package/components/calendar/calendar.js.map +1 -1
  59. package/components/calendar/days-view/days-view.js +5 -6
  60. package/components/calendar/days-view/days-view.js.map +1 -1
  61. package/components/calendar/months-view/months-view.js +5 -6
  62. package/components/calendar/months-view/months-view.js.map +1 -1
  63. package/components/calendar/themes/calendar.base.css.js +1 -1
  64. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  65. package/components/calendar/themes/days-view.base.css.js +1 -1
  66. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  67. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js +1 -1
  68. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js.map +1 -1
  69. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
  70. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
  71. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js +1 -1
  72. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  73. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js +1 -1
  74. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js.map +1 -1
  75. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js +1 -1
  76. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js.map +1 -1
  77. package/components/calendar/themes/shared/material/calendar.material.css.js +1 -1
  78. package/components/calendar/themes/shared/material/calendar.material.css.js.map +1 -1
  79. package/components/calendar/themes/year-month-view.base.css.js +1 -1
  80. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  81. package/components/calendar/years-view/years-view.js +5 -6
  82. package/components/calendar/years-view/years-view.js.map +1 -1
  83. package/components/card/card.actions.js +3 -4
  84. package/components/card/card.actions.js.map +1 -1
  85. package/components/card/card.content.js +3 -4
  86. package/components/card/card.content.js.map +1 -1
  87. package/components/card/card.header.js +3 -4
  88. package/components/card/card.header.js.map +1 -1
  89. package/components/card/card.js +3 -4
  90. package/components/card/card.js.map +1 -1
  91. package/components/card/card.media.js +3 -4
  92. package/components/card/card.media.js.map +1 -1
  93. package/components/card/themes/card.actions.base.css.js +1 -1
  94. package/components/card/themes/card.actions.base.css.js.map +1 -1
  95. package/components/card/themes/card.content.base.css.js +1 -1
  96. package/components/card/themes/card.content.base.css.js.map +1 -1
  97. package/components/card/themes/card.header.base.css.js +1 -1
  98. package/components/card/themes/card.header.base.css.js.map +1 -1
  99. package/components/card/themes/shared/actions/card.actions.bootstrap.css.js +1 -1
  100. package/components/card/themes/shared/actions/card.actions.bootstrap.css.js.map +1 -1
  101. package/components/card/themes/shared/actions/card.actions.indigo.css.js +1 -1
  102. package/components/card/themes/shared/actions/card.actions.indigo.css.js.map +1 -1
  103. package/components/card/themes/shared/container/card.bootstrap.css.js +1 -1
  104. package/components/card/themes/shared/container/card.bootstrap.css.js.map +1 -1
  105. package/components/card/themes/shared/container/card.indigo.css.js +1 -1
  106. package/components/card/themes/shared/container/card.indigo.css.js.map +1 -1
  107. package/components/card/themes/shared/content/card.content.bootstrap.css.js +1 -1
  108. package/components/card/themes/shared/content/card.content.bootstrap.css.js.map +1 -1
  109. package/components/card/themes/shared/header/card.header.fluent.css.js +1 -1
  110. package/components/card/themes/shared/header/card.header.fluent.css.js.map +1 -1
  111. package/components/card/themes/shared/header/card.header.indigo.css.js +1 -1
  112. package/components/card/themes/shared/header/card.header.indigo.css.js.map +1 -1
  113. package/components/carousel/carousel-indicator-container.js +3 -4
  114. package/components/carousel/carousel-indicator-container.js.map +1 -1
  115. package/components/carousel/carousel-indicator.js +3 -4
  116. package/components/carousel/carousel-indicator.js.map +1 -1
  117. package/components/carousel/carousel-slide.js +3 -4
  118. package/components/carousel/carousel-slide.js.map +1 -1
  119. package/components/carousel/carousel.js +3 -7
  120. package/components/carousel/carousel.js.map +1 -1
  121. package/components/carousel/themes/carousel.base.css.js +1 -1
  122. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  123. package/components/carousel/themes/shared/carousel.indigo.css.js +1 -1
  124. package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -1
  125. package/components/chat/chat-input.d.ts +91 -0
  126. package/components/chat/chat-input.js +263 -0
  127. package/components/chat/chat-input.js.map +1 -0
  128. package/components/chat/chat-message.d.ts +48 -0
  129. package/components/chat/chat-message.js +199 -0
  130. package/components/chat/chat-message.js.map +1 -0
  131. package/components/chat/chat-state.d.ts +130 -0
  132. package/components/chat/chat-state.js +180 -0
  133. package/components/chat/chat-state.js.map +1 -0
  134. package/components/chat/chat.d.ts +151 -0
  135. package/components/chat/chat.js +325 -0
  136. package/components/chat/chat.js.map +1 -0
  137. package/components/chat/extras/markdown-renderer.d.ts +26 -0
  138. package/components/chat/extras/markdown-renderer.js +49 -0
  139. package/components/chat/extras/markdown-renderer.js.map +1 -0
  140. package/components/chat/message-attachments.d.ts +56 -0
  141. package/components/chat/message-attachments.js +132 -0
  142. package/components/chat/message-attachments.js.map +1 -0
  143. package/components/chat/themes/attachments.d.ts +2 -0
  144. package/components/chat/themes/attachments.js +14 -0
  145. package/components/chat/themes/attachments.js.map +1 -0
  146. package/components/chat/themes/chat.base.css.d.ts +1 -0
  147. package/components/chat/themes/chat.base.css.js +3 -0
  148. package/components/chat/themes/chat.base.css.js.map +1 -0
  149. package/components/chat/themes/dark/chat.bootstrap.css.d.ts +1 -0
  150. package/components/chat/themes/dark/chat.bootstrap.css.js +3 -0
  151. package/components/chat/themes/dark/chat.bootstrap.css.js.map +1 -0
  152. package/components/chat/themes/dark/chat.fluent.css.d.ts +1 -0
  153. package/components/chat/themes/dark/chat.fluent.css.js +3 -0
  154. package/components/chat/themes/dark/chat.fluent.css.js.map +1 -0
  155. package/components/chat/themes/dark/chat.indigo.css.d.ts +1 -0
  156. package/components/chat/themes/dark/chat.indigo.css.js +3 -0
  157. package/components/chat/themes/dark/chat.indigo.css.js.map +1 -0
  158. package/components/chat/themes/dark/chat.material.css.d.ts +1 -0
  159. package/components/chat/themes/dark/chat.material.css.js +3 -0
  160. package/components/chat/themes/dark/chat.material.css.js.map +1 -0
  161. package/components/chat/themes/input.base.css.d.ts +1 -0
  162. package/components/chat/themes/input.base.css.js +3 -0
  163. package/components/chat/themes/input.base.css.js.map +1 -0
  164. package/components/chat/themes/input.d.ts +2 -0
  165. package/components/chat/themes/input.js +35 -0
  166. package/components/chat/themes/input.js.map +1 -0
  167. package/components/chat/themes/light/chat.bootstrap.css.d.ts +1 -0
  168. package/components/chat/themes/light/chat.bootstrap.css.js +3 -0
  169. package/components/chat/themes/light/chat.bootstrap.css.js.map +1 -0
  170. package/components/chat/themes/light/chat.fluent.css.d.ts +1 -0
  171. package/components/chat/themes/light/chat.fluent.css.js +3 -0
  172. package/components/chat/themes/light/chat.fluent.css.js.map +1 -0
  173. package/components/chat/themes/light/chat.indigo.css.d.ts +1 -0
  174. package/components/chat/themes/light/chat.indigo.css.js +3 -0
  175. package/components/chat/themes/light/chat.indigo.css.js.map +1 -0
  176. package/components/chat/themes/light/chat.material.css.d.ts +1 -0
  177. package/components/chat/themes/light/chat.material.css.js +3 -0
  178. package/components/chat/themes/light/chat.material.css.js.map +1 -0
  179. package/components/chat/themes/light/chat.shared.css.d.ts +1 -0
  180. package/components/chat/themes/light/chat.shared.css.js +3 -0
  181. package/components/chat/themes/light/chat.shared.css.js.map +1 -0
  182. package/components/chat/themes/message-attachments.base.css.d.ts +1 -0
  183. package/components/chat/themes/message-attachments.base.css.js +3 -0
  184. package/components/chat/themes/message-attachments.base.css.js.map +1 -0
  185. package/components/chat/themes/message.base.css.d.ts +1 -0
  186. package/components/chat/themes/message.base.css.js +3 -0
  187. package/components/chat/themes/message.base.css.js.map +1 -0
  188. package/components/chat/themes/message.d.ts +2 -0
  189. package/components/chat/themes/message.js +28 -0
  190. package/components/chat/themes/message.js.map +1 -0
  191. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.d.ts +1 -0
  192. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js +3 -0
  193. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js.map +1 -0
  194. package/components/chat/themes/shared/chat-message/chat-message.common.css.d.ts +1 -0
  195. package/components/chat/themes/shared/chat-message/chat-message.common.css.js +3 -0
  196. package/components/chat/themes/shared/chat-message/chat-message.common.css.js.map +1 -0
  197. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.d.ts +1 -0
  198. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js +3 -0
  199. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js.map +1 -0
  200. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.d.ts +1 -0
  201. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js +3 -0
  202. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js.map +1 -0
  203. package/components/chat/themes/shared/chat.bootstrap.css.d.ts +1 -0
  204. package/components/chat/themes/shared/chat.bootstrap.css.js +3 -0
  205. package/components/chat/themes/shared/chat.bootstrap.css.js.map +1 -0
  206. package/components/chat/themes/shared/chat.common.css.d.ts +1 -0
  207. package/components/chat/themes/shared/chat.common.css.js +3 -0
  208. package/components/chat/themes/shared/chat.common.css.js.map +1 -0
  209. package/components/chat/themes/shared/chat.fluent.css.d.ts +1 -0
  210. package/components/chat/themes/shared/chat.fluent.css.js +3 -0
  211. package/components/chat/themes/shared/chat.fluent.css.js.map +1 -0
  212. package/components/chat/themes/shared/chat.indigo.css.d.ts +1 -0
  213. package/components/chat/themes/shared/chat.indigo.css.js +3 -0
  214. package/components/chat/themes/shared/chat.indigo.css.js.map +1 -0
  215. package/components/chat/themes/shared/input/input.bootstrap.css.d.ts +1 -0
  216. package/components/chat/themes/shared/input/input.bootstrap.css.js +3 -0
  217. package/components/chat/themes/shared/input/input.bootstrap.css.js.map +1 -0
  218. package/components/chat/themes/shared/input/input.common.css.d.ts +1 -0
  219. package/components/chat/themes/shared/input/input.common.css.js +3 -0
  220. package/components/chat/themes/shared/input/input.common.css.js.map +1 -0
  221. package/components/chat/themes/shared/input/input.fluent.css.d.ts +1 -0
  222. package/components/chat/themes/shared/input/input.fluent.css.js +3 -0
  223. package/components/chat/themes/shared/input/input.fluent.css.js.map +1 -0
  224. package/components/chat/themes/shared/input/input.indigo.css.d.ts +1 -0
  225. package/components/chat/themes/shared/input/input.indigo.css.js +3 -0
  226. package/components/chat/themes/shared/input/input.indigo.css.js.map +1 -0
  227. package/components/chat/themes/shared/input/input.material.css.d.ts +1 -0
  228. package/components/chat/themes/shared/input/input.material.css.js +3 -0
  229. package/components/chat/themes/shared/input/input.material.css.js.map +1 -0
  230. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.d.ts +1 -0
  231. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js +3 -0
  232. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js.map +1 -0
  233. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.d.ts +1 -0
  234. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js +3 -0
  235. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js.map +1 -0
  236. package/components/chat/themes/themes.d.ts +2 -0
  237. package/components/chat/themes/themes.js +49 -0
  238. package/components/chat/themes/themes.js.map +1 -0
  239. package/components/chat/types.d.ts +149 -0
  240. package/components/chat/types.js +2 -0
  241. package/components/chat/types.js.map +1 -0
  242. package/components/chat/utils.d.ts +16 -0
  243. package/components/chat/utils.js +82 -0
  244. package/components/chat/utils.js.map +1 -0
  245. package/components/checkbox/checkbox-base.d.ts +1 -1
  246. package/components/checkbox/checkbox.js +3 -4
  247. package/components/checkbox/checkbox.js.map +1 -1
  248. package/components/checkbox/switch.js +3 -4
  249. package/components/checkbox/switch.js.map +1 -1
  250. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  251. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  252. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js +1 -1
  253. package/components/checkbox/themes/dark/switch/switch.bootstrap.css.js.map +1 -1
  254. package/components/checkbox/themes/dark/switch/switch.fluent.css.js +1 -1
  255. package/components/checkbox/themes/dark/switch/switch.fluent.css.js.map +1 -1
  256. package/components/checkbox/themes/dark/switch/switch.indigo.css.js +1 -1
  257. package/components/checkbox/themes/dark/switch/switch.indigo.css.js.map +1 -1
  258. package/components/checkbox/themes/dark/switch/switch.material.css.js +1 -1
  259. package/components/checkbox/themes/dark/switch/switch.material.css.js.map +1 -1
  260. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js +1 -1
  261. package/components/checkbox/themes/light/switch/switch.bootstrap.css.js.map +1 -1
  262. package/components/checkbox/themes/light/switch/switch.fluent.css.js +1 -1
  263. package/components/checkbox/themes/light/switch/switch.fluent.css.js.map +1 -1
  264. package/components/checkbox/themes/light/switch/switch.indigo.css.js +1 -1
  265. package/components/checkbox/themes/light/switch/switch.indigo.css.js.map +1 -1
  266. package/components/checkbox/themes/light/switch/switch.material.css.js +1 -1
  267. package/components/checkbox/themes/light/switch/switch.material.css.js.map +1 -1
  268. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  269. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  270. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  271. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  272. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  273. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  274. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  275. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  276. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
  277. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
  278. package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
  279. package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
  280. package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
  281. package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
  282. package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
  283. package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
  284. package/components/checkbox/themes/switch.base.css.js +1 -1
  285. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  286. package/components/chip/chip.js +3 -4
  287. package/components/chip/chip.js.map +1 -1
  288. package/components/chip/themes/chip.base.css.js +1 -1
  289. package/components/chip/themes/chip.base.css.js.map +1 -1
  290. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  291. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  292. package/components/combo/combo-header.js +3 -4
  293. package/components/combo/combo-header.js.map +1 -1
  294. package/components/combo/combo-item.js +3 -4
  295. package/components/combo/combo-item.js.map +1 -1
  296. package/components/combo/combo-list.js +2 -3
  297. package/components/combo/combo-list.js.map +1 -1
  298. package/components/combo/combo.js +4 -3
  299. package/components/combo/combo.js.map +1 -1
  300. package/components/combo/controllers/navigation.js +1 -1
  301. package/components/combo/controllers/navigation.js.map +1 -1
  302. package/components/combo/themes/combo-item.base.css.js +1 -1
  303. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  304. package/components/combo/themes/combo.base.css.js +1 -1
  305. package/components/combo/themes/combo.base.css.js.map +1 -1
  306. package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
  307. package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
  308. package/components/combo/themes/shared/combo.common.css.js +1 -1
  309. package/components/combo/themes/shared/combo.common.css.js.map +1 -1
  310. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  311. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  312. package/components/combo/themes/shared/combo.indigo.css.js +1 -1
  313. package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
  314. package/components/combo/themes/shared/combo.material.css.js +1 -1
  315. package/components/combo/themes/shared/combo.material.css.js.map +1 -1
  316. package/components/common/context.d.ts +8 -1
  317. package/components/common/context.js +3 -1
  318. package/components/common/context.js.map +1 -1
  319. package/components/common/controllers/focus-ring.js +5 -5
  320. package/components/common/controllers/focus-ring.js.map +1 -1
  321. package/components/common/controllers/key-bindings.js +7 -6
  322. package/components/common/controllers/key-bindings.js.map +1 -1
  323. package/components/common/definitions/defineAllComponents.js +2 -0
  324. package/components/common/definitions/defineAllComponents.js.map +1 -1
  325. package/components/common/i18n/chat.resources.d.ts +11 -0
  326. package/components/common/i18n/chat.resources.js +11 -0
  327. package/components/common/i18n/chat.resources.js.map +1 -0
  328. package/components/common/mixins/forms/associated.js +1 -1
  329. package/components/common/mixins/forms/associated.js.map +1 -1
  330. package/components/common/mixins/forms/form-value.js +1 -1
  331. package/components/common/mixins/forms/form-value.js.map +1 -1
  332. package/components/common/part-map.d.ts +1 -1
  333. package/components/common/util.d.ts +22 -0
  334. package/components/common/util.js +84 -2
  335. package/components/common/util.js.map +1 -1
  336. package/components/date-picker/date-picker.js +7 -6
  337. package/components/date-picker/date-picker.js.map +1 -1
  338. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  339. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  340. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
  341. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
  342. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  343. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  344. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  345. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  346. package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
  347. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
  348. package/components/date-range-picker/date-range-picker.base.css.js +1 -1
  349. package/components/date-range-picker/date-range-picker.base.css.js.map +1 -1
  350. package/components/date-range-picker/date-range-picker.d.ts +1 -1
  351. package/components/date-range-picker/date-range-picker.js +5 -5
  352. package/components/date-range-picker/date-range-picker.js.map +1 -1
  353. package/components/date-range-picker/predefined-ranges-area.base.css.js +1 -1
  354. package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -1
  355. package/components/date-range-picker/predefined-ranges-area.js +3 -4
  356. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  357. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +1 -1
  358. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -1
  359. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +1 -1
  360. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -1
  361. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +1 -1
  362. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -1
  363. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +1 -1
  364. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -1
  365. package/components/date-time-input/date-time-input.js +3 -4
  366. package/components/date-time-input/date-time-input.js.map +1 -1
  367. package/components/date-time-input/date-util.js +11 -11
  368. package/components/date-time-input/date-util.js.map +1 -1
  369. package/components/dialog/dialog.js +3 -4
  370. package/components/dialog/dialog.js.map +1 -1
  371. package/components/dialog/themes/dialog.base.css.js +1 -1
  372. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  373. package/components/dialog/themes/shared/dialog.bootstrap.css.js +1 -1
  374. package/components/dialog/themes/shared/dialog.bootstrap.css.js.map +1 -1
  375. package/components/dialog/themes/shared/dialog.common.css.js +1 -1
  376. package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
  377. package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
  378. package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
  379. package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
  380. package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
  381. package/components/divider/divider.js +3 -4
  382. package/components/divider/divider.js.map +1 -1
  383. package/components/dropdown/dropdown-group.js +3 -4
  384. package/components/dropdown/dropdown-group.js.map +1 -1
  385. package/components/dropdown/dropdown-header.js +3 -4
  386. package/components/dropdown/dropdown-header.js.map +1 -1
  387. package/components/dropdown/dropdown-item.js +3 -4
  388. package/components/dropdown/dropdown-item.js.map +1 -1
  389. package/components/dropdown/dropdown.js +4 -3
  390. package/components/dropdown/dropdown.js.map +1 -1
  391. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  392. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  393. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  394. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  395. package/components/dropdown/themes/shared/dropdown.indigo.css.js +1 -1
  396. package/components/dropdown/themes/shared/dropdown.indigo.css.js.map +1 -1
  397. package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js +1 -1
  398. package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js.map +1 -1
  399. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js +1 -1
  400. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js.map +1 -1
  401. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js +1 -1
  402. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js.map +1 -1
  403. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  404. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  405. package/components/expansion-panel/expansion-panel.js +3 -5
  406. package/components/expansion-panel/expansion-panel.js.map +1 -1
  407. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  408. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  409. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
  410. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
  411. package/components/file-input/file-input.d.ts +0 -4
  412. package/components/file-input/file-input.js +15 -19
  413. package/components/file-input/file-input.js.map +1 -1
  414. package/components/file-input/themes/shared/file-input.bootstrap.css.js +1 -1
  415. package/components/file-input/themes/shared/file-input.bootstrap.css.js.map +1 -1
  416. package/components/file-input/themes/shared/file-input.material.css.js +1 -1
  417. package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
  418. package/components/focus-trap/focus-trap.js +7 -8
  419. package/components/focus-trap/focus-trap.js.map +1 -1
  420. package/components/icon/icon-references.js +208 -0
  421. package/components/icon/icon-references.js.map +1 -1
  422. package/components/icon/icon-state.broadcast.js +1 -1
  423. package/components/icon/icon-state.broadcast.js.map +1 -1
  424. package/components/icon/icon.js +3 -4
  425. package/components/icon/icon.js.map +1 -1
  426. package/components/icon/internal-icons-lib.js +105 -0
  427. package/components/icon/internal-icons-lib.js.map +1 -1
  428. package/components/input/input-base.js +4 -3
  429. package/components/input/input-base.js.map +1 -1
  430. package/components/input/input.d.ts +0 -4
  431. package/components/input/input.js +11 -14
  432. package/components/input/input.js.map +1 -1
  433. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  434. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  435. package/components/input/themes/shared/input.common.css.js +1 -1
  436. package/components/input/themes/shared/input.common.css.js.map +1 -1
  437. package/components/input/themes/shared/input.fluent.css.js +1 -1
  438. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  439. package/components/input/themes/shared/input.indigo.css.js +1 -1
  440. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  441. package/components/input/themes/shared/input.material.css.js +1 -1
  442. package/components/input/themes/shared/input.material.css.js.map +1 -1
  443. package/components/list/list-header.js +3 -4
  444. package/components/list/list-header.js.map +1 -1
  445. package/components/list/list-item.js +3 -4
  446. package/components/list/list-item.js.map +1 -1
  447. package/components/list/list.js +3 -4
  448. package/components/list/list.js.map +1 -1
  449. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  450. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  451. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  452. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  453. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  454. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  455. package/components/list/themes/header.base.css.js +1 -1
  456. package/components/list/themes/header.base.css.js.map +1 -1
  457. package/components/list/themes/item.base.css.js +1 -1
  458. package/components/list/themes/item.base.css.js.map +1 -1
  459. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  460. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  461. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  462. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  463. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  464. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  465. package/components/list/themes/shared/header/list-header.indigo.css.js +1 -1
  466. package/components/list/themes/shared/header/list-header.indigo.css.js.map +1 -1
  467. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  468. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  469. package/components/mask-input/mask-input.js +2 -3
  470. package/components/mask-input/mask-input.js.map +1 -1
  471. package/components/nav-drawer/nav-drawer-header-item.js +3 -4
  472. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  473. package/components/nav-drawer/nav-drawer-item.js +3 -4
  474. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  475. package/components/nav-drawer/nav-drawer.js +3 -4
  476. package/components/nav-drawer/nav-drawer.js.map +1 -1
  477. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  478. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  479. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  480. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  481. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
  482. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
  483. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js +1 -1
  484. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js.map +1 -1
  485. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js +1 -1
  486. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js.map +1 -1
  487. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js +1 -1
  488. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js.map +1 -1
  489. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js +1 -1
  490. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js.map +1 -1
  491. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js +1 -1
  492. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js.map +1 -1
  493. package/components/nav-drawer/themes/shared/item/item.fluent.css.js +1 -1
  494. package/components/nav-drawer/themes/shared/item/item.fluent.css.js.map +1 -1
  495. package/components/nav-drawer/themes/shared/item/item.indigo.css.js +1 -1
  496. package/components/nav-drawer/themes/shared/item/item.indigo.css.js.map +1 -1
  497. package/components/nav-drawer/themes/shared/item/item.material.css.js +1 -1
  498. package/components/nav-drawer/themes/shared/item/item.material.css.js.map +1 -1
  499. package/components/navbar/navbar.js +3 -4
  500. package/components/navbar/navbar.js.map +1 -1
  501. package/components/navbar/themes/navbar.base.css.js +1 -1
  502. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  503. package/components/navbar/themes/shared/navbar.bootstrap.css.js +1 -1
  504. package/components/navbar/themes/shared/navbar.bootstrap.css.js.map +1 -1
  505. package/components/navbar/themes/shared/navbar.indigo.css.js +1 -1
  506. package/components/navbar/themes/shared/navbar.indigo.css.js.map +1 -1
  507. package/components/popover/popover.js +9 -10
  508. package/components/popover/popover.js.map +1 -1
  509. package/components/progress/circular-gradient.js +2 -3
  510. package/components/progress/circular-gradient.js.map +1 -1
  511. package/components/progress/circular-progress.js +3 -4
  512. package/components/progress/circular-progress.js.map +1 -1
  513. package/components/progress/linear-progress.js +3 -4
  514. package/components/progress/linear-progress.js.map +1 -1
  515. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  516. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  517. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  518. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  519. package/components/radio/radio.js +3 -4
  520. package/components/radio/radio.js.map +1 -1
  521. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  522. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  523. package/components/radio/themes/shared/radio.fluent.css.js +1 -1
  524. package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
  525. package/components/radio/themes/shared/radio.indigo.css.js +1 -1
  526. package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
  527. package/components/radio/themes/shared/radio.material.css.js +1 -1
  528. package/components/radio/themes/shared/radio.material.css.js.map +1 -1
  529. package/components/radio-group/radio-group.js +3 -4
  530. package/components/radio-group/radio-group.js.map +1 -1
  531. package/components/radio-group/themes/radio-group.base.css.js +1 -1
  532. package/components/radio-group/themes/radio-group.base.css.js.map +1 -1
  533. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js +1 -1
  534. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js.map +1 -1
  535. package/components/radio-group/themes/shared/radio-group.fluent.css.js +1 -1
  536. package/components/radio-group/themes/shared/radio-group.fluent.css.js.map +1 -1
  537. package/components/radio-group/themes/shared/radio-group.indigo.css.js +1 -1
  538. package/components/radio-group/themes/shared/radio-group.indigo.css.js.map +1 -1
  539. package/components/radio-group/themes/shared/radio-group.material.css.js +1 -1
  540. package/components/radio-group/themes/shared/radio-group.material.css.js.map +1 -1
  541. package/components/rating/rating-symbol.js +3 -4
  542. package/components/rating/rating-symbol.js.map +1 -1
  543. package/components/rating/rating.js +3 -5
  544. package/components/rating/rating.js.map +1 -1
  545. package/components/rating/themes/rating.base.css.js +1 -1
  546. package/components/rating/themes/rating.base.css.js.map +1 -1
  547. package/components/rating/themes/shared/rating.indigo.css.js +1 -1
  548. package/components/rating/themes/shared/rating.indigo.css.js.map +1 -1
  549. package/components/resize-container/resize-container.d.ts +1 -1
  550. package/components/resize-container/resize-container.js +3 -4
  551. package/components/resize-container/resize-container.js.map +1 -1
  552. package/components/ripple/ripple.js +3 -4
  553. package/components/ripple/ripple.js.map +1 -1
  554. package/components/select/select-group.js +3 -4
  555. package/components/select/select-group.js.map +1 -1
  556. package/components/select/select-header.js +3 -4
  557. package/components/select/select-header.js.map +1 -1
  558. package/components/select/select-item.js +3 -4
  559. package/components/select/select-item.js.map +1 -1
  560. package/components/select/select.js +4 -4
  561. package/components/select/select.js.map +1 -1
  562. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  563. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  564. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  565. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  566. package/components/select/themes/shared/select.bootstrap.css.js +1 -1
  567. package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
  568. package/components/select/themes/shared/select.common.css.js +1 -1
  569. package/components/select/themes/shared/select.common.css.js.map +1 -1
  570. package/components/select/themes/shared/select.fluent.css.js +1 -1
  571. package/components/select/themes/shared/select.fluent.css.js.map +1 -1
  572. package/components/select/themes/shared/select.indigo.css.js +1 -1
  573. package/components/select/themes/shared/select.indigo.css.js.map +1 -1
  574. package/components/select/themes/shared/select.material.css.js +1 -1
  575. package/components/select/themes/shared/select.material.css.js.map +1 -1
  576. package/components/slider/range-slider.js +2 -3
  577. package/components/slider/range-slider.js.map +1 -1
  578. package/components/slider/slider-base.js +1 -2
  579. package/components/slider/slider-base.js.map +1 -1
  580. package/components/slider/slider-label.js +7 -8
  581. package/components/slider/slider-label.js.map +1 -1
  582. package/components/slider/slider.js +2 -3
  583. package/components/slider/slider.js.map +1 -1
  584. package/components/slider/themes/shared/slider.common.css.js +1 -1
  585. package/components/slider/themes/shared/slider.common.css.js.map +1 -1
  586. package/components/slider/themes/slider.base.css.js +1 -1
  587. package/components/slider/themes/slider.base.css.js.map +1 -1
  588. package/components/snackbar/snackbar.js +3 -4
  589. package/components/snackbar/snackbar.js.map +1 -1
  590. package/components/snackbar/themes/shared/snackbar.indigo.css.js +1 -1
  591. package/components/snackbar/themes/shared/snackbar.indigo.css.js.map +1 -1
  592. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  593. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  594. package/components/stepper/step.d.ts +1 -1
  595. package/components/stepper/step.js +3 -4
  596. package/components/stepper/step.js.map +1 -1
  597. package/components/stepper/stepper.js +3 -4
  598. package/components/stepper/stepper.js.map +1 -1
  599. package/components/tabs/tab-dom.js +1 -1
  600. package/components/tabs/tab-dom.js.map +1 -1
  601. package/components/tabs/tab.js +4 -5
  602. package/components/tabs/tab.js.map +1 -1
  603. package/components/tabs/tabs.js +3 -5
  604. package/components/tabs/tabs.js.map +1 -1
  605. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js +1 -1
  606. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js.map +1 -1
  607. package/components/tabs/themes/shared/tab/tab.fluent.css.js +1 -1
  608. package/components/tabs/themes/shared/tab/tab.fluent.css.js.map +1 -1
  609. package/components/tabs/themes/shared/tab/tab.indigo.css.js +1 -1
  610. package/components/tabs/themes/shared/tab/tab.indigo.css.js.map +1 -1
  611. package/components/tabs/themes/shared/tab/tab.material.css.js +1 -1
  612. package/components/tabs/themes/shared/tab/tab.material.css.js.map +1 -1
  613. package/components/textarea/textarea.d.ts +1 -1
  614. package/components/textarea/textarea.js +4 -3
  615. package/components/textarea/textarea.js.map +1 -1
  616. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  617. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  618. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  619. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  620. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  621. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  622. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  623. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  624. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  625. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  626. package/components/textarea/themes/textarea.base.css.js +1 -1
  627. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  628. package/components/tile-manager/resize-state.js +1 -1
  629. package/components/tile-manager/resize-state.js.map +1 -1
  630. package/components/tile-manager/themes/tile-manager.base.css.js +1 -1
  631. package/components/tile-manager/themes/tile-manager.base.css.js.map +1 -1
  632. package/components/tile-manager/tile-manager.js +4 -3
  633. package/components/tile-manager/tile-manager.js.map +1 -1
  634. package/components/tile-manager/tile.js +3 -4
  635. package/components/tile-manager/tile.js.map +1 -1
  636. package/components/toast/themes/shared/toast.bootstrap.css.js +1 -1
  637. package/components/toast/themes/shared/toast.bootstrap.css.js.map +1 -1
  638. package/components/toast/themes/shared/toast.common.css.js +1 -1
  639. package/components/toast/themes/shared/toast.common.css.js.map +1 -1
  640. package/components/toast/themes/shared/toast.fluent.css.js +1 -1
  641. package/components/toast/themes/shared/toast.fluent.css.js.map +1 -1
  642. package/components/toast/themes/toast.base.css.js +1 -1
  643. package/components/toast/themes/toast.base.css.js.map +1 -1
  644. package/components/toast/toast.js +3 -4
  645. package/components/toast/toast.js.map +1 -1
  646. package/components/tooltip/controller.js +4 -4
  647. package/components/tooltip/controller.js.map +1 -1
  648. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  649. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  650. package/components/tooltip/tooltip.js +3 -4
  651. package/components/tooltip/tooltip.js.map +1 -1
  652. package/components/tree/themes/item.base.css.js +1 -1
  653. package/components/tree/themes/item.base.css.js.map +1 -1
  654. package/components/tree/themes/shared/item.common.css.js +1 -1
  655. package/components/tree/themes/shared/item.common.css.js.map +1 -1
  656. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  657. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  658. package/components/tree/themes/shared/item.material.css.js +1 -1
  659. package/components/tree/themes/shared/item.material.css.js.map +1 -1
  660. package/components/tree/tree-item.js +3 -4
  661. package/components/tree/tree-item.js.map +1 -1
  662. package/components/tree/tree.js +7 -4
  663. package/components/tree/tree.js.map +1 -1
  664. package/components/tree/tree.navigation.js +3 -3
  665. package/components/tree/tree.navigation.js.map +1 -1
  666. package/components/tree/tree.selection.js +6 -2
  667. package/components/tree/tree.selection.js.map +1 -1
  668. package/components/validation-container/validation-container.js +3 -4
  669. package/components/validation-container/validation-container.js.map +1 -1
  670. package/custom-elements.json +38599 -36648
  671. package/extras/index.d.ts +1 -0
  672. package/extras/index.js +2 -0
  673. package/extras/index.js.map +1 -0
  674. package/igniteui-webcomponents.css-data.json +1 -1
  675. package/igniteui-webcomponents.html-data.json +1 -1
  676. package/index.d.ts +4 -0
  677. package/index.js +2 -0
  678. package/index.js.map +1 -1
  679. package/package.json +6 -2
  680. package/themes/dark/bootstrap.css +1 -1
  681. package/themes/dark/fluent.css +1 -1
  682. package/themes/dark/indigo.css +1 -1
  683. package/themes/dark/material.css +1 -1
  684. package/themes/light/bootstrap.css +1 -1
  685. package/themes/light/fluent.css +1 -1
  686. package/themes/light/indigo.css +1 -1
  687. package/themes/light/material.css +1 -1
  688. package/web-types.json +2 -2
@@ -20,7 +20,8 @@ import { IgcMaskInputBaseComponent, } from '../mask-input/mask-input-base.js';
20
20
  import IgcValidationContainerComponent from '../validation-container/validation-container.js';
21
21
  import { DatePart, DateParts, DateTimeUtil, } from './date-util.js';
22
22
  import { dateTimeInputValidators } from './validators.js';
23
- class IgcDateTimeInputComponent extends EventEmitterMixin(IgcMaskInputBaseComponent) {
23
+ export default class IgcDateTimeInputComponent extends EventEmitterMixin(IgcMaskInputBaseComponent) {
24
+ static { this.tagName = 'igc-date-time-input'; }
24
25
  static register() {
25
26
  registerComponent(IgcDateTimeInputComponent, IgcValidationContainerComponent);
26
27
  }
@@ -141,7 +142,7 @@ class IgcDateTimeInputComponent extends EventEmitterMixin(IgcMaskInputBaseCompon
141
142
  this.locale = 'en';
142
143
  addKeybindings(this, {
143
144
  skip: () => this.readOnly,
144
- bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },
145
+ bindingDefaults: { triggers: ['keydownRepeat'] },
145
146
  })
146
147
  .set([ctrlKey, ';'], this.setToday)
147
148
  .set(arrowUp, this.keyboardSpin.bind(this, 'up'))
@@ -419,8 +420,6 @@ class IgcDateTimeInputComponent extends EventEmitterMixin(IgcMaskInputBaseCompon
419
420
  `;
420
421
  }
421
422
  }
422
- IgcDateTimeInputComponent.tagName = 'igc-date-time-input';
423
- export default IgcDateTimeInputComponent;
424
423
  __decorate([
425
424
  property({ attribute: 'input-format' })
426
425
  ], IgcDateTimeInputComponent.prototype, "inputFormat", null);
@@ -1 +1 @@
1
- {"version":3,"file":"date-time-input.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { eventOptions, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { convertToDate } from '../calendar/helpers.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n} from '../common/controllers/key-bindings.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormValueDateTimeTransformers } from '../common/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '../common/mixins/forms/form-value.js';\nimport { partMap } from '../common/part-map.js';\nimport type { IgcInputComponentEventMap } from '../input/input-base.js';\nimport {\n IgcMaskInputBaseComponent,\n type MaskRange,\n} from '../mask-input/mask-input-base.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport {\n DatePart,\n type DatePartDeltas,\n type DatePartInfo,\n DateParts,\n DateTimeUtil,\n} from './date-util.js';\nimport { dateTimeInputValidators } from './validators.js';\n\nexport interface IgcDateTimeInputComponentEventMap\n extends Omit<IgcInputComponentEventMap, 'igcChange'> {\n igcChange: CustomEvent<Date | null>;\n}\n\n/**\n * A date time input is an input field that lets you set and edit the date and time in a chosen input element\n * using customizable display and input formats.\n *\n * @element igc-date-time-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot range-overflow - Renders content when the max validation fails.\n * @slot range-underflow - Renders content when the min validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcDateTimeInputComponent extends EventEmitterMixin<\n IgcDateTimeInputComponentEventMap,\n AbstractConstructor<IgcMaskInputBaseComponent>\n>(IgcMaskInputBaseComponent) {\n public static readonly tagName = 'igc-date-time-input';\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDateTimeInputComponent,\n IgcValidationContainerComponent\n );\n }\n\n protected override get __validators() {\n return dateTimeInputValidators;\n }\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: null,\n transformers: FormValueDateTimeTransformers,\n });\n\n protected _defaultMask!: string;\n private _oldValue: Date | null = null;\n private _min: Date | null = null;\n private _max: Date | null = null;\n\n private _inputDateParts!: DatePartInfo[];\n private _inputFormat!: string;\n private _datePartDeltas: DatePartDeltas = {\n date: 1,\n month: 1,\n year: 1,\n hours: 1,\n minutes: 1,\n seconds: 1,\n };\n\n /**\n * The date format to apply on the input.\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public get inputFormat(): string {\n return this._inputFormat || this._defaultMask;\n }\n\n public set inputFormat(val: string) {\n if (val) {\n this.setMask(val);\n this._inputFormat = val;\n if (this.value) {\n this.updateMask();\n }\n }\n }\n\n public get value(): Date | null {\n return this._formValue.value;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the input.\n * @attr\n */\n @property({ converter: convertToDate })\n public set value(value: Date | string | null | undefined) {\n this._formValue.setValueAndFormState(value as Date | null);\n this.updateMask();\n }\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set min(value: Date | string | null | undefined) {\n this._min = convertToDate(value);\n this._validate();\n }\n\n public get min(): Date | null {\n return this._min;\n }\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set max(value: Date | string | null | undefined) {\n this._max = convertToDate(value);\n this._validate();\n }\n\n public get max(): Date | null {\n return this._max;\n }\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public displayFormat!: string;\n\n /**\n * Delta values used to increment or decrement each date part on step actions.\n * All values default to `1`.\n */\n @property({ attribute: false })\n public spinDelta!: DatePartDeltas;\n\n /**\n * Sets whether to loop over the currently spun segment.\n * @attr spin-loop\n */\n @property({ type: Boolean, attribute: 'spin-loop' })\n public spinLoop = true;\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n @watch('locale', { waitUntilFirstUpdate: true })\n protected setDefaultMask(): void {\n if (!this._inputFormat) {\n this.updateDefaultMask();\n this.setMask(this._defaultMask);\n }\n\n if (this.value) {\n this.updateMask();\n }\n }\n\n @watch('displayFormat', { waitUntilFirstUpdate: true })\n protected setDisplayFormat(): void {\n if (this.value) {\n this.updateMask();\n }\n }\n\n @watch('prompt', { waitUntilFirstUpdate: true })\n protected promptChange(): void {\n if (!this.prompt) {\n this.prompt = this.parser.prompt;\n } else {\n this.parser.prompt = this.prompt;\n }\n }\n\n protected get hasDateParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n\n return parts.some(\n (p) =>\n p.type === DateParts.Date ||\n p.type === DateParts.Month ||\n p.type === DateParts.Year\n );\n }\n\n protected get hasTimeParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n return parts.some(\n (p) =>\n p.type === DateParts.Hours ||\n p.type === DateParts.Minutes ||\n p.type === DateParts.Seconds\n );\n }\n\n private get targetDatePart(): DatePart | undefined {\n let result: DatePart | undefined;\n\n if (this.focused) {\n const partType = this._inputDateParts.find(\n (p) =>\n p.start <= this.inputSelection.start &&\n this.inputSelection.start <= p.end &&\n p.type !== DateParts.Literal\n )?.type as string as DatePart;\n\n if (partType) {\n result = partType;\n }\n } else if (this._inputDateParts.some((p) => p.type === DateParts.Date)) {\n result = DatePart.Date;\n } else if (this._inputDateParts.some((p) => p.type === DateParts.Hours)) {\n result = DatePart.Hours;\n } else {\n result = this._inputDateParts[0].type as string as DatePart;\n }\n\n return result;\n }\n\n private get datePartDeltas(): DatePartDeltas {\n return Object.assign({}, this._datePartDeltas, this.spinDelta);\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.readOnly,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set([ctrlKey, ';'], this.setToday)\n .set(arrowUp, this.keyboardSpin.bind(this, 'up'))\n .set(arrowDown, this.keyboardSpin.bind(this, 'down'))\n .set([ctrlKey, arrowLeft], this.navigateParts.bind(this, 0))\n .set([ctrlKey, arrowRight], this.navigateParts.bind(this, 1));\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.updateDefaultMask();\n this.setMask(this.inputFormat);\n if (this.value) {\n this.updateMask();\n }\n }\n\n /** Increments a date/time portion. */\n public stepUp(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Decrements a date/time portion. */\n public stepDown(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta, true);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Clears the input element of user input. */\n public clear(): void {\n this.maskedValue = '';\n this.value = null;\n }\n\n protected setToday() {\n this.value = new Date();\n this.handleInput();\n }\n\n protected updateMask() {\n if (this.focused) {\n this.maskedValue = this.getMaskedValue();\n } else {\n if (!DateTimeUtil.isValidDate(this.value)) {\n this.maskedValue = '';\n return;\n }\n\n const format = this.displayFormat || this.inputFormat;\n\n if (this.displayFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format,\n true\n );\n } else if (this.inputFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format\n );\n } else {\n this.maskedValue = this.value.toLocaleString();\n }\n }\n }\n\n protected override handleInput() {\n this._setTouchedState();\n this.emitEvent('igcInput', { detail: this.value?.toString() });\n }\n\n protected handleDragLeave() {\n if (!this.focused) {\n this.updateMask();\n }\n }\n\n protected handleDragEnter() {\n if (!this.focused) {\n this.maskedValue = this.getMaskedValue();\n }\n }\n\n protected async updateInput(string: string, range: MaskRange) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n string,\n range.start,\n range.end\n );\n\n this.maskedValue = value;\n\n this.updateValue();\n this.requestUpdate();\n\n if (range.start !== this.inputFormat.length) {\n this.handleInput();\n }\n await this.updateComplete;\n this.input.setSelectionRange(end, end);\n }\n\n private trySpinValue(\n datePart: DatePart,\n delta?: number,\n negative = false\n ): Date {\n // default to 1 if a delta is set to 0 or any other falsy value\n const _delta =\n delta || this.datePartDeltas[datePart as keyof DatePartDeltas] || 1;\n\n const spinValue = negative ? -Math.abs(_delta) : Math.abs(_delta);\n return this.spinValue(datePart, spinValue);\n }\n\n private spinValue(datePart: DatePart, delta: number): Date {\n if (!(this.value && DateTimeUtil.isValidDate(this.value))) {\n return new Date();\n }\n\n const newDate = new Date(this.value.getTime());\n let formatPart: DatePartInfo | undefined;\n let amPmFromMask: string;\n\n switch (datePart) {\n case DatePart.Date:\n DateTimeUtil.spinDate(delta, newDate, this.spinLoop);\n break;\n case DatePart.Month:\n DateTimeUtil.spinMonth(delta, newDate, this.spinLoop);\n break;\n case DatePart.Year:\n DateTimeUtil.spinYear(delta, newDate);\n break;\n case DatePart.Hours:\n DateTimeUtil.spinHours(delta, newDate, this.spinLoop);\n break;\n case DatePart.Minutes:\n DateTimeUtil.spinMinutes(delta, newDate, this.spinLoop);\n break;\n case DatePart.Seconds:\n DateTimeUtil.spinSeconds(delta, newDate, this.spinLoop);\n break;\n case DatePart.AmPm:\n formatPart = this._inputDateParts.find(\n (dp) => dp.type === DateParts.AmPm\n );\n if (formatPart !== undefined) {\n amPmFromMask = this.maskedValue.substring(\n formatPart!.start,\n formatPart!.end\n );\n return DateTimeUtil.spinAmPm(newDate, this.value, amPmFromMask);\n }\n break;\n }\n\n return newDate;\n }\n\n @eventOptions({ passive: false })\n private async onWheel(event: WheelEvent) {\n if (!this.focused || this.readOnly) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { start, end } = this.inputSelection;\n event.deltaY > 0 ? this.stepDown() : this.stepUp();\n this.handleInput();\n\n await this.updateComplete;\n this.setSelectionRange(start, end);\n }\n\n private updateDefaultMask(): void {\n this._defaultMask = DateTimeUtil.getDefaultMask(this.locale);\n }\n\n private setMask(string: string): void {\n const oldFormat = this._inputDateParts?.map((p) => p.format).join('');\n this._inputDateParts = DateTimeUtil.parseDateTimeFormat(string);\n const value = this._inputDateParts.map((p) => p.format).join('');\n\n this._defaultMask = value;\n\n const newMask = (value || DateTimeUtil.DEFAULT_INPUT_FORMAT).replace(\n new RegExp(/(?=[^t])[\\w]/, 'g'),\n '0'\n );\n\n this._mask = newMask.includes('tt')\n ? newMask.replace(/tt/g, 'LL')\n : newMask;\n\n this.parser.mask = this._mask;\n this.parser.prompt = this.prompt;\n\n if (!this.placeholder || oldFormat === this.placeholder) {\n this.placeholder = value;\n }\n }\n\n private parseDate(val: string) {\n return val\n ? DateTimeUtil.parseValueFromMask(val, this._inputDateParts, this.prompt)\n : null;\n }\n\n private getMaskedValue(): string {\n let mask = this.emptyMask;\n\n if (DateTimeUtil.isValidDate(this.value)) {\n for (const part of this._inputDateParts) {\n if (part.type === DateParts.Literal) {\n continue;\n }\n\n const targetValue = DateTimeUtil.getPartValue(\n part,\n part.format.length,\n this.value\n );\n\n mask = this.parser.replace(\n mask,\n targetValue,\n part.start,\n part.end\n ).value;\n }\n return mask;\n }\n\n return this.maskedValue === '' ? mask : this.maskedValue;\n }\n\n private isComplete(): boolean {\n return !this.maskedValue.includes(this.prompt);\n }\n\n private updateValue(): void {\n if (this.isComplete()) {\n const parsedDate = this.parseDate(this.maskedValue);\n this.value = DateTimeUtil.isValidDate(parsedDate) ? parsedDate : null;\n } else {\n this.value = null;\n }\n }\n\n protected override _updateSetRangeTextValue() {\n this.updateValue();\n }\n\n private getNewPosition(value: string, direction = 0): number {\n const cursorPos = this.selection.start;\n\n if (!direction) {\n // Last literal before the current cursor position or start of input value\n const part = this._inputDateParts.findLast(\n (part) => part.type === DateParts.Literal && part.end < cursorPos\n );\n return part?.end ?? 0;\n }\n\n // First literal after the current cursor position or end of input value\n const part = this._inputDateParts.find(\n (part) => part.type === DateParts.Literal && part.start > cursorPos\n );\n return part?.start ?? value.length;\n }\n\n protected async handleFocus() {\n this.focused = true;\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n const areFormatsDifferent = this.displayFormat !== this.inputFormat;\n\n if (!this.value) {\n this.maskedValue = this.emptyMask;\n await this.updateComplete;\n this.select();\n } else if (areFormatsDifferent) {\n this.updateMask();\n }\n }\n\n protected handleBlur() {\n const isEmptyMask = this.maskedValue === this.emptyMask;\n\n this.focused = false;\n\n if (!(this.isComplete() || isEmptyMask)) {\n const parse = this.parseDate(this.maskedValue);\n\n if (parse) {\n this.value = parse;\n } else {\n this.value = null;\n this.maskedValue = '';\n }\n } else {\n this.updateMask();\n }\n\n const isSameValue = this._oldValue === this.value;\n\n if (!(this.readOnly || isSameValue)) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n super._handleBlur();\n }\n\n protected navigateParts(delta: number) {\n const position = this.getNewPosition(this.input.value, delta);\n this.setSelectionRange(position, position);\n }\n\n protected async keyboardSpin(direction: 'up' | 'down') {\n direction === 'up' ? this.stepUp() : this.stepDown();\n this.handleInput();\n await this.updateComplete;\n this.setSelectionRange(this.selection.start, this.selection.end);\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder || this.emptyMask)}\n ?readonly=${this.readOnly}\n ?disabled=${this.disabled}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @input=${super.handleInput}\n @wheel=${this.onWheel}\n @keydown=${super.handleKeydown}\n @click=${this.handleClick}\n @cut=${this.handleCut}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-time-input': IgcDateTimeInputComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"date-time-input.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,uCAAuC,CAAC;AAC/C,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,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EACL,yBAAyB,GAE1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,+BAA+B,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EACL,QAAQ,EAGR,SAAS,EACT,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAgC1D,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,iBAAiB,CAGtE,yBAAyB,CAAC;aACH,YAAO,GAAG,qBAAqB,AAAxB,CAAyB;IAGhD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CACf,yBAAyB,EACzB,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,IAAuB,YAAY;QACjC,OAAO,uBAAuB,CAAC;IACjC,CAAC;IA4BD,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;IAChD,CAAC;IAED,IAAW,WAAW,CAAC,GAAW;QAChC,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC/B,CAAC;IAQD,IAAW,KAAK,CAAC,KAAuC;QACtD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAoB,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAOD,IAAW,GAAG,CAAC,KAAuC;QACpD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAOD,IAAW,GAAG,CAAC,KAAuC;QACpD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAgCS,cAAc;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAGS,gBAAgB;QACxB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAGS,YAAY;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAc,YAAY;QACxB,MAAM,KAAK,GACT,IAAI,CAAC,eAAe;YACpB,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;YACzB,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK;YAC1B,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAC5B,CAAC;IACJ,CAAC;IAED,IAAc,YAAY;QACxB,MAAM,KAAK,GACT,IAAI,CAAC,eAAe;YACpB,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK;YAC1B,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO;YAC5B,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,CAC/B,CAAC;IACJ,CAAC;IAED,IAAY,cAAc;QACxB,IAAI,MAA4B,CAAC;QAEjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG;gBAClC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,CAC/B,EAAE,IAA0B,CAAC;YAE9B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,GAAG,QAAQ,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAA0B,CAAC;QAC9D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAY,cAAc;QACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAnMkB,eAAU,GAAG,oBAAoB,CAAC,IAAI,EAAE;YAClE,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,6BAA6B;SAC5C,CAAC,CAAC;QAGK,cAAS,GAAgB,IAAI,CAAC;QAC9B,SAAI,GAAgB,IAAI,CAAC;QACzB,SAAI,GAAgB,IAAI,CAAC;QAIzB,oBAAe,GAAmB;YACxC,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;SACX,CAAC;QAoFK,aAAQ,GAAG,IAAI,CAAC;QAOhB,WAAM,GAAG,IAAI,CAAC;QAuFnB,cAAc,CAAC,IAAI,EAAE;YACnB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ;YACzB,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;SACjD,CAAC;aACC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;aAClC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAChD,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC3D,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAEe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAGM,MAAM,CAAC,QAAmB,EAAE,KAAc;QAC/C,MAAM,UAAU,GAAG,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC;QAEnD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAGM,QAAQ,CAAC,QAAmB,EAAE,KAAc;QACjD,MAAM,UAAU,GAAG,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC;QAEnD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAGM,KAAK;QACV,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAES,QAAQ;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC;YAEtD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,CACxC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,MAAM,EACN,IAAI,CACL,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,CACxC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,MAAM,CACP,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAEkB,WAAW;QAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,KAAgB;QAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CACxC,IAAI,CAAC,WAAW,EAChB,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,GAAG,CACV,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAEO,YAAY,CAClB,QAAkB,EAClB,KAAc,EACd,QAAQ,GAAG,KAAK;QAGhB,MAAM,MAAM,GACV,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAgC,CAAC,IAAI,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;IAEO,SAAS,CAAC,QAAkB,EAAE,KAAa;QACjD,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,UAAoC,CAAC;QACzC,IAAI,YAAoB,CAAC;QAEzB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC,IAAI;gBAChB,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,QAAQ,CAAC,KAAK;gBACjB,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI;gBAChB,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,QAAQ,CAAC,KAAK;gBACjB,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,MAAM;YACR,KAAK,QAAQ,CAAC,OAAO;gBACnB,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,QAAQ,CAAC,OAAO;gBACnB,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI;gBAChB,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACpC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CACnC,CAAC;gBACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACvC,UAAW,CAAC,KAAK,EACjB,UAAW,CAAC,GAAG,CAChB,CAAC;oBACF,OAAO,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAGa,AAAN,KAAK,CAAC,OAAO,CAAC,KAAiB;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAEO,OAAO,CAAC,MAAc;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAClE,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,EAC/B,GAAG,CACJ,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC;QAEZ,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACxD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,OAAO,GAAG;YACR,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;YACzE,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAE1B,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;oBACpC,SAAS;gBACX,CAAC;gBAED,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAC3C,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CAAC,KAAK,CACX,CAAC;gBAEF,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACT,CAAC,KAAK,CAAC;YACV,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC3D,CAAC;IAEO,UAAU;QAChB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAEkB,wBAAwB;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;YAEf,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,CAClE,CAAC;YACF,OAAO,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;QAGD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,SAAS,CACpE,CAAC;QACF,OAAO,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;IACrC,CAAC;IAES,KAAK,CAAC,WAAW;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC;QAEpE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,MAAM,IAAI,CAAC,cAAc,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,mBAAmB,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAES,UAAU;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC;QAExD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC;QAElD,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAES,aAAa,CAAC,KAAa;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,SAAwB;QACnD,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IAEkB,WAAW;QAC5B,OAAO,IAAI,CAAA;;;eAGA,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;eACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;uBAChB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;gBACjB,IAAI,CAAC,UAAU;iBACd,IAAI,CAAC,WAAW;iBAChB,KAAK,CAAC,WAAW;iBACjB,IAAI,CAAC,OAAO;mBACV,KAAK,CAAC,aAAa;iBACrB,IAAI,CAAC,WAAW;eAClB,IAAI,CAAC,SAAS;4BACD,IAAI,CAAC,sBAAsB;0BAC7B,IAAI,CAAC,oBAAoB;qBAC9B,IAAI,CAAC,eAAe;qBACpB,IAAI,CAAC,eAAe;qBACpB,IAAI,CAAC,eAAe;;KAEpC,CAAC;IACJ,CAAC;;AAviBD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;4DAGvC;AAsBD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;sDAItC;AAOD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;oDAItC;AAWD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;oDAItC;AAYM;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gEACZ;AAOvB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4DACG;AAO3B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;2DAC7B;AAOhB;IADN,QAAQ,EAAE;yDACU;AAGX;IADT,KAAK,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;+DAU/C;AAGS;IADT,KAAK,CAAC,eAAe,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;iEAKtD;AAGS;IADT,KAAK,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;6DAO/C;AAoPa;IADb,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;wDAehC","sourcesContent":["import { html } from 'lit';\nimport { eventOptions, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\n\nimport { convertToDate } from '../calendar/helpers.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n} from '../common/controllers/key-bindings.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormValueDateTimeTransformers } from '../common/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '../common/mixins/forms/form-value.js';\nimport { partMap } from '../common/part-map.js';\nimport type { IgcInputComponentEventMap } from '../input/input-base.js';\nimport {\n IgcMaskInputBaseComponent,\n type MaskRange,\n} from '../mask-input/mask-input-base.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport {\n DatePart,\n type DatePartDeltas,\n type DatePartInfo,\n DateParts,\n DateTimeUtil,\n} from './date-util.js';\nimport { dateTimeInputValidators } from './validators.js';\n\nexport interface IgcDateTimeInputComponentEventMap\n extends Omit<IgcInputComponentEventMap, 'igcChange'> {\n igcChange: CustomEvent<Date | null>;\n}\n\n/**\n * A date time input is an input field that lets you set and edit the date and time in a chosen input element\n * using customizable display and input formats.\n *\n * @element igc-date-time-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot range-overflow - Renders content when the max validation fails.\n * @slot range-underflow - Renders content when the min validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcDateTimeInputComponent extends EventEmitterMixin<\n IgcDateTimeInputComponentEventMap,\n AbstractConstructor<IgcMaskInputBaseComponent>\n>(IgcMaskInputBaseComponent) {\n public static readonly tagName = 'igc-date-time-input';\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDateTimeInputComponent,\n IgcValidationContainerComponent\n );\n }\n\n protected override get __validators() {\n return dateTimeInputValidators;\n }\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: null,\n transformers: FormValueDateTimeTransformers,\n });\n\n protected _defaultMask!: string;\n private _oldValue: Date | null = null;\n private _min: Date | null = null;\n private _max: Date | null = null;\n\n private _inputDateParts!: DatePartInfo[];\n private _inputFormat!: string;\n private _datePartDeltas: DatePartDeltas = {\n date: 1,\n month: 1,\n year: 1,\n hours: 1,\n minutes: 1,\n seconds: 1,\n };\n\n /**\n * The date format to apply on the input.\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public get inputFormat(): string {\n return this._inputFormat || this._defaultMask;\n }\n\n public set inputFormat(val: string) {\n if (val) {\n this.setMask(val);\n this._inputFormat = val;\n if (this.value) {\n this.updateMask();\n }\n }\n }\n\n public get value(): Date | null {\n return this._formValue.value;\n }\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the input.\n * @attr\n */\n @property({ converter: convertToDate })\n public set value(value: Date | string | null | undefined) {\n this._formValue.setValueAndFormState(value as Date | null);\n this.updateMask();\n }\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set min(value: Date | string | null | undefined) {\n this._min = convertToDate(value);\n this._validate();\n }\n\n public get min(): Date | null {\n return this._min;\n }\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set max(value: Date | string | null | undefined) {\n this._max = convertToDate(value);\n this._validate();\n }\n\n public get max(): Date | null {\n return this._max;\n }\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the input format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public displayFormat!: string;\n\n /**\n * Delta values used to increment or decrement each date part on step actions.\n * All values default to `1`.\n */\n @property({ attribute: false })\n public spinDelta!: DatePartDeltas;\n\n /**\n * Sets whether to loop over the currently spun segment.\n * @attr spin-loop\n */\n @property({ type: Boolean, attribute: 'spin-loop' })\n public spinLoop = true;\n\n /**\n * The locale settings used to display the value.\n * @attr\n */\n @property()\n public locale = 'en';\n\n @watch('locale', { waitUntilFirstUpdate: true })\n protected setDefaultMask(): void {\n if (!this._inputFormat) {\n this.updateDefaultMask();\n this.setMask(this._defaultMask);\n }\n\n if (this.value) {\n this.updateMask();\n }\n }\n\n @watch('displayFormat', { waitUntilFirstUpdate: true })\n protected setDisplayFormat(): void {\n if (this.value) {\n this.updateMask();\n }\n }\n\n @watch('prompt', { waitUntilFirstUpdate: true })\n protected promptChange(): void {\n if (!this.prompt) {\n this.prompt = this.parser.prompt;\n } else {\n this.parser.prompt = this.prompt;\n }\n }\n\n protected get hasDateParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n\n return parts.some(\n (p) =>\n p.type === DateParts.Date ||\n p.type === DateParts.Month ||\n p.type === DateParts.Year\n );\n }\n\n protected get hasTimeParts(): boolean {\n const parts =\n this._inputDateParts ||\n DateTimeUtil.parseDateTimeFormat(this.inputFormat);\n return parts.some(\n (p) =>\n p.type === DateParts.Hours ||\n p.type === DateParts.Minutes ||\n p.type === DateParts.Seconds\n );\n }\n\n private get targetDatePart(): DatePart | undefined {\n let result: DatePart | undefined;\n\n if (this.focused) {\n const partType = this._inputDateParts.find(\n (p) =>\n p.start <= this.inputSelection.start &&\n this.inputSelection.start <= p.end &&\n p.type !== DateParts.Literal\n )?.type as string as DatePart;\n\n if (partType) {\n result = partType;\n }\n } else if (this._inputDateParts.some((p) => p.type === DateParts.Date)) {\n result = DatePart.Date;\n } else if (this._inputDateParts.some((p) => p.type === DateParts.Hours)) {\n result = DatePart.Hours;\n } else {\n result = this._inputDateParts[0].type as string as DatePart;\n }\n\n return result;\n }\n\n private get datePartDeltas(): DatePartDeltas {\n return Object.assign({}, this._datePartDeltas, this.spinDelta);\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.readOnly,\n bindingDefaults: { triggers: ['keydownRepeat'] },\n })\n .set([ctrlKey, ';'], this.setToday)\n .set(arrowUp, this.keyboardSpin.bind(this, 'up'))\n .set(arrowDown, this.keyboardSpin.bind(this, 'down'))\n .set([ctrlKey, arrowLeft], this.navigateParts.bind(this, 0))\n .set([ctrlKey, arrowRight], this.navigateParts.bind(this, 1));\n }\n\n public override connectedCallback() {\n super.connectedCallback();\n this.updateDefaultMask();\n this.setMask(this.inputFormat);\n if (this.value) {\n this.updateMask();\n }\n }\n\n /** Increments a date/time portion. */\n public stepUp(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Decrements a date/time portion. */\n public stepDown(datePart?: DatePart, delta?: number): void {\n const targetPart = datePart || this.targetDatePart;\n\n if (!targetPart) {\n return;\n }\n\n const { start, end } = this.inputSelection;\n const newValue = this.trySpinValue(targetPart, delta, true);\n this.value = newValue;\n this.updateComplete.then(() => this.input.setSelectionRange(start, end));\n }\n\n /** Clears the input element of user input. */\n public clear(): void {\n this.maskedValue = '';\n this.value = null;\n }\n\n protected setToday() {\n this.value = new Date();\n this.handleInput();\n }\n\n protected updateMask() {\n if (this.focused) {\n this.maskedValue = this.getMaskedValue();\n } else {\n if (!DateTimeUtil.isValidDate(this.value)) {\n this.maskedValue = '';\n return;\n }\n\n const format = this.displayFormat || this.inputFormat;\n\n if (this.displayFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format,\n true\n );\n } else if (this.inputFormat) {\n this.maskedValue = DateTimeUtil.formatDate(\n this.value,\n this.locale,\n format\n );\n } else {\n this.maskedValue = this.value.toLocaleString();\n }\n }\n }\n\n protected override handleInput() {\n this._setTouchedState();\n this.emitEvent('igcInput', { detail: this.value?.toString() });\n }\n\n protected handleDragLeave() {\n if (!this.focused) {\n this.updateMask();\n }\n }\n\n protected handleDragEnter() {\n if (!this.focused) {\n this.maskedValue = this.getMaskedValue();\n }\n }\n\n protected async updateInput(string: string, range: MaskRange) {\n const { value, end } = this.parser.replace(\n this.maskedValue,\n string,\n range.start,\n range.end\n );\n\n this.maskedValue = value;\n\n this.updateValue();\n this.requestUpdate();\n\n if (range.start !== this.inputFormat.length) {\n this.handleInput();\n }\n await this.updateComplete;\n this.input.setSelectionRange(end, end);\n }\n\n private trySpinValue(\n datePart: DatePart,\n delta?: number,\n negative = false\n ): Date {\n // default to 1 if a delta is set to 0 or any other falsy value\n const _delta =\n delta || this.datePartDeltas[datePart as keyof DatePartDeltas] || 1;\n\n const spinValue = negative ? -Math.abs(_delta) : Math.abs(_delta);\n return this.spinValue(datePart, spinValue);\n }\n\n private spinValue(datePart: DatePart, delta: number): Date {\n if (!(this.value && DateTimeUtil.isValidDate(this.value))) {\n return new Date();\n }\n\n const newDate = new Date(this.value.getTime());\n let formatPart: DatePartInfo | undefined;\n let amPmFromMask: string;\n\n switch (datePart) {\n case DatePart.Date:\n DateTimeUtil.spinDate(delta, newDate, this.spinLoop);\n break;\n case DatePart.Month:\n DateTimeUtil.spinMonth(delta, newDate, this.spinLoop);\n break;\n case DatePart.Year:\n DateTimeUtil.spinYear(delta, newDate);\n break;\n case DatePart.Hours:\n DateTimeUtil.spinHours(delta, newDate, this.spinLoop);\n break;\n case DatePart.Minutes:\n DateTimeUtil.spinMinutes(delta, newDate, this.spinLoop);\n break;\n case DatePart.Seconds:\n DateTimeUtil.spinSeconds(delta, newDate, this.spinLoop);\n break;\n case DatePart.AmPm:\n formatPart = this._inputDateParts.find(\n (dp) => dp.type === DateParts.AmPm\n );\n if (formatPart !== undefined) {\n amPmFromMask = this.maskedValue.substring(\n formatPart!.start,\n formatPart!.end\n );\n return DateTimeUtil.spinAmPm(newDate, this.value, amPmFromMask);\n }\n break;\n }\n\n return newDate;\n }\n\n @eventOptions({ passive: false })\n private async onWheel(event: WheelEvent) {\n if (!this.focused || this.readOnly) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const { start, end } = this.inputSelection;\n event.deltaY > 0 ? this.stepDown() : this.stepUp();\n this.handleInput();\n\n await this.updateComplete;\n this.setSelectionRange(start, end);\n }\n\n private updateDefaultMask(): void {\n this._defaultMask = DateTimeUtil.getDefaultMask(this.locale);\n }\n\n private setMask(string: string): void {\n const oldFormat = this._inputDateParts?.map((p) => p.format).join('');\n this._inputDateParts = DateTimeUtil.parseDateTimeFormat(string);\n const value = this._inputDateParts.map((p) => p.format).join('');\n\n this._defaultMask = value;\n\n const newMask = (value || DateTimeUtil.DEFAULT_INPUT_FORMAT).replace(\n new RegExp(/(?=[^t])[\\w]/, 'g'),\n '0'\n );\n\n this._mask = newMask.includes('tt')\n ? newMask.replace(/tt/g, 'LL')\n : newMask;\n\n this.parser.mask = this._mask;\n this.parser.prompt = this.prompt;\n\n if (!this.placeholder || oldFormat === this.placeholder) {\n this.placeholder = value;\n }\n }\n\n private parseDate(val: string) {\n return val\n ? DateTimeUtil.parseValueFromMask(val, this._inputDateParts, this.prompt)\n : null;\n }\n\n private getMaskedValue(): string {\n let mask = this.emptyMask;\n\n if (DateTimeUtil.isValidDate(this.value)) {\n for (const part of this._inputDateParts) {\n if (part.type === DateParts.Literal) {\n continue;\n }\n\n const targetValue = DateTimeUtil.getPartValue(\n part,\n part.format.length,\n this.value\n );\n\n mask = this.parser.replace(\n mask,\n targetValue,\n part.start,\n part.end\n ).value;\n }\n return mask;\n }\n\n return this.maskedValue === '' ? mask : this.maskedValue;\n }\n\n private isComplete(): boolean {\n return !this.maskedValue.includes(this.prompt);\n }\n\n private updateValue(): void {\n if (this.isComplete()) {\n const parsedDate = this.parseDate(this.maskedValue);\n this.value = DateTimeUtil.isValidDate(parsedDate) ? parsedDate : null;\n } else {\n this.value = null;\n }\n }\n\n protected override _updateSetRangeTextValue() {\n this.updateValue();\n }\n\n private getNewPosition(value: string, direction = 0): number {\n const cursorPos = this.selection.start;\n\n if (!direction) {\n // Last literal before the current cursor position or start of input value\n const part = this._inputDateParts.findLast(\n (part) => part.type === DateParts.Literal && part.end < cursorPos\n );\n return part?.end ?? 0;\n }\n\n // First literal after the current cursor position or end of input value\n const part = this._inputDateParts.find(\n (part) => part.type === DateParts.Literal && part.start > cursorPos\n );\n return part?.start ?? value.length;\n }\n\n protected async handleFocus() {\n this.focused = true;\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n const areFormatsDifferent = this.displayFormat !== this.inputFormat;\n\n if (!this.value) {\n this.maskedValue = this.emptyMask;\n await this.updateComplete;\n this.select();\n } else if (areFormatsDifferent) {\n this.updateMask();\n }\n }\n\n protected handleBlur() {\n const isEmptyMask = this.maskedValue === this.emptyMask;\n\n this.focused = false;\n\n if (!(this.isComplete() || isEmptyMask)) {\n const parse = this.parseDate(this.maskedValue);\n\n if (parse) {\n this.value = parse;\n } else {\n this.value = null;\n this.maskedValue = '';\n }\n } else {\n this.updateMask();\n }\n\n const isSameValue = this._oldValue === this.value;\n\n if (!(this.readOnly || isSameValue)) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n super._handleBlur();\n }\n\n protected navigateParts(delta: number) {\n const position = this.getNewPosition(this.input.value, delta);\n this.setSelectionRange(position, position);\n }\n\n protected async keyboardSpin(direction: 'up' | 'down') {\n direction === 'up' ? this.stepUp() : this.stepDown();\n this.handleInput();\n await this.updateComplete;\n this.setSelectionRange(this.selection.start, this.selection.end);\n }\n\n protected override renderInput() {\n return html`\n <input\n type=\"text\"\n part=${partMap(this.resolvePartNames('input'))}\n name=${ifDefined(this.name)}\n .value=${live(this.maskedValue)}\n .placeholder=${live(this.placeholder || this.emptyMask)}\n ?readonly=${this.readOnly}\n ?disabled=${this.disabled}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @input=${super.handleInput}\n @wheel=${this.onWheel}\n @keydown=${super.handleKeydown}\n @click=${this.handleClick}\n @cut=${this.handleCut}\n @compositionstart=${this.handleCompositionStart}\n @compositionend=${this.handleCompositionEnd}\n @dragenter=${this.handleDragEnter}\n @dragleave=${this.handleDragLeave}\n @dragstart=${this.handleDragStart}\n />\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-time-input': IgcDateTimeInputComponent;\n }\n}\n"]}
@@ -31,6 +31,17 @@ function isDate(value) {
31
31
  return value instanceof Date;
32
32
  }
33
33
  export class DateTimeUtil {
34
+ static { this.DEFAULT_INPUT_FORMAT = 'MM/dd/yyyy'; }
35
+ static { this.DEFAULT_TIME_INPUT_FORMAT = 'hh:mm tt'; }
36
+ static { this.SEPARATOR = 'literal'; }
37
+ static { this.DEFAULT_LOCALE = 'en'; }
38
+ static { this.PREDEFINED_FORMATS = new Set([
39
+ 'short',
40
+ 'medium',
41
+ 'long',
42
+ 'full',
43
+ ]); }
44
+ static { this._parser = new MaskParser(); }
34
45
  static parseValueFromMask(inputData, dateTimeParts, promptChar) {
35
46
  const parts = {};
36
47
  dateTimeParts.forEach((dp) => {
@@ -596,15 +607,4 @@ export class DateTimeUtil {
596
607
  return hour;
597
608
  }
598
609
  }
599
- DateTimeUtil.DEFAULT_INPUT_FORMAT = 'MM/dd/yyyy';
600
- DateTimeUtil.DEFAULT_TIME_INPUT_FORMAT = 'hh:mm tt';
601
- DateTimeUtil.SEPARATOR = 'literal';
602
- DateTimeUtil.DEFAULT_LOCALE = 'en';
603
- DateTimeUtil.PREDEFINED_FORMATS = new Set([
604
- 'short',
605
- 'medium',
606
- 'long',
607
- 'full',
608
- ]);
609
- DateTimeUtil._parser = new MaskParser();
610
610
  //# sourceMappingURL=date-util.js.map
@@ -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 { parseISODate } from '../calendar/helpers.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\nfunction isDate(value: unknown): value is Date {\n return value instanceof Date;\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 readonly PREDEFINED_FORMATS = new Set([\n 'short',\n 'medium',\n 'long',\n 'full',\n ]);\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 return parseISODate(value);\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 /**\n * Transforms the predefined format to a display format containing only date parts.\n *\n * @param format The format to check and transform\n */\n public static predefinedToDateDisplayFormat(format?: string) {\n return format && DateTimeUtil.PREDEFINED_FORMATS.has(format)\n ? `${format}Date`\n : format;\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"]}
1
+ {"version":3,"file":"date-util.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;AACvB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED,MAAM,CAAN,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,0BAAa,CAAA;IACb,gCAAmB,CAAA;AACrB,CAAC,EAVW,SAAS,KAAT,SAAS,QAUpB;AAED,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,yBAAa,CAAA;AACf,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAmBD,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,YAAY,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,OAAgB,YAAY;aACT,yBAAoB,GAAG,YAAY,CAAC;aACpC,8BAAyB,GAAG,UAAU,CAAC;aACtC,cAAS,GAAG,SAAS,CAAC;aACtB,mBAAc,GAAG,IAAI,CAAC;aACtB,uBAAkB,GAAG,IAAI,GAAG,CAAC;QACnD,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;KACP,CAAC,CAAC;aACY,YAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IAEnC,MAAM,CAAC,kBAAkB,CAC9B,SAAiB,EACjB,aAA6B,EAC7B,UAAmB;QAEnB,MAAM,KAAK,GAAmC,EAAS,CAAC;QACxD,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAC3B,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CACzB,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,EAAE,UAAU,CAAC,EACnD,EAAE,CACH,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK;oBACH,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC/B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAChC,CAAC;QAED,IACE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EACvE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IACE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;YAC3B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAC7B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAED,IACE,IAAI;YACJ,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE;gBACjE,IAAI,EACN,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,IAAI,CACb,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAC7B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC3B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC3B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAC7B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAC9B,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,MAAc;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,oBAAoB,CAC7C,MAAM,IAAI,YAAY,CAAC,cAAc,CACtC,CAAC;QAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;gBACvB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;oBACnE,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAC/B,IAAY,EACZ,SAAiB,YAAY,CAAC,cAAc,EAC5C,aAAa,GAAG,KAAK;QAErB,MAAM,MAAM,GAAG,IAAI,IAAI,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,WAAW,GAAwB,IAAI,CAAC;QAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9B,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/B,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;gBACvE,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;YAC7B,CAAC;YAED,WAAW,GAAG;gBACZ,KAAK,EAAE,QAAQ;gBACf,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM;gBACrC,IAAI;gBACJ,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;aACvB,CAAC;QACJ,CAAC;QAGD,IACE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAY,CAAC,MAAM,CAAC,CAAC;aACjE,MAAM,EACT,CAAC;YACD,YAAY,CAAC,cAAc,CAAC,WAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3C,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,KAAa;QACtC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAU;QAClC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,UAAU,CACtB,KAAW,EACX,MAAc,EACd,MAAc,EACd,aAAa,GAAG,KAAK;QAErB,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,OAAO,CAAC;YACb,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM;gBACT,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC3B,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC3B,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,UAAU,CAAC;YAChB,KAAK,YAAY,CAAC;YAClB,KAAK,UAAU;gBACb,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,UAAU,CAAC;YAChB,KAAK,YAAY,CAAC;YAClB,KAAK,UAAU;gBACb,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACR;gBACE,OAAO,YAAY,CAAC,uBAAuB,CACzC,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,CACd,CAAC;QACN,CAAC;QAED,IAAI,SAA8B,CAAC;QACnC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC;QAED,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAExC,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,YAAY,CACxB,YAA0B,EAC1B,UAAkB,EAClB,UAAuB;QAEvB,IAAI,WAAgB,CAAC;QACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;QAEnC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS,CAAC,IAAI;gBACjB,WAAW,GAAG,UAAW,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM;YACR,KAAK,SAAS,CAAC,KAAK;gBAElB,WAAW,GAAG,UAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,SAAS,CAAC,IAAI;gBACjB,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBACrB,WAAW,GAAG,YAAY,CAAC,YAAY,CACrC,MAAM,CAAC,QAAQ,CAAC,UAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACnE,UAAU,EACV,GAAG,CACJ,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,UAAW,CAAC,WAAW,EAAE,CAAC;gBAC1C,CAAC;gBACD,MAAM;YACR,KAAK,SAAS,CAAC,KAAK;gBAClB,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC5C,WAAW,GAAG,YAAY,CAAC,YAAY,CACrC,YAAY,CAAC,kBAAkB,CAAC,UAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAClE,UAAU,EACV,GAAG,CACJ,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,UAAW,CAAC,QAAQ,EAAE,CAAC;gBACvC,CAAC;gBACD,MAAM;YACR,KAAK,SAAS,CAAC,OAAO;gBACpB,WAAW,GAAG,UAAW,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM;YACR,KAAK,SAAS,CAAC,OAAO;gBACpB,WAAW,GAAG,UAAW,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM;YACR,KAAK,SAAS,CAAC,IAAI;gBACjB,WAAW,GAAG,UAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzD,MAAM;QACV,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,OAAa;QACjD,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CACtC,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK,EAC7B,OAAO,CAAC,QAAQ,EAAE,CACnB,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;YAEhC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,SAAS,CACrB,KAAa,EACb,OAAa,EACb,QAAiB;QAEjB,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CACtC,OAAO,CAAC,WAAW,EAAE,EACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,CAC3B,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC;QACvC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,CAAC;aAAM,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClE,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,KAAa,EACb,OAAa,EACb,QAAiB;QAEjB,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CACtC,OAAO,CAAC,WAAW,EAAE,EACrB,OAAO,CAAC,QAAQ,EAAE,CACnB,CAAC;QACF,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC;QACrC,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;YACnB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7C,CAAC;aAAM,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,SAAS,CACrB,KAAa,EACb,OAAa,EACb,QAAiB;QAEjB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,CAAC,CAAC;QAClB,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC;QACvC,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;YACpB,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;YAC3B,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,KAAa,EACb,OAAa,EACb,QAAiB;QAEjB,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC;QAC3C,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/D,CAAC;aAAM,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YAChC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5E,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,KAAa,EACb,OAAa,EACb,QAAiB;QAEjB,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC;QAC3C,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/D,CAAC;aAAM,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YAChC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5E,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,OAAa,EACb,WAAiB,EACjB,YAAoB;QAEpB,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7B,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,IAAI;gBACP,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3D,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3D,MAAM;QACV,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAC/B,KAAW,EACX,QAAc,EACd,WAAW,GAAG,IAAI,EAClB,WAAW,GAAG,IAAI;QAElB,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;IASM,MAAM,CAAC,gBAAgB,CAC5B,KAAW,EACX,QAAc,EACd,WAAW,GAAG,IAAI,EAClB,WAAW,GAAG,IAAI;QAElB,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;IASM,MAAM,CAAC,cAAc,CAC1B,KAAW,EACX,QAAuB,EACvB,QAAuB,EACvB,WAAW,GAAG,IAAI,EAClB,WAAW,GAAG,IAAI;QAKlB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,IACE,GAAG;YACH,KAAK;YACL,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,EACnE,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IACE,GAAG;YACH,KAAK;YACL,YAAY,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,EACtE,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOM,MAAM,CAAC,6BAA6B,CAAC,MAAe;QACzD,OAAO,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1D,CAAC,CAAC,GAAG,MAAM,MAAM;YACjB,CAAC,CAAC,MAAM,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,uBAAuB,CACpC,KAAW,EACX,MAAc,EACd,MAAc,EACd,aAAa,GAAG,KAAK;QAErB,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,YAAY,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,aAAa,CACd,CAAC;QAEF,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;YACtC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;YACvB,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;YAC1B,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;YACxB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;YACzB,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7B,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7B,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;YAC5B,CAAC,GAAG,EAAE,SAAS,CAAC;YAChB,CAAC,IAAI,EAAE,SAAS,CAAC;YACjB,CAAC,GAAG,EAAE,SAAS,CAAC;YAChB,CAAC,IAAI,EAAE,SAAS,CAAC;YACjB,CAAC,KAAK,EAAE,OAAO,CAAC;YAChB,CAAC,MAAM,EAAE,MAAM,CAAC;YAChB,CAAC,OAAO,EAAE,QAAQ,CAAC;YACnB,CAAC,GAAG,EAAE,SAAS,CAAC;YAChB,CAAC,IAAI,EAAE,SAAS,CAAC;YACjB,CAAC,KAAK,EAAE,SAAS,CAAC;YAClB,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,GAAG,EAAE,SAAS,CAAC;YAChB,CAAC,IAAI,EAAE,SAAS,CAAC;YACjB,CAAC,GAAG,EAAE,SAAS,CAAC;YAChB,CAAC,IAAI,EAAE,SAAS,CAAC;YACjB,CAAC,GAAG,EAAE,SAAS,CAAC;YAChB,CAAC,IAAI,EAAE,SAAS,CAAC;YACjB,CAAC,GAAG,EAAE,SAAS,CAAC;YAChB,CAAC,IAAI,EAAE,SAAS,CAAC;YACjB,CAAC,KAAK,EAAE,OAAO,CAAC;YAChB,CAAC,MAAM,EAAE,MAAM,CAAC;YAChB,CAAC,OAAO,EAAE,QAAQ,CAAC;SACpB,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,MAAM,GACV,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC9B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEjD,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;oBACrB,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAEzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;wBAClC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;4BAClC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;wBAC5B,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;wBAC5B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAGD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC5D,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;oBACzB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,SAA8B,CAAC;QACnC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CACjC,MAAM,EACN,OAAqC,CACtC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;YACvD,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QAC5E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,UAAiB;QACtC,MAAM,IAAI,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;wBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;yBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;wBACzC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpB,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;wBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC;yBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;wBACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,cAAc,CAC3B,WAAyB,EACzB,aAA6B,EAC7B,aAAa,GAAG,KAAK;QAErB,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC3D,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QAChE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAkB,EAAE,aAAa,GAAG,KAAK;QACxE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,KAAK,CAAC;YACrB,KAAK,SAAS,CAAC,KAAK,CAAC;YACrB,KAAK,SAAS,CAAC,OAAO,CAAC;YACvB,KAAK,SAAS,CAAC,OAAO;gBACpB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAY;QAC3C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC,IAAI,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC,KAAK,CAAC;YACzB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC,IAAI,CAAC;YACxB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC,KAAK,CAAC;YACzB,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC,OAAO,CAAC;YAC3B,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC,OAAO,CAAC;YAC3B,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC,IAAI,CAAC;YACxB;gBACE,OAAO,SAAS,CAAC,OAAO,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,MAAc;QAChD,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,IAAI,SAA8B,CAAC;QACnC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE1D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBACzC,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,YAAY,CAAC,SAAS;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QAErD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC;oBACvC,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;oBACzC,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC;oBACxC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,YAAY,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,SAAgB;QACpD,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAE7B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;gBAEjE,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC7C,UAAU,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAExC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;wBAExB,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;wBAC7C,UAAU,IAAI,CAAC,CAAC;wBAChB,MAAM;oBACR,CAAC;oBACD,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;wBAE1B,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;wBAC7C,UAAU,IAAI,CAAC,CAAC;wBAChB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBAEhD,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC7C,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,WAAW,CACxB,SAAiB,EACjB,QAAsB,EACtB,MAAe;QAEf,OAAO,YAAY,CAAC,qBAAqB,CACvC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EACjD,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,MAAc;QACxC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,KAAa,EAAE,MAAe;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAC1B,IAAI,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EACzD,EAAE,CACH,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,QAAgB,EAAE,KAAa;QACxD,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,YAAY,CACzB,KAAa,EACb,UAAkB,EAClB,WAAmB;QAEnB,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,KAAa;QAC7C,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CACxB,KAAK,CAAC,OAAO,CACX,IAAI,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EACvE,GAAG,CACJ,EACD,EAAE,CACH,CAAC;QACF,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;YACd,IAAI,IAAI,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC","sourcesContent":["import { parseISODate } from '../calendar/helpers.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\nfunction isDate(value: unknown): value is Date {\n return value instanceof Date;\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 readonly PREDEFINED_FORMATS = new Set([\n 'short',\n 'medium',\n 'long',\n 'full',\n ]);\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 return parseISODate(value);\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 /**\n * Transforms the predefined format to a display format containing only date parts.\n *\n * @param format The format to check and transform\n */\n public static predefinedToDateDisplayFormat(format?: string) {\n return format && DateTimeUtil.PREDEFINED_FORMATS.has(format)\n ? `${format}Date`\n : format;\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"]}
@@ -21,7 +21,9 @@ import { styles } from './themes/dialog.base.css.js';
21
21
  import { styles as shared } from './themes/shared/dialog.common.css.js';
22
22
  import { all } from './themes/themes.js';
23
23
  let nextId = 1;
24
- class IgcDialogComponent extends EventEmitterMixin(LitElement) {
24
+ export default class IgcDialogComponent extends EventEmitterMixin(LitElement) {
25
+ static { this.tagName = 'igc-dialog'; }
26
+ static { this.styles = [styles, shared]; }
25
27
  static register() {
26
28
  registerComponent(IgcDialogComponent, IgcButtonComponent);
27
29
  }
@@ -170,9 +172,6 @@ class IgcDialogComponent extends EventEmitterMixin(LitElement) {
170
172
  `;
171
173
  }
172
174
  }
173
- IgcDialogComponent.tagName = 'igc-dialog';
174
- IgcDialogComponent.styles = [styles, shared];
175
- export default IgcDialogComponent;
176
175
  __decorate([
177
176
  state()
178
177
  ], IgcDialogComponent.prototype, "_animating", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.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 { partMap } from '../common/part-map.js';\nimport { numberInRangeInclusive } 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 IgcDialogComponentEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nlet nextId = 1;\n\n/* blazorAdditionalDependency: IgcButtonComponent */\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed. Cancelable.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot of the dialog.\n * @slot title - Renders content in the title slot of the dialog header.\n * @slot message - Renders the message content of the dialog.\n * @slot footer - Renders content in the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container of the dialog.\n * @csspart footer - The footer container of the dialog.\n * @csspart overlay - The backdrop overlay of the dialog.\n */\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogComponentEventMap,\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(): void {\n registerComponent(IgcDialogComponent, IgcButtonComponent);\n }\n\n //#region Private state and properties\n\n private readonly _titleId = `title-${nextId++}`;\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('title', 'message', 'footer'),\n });\n\n private readonly _dialogRef = createRef<HTMLDialogElement>();\n private readonly _player = addAnimationController(this, this._dialogRef);\n\n /**\n * Backdrop animation helper.\n */\n @state()\n private _animating = false;\n\n private get _dialog(): HTMLDialogElement {\n return this._dialogRef.value!;\n }\n\n //#endregion\n\n //#region Public properties\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 * 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 //#endregion\n\n //#region Internal API\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override firstUpdated(): void {\n if (this.open) {\n this._dialog.showModal();\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected _handleOpenState(): void {\n this.open ? this._dialog.showModal() : this._dialog.close();\n }\n\n private _emitClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n private async _hide(emitEvent = false): Promise<boolean> {\n if (!this.open || (emitEvent && !this._emitClosing())) {\n return false;\n }\n\n this._animating = true;\n await this._player.playExclusive(fadeOut());\n this.open = false;\n this._animating = false;\n\n if (emitEvent) {\n await this.updateComplete;\n this.emitEvent('igcClosed');\n }\n\n return true;\n }\n\n protected _handleFormSubmit(event: SubmitEvent): void {\n const form = event.target as HTMLFormElement;\n\n if (form.method === 'dialog') {\n if (hasSubmitter(event.submitter)) {\n this.returnValue = event.submitter.value ?? '';\n }\n\n if (!event.defaultPrevented) {\n this._hide(true);\n }\n }\n }\n\n private _handleCancel(event: Event): void {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this._hide(true);\n }\n }\n\n private _handleClick({ clientX, clientY, target }: PointerEvent): void {\n if (this.closeOnOutsideClick && this._dialog === target) {\n const rect = this._dialog.getBoundingClientRect();\n const inX = numberInRangeInclusive(clientX, rect.left, rect.right);\n const inY = numberInRangeInclusive(clientY, rect.top, rect.bottom);\n\n if (!(inX && inY)) {\n this._hide(true);\n }\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /** Opens the dialog. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this._player.playExclusive(fadeIn());\n return true;\n }\n\n /** Closes the dialog. */\n public async hide(): Promise<boolean> {\n return this._hide();\n }\n\n /** Toggles the open state of the dialog. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n\n //#endregion\n\n //#region Render methods\n\n protected _renderBackdrop() {\n return html`\n <div\n aria-hidden=${!this.open}\n part=${partMap({ backdrop: true, animating: this._animating })}\n ></div>\n `;\n }\n\n protected _renderHeader() {\n return html`\n <header part=\"title\" id=${this._titleId}>\n <slot name=\"title\">\n <span>${this.title}</span>\n </slot>\n </header>\n `;\n }\n\n protected _renderContent() {\n const hasMessage = this._slots.hasAssignedElements('message');\n return html`\n <section part=\"content\">\n <slot name=\"message\" ?hidden=${!hasMessage}></slot>\n <slot @submit=${this._handleFormSubmit}></slot>\n </section>\n `;\n }\n\n protected _renderFooter() {\n return html`\n <footer part=\"footer\">\n <slot name=\"footer\">\n ${this.hideDefaultAction\n ? nothing\n : html`\n <igc-button variant=\"flat\" @click=${() => this._hide(true)}>\n OK\n </igc-button>\n `}\n </slot>\n </footer>\n `;\n }\n\n protected override render() {\n const hasTitle = this._slots.hasAssignedElements('title') || !!this.title;\n const hasFooter =\n this._slots.hasAssignedElements('footer') || !this.hideDefaultAction;\n const labelledBy = this.ariaLabel ?? this._titleId;\n\n return html`\n ${this._renderBackdrop()}\n <dialog\n ${ref(this._dialogRef)}\n part=${partMap({ base: true, titled: hasTitle, footed: hasFooter })}\n role=\"dialog\"\n aria-label=${this.ariaLabel || nothing}\n aria-labelledby=${labelledBy || nothing}\n @click=${this._handleClick}\n @cancel=${this._handleCancel}\n >\n ${this._renderHeader()} ${this._renderContent()} ${this._renderFooter()}\n </dialog>\n `;\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n\nfunction hasSubmitter(\n submitter: SubmitEvent['submitter']\n): submitter is HTMLButtonElement | HTMLInputElement {\n return submitter != null;\n}\n"]}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.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 { partMap } from '../common/part-map.js';\nimport { numberInRangeInclusive } 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 IgcDialogComponentEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nlet nextId = 1;\n\n/* blazorAdditionalDependency: IgcButtonComponent */\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed. Cancelable.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot of the dialog.\n * @slot title - Renders content in the title slot of the dialog header.\n * @slot message - Renders the message content of the dialog.\n * @slot footer - Renders content in the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container of the dialog.\n * @csspart footer - The footer container of the dialog.\n * @csspart overlay - The backdrop overlay of the dialog.\n */\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogComponentEventMap,\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(): void {\n registerComponent(IgcDialogComponent, IgcButtonComponent);\n }\n\n //#region Private state and properties\n\n private readonly _titleId = `title-${nextId++}`;\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('title', 'message', 'footer'),\n });\n\n private readonly _dialogRef = createRef<HTMLDialogElement>();\n private readonly _player = addAnimationController(this, this._dialogRef);\n\n /**\n * Backdrop animation helper.\n */\n @state()\n private _animating = false;\n\n private get _dialog(): HTMLDialogElement {\n return this._dialogRef.value!;\n }\n\n //#endregion\n\n //#region Public properties\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 * 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 //#endregion\n\n //#region Internal API\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override firstUpdated(): void {\n if (this.open) {\n this._dialog.showModal();\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected _handleOpenState(): void {\n this.open ? this._dialog.showModal() : this._dialog.close();\n }\n\n private _emitClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n private async _hide(emitEvent = false): Promise<boolean> {\n if (!this.open || (emitEvent && !this._emitClosing())) {\n return false;\n }\n\n this._animating = true;\n await this._player.playExclusive(fadeOut());\n this.open = false;\n this._animating = false;\n\n if (emitEvent) {\n await this.updateComplete;\n this.emitEvent('igcClosed');\n }\n\n return true;\n }\n\n protected _handleFormSubmit(event: SubmitEvent): void {\n const form = event.target as HTMLFormElement;\n\n if (form.method === 'dialog') {\n if (hasSubmitter(event.submitter)) {\n this.returnValue = event.submitter.value ?? '';\n }\n\n if (!event.defaultPrevented) {\n this._hide(true);\n }\n }\n }\n\n private _handleCancel(event: Event): void {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this._hide(true);\n }\n }\n\n private _handleClick({ clientX, clientY, target }: PointerEvent): void {\n if (this.closeOnOutsideClick && this._dialog === target) {\n const rect = this._dialog.getBoundingClientRect();\n const inX = numberInRangeInclusive(clientX, rect.left, rect.right);\n const inY = numberInRangeInclusive(clientY, rect.top, rect.bottom);\n\n if (!(inX && inY)) {\n this._hide(true);\n }\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /** Opens the dialog. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this._player.playExclusive(fadeIn());\n return true;\n }\n\n /** Closes the dialog. */\n public async hide(): Promise<boolean> {\n return this._hide();\n }\n\n /** Toggles the open state of the dialog. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n\n //#endregion\n\n //#region Render methods\n\n protected _renderBackdrop() {\n return html`\n <div\n aria-hidden=${!this.open}\n part=${partMap({ backdrop: true, animating: this._animating })}\n ></div>\n `;\n }\n\n protected _renderHeader() {\n return html`\n <header part=\"title\" id=${this._titleId}>\n <slot name=\"title\">\n <span>${this.title}</span>\n </slot>\n </header>\n `;\n }\n\n protected _renderContent() {\n const hasMessage = this._slots.hasAssignedElements('message');\n return html`\n <section part=\"content\">\n <slot name=\"message\" ?hidden=${!hasMessage}></slot>\n <slot @submit=${this._handleFormSubmit}></slot>\n </section>\n `;\n }\n\n protected _renderFooter() {\n return html`\n <footer part=\"footer\">\n <slot name=\"footer\">\n ${this.hideDefaultAction\n ? nothing\n : html`\n <igc-button variant=\"flat\" @click=${() => this._hide(true)}>\n OK\n </igc-button>\n `}\n </slot>\n </footer>\n `;\n }\n\n protected override render() {\n const hasTitle = this._slots.hasAssignedElements('title') || !!this.title;\n const hasFooter =\n this._slots.hasAssignedElements('footer') || !this.hideDefaultAction;\n const labelledBy = this.ariaLabel ?? this._titleId;\n\n return html`\n ${this._renderBackdrop()}\n <dialog\n ${ref(this._dialogRef)}\n part=${partMap({ base: true, titled: hasTitle, footed: hasFooter })}\n role=\"dialog\"\n aria-label=${this.ariaLabel || nothing}\n aria-labelledby=${labelledBy || nothing}\n @click=${this._handleClick}\n @cancel=${this._handleCancel}\n >\n ${this._renderHeader()} ${this._renderContent()} ${this._renderFooter()}\n </dialog>\n `;\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n\nfunction hasSubmitter(\n submitter: SubmitEvent['submitter']\n): submitter is HTMLButtonElement | HTMLInputElement {\n return submitter != null;\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{border-style:none;padding:unset}[part~=base]{background:inherit;color:inherit;padding:inherit;border:inherit;border-style:inherit;border-radius:inherit;min-width:inherit}[part=content]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part=title],[part=footer]{display:none;align-items:center;font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=footer]{flex-wrap:nowrap;justify-content:flex-end;gap:.5rem}[part~=titled] [part=title]{display:flex}[part~=footed] [part=footer]{display:flex}::slotted(:not(igc-calendar)){font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}slot[name=title]::slotted(:last-child){margin-inline-start:.5rem}[name=message]::slotted(*){max-width:40ch;display:inline-block}dialog::backdrop{opacity:0}[part~=backdrop]{position:fixed;inset:0;z-index:10005;pointer-events:none;opacity:0;transition:opacity 350ms ease-out}:host([open]) [part=backdrop]{opacity:1}`;
2
+ export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{border-style:none;padding:unset}[part~=base]{background:inherit;color:inherit;padding:inherit;border:inherit;border-style:inherit;border-radius:inherit;min-width:inherit}[part=content]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part=title],[part=footer]{display:none;align-items:center;font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=footer]{flex-wrap:nowrap;justify-content:flex-end;gap:.5rem}[part~=titled] [part=title]{display:flex}[part~=footed] [part=footer]{display:flex}::slotted(:not(igc-calendar)){font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}slot[name=title]::slotted(:last-child){margin-inline-start:max(var(--is-large, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[name=message]::slotted(*){max-width:40ch;display:inline-block}dialog::backdrop{opacity:0}[part~=backdrop]{position:fixed;inset:0;z-index:10005;pointer-events:none;opacity:0;transition:opacity 350ms ease-out}:host([open]) [part=backdrop]{opacity:1}`;
3
3
  //# sourceMappingURL=dialog.base.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.base.css.js","sourceRoot":"","sources":["../../../../src/components/dialog/themes/dialog.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,shFAAshF,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{border-style:none;padding:unset}[part~=base]{background:inherit;color:inherit;padding:inherit;border:inherit;border-style:inherit;border-radius:inherit;min-width:inherit}[part=content]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part=title],[part=footer]{display:none;align-items:center;font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=footer]{flex-wrap:nowrap;justify-content:flex-end;gap:.5rem}[part~=titled] [part=title]{display:flex}[part~=footed] [part=footer]{display:flex}::slotted(:not(igc-calendar)){font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}slot[name=title]::slotted(:last-child){margin-inline-start:.5rem}[name=message]::slotted(*){max-width:40ch;display:inline-block}dialog::backdrop{opacity:0}[part~=backdrop]{position:fixed;inset:0;z-index:10005;pointer-events:none;opacity:0;transition:opacity 350ms ease-out}:host([open]) [part=backdrop]{opacity:1}`;\n"]}
1
+ {"version":3,"file":"dialog.base.css.js","sourceRoot":"","sources":["../../../../src/components/dialog/themes/dialog.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,+3FAA+3F,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{border-style:none;padding:unset}[part~=base]{background:inherit;color:inherit;padding:inherit;border:inherit;border-style:inherit;border-radius:inherit;min-width:inherit}[part=content]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0}[part=title],[part=footer]{display:none;align-items:center;font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=footer]{flex-wrap:nowrap;justify-content:flex-end;gap:.5rem}[part~=titled] [part=title]{display:flex}[part~=footed] [part=footer]{display:flex}::slotted(:not(igc-calendar)){font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}slot[name=title]::slotted(:last-child){margin-inline-start:max(var(--is-large, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[name=message]::slotted(*){max-width:40ch;display:inline-block}dialog::backdrop{opacity:0}[part~=backdrop]{position:fixed;inset:0;z-index:10005;pointer-events:none;opacity:0;transition:opacity 350ms ease-out}:host([open]) [part=backdrop]{opacity:1}`;\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `[part=base]{min-width:18rem;border:1px solid var(--border-color)}[part=title],[part=footer]{font-family:var(--ig-h5-font-family, var(--ig-font-family));font-size:var(--ig-h5-font-size);font-weight:var(--ig-h5-font-weight);font-style:var(--ig-h5-font-style);line-height:var(--ig-h5-line-height);letter-spacing:var(--ig-h5-letter-spacing);text-transform:var(--ig-h5-text-transform);margin-top:var(--ig-h5-margin-top);margin-bottom:var(--ig-h5-margin-bottom);margin:0;padding:1rem}[part=content]{padding:1rem}[part=title]{border-block-end:1px solid var(--border-color)}[part=footer]{border-block-start:1px solid var(--border-color)}`;
2
+ export const styles = css `[part=base]{min-width:18rem;border:1px solid var(--border-color)}[part=title],[part=footer]{font-family:var(--ig-h5-font-family, var(--ig-font-family));font-size:var(--ig-h5-font-size);font-weight:var(--ig-h5-font-weight);font-style:var(--ig-h5-font-style);line-height:var(--ig-h5-line-height);letter-spacing:var(--ig-h5-letter-spacing);text-transform:var(--ig-h5-text-transform);margin-top:var(--ig-h5-margin-top);margin-bottom:var(--ig-h5-margin-bottom);margin:0;padding:max(var(--is-large, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}[part=content]{padding:max(var(--is-large, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-large, var(--ig-spacing, var(--ig-spacing))),var(--is-medium, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-medium, var(--ig-spacing, var(--ig-spacing))),var(--is-small, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-small, var(--ig-spacing, var(--ig-spacing))))}[part=title]{border-block-end:1px solid var(--border-color)}[part=footer]{border-block-start:1px solid var(--border-color)}`;
3
3
  //# sourceMappingURL=dialog.bootstrap.css.js.map