igniteui-webcomponents 4.6.0 → 4.7.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 (248) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/animations/player.js.map +1 -1
  3. package/components/accordion/accordion.js.map +1 -1
  4. package/components/avatar/avatar.d.ts +4 -3
  5. package/components/avatar/avatar.js +20 -24
  6. package/components/avatar/avatar.js.map +1 -1
  7. package/components/avatar/themes/themes.js +8 -9
  8. package/components/avatar/themes/themes.js.map +1 -1
  9. package/components/badge/badge.d.ts +4 -1
  10. package/components/badge/badge.js +15 -5
  11. package/components/badge/badge.js.map +1 -1
  12. package/components/badge/themes/themes.js +8 -9
  13. package/components/badge/themes/themes.js.map +1 -1
  14. package/components/button/button-base.d.ts +5 -6
  15. package/components/button/button-base.js +13 -26
  16. package/components/button/button-base.js.map +1 -1
  17. package/components/button/button.d.ts +2 -8
  18. package/components/button/button.js +6 -14
  19. package/components/button/button.js.map +1 -1
  20. package/components/button/icon-button.d.ts +1 -1
  21. package/components/button/icon-button.js +2 -1
  22. package/components/button/icon-button.js.map +1 -1
  23. package/components/button/themes/button/themes.js +8 -9
  24. package/components/button/themes/button/themes.js.map +1 -1
  25. package/components/button/themes/icon-button/themes.js +8 -9
  26. package/components/button/themes/icon-button/themes.js.map +1 -1
  27. package/components/button-group/button-group.d.ts +1 -1
  28. package/components/button-group/button-group.js +2 -1
  29. package/components/button-group/button-group.js.map +1 -1
  30. package/components/button-group/themes/button.js +6 -13
  31. package/components/button-group/themes/button.js.map +1 -1
  32. package/components/button-group/themes/group.js +8 -9
  33. package/components/button-group/themes/group.js.map +1 -1
  34. package/components/button-group/toggle-button.d.ts +2 -2
  35. package/components/button-group/toggle-button.js +7 -13
  36. package/components/button-group/toggle-button.js.map +1 -1
  37. package/components/calendar/calendar.d.ts +1 -1
  38. package/components/calendar/calendar.js +2 -1
  39. package/components/calendar/calendar.js.map +1 -1
  40. package/components/calendar/common/calendar-base.js.map +1 -1
  41. package/components/calendar/common/calendar.model.js.map +1 -1
  42. package/components/calendar/common/utils.js.map +1 -1
  43. package/components/calendar/days-view/days-view.js.map +1 -1
  44. package/components/calendar/months-view/months-view.js.map +1 -1
  45. package/components/calendar/themes/calendar.js +8 -9
  46. package/components/calendar/themes/calendar.js.map +1 -1
  47. package/components/calendar/years-view/years-view.js.map +1 -1
  48. package/components/card/card.content.d.ts +1 -1
  49. package/components/card/card.content.js +2 -1
  50. package/components/card/card.content.js.map +1 -1
  51. package/components/card/card.d.ts +1 -1
  52. package/components/card/card.header.d.ts +1 -1
  53. package/components/card/card.header.js +2 -1
  54. package/components/card/card.header.js.map +1 -1
  55. package/components/card/card.js +2 -1
  56. package/components/card/card.js.map +1 -1
  57. package/components/card/themes/container.js +8 -9
  58. package/components/card/themes/container.js.map +1 -1
  59. package/components/card/themes/content.js +8 -9
  60. package/components/card/themes/content.js.map +1 -1
  61. package/components/card/themes/header.js +8 -9
  62. package/components/card/themes/header.js.map +1 -1
  63. package/components/checkbox/checkbox-base.js.map +1 -1
  64. package/components/chip/chip.d.ts +1 -1
  65. package/components/chip/chip.js +2 -1
  66. package/components/chip/chip.js.map +1 -1
  67. package/components/chip/themes/themes.js +8 -9
  68. package/components/chip/themes/themes.js.map +1 -1
  69. package/components/combo/combo-item.d.ts +2 -0
  70. package/components/combo/combo-item.js +10 -11
  71. package/components/combo/combo-item.js.map +1 -1
  72. package/components/combo/combo-list.d.ts +0 -1
  73. package/components/combo/combo-list.js +0 -6
  74. package/components/combo/combo-list.js.map +1 -1
  75. package/components/combo/combo.d.ts +4 -5
  76. package/components/combo/combo.js +51 -39
  77. package/components/combo/combo.js.map +1 -1
  78. package/components/combo/controllers/navigation.js.map +1 -1
  79. package/components/combo/controllers/selection.js.map +1 -1
  80. package/components/combo/operations/group.d.ts +2 -2
  81. package/components/combo/operations/group.js +13 -26
  82. package/components/combo/operations/group.js.map +1 -1
  83. package/components/combo/themes/dark/combo.bootstrap.css.js +1 -1
  84. package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -1
  85. package/components/combo/themes/dark/combo.fluent.css.js +1 -1
  86. package/components/combo/themes/dark/combo.fluent.css.js.map +1 -1
  87. package/components/combo/themes/light/combo.bootstrap.css.js +1 -1
  88. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  89. package/components/combo/themes/light/combo.fluent.css.js +1 -1
  90. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  91. package/components/common/controllers/key-bindings.js.map +1 -1
  92. package/components/common/controllers/root-click.d.ts +1 -1
  93. package/components/common/controllers/root-click.js.map +1 -1
  94. package/components/common/controllers/root-scroll.js.map +1 -1
  95. package/components/common/decorators/watch.js.map +1 -1
  96. package/components/common/definitions/defineComponents.js.map +1 -1
  97. package/components/common/definitions/register.js.map +1 -1
  98. package/components/common/mixins/alert.js.map +1 -1
  99. package/components/common/mixins/combo-box.js.map +1 -1
  100. package/components/common/mixins/form-associated.js.map +1 -1
  101. package/components/common/util.js.map +1 -1
  102. package/components/date-time-input/date-time-input.js.map +1 -1
  103. package/components/date-time-input/date-util.js.map +1 -1
  104. package/components/dialog/dialog.js +2 -1
  105. package/components/dialog/dialog.js.map +1 -1
  106. package/components/dialog/themes/themes.js +8 -9
  107. package/components/dialog/themes/themes.js.map +1 -1
  108. package/components/dropdown/dropdown.js.map +1 -1
  109. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
  110. package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
  111. package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
  112. package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
  113. package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
  114. package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
  115. package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
  116. package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
  117. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js +1 -1
  118. package/components/dropdown/themes/shared/item/dropdown-item.fluent.css.js.map +1 -1
  119. package/components/expansion-panel/expansion-panel.d.ts +1 -1
  120. package/components/expansion-panel/expansion-panel.js +2 -1
  121. package/components/expansion-panel/expansion-panel.js.map +1 -1
  122. package/components/expansion-panel/themes/themes.js +8 -9
  123. package/components/expansion-panel/themes/themes.js.map +1 -1
  124. package/components/form/form.js.map +1 -1
  125. package/components/icon/icon.d.ts +2 -2
  126. package/components/icon/icon.js +6 -7
  127. package/components/icon/icon.js.map +1 -1
  128. package/components/icon/icon.registry.js.map +1 -1
  129. package/components/icon/themes/themes.js +8 -9
  130. package/components/icon/themes/themes.js.map +1 -1
  131. package/components/input/input-base.js +0 -4
  132. package/components/input/input-base.js.map +1 -1
  133. package/components/list/list-header.d.ts +1 -1
  134. package/components/list/list-header.js +2 -1
  135. package/components/list/list-header.js.map +1 -1
  136. package/components/list/list-item.d.ts +1 -1
  137. package/components/list/list-item.js +2 -1
  138. package/components/list/list-item.js.map +1 -1
  139. package/components/list/themes/header.js +8 -9
  140. package/components/list/themes/header.js.map +1 -1
  141. package/components/list/themes/item.js +8 -9
  142. package/components/list/themes/item.js.map +1 -1
  143. package/components/mask-input/mask-input-base.js.map +1 -1
  144. package/components/mask-input/mask-input.js.map +1 -1
  145. package/components/mask-input/mask-parser.js.map +1 -1
  146. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
  147. package/components/nav-drawer/nav-drawer-header-item.js +2 -1
  148. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  149. package/components/nav-drawer/nav-drawer-item.d.ts +1 -1
  150. package/components/nav-drawer/nav-drawer-item.js +2 -1
  151. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  152. package/components/nav-drawer/nav-drawer.d.ts +1 -1
  153. package/components/nav-drawer/nav-drawer.js +2 -1
  154. package/components/nav-drawer/nav-drawer.js.map +1 -1
  155. package/components/nav-drawer/themes/container.base.css.js +1 -1
  156. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  157. package/components/nav-drawer/themes/container.js +8 -9
  158. package/components/nav-drawer/themes/container.js.map +1 -1
  159. package/components/nav-drawer/themes/header-item.js +2 -21
  160. package/components/nav-drawer/themes/header-item.js.map +1 -1
  161. package/components/nav-drawer/themes/item.js +4 -17
  162. package/components/nav-drawer/themes/item.js.map +1 -1
  163. package/components/navbar/navbar.d.ts +1 -1
  164. package/components/navbar/navbar.js +2 -1
  165. package/components/navbar/navbar.js.map +1 -1
  166. package/components/navbar/themes/themes.js +8 -9
  167. package/components/navbar/themes/themes.js.map +1 -1
  168. package/components/popover/popover.js.map +1 -1
  169. package/components/progress/base.js.map +1 -1
  170. package/components/progress/circular-progress.d.ts +1 -1
  171. package/components/progress/circular-progress.js +2 -1
  172. package/components/progress/circular-progress.js.map +1 -1
  173. package/components/progress/linear-progress.d.ts +1 -1
  174. package/components/progress/linear-progress.js +2 -1
  175. package/components/progress/linear-progress.js.map +1 -1
  176. package/components/progress/themes/circular/themes.js +8 -9
  177. package/components/progress/themes/circular/themes.js.map +1 -1
  178. package/components/progress/themes/linear/themes.js +8 -9
  179. package/components/progress/themes/linear/themes.js.map +1 -1
  180. package/components/radio/radio.js.map +1 -1
  181. package/components/radio/utils.js.map +1 -1
  182. package/components/rating/rating.d.ts +5 -0
  183. package/components/rating/rating.js +13 -2
  184. package/components/rating/rating.js.map +1 -1
  185. package/components/rating/themes/themes.js +8 -9
  186. package/components/rating/themes/themes.js.map +1 -1
  187. package/components/select/select-group.js.map +1 -1
  188. package/components/select/select-item.js.map +1 -1
  189. package/components/select/select.js.map +1 -1
  190. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  191. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  192. package/components/select/themes/dark/select.fluent.css.js +1 -1
  193. package/components/select/themes/dark/select.fluent.css.js.map +1 -1
  194. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  195. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  196. package/components/select/themes/light/select.fluent.css.js +1 -1
  197. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  198. package/components/slider/range-slider.js.map +1 -1
  199. package/components/slider/slider-base.js.map +1 -1
  200. package/components/slider/slider.js.map +1 -1
  201. package/components/snackbar/snackbar.d.ts +1 -1
  202. package/components/snackbar/snackbar.js +2 -1
  203. package/components/snackbar/snackbar.js.map +1 -1
  204. package/components/snackbar/themes/themes.js +8 -9
  205. package/components/snackbar/themes/themes.js.map +1 -1
  206. package/components/stepper/step.d.ts +1 -1
  207. package/components/stepper/step.js +2 -1
  208. package/components/stepper/step.js.map +1 -1
  209. package/components/stepper/stepper.js.map +1 -1
  210. package/components/stepper/themes/step/themes.js +8 -9
  211. package/components/stepper/themes/step/themes.js.map +1 -1
  212. package/components/tabs/tab.d.ts +1 -1
  213. package/components/tabs/tab.js +2 -1
  214. package/components/tabs/tab.js.map +1 -1
  215. package/components/tabs/tabs.d.ts +1 -1
  216. package/components/tabs/tabs.js +2 -1
  217. package/components/tabs/tabs.js.map +1 -1
  218. package/components/tabs/themes/tab-themes.js +4 -17
  219. package/components/tabs/themes/tab-themes.js.map +1 -1
  220. package/components/tabs/themes/tabs-themes.js +8 -9
  221. package/components/tabs/themes/tabs-themes.js.map +1 -1
  222. package/components/textarea/textarea.js.map +1 -1
  223. package/components/toast/themes/themes.js +8 -9
  224. package/components/toast/themes/themes.js.map +1 -1
  225. package/components/toast/toast.js +2 -1
  226. package/components/toast/toast.js.map +1 -1
  227. package/components/tree/tree-item.d.ts +1 -1
  228. package/components/tree/tree-item.js +20 -4
  229. package/components/tree/tree-item.js.map +1 -1
  230. package/components/tree/tree.d.ts +5 -0
  231. package/components/tree/tree.js +4 -0
  232. package/components/tree/tree.js.map +1 -1
  233. package/components/tree/tree.navigation.js.map +1 -1
  234. package/components/tree/tree.selection.js.map +1 -1
  235. package/custom-elements.json +190 -378
  236. package/package.json +1 -1
  237. package/theming/config.js.map +1 -1
  238. package/theming/theming-controller.js.map +1 -1
  239. package/theming/utils.js.map +1 -1
  240. package/components/toggle/toggle.controller.d.ts +0 -52
  241. package/components/toggle/toggle.controller.js +0 -92
  242. package/components/toggle/toggle.controller.js.map +0 -1
  243. package/components/toggle/toggle.directive.d.ts +0 -20
  244. package/components/toggle/toggle.directive.js +0 -94
  245. package/components/toggle/toggle.directive.js.map +0 -1
  246. package/components/toggle/types.d.ts +0 -51
  247. package/components/toggle/types.js +0 -2
  248. package/components/toggle/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-button.js","sourceRoot":"","sources":["../../../src/components/button-group/toggle-button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAavD,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAU;IAAjD;;QA6BN,aAAQ,GAAG,KAAK,CAAC;QAOjB,aAAQ,GAAG,KAAK,CAAC;IAiC1B,CAAC;IA3DQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IA4Be,KAAK,CAAC,OAAsB;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAIe,IAAI;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAGe,KAAK;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;oBAIK,IAAI,CAAC,QAAQ;qBACZ,IAAI,CAAC,SAAS;uBACZ,IAAI,CAAC,QAAQ;wBACZ,IAAI,CAAC,QAAQ;;;;KAIhC,CAAC;IACJ,CAAC;;AAnEsB,+BAAM,GAAG,MAAM,AAAT,CAAU;AAEhB,gCAAO,GAAG,mBAAmB,AAAtB,CAAuB;AAE9B,0CAAiB,GAAG;IACzC,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHuC,CAGtC;AAOM;IADP,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC;+DACK;AAO7B;IADN,QAAQ,EAAE;uDACW;AAOf;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAIR;IADf,aAAa,CAAC,gBAAgB,CAAC;qDAG/B;AAIe;IADf,aAAa,CAAC,eAAe,CAAC;oDAG9B;AAhDkB,wBAAwB;IAD5C,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;GACG,wBAAwB,CAqE5C;eArEoB,wBAAwB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport { styles } from './themes/button.base.css.js';\nimport { all } from './themes/button.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { alternateName } from '../common/decorators/alternateName.js';\nimport { registerComponent } from '../common/definitions/register.js';\n\n/**\n * The `igc-toggle-button` wraps a native button element and exposes additional `value` and `selected` properties.\n * It is used in the context of an `igc-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 */\n@themes(all, true)\nexport default class IgcToggleButtonComponent extends LitElement {\n public static override styles = styles;\n\n public static readonly tagName = 'igc-toggle-button';\n\n public static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n public static register() {\n registerComponent(this);\n }\n\n @query('[part=\"toggle\"]', true)\n private nativeElement!: HTMLElement;\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public value!: string;\n\n /**\n * Determines whether the button is selected.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /**\n * Determines whether the button is disabled.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /** Sets focus on the button. */\n @alternateName('focusComponent')\n public override focus(options?: FocusOptions) {\n this.nativeElement.focus(options);\n }\n\n /** Removes focus from the button. */\n @alternateName('blurComponent')\n public override blur() {\n this.nativeElement.blur();\n }\n\n /** Simulates a mouse click on the element. */\n public override click() {\n this.nativeElement.click();\n }\n\n protected override render() {\n return html`\n <button\n part=\"toggle\"\n type=\"button\"\n .disabled=${this.disabled}\n .ariaLabel=${this.ariaLabel}\n aria-pressed=${this.selected}\n aria-disabled=${this.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":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAavD,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAU;IAAjD;;QA4BN,aAAQ,GAAG,KAAK,CAAC;QAOjB,aAAQ,GAAG,KAAK,CAAC;IAiC1B,CAAC;IA3DQ,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IA4Be,KAAK,CAAC,OAAsB;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAIe,IAAI;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAGe,KAAK;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;oBAIK,IAAI,CAAC,QAAQ;qBACZ,IAAI,CAAC,SAAS;uBACZ,IAAI,CAAC,QAAQ;wBACZ,IAAI,CAAC,QAAQ;;;;KAIhC,CAAC;IACJ,CAAC;;AAlEsB,+BAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAC1B,gCAAO,GAAG,mBAAmB,AAAtB,CAAuB;AAE9B,0CAAiB,GAAG;IACzC,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHuC,CAGtC;AAOM;IADP,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC;+DACW;AAOnC;IADN,QAAQ,EAAE;uDACW;AAOf;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAOjB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0DACnB;AAnCL,wBAAwB;IAD5C,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;GACG,wBAAwB,CAoE5C;eApEoB,wBAAwB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\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';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\n\n/**\n * The `igc-toggle-button` wraps a native button element and exposes additional `value` and `selected` properties.\n * It is used in the context of an `igc-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 */\n@themes(all, true)\nexport default class IgcToggleButtonComponent extends LitElement {\n public static override styles = [styles, shared];\n public static readonly tagName = 'igc-toggle-button';\n\n public static override shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n public static register() {\n registerComponent(this);\n }\n\n @query('[part=\"toggle\"]', true)\n private _nativeButton!: HTMLButtonElement;\n\n /**\n * The value attribute of the control.\n * @attr\n */\n @property()\n public value!: string;\n\n /**\n * Determines whether the button is selected.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /**\n * Determines whether the button is disabled.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /* alternateName: focusComponent */\n /** Sets focus on the button. */\n public override focus(options?: FocusOptions) {\n this._nativeButton.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the button. */\n public override blur() {\n this._nativeButton.blur();\n }\n\n /** Simulates a mouse click on the element. */\n public override click() {\n this._nativeButton.click();\n }\n\n protected override render() {\n return html`\n <button\n part=\"toggle\"\n type=\"button\"\n ?disabled=${this.disabled}\n .ariaLabel=${this.ariaLabel}\n aria-pressed=${this.selected}\n aria-disabled=${this.disabled}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-toggle-button': IgcToggleButtonComponent;\n }\n}\n"]}
