igniteui-webcomponents 4.11.0 → 5.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +168 -110
  3. package/components/accordion/accordion.d.ts +2 -2
  4. package/components/accordion/accordion.js +25 -35
  5. package/components/accordion/accordion.js.map +1 -1
  6. package/components/avatar/avatar.d.ts +1 -3
  7. package/components/avatar/avatar.js +1 -3
  8. package/components/avatar/avatar.js.map +1 -1
  9. package/components/avatar/themes/avatar.base.css.js +1 -1
  10. package/components/avatar/themes/avatar.base.css.js.map +1 -1
  11. package/components/badge/badge.d.ts +2 -1
  12. package/components/badge/badge.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/button/button-base.d.ts +3 -4
  16. package/components/button/button-base.js +1 -9
  17. package/components/button/button-base.js.map +1 -1
  18. package/components/button/button.d.ts +3 -7
  19. package/components/button/button.js +4 -5
  20. package/components/button/button.js.map +1 -1
  21. package/components/button/icon-button.d.ts +2 -2
  22. package/components/button/icon-button.js +0 -3
  23. package/components/button/icon-button.js.map +1 -1
  24. package/components/button/themes/button/button.base.css.js +1 -1
  25. package/components/button/themes/button/button.base.css.js.map +1 -1
  26. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  27. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  28. package/components/button-group/themes/button.base.css.js +1 -1
  29. package/components/button-group/themes/button.base.css.js.map +1 -1
  30. package/components/button-group/themes/group.base.css.js +1 -1
  31. package/components/button-group/themes/group.base.css.js.map +1 -1
  32. package/components/calendar/base.d.ts +65 -0
  33. package/components/calendar/base.js +150 -0
  34. package/components/calendar/base.js.map +1 -0
  35. package/components/calendar/calendar.d.ts +113 -61
  36. package/components/calendar/calendar.js +417 -514
  37. package/components/calendar/calendar.js.map +1 -1
  38. package/components/calendar/days-view/days-view.d.ts +43 -46
  39. package/components/calendar/days-view/days-view.js +269 -340
  40. package/components/calendar/days-view/days-view.js.map +1 -1
  41. package/components/calendar/helpers.d.ts +30 -0
  42. package/components/calendar/helpers.js +99 -0
  43. package/components/calendar/helpers.js.map +1 -0
  44. package/components/calendar/model.d.ts +55 -0
  45. package/components/calendar/model.js +94 -0
  46. package/components/calendar/model.js.map +1 -0
  47. package/components/calendar/months-view/months-view.d.ts +12 -12
  48. package/components/calendar/months-view/months-view.js +72 -79
  49. package/components/calendar/months-view/months-view.js.map +1 -1
  50. package/components/calendar/themes/calendar.base.css.js +1 -1
  51. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  52. package/components/calendar/types.d.ts +16 -0
  53. package/components/calendar/types.js +10 -0
  54. package/components/calendar/types.js.map +1 -0
  55. package/components/calendar/years-view/years-view.d.ts +13 -12
  56. package/components/calendar/years-view/years-view.js +58 -73
  57. package/components/calendar/years-view/years-view.js.map +1 -1
  58. package/components/card/themes/card.actions.base.css.js +1 -1
  59. package/components/card/themes/card.actions.base.css.js.map +1 -1
  60. package/components/card/themes/card.content.base.css.js +1 -1
  61. package/components/card/themes/card.content.base.css.js.map +1 -1
  62. package/components/card/themes/card.header.base.css.js +1 -1
  63. package/components/card/themes/card.header.base.css.js.map +1 -1
  64. package/components/card/themes/card.media.base.css.js +1 -1
  65. package/components/card/themes/card.media.base.css.js.map +1 -1
  66. package/components/card/themes/container.base.css.js +1 -1
  67. package/components/card/themes/container.base.css.js.map +1 -1
  68. package/components/checkbox/checkbox-base.d.ts +8 -5
  69. package/components/checkbox/checkbox-base.js +8 -15
  70. package/components/checkbox/checkbox-base.js.map +1 -1
  71. package/components/checkbox/checkbox.d.ts +2 -4
  72. package/components/checkbox/checkbox.js.map +1 -1
  73. package/components/checkbox/switch.d.ts +1 -3
  74. package/components/checkbox/switch.js.map +1 -1
  75. package/components/checkbox/themes/checkbox.base.css.js +1 -1
  76. package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
  77. package/components/checkbox/themes/switch.base.css.js +1 -1
  78. package/components/checkbox/themes/switch.base.css.js.map +1 -1
  79. package/components/checkbox/validators.d.ts +3 -0
  80. package/components/checkbox/validators.js +5 -0
  81. package/components/checkbox/validators.js.map +1 -0
  82. package/components/chip/chip.d.ts +4 -3
  83. package/components/chip/chip.js +11 -19
  84. package/components/chip/chip.js.map +1 -1
  85. package/components/chip/themes/chip.base.css.js +1 -1
  86. package/components/chip/themes/chip.base.css.js.map +1 -1
  87. package/components/chip/themes/shared/chip.common.css.js +1 -1
  88. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  89. package/components/combo/combo.d.ts +36 -54
  90. package/components/combo/combo.js +36 -59
  91. package/components/combo/combo.js.map +1 -1
  92. package/components/combo/themes/combo-header.base.css.js +1 -1
  93. package/components/combo/themes/combo-header.base.css.js.map +1 -1
  94. package/components/combo/themes/combo-item.base.css.js +1 -1
  95. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  96. package/components/combo/themes/combo.base.css.js +1 -1
  97. package/components/combo/themes/combo.base.css.js.map +1 -1
  98. package/components/combo/types.d.ts +2 -2
  99. package/components/combo/types.js.map +1 -1
  100. package/components/combo/validators.d.ts +3 -0
  101. package/components/combo/validators.js +9 -0
  102. package/components/combo/validators.js.map +1 -0
  103. package/components/common/controllers/key-bindings.d.ts +1 -0
  104. package/components/common/controllers/key-bindings.js.map +1 -1
  105. package/components/common/controllers/mutation-observer.d.ts +1 -0
  106. package/components/common/controllers/mutation-observer.js.map +1 -1
  107. package/components/common/controllers/root-click.d.ts +4 -2
  108. package/components/common/controllers/root-click.js +13 -7
  109. package/components/common/controllers/root-click.js.map +1 -1
  110. package/components/common/definitions/defineAllComponents.js +0 -2
  111. package/components/common/definitions/defineAllComponents.js.map +1 -1
  112. package/components/common/localization/intl-formatters.d.ts +17 -0
  113. package/components/common/localization/intl-formatters.js +46 -0
  114. package/components/common/localization/intl-formatters.js.map +1 -0
  115. package/components/common/mixins/alert.d.ts +3 -3
  116. package/components/common/mixins/alert.js +6 -4
  117. package/components/common/mixins/alert.js.map +1 -1
  118. package/components/common/mixins/combo-box.d.ts +4 -3
  119. package/components/common/mixins/combo-box.js +16 -10
  120. package/components/common/mixins/combo-box.js.map +1 -1
  121. package/components/common/mixins/form-associated.d.ts +1 -1
  122. package/components/common/mixins/form-associated.js +4 -2
  123. package/components/common/mixins/form-associated.js.map +1 -1
  124. package/components/common/util.d.ts +26 -0
  125. package/components/common/util.js +34 -0
  126. package/components/common/util.js.map +1 -1
  127. package/components/date-picker/date-picker.d.ts +7 -10
  128. package/components/date-picker/date-picker.js +16 -33
  129. package/components/date-picker/date-picker.js.map +1 -1
  130. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  131. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  132. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  133. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  134. package/components/date-picker/validators.d.ts +3 -0
  135. package/components/date-picker/validators.js +15 -0
  136. package/components/date-picker/validators.js.map +1 -0
  137. package/components/date-time-input/date-time-input.d.ts +3 -22
  138. package/components/date-time-input/date-time-input.js +8 -36
  139. package/components/date-time-input/date-time-input.js.map +1 -1
  140. package/components/date-time-input/date-util.js +3 -1
  141. package/components/date-time-input/date-util.js.map +1 -1
  142. package/components/date-time-input/validators.d.ts +3 -0
  143. package/components/date-time-input/validators.js +18 -0
  144. package/components/date-time-input/validators.js.map +1 -0
  145. package/components/dialog/dialog.d.ts +12 -25
  146. package/components/dialog/dialog.js +55 -77
  147. package/components/dialog/dialog.js.map +1 -1
  148. package/components/dialog/themes/dialog.base.css.js +1 -1
  149. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  150. package/components/dialog/themes/shared/dialog.common.css.js +1 -1
  151. package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
  152. package/components/divider/divider.js.map +1 -1
  153. package/components/divider/themes/divider.base.css.js +1 -1
  154. package/components/divider/themes/divider.base.css.js.map +1 -1
  155. package/components/dropdown/dropdown-group.d.ts +1 -1
  156. package/components/dropdown/dropdown-group.js +5 -3
  157. package/components/dropdown/dropdown-group.js.map +1 -1
  158. package/components/dropdown/dropdown.d.ts +4 -11
  159. package/components/dropdown/dropdown.js +10 -23
  160. package/components/dropdown/dropdown.js.map +1 -1
  161. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  162. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  163. package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
  164. package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
  165. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  166. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  167. package/components/dropdown/themes/dropdown.base.css.js +1 -1
  168. package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
  169. package/components/expansion-panel/expansion-panel.d.ts +10 -10
  170. package/components/expansion-panel/expansion-panel.js +39 -39
  171. package/components/expansion-panel/expansion-panel.js.map +1 -1
  172. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  173. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  174. package/components/icon/icon-references.d.ts +28 -0
  175. package/components/icon/icon-references.js +151 -0
  176. package/components/icon/icon-references.js.map +1 -0
  177. package/components/icon/icon-state.broadcast.d.ts +10 -0
  178. package/components/icon/icon-state.broadcast.js +36 -0
  179. package/components/icon/icon-state.broadcast.js.map +1 -0
  180. package/components/icon/icon.d.ts +3 -3
  181. package/components/icon/icon.js +13 -7
  182. package/components/icon/icon.js.map +1 -1
  183. package/components/icon/icon.registry.d.ts +14 -14
  184. package/components/icon/icon.registry.js +70 -26
  185. package/components/icon/icon.registry.js.map +1 -1
  186. package/components/icon/internal-icons-lib.d.ts +2 -2
  187. package/components/icon/internal-icons-lib.js +2 -2
  188. package/components/icon/internal-icons-lib.js.map +1 -1
  189. package/components/icon/registry/default-map.d.ts +12 -0
  190. package/components/icon/registry/default-map.js +31 -0
  191. package/components/icon/registry/default-map.js.map +1 -0
  192. package/components/icon/registry/parser.d.ts +6 -0
  193. package/components/icon/registry/parser.js +21 -0
  194. package/components/icon/registry/parser.js.map +1 -0
  195. package/components/icon/registry/types.d.ts +34 -0
  196. package/components/icon/registry/types.js +7 -0
  197. package/components/icon/registry/types.js.map +1 -0
  198. package/components/icon/themes/icon.base.css.js +1 -1
  199. package/components/icon/themes/icon.base.css.js.map +1 -1
  200. package/components/input/input-base.d.ts +8 -21
  201. package/components/input/input-base.js +12 -41
  202. package/components/input/input-base.js.map +1 -1
  203. package/components/input/input.d.ts +3 -29
  204. package/components/input/input.js +4 -78
  205. package/components/input/input.js.map +1 -1
  206. package/components/input/themes/input.base.css.js +1 -1
  207. package/components/input/themes/input.base.css.js.map +1 -1
  208. package/components/input/validators.d.ts +4 -0
  209. package/components/input/validators.js +30 -0
  210. package/components/input/validators.js.map +1 -0
  211. package/components/list/list.d.ts +1 -3
  212. package/components/list/list.js +1 -2
  213. package/components/list/list.js.map +1 -1
  214. package/components/list/themes/container.base.css.js +1 -1
  215. package/components/list/themes/container.base.css.js.map +1 -1
  216. package/components/mask-input/mask-input-base.d.ts +3 -2
  217. package/components/mask-input/mask-input-base.js.map +1 -1
  218. package/components/mask-input/mask-input.d.ts +1 -4
  219. package/components/mask-input/mask-input.js +7 -17
  220. package/components/mask-input/mask-input.js.map +1 -1
  221. package/components/mask-input/validators.d.ts +3 -0
  222. package/components/mask-input/validators.js +11 -0
  223. package/components/mask-input/validators.js.map +1 -0
  224. package/components/nav-drawer/nav-drawer-item.d.ts +1 -5
  225. package/components/nav-drawer/nav-drawer-item.js +9 -10
  226. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  227. package/components/nav-drawer/nav-drawer.d.ts +4 -3
  228. package/components/nav-drawer/nav-drawer.js +18 -7
  229. package/components/nav-drawer/nav-drawer.js.map +1 -1
  230. package/components/nav-drawer/themes/container.base.css.js +1 -1
  231. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  232. package/components/nav-drawer/themes/header-item.base.css.js +1 -1
  233. package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
  234. package/components/nav-drawer/themes/item.base.css.js +1 -1
  235. package/components/nav-drawer/themes/item.base.css.js.map +1 -1
  236. package/components/navbar/themes/navbar.base.css.js +1 -1
  237. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  238. package/components/popover/themes/light/popover.base.css.js +1 -1
  239. package/components/popover/themes/light/popover.base.css.js.map +1 -1
  240. package/components/progress/base.d.ts +2 -1
  241. package/components/progress/base.js.map +1 -1
  242. package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
  243. package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
  244. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  245. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  246. package/components/radio/radio.d.ts +9 -9
  247. package/components/radio/radio.js +17 -31
  248. package/components/radio/radio.js.map +1 -1
  249. package/components/radio/themes/radio.base.css.js +1 -1
  250. package/components/radio/themes/radio.base.css.js.map +1 -1
  251. package/components/radio/validators.d.ts +3 -0
  252. package/components/radio/validators.js +13 -0
  253. package/components/radio/validators.js.map +1 -0
  254. package/components/radio-group/radio-group.base.css.js +1 -1
  255. package/components/radio-group/radio-group.base.css.js.map +1 -1
  256. package/components/radio-group/radio-group.js.map +1 -1
  257. package/components/rating/rating.d.ts +1 -9
  258. package/components/rating/rating.js +6 -16
  259. package/components/rating/rating.js.map +1 -1
  260. package/components/rating/themes/rating-symbol.base.css.js +1 -1
  261. package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
  262. package/components/rating/themes/rating.base.css.js +1 -1
  263. package/components/rating/themes/rating.base.css.js.map +1 -1
  264. package/components/ripple/ripple.material.css.js +1 -1
  265. package/components/ripple/ripple.material.css.js.map +1 -1
  266. package/components/select/select.d.ts +5 -33
  267. package/components/select/select.js +23 -66
  268. package/components/select/select.js.map +1 -1
  269. package/components/select/themes/select.base.css.js +1 -1
  270. package/components/select/themes/select.base.css.js.map +1 -1
  271. package/components/select/validators.d.ts +3 -0
  272. package/components/select/validators.js +5 -0
  273. package/components/select/validators.js.map +1 -0
  274. package/components/slider/range-slider.d.ts +0 -16
  275. package/components/slider/range-slider.js +0 -18
  276. package/components/slider/range-slider.js.map +1 -1
  277. package/components/slider/themes/slider.base.css.js +1 -1
  278. package/components/slider/themes/slider.base.css.js.map +1 -1
  279. package/components/snackbar/snackbar.js +3 -7
  280. package/components/snackbar/snackbar.js.map +1 -1
  281. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  282. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  283. package/components/stepper/animations.d.ts +7 -1
  284. package/components/stepper/animations.js +63 -15
  285. package/components/stepper/animations.js.map +1 -1
  286. package/components/stepper/step.d.ts +3 -1
  287. package/components/stepper/step.js +17 -6
  288. package/components/stepper/step.js.map +1 -1
  289. package/components/stepper/themes/step/step.base.css.js +1 -1
  290. package/components/stepper/themes/step/step.base.css.js.map +1 -1
  291. package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
  292. package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
  293. package/components/stepper/themes/stepper/stepper.bootstrap.css.js +1 -1
  294. package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
  295. package/components/stepper/themes/stepper/stepper.fluent.css.js +1 -1
  296. package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
  297. package/components/stepper/themes/stepper/stepper.indigo.css.js +1 -1
  298. package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
  299. package/components/tabs/tabs.js +2 -3
  300. package/components/tabs/tabs.js.map +1 -1
  301. package/components/tabs/themes/tab.base.css.js +1 -1
  302. package/components/tabs/themes/tab.base.css.js.map +1 -1
  303. package/components/tabs/themes/tabs.base.css.js +1 -1
  304. package/components/tabs/themes/tabs.base.css.js.map +1 -1
  305. package/components/textarea/textarea.d.ts +13 -16
  306. package/components/textarea/textarea.js +10 -12
  307. package/components/textarea/textarea.js.map +1 -1
  308. package/components/textarea/themes/textarea.base.css.js +1 -1
  309. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  310. package/components/textarea/validators.d.ts +3 -0
  311. package/components/textarea/validators.js +7 -0
  312. package/components/textarea/validators.js.map +1 -0
  313. package/components/toast/themes/toast.base.css.js +1 -1
  314. package/components/toast/themes/toast.base.css.js.map +1 -1
  315. package/components/tree/themes/container.base.css.js +1 -1
  316. package/components/tree/themes/container.base.css.js.map +1 -1
  317. package/components/tree/themes/item.base.css.js +1 -1
  318. package/components/tree/themes/item.base.css.js.map +1 -1
  319. package/components/tree/tree-item.d.ts +4 -4
  320. package/components/tree/tree-item.js +11 -23
  321. package/components/tree/tree-item.js.map +1 -1
  322. package/components/tree/tree.d.ts +3 -4
  323. package/components/tree/tree.js +1 -37
  324. package/components/tree/tree.js.map +1 -1
  325. package/components/types.d.ts +3 -0
  326. package/components/types.js +2 -0
  327. package/components/types.js.map +1 -0
  328. package/custom-elements.json +30656 -31315
  329. package/igniteui-webcomponents.css-data.json +5 -928
  330. package/igniteui-webcomponents.html-data.json +4 -2699
  331. package/index.d.ts +5 -4
  332. package/index.js +2 -3
  333. package/index.js.map +1 -1
  334. package/package.json +1 -1
  335. package/theming/config.js +3 -3
  336. package/theming/config.js.map +1 -1
  337. package/theming/theming-controller.d.ts +4 -6
  338. package/theming/theming-controller.js +30 -34
  339. package/theming/theming-controller.js.map +1 -1
  340. package/theming/theming-decorator.d.ts +29 -11
  341. package/theming/theming-decorator.js +21 -7
  342. package/theming/theming-decorator.js.map +1 -1
  343. package/theming/theming-event.js.map +1 -1
  344. package/theming/types.d.ts +5 -0
  345. package/theming/types.js.map +1 -1
  346. package/theming/utils.d.ts +1 -1
  347. package/theming/utils.js +8 -8
  348. package/theming/utils.js.map +1 -1
  349. package/web-types.json +12 -7621
  350. package/components/calendar/common/calendar-base.d.ts +0 -40
  351. package/components/calendar/common/calendar-base.js +0 -118
  352. package/components/calendar/common/calendar-base.js.map +0 -1
  353. package/components/calendar/common/calendar.model.d.ts +0 -128
  354. package/components/calendar/common/calendar.model.js +0 -246
  355. package/components/calendar/common/calendar.model.js.map +0 -1
  356. package/components/calendar/common/utils.d.ts +0 -12
  357. package/components/calendar/common/utils.js +0 -54
  358. package/components/calendar/common/utils.js.map +0 -1
  359. package/components/common/decorators/alternateName.d.ts +0 -7
  360. package/components/common/decorators/alternateName.js +0 -4
  361. package/components/common/decorators/alternateName.js.map +0 -1
  362. package/components/common/decorators/blazorSuppress.d.ts +0 -5
  363. package/components/common/decorators/blazorSuppress.js +0 -4
  364. package/components/common/decorators/blazorSuppress.js.map +0 -1
  365. package/components/common/decorators/blazorTwoWayBind.d.ts +0 -7
  366. package/components/common/decorators/blazorTwoWayBind.js +0 -4
  367. package/components/common/decorators/blazorTwoWayBind.js.map +0 -1
  368. package/components/common/mixins/sizable.d.ts +0 -13
  369. package/components/common/mixins/sizable.js +0 -27
  370. package/components/common/mixins/sizable.js.map +0 -1
  371. package/components/form/form.d.ts +0 -48
  372. package/components/form/form.js +0 -158
  373. package/components/form/form.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport { themeSymbol, themes } from '../../theming/theming-decorator.js';\nimport type { Theme } from '../../theming/types.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n IgcCalendarResourceStringEN,\n type IgcCalendarResourceStrings,\n} from '../common/i18n/calendar.resources.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { SizableMixin } from '../common/mixins/sizable.js';\nimport { partNameMap } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport {\n IgcCalendarBaseComponent,\n type IgcCalendarBaseEventMap,\n MONTHS_PER_ROW,\n YEARS_PER_ROW,\n} from './common/calendar-base.js';\nimport {\n type ICalendarDate,\n TimeDeltaInterval,\n} from './common/calendar.model.js';\nimport { calculateYearsRangeStart, setDateSafe } from './common/utils.js';\nimport IgcDaysViewComponent from './days-view/days-view.js';\nimport IgcMonthsViewComponent from './months-view/months-view.js';\nimport { styles } from './themes/calendar.base.css.js';\nimport { all } from './themes/calendar.js';\nimport IgcYearsViewComponent from './years-view/years-view.js';\n\nexport const focusActiveDate = Symbol();\n\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 *\n * @fires igcChange - Emitted when calendar changes its value.\n *\n * @csspart content - The content container.\n * @csspart days-view - The days view container.\n * @csspart months-view - The months view container.\n * @csspart years-view - The years view container.\n * @csspart header - The header container.\n * @csspart header-title - The header title container.\n * @csspart header-date - The header date container.\n * @csspart navigation - The navigation container.\n * @csspart months-navigation - The months navigation container.\n * @csspart years-navigation - The years navigation container.\n * @csspart years-range - The years range container.\n * @csspart navigation-buttons - The navigation buttons container.\n * @csspart navigation-button - The navigation button container.\n * @csspart navigation-button vertical - The navigation button container\n * when calendar orientation is vertical.\n * @csspart days-view-container - The days view container.\n */\n@themes(all)\nexport default class IgcCalendarComponent extends SizableMixin(\n EventEmitterMixin<\n IgcCalendarBaseEventMap,\n Constructor<IgcCalendarBaseComponent>\n >(IgcCalendarBaseComponent)\n) {\n public static readonly tagName = 'igc-calendar';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcCalendarComponent,\n IgcIconComponent,\n IgcDaysViewComponent,\n IgcMonthsViewComponent,\n IgcYearsViewComponent\n );\n }\n\n private formatterMonth!: Intl.DateTimeFormat;\n private formatterWeekday!: Intl.DateTimeFormat;\n private formatterMonthDay!: Intl.DateTimeFormat;\n private declare readonly [themeSymbol]: Theme;\n\n @state()\n private rangePreviewDate?: Date;\n\n @state()\n private activeDaysViewIndex = 0;\n\n @queryAll('igc-days-view')\n private daysViews!: NodeList;\n\n @query('igc-months-view')\n private monthsView!: IgcMonthsViewComponent;\n\n @query('igc-years-view')\n private yearsView!: IgcYearsViewComponent;\n\n /** Controls the visibility of the dates that do not belong to the current month. */\n @property({ type: Boolean, attribute: 'hide-outside-days' })\n public hideOutsideDays = false;\n\n /** Determines whether the calendar hides its header. Even if set to false, the header is not displayed for `multiple` selection. */\n @property({ type: Boolean, attribute: 'hide-header' })\n public hideHeader = false;\n\n /** The orientation of the header. */\n @property({ attribute: 'header-orientation', reflect: true })\n public headerOrientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** The orientation of the multiple months displayed in days view. */\n @property()\n public orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /** The number of months displayed in days view. */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /** The active view. */\n @property({ attribute: 'active-view' })\n public activeView: 'days' | 'months' | 'years' = '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 {\n month: 'long',\n weekday: 'narrow',\n };\n\n /** The resource strings. */\n @property({ attribute: false })\n public resourceStrings: IgcCalendarResourceStrings =\n IgcCalendarResourceStringEN;\n\n @watch('formatOptions')\n @watch('locale')\n protected formattersChange() {\n this.initFormatters();\n }\n\n constructor() {\n super();\n this.initFormatters();\n }\n\n private get yearPerPage() {\n return this.size === 'small' ? 18 : 15;\n }\n\n private get previousButtonLabel() {\n return this.activeView === 'days'\n ? this.resourceStrings.previousMonth\n : this.activeView === 'months'\n ? this.resourceStrings.previousYear\n : this.activeView === 'years'\n ? this.resourceStrings.previousYears.replace(\n '{0}',\n this.yearPerPage.toString()\n )\n : '';\n }\n\n private get nextButtonLabel() {\n return this.activeView === 'days'\n ? this.resourceStrings.nextMonth\n : this.activeView === 'months'\n ? this.resourceStrings.nextYear\n : this.activeView === 'years'\n ? this.resourceStrings.nextYears.replace(\n '{0}',\n this.yearPerPage.toString()\n )\n : '';\n }\n\n private monthSelectLabel(activeDate: Date) {\n return `${activeDate.toLocaleString(this.locale, {\n month: 'long',\n })}, ${this.resourceStrings.selectMonth}`;\n }\n\n private yearSelectLabel(activeDate: Date) {\n return `${activeDate.getFullYear()}, ${this.resourceStrings.selectYear}`;\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const tagName = (event.target as HTMLElement).tagName.toLowerCase();\n\n if (\n tagName !== 'igc-days-view' &&\n tagName !== 'igc-months-view' &&\n tagName !== 'igc-years-view'\n ) {\n return;\n }\n\n switch (event.key) {\n case 'PageDown':\n event.preventDefault();\n\n if (event.shiftKey && this.activeView === 'days') {\n this.nextYear();\n } else {\n this.navigateNext();\n }\n\n if (this.activeView === 'days') {\n this[focusActiveDate]();\n }\n break;\n case 'PageUp':\n event.preventDefault();\n\n if (event.shiftKey && this.activeView === 'days') {\n this.previousYear();\n } else {\n this.navigatePrevious();\n }\n\n if (this.activeView === 'days') {\n this[focusActiveDate]();\n }\n break;\n case 'Home':\n event.preventDefault();\n\n if (this.activeView === 'days') {\n const firstDaysView = this.daysViews[0] as IgcDaysViewComponent;\n const activeDate = firstDaysView.activeDate;\n const date = new Date(activeDate);\n date.setDate(1);\n this.activeDate = date;\n this.activeDaysViewIndex = 0;\n } else if (this.activeView === 'months') {\n const date = new Date(this.activeDate);\n date.setMonth(0);\n this.activeDate = date;\n } else if (this.activeView === 'years') {\n const startYear = calculateYearsRangeStart(\n this.activeDate,\n this.yearPerPage\n );\n const date = new Date(this.activeDate);\n date.setDate(1);\n date.setFullYear(startYear);\n setDateSafe(date, this.activeDate.getDate());\n this.activeDate = date;\n }\n\n this[focusActiveDate]();\n break;\n case 'End':\n event.preventDefault();\n\n if (this.activeView === 'days') {\n const index = this.daysViews.length - 1;\n const lastDaysView = this.daysViews[index] as IgcDaysViewComponent;\n const activeDate = lastDaysView.activeDate;\n const date = new Date(activeDate);\n date.setDate(1);\n date.setMonth(date.getMonth() + 1);\n date.setDate(0);\n this.activeDate = date;\n this.activeDaysViewIndex = index;\n } else if (this.activeView === 'months') {\n const date = new Date(this.activeDate);\n date.setMonth(11);\n this.activeDate = date;\n } else if (this.activeView === 'years') {\n const startYear = calculateYearsRangeStart(\n this.activeDate,\n this.yearPerPage\n );\n const date = new Date(this.activeDate);\n date.setDate(1);\n date.setFullYear(startYear + this.yearPerPage - 1);\n setDateSafe(date, this.activeDate.getDate());\n this.activeDate = date;\n }\n\n this[focusActiveDate]();\n break;\n case 'ArrowLeft':\n event.preventDefault();\n\n if (this.activeView === 'days') {\n const date = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Day,\n -1\n );\n\n if (this.visibleMonths > 1) {\n const activeDayView = this.daysViews[\n this.activeDaysViewIndex\n ] as IgcDaysViewComponent;\n const activeMonthDate = activeDayView.activeDate;\n\n if (activeMonthDate.getMonth() !== date.getMonth()) {\n this.activeDaysViewIndex =\n this.activeDaysViewIndex > 0 ? this.activeDaysViewIndex - 1 : 0;\n }\n }\n this.activeDate = date;\n } else if (this.activeView === 'months') {\n this.previousMonth();\n } else if (this.activeView === 'years') {\n this.previousYear();\n }\n\n this[focusActiveDate]();\n break;\n case 'ArrowRight':\n event.preventDefault();\n\n if (this.activeView === 'days') {\n const date = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Day,\n 1\n );\n\n if (this.visibleMonths > 1) {\n const activeDayView = this.daysViews[\n this.activeDaysViewIndex\n ] as IgcDaysViewComponent;\n const activeMonthDate = activeDayView.activeDate;\n\n if (activeMonthDate.getMonth() !== date.getMonth()) {\n this.activeDaysViewIndex =\n this.activeDaysViewIndex === this.visibleMonths - 1\n ? this.activeDaysViewIndex\n : this.activeDaysViewIndex + 1;\n }\n }\n this.activeDate = date;\n } else if (this.activeView === 'months') {\n this.nextMonth();\n } else if (this.activeView === 'years') {\n this.nextYear();\n }\n\n this[focusActiveDate]();\n break;\n case 'ArrowUp':\n event.preventDefault();\n\n if (this.activeView === 'days') {\n const date = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Week,\n -1\n );\n\n if (this.visibleMonths > 1) {\n const activeDayView = this.daysViews[\n this.activeDaysViewIndex\n ] as IgcDaysViewComponent;\n const activeMonthDate = activeDayView.activeDate;\n\n if (activeMonthDate.getMonth() !== date.getMonth()) {\n this.activeDaysViewIndex =\n this.activeDaysViewIndex > 0 ? this.activeDaysViewIndex - 1 : 0;\n }\n }\n this.activeDate = date;\n } else if (this.activeView === 'months') {\n this.activeDate = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Month,\n -MONTHS_PER_ROW\n );\n } else if (this.activeView === 'years') {\n this.activeDate = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Year,\n -YEARS_PER_ROW\n );\n }\n\n this[focusActiveDate]();\n break;\n case 'ArrowDown':\n event.preventDefault();\n\n if (this.activeView === 'days') {\n const date = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Week,\n 1\n );\n\n if (this.visibleMonths > 1) {\n const activeDayView = this.daysViews[\n this.activeDaysViewIndex\n ] as IgcDaysViewComponent;\n const activeMonthDate = activeDayView.activeDate;\n\n if (activeMonthDate.getMonth() !== date.getMonth()) {\n this.activeDaysViewIndex =\n this.activeDaysViewIndex === this.visibleMonths - 1\n ? this.activeDaysViewIndex\n : this.activeDaysViewIndex + 1;\n }\n }\n this.activeDate = date;\n } else if (this.activeView === 'months') {\n this.activeDate = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Month,\n MONTHS_PER_ROW\n );\n } else if (this.activeView === 'years') {\n this.activeDate = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Year,\n YEARS_PER_ROW\n );\n }\n\n this[focusActiveDate]();\n break;\n }\n };\n\n public async [focusActiveDate]() {\n await this.updateComplete;\n\n if (this.activeView === 'days') {\n const daysView = this.daysViews[\n this.activeDaysViewIndex\n ] as IgcDaysViewComponent;\n daysView.focusActiveDate();\n } else if (this.activeView === 'months') {\n this.monthsView.focusActiveDate();\n } else if (this.activeView === 'years') {\n this.yearsView.focusActiveDate();\n }\n }\n\n private initFormatters() {\n this.formatterMonth = new Intl.DateTimeFormat(this.locale, {\n month: this.formatOptions.month,\n });\n this.formatterWeekday = new Intl.DateTimeFormat(this.locale, {\n weekday: 'short',\n });\n this.formatterMonthDay = new Intl.DateTimeFormat(this.locale, {\n month: 'short',\n day: 'numeric',\n });\n }\n\n private formattedMonth(value: Date) {\n return this.formatterMonth.format(value);\n }\n\n private changeValue(event: CustomEvent<void>) {\n event.stopPropagation();\n\n const daysView = event.target as IgcDaysViewComponent;\n let newValue: Date | Date[] | undefined;\n\n if (this.selection === 'single') {\n this.value = daysView.value;\n newValue = this.value;\n } else {\n this.values = daysView.values;\n newValue = this.values;\n }\n\n this.emitEvent('igcChange', { detail: newValue });\n }\n\n private changeMonth(event: CustomEvent<void>) {\n event.stopPropagation();\n this.activeDate = (event.target as IgcMonthsViewComponent).value;\n this.activeView = 'days';\n\n this[focusActiveDate]();\n }\n\n private changeYear(event: CustomEvent<void>) {\n event.stopPropagation();\n this.activeDate = (event.target as IgcYearsViewComponent).value;\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private async switchToMonths(daysViewIndex: number) {\n this.activateDaysView(daysViewIndex);\n this.activeView = 'months';\n\n await this.updateComplete;\n this[focusActiveDate]();\n }\n\n private async switchToYears(daysViewIndex: number) {\n if (this.activeView === 'days') {\n this.activateDaysView(daysViewIndex);\n }\n this.activeView = 'years';\n\n await this.updateComplete;\n this[focusActiveDate]();\n }\n\n private activateDaysView(daysViewIndex: number) {\n const activeDaysView = this.daysViews[\n daysViewIndex\n ] as IgcDaysViewComponent;\n this.activeDate = activeDaysView.activeDate;\n this.activeDaysViewIndex = daysViewIndex;\n }\n\n private activeDateChanged(event: CustomEvent<ICalendarDate>) {\n const day = event.detail;\n const daysViews = Array.from(this.daysViews);\n\n this.activeDaysViewIndex = daysViews.indexOf(event.target as Node);\n this.activeDate = day.date;\n\n if (!day.isCurrentMonth) {\n this[focusActiveDate]();\n }\n }\n\n private rangePreviewDateChange(event: CustomEvent<Date>) {\n this.rangePreviewDate = event.detail;\n }\n\n private nextMonth() {\n this.activeDate = this.calendarModel.getNextMonth(this.activeDate);\n }\n\n private previousMonth() {\n this.activeDate = this.calendarModel.getPrevMonth(this.activeDate);\n }\n\n private nextYear() {\n this.activeDate = this.calendarModel.getNextYear(this.activeDate);\n }\n\n private previousYear() {\n this.activeDate = this.calendarModel.getPrevYear(this.activeDate);\n }\n\n private nextYearsPage() {\n this.activeDate = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Year,\n this.yearPerPage\n );\n }\n\n private previousYearsPage() {\n this.activeDate = this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Year,\n -this.yearPerPage\n );\n }\n\n private navigateNext() {\n if (this.activeView === 'days') {\n this.nextMonth();\n } else if (this.activeView === 'months') {\n this.nextYear();\n } else if (this.activeView === 'years') {\n this.nextYearsPage();\n }\n }\n\n private navigatePrevious() {\n if (this.activeView === 'days') {\n this.previousMonth();\n } else if (this.activeView === 'months') {\n this.previousYear();\n } else if (this.activeView === 'years') {\n this.previousYearsPage();\n }\n }\n\n private renderNavigation(\n activeDate = this.activeDate,\n renderButtons = true,\n daysViewIndex = 0\n ) {\n let startYear = undefined;\n let endYear = undefined;\n const prev_icon =\n this[themeSymbol] === 'fluent' ? 'arrow_upward' : 'navigate_before';\n const next_icon =\n this[themeSymbol] === 'fluent' ? 'arrow_downward' : 'navigate_next';\n\n if (this.activeView === 'years') {\n startYear = calculateYearsRangeStart(activeDate, this.yearPerPage);\n endYear = startYear + this.yearPerPage - 1;\n }\n\n return html`<div part=\"navigation\">\n <div part=\"picker-dates\">\n ${this.activeView === 'days'\n ? html`<button\n part=\"months-navigation\"\n aria-label=${this.monthSelectLabel(activeDate)}\n @click=${() => this.switchToMonths(daysViewIndex)}\n >\n ${this.formattedMonth(activeDate)}\n </button>`\n : ''}\n ${this.activeView === 'days' || this.activeView === 'months'\n ? html`<span class=\"aria-off-screen\" aria-live=\"polite\">\n ${this.activeView === 'days'\n ? activeDate.toLocaleString(this.locale, {\n month: 'long',\n year: 'numeric',\n })\n : activeDate.getFullYear()}\n </span>\n <button\n part=\"years-navigation\"\n aria-label=${this.yearSelectLabel(activeDate)}\n @click=${() => this.switchToYears(daysViewIndex)}\n >\n ${activeDate.getFullYear()}\n </button>`\n : ''}\n ${this.activeView === 'years'\n ? html`<span part=\"years-range\" aria-live=\"polite\"\n >${`${startYear} - ${endYear}`}</span\n >`\n : ''}\n </div>\n ${renderButtons\n ? html`<div part=\"navigation-buttons\">\n <button\n part=${partNameMap({\n 'navigation-button': true,\n vertical: this.orientation === 'vertical',\n })}\n aria-label=${this.previousButtonLabel}\n @click=${this.navigatePrevious}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=${prev_icon}\n collection=\"internal\"\n ></igc-icon>\n </button>\n <button\n part=${partNameMap({\n 'navigation-button': true,\n vertical: this.orientation === 'vertical',\n })}\n aria-label=${this.nextButtonLabel}\n @click=${this.navigateNext}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=${next_icon}\n collection=\"internal\"\n ></igc-icon>\n </button>\n </div>`\n : ''}\n </div>`;\n }\n\n private renderHeader() {\n if (this.hideHeader || this.selection === 'multiple') {\n return '';\n }\n\n return html`<div part=\"header\">\n <h5 part=\"header-title\">\n <slot name=\"title\"\n >${this.selection === 'single'\n ? this.resourceStrings.selectDate\n : this.resourceStrings.selectRange}</slot\n >\n </h5>\n <h2 part=\"header-date\">${this.renderHeaderDate()}</h2>\n </div>`;\n }\n\n private renderHeaderDate() {\n if (this.selection === 'single') {\n const date = this.value;\n return html`${date\n ? html`${this.formatterWeekday.format(date)},${this\n .headerOrientation === 'vertical'\n ? html`<br />`\n : ' '}${this.formatterMonthDay.format(date)}`\n : this.resourceStrings.selectedDate}`;\n }\n\n const dates = this.values;\n\n return html`<span\n >${dates?.length\n ? this.formatterMonthDay.format(dates[0])\n : this.resourceStrings.startDate}</span\n >\n <span> - </span>\n <span\n >${dates && dates.length > 1\n ? this.formatterMonthDay.format(dates[dates.length - 1])\n : this.resourceStrings.endDate}</span\n >`;\n }\n\n protected override render() {\n const activeDates: Date[] = [];\n const monthsCount = this.visibleMonths > 1 ? this.visibleMonths : 1;\n\n for (let i = 0; i < monthsCount; i++) {\n activeDates.push(\n this.calendarModel.timedelta(\n this.activeDate,\n TimeDeltaInterval.Month,\n i - this.activeDaysViewIndex\n )\n );\n }\n\n return html`\n ${this.renderHeader()}\n <div\n part=\"content\"\n style=${styleMap({\n display: 'flex',\n flexGrow: '1',\n flexDirection:\n this.activeView === 'days'\n ? this.orientation === 'horizontal'\n ? 'row'\n : 'column'\n : 'column',\n })}\n @keydown=${this.handleKeyDown}\n >\n ${this.activeView === 'days'\n ? activeDates.map(\n (activeDate, i) =>\n html`<div part=\"days-view-container\">\n ${this.renderNavigation(\n activeDate,\n this.orientation === 'horizontal'\n ? i === activeDates.length - 1\n : i === 0,\n i\n )}\n <igc-days-view\n part=\"days-view\"\n .active=${this.activeDaysViewIndex === i}\n .activeDate=${activeDate}\n .weekStart=${this.weekStart}\n .weekDayFormat=${this.formatOptions.weekday as\n | 'long'\n | 'short'\n | 'narrow'\n | undefined}\n .locale=${this.locale}\n .selection=${this.selection}\n .value=${this.value}\n .values=${this.values}\n .hideLeadingDays=${this.hideOutsideDays || i !== 0}\n .hideTrailingDays=${this.hideOutsideDays ||\n i !== activeDates.length - 1}\n .showWeekNumbers=${this.showWeekNumbers}\n .disabledDates=${this.disabledDates}\n .specialDates=${this.specialDates}\n .rangePreviewDate=${this.rangePreviewDate}\n .resourceStrings=${this.resourceStrings}\n exportparts=\"days-row, label, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, weekend, range, special, disabled, single, preview\"\n @igcChange=${this.changeValue}\n @igcActiveDateChange=${this.activeDateChanged}\n @igcRangePreviewDateChange=${this.rangePreviewDateChange}\n ></igc-days-view>\n </div>`\n )\n : ''}\n ${this.activeView === 'months'\n ? html` ${this.renderNavigation()}\n <igc-months-view\n part=\"months-view\"\n .value=${this.activeDate}\n .locale=${this.locale}\n .monthFormat=${this.formatOptions.month as\n | 'long'\n | 'numeric'\n | 'short'\n | 'narrow'\n | '2-digit'\n | undefined}\n exportparts=\"month, selected, month-inner, current\"\n @igcChange=${this.changeMonth}\n ></igc-months-view>`\n : ''}\n ${this.activeView === 'years'\n ? html`${this.renderNavigation()}\n <igc-years-view\n part=\"years-view\"\n .value=${this.activeDate}\n .yearsPerPage=${this.yearPerPage}\n exportparts=\"year, selected, year-inner, current\"\n @igcChange=${this.changeYear}\n ></igc-years-view>`\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 { html, nothing } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\nimport { type Ref, createRef, ref } from 'lit/directives/ref.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport { themes } from '../../theming/theming-decorator.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n homeKey,\n pageDownKey,\n pageUpKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { IgcCalendarResourceStringEN } from '../common/i18n/calendar.resources.js';\nimport { createDateTimeFormatters } from '../common/localization/intl-formatters.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n clamp,\n findElementFromEventPath,\n first,\n formatString,\n last,\n partNameMap,\n} from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { IgcCalendarBaseComponent } from './base.js';\nimport IgcDaysViewComponent from './days-view/days-view.js';\nimport {\n MONTHS_PER_ROW,\n YEARS_PER_PAGE,\n YEARS_PER_ROW,\n areSameMonth,\n getYearRange,\n isDateInRanges,\n} from './helpers.js';\nimport { CalendarDay } from './model.js';\nimport IgcMonthsViewComponent from './months-view/months-view.js';\nimport { styles } from './themes/calendar.base.css.js';\nimport { all } from './themes/calendar.js';\nimport type { IgcCalendarBaseEventMap } from './types.js';\nimport IgcYearsViewComponent from './years-view/years-view.js';\n\nexport const focusActiveDate = Symbol();\n\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 *\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 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 label - Week header label 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 * @csspart last - The last selected date element of the calendar in range selection.\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 */\n@themes(all)\nexport default class IgcCalendarComponent extends EventEmitterMixin<\n IgcCalendarBaseEventMap,\n Constructor<IgcCalendarBaseComponent>\n>(IgcCalendarBaseComponent) {\n public static readonly tagName = 'igc-calendar';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcCalendarComponent,\n IgcIconComponent,\n IgcDaysViewComponent,\n IgcMonthsViewComponent,\n IgcYearsViewComponent\n );\n }\n\n private get _isDayView() {\n return this.activeView === 'days';\n }\n\n private get _isMonthView() {\n return this.activeView === 'months';\n }\n\n private get _isYearView() {\n return this.activeView === 'years';\n }\n\n private get previousButtonLabel() {\n if (this._isDayView) {\n return this.resourceStrings.previousMonth;\n }\n if (this._isMonthView) {\n return this.resourceStrings.previousYear;\n }\n return formatString(this.resourceStrings.previousYears, YEARS_PER_PAGE);\n }\n\n private get nextButtonLabel() {\n if (this._isDayView) {\n return this.resourceStrings.nextMonth;\n }\n if (this._isMonthView) {\n return this.resourceStrings.nextYear;\n }\n return formatString(this.resourceStrings.nextYears, YEARS_PER_PAGE);\n }\n\n private contentRef: Ref<HTMLDivElement> = createRef();\n\n @state()\n private activeDaysViewIndex = 0;\n\n @queryAll(IgcDaysViewComponent.tagName)\n private daysViews!: NodeListOf<IgcDaysViewComponent>;\n\n @query(IgcMonthsViewComponent.tagName)\n private monthsView!: IgcMonthsViewComponent;\n\n @query(IgcYearsViewComponent.tagName)\n private yearsView!: IgcYearsViewComponent;\n\n /**\n * Whether to show the dates that do not belong to the current active month.\n * @attr hide-outside-days\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 */\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 */\n @property({ reflect: true, attribute: 'header-orientation' })\n public headerOrientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /**\n * The orientation of the calendar months when more than one month\n * is being shown.\n * @attr orientation\n */\n @property()\n public orientation: 'vertical' | 'horizontal' = 'horizontal';\n\n /**\n * The number of months displayed in the days view.\n * @attr visible-months\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 */\n @property({ attribute: 'active-view' })\n public activeView: 'days' | 'months' | 'years' = '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 /**\n * The resource strings for localization.\n */\n @property({ attribute: false })\n public resourceStrings = IgcCalendarResourceStringEN;\n\n private _intl = createDateTimeFormatters(this.locale, {\n month: {\n month: this.formatOptions.month,\n },\n monthLabel: { month: 'long' },\n weekday: { weekday: 'short' },\n monthDay: { month: 'short', day: 'numeric' },\n yearLabel: { month: 'long', year: 'numeric' },\n });\n\n @watch('locale')\n protected localeChange() {\n this._intl.locale = this.locale;\n }\n\n @watch('formatOptions')\n protected formatOptionsChange() {\n this._intl.update({\n month: {\n month: this.formatOptions.month,\n },\n });\n }\n\n /** @private @hidden @internal */\n public async [focusActiveDate]() {\n await this.updateComplete;\n\n if (this._isDayView) {\n return this.daysViews.item(this.activeDaysViewIndex).focusActiveDate();\n }\n\n if (this._isMonthView) {\n return this.monthsView.focusActiveDate();\n }\n\n if (this._isYearView) {\n return this.yearsView.focusActiveDate();\n }\n }\n\n private updateViewIndex(date: CalendarDay, delta: -1 | 1) {\n if (this.visibleMonths === 1) return;\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 getSubsequentActiveDate(start: CalendarDay, delta: number) {\n const disabled = this._disabledDates;\n let beginning = start.clone();\n\n while (isDateInRanges(beginning, disabled)) {\n beginning = beginning.add('day', delta);\n }\n\n return beginning;\n }\n\n private handleArrowKey(period: 'day' | 'week', delta: -1 | 1) {\n if (this._isDayView) {\n const date = this.getSubsequentActiveDate(\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.getSubsequentActiveDate(\n this._activeDate.add(\n monthOrYear,\n period === 'week' ? monthOrYearDelta : delta\n ),\n delta\n );\n }\n\n this[focusActiveDate]();\n }\n\n private onPageKeys(delta: -1 | 1) {\n const unit = this._isDayView ? 'month' : 'year';\n const increment = (this._isYearView ? YEARS_PER_PAGE : 1) * delta;\n\n this._activeDate = this.getSubsequentActiveDate(\n this._activeDate.add(unit, increment),\n increment\n );\n this[focusActiveDate]();\n }\n\n private onShiftPageKeys(delta: -1 | 1) {\n if (this._isDayView) {\n this._activeDate = this.getSubsequentActiveDate(\n this._activeDate.add('year', delta),\n delta\n );\n this[focusActiveDate]();\n }\n }\n\n private onHomeKey() {\n if (this._isDayView) {\n const first = CalendarDay.from(this.daysViews.item(0).activeDate);\n this._activeDate = this.getSubsequentActiveDate(\n first.set({ date: 1 }),\n 1\n );\n\n this.activeDaysViewIndex = 0;\n }\n\n if (this._isMonthView) {\n this._activeDate = this.getSubsequentActiveDate(\n this._activeDate.set({ month: 0 }),\n 1\n );\n }\n\n if (this._isYearView) {\n this._activeDate = this.getSubsequentActiveDate(\n this._activeDate.set({\n year: getYearRange(this._activeDate, YEARS_PER_PAGE).start,\n }),\n 1\n );\n }\n\n this[focusActiveDate]();\n }\n\n private onEndKey() {\n if (this._isDayView) {\n const index = this.daysViews.length - 1;\n const last = CalendarDay.from(this.daysViews.item(index).activeDate);\n this._activeDate = this.getSubsequentActiveDate(\n last.set({ month: last.month + 1, date: 0 }),\n -1\n );\n this.activeDaysViewIndex = index;\n }\n\n if (this._isMonthView) {\n this._activeDate = this.getSubsequentActiveDate(\n this._activeDate.set({ month: 11 }),\n -1\n );\n }\n\n if (this._isYearView) {\n this._activeDate = this.getSubsequentActiveDate(\n this._activeDate.set({\n year: getYearRange(this._activeDate, YEARS_PER_PAGE).end,\n }),\n -1\n );\n }\n\n this[focusActiveDate]();\n }\n\n private isNotFromCalendarView(_: Element, event: KeyboardEvent) {\n return !findElementFromEventPath(\n `${IgcDaysViewComponent.tagName}, ${IgcMonthsViewComponent.tagName}, ${IgcYearsViewComponent.tagName}`,\n event\n );\n }\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: this.isNotFromCalendarView,\n ref: this.contentRef,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\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.onShiftPageKeys.bind(this, -1))\n .set([shiftKey, pageDownKey], this.onShiftPageKeys.bind(this, 1))\n .set(pageUpKey, this.onPageKeys.bind(this, -1))\n .set(pageDownKey, this.onPageKeys.bind(this, 1))\n .set(homeKey, this.onHomeKey)\n .set(endKey, this.onEndKey);\n }\n\n protected renderNavigationButtons() {\n const parts = partNameMap({\n 'navigation-button': true,\n vertical: this.orientation === 'vertical',\n });\n\n return html`\n <div part=\"navigation-buttons\">\n <button\n part=${parts}\n aria-label=${this.previousButtonLabel}\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=${parts}\n aria-label=${this.nextButtonLabel}\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 ) {\n const labelFmt = this._intl.get('monthLabel').format;\n const valueFmt = this._intl.get('month').format;\n const ariaLabel = `${labelFmt(active.native)}, ${this.resourceStrings.selectMonth}`;\n\n return html`\n <button\n part=\"months-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this.switchToMonths(viewIndex)}\n >\n ${valueFmt(active.native)}\n </button>\n `;\n }\n\n protected renderYearButtonNavigation(active: CalendarDay, viewIndex: number) {\n const fmt = this._intl.get('yearLabel').format;\n const ariaLabel = `${active.year}, ${this.resourceStrings.selectYear}`;\n const ariaSkip = this._isDayView ? fmt(active.native) : active.year;\n\n return html`\n <span class=\"aria-off-screen\" aria-live=\"polite\">${ariaSkip}</span>\n <button\n part=\"years-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this.switchToYears(viewIndex)}\n >\n ${active.year}\n </button>\n `;\n }\n\n protected renderYearRangeNavigation(active: CalendarDay) {\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 ) {\n const activeDate = date ?? this._activeDate;\n\n return html`\n <div part=\"navigation\">\n <div part=\"picker-dates\">\n ${this._isDayView\n ? this.renderMonthButtonNavigation(activeDate, viewIndex)\n : nothing}\n ${this._isDayView || this._isMonthView\n ? this.renderYearButtonNavigation(activeDate, viewIndex)\n : nothing}\n ${this._isYearView\n ? this.renderYearRangeNavigation(activeDate)\n : nothing}\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.selectDate\n : this.resourceStrings.selectRange;\n\n return html`\n <div part=\"header\">\n <h5 part=\"header-title\">\n <slot name=\"title\">${title}</slot>\n </h5>\n <h2 part=\"header-date\">${this.renderHeaderDate()}</h2>\n </div>\n `;\n }\n\n protected renderHeaderDateSingle() {\n const date = this.value;\n const weekDayFmt = this._intl.get('weekday').format;\n const monthDayFmt = this._intl.get('monthDay').format;\n const separator =\n this.headerOrientation === 'vertical' ? html`<br />` : ' ';\n\n return date\n ? html`${weekDayFmt(date)},${separator}${monthDayFmt(date)}`\n : this.resourceStrings.selectedDate;\n }\n\n protected renderHeaderDateRange() {\n const values = this.values;\n const fmt = this._intl.get('monthDay').format;\n const { startDate, endDate } = this.resourceStrings;\n\n const start = this._hasValues ? fmt(first(values)) : startDate;\n const end =\n this._hasValues && values.length > 1 ? fmt(last(values)) : endDate;\n\n return html`\n <span>${start}</span>\n <span> - </span>\n <span>${end}</span>\n `;\n }\n\n protected renderHeaderDate() {\n return this._isSingle\n ? this.renderHeaderDateSingle()\n : this.renderHeaderDateRange();\n }\n\n protected renderDaysView() {\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.changeValue}\n @igcActiveDateChange=${this.activeDateChanged}\n @igcRangePreviewDateChange=${this.rangePreviewDateChanged}\n part=\"days-view\"\n exportparts=\"days-row, label, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, 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() {\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=\"month, selected, month-inner, current\"\n @igcChange=${this.changeMonth}\n .value=${this.activeDate}\n .locale=${this.locale}\n .monthFormat=${format!}\n ></igc-months-view>\n `;\n }\n\n protected renderYearView() {\n return html`\n ${this.renderNavigation()}\n <igc-years-view\n part=\"years-view\"\n exportparts=\"year, selected, year-inner, current\"\n @igcChange=${this.changeYear}\n .value=${this.activeDate}\n .yearsPerPage=${YEARS_PER_PAGE}\n ></igc-years-view>\n `;\n }\n\n protected override render() {\n const direction = this._isDayView && this.orientation === 'horizontal';\n\n const styles = {\n display: 'flex',\n flexGrow: 1,\n flexDirection: direction ? 'row' : 'column',\n };\n\n return html`\n ${this.renderHeader()}\n <div ${ref(this.contentRef)} part=\"content\" style=${styleMap(styles)}>\n ${choose(this.activeView, [\n ['days', () => this.renderDaysView()],\n ['months', () => this.renderMonthView()],\n ['years', () => this.renderYearView()],\n ])}\n </div>\n `;\n }\n\n protected changeMonth(event: CustomEvent<Date>) {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'days';\n\n this[focusActiveDate]();\n }\n\n protected changeYear(event: CustomEvent<Date>) {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n protected changeValue(event: CustomEvent<Date>) {\n event.stopPropagation();\n\n const view = event.target as IgcDaysViewComponent;\n if (this._isSingle) {\n this.value = view.value;\n } else {\n this.values = view.values;\n }\n\n this.emitEvent('igcChange', {\n detail: this._isSingle ? this.value : this.values,\n });\n }\n\n protected activeDateChanged(event: CustomEvent<Date>) {\n const view = event.target as IgcDaysViewComponent;\n const views = Array.from(this.daysViews);\n\n this.activeDaysViewIndex = views.indexOf(view);\n this.activeDate = event.detail;\n\n if (!areSameMonth(this.activeDate, view.activeDate)) {\n this[focusActiveDate]();\n }\n }\n\n protected rangePreviewDateChanged(event: CustomEvent<Date>) {\n this._rangePreviewDate = event.detail\n ? CalendarDay.from(event.detail)\n : undefined;\n }\n\n private getActiveDates() {\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 private activateDaysView(index: number) {\n const view = this.daysViews.item(index);\n this.activeDate = view.activeDate;\n this.activeDaysViewIndex = index;\n }\n\n private navigatePrevious() {\n const unit = this._isDayView ? 'month' : 'year';\n const delta = this._isYearView ? YEARS_PER_PAGE : 1;\n this._activeDate = this._activeDate.add(unit, -delta);\n }\n\n private navigateNext() {\n const unit = this._isDayView ? 'month' : 'year';\n const delta = this._isYearView ? YEARS_PER_PAGE : 1;\n this._activeDate = this._activeDate.add(unit, delta);\n }\n\n private switchToMonths(viewIndex: number) {\n this.activateDaysView(viewIndex);\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private switchToYears(viewIndex: number) {\n if (this._isDayView) {\n this.activateDaysView(viewIndex);\n }\n this.activeView = 'years';\n\n this[focusActiveDate]();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-calendar': IgcCalendarComponent;\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
