igniteui-webcomponents 7.2.4 → 7.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1012) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/animations/player.d.ts +7 -2
  3. package/animations/player.js +2 -3
  4. package/animations/player.js.map +1 -1
  5. package/animations/view-transition.js +1 -1
  6. package/animations/view-transition.js.map +1 -1
  7. package/components/accordion/accordion.d.ts +1 -1
  8. package/components/accordion/accordion.js +11 -22
  9. package/components/accordion/accordion.js.map +1 -1
  10. package/components/avatar/avatar.d.ts +0 -1
  11. package/components/avatar/avatar.js +8 -12
  12. package/components/avatar/avatar.js.map +1 -1
  13. package/components/avatar/themes/themes.d.ts +1 -1
  14. package/components/avatar/themes/themes.js.map +1 -1
  15. package/components/badge/badge.d.ts +2 -4
  16. package/components/badge/badge.js +9 -13
  17. package/components/badge/badge.js.map +1 -1
  18. package/components/badge/themes/themes.d.ts +1 -1
  19. package/components/badge/themes/themes.js.map +1 -1
  20. package/components/banner/banner.d.ts +8 -7
  21. package/components/banner/banner.js +27 -25
  22. package/components/banner/banner.js.map +1 -1
  23. package/components/banner/themes/themes.d.ts +1 -1
  24. package/components/banner/themes/themes.js.map +1 -1
  25. package/components/button/button-base.d.ts +3 -3
  26. package/components/button/button-base.js +9 -8
  27. package/components/button/button-base.js.map +1 -1
  28. package/components/button/button.d.ts +3 -3
  29. package/components/button/button.js +2 -2
  30. package/components/button/button.js.map +1 -1
  31. package/components/button/icon-button.js +3 -3
  32. package/components/button/icon-button.js.map +1 -1
  33. package/components/button/themes/button/themes.d.ts +1 -1
  34. package/components/button/themes/button/themes.js.map +1 -1
  35. package/components/button/themes/icon-button/themes.d.ts +1 -1
  36. package/components/button/themes/icon-button/themes.js.map +1 -1
  37. package/components/button-group/button-group.d.ts +41 -21
  38. package/components/button-group/button-group.js +95 -105
  39. package/components/button-group/button-group.js.map +1 -1
  40. package/components/button-group/themes/button.d.ts +1 -1
  41. package/components/button-group/themes/button.js.map +1 -1
  42. package/components/button-group/themes/group.d.ts +1 -1
  43. package/components/button-group/themes/group.js.map +1 -1
  44. package/components/button-group/toggle-button.d.ts +17 -10
  45. package/components/button-group/toggle-button.js +28 -13
  46. package/components/button-group/toggle-button.js.map +1 -1
  47. package/components/calendar/base.d.ts +28 -19
  48. package/components/calendar/base.js +20 -44
  49. package/components/calendar/base.js.map +1 -1
  50. package/components/calendar/calendar.d.ts +38 -7
  51. package/components/calendar/calendar.js +96 -85
  52. package/components/calendar/calendar.js.map +1 -1
  53. package/components/calendar/days-view/days-view.d.ts +49 -22
  54. package/components/calendar/days-view/days-view.js +102 -163
  55. package/components/calendar/days-view/days-view.js.map +1 -1
  56. package/components/calendar/helpers.d.ts +3 -62
  57. package/components/calendar/helpers.js +6 -110
  58. package/components/calendar/helpers.js.map +1 -1
  59. package/components/calendar/months-view/months-view.d.ts +8 -22
  60. package/components/calendar/months-view/months-view.js +30 -83
  61. package/components/calendar/months-view/months-view.js.map +1 -1
  62. package/components/calendar/selection.d.ts +21 -0
  63. package/components/calendar/selection.js +42 -0
  64. package/components/calendar/selection.js.map +1 -0
  65. package/components/calendar/themes/calendar.d.ts +1 -1
  66. package/components/calendar/themes/calendar.js.map +1 -1
  67. package/components/calendar/themes/days.d.ts +1 -1
  68. package/components/calendar/themes/days.js.map +1 -1
  69. package/components/calendar/themes/year-month.d.ts +1 -1
  70. package/components/calendar/themes/year-month.js.map +1 -1
  71. package/components/calendar/types.d.ts +18 -0
  72. package/components/calendar/types.js.map +1 -1
  73. package/components/calendar/year-month-view.base.d.ts +44 -0
  74. package/components/calendar/year-month-view.base.js +89 -0
  75. package/components/calendar/year-month-view.base.js.map +1 -0
  76. package/components/calendar/years-view/years-view.d.ts +7 -20
  77. package/components/calendar/years-view/years-view.js +25 -79
  78. package/components/calendar/years-view/years-view.js.map +1 -1
  79. package/components/card/card.actions.js +2 -2
  80. package/components/card/card.actions.js.map +1 -1
  81. package/components/card/card.content.d.ts +1 -1
  82. package/components/card/card.content.js +2 -2
  83. package/components/card/card.content.js.map +1 -1
  84. package/components/card/card.d.ts +1 -1
  85. package/components/card/card.header.js +2 -2
  86. package/components/card/card.header.js.map +1 -1
  87. package/components/card/card.js +2 -2
  88. package/components/card/card.js.map +1 -1
  89. package/components/card/card.media.d.ts +1 -1
  90. package/components/card/card.media.js +1 -1
  91. package/components/card/card.media.js.map +1 -1
  92. package/components/card/themes/actions.d.ts +1 -1
  93. package/components/card/themes/actions.js.map +1 -1
  94. package/components/card/themes/container.d.ts +1 -1
  95. package/components/card/themes/container.js.map +1 -1
  96. package/components/card/themes/content.d.ts +1 -1
  97. package/components/card/themes/content.js.map +1 -1
  98. package/components/card/themes/header.d.ts +1 -1
  99. package/components/card/themes/header.js.map +1 -1
  100. package/components/carousel/animations.d.ts +1 -1
  101. package/components/carousel/animations.js +2 -2
  102. package/components/carousel/animations.js.map +1 -1
  103. package/components/carousel/carousel-indicator-container.js +4 -4
  104. package/components/carousel/carousel-indicator-container.js.map +1 -1
  105. package/components/carousel/carousel-indicator.d.ts +2 -2
  106. package/components/carousel/carousel-indicator.js +17 -17
  107. package/components/carousel/carousel-indicator.js.map +1 -1
  108. package/components/carousel/carousel-slide.d.ts +1 -3
  109. package/components/carousel/carousel-slide.js +16 -18
  110. package/components/carousel/carousel-slide.js.map +1 -1
  111. package/components/carousel/carousel.d.ts +58 -41
  112. package/components/carousel/carousel.js +170 -145
  113. package/components/carousel/carousel.js.map +1 -1
  114. package/components/carousel/themes/carousel.base.css.js +1 -1
  115. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  116. package/components/carousel/themes/container.d.ts +1 -1
  117. package/components/carousel/themes/container.js.map +1 -1
  118. package/components/carousel/themes/indicator-container.d.ts +1 -1
  119. package/components/carousel/themes/indicator-container.js.map +1 -1
  120. package/components/chat/chat-input.d.ts +4 -4
  121. package/components/chat/chat-input.js +28 -27
  122. package/components/chat/chat-input.js.map +1 -1
  123. package/components/chat/chat-message.d.ts +1 -1
  124. package/components/chat/chat-message.js +7 -6
  125. package/components/chat/chat-message.js.map +1 -1
  126. package/components/chat/chat-state.d.ts +2 -2
  127. package/components/chat/chat-state.js +2 -1
  128. package/components/chat/chat-state.js.map +1 -1
  129. package/components/chat/chat.d.ts +4 -6
  130. package/components/chat/chat.js +13 -19
  131. package/components/chat/chat.js.map +1 -1
  132. package/components/chat/message-attachments.js +5 -5
  133. package/components/chat/message-attachments.js.map +1 -1
  134. package/components/chat/themes/attachments.d.ts +1 -1
  135. package/components/chat/themes/attachments.js.map +1 -1
  136. package/components/chat/themes/input.d.ts +1 -1
  137. package/components/chat/themes/input.js.map +1 -1
  138. package/components/chat/themes/message.d.ts +1 -1
  139. package/components/chat/themes/message.js.map +1 -1
  140. package/components/chat/themes/themes.d.ts +1 -1
  141. package/components/chat/themes/themes.js.map +1 -1
  142. package/components/chat/types.d.ts +2 -2
  143. package/components/chat/types.js.map +1 -1
  144. package/components/chat/utils.d.ts +1 -1
  145. package/components/chat/utils.js +3 -3
  146. package/components/chat/utils.js.map +1 -1
  147. package/components/checkbox/checkbox-base.d.ts +7 -7
  148. package/components/checkbox/checkbox-base.js +7 -7
  149. package/components/checkbox/checkbox-base.js.map +1 -1
  150. package/components/checkbox/checkbox.d.ts +3 -5
  151. package/components/checkbox/checkbox.js +40 -50
  152. package/components/checkbox/checkbox.js.map +1 -1
  153. package/components/checkbox/switch.d.ts +1 -1
  154. package/components/checkbox/switch.js +30 -40
  155. package/components/checkbox/switch.js.map +1 -1
  156. package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
  157. package/components/checkbox/themes/checkbox-themes.js.map +1 -1
  158. package/components/checkbox/themes/switch-themes.d.ts +1 -1
  159. package/components/checkbox/themes/switch-themes.js.map +1 -1
  160. package/components/checkbox/validators.d.ts +1 -1
  161. package/components/checkbox/validators.js +1 -1
  162. package/components/checkbox/validators.js.map +1 -1
  163. package/components/chip/chip.d.ts +9 -16
  164. package/components/chip/chip.js +21 -38
  165. package/components/chip/chip.js.map +1 -1
  166. package/components/chip/themes/chip.base.css.js +1 -1
  167. package/components/chip/themes/chip.base.css.js.map +1 -1
  168. package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
  169. package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
  170. package/components/chip/themes/dark/chip.fluent.css.js +1 -1
  171. package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
  172. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  173. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  174. package/components/chip/themes/dark/chip.material.css.js +1 -1
  175. package/components/chip/themes/dark/chip.material.css.js.map +1 -1
  176. package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
  177. package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
  178. package/components/chip/themes/light/chip.fluent.css.js +1 -1
  179. package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
  180. package/components/chip/themes/light/chip.indigo.css.js +1 -1
  181. package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
  182. package/components/chip/themes/light/chip.material.css.js +1 -1
  183. package/components/chip/themes/light/chip.material.css.js.map +1 -1
  184. package/components/chip/themes/light/chip.shared.css.js +1 -1
  185. package/components/chip/themes/light/chip.shared.css.js.map +1 -1
  186. package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
  187. package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
  188. package/components/chip/themes/shared/chip.common.css.js +1 -1
  189. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  190. package/components/chip/themes/shared/chip.fluent.css.js +1 -1
  191. package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
  192. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  193. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  194. package/components/chip/themes/themes.d.ts +1 -1
  195. package/components/chip/themes/themes.js.map +1 -1
  196. package/components/combo/combo-header.js +2 -2
  197. package/components/combo/combo-header.js.map +1 -1
  198. package/components/combo/combo-item.d.ts +1 -5
  199. package/components/combo/combo-item.js +8 -18
  200. package/components/combo/combo-item.js.map +1 -1
  201. package/components/combo/combo.d.ts +89 -45
  202. package/components/combo/combo.js +244 -229
  203. package/components/combo/combo.js.map +1 -1
  204. package/components/combo/controllers/data.d.ts +30 -3
  205. package/components/combo/controllers/data.js +34 -9
  206. package/components/combo/controllers/data.js.map +1 -1
  207. package/components/combo/controllers/navigation.d.ts +8 -2
  208. package/components/combo/controllers/navigation.js +11 -12
  209. package/components/combo/controllers/navigation.js.map +1 -1
  210. package/components/combo/operations/filter.d.ts +17 -1
  211. package/components/combo/operations/filter.js +29 -9
  212. package/components/combo/operations/filter.js.map +1 -1
  213. package/components/combo/operations/group.js +1 -1
  214. package/components/combo/operations/group.js.map +1 -1
  215. package/components/combo/themes/combo.base.css.js +1 -1
  216. package/components/combo/themes/combo.base.css.js.map +1 -1
  217. package/components/combo/themes/themes.d.ts +1 -1
  218. package/components/combo/themes/themes.js.map +1 -1
  219. package/components/combo/types.d.ts +8 -4
  220. package/components/combo/types.js.map +1 -1
  221. package/components/combo/validators.d.ts +1 -1
  222. package/components/combo/validators.js.map +1 -1
  223. package/components/date-picker/date-picker.base.d.ts +297 -0
  224. package/components/date-picker/date-picker.base.js +473 -0
  225. package/components/date-picker/date-picker.base.js.map +1 -0
  226. package/components/date-picker/date-picker.d.ts +53 -174
  227. package/components/date-picker/date-picker.js +90 -403
  228. package/components/date-picker/date-picker.js.map +1 -1
  229. package/components/date-picker/themes/themes.d.ts +1 -1
  230. package/components/date-picker/themes/themes.js.map +1 -1
  231. package/components/date-picker/validators.d.ts +1 -1
  232. package/components/date-picker/validators.js +2 -2
  233. package/components/date-picker/validators.js.map +1 -1
  234. package/components/date-range-picker/date-range-input.d.ts +14 -18
  235. package/components/date-range-picker/date-range-input.js +39 -126
  236. package/components/date-range-picker/date-range-input.js.map +1 -1
  237. package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
  238. package/components/date-range-picker/date-range-mask-parser.js +38 -69
  239. package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
  240. package/components/date-range-picker/date-range-picker.d.ts +93 -190
  241. package/components/date-range-picker/date-range-picker.js +208 -543
  242. package/components/date-range-picker/date-range-picker.js.map +1 -1
  243. package/components/date-range-picker/predefined-ranges-area.d.ts +4 -4
  244. package/components/date-range-picker/predefined-ranges-area.js +8 -10
  245. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  246. package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
  247. package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
  248. package/components/date-range-picker/themes/themes.d.ts +1 -1
  249. package/components/date-range-picker/themes/themes.js.map +1 -1
  250. package/components/date-range-picker/validators.d.ts +1 -1
  251. package/components/date-range-picker/validators.js +10 -30
  252. package/components/date-range-picker/validators.js.map +1 -1
  253. package/components/date-time-input/date-part.d.ts +20 -2
  254. package/components/date-time-input/date-part.js +48 -75
  255. package/components/date-time-input/date-part.js.map +1 -1
  256. package/components/date-time-input/date-time-input.base.d.ts +101 -35
  257. package/components/date-time-input/date-time-input.base.js +142 -46
  258. package/components/date-time-input/date-time-input.base.js.map +1 -1
  259. package/components/date-time-input/date-time-input.d.ts +14 -26
  260. package/components/date-time-input/date-time-input.js +37 -90
  261. package/components/date-time-input/date-time-input.js.map +1 -1
  262. package/components/date-time-input/datetime-mask-parser.d.ts +53 -109
  263. package/components/date-time-input/datetime-mask-parser.js +93 -144
  264. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  265. package/components/date-time-input/validators.d.ts +1 -1
  266. package/components/date-time-input/validators.js +3 -14
  267. package/components/date-time-input/validators.js.map +1 -1
  268. package/components/dialog/dialog.d.ts +8 -9
  269. package/components/dialog/dialog.js +38 -44
  270. package/components/dialog/dialog.js.map +1 -1
  271. package/components/dialog/themes/themes.d.ts +1 -1
  272. package/components/dialog/themes/themes.js.map +1 -1
  273. package/components/divider/divider.d.ts +3 -5
  274. package/components/divider/divider.js +11 -20
  275. package/components/divider/divider.js.map +1 -1
  276. package/components/divider/themes/themes.d.ts +1 -1
  277. package/components/divider/themes/themes.js.map +1 -1
  278. package/components/dropdown/dropdown-group.d.ts +10 -3
  279. package/components/dropdown/dropdown-group.js +16 -5
  280. package/components/dropdown/dropdown-group.js.map +1 -1
  281. package/components/dropdown/dropdown-header.d.ts +2 -2
  282. package/components/dropdown/dropdown-header.js +7 -2
  283. package/components/dropdown/dropdown-header.js.map +1 -1
  284. package/components/dropdown/dropdown-item.d.ts +4 -4
  285. package/components/dropdown/dropdown-item.js +3 -3
  286. package/components/dropdown/dropdown-item.js.map +1 -1
  287. package/components/dropdown/dropdown.d.ts +75 -32
  288. package/components/dropdown/dropdown.js +189 -110
  289. package/components/dropdown/dropdown.js.map +1 -1
  290. package/components/dropdown/themes/container.d.ts +1 -1
  291. package/components/dropdown/themes/container.js.map +1 -1
  292. package/components/dropdown/themes/group.d.ts +1 -1
  293. package/components/dropdown/themes/group.js.map +1 -1
  294. package/components/dropdown/themes/header.d.ts +1 -1
  295. package/components/dropdown/themes/header.js.map +1 -1
  296. package/components/dropdown/themes/item.d.ts +1 -1
  297. package/components/dropdown/themes/item.js.map +1 -1
  298. package/components/expansion-panel/expansion-panel.d.ts +27 -8
  299. package/components/expansion-panel/expansion-panel.js +33 -43
  300. package/components/expansion-panel/expansion-panel.js.map +1 -1
  301. package/components/expansion-panel/themes/themes.d.ts +1 -1
  302. package/components/expansion-panel/themes/themes.js.map +1 -1
  303. package/components/file-input/file-input.d.ts +19 -23
  304. package/components/file-input/file-input.js +21 -34
  305. package/components/file-input/file-input.js.map +1 -1
  306. package/components/file-input/themes/themes.d.ts +1 -1
  307. package/components/file-input/themes/themes.js.map +1 -1
  308. package/components/file-input/validators.d.ts +1 -1
  309. package/components/file-input/validators.js +1 -1
  310. package/components/file-input/validators.js.map +1 -1
  311. package/components/focus-trap/focus-trap.js +3 -2
  312. package/components/focus-trap/focus-trap.js.map +1 -1
  313. package/components/highlight/highlight.d.ts +6 -8
  314. package/components/highlight/highlight.js +14 -22
  315. package/components/highlight/highlight.js.map +1 -1
  316. package/components/highlight/service.d.ts +4 -1
  317. package/components/highlight/service.js +23 -7
  318. package/components/highlight/service.js.map +1 -1
  319. package/components/highlight/themes/themes.d.ts +1 -1
  320. package/components/highlight/themes/themes.js.map +1 -1
  321. package/components/icon/icon-references.d.ts +3 -2
  322. package/components/icon/icon-references.js +103 -491
  323. package/components/icon/icon-references.js.map +1 -1
  324. package/components/icon/icon-state.broadcast.d.ts +14 -17
  325. package/components/icon/icon-state.broadcast.js +19 -20
  326. package/components/icon/icon-state.broadcast.js.map +1 -1
  327. package/components/icon/icon.d.ts +11 -23
  328. package/components/icon/icon.js +36 -28
  329. package/components/icon/icon.js.map +1 -1
  330. package/components/icon/icon.registry.d.ts +69 -131
  331. package/components/icon/icon.registry.js +51 -53
  332. package/components/icon/icon.registry.js.map +1 -1
  333. package/components/icon/internal-icons-lib.js +2 -2
  334. package/components/icon/internal-icons-lib.js.map +1 -1
  335. package/components/icon/registry/parser.d.ts +15 -3
  336. package/components/icon/registry/parser.js +36 -11
  337. package/components/icon/registry/parser.js.map +1 -1
  338. package/components/icon/registry/types.d.ts +55 -11
  339. package/components/icon/registry/types.js.map +1 -1
  340. package/components/icon/themes/icon.base.css.js +1 -1
  341. package/components/icon/themes/icon.base.css.js.map +1 -1
  342. package/components/icon/themes/shared/icon.common.css.js +1 -1
  343. package/components/icon/themes/shared/icon.common.css.js.map +1 -1
  344. package/components/icon/themes/themes.d.ts +1 -1
  345. package/components/icon/themes/themes.js.map +1 -1
  346. package/components/input/input-base.d.ts +10 -25
  347. package/components/input/input-base.js +14 -23
  348. package/components/input/input-base.js.map +1 -1
  349. package/components/input/input.d.ts +23 -30
  350. package/components/input/input.js +38 -69
  351. package/components/input/input.js.map +1 -1
  352. package/components/input/themes/input.base.css.js +1 -1
  353. package/components/input/themes/input.base.css.js.map +1 -1
  354. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  355. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  356. package/components/input/themes/shared/input.common.css.js +1 -1
  357. package/components/input/themes/shared/input.common.css.js.map +1 -1
  358. package/components/input/themes/shared/input.fluent.css.js +1 -1
  359. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  360. package/components/input/themes/shared/input.indigo.css.js +1 -1
  361. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  362. package/components/input/themes/shared/input.material.css.js +1 -1
  363. package/components/input/themes/shared/input.material.css.js.map +1 -1
  364. package/components/input/themes/themes.d.ts +1 -1
  365. package/components/input/themes/themes.js.map +1 -1
  366. package/components/input/validators.d.ts +1 -1
  367. package/components/input/validators.js +1 -1
  368. package/components/input/validators.js.map +1 -1
  369. package/components/list/list-header.js +3 -3
  370. package/components/list/list-header.js.map +1 -1
  371. package/components/list/list-item.js +3 -3
  372. package/components/list/list-item.js.map +1 -1
  373. package/components/list/list.js +3 -3
  374. package/components/list/list.js.map +1 -1
  375. package/components/list/themes/container.d.ts +1 -1
  376. package/components/list/themes/container.js.map +1 -1
  377. package/components/list/themes/header.d.ts +1 -1
  378. package/components/list/themes/header.js.map +1 -1
  379. package/components/list/themes/item.d.ts +1 -1
  380. package/components/list/themes/item.js.map +1 -1
  381. package/components/mask-input/mask-history.d.ts +99 -0
  382. package/components/mask-input/mask-history.js +95 -0
  383. package/components/mask-input/mask-history.js.map +1 -0
  384. package/components/mask-input/mask-input.d.ts +14 -9
  385. package/components/mask-input/mask-input.js +20 -26
  386. package/components/mask-input/mask-input.js.map +1 -1
  387. package/components/mask-input/mask-parser.d.ts +20 -2
  388. package/components/mask-input/mask-parser.js +21 -13
  389. package/components/mask-input/mask-parser.js.map +1 -1
  390. package/components/mask-input/validators.d.ts +1 -1
  391. package/components/mask-input/validators.js +1 -1
  392. package/components/mask-input/validators.js.map +1 -1
  393. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
  394. package/components/nav-drawer/nav-drawer-header-item.js +2 -2
  395. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  396. package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
  397. package/components/nav-drawer/nav-drawer-item.js +4 -4
  398. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  399. package/components/nav-drawer/nav-drawer.d.ts +10 -10
  400. package/components/nav-drawer/nav-drawer.js +23 -37
  401. package/components/nav-drawer/nav-drawer.js.map +1 -1
  402. package/components/nav-drawer/themes/container.base.css.js +1 -1
  403. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  404. package/components/nav-drawer/themes/container.d.ts +1 -1
  405. package/components/nav-drawer/themes/container.js +2 -3
  406. package/components/nav-drawer/themes/container.js.map +1 -1
  407. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
  408. package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
  409. package/components/nav-drawer/themes/header-item.d.ts +1 -1
  410. package/components/nav-drawer/themes/header-item.js.map +1 -1
  411. package/components/nav-drawer/themes/item.d.ts +1 -1
  412. package/components/nav-drawer/themes/item.js.map +1 -1
  413. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
  414. package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
  415. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
  416. package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
  417. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
  418. package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
  419. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
  420. package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
  421. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  422. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  423. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  424. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  425. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
  426. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
  427. package/components/navbar/navbar.js +2 -2
  428. package/components/navbar/navbar.js.map +1 -1
  429. package/components/navbar/themes/themes.d.ts +1 -1
  430. package/components/navbar/themes/themes.js.map +1 -1
  431. package/components/popover/popover.d.ts +10 -3
  432. package/components/popover/popover.js +114 -99
  433. package/components/popover/popover.js.map +1 -1
  434. package/components/progress/base.d.ts +5 -8
  435. package/components/progress/base.js +25 -48
  436. package/components/progress/base.js.map +1 -1
  437. package/components/progress/circular-gradient.d.ts +2 -2
  438. package/components/progress/circular-gradient.js +1 -1
  439. package/components/progress/circular-gradient.js.map +1 -1
  440. package/components/progress/circular-progress.d.ts +15 -15
  441. package/components/progress/circular-progress.js +7 -6
  442. package/components/progress/circular-progress.js.map +1 -1
  443. package/components/progress/linear-progress.d.ts +12 -12
  444. package/components/progress/linear-progress.js +4 -4
  445. package/components/progress/linear-progress.js.map +1 -1
  446. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  447. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  448. package/components/progress/themes/circular/themes.d.ts +1 -1
  449. package/components/progress/themes/circular/themes.js.map +1 -1
  450. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  451. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  452. package/components/progress/themes/linear/themes.d.ts +1 -1
  453. package/components/progress/themes/linear/themes.js.map +1 -1
  454. package/components/qr-code/model/encode.d.ts +20 -0
  455. package/components/qr-code/model/encode.js +166 -0
  456. package/components/qr-code/model/encode.js.map +1 -0
  457. package/components/qr-code/model/error-correction.d.ts +15 -0
  458. package/components/qr-code/model/error-correction.js +1114 -0
  459. package/components/qr-code/model/error-correction.js.map +1 -0
  460. package/components/qr-code/model/mask.d.ts +11 -0
  461. package/components/qr-code/model/mask.js +161 -0
  462. package/components/qr-code/model/mask.js.map +1 -0
  463. package/components/qr-code/model/matrix.d.ts +15 -0
  464. package/components/qr-code/model/matrix.js +277 -0
  465. package/components/qr-code/model/matrix.js.map +1 -0
  466. package/components/qr-code/qr-code.d.ts +134 -0
  467. package/components/qr-code/qr-code.js +222 -0
  468. package/components/qr-code/qr-code.js.map +1 -0
  469. package/components/qr-code/renderer/constants.d.ts +26 -0
  470. package/components/qr-code/renderer/constants.js +5 -0
  471. package/components/qr-code/renderer/constants.js.map +1 -0
  472. package/components/qr-code/renderer/corner.d.ts +23 -0
  473. package/components/qr-code/renderer/corner.js +25 -0
  474. package/components/qr-code/renderer/corner.js.map +1 -0
  475. package/components/qr-code/renderer/dots.d.ts +14 -0
  476. package/components/qr-code/renderer/dots.js +7 -0
  477. package/components/qr-code/renderer/dots.js.map +1 -0
  478. package/components/qr-code/renderer/helpers.d.ts +18 -0
  479. package/components/qr-code/renderer/helpers.js +158 -0
  480. package/components/qr-code/renderer/helpers.js.map +1 -0
  481. package/components/qr-code/renderer/image.d.ts +23 -0
  482. package/components/qr-code/renderer/image.js +29 -0
  483. package/components/qr-code/renderer/image.js.map +1 -0
  484. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
  485. package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
  486. package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
  487. package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
  488. package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
  489. package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
  490. package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
  491. package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
  492. package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
  493. package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
  494. package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
  495. package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
  496. package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
  497. package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
  498. package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
  499. package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
  500. package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
  501. package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
  502. package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
  503. package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
  504. package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
  505. package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
  506. package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
  507. package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
  508. package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
  509. package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
  510. package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
  511. package/components/qr-code/themes/qr-code.base.css.js +3 -0
  512. package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
  513. package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
  514. package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
  515. package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
  516. package/components/qr-code/themes/themes.d.ts +2 -0
  517. package/components/qr-code/themes/themes.js +46 -0
  518. package/components/qr-code/themes/themes.js.map +1 -0
  519. package/components/qr-code/types.d.ts +16 -0
  520. package/components/qr-code/types.js +2 -0
  521. package/components/qr-code/types.js.map +1 -0
  522. package/components/radio/controller.d.ts +7 -0
  523. package/components/radio/controller.js +14 -0
  524. package/components/radio/controller.js.map +1 -0
  525. package/components/radio/radio.d.ts +30 -18
  526. package/components/radio/radio.js +90 -89
  527. package/components/radio/radio.js.map +1 -1
  528. package/components/radio/themes/themes.d.ts +1 -1
  529. package/components/radio/themes/themes.js.map +1 -1
  530. package/components/radio/validators.d.ts +1 -1
  531. package/components/radio/validators.js +5 -3
  532. package/components/radio/validators.js.map +1 -1
  533. package/components/radio-group/radio-group.d.ts +17 -9
  534. package/components/radio-group/radio-group.js +46 -44
  535. package/components/radio-group/radio-group.js.map +1 -1
  536. package/components/radio-group/themes/themes.d.ts +1 -1
  537. package/components/radio-group/themes/themes.js.map +1 -1
  538. package/components/rating/rating-symbol.d.ts +1 -1
  539. package/components/rating/rating-symbol.js +1 -1
  540. package/components/rating/rating-symbol.js.map +1 -1
  541. package/components/rating/rating.d.ts +30 -18
  542. package/components/rating/rating.js +90 -81
  543. package/components/rating/rating.js.map +1 -1
  544. package/components/rating/themes/themes.d.ts +1 -1
  545. package/components/rating/themes/themes.js.map +1 -1
  546. package/components/resize-container/default-ghost.js +4 -3
  547. package/components/resize-container/default-ghost.js.map +1 -1
  548. package/components/resize-container/resize-container.d.ts +3 -3
  549. package/components/resize-container/resize-container.js +9 -7
  550. package/components/resize-container/resize-container.js.map +1 -1
  551. package/components/resize-container/resize-controller.js +6 -5
  552. package/components/resize-container/resize-controller.js.map +1 -1
  553. package/components/resize-container/themes/themes.d.ts +1 -1
  554. package/components/resize-container/themes/themes.js.map +1 -1
  555. package/components/ripple/ripple.d.ts +1 -1
  556. package/components/ripple/ripple.js +3 -2
  557. package/components/ripple/ripple.js.map +1 -1
  558. package/components/select/select-group.d.ts +11 -3
  559. package/components/select/select-group.js +21 -9
  560. package/components/select/select-group.js.map +1 -1
  561. package/components/select/select-header.d.ts +1 -1
  562. package/components/select/select-header.js +7 -2
  563. package/components/select/select-header.js.map +1 -1
  564. package/components/select/select-item.d.ts +4 -4
  565. package/components/select/select-item.js +3 -3
  566. package/components/select/select-item.js.map +1 -1
  567. package/components/select/select.d.ts +48 -28
  568. package/components/select/select.js +143 -94
  569. package/components/select/select.js.map +1 -1
  570. package/components/select/themes/select.base.css.js +1 -1
  571. package/components/select/themes/select.base.css.js.map +1 -1
  572. package/components/select/themes/themes.d.ts +1 -1
  573. package/components/select/themes/themes.js.map +1 -1
  574. package/components/select/validators.d.ts +1 -1
  575. package/components/select/validators.js +1 -1
  576. package/components/select/validators.js.map +1 -1
  577. package/components/slider/range-slider.d.ts +5 -4
  578. package/components/slider/range-slider.js +25 -73
  579. package/components/slider/range-slider.js.map +1 -1
  580. package/components/slider/slider-base.d.ts +9 -6
  581. package/components/slider/slider-base.js +35 -32
  582. package/components/slider/slider-base.js.map +1 -1
  583. package/components/slider/slider-label.js +1 -1
  584. package/components/slider/slider-label.js.map +1 -1
  585. package/components/slider/slider.d.ts +3 -3
  586. package/components/slider/slider.js +15 -11
  587. package/components/slider/slider.js.map +1 -1
  588. package/components/slider/themes/themes.d.ts +1 -1
  589. package/components/slider/themes/themes.js.map +1 -1
  590. package/components/snackbar/snackbar.d.ts +3 -3
  591. package/components/snackbar/snackbar.js +4 -4
  592. package/components/snackbar/snackbar.js.map +1 -1
  593. package/components/snackbar/themes/themes.d.ts +1 -1
  594. package/components/snackbar/themes/themes.js.map +1 -1
  595. package/components/splitter/splitter.d.ts +107 -24
  596. package/components/splitter/splitter.js +234 -147
  597. package/components/splitter/splitter.js.map +1 -1
  598. package/components/splitter/themes/themes.d.ts +1 -1
  599. package/components/splitter/themes/themes.js.map +1 -1
  600. package/components/splitter/types.d.ts +14 -3
  601. package/components/splitter/types.js.map +1 -1
  602. package/components/stepper/common/animations.d.ts +1 -1
  603. package/components/stepper/common/animations.js +2 -2
  604. package/components/stepper/common/animations.js.map +1 -1
  605. package/components/stepper/step.d.ts +4 -1
  606. package/components/stepper/step.js +16 -12
  607. package/components/stepper/step.js.map +1 -1
  608. package/components/stepper/stepper.d.ts +5 -16
  609. package/components/stepper/stepper.js +27 -89
  610. package/components/stepper/stepper.js.map +1 -1
  611. package/components/stepper/themes/step/themes.d.ts +1 -1
  612. package/components/stepper/themes/step/themes.js.map +1 -1
  613. package/components/tabs/tab-dom.d.ts +31 -28
  614. package/components/tabs/tab-dom.js +84 -34
  615. package/components/tabs/tab-dom.js.map +1 -1
  616. package/components/tabs/tab.d.ts +24 -6
  617. package/components/tabs/tab.js +36 -14
  618. package/components/tabs/tab.js.map +1 -1
  619. package/components/tabs/tabs.d.ts +37 -27
  620. package/components/tabs/tabs.js +118 -129
  621. package/components/tabs/tabs.js.map +1 -1
  622. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
  623. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
  624. package/components/tabs/themes/tab-themes.d.ts +1 -1
  625. package/components/tabs/themes/tab-themes.js.map +1 -1
  626. package/components/tabs/themes/tabs-themes.d.ts +1 -1
  627. package/components/tabs/themes/tabs-themes.js.map +1 -1
  628. package/components/tabs/themes/tabs.base.css.js +1 -1
  629. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  630. package/components/textarea/textarea.d.ts +24 -20
  631. package/components/textarea/textarea.js +25 -27
  632. package/components/textarea/textarea.js.map +1 -1
  633. package/components/textarea/themes/themes.d.ts +1 -1
  634. package/components/textarea/themes/themes.js.map +1 -1
  635. package/components/textarea/validators.d.ts +1 -1
  636. package/components/textarea/validators.js +1 -1
  637. package/components/textarea/validators.js.map +1 -1
  638. package/components/theme-provider/theme-provider.d.ts +3 -5
  639. package/components/theme-provider/theme-provider.js +13 -23
  640. package/components/theme-provider/theme-provider.js.map +1 -1
  641. package/components/tile-manager/position.d.ts +1 -1
  642. package/components/tile-manager/position.js +2 -2
  643. package/components/tile-manager/position.js.map +1 -1
  644. package/components/tile-manager/resize-state.js +4 -3
  645. package/components/tile-manager/resize-state.js.map +1 -1
  646. package/components/tile-manager/themes/container.d.ts +1 -1
  647. package/components/tile-manager/themes/container.js.map +1 -1
  648. package/components/tile-manager/themes/tile.d.ts +1 -1
  649. package/components/tile-manager/themes/tile.js.map +1 -1
  650. package/components/tile-manager/tile-ghost-util.js +1 -1
  651. package/components/tile-manager/tile-ghost-util.js.map +1 -1
  652. package/components/tile-manager/tile-manager.d.ts +11 -22
  653. package/components/tile-manager/tile-manager.js +50 -81
  654. package/components/tile-manager/tile-manager.js.map +1 -1
  655. package/components/tile-manager/tile.d.ts +14 -22
  656. package/components/tile-manager/tile.js +66 -80
  657. package/components/tile-manager/tile.js.map +1 -1
  658. package/components/toast/themes/themes.d.ts +1 -1
  659. package/components/toast/themes/themes.js.map +1 -1
  660. package/components/toast/toast.d.ts +1 -1
  661. package/components/toast/toast.js +3 -3
  662. package/components/toast/toast.js.map +1 -1
  663. package/components/tooltip/controller.d.ts +18 -16
  664. package/components/tooltip/controller.js +62 -41
  665. package/components/tooltip/controller.js.map +1 -1
  666. package/components/tooltip/service.d.ts +2 -1
  667. package/components/tooltip/service.js +10 -15
  668. package/components/tooltip/service.js.map +1 -1
  669. package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
  670. package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
  671. package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
  672. package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
  673. package/components/tooltip/themes/themes.d.ts +1 -1
  674. package/components/tooltip/themes/themes.js.map +1 -1
  675. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  676. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  677. package/components/tooltip/tooltip.d.ts +68 -25
  678. package/components/tooltip/tooltip.js +130 -88
  679. package/components/tooltip/tooltip.js.map +1 -1
  680. package/components/tree/themes/container.base.css.js +1 -1
  681. package/components/tree/themes/container.base.css.js.map +1 -1
  682. package/components/tree/themes/container.d.ts +1 -1
  683. package/components/tree/themes/container.js.map +1 -1
  684. package/components/tree/themes/item.base.css.js +1 -1
  685. package/components/tree/themes/item.base.css.js.map +1 -1
  686. package/components/tree/themes/item.d.ts +1 -1
  687. package/components/tree/themes/item.js.map +1 -1
  688. package/components/tree/tree-item.d.ts +62 -36
  689. package/components/tree/tree-item.js +198 -208
  690. package/components/tree/tree-item.js.map +1 -1
  691. package/components/tree/tree.common.d.ts +16 -1
  692. package/components/tree/tree.common.js +40 -1
  693. package/components/tree/tree.common.js.map +1 -1
  694. package/components/tree/tree.d.ts +17 -23
  695. package/components/tree/tree.js +68 -94
  696. package/components/tree/tree.js.map +1 -1
  697. package/components/tree/tree.navigation.d.ts +39 -29
  698. package/components/tree/tree.navigation.js +140 -192
  699. package/components/tree/tree.navigation.js.map +1 -1
  700. package/components/tree/tree.selection.d.ts +32 -31
  701. package/components/tree/tree.selection.js +184 -178
  702. package/components/tree/tree.selection.js.map +1 -1
  703. package/components/types.js.map +1 -1
  704. package/components/validation-container/validation-container.d.ts +2 -3
  705. package/components/validation-container/validation-container.js +7 -6
  706. package/components/validation-container/validation-container.js.map +1 -1
  707. package/components/virtualization/engine.d.ts +94 -0
  708. package/components/virtualization/engine.js +217 -0
  709. package/components/virtualization/engine.js.map +1 -0
  710. package/components/virtualization/types.d.ts +54 -0
  711. package/components/virtualization/types.js +14 -0
  712. package/components/virtualization/types.js.map +1 -0
  713. package/components/virtualization/virtualization.d.ts +249 -0
  714. package/components/virtualization/virtualization.js +482 -0
  715. package/components/virtualization/virtualization.js.map +1 -0
  716. package/components/visually-hidden/visually-hidden.js +1 -1
  717. package/components/visually-hidden/visually-hidden.js.map +1 -1
  718. package/custom-elements.json +50649 -38832
  719. package/extras/chat-markdown-renderer.d.ts +1 -1
  720. package/extras/chat-markdown-renderer.js.map +1 -1
  721. package/igniteui-webcomponents.css-data.json +2 -2
  722. package/igniteui-webcomponents.html-data.json +1 -1
  723. package/index.d.ts +17 -12
  724. package/index.js +11 -9
  725. package/index.js.map +1 -1
  726. package/internals/abort-handler.js.map +1 -0
  727. package/internals/context.d.ts +39 -0
  728. package/{components/common → internals}/context.js +2 -1
  729. package/internals/context.js.map +1 -0
  730. package/internals/controllers/adopt-styles.d.ts +76 -0
  731. package/internals/controllers/adopt-styles.js +173 -0
  732. package/internals/controllers/adopt-styles.js.map +1 -0
  733. package/internals/controllers/aria-projection.d.ts +144 -0
  734. package/internals/controllers/aria-projection.js +138 -0
  735. package/internals/controllers/aria-projection.js.map +1 -0
  736. package/{components/common → internals}/controllers/async-consumer.js +8 -7
  737. package/internals/controllers/async-consumer.js.map +1 -0
  738. package/internals/controllers/command.js.map +1 -0
  739. package/internals/controllers/context-provider.d.ts +48 -0
  740. package/internals/controllers/context-provider.js +29 -0
  741. package/internals/controllers/context-provider.js.map +1 -0
  742. package/{components/common → internals}/controllers/drag.js +8 -7
  743. package/internals/controllers/drag.js.map +1 -0
  744. package/{components/common → internals}/controllers/focus-ring.js +5 -2
  745. package/internals/controllers/focus-ring.js.map +1 -0
  746. package/{components/common → internals}/controllers/fullscreen.js +6 -3
  747. package/internals/controllers/fullscreen.js.map +1 -0
  748. package/{components/common → internals}/controllers/gestures.d.ts +1 -1
  749. package/{components/common → internals}/controllers/gestures.js +7 -4
  750. package/internals/controllers/gestures.js.map +1 -0
  751. package/internals/controllers/group.d.ts +64 -0
  752. package/internals/controllers/group.js +104 -0
  753. package/internals/controllers/group.js.map +1 -0
  754. package/{components/common → internals}/controllers/id-resolver.js +15 -21
  755. package/internals/controllers/id-resolver.js.map +1 -0
  756. package/{components/common → internals}/controllers/internals.d.ts +52 -3
  757. package/{components/common → internals}/controllers/internals.js +35 -0
  758. package/internals/controllers/internals.js.map +1 -0
  759. package/{components/common → internals}/controllers/key-bindings.d.ts +8 -5
  760. package/{components/common → internals}/controllers/key-bindings.js +46 -29
  761. package/internals/controllers/key-bindings.js.map +1 -0
  762. package/{components/common → internals}/controllers/mutation-observer.d.ts +3 -2
  763. package/{components/common → internals}/controllers/mutation-observer.js +24 -22
  764. package/internals/controllers/mutation-observer.js.map +1 -0
  765. package/{components/common → internals}/controllers/resize-observer.d.ts +11 -1
  766. package/{components/common → internals}/controllers/resize-observer.js +13 -2
  767. package/internals/controllers/resize-observer.js.map +1 -0
  768. package/{components/common → internals}/controllers/root-click.js +8 -13
  769. package/internals/controllers/root-click.js.map +1 -0
  770. package/{components/common → internals}/controllers/root-scroll.d.ts +11 -8
  771. package/internals/controllers/root-scroll.js +71 -0
  772. package/internals/controllers/root-scroll.js.map +1 -0
  773. package/internals/controllers/roving-focus.d.ts +72 -0
  774. package/internals/controllers/roving-focus.js +61 -0
  775. package/internals/controllers/roving-focus.js.map +1 -0
  776. package/{components/common → internals}/controllers/slot.d.ts +25 -1
  777. package/{components/common → internals}/controllers/slot.js +22 -6
  778. package/internals/controllers/slot.js.map +1 -0
  779. package/internals/controllers/toggle.d.ts +96 -0
  780. package/internals/controllers/toggle.js +65 -0
  781. package/internals/controllers/toggle.js.map +1 -0
  782. package/internals/date/compare.d.ts +2 -0
  783. package/internals/date/compare.js +23 -0
  784. package/internals/date/compare.js.map +1 -0
  785. package/internals/date/converters.d.ts +18 -0
  786. package/internals/date/converters.js +70 -0
  787. package/internals/date/converters.js.map +1 -0
  788. package/{components/calendar → internals/date}/model.d.ts +10 -3
  789. package/{components/calendar → internals/date}/model.js +29 -0
  790. package/internals/date/model.js.map +1 -0
  791. package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
  792. package/internals/decorators/blazorDeepImport.js.map +1 -0
  793. package/internals/decorators/blazorInclude.js.map +1 -0
  794. package/internals/decorators/blazorIndirectRender.js.map +1 -0
  795. package/internals/decorators/blazorSuppressComponent.js.map +1 -0
  796. package/internals/decorators/coerced-property.d.ts +47 -0
  797. package/internals/decorators/coerced-property.js +36 -0
  798. package/internals/decorators/coerced-property.js.map +1 -0
  799. package/internals/decorators/shadow-options.js.map +1 -0
  800. package/internals/definitions/defineAllComponents.js +153 -0
  801. package/internals/definitions/defineAllComponents.js.map +1 -0
  802. package/internals/definitions/defineComponents.js.map +1 -0
  803. package/internals/definitions/register.js.map +1 -0
  804. package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
  805. package/internals/i18n/EN/calendar.resources.js.map +1 -0
  806. package/internals/i18n/EN/chat.resources.js.map +1 -0
  807. package/internals/i18n/EN/date-picker.resources.js.map +1 -0
  808. package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
  809. package/{components/common → internals}/i18n/i18n-controller.d.ts +22 -3
  810. package/{components/common → internals}/i18n/i18n-controller.js +28 -6
  811. package/internals/i18n/i18n-controller.js.map +1 -0
  812. package/{components/common → internals}/i18n/utils.js +1 -1
  813. package/internals/i18n/utils.js.map +1 -0
  814. package/{components/common → internals}/mixins/alert.d.ts +3 -3
  815. package/{components/common → internals}/mixins/alert.js +8 -6
  816. package/internals/mixins/alert.js.map +1 -0
  817. package/{components/common → internals}/mixins/combo-box.d.ts +13 -14
  818. package/{components/common → internals}/mixins/combo-box.js +15 -36
  819. package/internals/mixins/combo-box.js.map +1 -0
  820. package/internals/mixins/constructor.js.map +1 -0
  821. package/internals/mixins/event-emitter.js.map +1 -0
  822. package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
  823. package/internals/mixins/forms/associated-required.js.map +1 -0
  824. package/{components/common → internals}/mixins/forms/associated.js +63 -38
  825. package/internals/mixins/forms/associated.js.map +1 -0
  826. package/{components/common → internals}/mixins/forms/form-transformers.d.ts +1 -1
  827. package/{components/common → internals}/mixins/forms/form-transformers.js +2 -2
  828. package/internals/mixins/forms/form-transformers.js.map +1 -0
  829. package/internals/mixins/forms/form-value.js.map +1 -0
  830. package/{components/common → internals}/mixins/forms/types.d.ts +25 -7
  831. package/internals/mixins/forms/types.js.map +1 -0
  832. package/internals/mixins/i18n.d.ts +31 -0
  833. package/internals/mixins/i18n.js +36 -0
  834. package/internals/mixins/i18n.js.map +1 -0
  835. package/{components/common → internals}/mixins/mask-behavior.d.ts +17 -8
  836. package/{components/common → internals}/mixins/mask-behavior.js +118 -31
  837. package/internals/mixins/mask-behavior.js.map +1 -0
  838. package/{components/common → internals}/mixins/option.d.ts +0 -2
  839. package/{components/common → internals}/mixins/option.js +5 -6
  840. package/internals/mixins/option.js.map +1 -0
  841. package/internals/part-map.js.map +1 -0
  842. package/{components/common → internals}/templates/input-shell.d.ts +8 -1
  843. package/{components/common → internals}/templates/input-shell.js +14 -4
  844. package/internals/templates/input-shell.js.map +1 -0
  845. package/{components/common → internals}/templates/masked-input.d.ts +8 -4
  846. package/{components/common → internals}/templates/masked-input.js +4 -3
  847. package/internals/templates/masked-input.js.map +1 -0
  848. package/internals/templates/slotted-icon.d.ts +32 -0
  849. package/internals/templates/slotted-icon.js +19 -0
  850. package/internals/templates/slotted-icon.js.map +1 -0
  851. package/internals/templates/toggle-shell.d.ts +46 -0
  852. package/internals/templates/toggle-shell.js +38 -0
  853. package/internals/templates/toggle-shell.js.map +1 -0
  854. package/internals/timing.d.ts +32 -0
  855. package/internals/timing.js +20 -0
  856. package/internals/timing.js.map +1 -0
  857. package/internals/utils/arrays.d.ts +53 -0
  858. package/internals/utils/arrays.js +31 -0
  859. package/internals/utils/arrays.js.map +1 -0
  860. package/internals/utils/dom.d.ts +114 -0
  861. package/internals/utils/dom.js +157 -0
  862. package/internals/utils/dom.js.map +1 -0
  863. package/internals/utils/events.d.ts +41 -0
  864. package/internals/utils/events.js +37 -0
  865. package/internals/utils/events.js.map +1 -0
  866. package/internals/utils/lit.d.ts +8 -0
  867. package/internals/utils/lit.js +15 -0
  868. package/internals/utils/lit.js.map +1 -0
  869. package/internals/utils/math.d.ts +50 -0
  870. package/internals/utils/math.js +38 -0
  871. package/internals/utils/math.js.map +1 -0
  872. package/internals/utils/objects.d.ts +25 -0
  873. package/internals/utils/objects.js +125 -0
  874. package/internals/utils/objects.js.map +1 -0
  875. package/internals/utils/strings.d.ts +44 -0
  876. package/internals/utils/strings.js +46 -0
  877. package/internals/utils/strings.js.map +1 -0
  878. package/internals/utils/types.d.ts +13 -0
  879. package/internals/utils/types.js +31 -0
  880. package/internals/utils/types.js.map +1 -0
  881. package/{components/common → internals}/validators.d.ts +24 -1
  882. package/{components/common → internals}/validators.js +25 -2
  883. package/internals/validators.js.map +1 -0
  884. package/package.json +15 -7
  885. package/themes/dark/bootstrap.css +1 -1
  886. package/themes/dark/fluent.css +1 -1
  887. package/themes/dark/indigo.css +1 -1
  888. package/themes/dark/material.css +1 -1
  889. package/themes/light/bootstrap.css +1 -1
  890. package/themes/light/fluent.css +1 -1
  891. package/themes/light/indigo.css +1 -1
  892. package/themes/light/material.css +1 -1
  893. package/theming/theming-controller.d.ts +5 -5
  894. package/theming/theming-controller.js.map +1 -1
  895. package/web-types.json +3 -3
  896. package/components/calendar/model.js.map +0 -1
  897. package/components/combo/combo-list.d.ts +0 -11
  898. package/components/combo/combo-list.js +0 -13
  899. package/components/combo/combo-list.js.map +0 -1
  900. package/components/common/abort-handler.js.map +0 -1
  901. package/components/common/context.d.ts +0 -25
  902. package/components/common/context.js.map +0 -1
  903. package/components/common/controllers/adopt-styles.d.ts +0 -124
  904. package/components/common/controllers/adopt-styles.js +0 -75
  905. package/components/common/controllers/adopt-styles.js.map +0 -1
  906. package/components/common/controllers/async-consumer.js.map +0 -1
  907. package/components/common/controllers/command.js.map +0 -1
  908. package/components/common/controllers/drag.js.map +0 -1
  909. package/components/common/controllers/focus-ring.js.map +0 -1
  910. package/components/common/controllers/fullscreen.js.map +0 -1
  911. package/components/common/controllers/gestures.js.map +0 -1
  912. package/components/common/controllers/id-resolver.js.map +0 -1
  913. package/components/common/controllers/internals.js.map +0 -1
  914. package/components/common/controllers/key-bindings.js.map +0 -1
  915. package/components/common/controllers/mutation-observer.js.map +0 -1
  916. package/components/common/controllers/resize-observer.js.map +0 -1
  917. package/components/common/controllers/root-click.js.map +0 -1
  918. package/components/common/controllers/root-scroll.js +0 -63
  919. package/components/common/controllers/root-scroll.js.map +0 -1
  920. package/components/common/controllers/slot.js.map +0 -1
  921. package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
  922. package/components/common/decorators/blazorDeepImport.js.map +0 -1
  923. package/components/common/decorators/blazorInclude.js.map +0 -1
  924. package/components/common/decorators/blazorIndirectRender.js.map +0 -1
  925. package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
  926. package/components/common/decorators/shadow-options.js.map +0 -1
  927. package/components/common/decorators/watch.d.ts +0 -5
  928. package/components/common/decorators/watch.js +0 -19
  929. package/components/common/decorators/watch.js.map +0 -1
  930. package/components/common/definitions/defineAllComponents.js +0 -151
  931. package/components/common/definitions/defineAllComponents.js.map +0 -1
  932. package/components/common/definitions/defineComponents.js.map +0 -1
  933. package/components/common/definitions/register.js.map +0 -1
  934. package/components/common/i18n/EN/calendar.resources.js.map +0 -1
  935. package/components/common/i18n/EN/chat.resources.js.map +0 -1
  936. package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
  937. package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
  938. package/components/common/i18n/i18n-controller.js.map +0 -1
  939. package/components/common/i18n/utils.js.map +0 -1
  940. package/components/common/mixins/alert.js.map +0 -1
  941. package/components/common/mixins/combo-box.js.map +0 -1
  942. package/components/common/mixins/constructor.js.map +0 -1
  943. package/components/common/mixins/event-emitter.js.map +0 -1
  944. package/components/common/mixins/forms/associated-required.js.map +0 -1
  945. package/components/common/mixins/forms/associated.js.map +0 -1
  946. package/components/common/mixins/forms/form-transformers.js.map +0 -1
  947. package/components/common/mixins/forms/form-value.js.map +0 -1
  948. package/components/common/mixins/forms/types.js.map +0 -1
  949. package/components/common/mixins/mask-behavior.js.map +0 -1
  950. package/components/common/mixins/option.js.map +0 -1
  951. package/components/common/part-map.js.map +0 -1
  952. package/components/common/templates/input-shell.js.map +0 -1
  953. package/components/common/templates/masked-input.js.map +0 -1
  954. package/components/common/util.d.ts +0 -196
  955. package/components/common/util.js +0 -390
  956. package/components/common/util.js.map +0 -1
  957. package/components/common/validators.js.map +0 -1
  958. package/components/icon/registry/default-map.d.ts +0 -107
  959. package/components/icon/registry/default-map.js +0 -25
  960. package/components/icon/registry/default-map.js.map +0 -1
  961. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
  962. package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
  963. package/components/radio/utils.d.ts +0 -13
  964. package/components/radio/utils.js +0 -37
  965. package/components/radio/utils.js.map +0 -1
  966. /package/components/{nav-drawer/themes/shared/container/nav-drawer.fluent.css.d.ts → qr-code/themes/dark/qr-code.bootstrap.css.d.ts} +0 -0
  967. /package/{components/common → internals}/abort-handler.d.ts +0 -0
  968. /package/{components/common → internals}/abort-handler.js +0 -0
  969. /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
  970. /package/{components/common → internals}/controllers/command.d.ts +0 -0
  971. /package/{components/common → internals}/controllers/command.js +0 -0
  972. /package/{components/common → internals}/controllers/drag.d.ts +0 -0
  973. /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
  974. /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
  975. /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
  976. /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
  977. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
  978. /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
  979. /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
  980. /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
  981. /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
  982. /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
  983. /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
  984. /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
  985. /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
  986. /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
  987. /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
  988. /package/{components/common → internals}/decorators/shadow-options.js +0 -0
  989. /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
  990. /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
  991. /package/{components/common → internals}/definitions/defineComponents.js +0 -0
  992. /package/{components/common → internals}/definitions/register.d.ts +0 -0
  993. /package/{components/common → internals}/definitions/register.js +0 -0
  994. /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
  995. /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
  996. /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
  997. /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
  998. /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
  999. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
  1000. /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
  1001. /package/{components/common → internals}/i18n/utils.d.ts +0 -0
  1002. /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
  1003. /package/{components/common → internals}/mixins/constructor.js +0 -0
  1004. /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
  1005. /package/{components/common → internals}/mixins/event-emitter.js +0 -0
  1006. /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
  1007. /package/{components/common → internals}/mixins/forms/associated.d.ts +0 -0
  1008. /package/{components/common → internals}/mixins/forms/form-value.d.ts +0 -0
  1009. /package/{components/common → internals}/mixins/forms/form-value.js +0 -0
  1010. /package/{components/common → internals}/mixins/forms/types.js +0 -0
  1011. /package/{components/common → internals}/part-map.d.ts +0 -0
  1012. /package/{components/common → internals}/part-map.js +0 -0
