igniteui-webcomponents 7.3.1 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/CHANGELOG.md +72 -1
  2. package/animations/easings.d.ts +21 -31
  3. package/animations/easings.js +21 -34
  4. package/animations/easings.js.map +1 -1
  5. package/animations/player.d.ts +8 -16
  6. package/animations/player.js +5 -8
  7. package/animations/player.js.map +1 -1
  8. package/animations/view-transition.d.ts +10 -10
  9. package/animations/view-transition.js +26 -37
  10. package/animations/view-transition.js.map +1 -1
  11. package/components/avatar/themes/avatar.base.css.js +1 -1
  12. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  13. package/components/badge/themes/badge.base.css.js +1 -1
  14. package/components/badge/themes/badge.base.css.js.map +1 -1
  15. package/components/banner/themes/banner.base.css.js +1 -1
  16. package/components/banner/themes/banner.base.css.js.map +1 -1
  17. package/components/banner/themes/shared/banner.indigo.css.js +1 -1
  18. package/components/banner/themes/shared/banner.indigo.css.js.map +1 -1
  19. package/components/breadcrumb/breadcrumb.d.ts +74 -0
  20. package/components/breadcrumb/breadcrumb.js +107 -0
  21. package/components/breadcrumb/breadcrumb.js.map +1 -0
  22. package/components/breadcrumb/breadcrumbs.d.ts +60 -0
  23. package/components/breadcrumb/breadcrumbs.js +50 -0
  24. package/components/breadcrumb/breadcrumbs.js.map +1 -0
  25. package/components/breadcrumb/themes/breadcrumb.base.css.d.ts +1 -0
  26. package/components/breadcrumb/themes/breadcrumb.base.css.js +3 -0
  27. package/components/breadcrumb/themes/breadcrumb.base.css.js.map +1 -0
  28. package/components/breadcrumb/themes/breadcrumbs.base.css.d.ts +1 -0
  29. package/components/breadcrumb/themes/breadcrumbs.base.css.js +3 -0
  30. package/components/breadcrumb/themes/breadcrumbs.base.css.js.map +1 -0
  31. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.d.ts +1 -0
  32. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.js +3 -0
  33. package/components/breadcrumb/themes/dark/breadcrumb.bootstrap.css.js.map +1 -0
  34. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.d.ts +1 -0
  35. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.js +3 -0
  36. package/components/breadcrumb/themes/dark/breadcrumb.fluent.css.js.map +1 -0
  37. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.d.ts +1 -0
  38. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.js +3 -0
  39. package/components/breadcrumb/themes/dark/breadcrumb.indigo.css.js.map +1 -0
  40. package/components/breadcrumb/themes/dark/breadcrumb.material.css.d.ts +1 -0
  41. package/components/breadcrumb/themes/dark/breadcrumb.material.css.js +3 -0
  42. package/components/breadcrumb/themes/dark/breadcrumb.material.css.js.map +1 -0
  43. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.d.ts +1 -0
  44. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.js +3 -0
  45. package/components/breadcrumb/themes/light/breadcrumb.bootstrap.css.js.map +1 -0
  46. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.d.ts +1 -0
  47. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.js +3 -0
  48. package/components/breadcrumb/themes/light/breadcrumb.fluent.css.js.map +1 -0
  49. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.d.ts +1 -0
  50. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.js +3 -0
  51. package/components/breadcrumb/themes/light/breadcrumb.indigo.css.js.map +1 -0
  52. package/components/breadcrumb/themes/light/breadcrumb.material.css.d.ts +1 -0
  53. package/components/breadcrumb/themes/light/breadcrumb.material.css.js +3 -0
  54. package/components/breadcrumb/themes/light/breadcrumb.material.css.js.map +1 -0
  55. package/components/breadcrumb/themes/light/breadcrumb.shared.css.d.ts +1 -0
  56. package/components/breadcrumb/themes/light/breadcrumb.shared.css.js +3 -0
  57. package/components/breadcrumb/themes/light/breadcrumb.shared.css.js.map +1 -0
  58. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.d.ts +1 -0
  59. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.js +3 -0
  60. package/components/breadcrumb/themes/shared/breadcrumb.bootstrap.css.js.map +1 -0
  61. package/components/breadcrumb/themes/shared/breadcrumb.common.css.d.ts +1 -0
  62. package/components/breadcrumb/themes/shared/breadcrumb.common.css.js +3 -0
  63. package/components/breadcrumb/themes/shared/breadcrumb.common.css.js.map +1 -0
  64. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.d.ts +1 -0
  65. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.js +3 -0
  66. package/components/breadcrumb/themes/shared/breadcrumb.fluent.css.js.map +1 -0
  67. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.d.ts +1 -0
  68. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.js +3 -0
  69. package/components/breadcrumb/themes/shared/breadcrumb.indigo.css.js.map +1 -0
  70. package/components/breadcrumb/themes/shared/breadcrumb.material.css.d.ts +1 -0
  71. package/components/breadcrumb/themes/shared/breadcrumb.material.css.js +3 -0
  72. package/components/breadcrumb/themes/shared/breadcrumb.material.css.js.map +1 -0
  73. package/components/breadcrumb/themes/themes.d.ts +2 -0
  74. package/components/breadcrumb/themes/themes.js +50 -0
  75. package/components/breadcrumb/themes/themes.js.map +1 -0
  76. package/components/button/button.d.ts +0 -2
  77. package/components/button/button.js.map +1 -1
  78. package/components/button-group/button-group.d.ts +42 -12
  79. package/components/button-group/button-group.js +82 -34
  80. package/components/button-group/button-group.js.map +1 -1
  81. package/components/button-group/toggle-button.d.ts +6 -1
  82. package/components/button-group/toggle-button.js +28 -2
  83. package/components/button-group/toggle-button.js.map +1 -1
  84. package/components/calendar/base.d.ts +7 -2
  85. package/components/calendar/base.js +10 -4
  86. package/components/calendar/base.js.map +1 -1
  87. package/components/calendar/calendar.d.ts +6 -3
  88. package/components/calendar/calendar.js +41 -14
  89. package/components/calendar/calendar.js.map +1 -1
  90. package/components/calendar/days-view/days-view.d.ts +5 -8
  91. package/components/calendar/days-view/days-view.js +7 -16
  92. package/components/calendar/days-view/days-view.js.map +1 -1
  93. package/components/calendar/helpers.d.ts +13 -0
  94. package/components/calendar/helpers.js +15 -0
  95. package/components/calendar/helpers.js.map +1 -1
  96. package/components/calendar/themes/calendar.base.css.js +1 -1
  97. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  98. package/components/calendar/themes/days-view.base.css.js +1 -1
  99. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  100. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js +1 -1
  101. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js.map +1 -1
  102. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
  103. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
  104. package/components/calendar/themes/shared/fluent/days-view.fluent.css.js +1 -1
  105. package/components/calendar/themes/shared/fluent/days-view.fluent.css.js.map +1 -1
  106. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js +1 -1
  107. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js.map +1 -1
  108. package/components/calendar/themes/shared/indigo/days-view.indigo.css.js +1 -1
  109. package/components/calendar/themes/shared/indigo/days-view.indigo.css.js.map +1 -1
  110. package/components/calendar/themes/shared/material/days-view.material.css.js +1 -1
  111. package/components/calendar/themes/shared/material/days-view.material.css.js.map +1 -1
  112. package/components/calendar/themes/year-month-view.base.css.js +1 -1
  113. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  114. package/components/card/themes/container.base.css.js +1 -1
  115. package/components/card/themes/container.base.css.js.map +1 -1
  116. package/components/carousel/carousel-indicator.js +1 -0
  117. package/components/carousel/carousel-indicator.js.map +1 -1
  118. package/components/carousel/carousel-slide.d.ts +1 -1
  119. package/components/carousel/carousel-slide.js.map +1 -1
  120. package/components/carousel/carousel.d.ts +3 -3
  121. package/components/carousel/carousel.js.map +1 -1
  122. package/components/carousel/themes/carousel.base.css.js +1 -1
  123. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  124. package/components/carousel/themes/shared/carousel.indigo.css.js +1 -1
  125. package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -1
  126. package/components/chat/chat-input.d.ts +1 -2
  127. package/components/chat/chat-input.js +1 -1
  128. package/components/chat/chat-input.js.map +1 -1
  129. package/components/chat/chat-state.d.ts +8 -9
  130. package/components/chat/chat-state.js.map +1 -1
  131. package/components/chat/chat.d.ts +1 -3
  132. package/components/chat/chat.js +2 -2
  133. package/components/chat/chat.js.map +1 -1
  134. package/components/chat/message-attachments.d.ts +6 -15
  135. package/components/chat/message-attachments.js.map +1 -1
  136. package/components/chat/themes/chat.base.css.js +1 -1
  137. package/components/chat/themes/chat.base.css.js.map +1 -1
  138. package/components/chat/themes/message.base.css.js +1 -1
  139. package/components/chat/themes/message.base.css.js.map +1 -1
  140. package/components/chat/utils.d.ts +0 -1
  141. package/components/chat/utils.js +1 -1
  142. package/components/chat/utils.js.map +1 -1
  143. package/components/checkbox/checkbox-base.d.ts +1 -1
  144. package/components/checkbox/checkbox.js +1 -1
  145. package/components/checkbox/checkbox.js.map +1 -1
  146. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  147. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  148. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  149. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  150. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  151. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  152. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
  153. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
  154. package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
  155. package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
  156. package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
  157. package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
  158. package/components/checkbox/themes/shared/switch/switch.material.css.js +1 -1
  159. package/components/checkbox/themes/shared/switch/switch.material.css.js.map +1 -1
  160. package/components/checkbox/themes/switch.base.css.js +1 -1
  161. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  162. package/components/chip/chip.d.ts +2 -2
  163. package/components/chip/chip.js.map +1 -1
  164. package/components/color-picker/color-picker.d.ts +35 -34
  165. package/components/color-picker/color-picker.js +9 -4
  166. package/components/color-picker/color-picker.js.map +1 -1
  167. package/components/color-picker/common.d.ts +0 -2
  168. package/components/color-picker/common.js +2 -2
  169. package/components/color-picker/common.js.map +1 -1
  170. package/components/color-picker/converters.js.map +1 -1
  171. package/components/color-picker/picker-canvas.js.map +1 -1
  172. package/components/color-picker/themes/color-picker.base.css.js +1 -1
  173. package/components/color-picker/themes/color-picker.base.css.js.map +1 -1
  174. package/components/combo/combo.d.ts +18 -20
  175. package/components/combo/combo.js +8 -2
  176. package/components/combo/combo.js.map +1 -1
  177. package/components/combo/controllers/data.d.ts +7 -10
  178. package/components/combo/controllers/data.js.map +1 -1
  179. package/components/combo/themes/combo-item.base.css.js +1 -1
  180. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  181. package/components/combo/themes/combo.base.css.js +1 -1
  182. package/components/combo/themes/combo.base.css.js.map +1 -1
  183. package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
  184. package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
  185. package/components/date-picker/date-picker.base.d.ts +33 -29
  186. package/components/date-picker/date-picker.base.js +15 -4
  187. package/components/date-picker/date-picker.base.js.map +1 -1
  188. package/components/date-picker/date-picker.d.ts +1 -1
  189. package/components/date-picker/date-picker.js +5 -3
  190. package/components/date-picker/date-picker.js.map +1 -1
  191. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  192. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  193. package/components/date-range-picker/date-range-input.d.ts +0 -2
  194. package/components/date-range-picker/date-range-input.js +0 -6
  195. package/components/date-range-picker/date-range-input.js.map +1 -1
  196. package/components/date-range-picker/date-range-picker.base.css.js +1 -1
  197. package/components/date-range-picker/date-range-picker.base.css.js.map +1 -1
  198. package/components/date-range-picker/date-range-picker.d.ts +22 -31
  199. package/components/date-range-picker/date-range-picker.js +7 -7
  200. package/components/date-range-picker/date-range-picker.js.map +1 -1
  201. package/components/date-range-picker/i18n.d.ts +21 -0
  202. package/components/date-range-picker/i18n.js +10 -0
  203. package/components/date-range-picker/i18n.js.map +1 -0
  204. package/components/date-range-picker/predefined-ranges-area.base.css.js +1 -1
  205. package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -1
  206. package/components/date-range-picker/predefined-ranges-area.d.ts +3 -3
  207. package/components/date-range-picker/predefined-ranges-area.js +2 -5
  208. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  209. package/components/date-range-picker/validators.d.ts +0 -4
  210. package/components/date-range-picker/validators.js +4 -4
  211. package/components/date-range-picker/validators.js.map +1 -1
  212. package/components/date-time-input/date-time-input.base.d.ts +39 -37
  213. package/components/date-time-input/date-time-input.base.js +6 -0
  214. package/components/date-time-input/date-time-input.base.js.map +1 -1
  215. package/components/date-time-input/date-time-input.d.ts +1 -11
  216. package/components/date-time-input/date-time-input.js +0 -6
  217. package/components/date-time-input/date-time-input.js.map +1 -1
  218. package/components/date-time-input/datetime-mask-parser.d.ts +0 -10
  219. package/components/date-time-input/datetime-mask-parser.js +1 -1
  220. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  221. package/components/dialog/dialog.js.map +1 -1
  222. package/components/divider/themes/divider.base.css.js +1 -1
  223. package/components/divider/themes/divider.base.css.js.map +1 -1
  224. package/components/dropdown/dropdown-group.d.ts +2 -10
  225. package/components/dropdown/dropdown-group.js +2 -27
  226. package/components/dropdown/dropdown-group.js.map +1 -1
  227. package/components/dropdown/dropdown.d.ts +17 -23
  228. package/components/dropdown/dropdown.js +5 -17
  229. package/components/dropdown/dropdown.js.map +1 -1
  230. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  231. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  232. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  233. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  234. package/components/file-input/file-input.d.ts +2 -2
  235. package/components/file-input/file-input.js.map +1 -1
  236. package/components/file-input/themes/file-input.base.css.js +1 -1
  237. package/components/file-input/themes/file-input.base.css.js.map +1 -1
  238. package/components/file-input/themes/shared/file-input.bootstrap.css.js +1 -1
  239. package/components/file-input/themes/shared/file-input.bootstrap.css.js.map +1 -1
  240. package/components/icon/icon.d.ts +1 -1
  241. package/components/icon/icon.registry.d.ts +6 -6
  242. package/components/icon/icon.registry.js.map +1 -1
  243. package/components/input/input.d.ts +3 -3
  244. package/components/input/input.js.map +1 -1
  245. package/components/input/themes/shared/input.indigo.css.js +1 -1
  246. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  247. package/components/input/themes/shared/input.material.css.js +1 -1
  248. package/components/input/themes/shared/input.material.css.js.map +1 -1
  249. package/components/list/themes/item.base.css.js +1 -1
  250. package/components/list/themes/item.base.css.js.map +1 -1
  251. package/components/mask-input/mask-history.d.ts +22 -18
  252. package/components/mask-input/mask-history.js.map +1 -1
  253. package/components/mask-input/mask-input.d.ts +1 -1
  254. package/components/mask-input/mask-parser.d.ts +11 -13
  255. package/components/mask-input/mask-parser.js.map +1 -1
  256. package/components/nav-drawer/themes/item.base.css.js +1 -1
  257. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  258. package/components/popover/popover.d.ts +45 -34
  259. package/components/popover/popover.js +54 -122
  260. package/components/popover/popover.js.map +1 -1
  261. package/components/popover/position/arrow.d.ts +19 -0
  262. package/components/popover/position/arrow.js +33 -0
  263. package/components/popover/position/arrow.js.map +1 -0
  264. package/components/popover/position/floating.d.ts +40 -0
  265. package/components/popover/position/floating.js +146 -0
  266. package/components/popover/position/floating.js.map +1 -0
  267. package/components/popover/position/native.d.ts +45 -0
  268. package/components/popover/position/native.js +158 -0
  269. package/components/popover/position/native.js.map +1 -0
  270. package/components/popover/position/strategy.d.ts +37 -0
  271. package/components/popover/position/strategy.js +21 -0
  272. package/components/popover/position/strategy.js.map +1 -0
  273. package/components/popover/position/types.d.ts +26 -0
  274. package/components/popover/position/types.js +15 -0
  275. package/components/popover/position/types.js.map +1 -0
  276. package/components/popover/themes/light/popover.base.css.js +1 -1
  277. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  278. package/components/progress/circular-progress.d.ts +0 -5
  279. package/components/progress/circular-progress.js.map +1 -1
  280. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  281. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  282. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.d.ts +1 -0
  283. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js +3 -0
  284. package/components/progress/themes/linear/shared/linear.progress.bootstrap.css.js.map +1 -0
  285. package/components/progress/themes/linear/themes.js +3 -2
  286. package/components/progress/themes/linear/themes.js.map +1 -1
  287. package/components/qr-code/qr-code.d.ts +29 -2
  288. package/components/qr-code/qr-code.js +56 -13
  289. package/components/qr-code/qr-code.js.map +1 -1
  290. package/components/qr-code/renderer/export.d.ts +28 -0
  291. package/components/qr-code/renderer/export.js +120 -0
  292. package/components/qr-code/renderer/export.js.map +1 -0
  293. package/components/qr-code/types.d.ts +26 -0
  294. package/components/qr-code/types.js.map +1 -1
  295. package/components/radio/radio.d.ts +4 -4
  296. package/components/radio/radio.js +17 -14
  297. package/components/radio/radio.js.map +1 -1
  298. package/components/radio/themes/radio.base.css.js +1 -1
  299. package/components/radio/themes/radio.base.css.js.map +1 -1
  300. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  301. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  302. package/components/radio/themes/shared/radio.indigo.css.js +1 -1
  303. package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
  304. package/components/radio-group/radio-group.js.map +1 -1
  305. package/components/rating/rating.d.ts +6 -6
  306. package/components/rating/rating.js.map +1 -1
  307. package/components/select/select-group.d.ts +5 -10
  308. package/components/select/select-group.js +10 -34
  309. package/components/select/select-group.js.map +1 -1
  310. package/components/select/select.d.ts +12 -20
  311. package/components/select/select.js +4 -14
  312. package/components/select/select.js.map +1 -1
  313. package/components/select/themes/select.base.css.js +1 -1
  314. package/components/select/themes/select.base.css.js.map +1 -1
  315. package/components/select/themes/shared/select.bootstrap.css.js +1 -1
  316. package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
  317. package/components/slider/themes/shared/slider.material.css.js +1 -1
  318. package/components/slider/themes/shared/slider.material.css.js.map +1 -1
  319. package/components/slider/themes/slider.base.css.js +1 -1
  320. package/components/slider/themes/slider.base.css.js.map +1 -1
  321. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  322. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  323. package/components/splitter/splitter.d.ts +6 -6
  324. package/components/splitter/splitter.js.map +1 -1
  325. package/components/splitter/themes/splitter.base.css.js +1 -1
  326. package/components/splitter/themes/splitter.base.css.js.map +1 -1
  327. package/components/stepper/themes/step/step.base.css.js +1 -1
  328. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  329. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js +1 -1
  330. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js.map +1 -1
  331. package/components/tabs/themes/shared/tab/tab.fluent.css.js +1 -1
  332. package/components/tabs/themes/shared/tab/tab.fluent.css.js.map +1 -1
  333. package/components/tabs/themes/shared/tab/tab.indigo.css.js +1 -1
  334. package/components/tabs/themes/shared/tab/tab.indigo.css.js.map +1 -1
  335. package/components/tabs/themes/shared/tab/tab.material.css.js +1 -1
  336. package/components/tabs/themes/shared/tab/tab.material.css.js.map +1 -1
  337. package/components/tabs/themes/shared/tabs/tabs.fluent.css.js +1 -1
  338. package/components/tabs/themes/shared/tabs/tabs.fluent.css.js.map +1 -1
  339. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
  340. package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
  341. package/components/tabs/themes/shared/tabs/tabs.material.css.js +1 -1
  342. package/components/tabs/themes/shared/tabs/tabs.material.css.js.map +1 -1
  343. package/components/tabs/themes/tab.base.css.js +1 -1
  344. package/components/tabs/themes/tab.base.css.js.map +1 -1
  345. package/components/textarea/textarea.d.ts +1 -1
  346. package/components/textarea/textarea.js.map +1 -1
  347. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  348. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  349. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  350. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  351. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  352. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  353. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  354. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  355. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  356. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  357. package/components/tile-manager/themes/tile.base.css.js +1 -1
  358. package/components/tile-manager/themes/tile.base.css.js.map +1 -1
  359. package/components/tile-manager/tile-manager.d.ts +6 -7
  360. package/components/tile-manager/tile-manager.js.map +1 -1
  361. package/components/tile-manager/tile.d.ts +3 -3
  362. package/components/tile-manager/tile.js.map +1 -1
  363. package/components/toast/themes/toast.base.css.js +1 -1
  364. package/components/toast/themes/toast.base.css.js.map +1 -1
  365. package/components/toast/toast.d.ts +0 -2
  366. package/components/toast/toast.js.map +1 -1
  367. package/components/tooltip/controller.js.map +1 -1
  368. package/components/tooltip/service.js +4 -5
  369. package/components/tooltip/service.js.map +1 -1
  370. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  371. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  372. package/components/tooltip/tooltip.d.ts +34 -13
  373. package/components/tooltip/tooltip.js +8 -4
  374. package/components/tooltip/tooltip.js.map +1 -1
  375. package/components/tree/themes/item.base.css.js +1 -1
  376. package/components/tree/themes/item.base.css.js.map +1 -1
  377. package/components/tree/tree-item.d.ts +6 -6
  378. package/components/tree/tree-item.js.map +1 -1
  379. package/components/tree/tree.navigation.d.ts +5 -6
  380. package/components/tree/tree.navigation.js.map +1 -1
  381. package/components/tree/tree.selection.js.map +1 -1
  382. package/components/types.d.ts +1 -1
  383. package/components/types.js.map +1 -1
  384. package/components/validation-container/themes/validator.base.css.js +1 -1
  385. package/components/validation-container/themes/validator.base.css.js.map +1 -1
  386. package/components/validation-container/validation-container.d.ts +10 -12
  387. package/components/validation-container/validation-container.js +14 -17
  388. package/components/validation-container/validation-container.js.map +1 -1
  389. package/components/virtualization/engine.d.ts +5 -5
  390. package/components/virtualization/engine.js.map +1 -1
  391. package/components/virtualization/virtualization.d.ts +61 -63
  392. package/components/virtualization/virtualization.js +6 -5
  393. package/components/virtualization/virtualization.js.map +1 -1
  394. package/custom-elements.json +16769 -19698
  395. package/igniteui-webcomponents.css-data.json +2 -2
  396. package/igniteui-webcomponents.html-data.json +1 -1
  397. package/index.d.ts +3 -1
  398. package/index.js +2 -0
  399. package/index.js.map +1 -1
  400. package/internals/abort-handler.d.ts +13 -25
  401. package/internals/abort-handler.js +4 -6
  402. package/internals/abort-handler.js.map +1 -1
  403. package/internals/context.d.ts +13 -7
  404. package/internals/context.js +2 -1
  405. package/internals/context.js.map +1 -1
  406. package/internals/controllers/adopt-styles.d.ts +19 -20
  407. package/internals/controllers/adopt-styles.js +3 -8
  408. package/internals/controllers/adopt-styles.js.map +1 -1
  409. package/internals/controllers/aria-projection.d.ts +56 -55
  410. package/internals/controllers/aria-projection.js +14 -15
  411. package/internals/controllers/aria-projection.js.map +1 -1
  412. package/internals/controllers/async-consumer.js.map +1 -1
  413. package/internals/controllers/command.d.ts +15 -30
  414. package/internals/controllers/command.js +2 -7
  415. package/internals/controllers/command.js.map +1 -1
  416. package/internals/controllers/context-provider.d.ts +7 -13
  417. package/internals/controllers/context-provider.js.map +1 -1
  418. package/internals/controllers/focus-ring.d.ts +10 -30
  419. package/internals/controllers/focus-ring.js +6 -12
  420. package/internals/controllers/focus-ring.js.map +1 -1
  421. package/internals/controllers/fullscreen.d.ts +7 -23
  422. package/internals/controllers/fullscreen.js +3 -9
  423. package/internals/controllers/fullscreen.js.map +1 -1
  424. package/internals/controllers/gestures.d.ts +10 -29
  425. package/internals/controllers/gestures.js +1 -3
  426. package/internals/controllers/gestures.js.map +1 -1
  427. package/internals/controllers/group.d.ts +13 -30
  428. package/internals/controllers/group.js.map +1 -1
  429. package/internals/controllers/host-listeners.d.ts +28 -0
  430. package/internals/controllers/host-listeners.js +27 -0
  431. package/internals/controllers/host-listeners.js.map +1 -0
  432. package/internals/controllers/id-resolver.d.ts +8 -9
  433. package/internals/controllers/id-resolver.js +6 -14
  434. package/internals/controllers/id-resolver.js.map +1 -1
  435. package/internals/controllers/internals.d.ts +53 -104
  436. package/internals/controllers/internals.js +40 -13
  437. package/internals/controllers/internals.js.map +1 -1
  438. package/internals/controllers/key-bindings.d.ts +61 -158
  439. package/internals/controllers/key-bindings.js +68 -67
  440. package/internals/controllers/key-bindings.js.map +1 -1
  441. package/internals/controllers/keys.d.ts +32 -0
  442. package/internals/controllers/keys.js +20 -0
  443. package/internals/controllers/keys.js.map +1 -0
  444. package/internals/controllers/mutation-observer.d.ts +14 -37
  445. package/internals/controllers/mutation-observer.js +1 -1
  446. package/internals/controllers/mutation-observer.js.map +1 -1
  447. package/internals/controllers/resize-observer.d.ts +9 -19
  448. package/internals/controllers/resize-observer.js.map +1 -1
  449. package/internals/controllers/root-click.d.ts +11 -42
  450. package/internals/controllers/root-click.js +4 -6
  451. package/internals/controllers/root-click.js.map +1 -1
  452. package/internals/controllers/roving-focus.d.ts +16 -35
  453. package/internals/controllers/roving-focus.js.map +1 -1
  454. package/internals/controllers/slot.d.ts +25 -54
  455. package/internals/controllers/slot.js +6 -6
  456. package/internals/controllers/slot.js.map +1 -1
  457. package/internals/controllers/toggle.d.ts +44 -48
  458. package/internals/controllers/toggle.js.map +1 -1
  459. package/internals/date/compare.js.map +1 -1
  460. package/internals/date/converters.d.ts +10 -7
  461. package/internals/date/converters.js.map +1 -1
  462. package/internals/date/model.d.ts +9 -16
  463. package/internals/date/model.js +22 -25
  464. package/internals/date/model.js.map +1 -1
  465. package/internals/decorators/blazorAdditionalDependencies.d.ts +4 -2
  466. package/internals/decorators/blazorAdditionalDependencies.js.map +1 -1
  467. package/internals/decorators/blazorDeepImport.d.ts +1 -3
  468. package/internals/decorators/blazorDeepImport.js.map +1 -1
  469. package/internals/decorators/blazorInclude.d.ts +3 -2
  470. package/internals/decorators/blazorInclude.js.map +1 -1
  471. package/internals/decorators/blazorIndirectRender.d.ts +1 -3
  472. package/internals/decorators/blazorIndirectRender.js.map +1 -1
  473. package/internals/decorators/blazorSuppressComponent.d.ts +1 -3
  474. package/internals/decorators/blazorSuppressComponent.js.map +1 -1
  475. package/internals/decorators/coerced-property.d.ts +14 -20
  476. package/internals/decorators/coerced-property.js.map +1 -1
  477. package/internals/decorators/shadow-options.d.ts +2 -5
  478. package/internals/decorators/shadow-options.js.map +1 -1
  479. package/internals/definitions/defineAllComponents.js +6 -0
  480. package/internals/definitions/defineAllComponents.js.map +1 -1
  481. package/internals/directives/drag.d.ts +51 -81
  482. package/internals/directives/drag.js +27 -89
  483. package/internals/directives/drag.js.map +1 -1
  484. package/internals/directives/pointer-operation.d.ts +75 -0
  485. package/internals/directives/pointer-operation.js +92 -0
  486. package/internals/directives/pointer-operation.js.map +1 -0
  487. package/internals/directives/resize.d.ts +36 -64
  488. package/internals/directives/resize.js +18 -85
  489. package/internals/directives/resize.js.map +1 -1
  490. package/internals/i18n/EN/calendar.resources.d.ts +8 -2
  491. package/internals/i18n/EN/calendar.resources.js +2 -2
  492. package/internals/i18n/EN/calendar.resources.js.map +1 -1
  493. package/internals/i18n/EN/chat.resources.d.ts +8 -2
  494. package/internals/i18n/EN/chat.resources.js +3 -10
  495. package/internals/i18n/EN/chat.resources.js.map +1 -1
  496. package/internals/i18n/EN/date-picker.resources.d.ts +6 -4
  497. package/internals/i18n/EN/date-picker.resources.js +1 -7
  498. package/internals/i18n/EN/date-picker.resources.js.map +1 -1
  499. package/internals/i18n/EN/date-range-picker.resources.d.ts +9 -2
  500. package/internals/i18n/EN/date-range-picker.resources.js +2 -2
  501. package/internals/i18n/EN/date-range-picker.resources.js.map +1 -1
  502. package/internals/i18n/i18n-controller.d.ts +44 -46
  503. package/internals/i18n/i18n-controller.js +46 -33
  504. package/internals/i18n/i18n-controller.js.map +1 -1
  505. package/internals/i18n/utils.d.ts +9 -4
  506. package/internals/i18n/utils.js +4 -27
  507. package/internals/i18n/utils.js.map +1 -1
  508. package/internals/mixins/alert.d.ts +10 -25
  509. package/internals/mixins/alert.js.map +1 -1
  510. package/internals/mixins/combo-box.d.ts +21 -11
  511. package/internals/mixins/combo-box.js +16 -22
  512. package/internals/mixins/combo-box.js.map +1 -1
  513. package/internals/mixins/event-emitter.js +9 -11
  514. package/internals/mixins/event-emitter.js.map +1 -1
  515. package/internals/mixins/forms/associated-required.d.ts +4 -4
  516. package/internals/mixins/forms/associated-required.js.map +1 -1
  517. package/internals/mixins/forms/associated.d.ts +4 -2
  518. package/internals/mixins/forms/associated.js +8 -19
  519. package/internals/mixins/forms/associated.js.map +1 -1
  520. package/internals/mixins/forms/form-transformers.js.map +1 -1
  521. package/internals/mixins/forms/types.d.ts +24 -80
  522. package/internals/mixins/forms/types.js.map +1 -1
  523. package/internals/mixins/group.d.ts +18 -0
  524. package/internals/mixins/group.js +37 -0
  525. package/internals/mixins/group.js.map +1 -0
  526. package/internals/mixins/i18n.d.ts +10 -16
  527. package/internals/mixins/i18n.js.map +1 -1
  528. package/internals/mixins/mask-behavior.d.ts +8 -22
  529. package/internals/mixins/mask-behavior.js +1 -2
  530. package/internals/mixins/mask-behavior.js.map +1 -1
  531. package/internals/mixins/option.d.ts +1 -2
  532. package/internals/mixins/option.js +2 -1
  533. package/internals/mixins/option.js.map +1 -1
  534. package/internals/part-map.d.ts +4 -2
  535. package/internals/part-map.js +1 -1
  536. package/internals/part-map.js.map +1 -1
  537. package/internals/templates/input-shell.d.ts +8 -17
  538. package/internals/templates/input-shell.js +4 -1
  539. package/internals/templates/input-shell.js.map +1 -1
  540. package/internals/templates/masked-input.d.ts +7 -8
  541. package/internals/templates/masked-input.js.map +1 -1
  542. package/internals/templates/slotted-icon.d.ts +7 -12
  543. package/internals/templates/slotted-icon.js.map +1 -1
  544. package/internals/templates/toggle-shell.d.ts +6 -7
  545. package/internals/templates/toggle-shell.js.map +1 -1
  546. package/internals/timing.d.ts +5 -14
  547. package/internals/timing.js.map +1 -1
  548. package/internals/utils/arrays.d.ts +21 -21
  549. package/internals/utils/arrays.js +14 -0
  550. package/internals/utils/arrays.js.map +1 -1
  551. package/internals/utils/dom.d.ts +51 -39
  552. package/internals/utils/dom.js +1 -2
  553. package/internals/utils/dom.js.map +1 -1
  554. package/internals/utils/events.d.ts +29 -16
  555. package/internals/utils/events.js +9 -1
  556. package/internals/utils/events.js.map +1 -1
  557. package/internals/utils/lit.d.ts +5 -2
  558. package/internals/utils/lit.js.map +1 -1
  559. package/internals/utils/math.d.ts +8 -6
  560. package/internals/utils/math.js.map +1 -1
  561. package/internals/utils/objects.d.ts +3 -20
  562. package/internals/utils/objects.js +1 -39
  563. package/internals/utils/objects.js.map +1 -1
  564. package/internals/utils/strings.d.ts +9 -11
  565. package/internals/utils/strings.js.map +1 -1
  566. package/internals/utils/types.d.ts +16 -3
  567. package/internals/utils/types.js +3 -0
  568. package/internals/utils/types.js.map +1 -1
  569. package/internals/validators.d.ts +9 -8
  570. package/internals/validators.js +12 -6
  571. package/internals/validators.js.map +1 -1
  572. package/package.json +1 -1
  573. package/skills/README.md +3 -0
  574. package/skills/igniteui-wc-figma-to-app/SKILL.md +907 -0
  575. package/skills/igniteui-wc-figma-to-app/references/asset-extraction.md +363 -0
  576. package/skills/igniteui-wc-figma-to-app/references/design-token-bridge.md +407 -0
  577. package/skills/igniteui-wc-figma-to-app/references/figma-component-map.md +325 -0
  578. package/skills/igniteui-wc-figma-to-app/references/mcp-setup.md +409 -0
  579. package/skills/igniteui-wc-figma-to-app/references/validation-patterns.md +376 -0
  580. package/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +21 -0
  581. package/skills/igniteui-wc-integrate-with-framework/SKILL.md +4 -3
  582. package/skills/igniteui-wc-integrate-with-framework/references/vanilla-js.md +14 -0
  583. package/skills/igniteui-wc-migrate-grid-lite-to-premium/SKILL.md +12 -2
  584. package/theming/config.d.ts +14 -5
  585. package/theming/config.js +38 -18
  586. package/theming/config.js.map +1 -1
  587. package/theming/context.d.ts +1 -23
  588. package/theming/context.js.map +1 -1
  589. package/theming/theming-controller.d.ts +2 -32
  590. package/theming/theming-controller.js +15 -21
  591. package/theming/theming-controller.js.map +1 -1
  592. package/theming/theming-event.d.ts +0 -7
  593. package/theming/theming-event.js +0 -13
  594. package/theming/theming-event.js.map +1 -1
  595. package/theming/types.d.ts +1 -8
  596. package/theming/types.js.map +1 -1
  597. package/web-types.json +3 -3
  598. package/animations/presets/slide/index.d.ts +0 -3
  599. package/animations/presets/slide/index.js +0 -16
  600. package/animations/presets/slide/index.js.map +0 -1
  601. package/internals/controllers/root-scroll.d.ts +0 -31
  602. package/internals/controllers/root-scroll.js +0 -71
  603. package/internals/controllers/root-scroll.js.map +0 -1
  604. package/theming/utils.d.ts +0 -11
  605. package/theming/utils.js +0 -20
  606. package/theming/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-button.js","sourceRoot":"","sources":["../../../src/components/button-group/toggle-button.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n LitElement,\n type PropertyValues,\n type TemplateResult,\n} from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { buttonGroupContext } from '#internals/context.js';\nimport { createAsyncContext } from '#internals/controllers/async-consumer.js';\nimport { addKeyboardFocusRing } from '#internals/controllers/focus-ring.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { partMap } from '#internals/part-map.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport { styles } from './themes/button.base.css.js';\nimport { all } from './themes/button.js';\nimport { styles as shared } from './themes/shared/button/button.common.css.js';\n\n/**\n * The toggle button wraps a native button element and exposes additional `value` and `selected` properties.\n * It is used in the context of a button group to facilitate the creation of group/toolbar like UX behaviors.\n *\n * @element igc-toggle-button\n *\n * @slot Renders the label/content of the button.\n *\n * @csspart toggle - The native button element.\n * @csspart focused - The native button element when focused through a keyboard interaction.\n */\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcToggleButtonComponent extends LitElement {\n public static override styles = [styles, shared];\n public static readonly tagName = 'igc-toggle-button';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcToggleButtonComponent);\n }\n\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n private readonly _context = createAsyncContext(this, buttonGroupContext);\n\n @query('[part~=\"toggle\"]', true)\n private readonly _nativeButton?: HTMLButtonElement;\n\n /**\n * The value of the control.\n * @attr\n */\n @property()\n public value!: string;\n\n /**\n * Whether the button is selected.\n *\n * @attr selected\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /**\n * Whether the button is disabled.\n *\n * @attr disabled\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override updated(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('selected') && this.selected) {\n this._context.value?.syncSelection(this);\n }\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the button. */\n public override focus(options?: FocusOptions): void {\n this._nativeButton?.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur(): void {\n this._nativeButton?.blur();\n }\n\n /** Simulates a mouse click on the element. */\n public override click(): void {\n this._nativeButton?.click();\n }\n\n protected override render(): TemplateResult {\n const group = this._context.value?.instance;\n\n // A button of a group with a single selection mode is a radio button, and it\n // is disabled either on its own or through the group it is part of.\n const isRadio = group != null && group.selection !== 'multiple';\n const disabled = this.disabled || Boolean(group?.disabled);\n const selectedState = this.selected ? 'true' : 'false';\n\n return html`\n <button\n part=${partMap({\n toggle: true,\n focused: this._focusRingManager.focused,\n })}\n type=\"button\"\n role=${ifDefined(isRadio ? 'radio' : undefined)}\n ?disabled=${disabled}\n .ariaLabel=${this.ariaLabel}\n aria-checked=${ifDefined(isRadio ? selectedState : undefined)}\n aria-pressed=${ifDefined(isRadio ? undefined : selectedState)}\n aria-disabled=${disabled}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-toggle-button': IgcToggleButtonComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"toggle-button.js","sourceRoot":"","sources":["../../../src/components/button-group/toggle-button.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n LitElement,\n type PropertyValues,\n type TemplateResult,\n} from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { buttonGroupContext } from '#internals/context.js';\nimport { createAsyncContext } from '#internals/controllers/async-consumer.js';\nimport { addKeyboardFocusRing } from '#internals/controllers/focus-ring.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { partMap } from '#internals/part-map.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport { styles } from './themes/button.base.css.js';\nimport { all } from './themes/button.js';\nimport { styles as shared } from './themes/shared/button/button.common.css.js';\n\n/**\n * The toggle button wraps a native button element and exposes additional `value` and `selected` properties.\n * It is used in the context of a button group to facilitate the creation of group/toolbar like UX behaviors.\n *\n * @element igc-toggle-button\n *\n * @slot - Renders the label/content of the button.\n *\n * @csspart toggle - The native button element.\n * @csspart focused - The native button element when focused through a keyboard interaction.\n */\n@shadowOptions({ delegatesFocus: true })\nexport default class IgcToggleButtonComponent extends LitElement {\n public static override styles = [styles, shared];\n public static readonly tagName = 'igc-toggle-button';\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcToggleButtonComponent);\n }\n\n private readonly _focusRingManager = addKeyboardFocusRing(this);\n private readonly _context = createAsyncContext(this, buttonGroupContext);\n\n private _ownTabIndex?: string | null;\n\n @query('[part~=\"toggle\"]', true)\n private readonly _nativeButton?: HTMLButtonElement;\n\n /**\n * The value of the control.\n * @attr\n */\n @property()\n public value!: string;\n\n /**\n * Whether the button is selected.\n *\n * @attr selected\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /**\n * Whether the button is disabled.\n *\n * @attr disabled\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n public override disconnectedCallback(): void {\n this._releaseTabIndex();\n super.disconnectedCallback();\n }\n\n protected override willUpdate(): void {\n const group = this._context.value;\n\n if (!group || group.instance !== this.parentElement) {\n return;\n }\n\n if (this._ownTabIndex === undefined) {\n this._ownTabIndex = this.getAttribute('tabindex');\n }\n\n group.isTabStop(this)\n ? this.removeAttribute('tabindex')\n : this.setAttribute('tabindex', '-1');\n }\n\n /** Gives the tab order a group took over back to the button. */\n private _releaseTabIndex(): void {\n if (this._ownTabIndex === undefined) {\n return;\n }\n\n this._ownTabIndex === null\n ? this.removeAttribute('tabindex')\n : this.setAttribute('tabindex', this._ownTabIndex);\n\n this._ownTabIndex = undefined;\n }\n\n protected override updated(changedProperties: PropertyValues<this>): void {\n if (\n changedProperties.has('selected') ||\n changedProperties.has('disabled')\n ) {\n this._context.value?.syncState(this);\n }\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the button. */\n public override focus(options?: FocusOptions): void {\n this._nativeButton?.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur(): void {\n this._nativeButton?.blur();\n }\n\n /** Simulates a mouse click on the element. */\n public override click(): void {\n this._nativeButton?.click();\n }\n\n protected override render(): TemplateResult {\n const group = this._context.value?.instance;\n\n // A button of a group with a single selection mode is a radio button, and it\n // is disabled either on its own or through the group it is part of.\n const isRadio = group != null && group.selection !== 'multiple';\n const disabled = this.disabled || Boolean(group?.disabled);\n const selectedState = this.selected ? 'true' : 'false';\n\n return html`\n <button\n part=${partMap({\n toggle: true,\n focused: this._focusRingManager.focused,\n })}\n type=\"button\"\n role=${ifDefined(isRadio ? 'radio' : undefined)}\n ?disabled=${disabled}\n .ariaLabel=${this.ariaLabel}\n aria-checked=${ifDefined(isRadio ? selectedState : undefined)}\n aria-pressed=${ifDefined(isRadio ? undefined : selectedState)}\n aria-disabled=${disabled}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-toggle-button': IgcToggleButtonComponent;\n }\n}\n"]}