@@ -33,7 +33,7 @@ declare const IgcCalendarComponent_base: Constructor<import("../common/mixins/si
33
33
  */
34
34
  export default class IgcCalendarComponent extends IgcCalendarComponent_base {
35
35
  static readonly tagName = "igc-calendar";
36
- static styles: import("lit").CSSResult;
36
+ static styles: import("lit").CSSResult[];
37
37
  static register(): void;
38
38
  private formatterMonth;
39
39
  private formatterWeekday;
@@ -14,6 +14,7 @@ import IgcDaysViewComponent from './days-view/days-view.js';
14
14
  import IgcMonthsViewComponent from './months-view/months-view.js';
15
15
  import { styles } from './themes/calendar.base.css.js';
16
16
  import { all } from './themes/calendar.js';
17
+ import { styles as shared } from './themes/shared/material/calendar.common.css.js';
17
18
  import IgcYearsViewComponent from './years-view/years-view.js';
18
19
  import { themeSymbol, themes } from '../../theming/theming-decorator.js';
19
20
  import { watch } from '../common/decorators/watch.js';
@@ -574,7 +575,7 @@ let IgcCalendarComponent = class IgcCalendarComponent extends SizableMixin(Event
574
575
  }
575
576
  };
576
577
  IgcCalendarComponent.tagName = 'igc-calendar';
577
- IgcCalendarComponent.styles = styles;
578
+ IgcCalendarComponent.styles = [styles, shared];
578
579
  __decorate([
579
580
  state()
580
581
  ], IgcCalendarComponent.prototype, "rangePreviewDate", void 0);
@@ -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 {\n IgcCalendarBaseComponent,\n IgcCalendarBaseEventMap,\n MONTHS_PER_ROW,\n YEARS_PER_ROW,\n} from './common/calendar-base.js';\nimport { ICalendarDate, TimeDeltaInterval } 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';\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 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';\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 public static register() {\n registerComponent(\n this,\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 (\n activeDate.toLocaleString(this.locale, {\n month: 'long',\n }) +\n ', ' +\n this.resourceStrings.selectMonth\n );\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 private 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;\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?: Date,\n renderButtons = true,\n daysViewIndex = 0\n ) {\n activeDate = activeDate ?? this.activeDate;\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>\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 && 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 } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport {\n IgcCalendarBaseComponent,\n IgcCalendarBaseEventMap,\n MONTHS_PER_ROW,\n YEARS_PER_ROW,\n} from './common/calendar-base.js';\nimport { ICalendarDate, TimeDeltaInterval } 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 { styles as shared } from './themes/shared/material/calendar.common.css.js';\nimport IgcYearsViewComponent from './years-view/years-view.js';\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 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';\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, shared];\n\n public static register() {\n registerComponent(\n this,\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 (\n activeDate.toLocaleString(this.locale, {\n month: 'long',\n }) +\n ', ' +\n this.resourceStrings.selectMonth\n );\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 private 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;\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?: Date,\n renderButtons = true,\n daysViewIndex = 0\n ) {\n activeDate = activeDate ?? this.activeDate;\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>\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 && 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 +1 @@
1
- {"version":3,"file":"calendar-base.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/calendar-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { Calendar, DateRangeDescriptor } from './calendar.model.js';\nimport { getWeekDayNumber } from './utils.js';\nimport { blazorDeepImport } from '../../common/decorators/blazorDeepImport.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppress } from '../../common/decorators/blazorSuppress.js';\nimport { watch } from '../../common/decorators/watch.js';\n\nexport const MONTHS_PER_ROW = 3;\nexport const YEARS_PER_ROW = 3;\n\nexport interface IgcCalendarBaseEventMap {\n igcChange: CustomEvent<Date | Date[]>;\n}\n\n@blazorIndirectRender\n@blazorDeepImport\nexport class IgcCalendarBaseComponent extends LitElement {\n private _activeDate = new Date();\n private _activeDateSetFlag = false;\n protected calendarModel = new Calendar();\n\n /**\n * The current value of the calendar.\n * Used when selection is set to single.\n */\n @blazorSuppress()\n @property({\n converter: {\n fromAttribute: (value: string) => (value ? new Date(value) : undefined),\n toAttribute: (value: Date) => value.toISOString(),\n },\n })\n public value?: Date;\n //we suppress value for blazor since we need to expose it on the leaves with the events for now.\n\n /**\n * The current values of the calendar.\n * Used when selection is set to multiple or range.\n */\n @blazorSuppress()\n @property({\n converter: {\n fromAttribute: (value: string) =>\n !value\n ? undefined\n : value\n .split(',')\n .map((v) => v.trim())\n .filter((v) => v)\n .map((v) => new Date(v)),\n toAttribute: (value: Date[]) =>\n value.map((v) => v.toISOString()).join(','),\n },\n })\n public values?: Date[];\n\n /** Sets the type of date selection. */\n @property()\n public selection: 'single' | 'multiple' | 'range' = 'single';\n\n /** Show/hide the week numbers. */\n @property({ type: Boolean, attribute: 'show-week-numbers', reflect: true })\n public showWeekNumbers = false;\n\n /** Sets the start day of the week. */\n @property({ attribute: 'week-start' })\n public weekStart:\n | 'sunday'\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday' = 'sunday';\n\n /** Sets the date which is shown in view and is highlighted. By default it is the current date. */\n public set activeDate(val: Date) {\n const oldVal = this._activeDate;\n this._activeDate = val;\n this._activeDateSetFlag = true;\n this.requestUpdate('activeDate', oldVal);\n }\n\n @blazorSuppress()\n @property({\n attribute: 'active-date',\n converter: {\n fromAttribute: (value: string) => (value ? new Date(value) : new Date()),\n toAttribute: (value: Date) => value.toISOString(),\n },\n })\n public get activeDate(): Date {\n return this._activeDate;\n }\n\n /** Sets the locale used for formatting and displaying the dates in the calendar. */\n @property()\n public locale = 'en';\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n public disabledDates!: DateRangeDescriptor[];\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n @watch('weekStart')\n protected weekStartChange() {\n this.calendarModel.firstWeekDay = getWeekDayNumber(this.weekStart);\n }\n\n @watch('selection', { waitUntilFirstUpdate: true })\n protected selectionChange() {\n this.value = undefined;\n }\n\n protected override async firstUpdated() {\n if (this._activeDateSetFlag) {\n return;\n }\n if (this.selection === 'single') {\n this.activeDate = this.value ?? this.activeDate;\n } else {\n this.activeDate = this.values ? this.values[0] : this.activeDate;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"calendar-base.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/calendar-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { Calendar, DateRangeDescriptor } from './calendar.model.js';\nimport { getWeekDayNumber } from './utils.js';\nimport { blazorDeepImport } from '../../common/decorators/blazorDeepImport.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppress } from '../../common/decorators/blazorSuppress.js';\nimport { watch } from '../../common/decorators/watch.js';\n\nexport const MONTHS_PER_ROW = 3;\nexport const YEARS_PER_ROW = 3;\n\nexport interface IgcCalendarBaseEventMap {\n igcChange: CustomEvent<Date | Date[]>;\n}\n\n@blazorIndirectRender\n@blazorDeepImport\nexport class IgcCalendarBaseComponent extends LitElement {\n private _activeDate = new Date();\n private _activeDateSetFlag = false;\n protected calendarModel = new Calendar();\n\n /**\n * The current value of the calendar.\n * Used when selection is set to single.\n */\n @blazorSuppress()\n @property({\n converter: {\n fromAttribute: (value: string) => (value ? new Date(value) : undefined),\n toAttribute: (value: Date) => value.toISOString(),\n },\n })\n public value?: Date;\n //we suppress value for blazor since we need to expose it on the leaves with the events for now.\n\n /**\n * The current values of the calendar.\n * Used when selection is set to multiple or range.\n */\n @blazorSuppress()\n @property({\n converter: {\n fromAttribute: (value: string) =>\n !value\n ? undefined\n : value\n .split(',')\n .map((v) => v.trim())\n .filter((v) => v)\n .map((v) => new Date(v)),\n toAttribute: (value: Date[]) =>\n value.map((v) => v.toISOString()).join(','),\n },\n })\n public values?: Date[];\n\n /** Sets the type of date selection. */\n @property()\n public selection: 'single' | 'multiple' | 'range' = 'single';\n\n /** Show/hide the week numbers. */\n @property({ type: Boolean, attribute: 'show-week-numbers', reflect: true })\n public showWeekNumbers = false;\n\n /** Sets the start day of the week. */\n @property({ attribute: 'week-start' })\n public weekStart:\n | 'sunday'\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday' = 'sunday';\n\n /** Sets the date which is shown in view and is highlighted. By default it is the current date. */\n public set activeDate(val: Date) {\n const oldVal = this._activeDate;\n this._activeDate = val;\n this._activeDateSetFlag = true;\n this.requestUpdate('activeDate', oldVal);\n }\n\n @blazorSuppress()\n @property({\n attribute: 'active-date',\n converter: {\n fromAttribute: (value: string) => (value ? new Date(value) : new Date()),\n toAttribute: (value: Date) => value.toISOString(),\n },\n })\n public get activeDate(): Date {\n return this._activeDate;\n }\n\n /** Sets the locale used for formatting and displaying the dates in the calendar. */\n @property()\n public locale = 'en';\n\n /** Gets/sets disabled dates. */\n @property({ attribute: false })\n public disabledDates!: DateRangeDescriptor[];\n\n /** Gets/sets special dates. */\n @property({ attribute: false })\n public specialDates!: DateRangeDescriptor[];\n\n @watch('weekStart')\n protected weekStartChange() {\n this.calendarModel.firstWeekDay = getWeekDayNumber(this.weekStart);\n }\n\n @watch('selection', { waitUntilFirstUpdate: true })\n protected selectionChange() {\n this.value = undefined;\n }\n\n protected override async firstUpdated() {\n if (this._activeDateSetFlag) {\n return;\n }\n if (this.selection === 'single') {\n this.activeDate = this.value ?? this.activeDate;\n } else {\n this.activeDate = this.values ? this.values[0] : this.activeDate;\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.model.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/calendar.model.ts"],"names":[],"mappings":"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","sourcesContent":["/* creationType: DateRangeDescriptor */\nexport interface DateRangeDescriptor {\n type: DateRangeType;\n dateRange?: Date[];\n}\n\nexport enum DateRangeType {\n After,\n Before,\n Between,\n Specific,\n Weekdays,\n Weekends,\n}\n\n/**\n * @hidden\n */\nexport enum TimeDeltaInterval {\n Second,\n Minute,\n Hour,\n Day,\n Week,\n Month,\n Quarter,\n Year,\n}\n\nconst MDAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst FEBRUARY = 1;\n\nexport const range = (start = 0, stop: number, step = 1) => {\n const res = [];\n const cur = stop === undefined ? 0 : start;\n const max = stop === undefined ? start : stop;\n for (let i = cur; step < 0 ? i > max : i < max; i += step) {\n res.push(i);\n }\n return res;\n};\n\n/**\n * Returns true for leap years, false for non-leap years.\n *\n * @export\n * @param year\n * @returns\n */\nexport const isLeap = (year: number): boolean =>\n year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n\nexport const weekDay = (year: number, month: number, day: number): number =>\n new Date(year, month, day).getDay();\n\n/**\n * Return weekday and number of days for year, month.\n *\n * @export\n * @param year\n * @param month\n * @returns\n */\nexport const monthRange = (year: number, month: number): number[] => {\n if (month < 0 || month > 11) {\n throw new Error('Invalid month specified');\n }\n const day = weekDay(year, month, 1);\n let nDays = MDAYS[month];\n if (month === FEBRUARY && isLeap(year)) {\n nDays++;\n }\n return [day, nDays];\n};\n\nexport const isDateInRanges = (\n date: Date,\n ranges: DateRangeDescriptor[]\n): boolean => {\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const dateInMs = date.getTime();\n\n if (!ranges) {\n return false;\n }\n\n for (const descriptor of ranges) {\n const dRanges: Date[] = descriptor.dateRange\n ? descriptor.dateRange.map(\n (r) => new Date(r.getFullYear(), r.getMonth(), r.getDate())\n )\n : [];\n switch (descriptor.type) {\n case DateRangeType.After:\n if (dateInMs > dRanges[0].getTime()) {\n return true;\n }\n\n break;\n case DateRangeType.Before:\n if (dateInMs < dRanges[0].getTime()) {\n return true;\n }\n\n break;\n case DateRangeType.Between: {\n const dRange = dRanges.map((d) => d.getTime());\n const min = Math.min(dRange[0], dRange[1]);\n const max = Math.max(dRange[0], dRange[1]);\n if (dateInMs >= min && dateInMs <= max) {\n return true;\n }\n\n break;\n }\n case DateRangeType.Specific: {\n const datesInMs = dRanges.map((d) => d.getTime());\n for (const specificDateInMs of datesInMs) {\n if (dateInMs === specificDateInMs) {\n return true;\n }\n }\n\n break;\n }\n case DateRangeType.Weekdays: {\n const day = date.getDay();\n if (day % 6 !== 0) {\n return true;\n }\n\n break;\n }\n case DateRangeType.Weekends: {\n const weekday = date.getDay();\n if (weekday % 6 === 0) {\n return true;\n }\n\n break;\n }\n default:\n return false;\n }\n }\n\n return false;\n};\n\n/* blazorSuppress */\nexport interface ICalendarDate {\n date: Date;\n isCurrentMonth: boolean;\n isPrevMonth: boolean;\n isNextMonth: boolean;\n}\n\nexport interface IFormattedParts {\n value: string;\n literal?: string;\n combined: string;\n}\n\nexport interface IFormattingViews {\n day?: boolean;\n month?: boolean;\n year?: boolean;\n}\n\nexport type WeekDays =\n | 'sunday'\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday';\n\nexport enum WEEKDAYS {\n SUNDAY = 0,\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n}\n\nexport class Calendar {\n private _firstWeekDay: number | WEEKDAYS;\n\n constructor(firstWeekDay: number | WEEKDAYS = WEEKDAYS.SUNDAY) {\n this._firstWeekDay = firstWeekDay;\n }\n\n /** Gets the starting day of the week. */\n public get firstWeekDay(): number {\n return this._firstWeekDay % 7;\n }\n\n /** Sets the starting day of the week. */\n public set firstWeekDay(value: number) {\n this._firstWeekDay = value;\n }\n\n /**\n * Returns an array of weekdays for one week starting\n * with the currently set `firstWeekDay`\n *\n * this.firstWeekDay = 0 (Sunday) --> [0, 1, 2, 3, 4, 5, 6]\n * this.firstWeekDay = 1 (Monday) --> [1, 2, 3, 4, 5, 6, 0]\n *\n * @returns\n *\n * @memberof Calendar\n */\n public weekdays(): number[] {\n const res = [];\n for (const i of range(this.firstWeekDay, this.firstWeekDay + 7)) {\n res.push(i % 7);\n }\n return res;\n }\n\n /**\n * Returns the date values for one month. It will always iterate throught\n * complete weeks, so it will contain dates outside the specified month.\n *\n * @param year\n * @param month\n * @param boolean\n * @returns\n *\n * @memberof Calendar\n */\n public monthdates(\n year: number,\n month: number,\n extraWeek = false\n ): ICalendarDate[] {\n let date = new Date(year, month, 1);\n let days = (date.getDay() - this.firstWeekDay) % 7;\n if (days < 0) {\n days = 7 - Math.abs(days);\n }\n date = this.timedelta(date, TimeDeltaInterval.Day, -days);\n const res = [];\n let value: ICalendarDate;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n\n date = this.timedelta(date, TimeDeltaInterval.Day, 1);\n\n if (date.getMonth() !== month && date.getDay() === this.firstWeekDay) {\n if (extraWeek && res.length <= 35) {\n for (const _ of range(0, 7)) {\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n date = this.timedelta(date, TimeDeltaInterval.Day, 1);\n }\n }\n break;\n }\n }\n return res;\n }\n\n /**\n * Returns a matrix (array of arrays) representing a month's calendar.\n * Each row represents a full week; week entries are ICalendarDate objects.\n *\n * @param year\n * @param month\n * @returns\n *\n * @memberof Calendar\n */\n public monthdatescalendar(\n year: number,\n month: number,\n extraWeek = false\n ): ICalendarDate[][] {\n const dates = this.monthdates(year, month, extraWeek);\n const res = [];\n for (const i of range(0, dates.length, 7)) {\n res.push(dates.slice(i, i + 7));\n }\n return res;\n }\n\n public timedelta(\n date: Date,\n interval: TimeDeltaInterval,\n units: number\n ): Date {\n const ret = new Date(date);\n\n const checkRollover = () => {\n if (ret.getDate() !== date.getDate()) {\n ret.setDate(0);\n }\n };\n\n switch (interval) {\n case TimeDeltaInterval.Year:\n ret.setFullYear(ret.getFullYear() + units);\n checkRollover();\n break;\n case TimeDeltaInterval.Quarter:\n ret.setMonth(ret.getMonth() + 3 * units);\n checkRollover();\n break;\n case TimeDeltaInterval.Month:\n ret.setMonth(ret.getMonth() + units);\n checkRollover();\n break;\n case TimeDeltaInterval.Week:\n ret.setDate(ret.getDate() + 7 * units);\n break;\n case TimeDeltaInterval.Day:\n ret.setDate(ret.getDate() + units);\n break;\n case TimeDeltaInterval.Hour:\n ret.setTime(ret.getTime() + units * 3600000);\n break;\n case TimeDeltaInterval.Minute:\n ret.setTime(ret.getTime() + units * 60000);\n break;\n case TimeDeltaInterval.Second:\n ret.setTime(ret.getTime() + units * 1000);\n break;\n default:\n throw new Error('Invalid interval specifier');\n }\n return ret;\n }\n\n /** Gets the same date the month after. */\n public getNextMonth(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Month, 1);\n }\n\n /** Gets the same date the month prior. */\n public getPrevMonth(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Month, -1);\n }\n\n /** Gets the same date the year after. */\n public getNextYear(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Year, 1);\n }\n\n /** Gets the same date the year prior. */\n public getPrevYear(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Year, -1);\n }\n\n /** Gets the week number of a given date. */\n public getWeekNumber(date: Date) {\n const firstJan = new Date(date.getFullYear(), 0, 1).getTime();\n const today = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n ).getTime();\n const dayInMilSeconds = 86400000;\n const dayOfYear = (today - firstJan + 1) / dayInMilSeconds;\n return Math.ceil(dayOfYear / 7);\n }\n\n private generateICalendarDate(\n date: Date,\n year: number,\n month: number\n ): ICalendarDate {\n return {\n date,\n isCurrentMonth: date.getFullYear() === year && date.getMonth() === month,\n isNextMonth: this.isNextMonth(date, year, month),\n isPrevMonth: this.isPreviousMonth(date, year, month),\n };\n }\n\n private isPreviousMonth(date: Date, year: number, month: number): boolean {\n if (date.getFullYear() === year) {\n return date.getMonth() < month;\n }\n return date.getFullYear() < year;\n }\n\n private isNextMonth(date: Date, year: number, month: number): boolean {\n if (date.getFullYear() === year) {\n return date.getMonth() > month;\n }\n\n return date.getFullYear() > year;\n }\n}\n"]}
1
+ {"version":3,"file":"calendar.model.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/calendar.model.ts"],"names":[],"mappings":"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","sourcesContent":["/* creationType: DateRangeDescriptor */\nexport interface DateRangeDescriptor {\n type: DateRangeType;\n dateRange?: Date[];\n}\n\nexport enum DateRangeType {\n After,\n Before,\n Between,\n Specific,\n Weekdays,\n Weekends,\n}\n\n/**\n * @hidden\n */\nexport enum TimeDeltaInterval {\n Second,\n Minute,\n Hour,\n Day,\n Week,\n Month,\n Quarter,\n Year,\n}\n\nconst MDAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst FEBRUARY = 1;\n\nexport const range = (start = 0, stop: number, step = 1) => {\n const res = [];\n const cur = stop === undefined ? 0 : start;\n const max = stop === undefined ? start : stop;\n for (let i = cur; step < 0 ? i > max : i < max; i += step) {\n res.push(i);\n }\n return res;\n};\n\n/**\n * Returns true for leap years, false for non-leap years.\n *\n * @export\n * @param year\n * @returns\n */\nexport const isLeap = (year: number): boolean =>\n year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n\nexport const weekDay = (year: number, month: number, day: number): number =>\n new Date(year, month, day).getDay();\n\n/**\n * Return weekday and number of days for year, month.\n *\n * @export\n * @param year\n * @param month\n * @returns\n */\nexport const monthRange = (year: number, month: number): number[] => {\n if (month < 0 || month > 11) {\n throw new Error('Invalid month specified');\n }\n const day = weekDay(year, month, 1);\n let nDays = MDAYS[month];\n if (month === FEBRUARY && isLeap(year)) {\n nDays++;\n }\n return [day, nDays];\n};\n\nexport const isDateInRanges = (\n date: Date,\n ranges: DateRangeDescriptor[]\n): boolean => {\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const dateInMs = date.getTime();\n\n if (!ranges) {\n return false;\n }\n\n for (const descriptor of ranges) {\n const dRanges: Date[] = descriptor.dateRange\n ? descriptor.dateRange.map(\n (r) => new Date(r.getFullYear(), r.getMonth(), r.getDate())\n )\n : [];\n switch (descriptor.type) {\n case DateRangeType.After:\n if (dateInMs > dRanges[0].getTime()) {\n return true;\n }\n\n break;\n case DateRangeType.Before:\n if (dateInMs < dRanges[0].getTime()) {\n return true;\n }\n\n break;\n case DateRangeType.Between: {\n const dRange = dRanges.map((d) => d.getTime());\n const min = Math.min(dRange[0], dRange[1]);\n const max = Math.max(dRange[0], dRange[1]);\n if (dateInMs >= min && dateInMs <= max) {\n return true;\n }\n\n break;\n }\n case DateRangeType.Specific: {\n const datesInMs = dRanges.map((d) => d.getTime());\n for (const specificDateInMs of datesInMs) {\n if (dateInMs === specificDateInMs) {\n return true;\n }\n }\n\n break;\n }\n case DateRangeType.Weekdays: {\n const day = date.getDay();\n if (day % 6 !== 0) {\n return true;\n }\n\n break;\n }\n case DateRangeType.Weekends: {\n const weekday = date.getDay();\n if (weekday % 6 === 0) {\n return true;\n }\n\n break;\n }\n default:\n return false;\n }\n }\n\n return false;\n};\n\n/* blazorSuppress */\nexport interface ICalendarDate {\n date: Date;\n isCurrentMonth: boolean;\n isPrevMonth: boolean;\n isNextMonth: boolean;\n}\n\nexport interface IFormattedParts {\n value: string;\n literal?: string;\n combined: string;\n}\n\nexport interface IFormattingViews {\n day?: boolean;\n month?: boolean;\n year?: boolean;\n}\n\nexport type WeekDays =\n | 'sunday'\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday';\n\nexport enum WEEKDAYS {\n SUNDAY = 0,\n MONDAY = 1,\n TUESDAY = 2,\n WEDNESDAY = 3,\n THURSDAY = 4,\n FRIDAY = 5,\n SATURDAY = 6,\n}\n\nexport class Calendar {\n private _firstWeekDay: number | WEEKDAYS;\n\n constructor(firstWeekDay: number | WEEKDAYS = WEEKDAYS.SUNDAY) {\n this._firstWeekDay = firstWeekDay;\n }\n\n /** Gets the starting day of the week. */\n public get firstWeekDay(): number {\n return this._firstWeekDay % 7;\n }\n\n /** Sets the starting day of the week. */\n public set firstWeekDay(value: number) {\n this._firstWeekDay = value;\n }\n\n /**\n * Returns an array of weekdays for one week starting\n * with the currently set `firstWeekDay`\n *\n * this.firstWeekDay = 0 (Sunday) --> [0, 1, 2, 3, 4, 5, 6]\n * this.firstWeekDay = 1 (Monday) --> [1, 2, 3, 4, 5, 6, 0]\n *\n * @returns\n *\n * @memberof Calendar\n */\n public weekdays(): number[] {\n const res = [];\n for (const i of range(this.firstWeekDay, this.firstWeekDay + 7)) {\n res.push(i % 7);\n }\n return res;\n }\n\n /**\n * Returns the date values for one month. It will always iterate throught\n * complete weeks, so it will contain dates outside the specified month.\n *\n * @param year\n * @param month\n * @param boolean\n * @returns\n *\n * @memberof Calendar\n */\n public monthdates(\n year: number,\n month: number,\n extraWeek = false\n ): ICalendarDate[] {\n let date = new Date(year, month, 1);\n let days = (date.getDay() - this.firstWeekDay) % 7;\n if (days < 0) {\n days = 7 - Math.abs(days);\n }\n date = this.timedelta(date, TimeDeltaInterval.Day, -days);\n const res = [];\n let value: ICalendarDate;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n\n date = this.timedelta(date, TimeDeltaInterval.Day, 1);\n\n if (date.getMonth() !== month && date.getDay() === this.firstWeekDay) {\n if (extraWeek && res.length <= 35) {\n for (const _ of range(0, 7)) {\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n date = this.timedelta(date, TimeDeltaInterval.Day, 1);\n }\n }\n break;\n }\n }\n return res;\n }\n\n /**\n * Returns a matrix (array of arrays) representing a month's calendar.\n * Each row represents a full week; week entries are ICalendarDate objects.\n *\n * @param year\n * @param month\n * @returns\n *\n * @memberof Calendar\n */\n public monthdatescalendar(\n year: number,\n month: number,\n extraWeek = false\n ): ICalendarDate[][] {\n const dates = this.monthdates(year, month, extraWeek);\n const res = [];\n for (const i of range(0, dates.length, 7)) {\n res.push(dates.slice(i, i + 7));\n }\n return res;\n }\n\n public timedelta(\n date: Date,\n interval: TimeDeltaInterval,\n units: number\n ): Date {\n const ret = new Date(date);\n\n const checkRollover = () => {\n if (ret.getDate() !== date.getDate()) {\n ret.setDate(0);\n }\n };\n\n switch (interval) {\n case TimeDeltaInterval.Year:\n ret.setFullYear(ret.getFullYear() + units);\n checkRollover();\n break;\n case TimeDeltaInterval.Quarter:\n ret.setMonth(ret.getMonth() + 3 * units);\n checkRollover();\n break;\n case TimeDeltaInterval.Month:\n ret.setMonth(ret.getMonth() + units);\n checkRollover();\n break;\n case TimeDeltaInterval.Week:\n ret.setDate(ret.getDate() + 7 * units);\n break;\n case TimeDeltaInterval.Day:\n ret.setDate(ret.getDate() + units);\n break;\n case TimeDeltaInterval.Hour:\n ret.setTime(ret.getTime() + units * 3600000);\n break;\n case TimeDeltaInterval.Minute:\n ret.setTime(ret.getTime() + units * 60000);\n break;\n case TimeDeltaInterval.Second:\n ret.setTime(ret.getTime() + units * 1000);\n break;\n default:\n throw new Error('Invalid interval specifier');\n }\n return ret;\n }\n\n /** Gets the same date the month after. */\n public getNextMonth(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Month, 1);\n }\n\n /** Gets the same date the month prior. */\n public getPrevMonth(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Month, -1);\n }\n\n /** Gets the same date the year after. */\n public getNextYear(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Year, 1);\n }\n\n /** Gets the same date the year prior. */\n public getPrevYear(date: Date) {\n return this.timedelta(date, TimeDeltaInterval.Year, -1);\n }\n\n /** Gets the week number of a given date. */\n public getWeekNumber(date: Date) {\n const firstJan = new Date(date.getFullYear(), 0, 1).getTime();\n const today = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n ).getTime();\n const dayInMilSeconds = 86400000;\n const dayOfYear = (today - firstJan + 1) / dayInMilSeconds;\n return Math.ceil(dayOfYear / 7);\n }\n\n private generateICalendarDate(\n date: Date,\n year: number,\n month: number\n ): ICalendarDate {\n return {\n date,\n isCurrentMonth: date.getFullYear() === year && date.getMonth() === month,\n isNextMonth: this.isNextMonth(date, year, month),\n isPrevMonth: this.isPreviousMonth(date, year, month),\n };\n }\n\n private isPreviousMonth(date: Date, year: number, month: number): boolean {\n if (date.getFullYear() === year) {\n return date.getMonth() < month;\n }\n return date.getFullYear() < year;\n }\n\n private isNextMonth(date: Date, year: number, month: number): boolean {\n if (date.getFullYear() === year) {\n return date.getMonth() > month;\n }\n\n return date.getFullYear() > year;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { WeekDays } from './calendar.model.js';\n\nconst weekDaysMap = {\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6,\n};\n\nconst DATE_BOUND = 8640000000000000;\n\nexport const MAX_DATE = new Date(DATE_BOUND);\n\nexport const MIN_DATE = new Date(-DATE_BOUND);\n\nexport const isDate = (value: any): value is Date => value instanceof Date;\n\nexport const areEqualDates = (\n date1: Date,\n date2: Date,\n datePartOnly = true\n) => {\n return datePartOnly\n ? date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n : date1.getTime() === date2.getTime();\n};\n\nexport const setDateSafe = (date: Date, value: number) => {\n date.setDate(value);\n if (date.getDate() !== value) {\n date.setDate(0);\n }\n};\n\nexport const isEqual = (obj1: any, obj2: any): boolean => {\n if (isDate(obj1) && isDate(obj2)) {\n return obj1.getTime() === obj2.getTime();\n }\n return obj1 === obj2;\n};\n\nexport const isValidDate = (value: any): value is Date => {\n if (isDate(value)) {\n return !isNaN(value.getTime());\n }\n\n return false;\n};\n\nexport const validateDate = (value: Date) => {\n return isValidDate(value) ? value : new Date();\n};\n\nexport const getDateOnly = (date: Date) => {\n const validDate = validateDate(date);\n return new Date(\n validDate.getFullYear(),\n validDate.getMonth(),\n validDate.getDate()\n );\n};\n\nexport const getWeekDayNumber = (day: WeekDays) => {\n return weekDaysMap[day];\n};\n\nexport const calculateYearsRangeStart = (date: Date, rangeCount: number) => {\n const year = date.getFullYear();\n const startYear = Math.floor(year / rangeCount) * rangeCount;\n\n return startYear;\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/calendar/common/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { WeekDays } from './calendar.model.js';\n\nconst weekDaysMap = {\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6,\n};\n\nconst DATE_BOUND = 8640000000000000;\n\nexport const MAX_DATE = new Date(DATE_BOUND);\n\nexport const MIN_DATE = new Date(-DATE_BOUND);\n\nexport const isDate = (value: any): value is Date => value instanceof Date;\n\nexport const areEqualDates = (\n date1: Date,\n date2: Date,\n datePartOnly = true\n) => {\n return datePartOnly\n ? date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n : date1.getTime() === date2.getTime();\n};\n\nexport const setDateSafe = (date: Date, value: number) => {\n date.setDate(value);\n if (date.getDate() !== value) {\n date.setDate(0);\n }\n};\n\nexport const isEqual = (obj1: any, obj2: any): boolean => {\n if (isDate(obj1) && isDate(obj2)) {\n return obj1.getTime() === obj2.getTime();\n }\n return obj1 === obj2;\n};\n\nexport const isValidDate = (value: any): value is Date => {\n if (isDate(value)) {\n return !isNaN(value.getTime());\n }\n\n return false;\n};\n\nexport const validateDate = (value: Date) => {\n return isValidDate(value) ? value : new Date();\n};\n\nexport const getDateOnly = (date: Date) => {\n const validDate = validateDate(date);\n return new Date(\n validDate.getFullYear(),\n validDate.getMonth(),\n validDate.getDate()\n );\n};\n\nexport const getWeekDayNumber = (day: WeekDays) => {\n return weekDaysMap[day];\n};\n\nexport const calculateYearsRangeStart = (date: Date, rangeCount: number) => {\n const year = date.getFullYear();\n const startYear = Math.floor(year / rangeCount) * rangeCount;\n\n return startYear;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"days-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/days-view/days-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { watch } from '../../common/decorators/watch.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport {\n IgcCalendarResourceStringEN,\n IgcCalendarResourceStrings,\n} from '../../common/i18n/calendar.resources.js';\nimport { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partNameMap } from '../../common/util.js';\nimport {\n IgcCalendarBaseComponent,\n IgcCalendarBaseEventMap,\n} from '../common/calendar-base.js';\nimport {\n DateRangeType,\n ICalendarDate,\n TimeDeltaInterval,\n isDateInRanges,\n} from '../common/calendar.model.js';\nimport { areEqualDates, getDateOnly, isEqual } from '../common/utils.js';\nimport { styles } from '../themes/days-view.base.css.js';\nimport { all } from '../themes/days.js';\n\nexport interface IgcDaysViewEventMap extends IgcCalendarBaseEventMap {\n igcActiveDateChange: CustomEvent<ICalendarDate>;\n igcRangePreviewDateChange: CustomEvent<Date>;\n}\n\n/**\n * Instantiate a days view as a separate component in the calendar.\n *\n * @element igc-days-view\n *\n * @fires igcActiveDateChange - Emitted when the active date changes.\n * @fires igcRangePreviewDateChange - Emitted when the range preview date changes.\n *\n * @csspart days-row - The days row container.\n * @csspart label - The label container.\n * @csspart label-inner - The inner label container.\n * @csspart week-number - The week number container.\n * @csspart week-number-inner - The inner week number container.\n */\n@blazorSuppressComponent\n@blazorIndirectRender\n@themes(all)\nexport default class IgcDaysViewComponent extends EventEmitterMixin<\n IgcDaysViewEventMap,\n Constructor<IgcCalendarBaseComponent>\n>(IgcCalendarBaseComponent) {\n public static readonly tagName = 'igc-days-view';\n public static styles = styles;\n\n public static register() {\n registerComponent(this);\n }\n\n private labelFormatter!: Intl.DateTimeFormat;\n private formatterWeekday!: Intl.DateTimeFormat;\n private dates!: ICalendarDate[][];\n\n @query('[tabindex=\"0\"]')\n private activeDay!: HTMLElement;\n\n /** Controls the visibility of the leading dates that do not belong to the current month. */\n @property({ type: Boolean, attribute: 'hide-leading-days' })\n public hideLeadingDays = false;\n\n /** Controls the visibility of the trailing dates that do not belong to the current month. */\n @property({ type: Boolean, attribute: 'hide-trailing-days' })\n public hideTrailingDays = false;\n\n /** Gets/sets the active state of the days view. */\n @property({ type: Boolean })\n public active = false;\n\n /** The range preview date. */\n @property({ attribute: false })\n public rangePreviewDate?: Date;\n\n /** The format of the days. Defaults to narrow. */\n @property({ attribute: 'week-day-format' })\n public weekDayFormat: 'long' | 'short' | 'narrow' | undefined = 'narrow';\n\n /** The resource strings. */\n @property({ attribute: false })\n public resourceStrings: IgcCalendarResourceStrings =\n IgcCalendarResourceStringEN;\n\n @watch('weekDayFormat')\n @watch('locale')\n protected formattersChange() {\n this.initFormatters();\n }\n\n @watch('weekStart')\n @watch('activeDate')\n protected datesChange() {\n this.dates = this.getCalendarMonth();\n }\n\n constructor() {\n super();\n this.setAttribute('role', 'grid');\n this.initFormatters();\n }\n\n /** Focuses the active date. */\n public focusActiveDate() {\n this.activeDay.focus();\n }\n\n private initFormatters() {\n this.formatterWeekday = new Intl.DateTimeFormat(this.locale, {\n weekday: this.weekDayFormat,\n });\n this.labelFormatter = new Intl.DateTimeFormat(this.locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n }\n\n private generateWeekHeader(): { label: string; ariaLabel: string }[] {\n const dayNames = [];\n const rv = this.calendarModel.monthdatescalendar(\n this.activeDate.getFullYear(),\n this.activeDate.getMonth()\n )[0];\n for (const day of rv) {\n dayNames.push({\n label: this.formatterWeekday.format(day.date),\n ariaLabel: day.date.toLocaleString(this.locale, { weekday: 'long' }),\n });\n }\n\n return dayNames;\n }\n\n private getCalendarMonth(): ICalendarDate[][] {\n return this.calendarModel.monthdatescalendar(\n this.activeDate.getFullYear(),\n this.activeDate.getMonth(),\n true\n );\n }\n\n private titleCase(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n private getWeekNumber(date: Date): number {\n return this.calendarModel.getWeekNumber(date);\n }\n\n private formattedDate(value: Date): string {\n return `${value.getDate()}`;\n }\n\n private get isSingleSelection(): boolean {\n return this.selection !== 'range';\n }\n\n private isLastInRange(date: ICalendarDate): boolean {\n if (this.isSingleSelection || !this.values || this.values.length === 0) {\n return false;\n }\n\n const dates = this.values;\n let lastDate = dates[dates.length - 1];\n\n if (this.rangePreviewDate) {\n if (this.rangePreviewDate > lastDate) {\n lastDate = this.rangePreviewDate;\n }\n }\n\n return isEqual(lastDate, date.date);\n }\n\n private isFirstInRange(date: ICalendarDate): boolean {\n if (this.isSingleSelection || !this.values || this.values.length === 0) {\n return false;\n }\n\n const dates = this.values;\n let firstDate = dates[0];\n\n if (this.rangePreviewDate) {\n if (this.rangePreviewDate < firstDate) {\n firstDate = this.rangePreviewDate;\n }\n }\n\n return isEqual(firstDate, date.date);\n }\n\n private isDisabled(date: Date): boolean {\n if (!this.disabledDates) {\n return false;\n }\n\n return isDateInRanges(date, this.disabledDates);\n }\n\n private isWithinRange(date: Date, min: Date, max: Date): boolean {\n return isDateInRanges(date, [\n {\n type: DateRangeType.Between,\n dateRange: [min, max],\n },\n ]);\n }\n\n private isRangeDate(date: Date) {\n if (\n this.selection !== 'range' ||\n !this.values ||\n this.values.length === 0\n ) {\n return false;\n }\n\n const dates = this.values;\n const min = dates[0];\n let max;\n\n if (dates.length === 1) {\n if (!this.rangePreviewDate) {\n return false;\n }\n\n max = this.rangePreviewDate;\n } else {\n max = dates[dates.length - 1];\n }\n\n return isDateInRanges(date, [\n {\n type: DateRangeType.Between,\n dateRange: [min, max],\n },\n ]);\n }\n\n private isRangePreview(date: Date) {\n if (\n this.selection === 'range' &&\n this.values &&\n this.values.length > 0 &&\n this.rangePreviewDate\n ) {\n return isDateInRanges(date, [\n {\n type: DateRangeType.Between,\n dateRange: [this.values[0], this.rangePreviewDate],\n },\n ]);\n }\n\n return false;\n }\n\n private isSelected(date: ICalendarDate) {\n if (this.isDisabled(date.date)) {\n return false;\n }\n\n if (this.selection === 'single') {\n if (!this.value) {\n return false;\n }\n return getDateOnly(this.value).getTime() === date.date.getTime();\n }\n\n if (!this.values || this.values.length === 0) {\n return false;\n }\n\n if (this.selection === 'range' && this.values.length === 1) {\n return getDateOnly(this.values[0]).getTime() === date.date.getTime();\n }\n\n if (this.selection === 'multiple') {\n const start = getDateOnly(this.values[0]);\n const end = getDateOnly(this.values[this.values.length - 1]);\n\n if (this.isWithinRange(date.date, start, end)) {\n const currentDate = this.values.find(\n (element) => element.getTime() === date.date.getTime()\n );\n return !!currentDate;\n } else {\n return false;\n }\n } else {\n return this.isWithinRange(\n date.date,\n this.values[0],\n this.values[this.values.length - 1]\n );\n }\n }\n\n private isToday(day: ICalendarDate): boolean {\n const today = new Date(Date.now());\n const date = day.date;\n\n // TODO\n // if (date.getDate() === today.getDate()) {\n // this.nativeElement.setAttribute('aria-current', 'date');\n // }\n\n return (\n date.getFullYear() === today.getFullYear() &&\n date.getMonth() === today.getMonth() &&\n date.getDate() === today.getDate()\n );\n }\n\n private isWeekend(date: ICalendarDate): boolean {\n const day = date.date.getDay();\n return day === 0 || day === 6;\n }\n\n private isSpecial(day: ICalendarDate): boolean {\n if (this.specialDates === null) {\n return false;\n }\n\n return isDateInRanges(day.date, this.specialDates);\n }\n\n private dateClicked(event: Event, day: ICalendarDate) {\n event.stopPropagation();\n\n this.selectDay(day);\n\n this.changeActiveDate(day);\n }\n\n private selectDay(day: ICalendarDate) {\n if (this.rangePreviewDate) {\n this.setRangePreviewDate(undefined);\n }\n\n const result = this.selectDate(day.date);\n\n if (result) {\n this.emitEvent('igcChange', { detail: day.date });\n }\n }\n\n private selectDate(value: Date) {\n if (this.isDisabled(value)) {\n return false;\n }\n\n switch (this.selection) {\n case 'single':\n if (this.value?.getTime() === value.getTime()) {\n return false;\n }\n this.selectSingle(value);\n break;\n case 'multiple':\n this.selectMultiple(value);\n break;\n case 'range':\n this.selectRange(value);\n break;\n }\n\n return true;\n }\n\n private generateDateRange(start: Date, end: Date): Date[] {\n const result = [];\n start = getDateOnly(start);\n end = getDateOnly(end);\n while (start.getTime() < end.getTime()) {\n start = this.calendarModel.timedelta(start, TimeDeltaInterval.Day, 1);\n result.push(start);\n }\n\n return result;\n }\n\n private selectRange(value: Date) {\n let start: Date;\n let end: Date;\n let selectedDates: Date[] = (this.values ?? []) as Date[];\n\n if (selectedDates.length !== 1) {\n // start new range\n selectedDates = [value];\n } else {\n if (selectedDates[0].getTime() === value.getTime()) {\n this.values = [];\n return;\n }\n\n selectedDates.push(value);\n selectedDates.sort((a: Date, b: Date) => a.valueOf() - b.valueOf());\n\n start = selectedDates.shift()!;\n end = selectedDates.pop()!;\n selectedDates = [start, ...this.generateDateRange(start, end)];\n }\n\n // exclude disabled dates\n selectedDates = selectedDates.filter((d) => !this.isDisabled(d));\n\n this.values = [...selectedDates];\n }\n\n private selectSingle(value: Date) {\n this.value = getDateOnly(value);\n }\n\n private selectMultiple(value: Date) {\n let selectedDates: Date[] = (this.values ?? []) as Date[];\n const valueDateOnly = getDateOnly(value);\n const newSelection = [];\n\n if (\n selectedDates.every(\n (date: Date) => date.getTime() !== valueDateOnly.getTime()\n )\n ) {\n newSelection.push(valueDateOnly);\n } else {\n selectedDates = selectedDates.filter(\n (date: Date) => date.getTime() !== valueDateOnly.getTime()\n );\n }\n\n if (newSelection.length > 0) {\n selectedDates = selectedDates.concat(newSelection);\n }\n\n selectedDates = selectedDates.filter((d) => !this.isDisabled(d));\n selectedDates.sort((a: Date, b: Date) => a.valueOf() - b.valueOf());\n this.values = [...selectedDates];\n }\n\n private changeActiveDate(day: ICalendarDate) {\n this.activeDate = day.date;\n this.emitEvent('igcActiveDateChange', { detail: day });\n }\n\n private dateKeyDown(event: KeyboardEvent, day: ICalendarDate) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectDay(day);\n }\n }\n\n private changeRangePreview(date: Date) {\n if (\n this.selection === 'range' &&\n this.values &&\n this.values.length === 1 &&\n !isEqual(this.values[0], date)\n ) {\n this.setRangePreviewDate(date);\n }\n }\n\n private clearRangePreview() {\n if (this.rangePreviewDate) {\n this.setRangePreviewDate(undefined);\n }\n }\n\n private setRangePreviewDate(value?: Date) {\n this.rangePreviewDate = value;\n this.emitEvent('igcRangePreviewDateChange', { detail: value });\n }\n\n private resolveDayItemPartName(day: ICalendarDate) {\n const isInactive = day.isNextMonth || day.isPrevMonth;\n const isHidden =\n (this.hideLeadingDays && day.isPrevMonth) ||\n (this.hideTrailingDays && day.isNextMonth);\n const isDisabled = this.isDisabled(day.date);\n\n return {\n date: true,\n first: this.isFirstInRange(day),\n last: this.isLastInRange(day),\n selected: !isDisabled && this.isSelected(day),\n inactive: isInactive,\n hidden: isHidden,\n current: this.isToday(day),\n weekend: this.isWeekend(day),\n range: this.selection === 'range' && this.isRangeDate(day.date),\n special: this.isSpecial(day),\n disabled: isHidden || isDisabled,\n single: this.selection !== 'range',\n preview: this.isRangePreview(day.date),\n };\n }\n\n private renderWeekHeaders() {\n return html`<div role=\"row\" part=\"days-row first\">\n ${this.showWeekNumbers\n ? html`<span role=\"columnheader\" part=\"label week-number first\">\n <span part=\"week-number-inner first\"\n >${this.resourceStrings.weekLabel}</span\n >\n </span>`\n : ''}\n ${this.generateWeekHeader().map(\n (weekday) =>\n html`<span\n role=\"columnheader\"\n part=\"label\"\n aria-label=${weekday.ariaLabel}\n >\n <span part=\"label-inner\">${this.titleCase(weekday.label)}</span>\n </span> `\n )}\n </div>`;\n }\n\n private renderDates() {\n return this.dates.map((week, i) => {\n const last = i === this.dates.length - 1;\n\n return html`<div role=\"row\" part=\"days-row\">\n ${this.showWeekNumbers\n ? html`<span\n role=\"rowheader\"\n part=${partNameMap({ 'week-number': true, last })}\n >\n <span part=${partNameMap({ 'week-number-inner': true, last })}\n >${this.getWeekNumber(week[0].date)}</span\n >\n </span>`\n : ''}\n ${week.map((day) => this.renderDateItem(day))}\n </div>`;\n });\n }\n\n protected dayLabelFormatter(value: ICalendarDate) {\n // Range selection in progress\n if (\n this.rangePreviewDate &&\n areEqualDates(this.rangePreviewDate, value.date)\n ) {\n return (this.labelFormatter as any).formatRange(\n this.values!.at(0),\n this.rangePreviewDate\n );\n }\n\n // Range selection finished\n if (this.isFirstInRange(value) || this.isLastInRange(value)) {\n return (this.labelFormatter as any).formatRange(\n this.values!.at(0),\n this.values!.at(-1)\n );\n }\n\n // Default\n return this.labelFormatter.format(value.date);\n }\n\n private renderDateItem(day: ICalendarDate) {\n const datePartName = partNameMap(this.resolveDayItemPartName(day));\n const dateInnerPartName = datePartName.replace('date', 'date-inner');\n\n return html`<span part=${datePartName}>\n <span\n part=${dateInnerPartName}\n role=\"gridcell\"\n aria-label=${this.dayLabelFormatter(day)}\n aria-selected=${this.isSelected(day)}\n aria-disabled=${this.isDisabled(day.date)}\n tabindex=${this.active && areEqualDates(this.activeDate, day.date)\n ? 0\n : -1}\n @click=${(event: MouseEvent) => this.dateClicked(event, day)}\n @focus=${() => this.changeRangePreview(day.date)}\n @blur=${() => this.clearRangePreview()}\n @keydown=${(event: KeyboardEvent) => this.dateKeyDown(event, day)}\n @mouseenter=${() => this.changeRangePreview(day.date)}\n @mouseleave=${() => this.clearRangePreview()}\n >${this.formattedDate(day.date)}</span\n >\n </span>`;\n }\n\n protected override render() {\n return html`${this.renderWeekHeaders()} ${this.renderDates()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-days-view': IgcDaysViewComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"days-view.js","sourceRoot":"","sources":["../../../../src/components/calendar/days-view/days-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport { themes } from '../../../theming/theming-decorator.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { watch } from '../../common/decorators/watch.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport {\n IgcCalendarResourceStringEN,\n IgcCalendarResourceStrings,\n} from '../../common/i18n/calendar.resources.js';\nimport { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partNameMap } from '../../common/util.js';\nimport {\n IgcCalendarBaseComponent,\n IgcCalendarBaseEventMap,\n} from '../common/calendar-base.js';\nimport {\n DateRangeType,\n ICalendarDate,\n TimeDeltaInterval,\n isDateInRanges,\n} from '../common/calendar.model.js';\nimport { areEqualDates, getDateOnly, isEqual } from '../common/utils.js';\nimport { styles } from '../themes/days-view.base.css.js';\nimport { all } from '../themes/days.js';\n\nexport interface IgcDaysViewEventMap extends IgcCalendarBaseEventMap {\n igcActiveDateChange: CustomEvent<ICalendarDate>;\n igcRangePreviewDateChange: CustomEvent<Date>;\n}\n\n/**\n * Instantiate a days view as a separate component in the calendar.\n *\n * @element igc-days-view\n *\n * @fires igcActiveDateChange - Emitted when the active date changes.\n * @fires igcRangePreviewDateChange - Emitted when the range preview date changes.\n *\n * @csspart days-row - The days row container.\n * @csspart label - The label container.\n * @csspart label-inner - The inner label container.\n * @csspart week-number - The week number container.\n * @csspart week-number-inner - The inner week number container.\n */\n@blazorSuppressComponent\n@blazorIndirectRender\n@themes(all)\nexport default class IgcDaysViewComponent extends EventEmitterMixin<\n IgcDaysViewEventMap,\n Constructor<IgcCalendarBaseComponent>\n>(IgcCalendarBaseComponent) {\n public static readonly tagName = 'igc-days-view';\n public static styles = styles;\n\n public static register() {\n registerComponent(this);\n }\n\n private labelFormatter!: Intl.DateTimeFormat;\n private formatterWeekday!: Intl.DateTimeFormat;\n private dates!: ICalendarDate[][];\n\n @query('[tabindex=\"0\"]')\n private activeDay!: HTMLElement;\n\n /** Controls the visibility of the leading dates that do not belong to the current month. */\n @property({ type: Boolean, attribute: 'hide-leading-days' })\n public hideLeadingDays = false;\n\n /** Controls the visibility of the trailing dates that do not belong to the current month. */\n @property({ type: Boolean, attribute: 'hide-trailing-days' })\n public hideTrailingDays = false;\n\n /** Gets/sets the active state of the days view. */\n @property({ type: Boolean })\n public active = false;\n\n /** The range preview date. */\n @property({ attribute: false })\n public rangePreviewDate?: Date;\n\n /** The format of the days. Defaults to narrow. */\n @property({ attribute: 'week-day-format' })\n public weekDayFormat: 'long' | 'short' | 'narrow' | undefined = 'narrow';\n\n /** The resource strings. */\n @property({ attribute: false })\n public resourceStrings: IgcCalendarResourceStrings =\n IgcCalendarResourceStringEN;\n\n @watch('weekDayFormat')\n @watch('locale')\n protected formattersChange() {\n this.initFormatters();\n }\n\n @watch('weekStart')\n @watch('activeDate')\n protected datesChange() {\n this.dates = this.getCalendarMonth();\n }\n\n constructor() {\n super();\n this.setAttribute('role', 'grid');\n this.initFormatters();\n }\n\n /** Focuses the active date. */\n public focusActiveDate() {\n this.activeDay.focus();\n }\n\n private initFormatters() {\n this.formatterWeekday = new Intl.DateTimeFormat(this.locale, {\n weekday: this.weekDayFormat,\n });\n this.labelFormatter = new Intl.DateTimeFormat(this.locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n }\n\n private generateWeekHeader(): { label: string; ariaLabel: string }[] {\n const dayNames = [];\n const rv = this.calendarModel.monthdatescalendar(\n this.activeDate.getFullYear(),\n this.activeDate.getMonth()\n )[0];\n for (const day of rv) {\n dayNames.push({\n label: this.formatterWeekday.format(day.date),\n ariaLabel: day.date.toLocaleString(this.locale, { weekday: 'long' }),\n });\n }\n\n return dayNames;\n }\n\n private getCalendarMonth(): ICalendarDate[][] {\n return this.calendarModel.monthdatescalendar(\n this.activeDate.getFullYear(),\n this.activeDate.getMonth(),\n true\n );\n }\n\n private titleCase(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n private getWeekNumber(date: Date): number {\n return this.calendarModel.getWeekNumber(date);\n }\n\n private formattedDate(value: Date): string {\n return `${value.getDate()}`;\n }\n\n private get isSingleSelection(): boolean {\n return this.selection !== 'range';\n }\n\n private isLastInRange(date: ICalendarDate): boolean {\n if (this.isSingleSelection || !this.values || this.values.length === 0) {\n return false;\n }\n\n const dates = this.values;\n let lastDate = dates[dates.length - 1];\n\n if (this.rangePreviewDate) {\n if (this.rangePreviewDate > lastDate) {\n lastDate = this.rangePreviewDate;\n }\n }\n\n return isEqual(lastDate, date.date);\n }\n\n private isFirstInRange(date: ICalendarDate): boolean {\n if (this.isSingleSelection || !this.values || this.values.length === 0) {\n return false;\n }\n\n const dates = this.values;\n let firstDate = dates[0];\n\n if (this.rangePreviewDate) {\n if (this.rangePreviewDate < firstDate) {\n firstDate = this.rangePreviewDate;\n }\n }\n\n return isEqual(firstDate, date.date);\n }\n\n private isDisabled(date: Date): boolean {\n if (!this.disabledDates) {\n return false;\n }\n\n return isDateInRanges(date, this.disabledDates);\n }\n\n private isWithinRange(date: Date, min: Date, max: Date): boolean {\n return isDateInRanges(date, [\n {\n type: DateRangeType.Between,\n dateRange: [min, max],\n },\n ]);\n }\n\n private isRangeDate(date: Date) {\n if (\n this.selection !== 'range' ||\n !this.values ||\n this.values.length === 0\n ) {\n return false;\n }\n\n const dates = this.values;\n const min = dates[0];\n let max;\n\n if (dates.length === 1) {\n if (!this.rangePreviewDate) {\n return false;\n }\n\n max = this.rangePreviewDate;\n } else {\n max = dates[dates.length - 1];\n }\n\n return isDateInRanges(date, [\n {\n type: DateRangeType.Between,\n dateRange: [min, max],\n },\n ]);\n }\n\n private isRangePreview(date: Date) {\n if (\n this.selection === 'range' &&\n this.values &&\n this.values.length > 0 &&\n this.rangePreviewDate\n ) {\n return isDateInRanges(date, [\n {\n type: DateRangeType.Between,\n dateRange: [this.values[0], this.rangePreviewDate],\n },\n ]);\n }\n\n return false;\n }\n\n private isSelected(date: ICalendarDate) {\n if (this.isDisabled(date.date)) {\n return false;\n }\n\n if (this.selection === 'single') {\n if (!this.value) {\n return false;\n }\n return getDateOnly(this.value).getTime() === date.date.getTime();\n }\n\n if (!this.values || this.values.length === 0) {\n return false;\n }\n\n if (this.selection === 'range' && this.values.length === 1) {\n return getDateOnly(this.values[0]).getTime() === date.date.getTime();\n }\n\n if (this.selection === 'multiple') {\n const start = getDateOnly(this.values[0]);\n const end = getDateOnly(this.values[this.values.length - 1]);\n\n if (this.isWithinRange(date.date, start, end)) {\n const currentDate = this.values.find(\n (element) => element.getTime() === date.date.getTime()\n );\n return !!currentDate;\n } else {\n return false;\n }\n } else {\n return this.isWithinRange(\n date.date,\n this.values[0],\n this.values[this.values.length - 1]\n );\n }\n }\n\n private isToday(day: ICalendarDate): boolean {\n const today = new Date(Date.now());\n const date = day.date;\n\n // TODO\n // if (date.getDate() === today.getDate()) {\n // this.nativeElement.setAttribute('aria-current', 'date');\n // }\n\n return (\n date.getFullYear() === today.getFullYear() &&\n date.getMonth() === today.getMonth() &&\n date.getDate() === today.getDate()\n );\n }\n\n private isWeekend(date: ICalendarDate): boolean {\n const day = date.date.getDay();\n return day === 0 || day === 6;\n }\n\n private isSpecial(day: ICalendarDate): boolean {\n if (this.specialDates === null) {\n return false;\n }\n\n return isDateInRanges(day.date, this.specialDates);\n }\n\n private dateClicked(event: Event, day: ICalendarDate) {\n event.stopPropagation();\n\n this.selectDay(day);\n\n this.changeActiveDate(day);\n }\n\n private selectDay(day: ICalendarDate) {\n if (this.rangePreviewDate) {\n this.setRangePreviewDate(undefined);\n }\n\n const result = this.selectDate(day.date);\n\n if (result) {\n this.emitEvent('igcChange', { detail: day.date });\n }\n }\n\n private selectDate(value: Date) {\n if (this.isDisabled(value)) {\n return false;\n }\n\n switch (this.selection) {\n case 'single':\n if (this.value?.getTime() === value.getTime()) {\n return false;\n }\n this.selectSingle(value);\n break;\n case 'multiple':\n this.selectMultiple(value);\n break;\n case 'range':\n this.selectRange(value);\n break;\n }\n\n return true;\n }\n\n private generateDateRange(start: Date, end: Date): Date[] {\n const result = [];\n start = getDateOnly(start);\n end = getDateOnly(end);\n while (start.getTime() < end.getTime()) {\n start = this.calendarModel.timedelta(start, TimeDeltaInterval.Day, 1);\n result.push(start);\n }\n\n return result;\n }\n\n private selectRange(value: Date) {\n let start: Date;\n let end: Date;\n let selectedDates: Date[] = (this.values ?? []) as Date[];\n\n if (selectedDates.length !== 1) {\n // start new range\n selectedDates = [value];\n } else {\n if (selectedDates[0].getTime() === value.getTime()) {\n this.values = [];\n return;\n }\n\n selectedDates.push(value);\n selectedDates.sort((a: Date, b: Date) => a.valueOf() - b.valueOf());\n\n start = selectedDates.shift()!;\n end = selectedDates.pop()!;\n selectedDates = [start, ...this.generateDateRange(start, end)];\n }\n\n // exclude disabled dates\n selectedDates = selectedDates.filter((d) => !this.isDisabled(d));\n\n this.values = [...selectedDates];\n }\n\n private selectSingle(value: Date) {\n this.value = getDateOnly(value);\n }\n\n private selectMultiple(value: Date) {\n let selectedDates: Date[] = (this.values ?? []) as Date[];\n const valueDateOnly = getDateOnly(value);\n const newSelection = [];\n\n if (\n selectedDates.every(\n (date: Date) => date.getTime() !== valueDateOnly.getTime()\n )\n ) {\n newSelection.push(valueDateOnly);\n } else {\n selectedDates = selectedDates.filter(\n (date: Date) => date.getTime() !== valueDateOnly.getTime()\n );\n }\n\n if (newSelection.length > 0) {\n selectedDates = selectedDates.concat(newSelection);\n }\n\n selectedDates = selectedDates.filter((d) => !this.isDisabled(d));\n selectedDates.sort((a: Date, b: Date) => a.valueOf() - b.valueOf());\n this.values = [...selectedDates];\n }\n\n private changeActiveDate(day: ICalendarDate) {\n this.activeDate = day.date;\n this.emitEvent('igcActiveDateChange', { detail: day });\n }\n\n private dateKeyDown(event: KeyboardEvent, day: ICalendarDate) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectDay(day);\n }\n }\n\n private changeRangePreview(date: Date) {\n if (\n this.selection === 'range' &&\n this.values &&\n this.values.length === 1 &&\n !isEqual(this.values[0], date)\n ) {\n this.setRangePreviewDate(date);\n }\n }\n\n private clearRangePreview() {\n if (this.rangePreviewDate) {\n this.setRangePreviewDate(undefined);\n }\n }\n\n private setRangePreviewDate(value?: Date) {\n this.rangePreviewDate = value;\n this.emitEvent('igcRangePreviewDateChange', { detail: value });\n }\n\n private resolveDayItemPartName(day: ICalendarDate) {\n const isInactive = day.isNextMonth || day.isPrevMonth;\n const isHidden =\n (this.hideLeadingDays && day.isPrevMonth) ||\n (this.hideTrailingDays && day.isNextMonth);\n const isDisabled = this.isDisabled(day.date);\n\n return {\n date: true,\n first: this.isFirstInRange(day),\n last: this.isLastInRange(day),\n selected: !isDisabled && this.isSelected(day),\n inactive: isInactive,\n hidden: isHidden,\n current: this.isToday(day),\n weekend: this.isWeekend(day),\n range: this.selection === 'range' && this.isRangeDate(day.date),\n special: this.isSpecial(day),\n disabled: isHidden || isDisabled,\n single: this.selection !== 'range',\n preview: this.isRangePreview(day.date),\n };\n }\n\n private renderWeekHeaders() {\n return html`<div role=\"row\" part=\"days-row first\">\n ${this.showWeekNumbers\n ? html`<span role=\"columnheader\" part=\"label week-number first\">\n <span part=\"week-number-inner first\"\n >${this.resourceStrings.weekLabel}</span\n >\n </span>`\n : ''}\n ${this.generateWeekHeader().map(\n (weekday) =>\n html`<span\n role=\"columnheader\"\n part=\"label\"\n aria-label=${weekday.ariaLabel}\n >\n <span part=\"label-inner\">${this.titleCase(weekday.label)}</span>\n </span> `\n )}\n </div>`;\n }\n\n private renderDates() {\n return this.dates.map((week, i) => {\n const last = i === this.dates.length - 1;\n\n return html`<div role=\"row\" part=\"days-row\">\n ${this.showWeekNumbers\n ? html`<span\n role=\"rowheader\"\n part=${partNameMap({ 'week-number': true, last })}\n >\n <span part=${partNameMap({ 'week-number-inner': true, last })}\n >${this.getWeekNumber(week[0].date)}</span\n >\n </span>`\n : ''}\n ${week.map((day) => this.renderDateItem(day))}\n </div>`;\n });\n }\n\n protected dayLabelFormatter(value: ICalendarDate) {\n // Range selection in progress\n if (\n this.rangePreviewDate &&\n areEqualDates(this.rangePreviewDate, value.date)\n ) {\n return (this.labelFormatter as any).formatRange(\n this.values!.at(0),\n this.rangePreviewDate\n );\n }\n\n // Range selection finished\n if (this.isFirstInRange(value) || this.isLastInRange(value)) {\n return (this.labelFormatter as any).formatRange(\n this.values!.at(0),\n this.values!.at(-1)\n );\n }\n\n // Default\n return this.labelFormatter.format(value.date);\n }\n\n private renderDateItem(day: ICalendarDate) {\n const datePartName = partNameMap(this.resolveDayItemPartName(day));\n const dateInnerPartName = datePartName.replace('date', 'date-inner');\n\n return html`<span part=${datePartName}>\n <span\n part=${dateInnerPartName}\n role=\"gridcell\"\n aria-label=${this.dayLabelFormatter(day)}\n aria-selected=${this.isSelected(day)}\n aria-disabled=${this.isDisabled(day.date)}\n tabindex=${this.active && areEqualDates(this.activeDate, day.date)\n ? 0\n : -1}\n @click=${(event: MouseEvent) => this.dateClicked(event, day)}\n @focus=${() => this.changeRangePreview(day.date)}\n @blur=${() => this.clearRangePreview()}\n @keydown=${(event: KeyboardEvent) => this.dateKeyDown(event, day)}\n @mouseenter=${() => this.changeRangePreview(day.date)}\n @mouseleave=${() => this.clearRangePreview()}\n >${this.formattedDate(day.date)}</span\n >\n </span>`;\n }\n\n protected override render() {\n return html`${this.renderWeekHeaders()} ${this.renderDates()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-days-view': IgcDaysViewComponent;\n }\n}\n"]}