@@ -0,0 +1,473 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, nothing } from 'lit';
8
+ import { property, query } from 'lit/decorators.js';
9
+ import { ifDefined } from 'lit/directives/if-defined.js';
10
+ import { addAriaProjector } from '#internals/controllers/aria-projection.js';
11
+ import { addKeybindings, altKey, arrowDown, arrowUp, escapeKey, } from '#internals/controllers/key-bindings.js';
12
+ import { addRootClickController } from '#internals/controllers/root-click.js';
13
+ import { convertToDate } from '#internals/date/converters.js';
14
+ import { coercedProperty } from '#internals/decorators/coerced-property.js';
15
+ import { IgcComboBoxBaseLikeComponent } from '#internals/mixins/combo-box.js';
16
+ import { EventEmitterMixin } from '#internals/mixins/event-emitter.js';
17
+ import { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';
18
+ import { renderSlottedIcon } from '#internals/templates/slotted-icon.js';
19
+ import { asArray } from '#internals/utils/arrays.js';
20
+ import { addSafeEventListener, focusLeftHost, getElementFromPath, } from '#internals/utils/events.js';
21
+ import { bindIf } from '#internals/utils/lit.js';
22
+ import { equal } from '#internals/utils/objects.js';
23
+ import IgcCalendarComponent, { focusActiveDate } from '../calendar/calendar.js';
24
+ import { createDateConstraints } from '../calendar/helpers.js';
25
+ import IgcDialogComponent from '../dialog/dialog.js';
26
+ import IgcFocusTrapComponent from '../focus-trap/focus-trap.js';
27
+ import IgcIconComponent from '../icon/icon.js';
28
+ import IgcPopoverComponent from '../popover/popover.js';
29
+ import IgcValidationContainerComponent from '../validation-container/validation-container.js';
30
+ export const calendarExportParts = `header, header-title, header-date, content: calendar-content, navigation, months-navigation,
31
+ years-navigation, years-range, navigation-buttons, navigation-button, days-view-container,
32
+ days-view, months-view, years-view, days-row, months-row, years-row, label: calendar-label,
33
+ label-inner: calendar-label-inner, week-number, week-number-inner, date,
34
+ date-inner, first, last, inactive, hidden, weekend, range, special, disabled, single, preview,
35
+ month, month-inner, year, year-inner, selected, current`;
36
+ const emptyValues = [];
37
+ export const pickerDependencies = [
38
+ IgcCalendarComponent,
39
+ IgcDialogComponent,
40
+ IgcFocusTrapComponent,
41
+ IgcIconComponent,
42
+ IgcPopoverComponent,
43
+ IgcValidationContainerComponent,
44
+ ];
45
+ export class IgcDatePickerBaseComponent extends FormAssociatedRequiredMixin(EventEmitterMixin(IgcComboBoxBaseLikeComponent)) {
46
+ get _isDropDown() {
47
+ return this.mode === 'dropdown';
48
+ }
49
+ get _isMaterial() {
50
+ return this._themes.theme === 'material';
51
+ }
52
+ get _isEditorReadOnly() {
53
+ return !this._isDropDown || this.readOnly || this.nonEditable;
54
+ }
55
+ get _calendarValue() {
56
+ return null;
57
+ }
58
+ get _calendarValues() {
59
+ return null;
60
+ }
61
+ get _defaultActiveDate() {
62
+ return this._calendarValue;
63
+ }
64
+ get _calendarIconTitle() {
65
+ return undefined;
66
+ }
67
+ get _dialogLabel() {
68
+ return this._selectDateLabel;
69
+ }
70
+ get _defaultDisplayFormat() {
71
+ return undefined;
72
+ }
73
+ get _defaultInputFormat() {
74
+ return undefined;
75
+ }
76
+ _canCloseOnSelect() {
77
+ return true;
78
+ }
79
+ _handleDismiss() { }
80
+ _onBlur() { }
81
+ _onDialogClosing() { }
82
+ _syncCalendarOnToggle() { }
83
+ _commitsCalendarSelection() {
84
+ return true;
85
+ }
86
+ set displayFormat(value) {
87
+ this._displayFormat = value;
88
+ }
89
+ get displayFormat() {
90
+ return (this._displayFormat ?? this._defaultDisplayFormat);
91
+ }
92
+ set inputFormat(value) {
93
+ this._inputFormat = value;
94
+ }
95
+ get inputFormat() {
96
+ return (this._inputFormat ?? this._defaultInputFormat);
97
+ }
98
+ set locale(value) {
99
+ this._i18nController.locale = value;
100
+ }
101
+ get locale() {
102
+ return this._i18nController.locale;
103
+ }
104
+ set min(value) {
105
+ this._min = convertToDate(value);
106
+ this._setDateConstraints();
107
+ this._validate();
108
+ }
109
+ get min() {
110
+ return this._min;
111
+ }
112
+ set max(value) {
113
+ this._max = convertToDate(value);
114
+ this._setDateConstraints();
115
+ this._validate();
116
+ }
117
+ get max() {
118
+ return this._max;
119
+ }
120
+ set activeDate(value) {
121
+ this._activeDate = convertToDate(value);
122
+ }
123
+ get activeDate() {
124
+ return this._activeDate ?? this._calendar?.activeDate;
125
+ }
126
+ set visibleMonths(value) {
127
+ this._visibleMonths = value;
128
+ }
129
+ get visibleMonths() {
130
+ return this._visibleMonths;
131
+ }
132
+ constructor() {
133
+ super();
134
+ this._oldValue = null;
135
+ this._activeDate = null;
136
+ this._min = null;
137
+ this._max = null;
138
+ this._dateConstraints = [];
139
+ this._visibleMonths = 1;
140
+ this._rootClickController = addRootClickController(this, { onHide: this._handleClosing });
141
+ this.mode = 'dropdown';
142
+ this.readOnly = false;
143
+ this.nonEditable = false;
144
+ this.outlined = false;
145
+ this.prompt = '_';
146
+ this.disabledDates = [];
147
+ this.headerOrientation = 'horizontal';
148
+ this.orientation = 'horizontal';
149
+ this.hideHeader = false;
150
+ this.hideOutsideDays = false;
151
+ this.showWeekNumbers = false;
152
+ this.weekStart = 'sunday';
153
+ addAriaProjector(this, {
154
+ target: () => this._projectionTarget,
155
+ state: () => ({
156
+ hasPopup: 'dialog',
157
+ labelledBy: this._internals.labels,
158
+ describedBy: this._helperText ? [this._helperText] : null,
159
+ }),
160
+ });
161
+ addSafeEventListener(this, 'focusout', this._handleFocusOut);
162
+ addKeybindings(this, {
163
+ skip: () => this.disabled || this.readOnly,
164
+ })
165
+ .set([altKey, arrowDown], this._handleAnchorClick)
166
+ .set([altKey, arrowUp], this._onEscapeKey)
167
+ .set(escapeKey, this._onEscapeKey);
168
+ }
169
+ willUpdate(changedProperties) {
170
+ super.willUpdate(changedProperties);
171
+ if (changedProperties.has('open')) {
172
+ this._rootClickController.update();
173
+ if (this.open) {
174
+ this._oldValue = this._value;
175
+ }
176
+ }
177
+ }
178
+ _setDateConstraints() {
179
+ this._dateConstraints =
180
+ createDateConstraints(this._min, this._max, this.disabledDates) ?? [];
181
+ }
182
+ async _shouldCloseCalendarDropdown() {
183
+ if (this.keepOpenOnSelect || !this._canCloseOnSelect()) {
184
+ return;
185
+ }
186
+ if (await this._hide(true)) {
187
+ this._focusAndSelectInput();
188
+ }
189
+ }
190
+ _setCalendarActiveDate(...dates) {
191
+ if (this._calendar) {
192
+ this._calendar.activeDate =
193
+ dates.find(Boolean) ?? this._calendar.activeDate;
194
+ }
195
+ }
196
+ async _restoreCalendarSelection() {
197
+ await this._calendar.updateComplete;
198
+ if (this._calendarSelection === 'single') {
199
+ this._calendar.value = this._calendarValue;
200
+ }
201
+ else {
202
+ this._calendar.values = this._calendarValues ?? emptyValues;
203
+ }
204
+ }
205
+ _emitChangeIfDirty() {
206
+ if (!equal(this._value, this._oldValue)) {
207
+ this.emitEvent('igcChange', { detail: this._value });
208
+ this._oldValue = this._value;
209
+ }
210
+ }
211
+ clear() {
212
+ this._oldValue = this._value;
213
+ this._value = null;
214
+ this._clearEditors();
215
+ }
216
+ async _onEscapeKey() {
217
+ if (await this._hide(true)) {
218
+ this._handleDismiss();
219
+ this._focusInput();
220
+ }
221
+ }
222
+ async _handleAnchorClick() {
223
+ super._handleAnchorClick();
224
+ this._syncCalendarOnToggle();
225
+ await this.updateComplete;
226
+ this._calendar[focusActiveDate]({ preventScroll: true });
227
+ }
228
+ _handleInputClick(event) {
229
+ if (getElementFromPath('input', event)) {
230
+ this._handleAnchorClick();
231
+ }
232
+ }
233
+ _handleCalendarIconSlotPointerDown(event) {
234
+ event.preventDefault();
235
+ }
236
+ _handleFocusOut(event) {
237
+ if (focusLeftHost(this, event)) {
238
+ this._handleBlur();
239
+ this._onBlur();
240
+ }
241
+ }
242
+ _handleClosing() {
243
+ this._hide(true);
244
+ }
245
+ async _handleCalendarChangeEvent(event) {
246
+ event.stopPropagation();
247
+ this._setTouchedState();
248
+ if (this.readOnly) {
249
+ await this._restoreCalendarSelection();
250
+ return;
251
+ }
252
+ this._value = this._valueFromCalendarSelection(asArray(event.detail));
253
+ if (this._commitsCalendarSelection()) {
254
+ this.emitEvent('igcChange', { detail: this._value });
255
+ }
256
+ this._shouldCloseCalendarDropdown();
257
+ }
258
+ _handleDialogClosing(event) {
259
+ event.stopPropagation();
260
+ this._onDialogClosing();
261
+ this._hide(true);
262
+ }
263
+ _handleDialogClosed(event) {
264
+ event.stopPropagation();
265
+ }
266
+ _renderClearIcon(part = 'clear-icon') {
267
+ return this._hasValue
268
+ ? html `
269
+ <span
270
+ slot="suffix"
271
+ part=${part}
272
+ @click=${bindIf(!this.readOnly, this.clear)}
273
+ >
274
+ ${renderSlottedIcon({ slot: part, icon: 'input_clear' })}
275
+ </span>
276
+ `
277
+ : nothing;
278
+ }
279
+ _renderCalendarIcon(suffix = '') {
280
+ const part = `${this.open ? 'calendar-icon-open' : 'calendar-icon'}${suffix}`;
281
+ return html `
282
+ <span
283
+ slot="prefix"
284
+ part=${part}
285
+ @pointerdown=${this._handleCalendarIconSlotPointerDown}
286
+ @click=${bindIf(!this.readOnly, this._handleAnchorClick)}
287
+ >
288
+ ${renderSlottedIcon({
289
+ slot: part,
290
+ icon: 'today',
291
+ title: this._calendarIconTitle,
292
+ })}
293
+ </span>
294
+ `;
295
+ }
296
+ _renderEditorSlots(suffix = '') {
297
+ const prefixSlot = `prefix${suffix}`;
298
+ const suffixSlot = `suffix${suffix}`;
299
+ return html `
300
+ ${this._renderCalendarIcon(suffix)}
301
+ <slot
302
+ name=${prefixSlot}
303
+ slot=${bindIf(this._slots.hasAssignedElements(prefixSlot), 'prefix')}
304
+ ></slot>
305
+ ${this._renderClearIcon(`clear-icon${suffix}`)}
306
+ <slot
307
+ name=${suffixSlot}
308
+ slot=${bindIf(this._slots.hasAssignedElements(suffixSlot), 'suffix')}
309
+ ></slot>
310
+ `;
311
+ }
312
+ _renderCalendarSlots() {
313
+ if (this._isDropDown) {
314
+ return nothing;
315
+ }
316
+ const hasHeaderDate = this._slots.hasAssignedElements('header-date');
317
+ return html `
318
+ <slot name="title" slot="title">${this._selectDateLabel}</slot>
319
+ <slot
320
+ name="header-date"
321
+ slot=${bindIf(hasHeaderDate, 'header-date')}
322
+ ></slot>
323
+ `;
324
+ }
325
+ _renderCalendar(id) {
326
+ const hideHeader = this._isDropDown ? true : this.hideHeader;
327
+ const isInert = !this.open || this.disabled;
328
+ return html `
329
+ <igc-calendar
330
+ aria-labelledby=${id}
331
+ role="dialog"
332
+ selection=${this._calendarSelection}
333
+ .inert=${isInert}
334
+ ?show-week-numbers=${this.showWeekNumbers}
335
+ ?hide-outside-days=${this.hideOutsideDays}
336
+ ?hide-header=${hideHeader}
337
+ .activeDate=${this.activeDate ?? this._defaultActiveDate}
338
+ .value=${this._calendarValue}
339
+ .values=${this._calendarValues ?? emptyValues}
340
+ .headerOrientation=${this.headerOrientation}
341
+ .orientation=${this.orientation}
342
+ .visibleMonths=${this._visibleMonths}
343
+ .locale=${this.locale}
344
+ .disabledDates=${this._dateConstraints}
345
+ .specialDates=${this.specialDates}
346
+ .weekStart=${this.weekStart}
347
+ @igcChange=${this._handleCalendarChangeEvent}
348
+ exportparts=${calendarExportParts}
349
+ >
350
+ ${this._renderCalendarSlots()}
351
+ </igc-calendar>
352
+ `;
353
+ }
354
+ _renderActions() {
355
+ const hasActions = this._slots.hasAssignedElements('actions');
356
+ return html `
357
+ <div
358
+ part="actions"
359
+ ?hidden=${!hasActions}
360
+ slot=${bindIf(!this._isDropDown && hasActions, 'footer')}
361
+ >
362
+ <slot name="actions"></slot>
363
+ </div>
364
+ `;
365
+ }
366
+ _renderPickerContent(id) {
367
+ return html `${this._renderCalendar(id)}${this._renderActions()}`;
368
+ }
369
+ _renderDialogFooter() {
370
+ return nothing;
371
+ }
372
+ _renderPicker(id) {
373
+ const isDisabled = !this.open || this.disabled;
374
+ return this._isDropDown
375
+ ? html `
376
+ <igc-popover ?open=${this.open} anchor=${id} flip shift>
377
+ <igc-focus-trap ?disabled=${isDisabled}>
378
+ ${this._renderPickerContent(id)}
379
+ </igc-focus-trap>
380
+ </igc-popover>
381
+ `
382
+ : html `
383
+ <igc-dialog
384
+ aria-label=${ifDefined(this._dialogLabel)}
385
+ role="dialog"
386
+ ?open=${this.open}
387
+ ?close-on-outside-click=${!this.keepOpenOnOutsideClick}
388
+ hide-default-action
389
+ @igcClosing=${this._handleDialogClosing}
390
+ @igcClosed=${this._handleDialogClosed}
391
+ exportparts="base: dialog-base, title, footer, overlay"
392
+ >
393
+ ${this._renderPickerContent(id)}${this._renderDialogFooter()}
394
+ </igc-dialog>
395
+ `;
396
+ }
397
+ }
398
+ __decorate([
399
+ query(IgcCalendarComponent.tagName)
400
+ ], IgcDatePickerBaseComponent.prototype, "_calendar", void 0);
401
+ __decorate([
402
+ query('#helper-text')
403
+ ], IgcDatePickerBaseComponent.prototype, "_helperText", void 0);
404
+ __decorate([
405
+ property()
406
+ ], IgcDatePickerBaseComponent.prototype, "mode", void 0);
407
+ __decorate([
408
+ property({ type: Boolean, reflect: true, attribute: 'readonly' })
409
+ ], IgcDatePickerBaseComponent.prototype, "readOnly", void 0);
410
+ __decorate([
411
+ property({ type: Boolean, reflect: true, attribute: 'non-editable' })
412
+ ], IgcDatePickerBaseComponent.prototype, "nonEditable", void 0);
413
+ __decorate([
414
+ property({ type: Boolean, reflect: true })
415
+ ], IgcDatePickerBaseComponent.prototype, "outlined", void 0);
416
+ __decorate([
417
+ property()
418
+ ], IgcDatePickerBaseComponent.prototype, "label", void 0);
419
+ __decorate([
420
+ property()
421
+ ], IgcDatePickerBaseComponent.prototype, "prompt", void 0);
422
+ __decorate([
423
+ property({ attribute: 'display-format' })
424
+ ], IgcDatePickerBaseComponent.prototype, "displayFormat", null);
425
+ __decorate([
426
+ property({ attribute: 'input-format' })
427
+ ], IgcDatePickerBaseComponent.prototype, "inputFormat", null);
428
+ __decorate([
429
+ property()
430
+ ], IgcDatePickerBaseComponent.prototype, "locale", null);
431
+ __decorate([
432
+ property({ converter: convertToDate })
433
+ ], IgcDatePickerBaseComponent.prototype, "min", null);
434
+ __decorate([
435
+ property({ converter: convertToDate })
436
+ ], IgcDatePickerBaseComponent.prototype, "max", null);
437
+ __decorate([
438
+ property({ attribute: false }),
439
+ coercedProperty({
440
+ onChange: ({ host }) => {
441
+ host._setDateConstraints();
442
+ host._validate();
443
+ },
444
+ })
445
+ ], IgcDatePickerBaseComponent.prototype, "disabledDates", void 0);
446
+ __decorate([
447
+ property({ attribute: false })
448
+ ], IgcDatePickerBaseComponent.prototype, "specialDates", void 0);
449
+ __decorate([
450
+ property({ attribute: 'active-date', converter: convertToDate })
451
+ ], IgcDatePickerBaseComponent.prototype, "activeDate", null);
452
+ __decorate([
453
+ property({ type: Number, attribute: 'visible-months' })
454
+ ], IgcDatePickerBaseComponent.prototype, "visibleMonths", null);
455
+ __decorate([
456
+ property({ attribute: 'header-orientation', reflect: true })
457
+ ], IgcDatePickerBaseComponent.prototype, "headerOrientation", void 0);
458
+ __decorate([
459
+ property()
460
+ ], IgcDatePickerBaseComponent.prototype, "orientation", void 0);
461
+ __decorate([
462
+ property({ type: Boolean, reflect: true, attribute: 'hide-header' })
463
+ ], IgcDatePickerBaseComponent.prototype, "hideHeader", void 0);
464
+ __decorate([
465
+ property({ type: Boolean, reflect: true, attribute: 'hide-outside-days' })
466
+ ], IgcDatePickerBaseComponent.prototype, "hideOutsideDays", void 0);
467
+ __decorate([
468
+ property({ type: Boolean, reflect: true, attribute: 'show-week-numbers' })
469
+ ], IgcDatePickerBaseComponent.prototype, "showWeekNumbers", void 0);
470
+ __decorate([
471
+ property({ attribute: 'week-start' })
472
+ ], IgcDatePickerBaseComponent.prototype, "weekStart", void 0);
473
+ //# sourceMappingURL=date-picker.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.base.js","sourceRoot":"","sources":["../../../src/components/date-picker/date-picker.base.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, type PropertyValues, type TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addAriaProjector } from '#internals/controllers/aria-projection.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n escapeKey,\n} from '#internals/controllers/key-bindings.js';\nimport { addRootClickController } from '#internals/controllers/root-click.js';\nimport { convertToDate } from '#internals/date/converters.js';\nimport { coercedProperty } from '#internals/decorators/coerced-property.js';\nimport { IgcComboBoxBaseLikeComponent } from '#internals/mixins/combo-box.js';\nimport type { AbstractConstructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';\nimport { renderSlottedIcon } from '#internals/templates/slotted-icon.js';\nimport { asArray } from '#internals/utils/arrays.js';\nimport {\n addSafeEventListener,\n focusLeftHost,\n getElementFromPath,\n} from '#internals/utils/events.js';\nimport { bindIf } from '#internals/utils/lit.js';\nimport { equal } from '#internals/utils/objects.js';\nimport type { ThemingController } from '#theming/theming-controller.js';\nimport IgcCalendarComponent, { focusActiveDate } from '../calendar/calendar.js';\nimport { createDateConstraints } from '../calendar/helpers.js';\nimport type {\n CalendarHeaderOrientation,\n CalendarSelection,\n DateRangeDescriptor,\n WeekDays,\n} from '../calendar/types.js';\nimport IgcDialogComponent from '../dialog/dialog.js';\nimport IgcFocusTrapComponent from '../focus-trap/focus-trap.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport IgcPopoverComponent from '../popover/popover.js';\nimport type {\n ContentOrientation,\n DateRangeValue,\n PickerMode,\n} from '../types.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\n\n/**\n * The events emitted by a picker driven by a calendar.\n * `T` is the value type of the picker - a single date or a date range.\n */\nexport interface IgcPickerBaseEventMap<T> {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<T | null>;\n igcInput: CustomEvent<T | null>;\n}\n\n/** The parts of the calendar which the pickers re-export to their own consumers. */\nexport const calendarExportParts =\n `header, header-title, header-date, content: calendar-content, navigation, months-navigation,\n years-navigation, years-range, navigation-buttons, navigation-button, days-view-container,\n days-view, months-view, years-view, days-row, months-row, years-row, label: calendar-label,\n label-inner: calendar-label-inner, week-number, week-number-inner, date,\n date-inner, first, last, inactive, hidden, weekend, range, special, disabled, single, preview,\n month, month-inner, year, year-inner, selected, current` as const;\n\n/** Stable identity for \"no range\", so that the calendar binding is committed only once. */\nconst emptyValues: Date[] = [];\n\n/** The components rendered by the picker chrome of every picker. */\nexport const pickerDependencies = [\n IgcCalendarComponent,\n IgcDialogComponent,\n IgcFocusTrapComponent,\n IgcIconComponent,\n IgcPopoverComponent,\n IgcValidationContainerComponent,\n];\n\n/**\n * The subset of the slot controller which the base picker queries.\n * Kept structural so that each picker can declare its own set of slot names.\n */\ntype PickerSlots = {\n hasAssignedElements(slot: string): boolean;\n};\n\n/* blazorIndirectRender */\n/* omitModule */\n/**\n * Common behavior for the pickers which drive an `igc-calendar` from an editor -\n * {@link IgcDatePickerComponent} and {@link IgcDateRangePickerComponent}.\n *\n * It owns the calendar and editor facing properties, the open/close plumbing and the\n * picker chrome - calendar, popover/dialog, icons and actions. The value itself, its\n * form state and the editors are left to the concrete pickers.\n */\nexport abstract class IgcDatePickerBaseComponent<\n T extends Date | DateRangeValue,\n> extends FormAssociatedRequiredMixin(\n EventEmitterMixin<\n IgcPickerBaseEventMap<Date | DateRangeValue>,\n AbstractConstructor<IgcComboBoxBaseLikeComponent>\n >(IgcComboBoxBaseLikeComponent)\n) {\n //#region Internal state and properties\n\n protected _oldValue: T | null = null;\n\n protected _activeDate: Date | null = null;\n protected _min: Date | null = null;\n protected _max: Date | null = null;\n protected _dateConstraints: DateRangeDescriptor[] = [];\n protected _displayFormat?: string;\n protected _inputFormat?: string;\n protected _visibleMonths = 1;\n\n protected override readonly _rootClickController = addRootClickController(\n this,\n { onHide: this._handleClosing }\n );\n\n @query(IgcCalendarComponent.tagName)\n protected readonly _calendar!: IgcCalendarComponent;\n\n @query('#helper-text')\n protected readonly _helperText!: IgcValidationContainerComponent | null;\n\n protected get _isDropDown(): boolean {\n return this.mode === 'dropdown';\n }\n\n protected get _isMaterial(): boolean {\n return this._themes.theme === 'material';\n }\n\n /** Dialog mode is always read-only, the rest depends on the configuration. */\n protected get _isEditorReadOnly(): boolean {\n return !this._isDropDown || this.readOnly || this.nonEditable;\n }\n\n //#endregion\n\n //#region Abstract members\n\n /** The id of the editor the picker is anchored to. */\n protected abstract readonly _inputId: string;\n\n /** The slots of the concrete picker. */\n protected abstract readonly _slots: PickerSlots;\n\n /** The theming controller of the concrete picker. */\n protected abstract readonly _themes: ThemingController;\n\n /**\n * The localization controller of the concrete picker.\n * Only the locale is shared - the resource strings differ per picker.\n */\n protected abstract readonly _i18nController: { locale: string };\n\n /**\n * The current value of the picker.\n *\n * The public `value` is declared by the concrete pickers, since its type,\n * converter and form state differ between them.\n */\n protected abstract get _value(): T | null;\n protected abstract set _value(value: T | null);\n\n /** Clears any user input left in the editor(s) of the picker. */\n protected abstract _clearEditors(): void;\n\n /** Whether the picker holds a value. */\n protected abstract get _hasValue(): boolean;\n\n /** The selection mode of the underlying calendar. */\n protected abstract get _calendarSelection(): CalendarSelection;\n\n /** The localized label of the calendar picker. */\n protected abstract get _selectDateLabel(): string | undefined;\n\n /**\n * The editor the host's ARIA state is projected onto - its associated\n * labels and the `aria-haspopup=\"dialog\"` semantics of the picker, both of\n * which must land on the native input assistive technology reports.\n */\n protected abstract get _projectionTarget(): Element | null;\n\n /** Moves focus to the editor of the picker. */\n protected abstract _focusInput(): void;\n\n /** Restores focus to the editor after a value has been selected in the calendar. */\n protected abstract _focusAndSelectInput(): void;\n\n /**\n * Resolves the value of the picker from the dates selected in the calendar, which come\n * in ascending order.\n */\n protected abstract _valueFromCalendarSelection(dates: Date[]): T | null;\n\n //#endregion\n\n //#region Overridable hooks\n\n /** The value reflected in the calendar when it is in single selection mode. */\n protected get _calendarValue(): Date | null {\n return null;\n }\n\n /** The values reflected in the calendar when it is in range selection mode. */\n protected get _calendarValues(): Date[] | null {\n return null;\n }\n\n /**\n * Seeds the active date of the calendar on the initial render, when the picker holds\n * a value but no explicit active date. From then on the calendar owns its active date\n * and `activeDate` reads it back, so this is consulted once.\n */\n protected get _defaultActiveDate(): Date | null {\n return this._calendarValue;\n }\n\n /** The title of the calendar icon, if the picker provides one. */\n protected get _calendarIconTitle(): string | undefined {\n return undefined;\n }\n\n /** The accessible name of the picker in dialog mode. */\n protected get _dialogLabel(): string | undefined {\n return this._selectDateLabel;\n }\n\n /** The format the editor(s) fall back to when no display format is set. */\n protected get _defaultDisplayFormat(): string | undefined {\n return undefined;\n }\n\n /** The format the editor(s) fall back to when no input format is set. */\n protected get _defaultInputFormat(): string | undefined {\n return undefined;\n }\n\n /** Whether the current calendar selection is complete enough to close the picker. */\n protected _canCloseOnSelect(): boolean {\n return true;\n }\n\n /** Invoked when the picker is dismissed through the Escape key. */\n protected _handleDismiss(): void {}\n\n /** Invoked when focus has left the picker for good. */\n protected _onBlur(): void {}\n\n /** Invoked when the dialog of the picker is closing, before the picker is hidden. */\n protected _onDialogClosing(): void {}\n\n /** Invoked when the picker is toggled, before the update is awaited. */\n protected _syncCalendarOnToggle(): void {}\n\n /** Whether a selection made in the calendar commits the value of the picker right away. */\n protected _commitsCalendarSelection(): boolean {\n return true;\n }\n\n //#endregion\n\n //#region Public properties and attributes\n\n /**\n * Determines whether the calendar is opened in a dropdown or a modal dialog.\n * @attr mode\n * @default dropdown\n */\n @property()\n public mode: PickerMode = 'dropdown';\n\n /**\n * Makes the control a readonly field.\n * @attr readonly\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'readonly' })\n public readOnly = false;\n\n /**\n * Whether to allow typing in the input.\n * @attr non-editable\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'non-editable' })\n public nonEditable = false;\n\n /**\n * Whether the control will have outlined appearance.\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The label of the picker.\n * @attr label\n */\n @property()\n public label!: string;\n\n /**\n * The prompt symbol to use for unfilled parts of the mask.\n * @attr\n * @default _\n */\n @property()\n public prompt = '_';\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the locale format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public set displayFormat(value: string) {\n this._displayFormat = value;\n }\n\n public get displayFormat(): string {\n return (this._displayFormat ?? this._defaultDisplayFormat)!;\n }\n\n /**\n * The date format to apply on the input.\n * Defaults to the current locale Intl.DateTimeFormat\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public set inputFormat(value: string) {\n this._inputFormat = value;\n }\n\n public get inputFormat(): string {\n return (this._inputFormat ?? this._defaultInputFormat)!;\n }\n\n /**\n * The locale used to format the display value and to resolve the\n * component's resource strings. Falls back to the global locale when not set.\n * @attr locale\n */\n @property()\n public set locale(value: string) {\n this._i18nController.locale = value;\n }\n\n public get locale(): string {\n return this._i18nController.locale;\n }\n\n /**\n * The minimum value required for the picker 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._setDateConstraints();\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 picker 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._setDateConstraints();\n this._validate();\n }\n\n public get max(): Date | null {\n return this._max;\n }\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n @coercedProperty<DateRangeDescriptor[], IgcDatePickerBaseComponent<T>>({\n onChange: ({ host }) => {\n host._setDateConstraints();\n host._validate();\n },\n })\n public disabledDates: DateRangeDescriptor[] = [];\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n /**\n * Gets/Sets the date which is shown in the calendar picker and is highlighted.\n * By default it is the current date.\n */\n @property({ attribute: 'active-date', converter: convertToDate })\n public set activeDate(value: Date | string | null | undefined) {\n this._activeDate = convertToDate(value);\n }\n\n public get activeDate(): Date {\n return this._activeDate ?? this._calendar?.activeDate;\n }\n\n /**\n * The number of months displayed in the calendar.\n * @attr visible-months\n * @default 1\n */\n @property({ type: Number, attribute: 'visible-months' })\n public set visibleMonths(value: number) {\n this._visibleMonths = value;\n }\n\n public get visibleMonths(): number {\n return this._visibleMonths;\n }\n\n /**\n * The orientation of the calendar header.\n * @attr header-orientation\n * @default horizontal\n */\n @property({ attribute: 'header-orientation', reflect: true })\n public headerOrientation: CalendarHeaderOrientation = 'horizontal';\n\n /**\n * The orientation of the multiple months displayed in the calendar's days view.\n * @attr\n * @default horizontal\n */\n @property()\n public orientation: ContentOrientation = 'horizontal';\n\n /**\n * Determines whether the calendar hides its header.\n * @attr hide-header\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-header' })\n public hideHeader = false;\n\n /**\n * Controls the visibility of the dates that do not belong to the current month.\n * @attr hide-outside-days\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-outside-days' })\n public hideOutsideDays = false;\n\n /**\n * Whether to show the number of the week in the calendar.\n * @attr show-week-numbers\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'show-week-numbers' })\n public showWeekNumbers = false;\n\n /** Sets the start day of the week for the calendar. */\n @property({ attribute: 'week-start' })\n public weekStart: WeekDays = 'sunday';\n\n //#endregion\n\n //#region Life-cycle hooks\n\n constructor() {\n super();\n\n // Projects the host's labels and popup semantics onto the native input\n // inside the editor (see ProjectedARIA for why the host cannot publish\n // these itself).\n addAriaProjector(this, {\n target: () => this._projectionTarget,\n state: () => ({\n hasPopup: 'dialog',\n labelledBy: this._internals.labels,\n describedBy: this._helperText ? [this._helperText] : null,\n }),\n });\n\n addSafeEventListener(this, 'focusout', this._handleFocusOut);\n\n addKeybindings(this, {\n skip: () => this.disabled || this.readOnly,\n })\n .set([altKey, arrowDown], this._handleAnchorClick)\n .set([altKey, arrowUp], this._onEscapeKey)\n .set(escapeKey, this._onEscapeKey);\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n super.willUpdate(changedProperties);\n\n if (changedProperties.has('open')) {\n this._rootClickController.update();\n\n if (this.open) {\n this._oldValue = this._value;\n }\n }\n }\n\n //#endregion\n\n //#region Internal API\n\n protected _setDateConstraints(): void {\n this._dateConstraints =\n createDateConstraints(this._min, this._max, this.disabledDates) ?? [];\n }\n\n protected async _shouldCloseCalendarDropdown(): Promise<void> {\n if (this.keepOpenOnSelect || !this._canCloseOnSelect()) {\n return;\n }\n\n if (await this._hide(true)) {\n this._focusAndSelectInput();\n }\n }\n\n /**\n * Points the calendar at the first defined of `dates`, keeping its current\n * active date when none is. A no-op until the calendar is rendered.\n */\n protected _setCalendarActiveDate(\n ...dates: (Date | null | undefined)[]\n ): void {\n if (this._calendar) {\n this._calendar.activeDate =\n dates.find(Boolean) ?? this._calendar.activeDate;\n }\n }\n\n /**\n * Pushes the value of the picker back onto the calendar, which a read-only picker has\n * to do directly - the binding is left with nothing to re-commit.\n */\n protected async _restoreCalendarSelection(): Promise<void> {\n await this._calendar.updateComplete;\n\n if (this._calendarSelection === 'single') {\n this._calendar.value = this._calendarValue;\n } else {\n this._calendar.values = this._calendarValues ?? emptyValues;\n }\n }\n\n /** Emits `igcChange` if the value has moved away from the last committed one. */\n protected _emitChangeIfDirty(): void {\n if (!equal(this._value, this._oldValue)) {\n this.emitEvent('igcChange', { detail: this._value });\n this._oldValue = this._value;\n }\n }\n\n //#endregion\n\n //#region Public methods\n\n /** Clears the editor(s) of the picker of any user input. */\n public clear(): void {\n this._oldValue = this._value;\n this._value = null;\n this._clearEditors();\n }\n\n //#endregion\n\n //#region Event handlers\n\n protected async _onEscapeKey(): Promise<void> {\n if (await this._hide(true)) {\n this._handleDismiss();\n this._focusInput();\n }\n }\n\n protected override async _handleAnchorClick(): Promise<void> {\n super._handleAnchorClick();\n this._syncCalendarOnToggle();\n await this.updateComplete;\n this._calendar[focusActiveDate]({ preventScroll: true });\n }\n\n protected _handleInputClick(event: Event): void {\n if (getElementFromPath('input', event)) {\n // Open only if the click originates from the underlying input\n this._handleAnchorClick();\n }\n }\n\n protected _handleCalendarIconSlotPointerDown(event: PointerEvent): void {\n // Keeps the `delegatesFocus` of the host from focusing the editor, which would enter\n // an invalid state on blur as focus moves on to the calendar.\n event.preventDefault();\n }\n\n protected _handleFocusOut(event: FocusEvent): void {\n if (focusLeftHost(this, event)) {\n this._handleBlur();\n this._onBlur();\n }\n }\n\n protected _handleClosing(): void {\n this._hide(true);\n }\n\n protected async _handleCalendarChangeEvent(\n event: CustomEvent<Date | Date[]>\n ): Promise<void> {\n event.stopPropagation();\n this._setTouchedState();\n\n if (this.readOnly) {\n await this._restoreCalendarSelection();\n return;\n }\n\n this._value = this._valueFromCalendarSelection(asArray(event.detail));\n\n if (this._commitsCalendarSelection()) {\n this.emitEvent('igcChange', { detail: this._value });\n }\n\n this._shouldCloseCalendarDropdown();\n }\n\n protected _handleDialogClosing(event: Event): void {\n event.stopPropagation();\n this._onDialogClosing();\n this._hide(true);\n }\n\n protected _handleDialogClosed(event: Event): void {\n event.stopPropagation();\n }\n\n //#endregion\n\n //#region Rendering\n\n protected _renderClearIcon(part = 'clear-icon') {\n return this._hasValue\n ? html`\n <span\n slot=\"suffix\"\n part=${part}\n @click=${bindIf(!this.readOnly, this.clear)}\n >\n ${renderSlottedIcon({ slot: part, icon: 'input_clear' })}\n </span>\n `\n : nothing;\n }\n\n protected _renderCalendarIcon(suffix = '') {\n const part = `${this.open ? 'calendar-icon-open' : 'calendar-icon'}${suffix}`;\n\n return html`\n <span\n slot=\"prefix\"\n part=${part}\n @pointerdown=${this._handleCalendarIconSlotPointerDown}\n @click=${bindIf(!this.readOnly, this._handleAnchorClick)}\n >\n ${renderSlottedIcon({\n slot: part,\n icon: 'today',\n title: this._calendarIconTitle,\n })}\n </span>\n `;\n }\n\n /**\n * The content projected into an editor of the picker - its icons and prefix/suffix slots.\n *\n * The suffix distinguishes the editors of a picker which renders more than one,\n * e.g. `-start` and `-end`.\n */\n protected _renderEditorSlots(suffix = '') {\n const prefixSlot = `prefix${suffix}`;\n const suffixSlot = `suffix${suffix}`;\n\n return html`\n ${this._renderCalendarIcon(suffix)}\n <slot\n name=${prefixSlot}\n slot=${bindIf(this._slots.hasAssignedElements(prefixSlot), 'prefix')}\n ></slot>\n ${this._renderClearIcon(`clear-icon${suffix}`)}\n <slot\n name=${suffixSlot}\n slot=${bindIf(this._slots.hasAssignedElements(suffixSlot), 'suffix')}\n ></slot>\n `;\n }\n\n protected _renderCalendarSlots() {\n if (this._isDropDown) {\n return nothing;\n }\n\n const hasHeaderDate = this._slots.hasAssignedElements('header-date');\n\n return html`\n <slot name=\"title\" slot=\"title\">${this._selectDateLabel}</slot>\n <slot\n name=\"header-date\"\n slot=${bindIf(hasHeaderDate, 'header-date')}\n ></slot>\n `;\n }\n\n protected _renderCalendar(id: string) {\n const hideHeader = this._isDropDown ? true : this.hideHeader;\n const isInert = !this.open || this.disabled;\n\n return html`\n <igc-calendar\n aria-labelledby=${id}\n role=\"dialog\"\n selection=${this._calendarSelection}\n .inert=${isInert}\n ?show-week-numbers=${this.showWeekNumbers}\n ?hide-outside-days=${this.hideOutsideDays}\n ?hide-header=${hideHeader}\n .activeDate=${this.activeDate ?? this._defaultActiveDate}\n .value=${this._calendarValue}\n .values=${this._calendarValues ?? emptyValues}\n .headerOrientation=${this.headerOrientation}\n .orientation=${this.orientation}\n .visibleMonths=${this._visibleMonths}\n .locale=${this.locale}\n .disabledDates=${this._dateConstraints}\n .specialDates=${this.specialDates}\n .weekStart=${this.weekStart}\n @igcChange=${this._handleCalendarChangeEvent}\n exportparts=${calendarExportParts}\n >\n ${this._renderCalendarSlots()}\n </igc-calendar>\n `;\n }\n\n protected _renderActions() {\n const hasActions = this._slots.hasAssignedElements('actions');\n\n // If in dialog mode use the dialog footer slot\n return html`\n <div\n part=\"actions\"\n ?hidden=${!hasActions}\n slot=${bindIf(!this._isDropDown && hasActions, 'footer')}\n >\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n /** The content rendered inside the popover/dialog of the picker. */\n protected _renderPickerContent(id: string) {\n return html`${this._renderCalendar(id)}${this._renderActions()}`;\n }\n\n /** Additional content rendered in the dialog of the picker. */\n protected _renderDialogFooter(): TemplateResult | typeof nothing {\n return nothing;\n }\n\n protected _renderPicker(id: string) {\n const isDisabled = !this.open || this.disabled;\n\n return this._isDropDown\n ? html`\n <igc-popover ?open=${this.open} anchor=${id} flip shift>\n <igc-focus-trap ?disabled=${isDisabled}>\n ${this._renderPickerContent(id)}\n </igc-focus-trap>\n </igc-popover>\n `\n : html`\n <igc-dialog\n aria-label=${ifDefined(this._dialogLabel)}\n role=\"dialog\"\n ?open=${this.open}\n ?close-on-outside-click=${!this.keepOpenOnOutsideClick}\n hide-default-action\n @igcClosing=${this._handleDialogClosing}\n @igcClosed=${this._handleDialogClosed}\n exportparts=\"base: dialog-base, title, footer, overlay\"\n >\n ${this._renderPickerContent(id)}${this._renderDialogFooter()}\n </igc-dialog>\n `;\n }\n\n //#endregion\n}\n"]}