@@ -6,6 +6,7 @@ import type { CalendarSelection, DateRangeDescriptor, WeekDays } from './types.j
6
6
  declare const IgcCalendarBaseComponent_base: import("../../internals/mixins/constructor.js").AbstractConstructor<import("#internals/mixins/i18n.js").I18nInterface<IgcCalendarResourceStrings | ICalendarResourceStrings, IgcCalendarResourceStrings & ICalendarResourceStrings>> & typeof LitElement;
7
7
  export declare class IgcCalendarBaseComponent extends IgcCalendarBaseComponent_base {
8
8
  private _initialActiveDateSet;
9
+ private _weekStart?;
9
10
  protected get _hasValues(): boolean;
10
11
  /**
11
12
  * The index of the first day of the week (Sunday = 0) as derived from {@link weekStart}.
@@ -57,10 +58,14 @@ export declare class IgcCalendarBaseComponent extends IgcCalendarBaseComponent_b
57
58
  showWeekNumbers: boolean;
58
59
  /**
59
60
  * Gets/Sets the first day of the week.
61
+ *
62
+ * @remarks
63
+ * When not set, the week starts on the first day of the week of the current {@link locale}.
64
+ * Setting `undefined` returns to the locale value.
60
65
  * @attr week-start
61
- * @default sunday
62
66
  */
63
- weekStart: WeekDays;
67
+ set weekStart(value: WeekDays | undefined);
68
+ get weekStart(): WeekDays;
64
69
  /**
65
70
  * Gets/Sets the special dates for the component.
66
71
  *
@@ -11,12 +11,13 @@ import { convertToDate, convertToDates } from '#internals/date/converters.js';
11
11
  import { CalendarDay, toCalendarDayOrNull } from '#internals/date/model.js';
12
12
  import { blazorDeepImport } from '#internals/decorators/blazorDeepImport.js';
13
13
  import { blazorIndirectRender } from '#internals/decorators/blazorIndirectRender.js';
14
+ import { calendarResourcesMap } from '#internals/i18n/utils.js';
14
15
  import { I18nMixin } from '#internals/mixins/i18n.js';
15
16
  import { firstOf } from '#internals/utils/arrays.js';
16
- import { getWeekDayNumber } from './helpers.js';
17
+ import { getLocaleWeekStart, getWeekDayNumber } from './helpers.js';
17
18
  const i18n = {
18
19
  defaultEN: CalendarResourceStringsEN,
19
- resourceMapName: 'calendar',
20
+ resourceMap: calendarResourcesMap,
20
21
  };
21
22
  let IgcCalendarBaseComponent = class IgcCalendarBaseComponent extends I18nMixin(LitElement, i18n) {
22
23
  constructor() {
@@ -29,7 +30,6 @@ let IgcCalendarBaseComponent = class IgcCalendarBaseComponent extends I18nMixin(
29
30
  this._disabledDates = [];
30
31
  this.selection = 'single';
31
32
  this.showWeekNumbers = false;
32
- this.weekStart = 'sunday';
33
33
  }
34
34
  get _hasValues() {
35
35
  return this._values.length > 0;
@@ -67,6 +67,12 @@ let IgcCalendarBaseComponent = class IgcCalendarBaseComponent extends I18nMixin(
67
67
  get activeDate() {
68
68
  return this._activeDate.native;
69
69
  }
70
+ set weekStart(value) {
71
+ this._weekStart = value ?? undefined;
72
+ }
73
+ get weekStart() {
74
+ return this._weekStart ?? getLocaleWeekStart(this.locale);
75
+ }
70
76
  set specialDates(value) {
71
77
  this._specialDates = value ?? [];
72
78
  }
@@ -134,7 +140,7 @@ __decorate([
134
140
  ], IgcCalendarBaseComponent.prototype, "showWeekNumbers", void 0);
135
141
  __decorate([
136
142
  property({ attribute: 'week-start' })
137
- ], IgcCalendarBaseComponent.prototype, "weekStart", void 0);
143
+ ], IgcCalendarBaseComponent.prototype, "weekStart", null);
138
144
  __decorate([
139
145
  property({ attribute: false })
140
146
  ], IgcCalendarBaseComponent.prototype, "specialDates", null);
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/components/calendar/base.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CalendarResourceStringsEN,\n type ICalendarResourceStrings,\n} from 'igniteui-i18n-core';\nimport { LitElement, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { convertToDate, convertToDates } from '#internals/date/converters.js';\nimport { CalendarDay, toCalendarDayOrNull } from '#internals/date/model.js';\nimport { blazorDeepImport } from '#internals/decorators/blazorDeepImport.js';\nimport { blazorIndirectRender } from '#internals/decorators/blazorIndirectRender.js';\nimport type { IgcCalendarResourceStrings } from '#internals/i18n/EN/calendar.resources.js';\nimport type { I18nControllerConfig } from '#internals/i18n/i18n-controller.js';\nimport { I18nMixin } from '#internals/mixins/i18n.js';\nimport { firstOf } from '#internals/utils/arrays.js';\nimport { getWeekDayNumber } from './helpers.js';\nimport type {\n CalendarSelection,\n DateRangeDescriptor,\n WeekDays,\n} from './types.js';\n\nconst i18n: I18nControllerConfig<\n IgcCalendarResourceStrings | ICalendarResourceStrings\n> = {\n defaultEN: CalendarResourceStringsEN,\n resourceMapName: 'calendar',\n};\n\n@blazorIndirectRender\n@blazorDeepImport\nexport class IgcCalendarBaseComponent extends I18nMixin<\n IgcCalendarResourceStrings | ICalendarResourceStrings,\n typeof LitElement,\n IgcCalendarResourceStrings & ICalendarResourceStrings\n>(LitElement, i18n) {\n private _initialActiveDateSet = false;\n\n protected get _hasValues(): boolean {\n return this._values.length > 0;\n }\n\n /**\n * The index of the first day of the week (Sunday = 0) as derived from {@link weekStart}.\n *\n * @remarks\n * Derived on access instead of in `update()`, so that its consumers are not sensitive\n * to the order in which the base class and its descendants update.\n */\n protected get _firstDayOfWeek(): number {\n return getWeekDayNumber(this.weekStart);\n }\n\n protected get _isSingle(): boolean {\n return this.selection === 'single';\n }\n\n protected get _isMultiple(): boolean {\n return this.selection === 'multiple';\n }\n\n protected get _isRange(): boolean {\n return this.selection === 'range';\n }\n\n @state()\n protected _rangePreviewDate?: CalendarDay;\n\n @state()\n protected _activeDate = CalendarDay.today;\n\n @state()\n protected _value: CalendarDay | null = null;\n\n @state()\n protected _values: CalendarDay[] = [];\n\n @state()\n protected _specialDates: DateRangeDescriptor[] = [];\n\n @state()\n protected _disabledDates: DateRangeDescriptor[] = [];\n\n /* blazorSuppress */\n /**\n * The current value of the calendar.\n * Used when selection is set to single\n *\n * @attr value\n */\n @property({ converter: convertToDate })\n public set value(value: Date | string | null | undefined) {\n this._value = toCalendarDayOrNull(convertToDate(value));\n }\n\n public get value(): Date | null {\n return this._value ? this._value.native : null;\n }\n\n /* blazorSuppress */\n /**\n * The current values of the calendar.\n * Used when selection is set to multiple or range.\n *\n * @attr values\n */\n @property({ converter: convertToDates })\n public set values(values: (Date | string)[] | string | null | undefined) {\n const converted = convertToDates(values);\n this._values = converted ? converted.map((v) => CalendarDay.from(v)) : [];\n }\n\n public get values(): Date[] {\n return this._values ? this._values.map((v) => v.native) : [];\n }\n\n /* blazorSuppress */\n /** Get/Set the date which is shown in view and is highlighted. By default it is the current date. */\n @property({ attribute: 'active-date', converter: convertToDate })\n public set activeDate(value: Date | string | null | undefined) {\n this._initialActiveDateSet = true;\n this._activeDate =\n toCalendarDayOrNull(convertToDate(value)) ?? CalendarDay.today;\n }\n\n public get activeDate(): Date {\n return this._activeDate.native;\n }\n\n /**\n * Sets the type of selection in the component.\n * @attr selection\n * @default single\n */\n @property()\n public selection: CalendarSelection = 'single';\n\n /**\n * Whether to show the week numbers.\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 /**\n * Gets/Sets the first day of the week.\n * @attr week-start\n * @default sunday\n */\n @property({ attribute: 'week-start' })\n public weekStart: WeekDays = 'sunday';\n\n /**\n * Gets/Sets the special dates for the component.\n *\n * @remarks\n * Returns `undefined` when no dates are set, which the setter accepts as well so that\n * a round trip through the property is valid.\n */\n @property({ attribute: false })\n public set specialDates(value: DateRangeDescriptor[] | undefined) {\n this._specialDates = value ?? [];\n }\n\n public get specialDates(): DateRangeDescriptor[] | undefined {\n return this._specialDates.length ? this._specialDates : undefined;\n }\n\n /**\n * Gets/Sets the disabled dates for the component.\n *\n * @remarks\n * Returns `undefined` when no dates are set, which the setter accepts as well so that\n * a round trip through the property is valid.\n */\n @property({ attribute: false })\n public set disabledDates(value: DateRangeDescriptor[] | undefined) {\n this._disabledDates = value ?? [];\n }\n\n public get disabledDates(): DateRangeDescriptor[] | undefined {\n return this._disabledDates.length ? this._disabledDates : undefined;\n }\n\n /** @internal */\n protected override update(props: PropertyValues): void {\n if (props.has('selection') && this.hasUpdated) {\n this._rangePreviewDate = undefined;\n this._value = null;\n this._values = [];\n }\n\n super.update(props);\n }\n\n /** @internal */\n protected override firstUpdated(): void {\n if (this._initialActiveDateSet) {\n return;\n }\n\n if (this._isSingle) {\n this.activeDate = this.value ?? this.activeDate;\n } else {\n this.activeDate = firstOf(this.values) ?? this.activeDate;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/components/calendar/base.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CalendarResourceStringsEN,\n type ICalendarResourceStrings,\n} from 'igniteui-i18n-core';\nimport { LitElement, type PropertyValues } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { convertToDate, convertToDates } from '#internals/date/converters.js';\nimport { CalendarDay, toCalendarDayOrNull } from '#internals/date/model.js';\nimport { blazorDeepImport } from '#internals/decorators/blazorDeepImport.js';\nimport { blazorIndirectRender } from '#internals/decorators/blazorIndirectRender.js';\nimport type { IgcCalendarResourceStrings } from '#internals/i18n/EN/calendar.resources.js';\nimport type { I18nControllerConfig } from '#internals/i18n/i18n-controller.js';\nimport { calendarResourcesMap } from '#internals/i18n/utils.js';\nimport { I18nMixin } from '#internals/mixins/i18n.js';\nimport { firstOf } from '#internals/utils/arrays.js';\nimport { getLocaleWeekStart, getWeekDayNumber } from './helpers.js';\nimport type {\n CalendarSelection,\n DateRangeDescriptor,\n WeekDays,\n} from './types.js';\n\nconst i18n: I18nControllerConfig<\n IgcCalendarResourceStrings | ICalendarResourceStrings\n> = {\n defaultEN: CalendarResourceStringsEN,\n resourceMap: calendarResourcesMap,\n};\n\n@blazorIndirectRender\n@blazorDeepImport\nexport class IgcCalendarBaseComponent extends I18nMixin<\n IgcCalendarResourceStrings | ICalendarResourceStrings,\n typeof LitElement,\n IgcCalendarResourceStrings & ICalendarResourceStrings\n>(LitElement, i18n) {\n private _initialActiveDateSet = false;\n private _weekStart?: WeekDays;\n\n protected get _hasValues(): boolean {\n return this._values.length > 0;\n }\n\n /**\n * The index of the first day of the week (Sunday = 0) as derived from {@link weekStart}.\n *\n * @remarks\n * Derived on access instead of in `update()`, so that its consumers are not sensitive\n * to the order in which the base class and its descendants update.\n */\n protected get _firstDayOfWeek(): number {\n return getWeekDayNumber(this.weekStart);\n }\n\n protected get _isSingle(): boolean {\n return this.selection === 'single';\n }\n\n protected get _isMultiple(): boolean {\n return this.selection === 'multiple';\n }\n\n protected get _isRange(): boolean {\n return this.selection === 'range';\n }\n\n @state()\n protected _rangePreviewDate?: CalendarDay;\n\n @state()\n protected _activeDate = CalendarDay.today;\n\n @state()\n protected _value: CalendarDay | null = null;\n\n @state()\n protected _values: CalendarDay[] = [];\n\n @state()\n protected _specialDates: DateRangeDescriptor[] = [];\n\n @state()\n protected _disabledDates: DateRangeDescriptor[] = [];\n\n /* blazorSuppress */\n /**\n * The current value of the calendar.\n * Used when selection is set to single\n *\n * @attr value\n */\n @property({ converter: convertToDate })\n public set value(value: Date | string | null | undefined) {\n this._value = toCalendarDayOrNull(convertToDate(value));\n }\n\n public get value(): Date | null {\n return this._value ? this._value.native : null;\n }\n\n /* blazorSuppress */\n /**\n * The current values of the calendar.\n * Used when selection is set to multiple or range.\n *\n * @attr values\n */\n @property({ converter: convertToDates })\n public set values(values: (Date | string)[] | string | null | undefined) {\n const converted = convertToDates(values);\n this._values = converted ? converted.map((v) => CalendarDay.from(v)) : [];\n }\n\n public get values(): Date[] {\n return this._values ? this._values.map((v) => v.native) : [];\n }\n\n /* blazorSuppress */\n /** Get/Set the date which is shown in view and is highlighted. By default it is the current date. */\n @property({ attribute: 'active-date', converter: convertToDate })\n public set activeDate(value: Date | string | null | undefined) {\n this._initialActiveDateSet = true;\n this._activeDate =\n toCalendarDayOrNull(convertToDate(value)) ?? CalendarDay.today;\n }\n\n public get activeDate(): Date {\n return this._activeDate.native;\n }\n\n /**\n * Sets the type of selection in the component.\n * @attr selection\n * @default single\n */\n @property()\n public selection: CalendarSelection = 'single';\n\n /**\n * Whether to show the week numbers.\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 /**\n * Gets/Sets the first day of the week.\n *\n * @remarks\n * When not set, the week starts on the first day of the week of the current {@link locale}.\n * Setting `undefined` returns to the locale value.\n * @attr week-start\n */\n @property({ attribute: 'week-start' })\n public set weekStart(value: WeekDays | undefined) {\n this._weekStart = value ?? undefined;\n }\n\n public get weekStart(): WeekDays {\n return this._weekStart ?? getLocaleWeekStart(this.locale);\n }\n\n /**\n * Gets/Sets the special dates for the component.\n *\n * @remarks\n * Returns `undefined` when no dates are set, which the setter accepts as well so that\n * a round trip through the property is valid.\n */\n @property({ attribute: false })\n public set specialDates(value: DateRangeDescriptor[] | undefined) {\n this._specialDates = value ?? [];\n }\n\n public get specialDates(): DateRangeDescriptor[] | undefined {\n return this._specialDates.length ? this._specialDates : undefined;\n }\n\n /**\n * Gets/Sets the disabled dates for the component.\n *\n * @remarks\n * Returns `undefined` when no dates are set, which the setter accepts as well so that\n * a round trip through the property is valid.\n */\n @property({ attribute: false })\n public set disabledDates(value: DateRangeDescriptor[] | undefined) {\n this._disabledDates = value ?? [];\n }\n\n public get disabledDates(): DateRangeDescriptor[] | undefined {\n return this._disabledDates.length ? this._disabledDates : undefined;\n }\n\n /** @internal */\n protected override update(props: PropertyValues): void {\n if (props.has('selection') && this.hasUpdated) {\n this._rangePreviewDate = undefined;\n this._value = null;\n this._values = [];\n }\n\n super.update(props);\n }\n\n /** @internal */\n protected override firstUpdated(): void {\n if (this._initialActiveDateSet) {\n return;\n }\n\n if (this._isSingle) {\n this.activeDate = this.value ?? this.activeDate;\n } else {\n this.activeDate = firstOf(this.values) ?? this.activeDate;\n }\n }\n}\n"]}
@@ -12,7 +12,6 @@ declare const IgcCalendarComponent_base: Constructor<import("#internals/mixins/e
12
12
  *
13
13
  * @element igc-calendar
14
14
  *
15
- * @slot - The default slot for the calendar.
16
15
  * @slot title - Renders the title of the calendar header.
17
16
  * @slot header-date - Renders content instead of the current date/range in the calendar header.
18
17
  *
@@ -158,6 +157,8 @@ export default class IgcCalendarComponent extends IgcCalendarComponent_base {
158
157
  private _getNextEnabledDate;
159
158
  protected _renderNavigationButtons(): TemplateResult<1>;
160
159
  protected _renderMonthButtonNavigation(active: CalendarDay, viewIndex: number): TemplateResult;
160
+ /** The year with the unit of the locale - `2025年` for `ja`, `2025 г.` for `bg`. */
161
+ protected _formatYear(day: CalendarDay): string;
161
162
  protected _renderYearButtonNavigation(active: CalendarDay, viewIndex: number): TemplateResult;
162
163
  /**
163
164
  * Renders the off screen live region announcing the period the calendar navigated to.
@@ -167,10 +168,12 @@ export default class IgcCalendarComponent extends IgcCalendarComponent_base {
167
168
  * same navigation several times over. The years view has its visible years range as a
168
169
  * live region of its own.
169
170
  */
170
- protected _renderActivePeriod(): typeof nothing | TemplateResult<1>;
171
+ protected _renderActivePeriod(): TemplateResult<1> | typeof nothing;
171
172
  protected _renderYearRangeNavigation(active: CalendarDay): TemplateResult;
173
+ /** Renders the month and year buttons of the days view in the field order of the locale. */
174
+ protected _renderDayViewNavigation(active: CalendarDay, viewIndex: number): TemplateResult[];
172
175
  protected _renderNavigation(date?: CalendarDay, showButtons?: boolean, viewIndex?: number): TemplateResult;
173
- protected _renderHeader(): typeof nothing | TemplateResult<1>;
176
+ protected _renderHeader(): TemplateResult<1> | typeof nothing;
174
177
  protected _renderHeaderDateSingle(): TemplateResult;
175
178
  protected _renderHeaderDateRange(): TemplateResult;
176
179
  protected _renderHeaderDate(): TemplateResult;
@@ -22,7 +22,7 @@ import { addThemingController } from '#theming/theming-controller.js';
22
22
  import IgcIconComponent from '../icon/icon.js';
23
23
  import { IgcCalendarBaseComponent } from './base.js';
24
24
  import IgcDaysViewComponent from './days-view/days-view.js';
25
- import { areSameMonth, getYearRange, isDateInRanges, MONTHS_PER_ROW, YEARS_PER_PAGE, YEARS_PER_ROW, } from './helpers.js';
25
+ import { areSameMonth, getYearRange, isDateInRanges, isDatePartBefore, MONTHS_PER_ROW, YEARS_PER_PAGE, YEARS_PER_ROW, } from './helpers.js';
26
26
  import IgcMonthsViewComponent from './months-view/months-view.js';
27
27
  import { selectDate } from './selection.js';
28
28
  import { styles } from './themes/calendar.base.css.js';
@@ -317,15 +317,21 @@ export default class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarB
317
317
  </button>
318
318
  `;
319
319
  }
320
+ _formatYear(day) {
321
+ return getDateFormatter().formatDateTime(day.native, this.locale, {
322
+ year: 'numeric',
323
+ });
324
+ }
320
325
  _renderYearButtonNavigation(active, viewIndex) {
321
- const ariaLabel = `${active.year}, ${this.resourceStrings.calendar_select_year}`;
326
+ const year = this._formatYear(active);
327
+ const ariaLabel = `${year}, ${this.resourceStrings.calendar_select_year}`;
322
328
  return html `
323
329
  <button
324
330
  part="years-navigation"
325
331
  aria-label=${ariaLabel}
326
332
  @click=${() => this._navigateToYearView(viewIndex)}
327
333
  >
328
- ${active.year}
334
+ ${year}
329
335
  </button>
330
336
  `;
331
337
  }
@@ -339,7 +345,7 @@ export default class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarB
339
345
  });
340
346
  return html `
341
347
  <span class="aria-off-screen" aria-live="polite">
342
- ${this._isDayView ? format(this._activeDate.native) : this._activeDate.year}
348
+ ${this._isDayView ? format(this._activeDate.native) : this._formatYear(this._activeDate)}
343
349
  </span>
344
350
  `;
345
351
  }
@@ -349,15 +355,22 @@ export default class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarB
349
355
  <span part="years-range" aria-live="polite"> ${start} - ${end} </span>
350
356
  `;
351
357
  }
358
+ _renderDayViewNavigation(active, viewIndex) {
359
+ const parts = getDateFormatter().formatDateTimeToParts(active.native, this.locale, { year: 'numeric', month: this.formatOptions.month });
360
+ const yearFirst = isDatePartBefore(parts, 'year', 'month');
361
+ const month = this._renderMonthButtonNavigation(active, viewIndex);
362
+ const year = this._renderYearButtonNavigation(active, viewIndex);
363
+ return yearFirst ? [year, month] : [month, year];
364
+ }
352
365
  _renderNavigation(date, showButtons = true, viewIndex = 0) {
353
366
  const activeDate = date ?? this._activeDate;
354
367
  return html `
355
368
  <div part="navigation">
356
369
  <div part="picker-dates">
357
370
  ${this._isDayView
358
- ? this._renderMonthButtonNavigation(activeDate, viewIndex)
371
+ ? this._renderDayViewNavigation(activeDate, viewIndex)
359
372
  : nothing}
360
- ${this._isDayView || this._isMonthView
373
+ ${this._isMonthView
361
374
  ? this._renderYearButtonNavigation(activeDate, viewIndex)
362
375
  : nothing}
363
376
  ${this._isYearView
@@ -386,17 +399,30 @@ export default class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarB
386
399
  }
387
400
  _renderHeaderDateSingle() {
388
401
  const date = this.value ?? CalendarDay.today.native;
402
+ const { locale } = this;
389
403
  const formatter = getDateFormatter();
390
- const weekday = formatter.formatDateTime(date, this.locale, {
391
- weekday: 'short',
392
- });
393
- const monthDay = formatter.formatDateTime(date, this.locale, {
404
+ const weekdayOptions = { weekday: 'short' };
405
+ const dateOptions = {
394
406
  month: 'short',
395
407
  day: 'numeric',
408
+ };
409
+ if (this.headerOrientation !== 'vertical') {
410
+ const formatted = formatter.formatDateTime(date, locale, {
411
+ ...weekdayOptions,
412
+ ...dateOptions,
413
+ });
414
+ return html `<slot name="header-date">${formatted}</slot>`;
415
+ }
416
+ const parts = formatter.formatDateTimeToParts(date, locale, {
417
+ ...weekdayOptions,
418
+ ...dateOptions,
396
419
  });
397
- const separator = this.headerOrientation === 'vertical' ? html `<br />` : ' ';
398
- const formatted = html `${weekday},${separator}${monthDay}`;
399
- return html `<slot name="header-date">${formatted}</slot>`;
420
+ const weekday = formatter.formatDateTime(date, locale, weekdayOptions);
421
+ const monthDay = formatter.formatDateTime(date, locale, dateOptions);
422
+ const [first, second] = isDatePartBefore(parts, 'weekday', 'month')
423
+ ? [weekday, monthDay]
424
+ : [monthDay, weekday];
425
+ return html `<slot name="header-date">${first}<br />${second}</slot>`;
400
426
  }
401
427
  _renderHeaderDateRange() {
402
428
  const values = this.values;
@@ -430,6 +456,7 @@ export default class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarB
430
456
  const length = activeDates.length - 1;
431
457
  const format = this.formatOptions
432
458
  .weekday;
459
+ const weekStart = this.weekStart;
433
460
  return html `${activeDates.map((date, idx) => html `
434
461
  <div part="days-view-container">
435
462
  ${this._renderNavigation(date, horizontal ? idx === length : idx === 0, idx)}
@@ -453,7 +480,7 @@ export default class IgcCalendarComponent extends EventEmitterMixin(IgcCalendarB
453
480
  .value=${this.value}
454
481
  .values=${this.values}
455
482
  .weekDayFormat=${format}
456
- .weekStart=${this.weekStart}
483
+ .weekStart=${weekStart}
457
484
  ></igc-days-view>
458
485
  </div>
459
486
  `)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDateFormatter } from 'igniteui-i18n-core';\nimport { html, nothing, type TemplateResult } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n homeKey,\n pageDownKey,\n pageUpKey,\n shiftKey,\n} from '#internals/controllers/key-bindings.js';\nimport { CalendarDay } from '#internals/date/model.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { Constructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { partMap } from '#internals/part-map.js';\nimport { firstOf, lastOf } from '#internals/utils/arrays.js';\nimport { getElementFromPath } from '#internals/utils/events.js';\nimport { clamp } from '#internals/utils/math.js';\nimport { formatString } from '#internals/utils/strings.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type { ContentOrientation } from '../types.js';\nimport { IgcCalendarBaseComponent } from './base.js';\nimport IgcDaysViewComponent from './days-view/days-view.js';\nimport {\n areSameMonth,\n getYearRange,\n isDateInRanges,\n MONTHS_PER_ROW,\n YEARS_PER_PAGE,\n YEARS_PER_ROW,\n} from './helpers.js';\nimport IgcMonthsViewComponent from './months-view/months-view.js';\nimport { selectDate } from './selection.js';\nimport { styles } from './themes/calendar.base.css.js';\nimport { all } from './themes/calendar.js';\nimport type {\n CalendarActiveView,\n CalendarHeaderOrientation,\n IgcCalendarComponentEventMap,\n} from './types.js';\nimport IgcYearsViewComponent from './years-view/years-view.js';\n\nexport const focusActiveDate = Symbol();\n\n/** How many consecutive disabled days keyboard navigation will skip over before giving up. */\nconst MAX_DISABLED_DATE_SKIP = 1000;\n\n/* blazorIndirectRender */\n/* blazorSupportsVisualChildren */\n/**\n * Represents a calendar that lets users\n * to select a date value in a variety of different ways.\n *\n * @element igc-calendar\n *\n * @slot - The default slot for the calendar.\n * @slot title - Renders the title of the calendar header.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n *\n * @fires igcChange - Emitted when calendar changes its value.\n *\n * @csspart header - The header element of the calendar.\n * @csspart header-title - The header title element of the calendar.\n * @csspart header-date - The header date element of the calendar.\n * @csspart content - The content element which contains the views and navigation elements of the calendar.\n * @csspart content-vertical - The content element which contains the views and navigation elements of the calendar in vertical orientation.\n * @csspart navigation - The navigation container element of the calendar.\n * @csspart months-navigation - The months navigation button element of the calendar.\n * @csspart years-navigation - The years navigation button element of the calendar.\n * @csspart years-range - The years range element of the calendar.\n * @csspart navigation-buttons - The navigation buttons container of the calendar.\n * @csspart navigation-button - Previous/next navigation button of the calendar.\n * @csspart days-view-container - The days view container element of the calendar.\n * @csspart days-view - Days view element of the calendar.\n * @csspart months-view - The months view element of the calendar.\n * @csspart years-view - The years view element of the calendar.\n * @csspart days-row - Days row element of the calendar.\n * @csspart months-row - Months row element of the calendar.\n * @csspart years-row - Years row element of the calendar.\n * @csspart label - Week header label element of the calendar.\n * @csspart label-inner - Week header label inner element of the calendar.\n * @csspart week-number - Week number element of the calendar.\n * @csspart week-number-inner - Week number inner element of the calendar.\n * @csspart date - Date element of the calendar.\n * @csspart date-inner - Date inner element of the calendar.\n * @csspart first - The first selected date element of the calendar in range selection.\n * Also applies to the week numbers header cell.\n * @csspart last - The last selected date element of the calendar in range selection.\n * Also applies to the week number of the last rendered week.\n * @csspart inactive - Inactive date element of the calendar.\n * @csspart hidden - Hidden date element of the calendar.\n * @csspart weekend - Weekend date element of the calendar.\n * @csspart range - Range selected element of the calendar.\n * @csspart special - Special date element of the calendar.\n * @csspart disabled - Disabled date element of the calendar.\n * @csspart single - Single selected date element of the calendar.\n * @csspart preview - Range selection preview date element of the calendar.\n * @csspart month - Month element of the calendar.\n * @csspart month-inner - Month inner element of the calendar.\n * @csspart year - Year element of the calendar.\n * @csspart year-inner - Year inner element of the calendar.\n * @csspart selected - Indicates selected state. Applies to date, month and year elements of the calendar.\n * @csspart current - Indicates current state. Applies to date, month and year elements of the calendar.\n */\nexport default class IgcCalendarComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<IgcCalendarBaseComponent>\n>(IgcCalendarBaseComponent) {\n public static readonly tagName = 'igc-calendar';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcCalendarComponent,\n IgcIconComponent,\n IgcDaysViewComponent,\n IgcMonthsViewComponent,\n IgcYearsViewComponent\n );\n }\n\n //#region Internal state\n\n private readonly _contentRef = createRef<HTMLDivElement>();\n\n private get _isDayView(): boolean {\n return this.activeView === 'days';\n }\n\n private get _isMonthView(): boolean {\n return this.activeView === 'months';\n }\n\n private get _isYearView(): boolean {\n return this.activeView === 'years';\n }\n\n /** The accessible name of a navigation button, based on what it pages through. */\n private _getNavigationLabel(direction: 'previous' | 'next'): string {\n const isPrevious = direction === 'previous';\n const strings = this.resourceStrings;\n\n switch (this.activeView) {\n case 'days':\n return (\n isPrevious\n ? strings.calendar_previous_month\n : strings.calendar_next_month\n )!;\n case 'months':\n return (\n isPrevious\n ? strings.calendar_previous_year\n : strings.calendar_next_year\n )!;\n case 'years':\n return formatString(\n (isPrevious\n ? strings.calendar_previous_years\n : strings.calendar_next_years)!,\n YEARS_PER_PAGE\n );\n }\n }\n\n /** The unit and the amount a single navigation step covers in the current view. */\n private _getPageStep(delta: -1 | 1): {\n unit: 'month' | 'year';\n increment: number;\n } {\n return {\n unit: this._isDayView ? 'month' : 'year',\n increment: (this._isYearView ? YEARS_PER_PAGE : 1) * delta,\n };\n }\n\n @state()\n private _activeDaysViewIndex = 0;\n\n @queryAll(IgcDaysViewComponent.tagName)\n private readonly _daysViews!: NodeListOf<IgcDaysViewComponent>;\n\n @query(IgcMonthsViewComponent.tagName)\n private readonly _monthsView!: IgcMonthsViewComponent;\n\n @query(IgcYearsViewComponent.tagName)\n private readonly _yearsView!: IgcYearsViewComponent;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether to hide the dates that do not belong to the current active month.\n * @attr hide-outside-days\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-outside-days', reflect: true })\n public hideOutsideDays = false;\n\n /**\n * Whether to render the calendar header part.\n * When the calendar selection is set to `multiple` the header is always hidden.\n *\n * @attr hide-header\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-header', reflect: true })\n public hideHeader = false;\n\n /**\n * The orientation of the calendar header.\n * @attr header-orientation\n * @default \"horizontal\"\n */\n @property({ reflect: true, attribute: 'header-orientation' })\n public headerOrientation: CalendarHeaderOrientation = 'horizontal';\n\n /**\n * The orientation of the calendar months when more than one month\n * is being shown.\n * @attr orientation\n * @default \"horizontal\"\n */\n @property()\n public orientation: ContentOrientation = 'horizontal';\n\n /**\n * The number of months displayed in the days view.\n * @attr visible-months\n * @default 1\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * The current active view of the component.\n * @attr active-view\n * @default \"days\"\n */\n @property({ attribute: 'active-view' })\n public activeView: CalendarActiveView = 'days';\n\n /** The options used to format the months and the weekdays in the calendar views. */\n @property({ attribute: false })\n public formatOptions: Pick<Intl.DateTimeFormatOptions, 'month' | 'weekday'> =\n { month: 'long', weekday: 'narrow' };\n\n //#endregion\n\n //#region Lifecycle hooks\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addKeybindings(this, {\n skip: this._shouldSkipKeyboardEvent,\n ref: this._contentRef,\n bindingDefaults: { repeat: true },\n })\n .set(arrowLeft, this._handleArrowKey.bind(this, 'day', -1))\n .set(arrowRight, this._handleArrowKey.bind(this, 'day', 1))\n .set(arrowUp, this._handleArrowKey.bind(this, 'week', -1))\n .set(arrowDown, this._handleArrowKey.bind(this, 'week', 1))\n .set([shiftKey, pageUpKey], this._handleShiftPageKeys.bind(this, -1))\n .set([shiftKey, pageDownKey], this._handleShiftPageKeys.bind(this, 1))\n .set(pageUpKey, this._handlePageKeys.bind(this, -1))\n .set(pageDownKey, this._handlePageKeys.bind(this, 1))\n .set(homeKey, this._handleHomeKey)\n .set(endKey, this._handleEndKey);\n }\n\n //#endregion\n\n //#region Keyboard event handlers\n\n private _shouldSkipKeyboardEvent(_: Element, event: KeyboardEvent): boolean {\n return !getElementFromPath(\n `${IgcDaysViewComponent.tagName}, ${IgcMonthsViewComponent.tagName}, ${IgcYearsViewComponent.tagName}`,\n event\n );\n }\n\n private _handleArrowKey(period: 'day' | 'week', delta: -1 | 1): void {\n if (this._isDayView) {\n const date = this._getNextEnabledDate(\n this._activeDate.add(period, delta),\n delta\n );\n this._updateViewIndex(date, delta);\n this._activeDate = date;\n } else {\n const monthOrYear = this._isMonthView ? 'month' : 'year';\n const monthOrYearDelta =\n (this._isMonthView ? MONTHS_PER_ROW : YEARS_PER_ROW) * delta;\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(\n monthOrYear,\n period === 'week' ? monthOrYearDelta : delta\n ),\n delta\n );\n }\n\n this[focusActiveDate]();\n }\n\n private _handlePageKeys(delta: -1 | 1): void {\n const { unit, increment } = this._getPageStep(delta);\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(unit, increment),\n increment\n );\n this[focusActiveDate]();\n }\n\n private _handleShiftPageKeys(delta: -1 | 1): void {\n if (this._isDayView) {\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add('year', delta),\n delta\n );\n this[focusActiveDate]();\n }\n }\n\n private _handleHomeKey(): void {\n this._activateEdgeOfView('start');\n }\n\n private _handleEndKey(): void {\n this._activateEdgeOfView('end');\n }\n\n /**\n * Moves the active date to the first or the last date of the current view, skipping\n * over the disabled dates towards the middle of it.\n */\n private _activateEdgeOfView(edge: 'start' | 'end'): void {\n const isStart = edge === 'start';\n const delta = isStart ? 1 : -1;\n let target: CalendarDay;\n\n switch (this.activeView) {\n case 'days': {\n const months = this._getActiveDates();\n const index = isStart ? 0 : months.length - 1;\n const month = months[index];\n\n target = isStart\n ? month.set({ date: 1 })\n : month.set({ month: month.month + 1, date: 0 });\n this._activeDaysViewIndex = index;\n break;\n }\n case 'months':\n target = this._activeDate.set({ month: isStart ? 0 : 11 });\n break;\n case 'years': {\n const { start, end } = getYearRange(this._activeDate, YEARS_PER_PAGE);\n target = this._activeDate.set({ year: isStart ? start : end });\n break;\n }\n }\n\n this._activeDate = this._getNextEnabledDate(target, delta);\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Event handlers\n\n private _handleMonthChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'days';\n\n this[focusActiveDate]();\n }\n\n private _handleYearChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _handleValueChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n\n const selection = selectDate(\n { value: this._value, values: this._values },\n CalendarDay.from(event.detail),\n { selection: this.selection, disabledDates: this._disabledDates }\n );\n\n if (!selection) {\n return;\n }\n\n this._value = selection.value;\n this._values = selection.values;\n\n this.emitEvent('igcChange', {\n detail: this._isSingle ? (this.value as Date) : this.values,\n });\n }\n\n private _handleActiveDateChange(event: CustomEvent<Date>): void {\n const view = event.target as IgcDaysViewComponent;\n const index = Array.from(this._daysViews).indexOf(view);\n\n if (index < 0) {\n return;\n }\n\n // Resolved before the state below is updated, since the dates of the views are\n // derived from it\n const renderedMonth = this._getActiveDates()[index];\n\n this._activeDaysViewIndex = index;\n this.activeDate = event.detail;\n\n // The cell holding the tab stop is about to be replaced, so the focus has to follow\n if (!areSameMonth(this._activeDate, renderedMonth)) {\n this[focusActiveDate]();\n }\n }\n\n private _handleRangePreviewChange(event: CustomEvent<Date>): void {\n this._rangePreviewDate = event.detail\n ? CalendarDay.from(event.detail)\n : undefined;\n }\n\n //#endregion\n\n //#region Internal navigation methods\n\n /** Makes the month rendered by the view at `viewIndex` the active one. */\n private _setActiveDaysView(viewIndex: number): void {\n this.activeDate = this._getActiveDates()[viewIndex].native;\n this._activeDaysViewIndex = viewIndex;\n }\n\n private _navigate(delta: 1 | -1): void {\n const { unit, increment } = this._getPageStep(delta);\n this._activeDate = this._activeDate.add(unit, increment);\n }\n\n private _navigatePrevious(): void {\n this._navigate(-1);\n }\n\n private _navigateNext(): void {\n this._navigate(1);\n }\n\n private _navigateToMonthView(viewIndex: number): void {\n this._setActiveDaysView(viewIndex);\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _navigateToYearView(viewIndex: number): void {\n if (this._isDayView) {\n this._setActiveDaysView(viewIndex);\n }\n this.activeView = 'years';\n\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Internal API\n\n /** @hidden @internal */\n public async [focusActiveDate](options?: FocusOptions): Promise<void> {\n await this.updateComplete;\n\n switch (this.activeView) {\n case 'days':\n return this._daysViews\n .item(this._activeDaysViewIndex)\n .focusActiveDate(options);\n case 'months':\n return this._monthsView.focusActiveDate(options);\n case 'years':\n return this._yearsView.focusActiveDate(options);\n }\n }\n\n private _updateViewIndex(date: CalendarDay, delta: -1 | 1): void {\n if (this.visibleMonths === 1) {\n return;\n }\n\n const index = this._activeDaysViewIndex;\n const view = CalendarDay.from(this._daysViews.item(index).activeDate);\n\n if (date.month !== view.month) {\n this._activeDaysViewIndex = clamp(\n index + delta,\n 0,\n this.visibleMonths - 1\n );\n }\n }\n\n private _getActiveDates(): CalendarDay[] {\n const current = this._activeDaysViewIndex;\n const length = Math.max(this.visibleMonths, 1);\n\n return Array.from({ length }, (_, i) =>\n this._activeDate.add('month', i - current)\n );\n }\n\n /**\n * Returns the first enabled date starting from `start` and moving day by day in the\n * direction of `delta`.\n *\n * @remarks\n * The search is bounded, since the disabled dates can describe an open-ended range\n * which no date in the given direction satisfies. The current active date is returned\n * when nothing is reachable.\n */\n private _getNextEnabledDate(start: CalendarDay, delta: number): CalendarDay {\n const disabled = this._disabledDates;\n const step = Math.sign(delta) || 1;\n let current = start;\n\n for (let i = 0; i <= MAX_DISABLED_DATE_SKIP; i++) {\n if (!isDateInRanges(current, disabled)) {\n return current;\n }\n current = current.add('day', step);\n }\n\n return this._activeDate;\n }\n\n //#endregion\n\n protected _renderNavigationButtons() {\n const parts = {\n 'navigation-button': true,\n vertical: this.orientation === 'vertical',\n };\n\n return html`\n <div part=\"navigation-buttons\">\n <button\n part=${partMap(parts)}\n aria-label=${this._getNavigationLabel('previous')}\n @click=${this._navigatePrevious}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_prev\"\n collection=\"default\"\n ></igc-icon>\n </button>\n\n <button\n part=${partMap(parts)}\n aria-label=${this._getNavigationLabel('next')}\n @click=${this._navigateNext}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_next\"\n collection=\"default\"\n ></igc-icon>\n </button>\n </div>\n `;\n }\n\n protected _renderMonthButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const formatter = getDateFormatter();\n const label = formatter.formatDateTime(active.native, this.locale, {\n month: 'long',\n });\n const value = formatter.formatDateTime(active.native, this.locale, {\n month: this.formatOptions.month,\n });\n const ariaLabel = `${label}, ${this.resourceStrings.calendar_select_month}`;\n\n return html`\n <button\n part=\"months-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToMonthView(viewIndex)}\n >\n ${value}\n </button>\n `;\n }\n\n protected _renderYearButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const ariaLabel = `${active.year}, ${this.resourceStrings.calendar_select_year}`;\n\n return html`\n <button\n part=\"years-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToYearView(viewIndex)}\n >\n ${active.year}\n </button>\n `;\n }\n\n /**\n * Renders the off screen live region announcing the period the calendar navigated to.\n *\n * @remarks\n * A single region for the whole calendar - one per rendered month would announce the\n * same navigation several times over. The years view has its visible years range as a\n * live region of its own.\n */\n protected _renderActivePeriod() {\n if (this._isYearView) {\n return nothing;\n }\n\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'long',\n year: 'numeric',\n });\n\n return html`\n <span class=\"aria-off-screen\" aria-live=\"polite\">\n ${this._isDayView ? format(this._activeDate.native) : this._activeDate.year}\n </span>\n `;\n }\n\n protected _renderYearRangeNavigation(active: CalendarDay): TemplateResult {\n const { start, end } = getYearRange(active, YEARS_PER_PAGE);\n\n return html`\n <span part=\"years-range\" aria-live=\"polite\"> ${start} - ${end} </span>\n `;\n }\n\n protected _renderNavigation(\n date?: CalendarDay,\n showButtons = true,\n viewIndex = 0\n ): TemplateResult {\n const activeDate = date ?? this._activeDate;\n\n return html`\n <div part=\"navigation\">\n <div part=\"picker-dates\">\n ${\n this._isDayView\n ? this._renderMonthButtonNavigation(activeDate, viewIndex)\n : nothing\n }\n ${\n this._isDayView || this._isMonthView\n ? this._renderYearButtonNavigation(activeDate, viewIndex)\n : nothing\n }\n ${\n this._isYearView\n ? this._renderYearRangeNavigation(activeDate)\n : nothing\n }\n </div>\n ${showButtons ? this._renderNavigationButtons() : nothing}\n </div>\n `;\n }\n\n protected _renderHeader() {\n if (this.hideHeader || this._isMultiple) {\n return nothing;\n }\n\n const title = this._isSingle\n ? this.resourceStrings.calendar_select_date\n : this.resourceStrings.calendar_range_placeholder;\n\n // A label and the value it describes, not a section of the document, so no headings -\n // a component cannot know which level would fit the page it is placed in. The\n // typography of both parts is set by the themes.\n return html`\n <div part=\"header\">\n <div part=\"header-title\">\n <slot name=\"title\">${title}</slot>\n </div>\n <div part=\"header-date\">${this._renderHeaderDate()}</div>\n </div>\n `;\n }\n\n protected _renderHeaderDateSingle(): TemplateResult {\n const date = this.value ?? CalendarDay.today.native;\n const formatter = getDateFormatter();\n const weekday = formatter.formatDateTime(date, this.locale, {\n weekday: 'short',\n });\n const monthDay = formatter.formatDateTime(date, this.locale, {\n month: 'short',\n day: 'numeric',\n });\n const separator =\n this.headerOrientation === 'vertical' ? html`<br />` : ' ';\n\n const formatted = html`${weekday},${separator}${monthDay}`;\n\n return html`<slot name=\"header-date\">${formatted}</slot>`;\n }\n\n protected _renderHeaderDateRange(): TemplateResult {\n const values = this.values;\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'short',\n day: 'numeric',\n });\n const { calendar_range_label_start, calendar_range_label_end } =\n this.resourceStrings;\n\n const start = this._hasValues\n ? format(firstOf(values))\n : calendar_range_label_start;\n const end =\n this._hasValues && values.length > 1\n ? format(lastOf(values))\n : calendar_range_label_end;\n\n return html`\n <slot name=\"header-date\">\n <span>${start}</span>\n <span> - </span>\n <span>${end}</span>\n </slot>\n `;\n }\n\n protected _renderHeaderDate(): TemplateResult {\n return this._isSingle\n ? this._renderHeaderDateSingle()\n : this._renderHeaderDateRange();\n }\n\n protected _renderDaysView(): TemplateResult {\n const activeDates = this._getActiveDates();\n const horizontal = this.orientation === 'horizontal';\n const length = activeDates.length - 1;\n const format = this.formatOptions\n .weekday as Intl.DateTimeFormatOptions['weekday'];\n\n return html`${activeDates.map(\n (date, idx) => html`\n <div part=\"days-view-container\">\n ${this._renderNavigation(\n date,\n horizontal ? idx === length : idx === 0,\n idx\n )}\n <igc-days-view\n @igcChange=${this._handleValueChange}\n @igcActiveDateChange=${this._handleActiveDateChange}\n @igcRangePreviewDateChange=${this._handleRangePreviewChange}\n part=\"days-view\"\n exportparts=\"days-row, label, label-inner, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, content-vertical, weekend, range, special, disabled, single, preview\"\n .active=${this._activeDaysViewIndex === idx}\n .activeDate=${date.native}\n .disabledDates=${this.disabledDates}\n .hideLeadingDays=${this.hideOutsideDays || idx !== 0}\n .hideTrailingDays=${this.hideOutsideDays || idx !== length}\n .locale=${this.locale}\n .rangePreviewDate=${this._rangePreviewDate?.native}\n .resourceStrings=${this.resourceStrings}\n .selection=${this.selection}\n .showWeekNumbers=${this.showWeekNumbers}\n .specialDates=${this._specialDates}\n .value=${this.value}\n .values=${this.values}\n .weekDayFormat=${format!}\n .weekStart=${this.weekStart}\n ></igc-days-view>\n </div>\n `\n )}`;\n }\n\n protected _renderMonthView(): TemplateResult {\n const format = this.formatOptions\n .month as Intl.DateTimeFormatOptions['month'];\n\n return html`\n ${this._renderNavigation()}\n <igc-months-view\n part=\"months-view\"\n exportparts=\"months-row, month, selected, month-inner, current\"\n @igcChange=${this._handleMonthChange}\n .value=${this.activeDate}\n .locale=${this.locale}\n .monthFormat=${format!}\n ></igc-months-view>\n `;\n }\n\n protected _renderYearView(): TemplateResult {\n return html`\n ${this._renderNavigation()}\n <igc-years-view\n part=\"years-view\"\n exportparts=\"years-row, year, selected, year-inner, current\"\n @igcChange=${this._handleYearChange}\n .value=${this.activeDate}\n .yearsPerPage=${YEARS_PER_PAGE}\n ></igc-years-view>\n `;\n }\n\n protected override render() {\n const parts = {\n content: true,\n 'content-vertical': this._isDayView && this.orientation === 'vertical',\n };\n\n return html`\n ${this._renderHeader()} ${this._renderActivePeriod()}\n <div ${ref(this._contentRef)} part=${partMap(parts)}>\n ${choose(this.activeView, [\n ['days', () => this._renderDaysView()],\n ['months', () => this._renderMonthView()],\n ['years', () => this._renderYearView()],\n ])}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-calendar': IgcCalendarComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDateFormatter } from 'igniteui-i18n-core';\nimport { html, nothing, type TemplateResult } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n homeKey,\n pageDownKey,\n pageUpKey,\n shiftKey,\n} from '#internals/controllers/key-bindings.js';\nimport { CalendarDay } from '#internals/date/model.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { Constructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { partMap } from '#internals/part-map.js';\nimport { firstOf, lastOf } from '#internals/utils/arrays.js';\nimport { getElementFromPath } from '#internals/utils/events.js';\nimport { clamp } from '#internals/utils/math.js';\nimport { formatString } from '#internals/utils/strings.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type { ContentOrientation } from '../types.js';\nimport { IgcCalendarBaseComponent } from './base.js';\nimport IgcDaysViewComponent from './days-view/days-view.js';\nimport {\n areSameMonth,\n getYearRange,\n isDateInRanges,\n isDatePartBefore,\n MONTHS_PER_ROW,\n YEARS_PER_PAGE,\n YEARS_PER_ROW,\n} from './helpers.js';\nimport IgcMonthsViewComponent from './months-view/months-view.js';\nimport { selectDate } from './selection.js';\nimport { styles } from './themes/calendar.base.css.js';\nimport { all } from './themes/calendar.js';\nimport type {\n CalendarActiveView,\n CalendarHeaderOrientation,\n IgcCalendarComponentEventMap,\n} from './types.js';\nimport IgcYearsViewComponent from './years-view/years-view.js';\n\nexport const focusActiveDate = Symbol();\n\n/** How many consecutive disabled days keyboard navigation will skip over before giving up. */\nconst MAX_DISABLED_DATE_SKIP = 1000;\n\n/* blazorIndirectRender */\n/* blazorSupportsVisualChildren */\n/**\n * Represents a calendar that lets users\n * to select a date value in a variety of different ways.\n *\n * @element igc-calendar\n *\n * @slot title - Renders the title of the calendar header.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n *\n * @fires igcChange - Emitted when calendar changes its value.\n *\n * @csspart header - The header element of the calendar.\n * @csspart header-title - The header title element of the calendar.\n * @csspart header-date - The header date element of the calendar.\n * @csspart content - The content element which contains the views and navigation elements of the calendar.\n * @csspart content-vertical - The content element which contains the views and navigation elements of the calendar in vertical orientation.\n * @csspart navigation - The navigation container element of the calendar.\n * @csspart months-navigation - The months navigation button element of the calendar.\n * @csspart years-navigation - The years navigation button element of the calendar.\n * @csspart years-range - The years range element of the calendar.\n * @csspart navigation-buttons - The navigation buttons container of the calendar.\n * @csspart navigation-button - Previous/next navigation button of the calendar.\n * @csspart days-view-container - The days view container element of the calendar.\n * @csspart days-view - Days view element of the calendar.\n * @csspart months-view - The months view element of the calendar.\n * @csspart years-view - The years view element of the calendar.\n * @csspart days-row - Days row element of the calendar.\n * @csspart months-row - Months row element of the calendar.\n * @csspart years-row - Years row element of the calendar.\n * @csspart label - Week header label element of the calendar.\n * @csspart label-inner - Week header label inner element of the calendar.\n * @csspart week-number - Week number element of the calendar.\n * @csspart week-number-inner - Week number inner element of the calendar.\n * @csspart date - Date element of the calendar.\n * @csspart date-inner - Date inner element of the calendar.\n * @csspart first - The first selected date element of the calendar in range selection.\n * Also applies to the week numbers header cell.\n * @csspart last - The last selected date element of the calendar in range selection.\n * Also applies to the week number of the last rendered week.\n * @csspart inactive - Inactive date element of the calendar.\n * @csspart hidden - Hidden date element of the calendar.\n * @csspart weekend - Weekend date element of the calendar.\n * @csspart range - Range selected element of the calendar.\n * @csspart special - Special date element of the calendar.\n * @csspart disabled - Disabled date element of the calendar.\n * @csspart single - Single selected date element of the calendar.\n * @csspart preview - Range selection preview date element of the calendar.\n * @csspart month - Month element of the calendar.\n * @csspart month-inner - Month inner element of the calendar.\n * @csspart year - Year element of the calendar.\n * @csspart year-inner - Year inner element of the calendar.\n * @csspart selected - Indicates selected state. Applies to date, month and year elements of the calendar.\n * @csspart current - Indicates current state. Applies to date, month and year elements of the calendar.\n */\nexport default class IgcCalendarComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<IgcCalendarBaseComponent>\n>(IgcCalendarBaseComponent) {\n public static readonly tagName = 'igc-calendar';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcCalendarComponent,\n IgcIconComponent,\n IgcDaysViewComponent,\n IgcMonthsViewComponent,\n IgcYearsViewComponent\n );\n }\n\n //#region Internal state\n\n private readonly _contentRef = createRef<HTMLDivElement>();\n\n private get _isDayView(): boolean {\n return this.activeView === 'days';\n }\n\n private get _isMonthView(): boolean {\n return this.activeView === 'months';\n }\n\n private get _isYearView(): boolean {\n return this.activeView === 'years';\n }\n\n /** The accessible name of a navigation button, based on what it pages through. */\n private _getNavigationLabel(direction: 'previous' | 'next'): string {\n const isPrevious = direction === 'previous';\n const strings = this.resourceStrings;\n\n switch (this.activeView) {\n case 'days':\n return (\n isPrevious\n ? strings.calendar_previous_month\n : strings.calendar_next_month\n )!;\n case 'months':\n return (\n isPrevious\n ? strings.calendar_previous_year\n : strings.calendar_next_year\n )!;\n case 'years':\n return formatString(\n (isPrevious\n ? strings.calendar_previous_years\n : strings.calendar_next_years)!,\n YEARS_PER_PAGE\n );\n }\n }\n\n /** The unit and the amount a single navigation step covers in the current view. */\n private _getPageStep(delta: -1 | 1): {\n unit: 'month' | 'year';\n increment: number;\n } {\n return {\n unit: this._isDayView ? 'month' : 'year',\n increment: (this._isYearView ? YEARS_PER_PAGE : 1) * delta,\n };\n }\n\n @state()\n private _activeDaysViewIndex = 0;\n\n @queryAll(IgcDaysViewComponent.tagName)\n private readonly _daysViews!: NodeListOf<IgcDaysViewComponent>;\n\n @query(IgcMonthsViewComponent.tagName)\n private readonly _monthsView!: IgcMonthsViewComponent;\n\n @query(IgcYearsViewComponent.tagName)\n private readonly _yearsView!: IgcYearsViewComponent;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether to hide the dates that do not belong to the current active month.\n * @attr hide-outside-days\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-outside-days', reflect: true })\n public hideOutsideDays = false;\n\n /**\n * Whether to render the calendar header part.\n * When the calendar selection is set to `multiple` the header is always hidden.\n *\n * @attr hide-header\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-header', reflect: true })\n public hideHeader = false;\n\n /**\n * The orientation of the calendar header.\n * @attr header-orientation\n * @default \"horizontal\"\n */\n @property({ reflect: true, attribute: 'header-orientation' })\n public headerOrientation: CalendarHeaderOrientation = 'horizontal';\n\n /**\n * The orientation of the calendar months when more than one month\n * is being shown.\n * @attr orientation\n * @default \"horizontal\"\n */\n @property()\n public orientation: ContentOrientation = 'horizontal';\n\n /**\n * The number of months displayed in the days view.\n * @attr visible-months\n * @default 1\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * The current active view of the component.\n * @attr active-view\n * @default \"days\"\n */\n @property({ attribute: 'active-view' })\n public activeView: CalendarActiveView = 'days';\n\n /** The options used to format the months and the weekdays in the calendar views. */\n @property({ attribute: false })\n public formatOptions: Pick<Intl.DateTimeFormatOptions, 'month' | 'weekday'> =\n { month: 'long', weekday: 'narrow' };\n\n //#endregion\n\n //#region Lifecycle hooks\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addKeybindings(this, {\n skip: this._shouldSkipKeyboardEvent,\n ref: this._contentRef,\n bindingDefaults: { repeat: true },\n })\n .set(arrowLeft, this._handleArrowKey.bind(this, 'day', -1))\n .set(arrowRight, this._handleArrowKey.bind(this, 'day', 1))\n .set(arrowUp, this._handleArrowKey.bind(this, 'week', -1))\n .set(arrowDown, this._handleArrowKey.bind(this, 'week', 1))\n .set([shiftKey, pageUpKey], this._handleShiftPageKeys.bind(this, -1))\n .set([shiftKey, pageDownKey], this._handleShiftPageKeys.bind(this, 1))\n .set(pageUpKey, this._handlePageKeys.bind(this, -1))\n .set(pageDownKey, this._handlePageKeys.bind(this, 1))\n .set(homeKey, this._handleHomeKey)\n .set(endKey, this._handleEndKey);\n }\n\n //#endregion\n\n //#region Keyboard event handlers\n\n private _shouldSkipKeyboardEvent(_: Element, event: KeyboardEvent): boolean {\n return !getElementFromPath(\n `${IgcDaysViewComponent.tagName}, ${IgcMonthsViewComponent.tagName}, ${IgcYearsViewComponent.tagName}`,\n event\n );\n }\n\n private _handleArrowKey(period: 'day' | 'week', delta: -1 | 1): void {\n if (this._isDayView) {\n const date = this._getNextEnabledDate(\n this._activeDate.add(period, delta),\n delta\n );\n this._updateViewIndex(date, delta);\n this._activeDate = date;\n } else {\n const monthOrYear = this._isMonthView ? 'month' : 'year';\n const monthOrYearDelta =\n (this._isMonthView ? MONTHS_PER_ROW : YEARS_PER_ROW) * delta;\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(\n monthOrYear,\n period === 'week' ? monthOrYearDelta : delta\n ),\n delta\n );\n }\n\n this[focusActiveDate]();\n }\n\n private _handlePageKeys(delta: -1 | 1): void {\n const { unit, increment } = this._getPageStep(delta);\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(unit, increment),\n increment\n );\n this[focusActiveDate]();\n }\n\n private _handleShiftPageKeys(delta: -1 | 1): void {\n if (this._isDayView) {\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add('year', delta),\n delta\n );\n this[focusActiveDate]();\n }\n }\n\n private _handleHomeKey(): void {\n this._activateEdgeOfView('start');\n }\n\n private _handleEndKey(): void {\n this._activateEdgeOfView('end');\n }\n\n /**\n * Moves the active date to the first or the last date of the current view, skipping\n * over the disabled dates towards the middle of it.\n */\n private _activateEdgeOfView(edge: 'start' | 'end'): void {\n const isStart = edge === 'start';\n const delta = isStart ? 1 : -1;\n let target: CalendarDay;\n\n switch (this.activeView) {\n case 'days': {\n const months = this._getActiveDates();\n const index = isStart ? 0 : months.length - 1;\n const month = months[index];\n\n target = isStart\n ? month.set({ date: 1 })\n : month.set({ month: month.month + 1, date: 0 });\n this._activeDaysViewIndex = index;\n break;\n }\n case 'months':\n target = this._activeDate.set({ month: isStart ? 0 : 11 });\n break;\n case 'years': {\n const { start, end } = getYearRange(this._activeDate, YEARS_PER_PAGE);\n target = this._activeDate.set({ year: isStart ? start : end });\n break;\n }\n }\n\n this._activeDate = this._getNextEnabledDate(target, delta);\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Event handlers\n\n private _handleMonthChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'days';\n\n this[focusActiveDate]();\n }\n\n private _handleYearChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _handleValueChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n\n const selection = selectDate(\n { value: this._value, values: this._values },\n CalendarDay.from(event.detail),\n { selection: this.selection, disabledDates: this._disabledDates }\n );\n\n if (!selection) {\n return;\n }\n\n this._value = selection.value;\n this._values = selection.values;\n\n this.emitEvent('igcChange', {\n detail: this._isSingle ? (this.value as Date) : this.values,\n });\n }\n\n private _handleActiveDateChange(event: CustomEvent<Date>): void {\n const view = event.target as IgcDaysViewComponent;\n const index = Array.from(this._daysViews).indexOf(view);\n\n if (index < 0) {\n return;\n }\n\n // Resolved before the state below is updated, since the dates of the views are\n // derived from it\n const renderedMonth = this._getActiveDates()[index];\n\n this._activeDaysViewIndex = index;\n this.activeDate = event.detail;\n\n // The cell holding the tab stop is about to be replaced, so the focus has to follow\n if (!areSameMonth(this._activeDate, renderedMonth)) {\n this[focusActiveDate]();\n }\n }\n\n private _handleRangePreviewChange(event: CustomEvent<Date>): void {\n this._rangePreviewDate = event.detail\n ? CalendarDay.from(event.detail)\n : undefined;\n }\n\n //#endregion\n\n //#region Internal navigation methods\n\n /** Makes the month rendered by the view at `viewIndex` the active one. */\n private _setActiveDaysView(viewIndex: number): void {\n this.activeDate = this._getActiveDates()[viewIndex].native;\n this._activeDaysViewIndex = viewIndex;\n }\n\n private _navigate(delta: 1 | -1): void {\n const { unit, increment } = this._getPageStep(delta);\n this._activeDate = this._activeDate.add(unit, increment);\n }\n\n private _navigatePrevious(): void {\n this._navigate(-1);\n }\n\n private _navigateNext(): void {\n this._navigate(1);\n }\n\n private _navigateToMonthView(viewIndex: number): void {\n this._setActiveDaysView(viewIndex);\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _navigateToYearView(viewIndex: number): void {\n if (this._isDayView) {\n this._setActiveDaysView(viewIndex);\n }\n this.activeView = 'years';\n\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Internal API\n\n /** @hidden @internal */\n public async [focusActiveDate](options?: FocusOptions): Promise<void> {\n await this.updateComplete;\n\n switch (this.activeView) {\n case 'days':\n return this._daysViews\n .item(this._activeDaysViewIndex)\n .focusActiveDate(options);\n case 'months':\n return this._monthsView.focusActiveDate(options);\n case 'years':\n return this._yearsView.focusActiveDate(options);\n }\n }\n\n private _updateViewIndex(date: CalendarDay, delta: -1 | 1): void {\n if (this.visibleMonths === 1) {\n return;\n }\n\n const index = this._activeDaysViewIndex;\n const view = CalendarDay.from(this._daysViews.item(index).activeDate);\n\n if (date.month !== view.month) {\n this._activeDaysViewIndex = clamp(\n index + delta,\n 0,\n this.visibleMonths - 1\n );\n }\n }\n\n private _getActiveDates(): CalendarDay[] {\n const current = this._activeDaysViewIndex;\n const length = Math.max(this.visibleMonths, 1);\n\n return Array.from({ length }, (_, i) =>\n this._activeDate.add('month', i - current)\n );\n }\n\n /**\n * Returns the first enabled date starting from `start` and moving day by day in the\n * direction of `delta`.\n *\n * @remarks\n * The search is bounded, since the disabled dates can describe an open-ended range\n * which no date in the given direction satisfies. The current active date is returned\n * when nothing is reachable.\n */\n private _getNextEnabledDate(start: CalendarDay, delta: number): CalendarDay {\n const disabled = this._disabledDates;\n const step = Math.sign(delta) || 1;\n let current = start;\n\n for (let i = 0; i <= MAX_DISABLED_DATE_SKIP; i++) {\n if (!isDateInRanges(current, disabled)) {\n return current;\n }\n current = current.add('day', step);\n }\n\n return this._activeDate;\n }\n\n //#endregion\n\n protected _renderNavigationButtons() {\n const parts = {\n 'navigation-button': true,\n vertical: this.orientation === 'vertical',\n };\n\n return html`\n <div part=\"navigation-buttons\">\n <button\n part=${partMap(parts)}\n aria-label=${this._getNavigationLabel('previous')}\n @click=${this._navigatePrevious}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_prev\"\n collection=\"default\"\n ></igc-icon>\n </button>\n\n <button\n part=${partMap(parts)}\n aria-label=${this._getNavigationLabel('next')}\n @click=${this._navigateNext}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_next\"\n collection=\"default\"\n ></igc-icon>\n </button>\n </div>\n `;\n }\n\n protected _renderMonthButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const formatter = getDateFormatter();\n const label = formatter.formatDateTime(active.native, this.locale, {\n month: 'long',\n });\n const value = formatter.formatDateTime(active.native, this.locale, {\n month: this.formatOptions.month,\n });\n const ariaLabel = `${label}, ${this.resourceStrings.calendar_select_month}`;\n\n return html`\n <button\n part=\"months-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToMonthView(viewIndex)}\n >\n ${value}\n </button>\n `;\n }\n\n /** The year with the unit of the locale - `2025年` for `ja`, `2025 г.` for `bg`. */\n protected _formatYear(day: CalendarDay): string {\n return getDateFormatter().formatDateTime(day.native, this.locale, {\n year: 'numeric',\n });\n }\n\n protected _renderYearButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const year = this._formatYear(active);\n const ariaLabel = `${year}, ${this.resourceStrings.calendar_select_year}`;\n\n return html`\n <button\n part=\"years-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToYearView(viewIndex)}\n >\n ${year}\n </button>\n `;\n }\n\n /**\n * Renders the off screen live region announcing the period the calendar navigated to.\n *\n * @remarks\n * A single region for the whole calendar - one per rendered month would announce the\n * same navigation several times over. The years view has its visible years range as a\n * live region of its own.\n */\n protected _renderActivePeriod() {\n if (this._isYearView) {\n return nothing;\n }\n\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'long',\n year: 'numeric',\n });\n\n return html`\n <span class=\"aria-off-screen\" aria-live=\"polite\">\n ${this._isDayView ? format(this._activeDate.native) : this._formatYear(this._activeDate)}\n </span>\n `;\n }\n\n protected _renderYearRangeNavigation(active: CalendarDay): TemplateResult {\n const { start, end } = getYearRange(active, YEARS_PER_PAGE);\n\n return html`\n <span part=\"years-range\" aria-live=\"polite\"> ${start} - ${end} </span>\n `;\n }\n\n /** Renders the month and year buttons of the days view in the field order of the locale. */\n protected _renderDayViewNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult[] {\n const parts = getDateFormatter().formatDateTimeToParts(\n active.native,\n this.locale,\n { year: 'numeric', month: this.formatOptions.month }\n );\n const yearFirst = isDatePartBefore(parts, 'year', 'month');\n\n const month = this._renderMonthButtonNavigation(active, viewIndex);\n const year = this._renderYearButtonNavigation(active, viewIndex);\n\n return yearFirst ? [year, month] : [month, year];\n }\n\n protected _renderNavigation(\n date?: CalendarDay,\n showButtons = true,\n viewIndex = 0\n ): TemplateResult {\n const activeDate = date ?? this._activeDate;\n\n return html`\n <div part=\"navigation\">\n <div part=\"picker-dates\">\n ${\n this._isDayView\n ? this._renderDayViewNavigation(activeDate, viewIndex)\n : nothing\n }\n ${\n this._isMonthView\n ? this._renderYearButtonNavigation(activeDate, viewIndex)\n : nothing\n }\n ${\n this._isYearView\n ? this._renderYearRangeNavigation(activeDate)\n : nothing\n }\n </div>\n ${showButtons ? this._renderNavigationButtons() : nothing}\n </div>\n `;\n }\n\n protected _renderHeader() {\n if (this.hideHeader || this._isMultiple) {\n return nothing;\n }\n\n const title = this._isSingle\n ? this.resourceStrings.calendar_select_date\n : this.resourceStrings.calendar_range_placeholder;\n\n // A label and the value it describes, not a document section, so no\n // headings. A component cannot know which level fits its page. The themes\n // set the typography of both parts.\n return html`\n <div part=\"header\">\n <div part=\"header-title\">\n <slot name=\"title\">${title}</slot>\n </div>\n <div part=\"header-date\">${this._renderHeaderDate()}</div>\n </div>\n `;\n }\n\n protected _renderHeaderDateSingle(): TemplateResult {\n const date = this.value ?? CalendarDay.today.native;\n const { locale } = this;\n const formatter = getDateFormatter();\n const weekdayOptions: Intl.DateTimeFormatOptions = { weekday: 'short' };\n const dateOptions: Intl.DateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n };\n\n if (this.headerOrientation !== 'vertical') {\n const formatted = formatter.formatDateTime(date, locale, {\n ...weekdayOptions,\n ...dateOptions,\n });\n return html`<slot name=\"header-date\">${formatted}</slot>`;\n }\n\n // The weekday and the month/day on separate lines, in the field order of the locale\n const parts = formatter.formatDateTimeToParts(date, locale, {\n ...weekdayOptions,\n ...dateOptions,\n });\n const weekday = formatter.formatDateTime(date, locale, weekdayOptions);\n const monthDay = formatter.formatDateTime(date, locale, dateOptions);\n const [first, second] = isDatePartBefore(parts, 'weekday', 'month')\n ? [weekday, monthDay]\n : [monthDay, weekday];\n\n return html`<slot name=\"header-date\">${first}<br />${second}</slot>`;\n }\n\n protected _renderHeaderDateRange(): TemplateResult {\n const values = this.values;\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'short',\n day: 'numeric',\n });\n const { calendar_range_label_start, calendar_range_label_end } =\n this.resourceStrings;\n\n const start = this._hasValues\n ? format(firstOf(values))\n : calendar_range_label_start;\n const end =\n this._hasValues && values.length > 1\n ? format(lastOf(values))\n : calendar_range_label_end;\n\n return html`\n <slot name=\"header-date\">\n <span>${start}</span>\n <span> - </span>\n <span>${end}</span>\n </slot>\n `;\n }\n\n protected _renderHeaderDate(): TemplateResult {\n return this._isSingle\n ? this._renderHeaderDateSingle()\n : this._renderHeaderDateRange();\n }\n\n protected _renderDaysView(): TemplateResult {\n const activeDates = this._getActiveDates();\n const horizontal = this.orientation === 'horizontal';\n const length = activeDates.length - 1;\n const format = this.formatOptions\n .weekday as Intl.DateTimeFormatOptions['weekday'];\n const weekStart = this.weekStart;\n\n return html`${activeDates.map(\n (date, idx) => html`\n <div part=\"days-view-container\">\n ${this._renderNavigation(\n date,\n horizontal ? idx === length : idx === 0,\n idx\n )}\n <igc-days-view\n @igcChange=${this._handleValueChange}\n @igcActiveDateChange=${this._handleActiveDateChange}\n @igcRangePreviewDateChange=${this._handleRangePreviewChange}\n part=\"days-view\"\n exportparts=\"days-row, label, label-inner, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, content-vertical, weekend, range, special, disabled, single, preview\"\n .active=${this._activeDaysViewIndex === idx}\n .activeDate=${date.native}\n .disabledDates=${this.disabledDates}\n .hideLeadingDays=${this.hideOutsideDays || idx !== 0}\n .hideTrailingDays=${this.hideOutsideDays || idx !== length}\n .locale=${this.locale}\n .rangePreviewDate=${this._rangePreviewDate?.native}\n .resourceStrings=${this.resourceStrings}\n .selection=${this.selection}\n .showWeekNumbers=${this.showWeekNumbers}\n .specialDates=${this._specialDates}\n .value=${this.value}\n .values=${this.values}\n .weekDayFormat=${format!}\n .weekStart=${weekStart}\n ></igc-days-view>\n </div>\n `\n )}`;\n }\n\n protected _renderMonthView(): TemplateResult {\n const format = this.formatOptions\n .month as Intl.DateTimeFormatOptions['month'];\n\n return html`\n ${this._renderNavigation()}\n <igc-months-view\n part=\"months-view\"\n exportparts=\"months-row, month, selected, month-inner, current\"\n @igcChange=${this._handleMonthChange}\n .value=${this.activeDate}\n .locale=${this.locale}\n .monthFormat=${format!}\n ></igc-months-view>\n `;\n }\n\n protected _renderYearView(): TemplateResult {\n return html`\n ${this._renderNavigation()}\n <igc-years-view\n part=\"years-view\"\n exportparts=\"years-row, year, selected, year-inner, current\"\n @igcChange=${this._handleYearChange}\n .value=${this.activeDate}\n .yearsPerPage=${YEARS_PER_PAGE}\n ></igc-years-view>\n `;\n }\n\n protected override render() {\n const parts = {\n content: true,\n 'content-vertical': this._isDayView && this.orientation === 'vertical',\n };\n\n return html`\n ${this._renderHeader()} ${this._renderActivePeriod()}\n <div ${ref(this._contentRef)} part=${partMap(parts)}>\n ${choose(this.activeView, [\n ['days', () => this._renderDaysView()],\n ['months', () => this._renderMonthView()],\n ['years', () => this._renderYearView()],\n ])}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-calendar': IgcCalendarComponent;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type PropertyValues, type TemplateResult } from 'lit';
1
+ import { type TemplateResult } from 'lit';
2
2
  import { CalendarDay } from '#internals/date/model.js';
3
3
  import type { Constructor } from '#internals/mixins/constructor.js';
4
4
  import { IgcCalendarBaseComponent } from '../base.js';
@@ -63,7 +63,6 @@ export default class IgcDaysViewComponent extends IgcDaysViewComponent_base {
63
63
  static readonly tagName = "igc-days-view";
64
64
  static styles: import("lit").CSSResult;
65
65
  static register(): void;
66
- private _dates;
67
66
  private _activeDay?;
68
67
  private get _rangeStart();
69
68
  private get _rangeEnd();
@@ -97,15 +96,13 @@ export default class IgcDaysViewComponent extends IgcDaysViewComponent_base {
97
96
  */
98
97
  weekDayFormat: 'long' | 'short' | 'narrow';
99
98
  constructor();
100
- /** @internal */
101
- protected update(props: PropertyValues): void;
102
99
  protected _handleInteraction(event: Event): void;
103
100
  /**
104
101
  * Applies the activation of `value` to the selection of this view.
105
102
  *
106
103
  * @remarks
107
- * A view inside a calendar has its selection pushed back down by it on the next render.
108
- * This is what keeps a stand-alone one selecting on its own.
104
+ * A calendar writes the selection back to its views on the next render. This
105
+ * keeps a stand-alone view able to select.
109
106
  */
110
107
  private _selectDate;
111
108
  /** Whether `day` is selected. Disabled dates are excluded by the caller. */
@@ -123,8 +120,8 @@ export default class IgcDaysViewComponent extends IgcDaysViewComponent_base {
123
120
  protected _renderDayWithProps(day: CalendarDay, props: DayProperties, context: DayRenderContext): TemplateResult;
124
121
  protected _renderHeaderWeekNumber(): TemplateResult<1>;
125
122
  protected _renderWeekNumber(start: CalendarDay, last: boolean): TemplateResult<1>;
126
- protected _renderHeaders(): TemplateResult<1>;
127
- protected _renderWeeks(): Generator<TemplateResult>;
123
+ protected _renderHeaders(dates: CalendarDay[]): TemplateResult<1>;
124
+ protected _renderWeeks(dates: CalendarDay[]): Generator<TemplateResult>;
128
125
  protected render(): TemplateResult<1>;
129
126
  }
130
127
  declare global {