- import { type IgcCalendarResourceStrings } from '../../common/i18n/calendar.resources.js';
2
1
  import type { Constructor } from '../../common/mixins/constructor.js';
3
- import { IgcCalendarBaseComponent, type IgcCalendarBaseEventMap } from '../common/calendar-base.js';
4
- import { type ICalendarDate } from '../common/calendar.model.js';
2
+ import { IgcCalendarBaseComponent } from '../base.js';
3
+ import { CalendarDay } from '../model.js';
4
+ import { type IgcCalendarBaseEventMap } from '../types.js';
5
5
  export interface IgcDaysViewEventMap extends IgcCalendarBaseEventMap {
6
- igcActiveDateChange: CustomEvent<ICalendarDate>;
6
+ igcActiveDateChange: CustomEvent<Date>;
7
7
  igcRangePreviewDateChange: CustomEvent<Date>;
8
8
  }
9
9
  declare const IgcDaysViewComponent_base: Constructor<import("../../common/mixins/event-emitter.js").EventEmitterInterface<IgcDaysViewEventMap>> & Constructor<IgcCalendarBaseComponent>;
@@ -25,61 +25,58 @@ export default class IgcDaysViewComponent extends IgcDaysViewComponent_base {
25
25
  static readonly tagName = "igc-days-view";
26
26
  static styles: import("lit").CSSResult;
27
27
  static register(): void;
28
- private labelFormatter;
29
- private formatterWeekday;
30
28
  private dates;
31
29
  private activeDay;
32
- /** Controls the visibility of the leading dates that do not belong to the current month. */
30
+ /** The active state of the component. */
31
+ active: boolean;
32
+ /**
33
+ * Whether to show leading days which do not belong to the current month.
34
+ * @attr hide-leading-days
35
+ */
33
36
  hideLeadingDays: boolean;
34
- /** Controls the visibility of the trailing dates that do not belong to the current month. */
37
+ /**
38
+ * Whether to show trailing days which do not belong to the current month.
39
+ * @attr hide-trailing-days
40
+ */
35
41
  hideTrailingDays: boolean;
36
- /** Gets/sets the active state of the days view. */
37
- active: boolean;
38
42
  /** The range preview date. */
39
- rangePreviewDate?: Date;
40
- /** The format of the days. Defaults to narrow. */
41
- weekDayFormat: 'long' | 'short' | 'narrow' | undefined;
43
+ set rangePreviewDate(value: Date | undefined);
44
+ get rangePreviewDate(): Date | undefined;
42
45
  /** The resource strings. */
43
- resourceStrings: IgcCalendarResourceStrings;
44
- protected formattersChange(): void;
46
+ resourceStrings: import("../../common/i18n/calendar.resources.js").IgcCalendarResourceStrings;
47
+ /**
48
+ * The format of the days. Defaults to narrow.
49
+ * @attr week-day-format
50
+ */
51
+ weekDayFormat: 'long' | 'short' | 'narrow';
52
+ private _intl;
53
+ protected localeChange(): void;
54
+ protected weekDayFormatChange(): void;
45
55
  protected datesChange(): void;
46
56
  constructor();
57
+ connectedCallback(): void;
47
58
  /** Focuses the active date. */
48
59
  focusActiveDate(): void;
49
- private initFormatters;
50
- private generateWeekHeader;
51
- private getCalendarMonth;
52
- private titleCase;
53
- private getWeekNumber;
54
- private formattedDate;
55
- private get isSingleSelection();
56
- private isLastInRange;
57
- private isFirstInRange;
58
- private isDisabled;
59
- private isWithinRange;
60
- private isRangeDate;
61
- private isRangePreview;
62
- private isSelected;
63
- private isToday;
64
- private isWeekend;
65
- private isSpecial;
66
- private dateClicked;
67
- private selectDay;
60
+ protected handleInteraction(event: Event): void;
61
+ private _selectMultiple;
62
+ private _selectRange;
68
63
  private selectDate;
69
- private generateDateRange;
70
- private selectRange;
71
- private selectSingle;
72
- private selectMultiple;
73
- private changeActiveDate;
74
- private dateKeyDown;
64
+ private isSelected;
65
+ private setRangePreviewDate;
75
66
  private changeRangePreview;
76
67
  private clearRangePreview;
77
- private setRangePreviewDate;
78
- private resolveDayItemPartName;
79
- private renderWeekHeaders;
80
- private renderDates;
81
- protected dayLabelFormatter(value: ICalendarDate): any;
82
- private renderDateItem;
68
+ private isFirstInRange;
69
+ private isLastInRange;
70
+ private isRangeDate;
71
+ private isRangePreview;
72
+ private intlFormatDay;
73
+ private getDayHandlers;
74
+ private getDayProperties;
75
+ protected renderDay(day: CalendarDay, today: CalendarDay): import("lit-html").TemplateResult<1>;
76
+ protected renderHeaderWeekNumber(): import("lit-html").TemplateResult<1>;
77
+ protected renderWeekNumber(start: CalendarDay, last: boolean): import("lit-html").TemplateResult<1>;
78
+ protected renderHeaders(): import("lit-html").TemplateResult<1>;
79
+ protected renderWeeks(): Generator<import("lit-html").TemplateResult<1>, void, unknown>;
83
80
  protected render(): import("lit-html").TemplateResult<1>;
84
81
  }
85
82
  declare global {