igniteui-webcomponents 7.1.0 → 7.1.2

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 (281) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +13 -11
  3. package/animations/easings.d.ts +1 -1
  4. package/animations/easings.js +1 -1
  5. package/animations/easings.js.map +1 -1
  6. package/components/badge/themes/dark/badge.indigo.css.js +1 -1
  7. package/components/badge/themes/dark/badge.indigo.css.js.map +1 -1
  8. package/components/button/themes/button/light/button.indigo.css.js +1 -1
  9. package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
  10. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js +1 -1
  11. package/components/button/themes/icon-button/dark/icon-button.indigo.css.js.map +1 -1
  12. package/components/button-group/button-group.js +2 -2
  13. package/components/button-group/button-group.js.map +1 -1
  14. package/components/button-group/themes/dark/button-group.bootstrap.css.js +1 -1
  15. package/components/button-group/themes/dark/button-group.bootstrap.css.js.map +1 -1
  16. package/components/button-group/themes/dark/button-group.fluent.css.js +1 -1
  17. package/components/button-group/themes/dark/button-group.fluent.css.js.map +1 -1
  18. package/components/button-group/themes/dark/button-group.indigo.css.js +1 -1
  19. package/components/button-group/themes/dark/button-group.indigo.css.js.map +1 -1
  20. package/components/button-group/themes/dark/button-group.material.css.js +1 -1
  21. package/components/button-group/themes/dark/button-group.material.css.js.map +1 -1
  22. package/components/button-group/themes/dark/button-group.shared.css.js +1 -1
  23. package/components/button-group/themes/dark/button-group.shared.css.js.map +1 -1
  24. package/components/button-group/themes/light/button-group.bootstrap.css.js +1 -1
  25. package/components/button-group/themes/light/button-group.bootstrap.css.js.map +1 -1
  26. package/components/button-group/themes/light/button-group.fluent.css.js +1 -1
  27. package/components/button-group/themes/light/button-group.fluent.css.js.map +1 -1
  28. package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
  29. package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
  30. package/components/button-group/themes/light/button-group.material.css.js +1 -1
  31. package/components/button-group/themes/light/button-group.material.css.js.map +1 -1
  32. package/components/button-group/themes/light/button-group.shared.css.js +1 -1
  33. package/components/button-group/themes/light/button-group.shared.css.js.map +1 -1
  34. package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
  35. package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
  36. package/components/button-group/themes/shared/button/button.common.css.js +1 -1
  37. package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
  38. package/components/button-group/themes/shared/button/button.fluent.css.js +1 -1
  39. package/components/button-group/themes/shared/button/button.fluent.css.js.map +1 -1
  40. package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
  41. package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
  42. package/components/button-group/themes/shared/button/button.material.css.js +1 -1
  43. package/components/button-group/themes/shared/button/button.material.css.js.map +1 -1
  44. package/components/calendar/calendar.js +3 -3
  45. package/components/calendar/calendar.js.map +1 -1
  46. package/components/calendar/days-view/days-view.js +13 -11
  47. package/components/calendar/days-view/days-view.js.map +1 -1
  48. package/components/calendar/helpers.js +2 -2
  49. package/components/calendar/helpers.js.map +1 -1
  50. package/components/calendar/themes/dark/calendar.indigo.css.js +1 -1
  51. package/components/calendar/themes/dark/calendar.indigo.css.js.map +1 -1
  52. package/components/card/themes/dark/card.indigo.css.js +1 -1
  53. package/components/card/themes/dark/card.indigo.css.js.map +1 -1
  54. package/components/carousel/carousel.js +2 -2
  55. package/components/carousel/carousel.js.map +1 -1
  56. package/components/chat/chat-message.js +1 -0
  57. package/components/chat/chat-message.js.map +1 -1
  58. package/components/chat/themes/dark/chat.bootstrap.css.js +1 -1
  59. package/components/chat/themes/dark/chat.bootstrap.css.js.map +1 -1
  60. package/components/chat/themes/dark/chat.fluent.css.js +1 -1
  61. package/components/chat/themes/dark/chat.fluent.css.js.map +1 -1
  62. package/components/chat/themes/dark/chat.indigo.css.js +1 -1
  63. package/components/chat/themes/dark/chat.indigo.css.js.map +1 -1
  64. package/components/chat/themes/dark/chat.material.css.js +1 -1
  65. package/components/chat/themes/dark/chat.material.css.js.map +1 -1
  66. package/components/chat/themes/light/chat.bootstrap.css.js +1 -1
  67. package/components/chat/themes/light/chat.bootstrap.css.js.map +1 -1
  68. package/components/chat/themes/light/chat.fluent.css.js +1 -1
  69. package/components/chat/themes/light/chat.fluent.css.js.map +1 -1
  70. package/components/chat/themes/light/chat.indigo.css.js +1 -1
  71. package/components/chat/themes/light/chat.indigo.css.js.map +1 -1
  72. package/components/chat/themes/light/chat.material.css.js +1 -1
  73. package/components/chat/themes/light/chat.material.css.js.map +1 -1
  74. package/components/chat/themes/light/chat.shared.css.js +1 -1
  75. package/components/chat/themes/light/chat.shared.css.js.map +1 -1
  76. package/components/chat/themes/message.base.css.js +1 -1
  77. package/components/chat/themes/message.base.css.js.map +1 -1
  78. package/components/chat/themes/message.js +0 -14
  79. package/components/chat/themes/message.js.map +1 -1
  80. package/components/chat/themes/shared/chat-message/chat-message.common.css.js +1 -1
  81. package/components/chat/themes/shared/chat-message/chat-message.common.css.js.map +1 -1
  82. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js +1 -1
  83. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js.map +1 -1
  84. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
  85. package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
  86. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
  87. package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
  88. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js +1 -1
  89. package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
  90. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js +1 -1
  91. package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js.map +1 -1
  92. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
  93. package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js.map +1 -1
  94. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js +1 -1
  95. package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js.map +1 -1
  96. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js +1 -1
  97. package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
  98. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js +1 -1
  99. package/components/checkbox/themes/light/checkbox/checkbox.material.css.js.map +1 -1
  100. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
  101. package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js.map +1 -1
  102. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  103. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  104. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js +1 -1
  105. package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js.map +1 -1
  106. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  107. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  108. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  109. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  110. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  111. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  112. package/components/chip/chip.d.ts +1 -0
  113. package/components/chip/chip.js +3 -1
  114. package/components/chip/chip.js.map +1 -1
  115. package/components/chip/themes/chip.base.css.js +1 -1
  116. package/components/chip/themes/chip.base.css.js.map +1 -1
  117. package/components/chip/themes/dark/chip.indigo.css.js +1 -1
  118. package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
  119. package/components/chip/themes/shared/chip.common.css.js +1 -1
  120. package/components/chip/themes/shared/chip.common.css.js.map +1 -1
  121. package/components/combo/combo-header.js.map +1 -1
  122. package/components/combo/combo-item.d.ts +7 -3
  123. package/components/combo/combo-item.js +5 -4
  124. package/components/combo/combo-item.js.map +1 -1
  125. package/components/combo/combo-list.js.map +1 -1
  126. package/components/combo/combo.d.ts +92 -81
  127. package/components/combo/combo.js +327 -281
  128. package/components/combo/combo.js.map +1 -1
  129. package/components/combo/controllers/data.d.ts +50 -13
  130. package/components/combo/controllers/data.js +49 -28
  131. package/components/combo/controllers/data.js.map +1 -1
  132. package/components/combo/controllers/navigation.d.ts +19 -18
  133. package/components/combo/controllers/navigation.js +73 -90
  134. package/components/combo/controllers/navigation.js.map +1 -1
  135. package/components/combo/operations/filter.d.ts +2 -2
  136. package/components/combo/operations/filter.js.map +1 -1
  137. package/components/combo/operations/group.d.ts +2 -2
  138. package/components/combo/operations/group.js.map +1 -1
  139. package/components/combo/themes/dark/combo.indigo.css.js +1 -1
  140. package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
  141. package/components/common/context.d.ts +1 -1
  142. package/components/common/context.js +1 -1
  143. package/components/common/context.js.map +1 -1
  144. package/components/common/controllers/drag.js +2 -2
  145. package/components/common/controllers/drag.js.map +1 -1
  146. package/components/common/controllers/key-bindings.d.ts +100 -18
  147. package/components/common/controllers/key-bindings.js +54 -47
  148. package/components/common/controllers/key-bindings.js.map +1 -1
  149. package/components/common/controllers/root-click.js +3 -3
  150. package/components/common/controllers/root-click.js.map +1 -1
  151. package/components/common/controllers/slot.d.ts +1 -1
  152. package/components/common/controllers/slot.js.map +1 -1
  153. package/components/common/mixins/combo-box.d.ts +24 -19
  154. package/components/common/mixins/combo-box.js +26 -23
  155. package/components/common/mixins/combo-box.js.map +1 -1
  156. package/components/common/util.d.ts +45 -18
  157. package/components/common/util.js +13 -27
  158. package/components/common/util.js.map +1 -1
  159. package/components/date-picker/date-picker.d.ts +3 -3
  160. package/components/date-picker/date-picker.js +10 -10
  161. package/components/date-picker/date-picker.js.map +1 -1
  162. package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
  163. package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
  164. package/components/date-range-picker/date-range-picker.d.ts +3 -4
  165. package/components/date-range-picker/date-range-picker.js +11 -11
  166. package/components/date-range-picker/date-range-picker.js.map +1 -1
  167. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js +1 -1
  168. package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js.map +1 -1
  169. package/components/date-time-input/date-time-input.js +1 -1
  170. package/components/date-time-input/date-time-input.js.map +1 -1
  171. package/components/date-time-input/datetime-mask-parser.d.ts +1 -2
  172. package/components/date-time-input/datetime-mask-parser.js +1 -2
  173. package/components/date-time-input/datetime-mask-parser.js.map +1 -1
  174. package/components/dialog/themes/dark/dialog.indigo.css.js +1 -1
  175. package/components/dialog/themes/dark/dialog.indigo.css.js.map +1 -1
  176. package/components/dropdown/dropdown.d.ts +2 -2
  177. package/components/dropdown/dropdown.js +6 -6
  178. package/components/dropdown/dropdown.js.map +1 -1
  179. package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
  180. package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
  181. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js +1 -1
  182. package/components/dropdown/themes/shared/item/dropdown-item.common.css.js.map +1 -1
  183. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  184. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  185. package/components/highlight/service.js +1 -1
  186. package/components/highlight/service.js.map +1 -1
  187. package/components/input/themes/shared/input.material.css.js +1 -1
  188. package/components/input/themes/shared/input.material.css.js.map +1 -1
  189. package/components/list/themes/dark/container/list.bootstrap.css.js +1 -1
  190. package/components/list/themes/dark/container/list.bootstrap.css.js.map +1 -1
  191. package/components/nav-drawer/themes/container.base.css.js +1 -1
  192. package/components/nav-drawer/themes/container.base.css.js.map +1 -1
  193. package/components/navbar/themes/dark/navbar.indigo.css.js +1 -1
  194. package/components/navbar/themes/dark/navbar.indigo.css.js.map +1 -1
  195. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js +1 -1
  196. package/components/progress/themes/circular/dark/circular.progress.indigo.css.js.map +1 -1
  197. package/components/progress/themes/circular/dark/circular.progress.shared.css.js +1 -1
  198. package/components/progress/themes/circular/dark/circular.progress.shared.css.js.map +1 -1
  199. package/components/progress/themes/circular/light/circular.progress.indigo.css.js +1 -1
  200. package/components/progress/themes/circular/light/circular.progress.indigo.css.js.map +1 -1
  201. package/components/progress/themes/circular/light/circular.progress.shared.css.js +1 -1
  202. package/components/progress/themes/circular/light/circular.progress.shared.css.js.map +1 -1
  203. package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
  204. package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
  205. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js +1 -1
  206. package/components/progress/themes/linear/dark/linear.progress.indigo.css.js.map +1 -1
  207. package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
  208. package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
  209. package/components/radio/radio.js +1 -1
  210. package/components/radio/radio.js.map +1 -1
  211. package/components/rating/rating.d.ts +57 -28
  212. package/components/rating/rating.js +123 -120
  213. package/components/rating/rating.js.map +1 -1
  214. package/components/resize-container/resize-controller.js +2 -2
  215. package/components/resize-container/resize-controller.js.map +1 -1
  216. package/components/select/select.d.ts +3 -3
  217. package/components/select/select.js +10 -10
  218. package/components/select/select.js.map +1 -1
  219. package/components/select/themes/dark/select.indigo.css.js +1 -1
  220. package/components/select/themes/dark/select.indigo.css.js.map +1 -1
  221. package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
  222. package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
  223. package/components/splitter/splitter.d.ts +2 -2
  224. package/components/splitter/splitter.js.map +1 -1
  225. package/components/splitter/types.d.ts +11 -5
  226. package/components/splitter/types.js.map +1 -1
  227. package/components/stepper/common/state.d.ts +1 -1
  228. package/components/stepper/common/state.js.map +1 -1
  229. package/components/stepper/stepper.js +3 -3
  230. package/components/stepper/stepper.js.map +1 -1
  231. package/components/stepper/themes/step/dark/step.bootstrap.css.js +1 -1
  232. package/components/stepper/themes/step/dark/step.bootstrap.css.js.map +1 -1
  233. package/components/stepper/themes/step/dark/step.indigo.css.js +1 -1
  234. package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -1
  235. package/components/stepper/themes/step/dark/step.material.css.js +1 -1
  236. package/components/stepper/themes/step/dark/step.material.css.js.map +1 -1
  237. package/components/tabs/tab.d.ts +0 -1
  238. package/components/tabs/tab.js +2 -3
  239. package/components/tabs/tab.js.map +1 -1
  240. package/components/tabs/tabs.js +3 -3
  241. package/components/tabs/tabs.js.map +1 -1
  242. package/components/tile-manager/themes/dark/tile-manager.indigo.css.js +1 -1
  243. package/components/tile-manager/themes/dark/tile-manager.indigo.css.js.map +1 -1
  244. package/components/tile-manager/tile.js +2 -2
  245. package/components/tile-manager/tile.js.map +1 -1
  246. package/components/toast/themes/dark/toast.indigo.css.js +1 -1
  247. package/components/toast/themes/dark/toast.indigo.css.js.map +1 -1
  248. package/components/tree/themes/dark/container.bootstrap.css.js +1 -1
  249. package/components/tree/themes/dark/container.bootstrap.css.js.map +1 -1
  250. package/components/tree/themes/dark/container.indigo.css.js +1 -1
  251. package/components/tree/themes/dark/container.indigo.css.js.map +1 -1
  252. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  253. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  254. package/components/tree/tree-item.js +2 -3
  255. package/components/tree/tree-item.js.map +1 -1
  256. package/custom-elements.json +1726 -983
  257. package/igniteui-webcomponents.css-data.json +1 -1
  258. package/igniteui-webcomponents.html-data.json +1 -1
  259. package/index.d.ts +1 -1
  260. package/index.js.map +1 -1
  261. package/package.json +1 -1
  262. package/skills/README.md +3 -0
  263. package/skills/igniteui-wc-choose-components/SKILL.md +53 -0
  264. package/skills/igniteui-wc-generate-from-image-design/SKILL.md +228 -0
  265. package/skills/igniteui-wc-generate-from-image-design/references/component-mapping.md +130 -0
  266. package/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +147 -0
  267. package/skills/igniteui-wc-integrate-with-framework/SKILL.md +22 -1
  268. package/skills/igniteui-wc-integrate-with-framework/references/angular.md +2 -0
  269. package/skills/igniteui-wc-integrate-with-framework/references/react.md +2 -0
  270. package/skills/igniteui-wc-integrate-with-framework/references/vanilla-js.md +2 -0
  271. package/skills/igniteui-wc-integrate-with-framework/references/vue.md +2 -0
  272. package/web-types.json +2 -2
  273. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.d.ts +0 -1
  274. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js +0 -3
  275. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js.map +0 -1
  276. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.d.ts +0 -1
  277. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js +0 -3
  278. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js.map +0 -1
  279. package/components/combo/controllers/selection.d.ts +0 -33
  280. package/components/combo/controllers/selection.js +0 -169
  281. package/components/combo/controllers/selection.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDateFormatter } from 'igniteui-i18n-core';\nimport { html, nothing, type TemplateResult } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n homeKey,\n pageDownKey,\n pageUpKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\nimport {\n clamp,\n findElementFromEventPath,\n first,\n formatString,\n last,\n} from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type { ContentOrientation } from '../types.js';\nimport { IgcCalendarBaseComponent } from './base.js';\nimport IgcDaysViewComponent from './days-view/days-view.js';\nimport {\n areSameMonth,\n getYearRange,\n isDateInRanges,\n MONTHS_PER_ROW,\n YEARS_PER_PAGE,\n YEARS_PER_ROW,\n} from './helpers.js';\nimport { CalendarDay } from './model.js';\nimport IgcMonthsViewComponent from './months-view/months-view.js';\nimport { styles } from './themes/calendar.base.css.js';\nimport { all } from './themes/calendar.js';\nimport type {\n CalendarActiveView,\n CalendarHeaderOrientation,\n IgcCalendarComponentEventMap,\n} from './types.js';\nimport IgcYearsViewComponent from './years-view/years-view.js';\n\nexport const focusActiveDate = Symbol();\n\n/* blazorIndirectRender */\n/* blazorSupportsVisualChildren */\n/**\n * Represents a calendar that lets users\n * to select a date value in a variety of different ways.\n *\n * @element igc-calendar\n *\n * @slot - The default slot for the calendar.\n * @slot title - Renders the title of the calendar header.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n *\n * @fires igcChange - Emitted when calendar changes its value.\n *\n * @csspart header - The header element of the calendar.\n * @csspart header-title - The header title element of the calendar.\n * @csspart header-date - The header date element of the calendar.\n * @csspart content - The content element which contains the views and navigation elements of the calendar.\n * @csspart content-vertical - The content element which contains the views and navigation elements of the calendar in vertical orientation.\n * @csspart navigation - The navigation container element of the calendar.\n * @csspart months-navigation - The months navigation button element of the calendar.\n * @csspart years-navigation - The years navigation button element of the calendar.\n * @csspart years-range - The years range element of the calendar.\n * @csspart navigation-buttons - The navigation buttons container of the calendar.\n * @csspart navigation-button - Previous/next navigation button of the calendar.\n * @csspart days-view-container - The days view container element of the calendar.\n * @csspart days-view - Days view element of the calendar.\n * @csspart months-view - The months view element of the calendar.\n * @csspart years-view - The years view element of the calendar.\n * @csspart days-row - Days row element of the calendar.\n * @csspart label - Week header label element of the calendar.\n * @csspart week-number - Week number element of the calendar.\n * @csspart week-number-inner - Week number inner element of the calendar.\n * @csspart date - Date element of the calendar.\n * @csspart date-inner - Date inner element of the calendar.\n * @csspart first - The first selected date element of the calendar in range selection.\n * @csspart last - The last selected date element of the calendar in range selection.\n * @csspart inactive - Inactive date element of the calendar.\n * @csspart hidden - Hidden date element of the calendar.\n * @csspart weekend - Weekend date element of the calendar.\n * @csspart range - Range selected element of the calendar.\n * @csspart special - Special date element of the calendar.\n * @csspart disabled - Disabled date element of the calendar.\n * @csspart single - Single selected date element of the calendar.\n * @csspart preview - Range selection preview date element of the calendar.\n * @csspart month - Month element of the calendar.\n * @csspart month-inner - Month inner element of the calendar.\n * @csspart year - Year element of the calendar.\n * @csspart year-inner - Year inner element of the calendar.\n * @csspart selected - Indicates selected state. Applies to date, month and year elements of the calendar.\n * @csspart current - Indicates current state. Applies to date, month and year elements of the calendar.\n */\nexport default class IgcCalendarComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<IgcCalendarBaseComponent>\n>(IgcCalendarBaseComponent) {\n public static readonly tagName = 'igc-calendar';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcCalendarComponent,\n IgcIconComponent,\n IgcDaysViewComponent,\n IgcMonthsViewComponent,\n IgcYearsViewComponent\n );\n }\n\n //#region Internal state\n\n private readonly _contentRef = createRef<HTMLDivElement>();\n\n private get _isDayView(): boolean {\n return this.activeView === 'days';\n }\n\n private get _isMonthView(): boolean {\n return this.activeView === 'months';\n }\n\n private get _isYearView(): boolean {\n return this.activeView === 'years';\n }\n\n private get _previousButtonLabel(): string {\n switch (this.activeView) {\n case 'days':\n return this.resourceStrings.previousMonth;\n case 'months':\n return this.resourceStrings.previousYear;\n case 'years':\n return formatString(this.resourceStrings.previousYears, YEARS_PER_PAGE);\n default:\n return '';\n }\n }\n\n private get _nextButtonLabel(): string {\n switch (this.activeView) {\n case 'days':\n return this.resourceStrings.nextMonth;\n case 'months':\n return this.resourceStrings.nextYear;\n case 'years':\n return formatString(this.resourceStrings.nextYears, YEARS_PER_PAGE);\n default:\n return '';\n }\n }\n\n @state()\n private _activeDaysViewIndex = 0;\n\n @queryAll(IgcDaysViewComponent.tagName)\n private readonly _daysViews!: NodeListOf<IgcDaysViewComponent>;\n\n @query(IgcMonthsViewComponent.tagName)\n private readonly _monthsView!: IgcMonthsViewComponent;\n\n @query(IgcYearsViewComponent.tagName)\n private readonly _yearsView!: IgcYearsViewComponent;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether to show the dates that do not belong to the current active month.\n * @attr hide-outside-days\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-outside-days', reflect: true })\n public hideOutsideDays = false;\n\n /**\n * Whether to render the calendar header part.\n * When the calendar selection is set to `multiple` the header is always hidden.\n *\n * @attr hide-header\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-header', reflect: true })\n public hideHeader = false;\n\n /**\n * The orientation of the calendar header.\n * @attr header-orientation\n * @default \"horizontal\"\n */\n @property({ reflect: true, attribute: 'header-orientation' })\n public headerOrientation: CalendarHeaderOrientation = 'horizontal';\n\n /**\n * The orientation of the calendar months when more than one month\n * is being shown.\n * @attr orientation\n * @default \"horizontal\"\n */\n @property()\n public orientation: ContentOrientation = 'horizontal';\n\n /**\n * The number of months displayed in the days view.\n * @attr visible-months\n * @default 1\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * The current active view of the component.\n * @attr active-view\n * @default \"days\"\n */\n @property({ attribute: 'active-view' })\n public activeView: CalendarActiveView = 'days';\n\n /** The options used to format the months and the weekdays in the calendar views. */\n @property({ attribute: false })\n public formatOptions: Pick<Intl.DateTimeFormatOptions, 'month' | 'weekday'> =\n { month: 'long', weekday: 'narrow' };\n\n //#endregion\n\n //#region Lifecycle hooks\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addKeybindings(this, {\n skip: this._shouldSkipKeyboardEvent,\n ref: this._contentRef,\n bindingDefaults: { triggers: ['keydownRepeat'] },\n })\n .set(arrowLeft, this._handleArrowKey.bind(this, 'day', -1))\n .set(arrowRight, this._handleArrowKey.bind(this, 'day', 1))\n .set(arrowUp, this._handleArrowKey.bind(this, 'week', -1))\n .set(arrowDown, this._handleArrowKey.bind(this, 'week', 1))\n .set([shiftKey, pageUpKey], this._handleShiftPageKeys.bind(this, -1))\n .set([shiftKey, pageDownKey], this._handleShiftPageKeys.bind(this, 1))\n .set(pageUpKey, this._handlePageKeys.bind(this, -1))\n .set(pageDownKey, this._handlePageKeys.bind(this, 1))\n .set(homeKey, this._handleHomeKey)\n .set(endKey, this._handleEndKey);\n }\n\n //#endregion\n\n //#region Keyboard event handlers\n\n private _shouldSkipKeyboardEvent(_: Element, event: KeyboardEvent): boolean {\n return !findElementFromEventPath(\n `${IgcDaysViewComponent.tagName}, ${IgcMonthsViewComponent.tagName}, ${IgcYearsViewComponent.tagName}`,\n event\n );\n }\n\n private _handleArrowKey(period: 'day' | 'week', delta: -1 | 1): void {\n if (this._isDayView) {\n const date = this._getNextEnabledDate(\n this._activeDate.add(period, delta),\n delta\n );\n this._updateViewIndex(date, delta);\n this._activeDate = date;\n } else {\n const monthOrYear = this._isMonthView ? 'month' : 'year';\n const monthOrYearDelta =\n (this._isMonthView ? MONTHS_PER_ROW : YEARS_PER_ROW) * delta;\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(\n monthOrYear,\n period === 'week' ? monthOrYearDelta : delta\n ),\n delta\n );\n }\n\n this[focusActiveDate]();\n }\n\n private _handlePageKeys(delta: -1 | 1): void {\n const unit = this._isDayView ? 'month' : 'year';\n const increment = (this._isYearView ? YEARS_PER_PAGE : 1) * delta;\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(unit, increment),\n increment\n );\n this[focusActiveDate]();\n }\n\n private _handleShiftPageKeys(delta: -1 | 1): void {\n if (this._isDayView) {\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add('year', delta),\n delta\n );\n this[focusActiveDate]();\n }\n }\n\n private _handleHomeKey(): void {\n switch (this.activeView) {\n case 'days': {\n const firstView = CalendarDay.from(this._daysViews.item(0).activeDate);\n this._activeDate = this._getNextEnabledDate(\n firstView.set({ date: 1 }),\n 1\n );\n this._activeDaysViewIndex = 0;\n break;\n }\n case 'months':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({ month: 0 }),\n 1\n );\n break;\n case 'years':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({\n year: getYearRange(this._activeDate, YEARS_PER_PAGE).start,\n }),\n 1\n );\n break;\n }\n\n this[focusActiveDate]();\n }\n\n private _handleEndKey(): void {\n switch (this.activeView) {\n case 'days': {\n const index = this._daysViews.length - 1;\n const lastView = CalendarDay.from(\n this._daysViews.item(index).activeDate\n );\n this._activeDate = this._getNextEnabledDate(\n lastView.set({ month: lastView.month + 1, date: 0 }),\n -1\n );\n this._activeDaysViewIndex = index;\n break;\n }\n case 'months':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({ month: 11 }),\n -1\n );\n break;\n case 'years':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({\n year: getYearRange(this._activeDate, YEARS_PER_PAGE).end,\n }),\n -1\n );\n break;\n }\n\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Event handlers\n\n private _handleMonthChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'days';\n\n this[focusActiveDate]();\n }\n\n private _handleYearChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _handleValueChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n\n const view = event.target as IgcDaysViewComponent;\n\n if (this._isSingle) {\n this.value = view.value;\n } else {\n this.values = view.values;\n }\n\n this.emitEvent('igcChange', {\n detail: this._isSingle ? (this.value as Date) : this.values,\n });\n }\n\n private _handleActiveDateChange(event: CustomEvent<Date>): void {\n const view = event.target as IgcDaysViewComponent;\n const views = Array.from(this._daysViews);\n\n this._activeDaysViewIndex = views.indexOf(view);\n this.activeDate = event.detail;\n\n if (!areSameMonth(this.activeDate, view.activeDate)) {\n this[focusActiveDate]();\n }\n }\n\n private _handleRangePreviewChange(event: CustomEvent<Date>): void {\n this._rangePreviewDate = event.detail\n ? CalendarDay.from(event.detail)\n : undefined;\n }\n\n //#endregion\n\n //#region Internal navigation methods\n\n private _setActiveDaysView(viewIndex: number): void {\n const view = this._daysViews.item(viewIndex);\n this.activeDate = view.activeDate;\n this._activeDaysViewIndex = viewIndex;\n }\n\n private _navigate(delta: 1 | -1): void {\n const unit = this._isDayView ? 'month' : 'year';\n const increment = (this._isYearView ? YEARS_PER_PAGE : 1) * delta;\n this._activeDate = this._activeDate.add(unit, increment);\n }\n\n private _navigatePrevious(): void {\n this._navigate(-1);\n }\n\n private _navigateNext(): void {\n this._navigate(1);\n }\n\n private _navigateToMonthView(viewIndex: number): void {\n this._setActiveDaysView(viewIndex);\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _navigateToYearView(viewIndex: number): void {\n if (this._isDayView) {\n this._setActiveDaysView(viewIndex);\n }\n this.activeView = 'years';\n\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Internal API\n\n /** @private @hidden @internal */\n public async [focusActiveDate](options?: FocusOptions): Promise<void> {\n await this.updateComplete;\n\n switch (this.activeView) {\n case 'days':\n return this._daysViews\n .item(this._activeDaysViewIndex)\n .focusActiveDate(options);\n case 'months':\n return this._monthsView.focusActiveDate(options);\n case 'years':\n return this._yearsView.focusActiveDate(options);\n }\n }\n\n private _updateViewIndex(date: CalendarDay, delta: -1 | 1): void {\n if (this.visibleMonths === 1) {\n return;\n }\n\n const index = this._activeDaysViewIndex;\n const view = CalendarDay.from(this._daysViews.item(index).activeDate);\n\n if (date.month !== view.month) {\n this._activeDaysViewIndex = clamp(\n index + delta,\n 0,\n this.visibleMonths - 1\n );\n }\n }\n\n private _getActiveDates(): CalendarDay[] {\n const current = this._activeDaysViewIndex;\n const length = Math.max(this.visibleMonths, 1);\n\n return Array.from({ length }, (_, i) =>\n this._activeDate.add('month', i - current)\n );\n }\n\n private _getNextEnabledDate(start: CalendarDay, delta: number): CalendarDay {\n const disabled = this._disabledDates;\n let beginning = start.clone();\n\n while (isDateInRanges(beginning, disabled)) {\n beginning = beginning.add('day', delta);\n }\n\n return beginning;\n }\n\n //#endregion\n\n protected _renderNavigationButtons() {\n const parts = {\n 'navigation-button': true,\n vertical: this.orientation === 'vertical',\n };\n\n return html`\n <div part=\"navigation-buttons\">\n <button\n part=${partMap(parts)}\n aria-label=${this._previousButtonLabel}\n @click=${this._navigatePrevious}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_prev\"\n collection=\"default\"\n ></igc-icon>\n </button>\n\n <button\n part=${partMap(parts)}\n aria-label=${this._nextButtonLabel}\n @click=${this._navigateNext}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_next\"\n collection=\"default\"\n ></igc-icon>\n </button>\n </div>\n `;\n }\n\n protected _renderMonthButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const formatter = getDateFormatter();\n const label = formatter.formatDateTime(active.native, this.locale, {\n month: 'long',\n });\n const value = formatter.formatDateTime(active.native, this.locale, {\n month: this.formatOptions.month,\n });\n const ariaLabel = `${label}, ${this.resourceStrings.selectMonth}`;\n\n return html`\n <button\n part=\"months-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToMonthView(viewIndex)}\n >\n ${value}\n </button>\n `;\n }\n\n protected _renderYearButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'long',\n year: 'numeric',\n });\n const ariaLabel = `${active.year}, ${this.resourceStrings.selectYear}`;\n const ariaSkip = this._isDayView ? format(active.native) : active.year;\n\n return html`\n <span class=\"aria-off-screen\" aria-live=\"polite\">${ariaSkip}</span>\n <button\n part=\"years-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToYearView(viewIndex)}\n >\n ${active.year}\n </button>\n `;\n }\n\n protected _renderYearRangeNavigation(active: CalendarDay): TemplateResult {\n const { start, end } = getYearRange(active, YEARS_PER_PAGE);\n\n return html`\n <span part=\"years-range\" aria-live=\"polite\"> ${start} - ${end} </span>\n `;\n }\n\n protected _renderNavigation(\n date?: CalendarDay,\n showButtons = true,\n viewIndex = 0\n ): TemplateResult {\n const activeDate = date ?? this._activeDate;\n\n return html`\n <div part=\"navigation\">\n <div part=\"picker-dates\">\n ${this._isDayView\n ? this._renderMonthButtonNavigation(activeDate, viewIndex)\n : nothing}\n ${this._isDayView || this._isMonthView\n ? this._renderYearButtonNavigation(activeDate, viewIndex)\n : nothing}\n ${this._isYearView\n ? this._renderYearRangeNavigation(activeDate)\n : nothing}\n </div>\n ${showButtons ? this._renderNavigationButtons() : nothing}\n </div>\n `;\n }\n\n protected _renderHeader() {\n if (this.hideHeader || this._isMultiple) {\n return nothing;\n }\n\n const title = this._isSingle\n ? this.resourceStrings.selectDate\n : this.resourceStrings.selectRange;\n\n return html`\n <div part=\"header\">\n <h5 part=\"header-title\">\n <slot name=\"title\">${title}</slot>\n </h5>\n <h2 part=\"header-date\">${this._renderHeaderDate()}</h2>\n </div>\n `;\n }\n\n protected _renderHeaderDateSingle(): TemplateResult {\n const date = this.value ?? CalendarDay.today.native;\n const formatter = getDateFormatter();\n const weekday = formatter.formatDateTime(date, this.locale, {\n weekday: 'short',\n });\n const monthDay = formatter.formatDateTime(date, this.locale, {\n month: 'short',\n day: 'numeric',\n });\n const separator =\n this.headerOrientation === 'vertical' ? html`<br />` : ' ';\n\n const formatted = html`${weekday},${separator}${monthDay}`;\n\n return html`<slot name=\"header-date\">${formatted}</slot>`;\n }\n\n protected _renderHeaderDateRange(): TemplateResult {\n const values = this.values;\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'short',\n day: 'numeric',\n });\n const { startDate, endDate } = this.resourceStrings;\n\n const start = this._hasValues ? format(first(values)) : startDate;\n const end =\n this._hasValues && values.length > 1 ? format(last(values)) : endDate;\n\n return html`\n <slot name=\"header-date\">\n <span>${start}</span>\n <span> - </span>\n <span>${end}</span>\n </slot>\n `;\n }\n\n protected _renderHeaderDate(): TemplateResult {\n return this._isSingle\n ? this._renderHeaderDateSingle()\n : this._renderHeaderDateRange();\n }\n\n protected _renderDaysView(): TemplateResult {\n const activeDates = this._getActiveDates();\n const horizontal = this.orientation === 'horizontal';\n const length = activeDates.length - 1;\n const format = this.formatOptions\n .weekday as Intl.DateTimeFormatOptions['weekday'];\n\n return html`${activeDates.map(\n (date, idx) => html`\n <div part=\"days-view-container\">\n ${this._renderNavigation(\n date,\n horizontal ? idx === length : idx === 0,\n idx\n )}\n <igc-days-view\n @igcChange=${this._handleValueChange}\n @igcActiveDateChange=${this._handleActiveDateChange}\n @igcRangePreviewDateChange=${this._handleRangePreviewChange}\n part=\"days-view\"\n exportparts=\"days-row, label, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, content-vertical, weekend, range, special, disabled, single, preview\"\n .active=${this._activeDaysViewIndex === idx}\n .activeDate=${date.native}\n .disabledDates=${this.disabledDates}\n .hideLeadingDays=${this.hideOutsideDays || idx !== 0}\n .hideTrailingDays=${this.hideOutsideDays || idx !== length}\n .locale=${this.locale}\n .rangePreviewDate=${this._rangePreviewDate?.native}\n .resourceStrings=${this.resourceStrings}\n .selection=${this.selection}\n .showWeekNumbers=${this.showWeekNumbers}\n .specialDates=${this._specialDates}\n .value=${this.value}\n .values=${this.values}\n .weekDayFormat=${format!}\n .weekStart=${this.weekStart}\n ></igc-days-view>\n </div>\n `\n )}`;\n }\n\n protected _renderMonthView(): TemplateResult {\n const format = this.formatOptions\n .month as Intl.DateTimeFormatOptions['month'];\n\n return html`\n ${this._renderNavigation()}\n <igc-months-view\n part=\"months-view\"\n exportparts=\"month, selected, month-inner, current\"\n @igcChange=${this._handleMonthChange}\n .value=${this.activeDate}\n .locale=${this.locale}\n .monthFormat=${format!}\n ></igc-months-view>\n `;\n }\n\n protected _renderYearView(): TemplateResult {\n return html`\n ${this._renderNavigation()}\n <igc-years-view\n part=\"years-view\"\n exportparts=\"year, selected, year-inner, current\"\n @igcChange=${this._handleYearChange}\n .value=${this.activeDate}\n .yearsPerPage=${YEARS_PER_PAGE}\n ></igc-years-view>\n `;\n }\n\n protected override render() {\n const parts = {\n content: true,\n 'content-vertical': this._isDayView && this.orientation === 'vertical',\n };\n\n return html`\n ${this._renderHeader()}\n <div ${ref(this._contentRef)} part=${partMap(parts)}>\n ${choose(this.activeView, [\n ['days', () => this._renderDaysView()],\n ['months', () => this._renderMonthView()],\n ['years', () => this._renderYearView()],\n ])}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-calendar': IgcCalendarComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,EACT,QAAQ,GACT,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EACL,KAAK,EACL,KAAK,EACL,YAAY,EACZ,kBAAkB,EAClB,IAAI,GACL,MAAM,mBAAmB,CAAC;AAC3B,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,sBAAsB,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAM3C,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC;AAsDxC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,iBAAiB,CAGjE,wBAAwB,CAAC;aACF,YAAO,GAAG,cAAc,AAAjB,CAAkB;aAClC,WAAM,GAAG,MAAM,AAAT,CAAU;IAGvB,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CACf,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAMD,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC;IACpC,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;IACtC,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;IACrC,CAAC;IAED,IAAY,oBAAoB;QAC9B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;YAC5C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YAC3C,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;YAC1E;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAY,gBAAgB;QAC1B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YACxC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACvC,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACtE;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IA8ED;QACE,KAAK,EAAE,CAAC;QArHO,gBAAW,GAAG,SAAS,EAAkB,CAAC;QAyCnD,yBAAoB,GAAG,CAAC,CAAC;QAqB1B,oBAAe,GAAG,KAAK,CAAC;QAUxB,eAAU,GAAG,KAAK,CAAC;QAQnB,sBAAiB,GAA8B,YAAY,CAAC;QAS5D,gBAAW,GAAuB,YAAY,CAAC;QAQ/C,kBAAa,GAAG,CAAC,CAAC;QAQlB,eAAU,GAAuB,MAAM,CAAC;QAIxC,kBAAa,GAClB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QASrC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhC,cAAc,CAAC,IAAI,EAAE;YACnB,IAAI,EAAE,IAAI,CAAC,wBAAwB;YACnC,GAAG,EAAE,IAAI,CAAC,WAAW;YACrB,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAClC,CAAC;aACC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1D,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;aAC1D,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;aACzD,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;aAC1D,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACpE,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACrE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACnD,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACpD,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC;aACjC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAMO,wBAAwB,CAAC,CAAU,EAAE,KAAoB;QAC/D,OAAO,CAAC,kBAAkB,CACxB,GAAG,oBAAoB,CAAC,OAAO,KAAK,sBAAsB,CAAC,OAAO,KAAK,qBAAqB,CAAC,OAAO,EAAE,EACtG,KAAK,CACN,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,MAAsB,EAAE,KAAa;QAC3D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EACnC,KAAK,CACN,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YACzD,MAAM,gBAAgB,GACpB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;YAE/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,WAAW,EACX,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAC7C,EACD,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEO,eAAe,CAAC,KAAa;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAElE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EACrC,SAAS,CACV,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEO,oBAAoB,CAAC,KAAa;QACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EACnC,KAAK,CACN,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAC1B,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YACD,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAClC,CAAC,CACF,CAAC;gBACF,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBACnB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,KAAK;iBAC3D,CAAC,EACF,CAAC,CACF,CAAC;gBACF,MAAM;QACV,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEO,aAAa;QACnB,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CACvC,CAAC;gBACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EACpD,CAAC,CAAC,CACH,CAAC;gBACF,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAClC,MAAM;YACR,CAAC;YACD,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACnC,CAAC,CAAC,CACH,CAAC;gBACF,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBACnB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,GAAG;iBACzD,CAAC,EACF,CAAC,CAAC,CACH,CAAC;gBACF,MAAM;QACV,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAMO,kBAAkB,CAAC,KAAwB;QACjD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAEzB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEO,iBAAiB,CAAC,KAAwB;QAChD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAE3B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEO,kBAAkB,CAAC,KAAwB;QACjD,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,KAAK,CAAC,MAA8B,CAAC;QAElD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAC1B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;SAC5D,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,KAAwB;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,MAA8B,CAAC;QAClD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,KAAwB;QACxD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM;YACnC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAMO,kBAAkB,CAAC,SAAiB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;IACxC,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAClE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAAC,SAAiB;QAC5C,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAE3B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEO,mBAAmB,CAAC,SAAiB;QAC3C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAE1B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IAC1B,CAAC;IAOM,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,OAAsB;QACnD,MAAM,IAAI,CAAC,cAAc,CAAC;QAE1B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,UAAU;qBACnB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;qBAC/B,eAAe,CAAC,OAAO,CAAC,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACnD,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAiB,EAAE,KAAa;QACvD,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAC/B,KAAK,GAAG,KAAK,EACb,CAAC,EACD,IAAI,CAAC,aAAa,GAAG,CAAC,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAE/C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAC3C,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,KAAkB,EAAE,KAAa;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAE9B,OAAO,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAIS,wBAAwB;QAChC,MAAM,KAAK,GAAG;YACZ,mBAAmB,EAAE,IAAI;YACzB,QAAQ,EAAE,IAAI,CAAC,WAAW,KAAK,UAAU;SAC1C,CAAC;QAEF,OAAO,IAAI,CAAA;;;iBAGE,OAAO,CAAC,KAAK,CAAC;uBACR,IAAI,CAAC,oBAAoB;mBAC7B,IAAI,CAAC,iBAAiB;;;;;;;;;;iBAUxB,OAAO,CAAC,KAAK,CAAC;uBACR,IAAI,CAAC,gBAAgB;mBACzB,IAAI,CAAC,aAAa;;;;;;;;;KAShC,CAAC;IACJ,CAAC;IAES,4BAA4B,CACpC,MAAmB,EACnB,SAAiB;QAEjB,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACjE,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACjE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;SAChC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,GAAG,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;QAElE,OAAO,IAAI,CAAA;;;qBAGM,SAAS;iBACb,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;;UAEjD,KAAK;;KAEV,CAAC;IACJ,CAAC;IAES,2BAA2B,CACnC,MAAmB,EACnB,SAAiB;QAEjB,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE;YAClE,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAEvE,OAAO,IAAI,CAAA;yDAC0C,QAAQ;;;qBAG5C,SAAS;iBACb,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;;UAEhD,MAAM,CAAC,IAAI;;KAEhB,CAAC;IACJ,CAAC;IAES,0BAA0B,CAAC,MAAmB;QACtD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAA;qDACsC,KAAK,MAAM,GAAG;KAC9D,CAAC;IACJ,CAAC;IAES,iBAAiB,CACzB,IAAkB,EAClB,WAAW,GAAG,IAAI,EAClB,SAAS,GAAG,CAAC;QAEb,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;QAE5C,OAAO,IAAI,CAAA;;;YAGH,IAAI,CAAC,UAAU;YACf,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,SAAS,CAAC;YAC1D,CAAC,CAAC,OAAO;YACT,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY;YACpC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,SAAS,CAAC;YACzD,CAAC,CAAC,OAAO;YACT,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC;YAC7C,CAAC,CAAC,OAAO;;UAEX,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,OAAO;;KAE5D,CAAC;IACJ,CAAC;IAES,aAAa;QACrB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS;YAC1B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU;YACjC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;QAErC,OAAO,IAAI,CAAA;;;+BAGgB,KAAK;;iCAEH,IAAI,CAAC,iBAAiB,EAAE;;KAEpD,CAAC;IACJ,CAAC;IAES,uBAAuB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;QACpD,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;YAC1D,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;YAC3D,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,MAAM,SAAS,GACb,IAAI,CAAC,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;QAE7D,MAAM,SAAS,GAAG,IAAI,CAAA,GAAG,OAAO,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;QAE3D,OAAO,IAAI,CAAA,4BAA4B,SAAS,SAAS,CAAC;IAC5D,CAAC;IAES,sBAAsB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE;YAClE,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,MAAM,GAAG,GACP,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAExE,OAAO,IAAI,CAAA;;gBAEC,KAAK;;gBAEL,GAAG;;KAEd,CAAC;IACJ,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAChC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACpC,CAAC;IAES,eAAe;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC;QACrD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;aAC9B,OAAgD,CAAC;QAEpD,OAAO,IAAI,CAAA,GAAG,WAAW,CAAC,GAAG,CAC3B,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAA;;YAEb,IAAI,CAAC,iBAAiB,CACtB,IAAI,EACJ,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EACvC,GAAG,CACJ;;yBAEc,IAAI,CAAC,kBAAkB;mCACb,IAAI,CAAC,uBAAuB;yCACtB,IAAI,CAAC,yBAAyB;;;sBAGjD,IAAI,CAAC,oBAAoB,KAAK,GAAG;0BAC7B,IAAI,CAAC,MAAM;6BACR,IAAI,CAAC,aAAa;+BAChB,IAAI,CAAC,eAAe,IAAI,GAAG,KAAK,CAAC;gCAChC,IAAI,CAAC,eAAe,IAAI,GAAG,KAAK,MAAM;sBAChD,IAAI,CAAC,MAAM;gCACD,IAAI,CAAC,iBAAiB,EAAE,MAAM;+BAC/B,IAAI,CAAC,eAAe;yBAC1B,IAAI,CAAC,SAAS;+BACR,IAAI,CAAC,eAAe;4BACvB,IAAI,CAAC,aAAa;qBACzB,IAAI,CAAC,KAAK;sBACT,IAAI,CAAC,MAAM;6BACJ,MAAO;yBACX,IAAI,CAAC,SAAS;;;OAGhC,CACF,EAAE,CAAC;IACN,CAAC;IAES,gBAAgB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;aAC9B,KAA4C,CAAC;QAEhD,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,iBAAiB,EAAE;;;;qBAIX,IAAI,CAAC,kBAAkB;iBAC3B,IAAI,CAAC,UAAU;kBACd,IAAI,CAAC,MAAM;uBACN,MAAO;;KAEzB,CAAC;IACJ,CAAC;IAES,eAAe;QACvB,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,iBAAiB,EAAE;;;;qBAIX,IAAI,CAAC,iBAAiB;iBAC1B,IAAI,CAAC,UAAU;wBACR,cAAc;;KAEjC,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,IAAI;YACb,kBAAkB,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU;SACvE,CAAC;QAEF,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,aAAa,EAAE;aACf,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC;UAC/C,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;YACxB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;SACxC,CAAC;;KAEL,CAAC;IACJ,CAAC;;AA7nBO;IADP,KAAK,EAAE;kEACyB;AAGhB;IADhB,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;wDACwB;AAG9C;IADhB,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC;yDACgB;AAGrC;IADhB,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC;wDACe;AAY7C;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6DAC5C;AAUxB;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wDAC3C;AAQnB;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;+DACM;AAS5D;IADN,QAAQ,EAAE;yDAC2C;AAQ/C;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;2DAC/B;AAQlB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;wDACQ;AAIxC;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;2DAEQ","sourcesContent":["import { getDateFormatter } from 'igniteui-i18n-core';\nimport { html, nothing, type TemplateResult } from 'lit';\nimport { property, query, queryAll, state } from 'lit/decorators.js';\nimport { choose } from 'lit/directives/choose.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n homeKey,\n pageDownKey,\n pageUpKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\nimport {\n clamp,\n first,\n formatString,\n getElementFromPath,\n last,\n} from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport type { ContentOrientation } from '../types.js';\nimport { IgcCalendarBaseComponent } from './base.js';\nimport IgcDaysViewComponent from './days-view/days-view.js';\nimport {\n areSameMonth,\n getYearRange,\n isDateInRanges,\n MONTHS_PER_ROW,\n YEARS_PER_PAGE,\n YEARS_PER_ROW,\n} from './helpers.js';\nimport { CalendarDay } from './model.js';\nimport IgcMonthsViewComponent from './months-view/months-view.js';\nimport { styles } from './themes/calendar.base.css.js';\nimport { all } from './themes/calendar.js';\nimport type {\n CalendarActiveView,\n CalendarHeaderOrientation,\n IgcCalendarComponentEventMap,\n} from './types.js';\nimport IgcYearsViewComponent from './years-view/years-view.js';\n\nexport const focusActiveDate = Symbol();\n\n/* blazorIndirectRender */\n/* blazorSupportsVisualChildren */\n/**\n * Represents a calendar that lets users\n * to select a date value in a variety of different ways.\n *\n * @element igc-calendar\n *\n * @slot - The default slot for the calendar.\n * @slot title - Renders the title of the calendar header.\n * @slot header-date - Renders content instead of the current date/range in the calendar header.\n *\n * @fires igcChange - Emitted when calendar changes its value.\n *\n * @csspart header - The header element of the calendar.\n * @csspart header-title - The header title element of the calendar.\n * @csspart header-date - The header date element of the calendar.\n * @csspart content - The content element which contains the views and navigation elements of the calendar.\n * @csspart content-vertical - The content element which contains the views and navigation elements of the calendar in vertical orientation.\n * @csspart navigation - The navigation container element of the calendar.\n * @csspart months-navigation - The months navigation button element of the calendar.\n * @csspart years-navigation - The years navigation button element of the calendar.\n * @csspart years-range - The years range element of the calendar.\n * @csspart navigation-buttons - The navigation buttons container of the calendar.\n * @csspart navigation-button - Previous/next navigation button of the calendar.\n * @csspart days-view-container - The days view container element of the calendar.\n * @csspart days-view - Days view element of the calendar.\n * @csspart months-view - The months view element of the calendar.\n * @csspart years-view - The years view element of the calendar.\n * @csspart days-row - Days row element of the calendar.\n * @csspart label - Week header label element of the calendar.\n * @csspart week-number - Week number element of the calendar.\n * @csspart week-number-inner - Week number inner element of the calendar.\n * @csspart date - Date element of the calendar.\n * @csspart date-inner - Date inner element of the calendar.\n * @csspart first - The first selected date element of the calendar in range selection.\n * @csspart last - The last selected date element of the calendar in range selection.\n * @csspart inactive - Inactive date element of the calendar.\n * @csspart hidden - Hidden date element of the calendar.\n * @csspart weekend - Weekend date element of the calendar.\n * @csspart range - Range selected element of the calendar.\n * @csspart special - Special date element of the calendar.\n * @csspart disabled - Disabled date element of the calendar.\n * @csspart single - Single selected date element of the calendar.\n * @csspart preview - Range selection preview date element of the calendar.\n * @csspart month - Month element of the calendar.\n * @csspart month-inner - Month inner element of the calendar.\n * @csspart year - Year element of the calendar.\n * @csspart year-inner - Year inner element of the calendar.\n * @csspart selected - Indicates selected state. Applies to date, month and year elements of the calendar.\n * @csspart current - Indicates current state. Applies to date, month and year elements of the calendar.\n */\nexport default class IgcCalendarComponent extends EventEmitterMixin<\n IgcCalendarComponentEventMap,\n Constructor<IgcCalendarBaseComponent>\n>(IgcCalendarBaseComponent) {\n public static readonly tagName = 'igc-calendar';\n public static styles = styles;\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcCalendarComponent,\n IgcIconComponent,\n IgcDaysViewComponent,\n IgcMonthsViewComponent,\n IgcYearsViewComponent\n );\n }\n\n //#region Internal state\n\n private readonly _contentRef = createRef<HTMLDivElement>();\n\n private get _isDayView(): boolean {\n return this.activeView === 'days';\n }\n\n private get _isMonthView(): boolean {\n return this.activeView === 'months';\n }\n\n private get _isYearView(): boolean {\n return this.activeView === 'years';\n }\n\n private get _previousButtonLabel(): string {\n switch (this.activeView) {\n case 'days':\n return this.resourceStrings.previousMonth;\n case 'months':\n return this.resourceStrings.previousYear;\n case 'years':\n return formatString(this.resourceStrings.previousYears, YEARS_PER_PAGE);\n default:\n return '';\n }\n }\n\n private get _nextButtonLabel(): string {\n switch (this.activeView) {\n case 'days':\n return this.resourceStrings.nextMonth;\n case 'months':\n return this.resourceStrings.nextYear;\n case 'years':\n return formatString(this.resourceStrings.nextYears, YEARS_PER_PAGE);\n default:\n return '';\n }\n }\n\n @state()\n private _activeDaysViewIndex = 0;\n\n @queryAll(IgcDaysViewComponent.tagName)\n private readonly _daysViews!: NodeListOf<IgcDaysViewComponent>;\n\n @query(IgcMonthsViewComponent.tagName)\n private readonly _monthsView!: IgcMonthsViewComponent;\n\n @query(IgcYearsViewComponent.tagName)\n private readonly _yearsView!: IgcYearsViewComponent;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether to show the dates that do not belong to the current active month.\n * @attr hide-outside-days\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-outside-days', reflect: true })\n public hideOutsideDays = false;\n\n /**\n * Whether to render the calendar header part.\n * When the calendar selection is set to `multiple` the header is always hidden.\n *\n * @attr hide-header\n * @default false\n */\n @property({ type: Boolean, attribute: 'hide-header', reflect: true })\n public hideHeader = false;\n\n /**\n * The orientation of the calendar header.\n * @attr header-orientation\n * @default \"horizontal\"\n */\n @property({ reflect: true, attribute: 'header-orientation' })\n public headerOrientation: CalendarHeaderOrientation = 'horizontal';\n\n /**\n * The orientation of the calendar months when more than one month\n * is being shown.\n * @attr orientation\n * @default \"horizontal\"\n */\n @property()\n public orientation: ContentOrientation = 'horizontal';\n\n /**\n * The number of months displayed in the days view.\n * @attr visible-months\n * @default 1\n */\n @property({ type: Number, attribute: 'visible-months' })\n public visibleMonths = 1;\n\n /**\n * The current active view of the component.\n * @attr active-view\n * @default \"days\"\n */\n @property({ attribute: 'active-view' })\n public activeView: CalendarActiveView = 'days';\n\n /** The options used to format the months and the weekdays in the calendar views. */\n @property({ attribute: false })\n public formatOptions: Pick<Intl.DateTimeFormatOptions, 'month' | 'weekday'> =\n { month: 'long', weekday: 'narrow' };\n\n //#endregion\n\n //#region Lifecycle hooks\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addKeybindings(this, {\n skip: this._shouldSkipKeyboardEvent,\n ref: this._contentRef,\n bindingDefaults: { repeat: true },\n })\n .set(arrowLeft, this._handleArrowKey.bind(this, 'day', -1))\n .set(arrowRight, this._handleArrowKey.bind(this, 'day', 1))\n .set(arrowUp, this._handleArrowKey.bind(this, 'week', -1))\n .set(arrowDown, this._handleArrowKey.bind(this, 'week', 1))\n .set([shiftKey, pageUpKey], this._handleShiftPageKeys.bind(this, -1))\n .set([shiftKey, pageDownKey], this._handleShiftPageKeys.bind(this, 1))\n .set(pageUpKey, this._handlePageKeys.bind(this, -1))\n .set(pageDownKey, this._handlePageKeys.bind(this, 1))\n .set(homeKey, this._handleHomeKey)\n .set(endKey, this._handleEndKey);\n }\n\n //#endregion\n\n //#region Keyboard event handlers\n\n private _shouldSkipKeyboardEvent(_: Element, event: KeyboardEvent): boolean {\n return !getElementFromPath(\n `${IgcDaysViewComponent.tagName}, ${IgcMonthsViewComponent.tagName}, ${IgcYearsViewComponent.tagName}`,\n event\n );\n }\n\n private _handleArrowKey(period: 'day' | 'week', delta: -1 | 1): void {\n if (this._isDayView) {\n const date = this._getNextEnabledDate(\n this._activeDate.add(period, delta),\n delta\n );\n this._updateViewIndex(date, delta);\n this._activeDate = date;\n } else {\n const monthOrYear = this._isMonthView ? 'month' : 'year';\n const monthOrYearDelta =\n (this._isMonthView ? MONTHS_PER_ROW : YEARS_PER_ROW) * delta;\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(\n monthOrYear,\n period === 'week' ? monthOrYearDelta : delta\n ),\n delta\n );\n }\n\n this[focusActiveDate]();\n }\n\n private _handlePageKeys(delta: -1 | 1): void {\n const unit = this._isDayView ? 'month' : 'year';\n const increment = (this._isYearView ? YEARS_PER_PAGE : 1) * delta;\n\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add(unit, increment),\n increment\n );\n this[focusActiveDate]();\n }\n\n private _handleShiftPageKeys(delta: -1 | 1): void {\n if (this._isDayView) {\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.add('year', delta),\n delta\n );\n this[focusActiveDate]();\n }\n }\n\n private _handleHomeKey(): void {\n switch (this.activeView) {\n case 'days': {\n const firstView = CalendarDay.from(this._daysViews.item(0).activeDate);\n this._activeDate = this._getNextEnabledDate(\n firstView.set({ date: 1 }),\n 1\n );\n this._activeDaysViewIndex = 0;\n break;\n }\n case 'months':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({ month: 0 }),\n 1\n );\n break;\n case 'years':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({\n year: getYearRange(this._activeDate, YEARS_PER_PAGE).start,\n }),\n 1\n );\n break;\n }\n\n this[focusActiveDate]();\n }\n\n private _handleEndKey(): void {\n switch (this.activeView) {\n case 'days': {\n const index = this._daysViews.length - 1;\n const lastView = CalendarDay.from(\n this._daysViews.item(index).activeDate\n );\n this._activeDate = this._getNextEnabledDate(\n lastView.set({ month: lastView.month + 1, date: 0 }),\n -1\n );\n this._activeDaysViewIndex = index;\n break;\n }\n case 'months':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({ month: 11 }),\n -1\n );\n break;\n case 'years':\n this._activeDate = this._getNextEnabledDate(\n this._activeDate.set({\n year: getYearRange(this._activeDate, YEARS_PER_PAGE).end,\n }),\n -1\n );\n break;\n }\n\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Event handlers\n\n private _handleMonthChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'days';\n\n this[focusActiveDate]();\n }\n\n private _handleYearChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n this.activeDate = event.detail;\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _handleValueChange(event: CustomEvent<Date>): void {\n event.stopPropagation();\n\n const view = event.target as IgcDaysViewComponent;\n\n if (this._isSingle) {\n this.value = view.value;\n } else {\n this.values = view.values;\n }\n\n this.emitEvent('igcChange', {\n detail: this._isSingle ? (this.value as Date) : this.values,\n });\n }\n\n private _handleActiveDateChange(event: CustomEvent<Date>): void {\n const view = event.target as IgcDaysViewComponent;\n const views = Array.from(this._daysViews);\n\n this._activeDaysViewIndex = views.indexOf(view);\n this.activeDate = event.detail;\n\n if (!areSameMonth(this.activeDate, view.activeDate)) {\n this[focusActiveDate]();\n }\n }\n\n private _handleRangePreviewChange(event: CustomEvent<Date>): void {\n this._rangePreviewDate = event.detail\n ? CalendarDay.from(event.detail)\n : undefined;\n }\n\n //#endregion\n\n //#region Internal navigation methods\n\n private _setActiveDaysView(viewIndex: number): void {\n const view = this._daysViews.item(viewIndex);\n this.activeDate = view.activeDate;\n this._activeDaysViewIndex = viewIndex;\n }\n\n private _navigate(delta: 1 | -1): void {\n const unit = this._isDayView ? 'month' : 'year';\n const increment = (this._isYearView ? YEARS_PER_PAGE : 1) * delta;\n this._activeDate = this._activeDate.add(unit, increment);\n }\n\n private _navigatePrevious(): void {\n this._navigate(-1);\n }\n\n private _navigateNext(): void {\n this._navigate(1);\n }\n\n private _navigateToMonthView(viewIndex: number): void {\n this._setActiveDaysView(viewIndex);\n this.activeView = 'months';\n\n this[focusActiveDate]();\n }\n\n private _navigateToYearView(viewIndex: number): void {\n if (this._isDayView) {\n this._setActiveDaysView(viewIndex);\n }\n this.activeView = 'years';\n\n this[focusActiveDate]();\n }\n\n //#endregion\n\n //#region Internal API\n\n /** @private @hidden @internal */\n public async [focusActiveDate](options?: FocusOptions): Promise<void> {\n await this.updateComplete;\n\n switch (this.activeView) {\n case 'days':\n return this._daysViews\n .item(this._activeDaysViewIndex)\n .focusActiveDate(options);\n case 'months':\n return this._monthsView.focusActiveDate(options);\n case 'years':\n return this._yearsView.focusActiveDate(options);\n }\n }\n\n private _updateViewIndex(date: CalendarDay, delta: -1 | 1): void {\n if (this.visibleMonths === 1) {\n return;\n }\n\n const index = this._activeDaysViewIndex;\n const view = CalendarDay.from(this._daysViews.item(index).activeDate);\n\n if (date.month !== view.month) {\n this._activeDaysViewIndex = clamp(\n index + delta,\n 0,\n this.visibleMonths - 1\n );\n }\n }\n\n private _getActiveDates(): CalendarDay[] {\n const current = this._activeDaysViewIndex;\n const length = Math.max(this.visibleMonths, 1);\n\n return Array.from({ length }, (_, i) =>\n this._activeDate.add('month', i - current)\n );\n }\n\n private _getNextEnabledDate(start: CalendarDay, delta: number): CalendarDay {\n const disabled = this._disabledDates;\n let beginning = start.clone();\n\n while (isDateInRanges(beginning, disabled)) {\n beginning = beginning.add('day', delta);\n }\n\n return beginning;\n }\n\n //#endregion\n\n protected _renderNavigationButtons() {\n const parts = {\n 'navigation-button': true,\n vertical: this.orientation === 'vertical',\n };\n\n return html`\n <div part=\"navigation-buttons\">\n <button\n part=${partMap(parts)}\n aria-label=${this._previousButtonLabel}\n @click=${this._navigatePrevious}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_prev\"\n collection=\"default\"\n ></igc-icon>\n </button>\n\n <button\n part=${partMap(parts)}\n aria-label=${this._nextButtonLabel}\n @click=${this._navigateNext}\n >\n <igc-icon\n aria-hidden=\"true\"\n name=\"arrow_next\"\n collection=\"default\"\n ></igc-icon>\n </button>\n </div>\n `;\n }\n\n protected _renderMonthButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const formatter = getDateFormatter();\n const label = formatter.formatDateTime(active.native, this.locale, {\n month: 'long',\n });\n const value = formatter.formatDateTime(active.native, this.locale, {\n month: this.formatOptions.month,\n });\n const ariaLabel = `${label}, ${this.resourceStrings.selectMonth}`;\n\n return html`\n <button\n part=\"months-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToMonthView(viewIndex)}\n >\n ${value}\n </button>\n `;\n }\n\n protected _renderYearButtonNavigation(\n active: CalendarDay,\n viewIndex: number\n ): TemplateResult {\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'long',\n year: 'numeric',\n });\n const ariaLabel = `${active.year}, ${this.resourceStrings.selectYear}`;\n const ariaSkip = this._isDayView ? format(active.native) : active.year;\n\n return html`\n <span class=\"aria-off-screen\" aria-live=\"polite\">${ariaSkip}</span>\n <button\n part=\"years-navigation\"\n aria-label=${ariaLabel}\n @click=${() => this._navigateToYearView(viewIndex)}\n >\n ${active.year}\n </button>\n `;\n }\n\n protected _renderYearRangeNavigation(active: CalendarDay): TemplateResult {\n const { start, end } = getYearRange(active, YEARS_PER_PAGE);\n\n return html`\n <span part=\"years-range\" aria-live=\"polite\"> ${start} - ${end} </span>\n `;\n }\n\n protected _renderNavigation(\n date?: CalendarDay,\n showButtons = true,\n viewIndex = 0\n ): TemplateResult {\n const activeDate = date ?? this._activeDate;\n\n return html`\n <div part=\"navigation\">\n <div part=\"picker-dates\">\n ${this._isDayView\n ? this._renderMonthButtonNavigation(activeDate, viewIndex)\n : nothing}\n ${this._isDayView || this._isMonthView\n ? this._renderYearButtonNavigation(activeDate, viewIndex)\n : nothing}\n ${this._isYearView\n ? this._renderYearRangeNavigation(activeDate)\n : nothing}\n </div>\n ${showButtons ? this._renderNavigationButtons() : nothing}\n </div>\n `;\n }\n\n protected _renderHeader() {\n if (this.hideHeader || this._isMultiple) {\n return nothing;\n }\n\n const title = this._isSingle\n ? this.resourceStrings.selectDate\n : this.resourceStrings.selectRange;\n\n return html`\n <div part=\"header\">\n <h5 part=\"header-title\">\n <slot name=\"title\">${title}</slot>\n </h5>\n <h2 part=\"header-date\">${this._renderHeaderDate()}</h2>\n </div>\n `;\n }\n\n protected _renderHeaderDateSingle(): TemplateResult {\n const date = this.value ?? CalendarDay.today.native;\n const formatter = getDateFormatter();\n const weekday = formatter.formatDateTime(date, this.locale, {\n weekday: 'short',\n });\n const monthDay = formatter.formatDateTime(date, this.locale, {\n month: 'short',\n day: 'numeric',\n });\n const separator =\n this.headerOrientation === 'vertical' ? html`<br />` : ' ';\n\n const formatted = html`${weekday},${separator}${monthDay}`;\n\n return html`<slot name=\"header-date\">${formatted}</slot>`;\n }\n\n protected _renderHeaderDateRange(): TemplateResult {\n const values = this.values;\n const { format } = getDateFormatter().getIntlFormatter(this.locale, {\n month: 'short',\n day: 'numeric',\n });\n const { startDate, endDate } = this.resourceStrings;\n\n const start = this._hasValues ? format(first(values)) : startDate;\n const end =\n this._hasValues && values.length > 1 ? format(last(values)) : endDate;\n\n return html`\n <slot name=\"header-date\">\n <span>${start}</span>\n <span> - </span>\n <span>${end}</span>\n </slot>\n `;\n }\n\n protected _renderHeaderDate(): TemplateResult {\n return this._isSingle\n ? this._renderHeaderDateSingle()\n : this._renderHeaderDateRange();\n }\n\n protected _renderDaysView(): TemplateResult {\n const activeDates = this._getActiveDates();\n const horizontal = this.orientation === 'horizontal';\n const length = activeDates.length - 1;\n const format = this.formatOptions\n .weekday as Intl.DateTimeFormatOptions['weekday'];\n\n return html`${activeDates.map(\n (date, idx) => html`\n <div part=\"days-view-container\">\n ${this._renderNavigation(\n date,\n horizontal ? idx === length : idx === 0,\n idx\n )}\n <igc-days-view\n @igcChange=${this._handleValueChange}\n @igcActiveDateChange=${this._handleActiveDateChange}\n @igcRangePreviewDateChange=${this._handleRangePreviewChange}\n part=\"days-view\"\n exportparts=\"days-row, label, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, content-vertical, weekend, range, special, disabled, single, preview\"\n .active=${this._activeDaysViewIndex === idx}\n .activeDate=${date.native}\n .disabledDates=${this.disabledDates}\n .hideLeadingDays=${this.hideOutsideDays || idx !== 0}\n .hideTrailingDays=${this.hideOutsideDays || idx !== length}\n .locale=${this.locale}\n .rangePreviewDate=${this._rangePreviewDate?.native}\n .resourceStrings=${this.resourceStrings}\n .selection=${this.selection}\n .showWeekNumbers=${this.showWeekNumbers}\n .specialDates=${this._specialDates}\n .value=${this.value}\n .values=${this.values}\n .weekDayFormat=${format!}\n .weekStart=${this.weekStart}\n ></igc-days-view>\n </div>\n `\n )}`;\n }\n\n protected _renderMonthView(): TemplateResult {\n const format = this.formatOptions\n .month as Intl.DateTimeFormatOptions['month'];\n\n return html`\n ${this._renderNavigation()}\n <igc-months-view\n part=\"months-view\"\n exportparts=\"month, selected, month-inner, current\"\n @igcChange=${this._handleMonthChange}\n .value=${this.activeDate}\n .locale=${this.locale}\n .monthFormat=${format!}\n ></igc-months-view>\n `;\n }\n\n protected _renderYearView(): TemplateResult {\n return html`\n ${this._renderNavigation()}\n <igc-years-view\n part=\"years-view\"\n exportparts=\"year, selected, year-inner, current\"\n @igcChange=${this._handleYearChange}\n .value=${this.activeDate}\n .yearsPerPage=${YEARS_PER_PAGE}\n ></igc-years-view>\n `;\n }\n\n protected override render() {\n const parts = {\n content: true,\n 'content-vertical': this._isDayView && this.orientation === 'vertical',\n };\n\n return html`\n ${this._renderHeader()}\n <div ${ref(this._contentRef)} part=${partMap(parts)}>\n ${choose(this.activeView, [\n ['days', () => this._renderDaysView()],\n ['months', () => this._renderMonthView()],\n ['years', () => this._renderYearView()],\n ])}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-calendar': IgcCalendarComponent;\n }\n}\n"]}
@@ -15,7 +15,7 @@ import { blazorSuppressComponent } from '../../common/decorators/blazorSuppressC
15
15
  import { registerComponent } from '../../common/definitions/register.js';
16
16
  import { EventEmitterMixin } from '../../common/mixins/event-emitter.js';
17
17
  import { partMap } from '../../common/part-map.js';
18
- import { addSafeEventListener, chunk, first, last, take, } from '../../common/util.js';
18
+ import { addSafeEventListener, chunk, first, last } from '../../common/util.js';
19
19
  import { IgcCalendarBaseComponent } from '../base.js';
20
20
  import { areSameMonth, calendarRange, generateMonth, getViewElement, isDateInRanges, isNextMonth, isPreviousMonth, } from '../helpers.js';
21
21
  import { CalendarDay, DAYS_IN_WEEK } from '../model.js';
@@ -304,19 +304,21 @@ let IgcDaysViewComponent = class IgcDaysViewComponent extends EventEmitterMixin(
304
304
  const aria = getDateFormatter().getIntlFormatter(this.locale, {
305
305
  weekday: 'long',
306
306
  });
307
- const days = take(generateMonth(this._activeDate, this._firstDayOfWeek), DAYS_IN_WEEK);
308
307
  const weekNumber = this.showWeekNumbers
309
308
  ? this._renderHeaderWeekNumber()
310
309
  : nothing;
311
- const headers = days.map((day) => html `
312
- <span
313
- role="columnheader"
314
- part="label"
315
- aria-label=${aria.format(day.native)}
316
- >
317
- <span part="label-inner">${label.format(day.native)}</span>
318
- </span>
319
- `);
310
+ const headers = generateMonth(this._activeDate, this._firstDayOfWeek)
311
+ .take(DAYS_IN_WEEK)
312
+ .map((day) => html `
313
+ <span
314
+ role="columnheader"
315
+ part="label"
316
+ aria-label=${aria.format(day.native)}
317
+ >
318
+ <span part="label-inner">${label.format(day.native)}</span>
319
+ </span>
320
+ `)
321
+ .toArray();
320
322
  return html `
321
323
  <div role="row" part="days-row first">${weekNumber}${headers}</div>
322
324
  `;
@@ -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 { getDateFormatter } from 'igniteui-i18n-core';\nimport { html, nothing, type PropertyValues, type TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { addThemingController } from '../../../theming/theming-controller.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partMap } from '../../common/part-map.js';\nimport {\n addSafeEventListener,\n chunk,\n first,\n last,\n take,\n} from '../../common/util.js';\nimport { IgcCalendarBaseComponent } from '../base.js';\nimport {\n areSameMonth,\n calendarRange,\n generateMonth,\n getViewElement,\n isDateInRanges,\n isNextMonth,\n isPreviousMonth,\n} from '../helpers.js';\nimport { CalendarDay, DAYS_IN_WEEK } from '../model.js';\nimport { all } from '../themes/days.js';\nimport { styles } from '../themes/days-view.base.css.js';\nimport { DateRangeType, type IgcCalendarComponentEventMap } from '../types.js';\n\nexport interface IgcDaysViewEventMap extends IgcCalendarComponentEventMap {\n igcActiveDateChange: CustomEvent<Date>;\n igcRangePreviewDateChange: CustomEvent<Date>;\n}\n\ninterface DayProperties {\n disabled: boolean;\n first: boolean;\n last: boolean;\n range: boolean;\n preview: boolean;\n current: boolean;\n inactive: boolean;\n hidden: boolean;\n weekend: boolean;\n single: boolean;\n selected: boolean;\n special: boolean;\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\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 /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDaysViewComponent);\n }\n\n //#region Internal properties and state\n\n @state()\n private _dates: CalendarDay[] = [];\n\n @query('[tabindex=\"0\"]')\n private _activeDay?: HTMLElement;\n\n /** Returns the first date in the current range selection. */\n private get _rangeStart(): CalendarDay | undefined {\n return this._hasValues ? first(this._values) : undefined;\n }\n\n /** Returns the last date in the current range selection. */\n private get _rangeEnd(): CalendarDay | undefined {\n return this._hasValues ? last(this._values) : undefined;\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /** The active state of the component. */\n @property({ type: Boolean })\n public active = false;\n\n /**\n * Whether to show leading days which do not belong to the current month.\n * @attr hide-leading-days\n */\n @property({ type: Boolean, attribute: 'hide-leading-days' })\n public hideLeadingDays = false;\n\n /**\n * Whether to show trailing days which do not belong to the current month.\n * @attr hide-trailing-days\n */\n @property({ type: Boolean, attribute: 'hide-trailing-days' })\n public hideTrailingDays = false;\n\n /** The range preview date. */\n @property({ attribute: false })\n public set rangePreviewDate(value: Date | undefined) {\n this._rangePreviewDate = value ? CalendarDay.from(value) : undefined;\n }\n\n public get rangePreviewDate(): Date | undefined {\n return this._rangePreviewDate?.native;\n }\n\n /**\n * The format of the days. Defaults to narrow.\n * @attr week-day-format\n */\n @property({ attribute: 'week-day-format' })\n public weekDayFormat: 'long' | 'short' | 'narrow' = 'narrow';\n\n //#endregion\n\n //#region Lifecycle hooks\n\n constructor() {\n super();\n\n addThemingController(this, all);\n addKeybindings(this).setActivateHandler(this._handleInteraction);\n addSafeEventListener(this, 'click', this._handleInteraction);\n }\n\n /** @internal */\n public override connectedCallback(): void {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n /** @internal */\n protected override update(props: PropertyValues<this>): void {\n if (props.has('activeDate') || props.has('weekStart')) {\n this._dates = Array.from(\n generateMonth(this._activeDate, this._firstDayOfWeek)\n );\n }\n\n super.update(props);\n }\n\n //#endregion\n\n //#region Event handlers\n\n protected _handleInteraction(event: Event): void {\n const value = getViewElement(event);\n\n if (value !== -1) {\n const date = CalendarDay.from(new Date(value));\n\n if (this._rangePreviewDate) {\n this._setRangePreviewDate();\n }\n\n if (this._selectDate(date)) {\n this.emitEvent('igcChange', { detail: date.native });\n }\n\n if (event.type === 'click') {\n this.emitEvent('igcActiveDateChange', { detail: date.native });\n this._activeDate = date;\n }\n }\n }\n\n //#endregion\n\n //#region Internal selection methods\n\n private _selectDate(value: CalendarDay): boolean {\n if (isDateInRanges(value, this._disabledDates)) {\n return false;\n }\n\n switch (this.selection) {\n case 'single':\n if (this._value?.equalTo(value)) {\n return false;\n }\n this._value = 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 _selectMultiple(day: CalendarDay): void {\n const idx = this._values.findIndex((v) => v.equalTo(day));\n\n if (idx < 0) {\n this._values.push(day);\n } else {\n this._values.splice(idx, 1);\n }\n\n this._values = this._values.toSorted((a, b) => a.timestamp - b.timestamp);\n }\n\n private _selectRange(day: CalendarDay): void {\n // Start a new range selection\n if (this._values.length !== 1) {\n this._values = [day];\n return;\n }\n\n const rangeStart = this._rangeStart!;\n\n // Clicking the same date clears the selection\n if (rangeStart.equalTo(day)) {\n this._values = [];\n return;\n }\n\n // Build the complete range, ensuring correct order\n const [start, end] = rangeStart.greaterThan(day)\n ? [day, rangeStart]\n : [rangeStart, day];\n\n const range = Array.from(calendarRange({ start, end }));\n range.push(last(range).add('day', 1));\n\n // Filter out disabled dates\n this._values = range.filter((v) => !isDateInRanges(v, this._disabledDates));\n }\n\n private _isSelected(day: CalendarDay): boolean {\n if (isDateInRanges(day, this._disabledDates)) {\n return false;\n }\n\n switch (this.selection) {\n case 'single':\n return Boolean(this._value?.equalTo(day));\n\n case 'multiple':\n return (\n this._hasValues &&\n isDateInRanges(day, [\n { type: DateRangeType.Specific, dateRange: this.values },\n ])\n );\n\n case 'range':\n return (\n this._hasValues &&\n isDateInRanges(day, [\n {\n type: DateRangeType.Between,\n dateRange: [this._rangeStart!.native, this._rangeEnd!.native],\n },\n ])\n );\n }\n }\n\n //#endregion\n\n //#region Range helpers\n\n private _setRangePreviewDate(day?: CalendarDay): void {\n this._rangePreviewDate = day;\n this.emitEvent('igcRangePreviewDateChange', {\n detail: day ? day.native : undefined,\n });\n }\n\n private _changeRangePreview(day: CalendarDay): void {\n if (this._values.length === 1 && !first(this._values).equalTo(day)) {\n this._setRangePreviewDate(day);\n }\n }\n\n private _clearRangePreview(): void {\n if (this._rangePreviewDate) {\n this._setRangePreviewDate();\n }\n }\n\n /** Gets the effective start of the visual range, accounting for preview. */\n private _getEffectiveRangeStart(): CalendarDay | undefined {\n if (!this._rangeStart) return undefined;\n\n return this._rangePreviewDate?.lessThan(this._rangeStart)\n ? this._rangePreviewDate\n : this._rangeStart;\n }\n\n /** Gets the effective end of the visual range, accounting for preview. */\n private _getEffectiveRangeEnd(): CalendarDay | undefined {\n if (!this._rangeEnd) return undefined;\n\n return this._rangePreviewDate?.greaterThan(this._rangeEnd)\n ? this._rangePreviewDate\n : this._rangeEnd;\n }\n\n private _isFirstInRange(day: CalendarDay): boolean {\n const effectiveStart = this._getEffectiveRangeStart();\n return this._isRange && Boolean(effectiveStart?.equalTo(day));\n }\n\n private _isLastInRange(day: CalendarDay): boolean {\n const effectiveEnd = this._getEffectiveRangeEnd();\n return this._isRange && Boolean(effectiveEnd?.equalTo(day));\n }\n\n private _isRangeDate(day: CalendarDay): boolean {\n if (!this._hasValues) return false;\n\n const isSingleSelection = this._values.length === 1;\n if (isSingleSelection && !this._rangePreviewDate) return false;\n\n const max = isSingleSelection ? this._rangePreviewDate! : this._rangeEnd!;\n\n return isDateInRanges(day, [\n {\n type: DateRangeType.Between,\n dateRange: [this._rangeStart!.native, max.native],\n },\n ]);\n }\n\n private _isRangePreview(day: CalendarDay): boolean {\n if (!this._hasValues || !this._rangePreviewDate) return false;\n\n return isDateInRanges(day, [\n {\n type: DateRangeType.Between,\n dateRange: [this._rangeStart!.native, this._rangePreviewDate.native],\n },\n ]);\n }\n\n //#endregion\n\n //#region Internal methods\n\n private _intlFormatDay(day: CalendarDay): string {\n const fmt = getDateFormatter().getIntlFormatter(this.locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n\n // Range selection in progress\n if (this._rangePreviewDate?.equalTo(day)) {\n return fmt.formatRange(\n first(this._values).native,\n this._rangePreviewDate.native\n );\n }\n\n // Range selection finished\n if (this._isFirstInRange(day) || this._isLastInRange(day)) {\n return fmt.formatRange(\n first(this._values).native,\n last(this._values).native\n );\n }\n\n // Default\n return fmt.format(day.native);\n }\n\n private _getDayHandlers(day: CalendarDay) {\n if (!this._isRange) {\n return { changePreview: nothing, clearPreview: nothing };\n }\n\n return {\n changePreview: this._changeRangePreview.bind(this, day),\n clearPreview: this._clearRangePreview.bind(this),\n };\n }\n\n private _getDayProperties(\n day: CalendarDay,\n today: CalendarDay\n ): DayProperties {\n const inactive = !areSameMonth(day, this._activeDate);\n const disabled = isDateInRanges(day, this._disabledDates);\n\n const hidden =\n (this.hideLeadingDays && isPreviousMonth(day, this._activeDate)) ||\n (this.hideTrailingDays && isNextMonth(day, this._activeDate));\n\n return {\n disabled: disabled || hidden,\n first: this._isFirstInRange(day),\n last: this._isLastInRange(day),\n range: this._isRange && this._isRangeDate(day),\n preview: this._isRange && this._isRangePreview(day),\n current: !inactive && day.equalTo(today),\n inactive,\n hidden,\n weekend: day.weekend,\n single: !this._isRange,\n selected: !disabled && this._isSelected(day),\n special: !inactive && isDateInRanges(day, this._specialDates),\n };\n }\n\n //#endregion\n\n //#region Public methods\n\n /** Focuses the active date. */\n public focusActiveDate(options?: FocusOptions): void {\n this._activeDay?.focus(options);\n }\n\n //#endregion\n\n protected _renderDayWithProps(\n day: CalendarDay,\n props: DayProperties\n ): TemplateResult {\n const ariaLabel = this._intlFormatDay(day);\n const { changePreview, clearPreview } = this._getDayHandlers(day);\n\n return html`\n <span part=${partMap({ date: true, ...props })}>\n <span\n role=\"gridcell\"\n part=${partMap({ 'date-inner': true, ...props })}\n aria-label=${ariaLabel}\n aria-disabled=${props.disabled}\n aria-selected=${props.selected}\n data-value=${day.timestamp}\n tabindex=${day.equalTo(this._activeDate) ? 0 : -1}\n @focus=${changePreview}\n @blur=${clearPreview}\n @pointerenter=${changePreview}\n @pointerleave=${clearPreview}\n >\n ${day.date}\n </span>\n </span>\n `;\n }\n\n protected _renderHeaderWeekNumber() {\n return html`\n <span role=\"columnheader\" part=\"label week-number first\">\n <span part=\"week-number-inner first\">\n ${this.resourceStrings.weekLabel}\n </span>\n </span>\n `;\n }\n\n protected _renderWeekNumber(start: CalendarDay, last: boolean) {\n return html`\n <span role=\"rowheader\" part=${partMap({ 'week-number': true, last })}>\n <span part=${partMap({ 'week-number-inner': true, last })}>\n ${start.week}\n </span>\n </span>\n `;\n }\n\n protected _renderHeaders() {\n const label = getDateFormatter().getIntlFormatter(this.locale, {\n weekday: this.weekDayFormat,\n });\n const aria = getDateFormatter().getIntlFormatter(this.locale, {\n weekday: 'long',\n });\n const days = take(\n generateMonth(this._activeDate, this._firstDayOfWeek),\n DAYS_IN_WEEK\n );\n\n const weekNumber = this.showWeekNumbers\n ? this._renderHeaderWeekNumber()\n : nothing;\n\n const headers = days.map(\n (day) => html`\n <span\n role=\"columnheader\"\n part=\"label\"\n aria-label=${aria.format(day.native)}\n >\n <span part=\"label-inner\">${label.format(day.native)}</span>\n </span>\n `\n );\n\n return html`\n <div role=\"row\" part=\"days-row first\">${weekNumber}${headers}</div>\n `;\n }\n\n protected *_renderWeeks(): Generator<TemplateResult> {\n const today = CalendarDay.today;\n const weeks = Array.from(chunk(this._dates, DAYS_IN_WEEK));\n const lastIndex = weeks.length - 1;\n\n // Pre-compute day properties for all dates to avoid redundant calculations\n const dayPropertiesMap = new Map<number, DayProperties>();\n\n for (const day of this._dates) {\n dayPropertiesMap.set(day.timestamp, this._getDayProperties(day, today));\n }\n\n for (const [idx, week] of weeks.entries()) {\n const isLast = idx === lastIndex;\n\n const hidden = week.every(\n (day) => dayPropertiesMap.get(day.timestamp)!.hidden\n );\n\n yield html`\n <div role=\"row\" part=\"days-row\" aria-hidden=${hidden}>\n ${this.showWeekNumbers\n ? this._renderWeekNumber(week[0], isLast)\n : nothing}\n ${week.map((day) =>\n this._renderDayWithProps(day, dayPropertiesMap.get(day.timestamp)!)\n )}\n </div>\n `;\n }\n }\n\n protected override render() {\n return html`${this._renderHeaders()}${this._renderWeeks()}`;\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 { getDateFormatter } from 'igniteui-i18n-core';\nimport { html, nothing, type PropertyValues, type TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { addThemingController } from '../../../theming/theming-controller.js';\nimport { addKeybindings } from '../../common/controllers/key-bindings.js';\nimport { blazorIndirectRender } from '../../common/decorators/blazorIndirectRender.js';\nimport { blazorSuppressComponent } from '../../common/decorators/blazorSuppressComponent.js';\nimport { registerComponent } from '../../common/definitions/register.js';\nimport type { Constructor } from '../../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../../common/mixins/event-emitter.js';\nimport { partMap } from '../../common/part-map.js';\nimport { addSafeEventListener, chunk, first, last } from '../../common/util.js';\nimport { IgcCalendarBaseComponent } from '../base.js';\nimport {\n areSameMonth,\n calendarRange,\n generateMonth,\n getViewElement,\n isDateInRanges,\n isNextMonth,\n isPreviousMonth,\n} from '../helpers.js';\nimport { CalendarDay, DAYS_IN_WEEK } from '../model.js';\nimport { all } from '../themes/days.js';\nimport { styles } from '../themes/days-view.base.css.js';\nimport { DateRangeType, type IgcCalendarComponentEventMap } from '../types.js';\n\nexport interface IgcDaysViewEventMap extends IgcCalendarComponentEventMap {\n igcActiveDateChange: CustomEvent<Date>;\n igcRangePreviewDateChange: CustomEvent<Date>;\n}\n\ninterface DayProperties {\n disabled: boolean;\n first: boolean;\n last: boolean;\n range: boolean;\n preview: boolean;\n current: boolean;\n inactive: boolean;\n hidden: boolean;\n weekend: boolean;\n single: boolean;\n selected: boolean;\n special: boolean;\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\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 /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDaysViewComponent);\n }\n\n //#region Internal properties and state\n\n @state()\n private _dates: CalendarDay[] = [];\n\n @query('[tabindex=\"0\"]')\n private _activeDay?: HTMLElement;\n\n /** Returns the first date in the current range selection. */\n private get _rangeStart(): CalendarDay | undefined {\n return this._hasValues ? first(this._values) : undefined;\n }\n\n /** Returns the last date in the current range selection. */\n private get _rangeEnd(): CalendarDay | undefined {\n return this._hasValues ? last(this._values) : undefined;\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /** The active state of the component. */\n @property({ type: Boolean })\n public active = false;\n\n /**\n * Whether to show leading days which do not belong to the current month.\n * @attr hide-leading-days\n */\n @property({ type: Boolean, attribute: 'hide-leading-days' })\n public hideLeadingDays = false;\n\n /**\n * Whether to show trailing days which do not belong to the current month.\n * @attr hide-trailing-days\n */\n @property({ type: Boolean, attribute: 'hide-trailing-days' })\n public hideTrailingDays = false;\n\n /** The range preview date. */\n @property({ attribute: false })\n public set rangePreviewDate(value: Date | undefined) {\n this._rangePreviewDate = value ? CalendarDay.from(value) : undefined;\n }\n\n public get rangePreviewDate(): Date | undefined {\n return this._rangePreviewDate?.native;\n }\n\n /**\n * The format of the days. Defaults to narrow.\n * @attr week-day-format\n */\n @property({ attribute: 'week-day-format' })\n public weekDayFormat: 'long' | 'short' | 'narrow' = 'narrow';\n\n //#endregion\n\n //#region Lifecycle hooks\n\n constructor() {\n super();\n\n addThemingController(this, all);\n addKeybindings(this).setActivateHandler(this._handleInteraction);\n addSafeEventListener(this, 'click', this._handleInteraction);\n }\n\n /** @internal */\n public override connectedCallback(): void {\n super.connectedCallback();\n this.role = 'grid';\n }\n\n /** @internal */\n protected override update(props: PropertyValues<this>): void {\n if (props.has('activeDate') || props.has('weekStart')) {\n this._dates = Array.from(\n generateMonth(this._activeDate, this._firstDayOfWeek)\n );\n }\n\n super.update(props);\n }\n\n //#endregion\n\n //#region Event handlers\n\n protected _handleInteraction(event: Event): void {\n const value = getViewElement(event);\n\n if (value !== -1) {\n const date = CalendarDay.from(new Date(value));\n\n if (this._rangePreviewDate) {\n this._setRangePreviewDate();\n }\n\n if (this._selectDate(date)) {\n this.emitEvent('igcChange', { detail: date.native });\n }\n\n if (event.type === 'click') {\n this.emitEvent('igcActiveDateChange', { detail: date.native });\n this._activeDate = date;\n }\n }\n }\n\n //#endregion\n\n //#region Internal selection methods\n\n private _selectDate(value: CalendarDay): boolean {\n if (isDateInRanges(value, this._disabledDates)) {\n return false;\n }\n\n switch (this.selection) {\n case 'single':\n if (this._value?.equalTo(value)) {\n return false;\n }\n this._value = 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 _selectMultiple(day: CalendarDay): void {\n const idx = this._values.findIndex((v) => v.equalTo(day));\n\n if (idx < 0) {\n this._values.push(day);\n } else {\n this._values.splice(idx, 1);\n }\n\n this._values = this._values.toSorted((a, b) => a.timestamp - b.timestamp);\n }\n\n private _selectRange(day: CalendarDay): void {\n // Start a new range selection\n if (this._values.length !== 1) {\n this._values = [day];\n return;\n }\n\n const rangeStart = this._rangeStart!;\n\n // Clicking the same date clears the selection\n if (rangeStart.equalTo(day)) {\n this._values = [];\n return;\n }\n\n // Build the complete range, ensuring correct order\n const [start, end] = rangeStart.greaterThan(day)\n ? [day, rangeStart]\n : [rangeStart, day];\n\n const range = Array.from(calendarRange({ start, end }));\n range.push(last(range).add('day', 1));\n\n // Filter out disabled dates\n this._values = range.filter((v) => !isDateInRanges(v, this._disabledDates));\n }\n\n private _isSelected(day: CalendarDay): boolean {\n if (isDateInRanges(day, this._disabledDates)) {\n return false;\n }\n\n switch (this.selection) {\n case 'single':\n return Boolean(this._value?.equalTo(day));\n\n case 'multiple':\n return (\n this._hasValues &&\n isDateInRanges(day, [\n { type: DateRangeType.Specific, dateRange: this.values },\n ])\n );\n\n case 'range':\n return (\n this._hasValues &&\n isDateInRanges(day, [\n {\n type: DateRangeType.Between,\n dateRange: [this._rangeStart!.native, this._rangeEnd!.native],\n },\n ])\n );\n }\n }\n\n //#endregion\n\n //#region Range helpers\n\n private _setRangePreviewDate(day?: CalendarDay): void {\n this._rangePreviewDate = day;\n this.emitEvent('igcRangePreviewDateChange', {\n detail: day ? day.native : undefined,\n });\n }\n\n private _changeRangePreview(day: CalendarDay): void {\n if (this._values.length === 1 && !first(this._values).equalTo(day)) {\n this._setRangePreviewDate(day);\n }\n }\n\n private _clearRangePreview(): void {\n if (this._rangePreviewDate) {\n this._setRangePreviewDate();\n }\n }\n\n /** Gets the effective start of the visual range, accounting for preview. */\n private _getEffectiveRangeStart(): CalendarDay | undefined {\n if (!this._rangeStart) return undefined;\n\n return this._rangePreviewDate?.lessThan(this._rangeStart)\n ? this._rangePreviewDate\n : this._rangeStart;\n }\n\n /** Gets the effective end of the visual range, accounting for preview. */\n private _getEffectiveRangeEnd(): CalendarDay | undefined {\n if (!this._rangeEnd) return undefined;\n\n return this._rangePreviewDate?.greaterThan(this._rangeEnd)\n ? this._rangePreviewDate\n : this._rangeEnd;\n }\n\n private _isFirstInRange(day: CalendarDay): boolean {\n const effectiveStart = this._getEffectiveRangeStart();\n return this._isRange && Boolean(effectiveStart?.equalTo(day));\n }\n\n private _isLastInRange(day: CalendarDay): boolean {\n const effectiveEnd = this._getEffectiveRangeEnd();\n return this._isRange && Boolean(effectiveEnd?.equalTo(day));\n }\n\n private _isRangeDate(day: CalendarDay): boolean {\n if (!this._hasValues) return false;\n\n const isSingleSelection = this._values.length === 1;\n if (isSingleSelection && !this._rangePreviewDate) return false;\n\n const max = isSingleSelection ? this._rangePreviewDate! : this._rangeEnd!;\n\n return isDateInRanges(day, [\n {\n type: DateRangeType.Between,\n dateRange: [this._rangeStart!.native, max.native],\n },\n ]);\n }\n\n private _isRangePreview(day: CalendarDay): boolean {\n if (!this._hasValues || !this._rangePreviewDate) return false;\n\n return isDateInRanges(day, [\n {\n type: DateRangeType.Between,\n dateRange: [this._rangeStart!.native, this._rangePreviewDate.native],\n },\n ]);\n }\n\n //#endregion\n\n //#region Internal methods\n\n private _intlFormatDay(day: CalendarDay): string {\n const fmt = getDateFormatter().getIntlFormatter(this.locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n });\n\n // Range selection in progress\n if (this._rangePreviewDate?.equalTo(day)) {\n return fmt.formatRange(\n first(this._values).native,\n this._rangePreviewDate.native\n );\n }\n\n // Range selection finished\n if (this._isFirstInRange(day) || this._isLastInRange(day)) {\n return fmt.formatRange(\n first(this._values).native,\n last(this._values).native\n );\n }\n\n // Default\n return fmt.format(day.native);\n }\n\n private _getDayHandlers(day: CalendarDay) {\n if (!this._isRange) {\n return { changePreview: nothing, clearPreview: nothing };\n }\n\n return {\n changePreview: this._changeRangePreview.bind(this, day),\n clearPreview: this._clearRangePreview.bind(this),\n };\n }\n\n private _getDayProperties(\n day: CalendarDay,\n today: CalendarDay\n ): DayProperties {\n const inactive = !areSameMonth(day, this._activeDate);\n const disabled = isDateInRanges(day, this._disabledDates);\n\n const hidden =\n (this.hideLeadingDays && isPreviousMonth(day, this._activeDate)) ||\n (this.hideTrailingDays && isNextMonth(day, this._activeDate));\n\n return {\n disabled: disabled || hidden,\n first: this._isFirstInRange(day),\n last: this._isLastInRange(day),\n range: this._isRange && this._isRangeDate(day),\n preview: this._isRange && this._isRangePreview(day),\n current: !inactive && day.equalTo(today),\n inactive,\n hidden,\n weekend: day.weekend,\n single: !this._isRange,\n selected: !disabled && this._isSelected(day),\n special: !inactive && isDateInRanges(day, this._specialDates),\n };\n }\n\n //#endregion\n\n //#region Public methods\n\n /** Focuses the active date. */\n public focusActiveDate(options?: FocusOptions): void {\n this._activeDay?.focus(options);\n }\n\n //#endregion\n\n protected _renderDayWithProps(\n day: CalendarDay,\n props: DayProperties\n ): TemplateResult {\n const ariaLabel = this._intlFormatDay(day);\n const { changePreview, clearPreview } = this._getDayHandlers(day);\n\n return html`\n <span part=${partMap({ date: true, ...props })}>\n <span\n role=\"gridcell\"\n part=${partMap({ 'date-inner': true, ...props })}\n aria-label=${ariaLabel}\n aria-disabled=${props.disabled}\n aria-selected=${props.selected}\n data-value=${day.timestamp}\n tabindex=${day.equalTo(this._activeDate) ? 0 : -1}\n @focus=${changePreview}\n @blur=${clearPreview}\n @pointerenter=${changePreview}\n @pointerleave=${clearPreview}\n >\n ${day.date}\n </span>\n </span>\n `;\n }\n\n protected _renderHeaderWeekNumber() {\n return html`\n <span role=\"columnheader\" part=\"label week-number first\">\n <span part=\"week-number-inner first\">\n ${this.resourceStrings.weekLabel}\n </span>\n </span>\n `;\n }\n\n protected _renderWeekNumber(start: CalendarDay, last: boolean) {\n return html`\n <span role=\"rowheader\" part=${partMap({ 'week-number': true, last })}>\n <span part=${partMap({ 'week-number-inner': true, last })}>\n ${start.week}\n </span>\n </span>\n `;\n }\n\n protected _renderHeaders() {\n const label = getDateFormatter().getIntlFormatter(this.locale, {\n weekday: this.weekDayFormat,\n });\n const aria = getDateFormatter().getIntlFormatter(this.locale, {\n weekday: 'long',\n });\n\n const weekNumber = this.showWeekNumbers\n ? this._renderHeaderWeekNumber()\n : nothing;\n\n const headers = generateMonth(this._activeDate, this._firstDayOfWeek)\n .take(DAYS_IN_WEEK)\n .map(\n (day) => html`\n <span\n role=\"columnheader\"\n part=\"label\"\n aria-label=${aria.format(day.native)}\n >\n <span part=\"label-inner\">${label.format(day.native)}</span>\n </span>\n `\n )\n .toArray();\n\n return html`\n <div role=\"row\" part=\"days-row first\">${weekNumber}${headers}</div>\n `;\n }\n\n protected *_renderWeeks(): Generator<TemplateResult> {\n const today = CalendarDay.today;\n const weeks = Array.from(chunk(this._dates, DAYS_IN_WEEK));\n const lastIndex = weeks.length - 1;\n\n // Pre-compute day properties for all dates to avoid redundant calculations\n const dayPropertiesMap = new Map<number, DayProperties>();\n\n for (const day of this._dates) {\n dayPropertiesMap.set(day.timestamp, this._getDayProperties(day, today));\n }\n\n for (const [idx, week] of weeks.entries()) {\n const isLast = idx === lastIndex;\n\n const hidden = week.every(\n (day) => dayPropertiesMap.get(day.timestamp)!.hidden\n );\n\n yield html`\n <div role=\"row\" part=\"days-row\" aria-hidden=${hidden}>\n ${this.showWeekNumbers\n ? this._renderWeekNumber(week[0], isLast)\n : nothing}\n ${week.map((day) =>\n this._renderDayWithProps(day, dayPropertiesMap.get(day.timestamp)!)\n )}\n </div>\n `;\n }\n }\n\n protected override render() {\n return html`${this._renderHeaders()}${this._renderWeeks()}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-days-view': IgcDaysViewComponent;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { asNumber, findElementFromEventPath, first, isString, last, modulo, } from '../common/util.js';
1
+ import { asNumber, first, getElementFromPath, isString, last, modulo, } from '../common/util.js';
2
2
  import { CalendarDay, DAYS_IN_WEEK, toCalendarDay, } from './model.js';
3
3
  import { DateRangeType, } from './types.js';
4
4
  export const MONTHS_PER_ROW = 3;
@@ -73,7 +73,7 @@ export function convertToDates(value) {
73
73
  return values;
74
74
  }
75
75
  export function getViewElement(event) {
76
- const element = findElementFromEventPath('[data-value]', event);
76
+ const element = getElementFromPath('[data-value]', event);
77
77
  return element ? asNumber(element.dataset.value, -1) : -1;
78
78
  }
79
79
  export function getWeekDayNumber(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/calendar/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,GACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EAEX,YAAY,EAEZ,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,aAAa,GAEd,MAAM,YAAY,CAAC;AAIpB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;CACH,CAAC;AAOX,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IAEzC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,YAAY,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAGD,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,OAAO,YAAY,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAUD,MAAM,UAAU,aAAa,CAAC,KAA4B;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAUD,MAAM,UAAU,kBAAkB,CAChC,KAAsC;IAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACpD,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;SAC/C,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAWD,MAAM,UAAU,cAAc,CAC5B,KAAyC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,MAAM,OAAO,GAAG,wBAAwB,CAAc,cAAc,EAAE,KAAK,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAe;IAC9C,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,MAAoB;IAEpB,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAoB,EACpB,MAAoB;IAEpB,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,MAAoB;IAEpB,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAUD,MAAM,SAAS,CAAC,CAAC,aAAa,CAC5B,OAA4B;IAE5B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEhE,IAAI,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,OAAO,GACX,OAAO,GAAG,KAAK,QAAQ;QACrB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;QACrC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAEzB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,UAAU;gBACf,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBACzC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,UAAU;YACf,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,cAAc,EAAE,EAAE,CAAC;QACxB,MAAM,WAAW,CAAC;QAClB,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,aAAa,CAC5B,KAAmB,EACnB,YAAoB;IAEpB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,EAAE,YAAY,CAAC,CAAC;IAC9D,KAAK,CAAC,CAAC,aAAa,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;QAChC,GAAG,EAAE,cAAc;KACpB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAqB,EACrB,KAAa;IAEb,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;IAC/C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,MAA6B;IAE7B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ;gBAC1C,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;gBAChB,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ;oBACrC,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,aAAa,CAAC,KAAK;gBACtB,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAErC,KAAK,aAAa,CAAC,MAAM;gBACvB,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAElC,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC5D,OAAO,KAAK,CAAC,SAAS,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC;YAC1D,CAAC;YAED,KAAK,aAAa,CAAC,QAAQ;gBACzB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAEhD;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,GAAgB,EAChB,GAAgB,EAChB,aAAqC;IAErC,MAAM,WAAW,GAA0B,EAAE,CAAC;IAE9C,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,aAAa,CAAC,MAAM;YAC1B,SAAS,EAAE,CAAC,GAAG,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,aAAa,CAAC,KAAK;YACzB,SAAS,EAAE,CAAC,GAAG,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3C,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,IAAU;IAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAChC,KAAW,EACX,QAAc,EACd,WAAW,GAAG,IAAI,EAClB,WAAW,GAAG,IAAI;IAElB,OAAO,YAAY,CACjB,KAAK,EACL,QAAQ,EACR,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EACf,WAAW,EACX,WAAW,CACZ,CAAC;AACJ,CAAC;AAKD,MAAM,UAAU,iBAAiB,CAC/B,KAAW,EACX,QAAc,EACd,WAAW,GAAG,IAAI,EAClB,WAAW,GAAG,IAAI;IAElB,OAAO,YAAY,CACjB,KAAK,EACL,QAAQ,EACR,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EACf,WAAW,EACX,WAAW,CACZ,CAAC;AACJ,CAAC;AAKD,SAAS,YAAY,CACnB,KAAW,EACX,QAAc,EACd,UAA6C,EAC7C,WAAoB,EACpB,WAAoB;IAEpB,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9C,CAAC","sourcesContent":["import {\n asNumber,\n findElementFromEventPath,\n first,\n isString,\n last,\n modulo,\n} from '../common/util.js';\nimport type { DateRangeValue } from '../date-range-picker/date-range-picker.js';\nimport {\n CalendarDay,\n type CalendarRangeParams,\n DAYS_IN_WEEK,\n type DayParameter,\n toCalendarDay,\n} from './model.js';\nimport {\n type DateRangeDescriptor,\n DateRangeType,\n type WeekDays,\n} from './types.js';\n\n/* Constants */\n\nexport const MONTHS_PER_ROW = 3;\nexport const YEARS_PER_ROW = 3;\nexport const YEARS_PER_PAGE = 15;\n\nconst CALENDAR_CELLS = 42; // 6 weeks × 7 days\nconst ISO_DATE_PATTERN = /^\\d{4}/;\nconst TIME_PATTERN = /^\\d{2}/;\nconst WEEK_DAYS_MAP = {\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6,\n} as const;\n\n/* Converter functions */\n\n/**\n * Type guard to check if a value is a valid Date object.\n */\nexport function isValidDate(value: unknown): value is Date {\n if (value instanceof Date) {\n return !Number.isNaN(value.getTime());\n }\n return false;\n}\n\nexport function parseISODate(string: string): Date | null {\n // ISO date format (YYYY-MM-DD)\n if (ISO_DATE_PATTERN.test(string)) {\n const timeComponent = !string.includes('T') ? 'T00:00:00' : '';\n return getValidDate(new Date(`${string}${timeComponent}`));\n }\n\n // Time format (HH:MM:SS)\n if (TIME_PATTERN.test(string)) {\n const today = first(new Date().toISOString().split('T'));\n return getValidDate(new Date(`${today}T${string}`));\n }\n\n return null;\n}\n\n/**\n * Converts the given value to a Date object.\n *\n * If the value is already a valid Date object, it is returned directly.\n * If the value is a string, it is parsed into a Date object.\n * If the value is null or undefined, null is returned.\n * If the parsing fails, null is returned.\n */\nexport function convertToDate(value?: Date | string | null): Date | null {\n if (!value) {\n return null;\n }\n\n return isString(value) ? parseISODate(value) : getValidDate(value);\n}\n\n/**\n * Converts the given value to a DateRangeValue object.\n *\n * If the value is already a valid DateRangeValue object, it is returned directly.\n * If the value is a string, it is parsed to object and returned if it fields are valid dates.\n * If the value is null or undefined, null is returned.\n * If the parsing fails, null is returned.\n */\nexport function convertToDateRange(\n value?: DateRangeValue | string | null\n): DateRangeValue | null {\n if (!value) {\n return null;\n }\n\n if (isString(value)) {\n const obj = JSON.parse(value);\n const start = convertToDate(obj.start);\n const end = convertToDate(obj.end);\n return {\n start: start ? CalendarDay.from(start).native : null,\n end: end ? CalendarDay.from(end).native : null,\n };\n }\n return value;\n}\n\n/**\n * Converts a Date object to an ISO 8601 string.\n *\n * If the `value` is a `Date` object, it is converted to an ISO 8601 string.\n * If the `value` is null or undefined, null is returned.\n */\nexport function getDateFormValue(value: Date | null): string | null {\n return value ? value.toISOString() : null;\n}\n\n/**\n * Converts a comma-separated string of ISO 8601 dates or an array of Date objects | ISO 8601 strings into\n * an array of Date objects.\n *\n * If the `value` is null or undefined, null is returned.\n * If the `value` is an array of `Date` objects, a filtered array of valid `Date` objects is returned.\n * If the `value` is a string, it is split by commas and each part is parsed into a `Date` object.\n * If the parsing fails for any date, it is skipped.\n */\nexport function convertToDates(\n value?: (Date | string)[] | string | null\n): Date[] | null {\n if (!value) {\n return null;\n }\n\n const values: Date[] = [];\n const sources = isString(value) ? value.split(',') : value;\n\n for (const source of sources) {\n const trimmed = isString(source) ? source.trim() : source;\n const date = convertToDate(trimmed);\n if (date) {\n values.push(date);\n }\n }\n\n return values;\n}\n\n/**\n * Returns the value of the selected/activated element (day/month/year) in the calendar view.\n */\nexport function getViewElement(event: Event): number {\n const element = findElementFromEventPath<HTMLElement>('[data-value]', event);\n return element ? asNumber(element.dataset.value, -1) : -1;\n}\n\nexport function getWeekDayNumber(value: WeekDays): number {\n return WEEK_DAYS_MAP[value];\n}\n\nexport function areSameMonth(\n first: DayParameter,\n second: DayParameter\n): boolean {\n const a = toCalendarDay(first);\n const b = toCalendarDay(second);\n return a.year === b.year && a.month === b.month;\n}\n\nexport function isNextMonth(\n target: DayParameter,\n origin: DayParameter\n): boolean {\n const a = toCalendarDay(target);\n const b = toCalendarDay(origin);\n return a.year === b.year ? a.month > b.month : a.year > b.year;\n}\n\nexport function isPreviousMonth(\n target: DayParameter,\n origin: DayParameter\n): boolean {\n const a = toCalendarDay(target);\n const b = toCalendarDay(origin);\n return a.year === b.year ? a.month < b.month : a.year < b.year;\n}\n\n/**\n * Returns a generator yielding day values between `start` and `end` (non-inclusive by default)\n * by a given `unit` as a step.\n * To include the end date set the `inclusive` option to true.\n *\n * @remarks\n * By default, `unit` is set to 'day'.\n */\nexport function* calendarRange(\n options: CalendarRangeParams\n): Generator<CalendarDay, void, unknown> {\n const { start, end, unit = 'day', inclusive = false } = options;\n\n let currentDate = toCalendarDay(start);\n const endDate =\n typeof end === 'number'\n ? toCalendarDay(start).add(unit, end)\n : toCalendarDay(end);\n\n const isReversed = endDate.lessThan(currentDate);\n const step = isReversed ? -1 : 1;\n\n const shouldContinue = () => {\n if (inclusive) {\n return isReversed\n ? currentDate.greaterThanOrEqual(endDate)\n : currentDate.lessThanOrEqual(endDate);\n }\n return isReversed\n ? currentDate.greaterThan(endDate)\n : currentDate.lessThan(endDate);\n };\n\n while (shouldContinue()) {\n yield currentDate;\n currentDate = currentDate.add(unit, step);\n }\n}\n\nexport function* generateMonth(\n value: DayParameter,\n firstWeekDay: number\n): Generator<CalendarDay, void, unknown> {\n const { year, month } = toCalendarDay(value);\n\n const start = new CalendarDay({ year, month });\n const offset = modulo(start.day - firstWeekDay, DAYS_IN_WEEK);\n yield* calendarRange({\n start: start.add('day', -offset),\n end: CALENDAR_CELLS,\n });\n}\n\nexport function getYearRange(\n current: DayParameter,\n range: number\n): { start: number; end: number } {\n const year = toCalendarDay(current).year;\n const start = Math.floor(year / range) * range;\n return { start, end: start + range - 1 };\n}\n\nexport function isDateInRanges(\n date: DayParameter,\n ranges: DateRangeDescriptor[]\n): boolean {\n const value = toCalendarDay(date);\n\n return ranges.some((range) => {\n if (!range.dateRange?.length) {\n return range.type === DateRangeType.Weekdays\n ? !value.weekend\n : range.type === DateRangeType.Weekends\n ? value.weekend\n : false;\n }\n\n const days = range.dateRange.map((day) => toCalendarDay(day));\n const firstDay = first(days);\n\n switch (range.type) {\n case DateRangeType.After:\n return value.greaterThan(firstDay);\n\n case DateRangeType.Before:\n return value.lessThan(firstDay);\n\n case DateRangeType.Between: {\n const lastDay = last(days);\n const min = Math.min(firstDay.timestamp, lastDay.timestamp);\n const max = Math.max(firstDay.timestamp, lastDay.timestamp);\n return value.timestamp >= min && value.timestamp <= max;\n }\n\n case DateRangeType.Specific:\n return days.some((day) => day.equalTo(value));\n\n default:\n return false;\n }\n });\n}\n\nexport function createDateConstraints(\n min: Date | null,\n max: Date | null,\n disabledDates?: DateRangeDescriptor[]\n): DateRangeDescriptor[] | undefined {\n const constraints: DateRangeDescriptor[] = [];\n\n if (min) {\n constraints.push({\n type: DateRangeType.Before,\n dateRange: [min],\n });\n }\n\n if (max) {\n constraints.push({\n type: DateRangeType.After,\n dateRange: [max],\n });\n }\n\n constraints.push(...(disabledDates ?? []));\n\n return constraints.length > 0 ? constraints : undefined;\n}\n\nfunction getValidDate(date: Date): Date | null {\n return Number.isNaN(date.valueOf()) ? null : date;\n}\n\n/**\n * Checks if a date is greater than a maximum date value.\n */\nexport function isDateExceedingMax(\n value: Date,\n maxValue: Date,\n includeTime = true,\n includeDate = true\n): boolean {\n return compareDates(\n value,\n maxValue,\n (a, b) => a > b,\n includeTime,\n includeDate\n );\n}\n\n/**\n * Checks if a date is less than a minimum date value.\n */\nexport function isDateLessThanMin(\n value: Date,\n minValue: Date,\n includeTime = true,\n includeDate = true\n): boolean {\n return compareDates(\n value,\n minValue,\n (a, b) => a < b,\n includeTime,\n includeDate\n );\n}\n\n/**\n * Compares two dates with optional time/date exclusions.\n */\nfunction compareDates(\n value: Date,\n boundary: Date,\n comparator: (a: number, b: number) => boolean,\n includeTime: boolean,\n includeDate: boolean\n): boolean {\n if (includeTime && includeDate) {\n return comparator(value.getTime(), boundary.getTime());\n }\n\n const v = new Date(value.getTime());\n const b = new Date(boundary.getTime());\n\n if (!includeTime) {\n v.setHours(0, 0, 0, 0);\n b.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n v.setFullYear(0, 0, 0);\n b.setFullYear(0, 0, 0);\n }\n\n return comparator(v.getTime(), b.getTime());\n}\n"]}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/components/calendar/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n asNumber,\n first,\n getElementFromPath,\n isString,\n last,\n modulo,\n} from '../common/util.js';\nimport type { DateRangeValue } from '../date-range-picker/date-range-picker.js';\nimport {\n CalendarDay,\n type CalendarRangeParams,\n DAYS_IN_WEEK,\n type DayParameter,\n toCalendarDay,\n} from './model.js';\nimport {\n type DateRangeDescriptor,\n DateRangeType,\n type WeekDays,\n} from './types.js';\n\n/* Constants */\n\nexport const MONTHS_PER_ROW = 3;\nexport const YEARS_PER_ROW = 3;\nexport const YEARS_PER_PAGE = 15;\n\nconst CALENDAR_CELLS = 42; // 6 weeks × 7 days\nconst ISO_DATE_PATTERN = /^\\d{4}/;\nconst TIME_PATTERN = /^\\d{2}/;\nconst WEEK_DAYS_MAP = {\n sunday: 0,\n monday: 1,\n tuesday: 2,\n wednesday: 3,\n thursday: 4,\n friday: 5,\n saturday: 6,\n} as const;\n\n/* Converter functions */\n\n/**\n * Type guard to check if a value is a valid Date object.\n */\nexport function isValidDate(value: unknown): value is Date {\n if (value instanceof Date) {\n return !Number.isNaN(value.getTime());\n }\n return false;\n}\n\nexport function parseISODate(string: string): Date | null {\n // ISO date format (YYYY-MM-DD)\n if (ISO_DATE_PATTERN.test(string)) {\n const timeComponent = !string.includes('T') ? 'T00:00:00' : '';\n return getValidDate(new Date(`${string}${timeComponent}`));\n }\n\n // Time format (HH:MM:SS)\n if (TIME_PATTERN.test(string)) {\n const today = first(new Date().toISOString().split('T'));\n return getValidDate(new Date(`${today}T${string}`));\n }\n\n return null;\n}\n\n/**\n * Converts the given value to a Date object.\n *\n * If the value is already a valid Date object, it is returned directly.\n * If the value is a string, it is parsed into a Date object.\n * If the value is null or undefined, null is returned.\n * If the parsing fails, null is returned.\n */\nexport function convertToDate(value?: Date | string | null): Date | null {\n if (!value) {\n return null;\n }\n\n return isString(value) ? parseISODate(value) : getValidDate(value);\n}\n\n/**\n * Converts the given value to a DateRangeValue object.\n *\n * If the value is already a valid DateRangeValue object, it is returned directly.\n * If the value is a string, it is parsed to object and returned if it fields are valid dates.\n * If the value is null or undefined, null is returned.\n * If the parsing fails, null is returned.\n */\nexport function convertToDateRange(\n value?: DateRangeValue | string | null\n): DateRangeValue | null {\n if (!value) {\n return null;\n }\n\n if (isString(value)) {\n const obj = JSON.parse(value);\n const start = convertToDate(obj.start);\n const end = convertToDate(obj.end);\n return {\n start: start ? CalendarDay.from(start).native : null,\n end: end ? CalendarDay.from(end).native : null,\n };\n }\n return value;\n}\n\n/**\n * Converts a Date object to an ISO 8601 string.\n *\n * If the `value` is a `Date` object, it is converted to an ISO 8601 string.\n * If the `value` is null or undefined, null is returned.\n */\nexport function getDateFormValue(value: Date | null): string | null {\n return value ? value.toISOString() : null;\n}\n\n/**\n * Converts a comma-separated string of ISO 8601 dates or an array of Date objects | ISO 8601 strings into\n * an array of Date objects.\n *\n * If the `value` is null or undefined, null is returned.\n * If the `value` is an array of `Date` objects, a filtered array of valid `Date` objects is returned.\n * If the `value` is a string, it is split by commas and each part is parsed into a `Date` object.\n * If the parsing fails for any date, it is skipped.\n */\nexport function convertToDates(\n value?: (Date | string)[] | string | null\n): Date[] | null {\n if (!value) {\n return null;\n }\n\n const values: Date[] = [];\n const sources = isString(value) ? value.split(',') : value;\n\n for (const source of sources) {\n const trimmed = isString(source) ? source.trim() : source;\n const date = convertToDate(trimmed);\n if (date) {\n values.push(date);\n }\n }\n\n return values;\n}\n\n/**\n * Returns the value of the selected/activated element (day/month/year) in the calendar view.\n */\nexport function getViewElement(event: Event): number {\n const element = getElementFromPath<HTMLElement>('[data-value]', event);\n return element ? asNumber(element.dataset.value, -1) : -1;\n}\n\nexport function getWeekDayNumber(value: WeekDays): number {\n return WEEK_DAYS_MAP[value];\n}\n\nexport function areSameMonth(\n first: DayParameter,\n second: DayParameter\n): boolean {\n const a = toCalendarDay(first);\n const b = toCalendarDay(second);\n return a.year === b.year && a.month === b.month;\n}\n\nexport function isNextMonth(\n target: DayParameter,\n origin: DayParameter\n): boolean {\n const a = toCalendarDay(target);\n const b = toCalendarDay(origin);\n return a.year === b.year ? a.month > b.month : a.year > b.year;\n}\n\nexport function isPreviousMonth(\n target: DayParameter,\n origin: DayParameter\n): boolean {\n const a = toCalendarDay(target);\n const b = toCalendarDay(origin);\n return a.year === b.year ? a.month < b.month : a.year < b.year;\n}\n\n/**\n * Returns a generator yielding day values between `start` and `end` (non-inclusive by default)\n * by a given `unit` as a step.\n * To include the end date set the `inclusive` option to true.\n *\n * @remarks\n * By default, `unit` is set to 'day'.\n */\nexport function* calendarRange(\n options: CalendarRangeParams\n): Generator<CalendarDay, void, unknown> {\n const { start, end, unit = 'day', inclusive = false } = options;\n\n let currentDate = toCalendarDay(start);\n const endDate =\n typeof end === 'number'\n ? toCalendarDay(start).add(unit, end)\n : toCalendarDay(end);\n\n const isReversed = endDate.lessThan(currentDate);\n const step = isReversed ? -1 : 1;\n\n const shouldContinue = () => {\n if (inclusive) {\n return isReversed\n ? currentDate.greaterThanOrEqual(endDate)\n : currentDate.lessThanOrEqual(endDate);\n }\n return isReversed\n ? currentDate.greaterThan(endDate)\n : currentDate.lessThan(endDate);\n };\n\n while (shouldContinue()) {\n yield currentDate;\n currentDate = currentDate.add(unit, step);\n }\n}\n\nexport function* generateMonth(\n value: DayParameter,\n firstWeekDay: number\n): Generator<CalendarDay, void, unknown> {\n const { year, month } = toCalendarDay(value);\n\n const start = new CalendarDay({ year, month });\n const offset = modulo(start.day - firstWeekDay, DAYS_IN_WEEK);\n yield* calendarRange({\n start: start.add('day', -offset),\n end: CALENDAR_CELLS,\n });\n}\n\nexport function getYearRange(\n current: DayParameter,\n range: number\n): { start: number; end: number } {\n const year = toCalendarDay(current).year;\n const start = Math.floor(year / range) * range;\n return { start, end: start + range - 1 };\n}\n\nexport function isDateInRanges(\n date: DayParameter,\n ranges: DateRangeDescriptor[]\n): boolean {\n const value = toCalendarDay(date);\n\n return ranges.some((range) => {\n if (!range.dateRange?.length) {\n return range.type === DateRangeType.Weekdays\n ? !value.weekend\n : range.type === DateRangeType.Weekends\n ? value.weekend\n : false;\n }\n\n const days = range.dateRange.map((day) => toCalendarDay(day));\n const firstDay = first(days);\n\n switch (range.type) {\n case DateRangeType.After:\n return value.greaterThan(firstDay);\n\n case DateRangeType.Before:\n return value.lessThan(firstDay);\n\n case DateRangeType.Between: {\n const lastDay = last(days);\n const min = Math.min(firstDay.timestamp, lastDay.timestamp);\n const max = Math.max(firstDay.timestamp, lastDay.timestamp);\n return value.timestamp >= min && value.timestamp <= max;\n }\n\n case DateRangeType.Specific:\n return days.some((day) => day.equalTo(value));\n\n default:\n return false;\n }\n });\n}\n\nexport function createDateConstraints(\n min: Date | null,\n max: Date | null,\n disabledDates?: DateRangeDescriptor[]\n): DateRangeDescriptor[] | undefined {\n const constraints: DateRangeDescriptor[] = [];\n\n if (min) {\n constraints.push({\n type: DateRangeType.Before,\n dateRange: [min],\n });\n }\n\n if (max) {\n constraints.push({\n type: DateRangeType.After,\n dateRange: [max],\n });\n }\n\n constraints.push(...(disabledDates ?? []));\n\n return constraints.length > 0 ? constraints : undefined;\n}\n\nfunction getValidDate(date: Date): Date | null {\n return Number.isNaN(date.valueOf()) ? null : date;\n}\n\n/**\n * Checks if a date is greater than a maximum date value.\n */\nexport function isDateExceedingMax(\n value: Date,\n maxValue: Date,\n includeTime = true,\n includeDate = true\n): boolean {\n return compareDates(\n value,\n maxValue,\n (a, b) => a > b,\n includeTime,\n includeDate\n );\n}\n\n/**\n * Checks if a date is less than a minimum date value.\n */\nexport function isDateLessThanMin(\n value: Date,\n minValue: Date,\n includeTime = true,\n includeDate = true\n): boolean {\n return compareDates(\n value,\n minValue,\n (a, b) => a < b,\n includeTime,\n includeDate\n );\n}\n\n/**\n * Compares two dates with optional time/date exclusions.\n */\nfunction compareDates(\n value: Date,\n boundary: Date,\n comparator: (a: number, b: number) => boolean,\n includeTime: boolean,\n includeDate: boolean\n): boolean {\n if (includeTime && includeDate) {\n return comparator(value.getTime(), boundary.getTime());\n }\n\n const v = new Date(value.getTime());\n const b = new Date(boundary.getTime());\n\n if (!includeTime) {\n v.setHours(0, 0, 0, 0);\n b.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n v.setFullYear(0, 0, 0);\n b.setFullYear(0, 0, 0);\n }\n\n return comparator(v.getTime(), b.getTime());\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host{--content-background: var(--ig-calendar-content-background, var(--ig-gray-900-contrast));--border-color: var(--ig-calendar-border-color, var(--ig-gray-100));--border-radius: var(--ig-calendar-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.375rem), 0.375rem));--picker-background: var(--ig-calendar-picker-background, var(--ig-gray-900-contrast));--picker-hover-foreground: var(--ig-calendar-picker-hover-foreground, var(--ig-primary-300));--picker-focus-foreground: var(--ig-calendar-picker-focus-foreground, var(--ig-primary-300));--navigation-color: var(--ig-calendar-navigation-color, var(--ig-gray-600));--navigation-hover-color: var(--ig-calendar-navigation-hover-color, var(--ig-primary-300));--navigation-focus-color: var(--ig-calendar-navigation-focus-color, var(--ig-primary-300));--inner-size: var(--ig-calendar-inner-size, max(var(--is-large, 1) * max(2rem, -1 * 2rem), var(--is-medium, 1) * max(1.75rem, -1 * 1.75rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--week-number-background: var(--ig-calendar-week-number-background, hsl(from var(--ig-gray-50-contrast) h s l/0.05));--date-hover-foreground: var(--ig-calendar-date-hover-foreground, var(--ig-gray-50-contrast));--date-focus-foreground: var(--ig-calendar-date-focus-foreground, var(--ig-gray-50-contrast));--date-selected-range-hover-foreground: var(--ig-calendar-date-selected-range-hover-foreground, var(--ig-gray-50-contrast));--date-selected-range-focus-foreground: var(--ig-calendar-date-selected-range-focus-foreground, var(--ig-gray-50-contrast));--date-selected-current-range-hover-foreground: var(--ig-calendar-date-selected-current-range-hover-foreground, var(--ig-gray-50-contrast));--date-selected-current-range-focus-foreground: var(--ig-calendar-date-selected-current-range-focus-foreground, var(--ig-gray-50-contrast));--date-current-background: var(--ig-calendar-date-current-background, hsl(from var(--ig-primary-700) h s l/0.5));--date-current-hover-foreground: var(--ig-calendar-date-current-hover-foreground, var(--ig-gray-50-contrast));--date-current-focus-foreground: var(--ig-calendar-date-current-focus-foreground, var(--ig-gray-50-contrast));--date-current-focus-background: var(--ig-calendar-date-current-focus-background, var(--ig-primary-700));--date-disabled-foreground: var(--ig-calendar-date-disabled-foreground, hsl(from var(--ig-gray-400) h s l/0.38));--date-disabled-range-foreground: var(--ig-calendar-date-disabled-range-foreground, hsl(from var(--ig-gray-400) h s l/0.38));--ym-current-outline-hover-color: var(--ig-calendar-ym-current-outline-hover-color, var(--ig-primary-200));--ym-current-outline-focus-color: var(--ig-calendar-ym-current-outline-focus-color, var(--ig-primary-200));--picker-foreground: var(--ig-calendar-picker-foreground, var(--ig-gray-700));--header-foreground: var(--ig-calendar-header-foreground, var(--ig-gray-50-contrast));--header-background: var(--ig-calendar-header-background, var(--ig-gray-50));--actions-divider-color: var(--ig-calendar-actions-divider-color, var(--ig-gray-100));--date-current-border-radius: var(--ig-calendar-date-current-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.25rem), 1.25rem));--date-special-border-radius: var(--ig-calendar-date-special-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.25rem), 1.25rem));--week-number-border-radius: var(--ig-calendar-week-number-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.25rem), 0.25rem));--date-hover-background: var(--ig-calendar-date-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-focus-background: var(--ig-calendar-date-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-current-foreground: var(--ig-calendar-date-current-foreground, var(--ig-gray-900));--date-current-hover-background: var(--ig-calendar-date-current-hover-background, var(--ig-primary-700));--date-current-border-color: var(--ig-calendar-date-current-border-color, var(--ig-primary-300));--date-current-hover-border-color: var(--ig-calendar-date-current-hover-border-color, var(--ig-primary-200));--date-current-focus-border-color: var(--ig-calendar-date-current-focus-border-color, var(--ig-primary-200));--date-special-foreground: var(--ig-calendar-date-special-foreground, var(--ig-primary-100));--date-special-range-foreground: var(--ig-calendar-date-special-range-foreground, var(--ig-primary-100));--date-special-range-hover-foreground: var(--ig-calendar-date-special-range-hover-foreground, var(--ig-primary-50));--date-special-range-focus-foreground: var(--ig-calendar-date-special-range-focus-foreground, var(--ig-primary-50));--date-special-hover-foreground: var(--ig-calendar-date-special-hover-foreground, var(--ig-primary-50));--date-special-hover-background: var(--ig-calendar-date-special-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-focus-foreground: var(--ig-calendar-date-special-focus-foreground, var(--ig-primary-50));--date-special-focus-background: var(--ig-calendar-date-special-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-range-hover-background: var(--ig-calendar-date-special-range-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-range-focus-background: var(--ig-calendar-date-special-range-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-border-color: var(--ig-calendar-date-special-border-color, var(--ig-primary-100));--date-special-hover-border-color: var(--ig-calendar-date-special-hover-border-color, var(--ig-primary-50));--date-special-focus-border-color: var(--ig-calendar-date-special-focus-border-color, var(--ig-primary-50));--date-special-range-border-color: var(--ig-calendar-date-special-range-border-color, var(--ig-primary-100));--date-special-range-hover-border-color: var(--ig-calendar-date-special-range-hover-border-color, var(--ig-primary-100));--date-special-range-focus-border-color: var(--ig-calendar-date-special-range-focus-border-color, var(--ig-primary-100));--date-selected-foreground: var(--ig-calendar-date-selected-foreground, var(--ig-primary-500-contrast));--date-selected-background: var(--ig-calendar-date-selected-background, var(--ig-primary-500));--date-selected-hover-foreground: var(--ig-calendar-date-selected-hover-foreground, var(--ig-primary-900-contrast));--date-selected-hover-background: var(--ig-calendar-date-selected-hover-background, var(--ig-primary-400));--date-selected-focus-foreground: var(--ig-calendar-date-selected-focus-foreground, var(--ig-primary-900-contrast));--date-selected-focus-background: var(--ig-calendar-date-selected-focus-background, var(--ig-primary-400));--date-selected-special-foreground: var(--ig-calendar-date-selected-special-foreground, var(--ig-primary-500-contrast));--date-selected-special-background: var(--ig-calendar-date-selected-special-background, var(--ig-primary-500));--date-selected-special-hover-foreground: var(--ig-calendar-date-selected-special-hover-foreground, var(--ig-primary-900-contrast));--date-selected-special-hover-background: var(--ig-calendar-date-selected-special-hover-background, var(--ig-primary-400));--date-selected-special-focus-foreground: var(--ig-calendar-date-selected-special-focus-foreground, var(--ig-primary-900-contrast));--date-selected-special-focus-background: var(--ig-calendar-date-selected-special-focus-background, var(--ig-primary-400));--date-selected-current-foreground: var(--ig-calendar-date-selected-current-foreground, var(--ig-primary-500-contrast));--date-selected-current-background: var(--ig-calendar-date-selected-current-background, var(--ig-primary-500));--date-selected-current-hover-foreground: var(--ig-calendar-date-selected-current-hover-foreground, var(--ig-primary-900-contrast));--date-selected-current-hover-background: var(--ig-calendar-date-selected-current-hover-background, var(--ig-primary-400));--date-selected-current-focus-foreground: var(--ig-calendar-date-selected-current-focus-foreground, var(--ig-primary-900-contrast));--date-selected-current-focus-background: var(--ig-calendar-date-selected-current-focus-background, var(--ig-primary-400));--date-selected-current-border-color: var(--ig-calendar-date-selected-current-border-color, var(--ig-primary-300));--date-selected-current-hover-border-color: var(--ig-calendar-date-selected-current-hover-border-color, var(--ig-primary-200));--date-selected-current-focus-border-color: var(--ig-calendar-date-selected-current-focus-border-color, var(--ig-primary-200));--date-selected-special-border-color: var(--ig-calendar-date-selected-special-border-color, hsl(from var(--ig-primary-900-contrast) h s l/0.8));--date-selected-special-hover-border-color: var(--ig-calendar-date-selected-special-hover-border-color, hsl(from var(--ig-primary-900-contrast) h s l/0.8));--date-selected-special-focus-border-color: var(--ig-calendar-date-selected-special-focus-border-color, hsl(from var(--ig-primary-900-contrast) h s l/0.8));--date-selected-range-foreground: var(--ig-calendar-date-selected-range-foreground, var(--ig-gray-900));--date-selected-range-background: var(--ig-calendar-date-selected-range-background, hsl(from var(--ig-primary-400) h s l/0.2));--date-selected-range-hover-background: var(--ig-calendar-date-selected-range-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-selected-range-focus-background: var(--ig-calendar-date-selected-range-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-selected-current-range-background: var(--ig-calendar-date-selected-current-range-background, hsl(from var(--ig-primary-700) h s l/0.5));--date-selected-current-range-hover-background: var(--ig-calendar-date-selected-current-range-hover-background, var(--ig-primary-700));--date-selected-current-range-focus-background: var(--ig-calendar-date-selected-current-range-focus-background, var(--ig-primary-700));--ym-selected-current-hover-foreground: var(--ig-calendar-ym-selected-current-hover-foreground, var(--ig-primary-900-contrast));--ym-selected-current-hover-background: var(--ig-calendar-ym-selected-current-hover-background, var(--ig-primary-400));--ym-hover-foreground: var(--ig-calendar-ym-hover-foreground, var(--ig-gray-900));--ym-hover-background: var(--ig-calendar-ym-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--ym-current-foreground: var(--ig-calendar-ym-current-foreground, var(--ig-gray-900));--ym-current-background: var(--ig-calendar-ym-current-background, hsl(from var(--ig-primary-700) h s l/0.5));--ym-current-hover-foreground: var(--ig-calendar-ym-current-hover-foreground, var(--ig-gray-900));--ym-current-hover-background: var(--ig-calendar-ym-current-hover-background, var(--ig-primary-700));--ym-selected-foreground: var(--ig-calendar-ym-selected-foreground, var(--ig-primary-500-contrast));--ym-selected-background: var(--ig-calendar-ym-selected-background, var(--ig-primary-500));--ym-selected-hover-foreground: var(--ig-calendar-ym-selected-hover-foreground, var(--ig-primary-900-contrast));--ym-selected-hover-background: var(--ig-calendar-ym-selected-hover-background, var(--ig-primary-400));--ym-selected-current-foreground: var(--ig-calendar-ym-selected-current-foreground, var(--ig-primary-500-contrast));--ym-selected-current-background: var(--ig-calendar-ym-selected-current-background, var(--ig-primary-500));--ym-current-outline-color: var(--ig-calendar-ym-current-outline-color, var(--ig-primary-300));--ym-selected-current-outline-color: var(--ig-calendar-ym-selected-current-outline-color, var(--ig-primary-300));--ym-selected-current-outline-hover-color: var(--ig-calendar-ym-selected-current-outline-hover-color, var(--ig-primary-200));--ym-selected-current-outline-focus-color: var(--ig-calendar-ym-selected-current-outline-focus-color, var(--ig-primary-200));--ig-theme: indigo;--ig-theme-variant: dark}`;
2
+ export const styles = css `:host{--content-background: var(--ig-calendar-content-background, var(--ig-gray-50));--border-color: var(--ig-calendar-border-color, var(--ig-gray-100));--border-radius: var(--ig-calendar-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.375rem), 0.375rem));--picker-background: var(--ig-calendar-picker-background, var(--ig-gray-50));--picker-hover-foreground: var(--ig-calendar-picker-hover-foreground, var(--ig-primary-300));--picker-focus-foreground: var(--ig-calendar-picker-focus-foreground, var(--ig-primary-300));--navigation-color: var(--ig-calendar-navigation-color, var(--ig-gray-600));--navigation-hover-color: var(--ig-calendar-navigation-hover-color, var(--ig-primary-300));--navigation-focus-color: var(--ig-calendar-navigation-focus-color, var(--ig-primary-300));--inner-size: var(--ig-calendar-inner-size, max(var(--is-large, 1) * max(2rem, -1 * 2rem), var(--is-medium, 1) * max(1.75rem, -1 * 1.75rem), var(--is-small, 1) * max(1.5rem, -1 * 1.5rem)));--week-number-background: var(--ig-calendar-week-number-background, hsl(from var(--ig-gray-50-contrast) h s l/0.05));--date-hover-foreground: var(--ig-calendar-date-hover-foreground, var(--ig-gray-50-contrast));--date-focus-foreground: var(--ig-calendar-date-focus-foreground, var(--ig-gray-50-contrast));--date-selected-range-hover-foreground: var(--ig-calendar-date-selected-range-hover-foreground, var(--ig-gray-50-contrast));--date-selected-range-focus-foreground: var(--ig-calendar-date-selected-range-focus-foreground, var(--ig-gray-50-contrast));--date-selected-current-range-hover-foreground: var(--ig-calendar-date-selected-current-range-hover-foreground, var(--ig-gray-50-contrast));--date-selected-current-range-focus-foreground: var(--ig-calendar-date-selected-current-range-focus-foreground, var(--ig-gray-50-contrast));--date-current-background: var(--ig-calendar-date-current-background, hsl(from var(--ig-primary-700) h s l/0.5));--date-current-hover-foreground: var(--ig-calendar-date-current-hover-foreground, var(--ig-gray-50-contrast));--date-current-focus-foreground: var(--ig-calendar-date-current-focus-foreground, var(--ig-gray-50-contrast));--date-current-focus-background: var(--ig-calendar-date-current-focus-background, var(--ig-primary-700));--date-disabled-foreground: var(--ig-calendar-date-disabled-foreground, hsl(from var(--ig-gray-400) h s l/0.38));--date-disabled-range-foreground: var(--ig-calendar-date-disabled-range-foreground, hsl(from var(--ig-gray-400) h s l/0.38));--ym-current-outline-hover-color: var(--ig-calendar-ym-current-outline-hover-color, var(--ig-primary-200));--ym-current-outline-focus-color: var(--ig-calendar-ym-current-outline-focus-color, var(--ig-primary-200));--picker-foreground: var(--ig-calendar-picker-foreground, var(--ig-gray-700));--header-foreground: var(--ig-calendar-header-foreground, var(--ig-gray-50-contrast));--header-background: var(--ig-calendar-header-background, var(--ig-gray-50));--actions-divider-color: var(--ig-calendar-actions-divider-color, var(--ig-gray-100));--date-current-border-radius: var(--ig-calendar-date-current-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.25rem), 1.25rem));--date-special-border-radius: var(--ig-calendar-date-special-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 1.25rem), 1.25rem));--week-number-border-radius: var(--ig-calendar-week-number-border-radius, clamp(0rem, calc(var(--ig-radius-factor, 1) * 0.25rem), 0.25rem));--date-hover-background: var(--ig-calendar-date-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-focus-background: var(--ig-calendar-date-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-current-foreground: var(--ig-calendar-date-current-foreground, var(--ig-gray-900));--date-current-hover-background: var(--ig-calendar-date-current-hover-background, var(--ig-primary-700));--date-current-border-color: var(--ig-calendar-date-current-border-color, var(--ig-primary-300));--date-current-hover-border-color: var(--ig-calendar-date-current-hover-border-color, var(--ig-primary-200));--date-current-focus-border-color: var(--ig-calendar-date-current-focus-border-color, var(--ig-primary-200));--date-special-foreground: var(--ig-calendar-date-special-foreground, var(--ig-primary-100));--date-special-range-foreground: var(--ig-calendar-date-special-range-foreground, var(--ig-primary-100));--date-special-range-hover-foreground: var(--ig-calendar-date-special-range-hover-foreground, var(--ig-primary-50));--date-special-range-focus-foreground: var(--ig-calendar-date-special-range-focus-foreground, var(--ig-primary-50));--date-special-hover-foreground: var(--ig-calendar-date-special-hover-foreground, var(--ig-primary-50));--date-special-hover-background: var(--ig-calendar-date-special-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-focus-foreground: var(--ig-calendar-date-special-focus-foreground, var(--ig-primary-50));--date-special-focus-background: var(--ig-calendar-date-special-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-range-hover-background: var(--ig-calendar-date-special-range-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-range-focus-background: var(--ig-calendar-date-special-range-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-special-border-color: var(--ig-calendar-date-special-border-color, var(--ig-primary-100));--date-special-hover-border-color: var(--ig-calendar-date-special-hover-border-color, var(--ig-primary-50));--date-special-focus-border-color: var(--ig-calendar-date-special-focus-border-color, var(--ig-primary-50));--date-special-range-border-color: var(--ig-calendar-date-special-range-border-color, var(--ig-primary-100));--date-special-range-hover-border-color: var(--ig-calendar-date-special-range-hover-border-color, var(--ig-primary-100));--date-special-range-focus-border-color: var(--ig-calendar-date-special-range-focus-border-color, var(--ig-primary-100));--date-selected-foreground: var(--ig-calendar-date-selected-foreground, var(--ig-primary-500-contrast));--date-selected-background: var(--ig-calendar-date-selected-background, var(--ig-primary-500));--date-selected-hover-foreground: var(--ig-calendar-date-selected-hover-foreground, var(--ig-primary-900-contrast));--date-selected-hover-background: var(--ig-calendar-date-selected-hover-background, var(--ig-primary-400));--date-selected-focus-foreground: var(--ig-calendar-date-selected-focus-foreground, var(--ig-primary-900-contrast));--date-selected-focus-background: var(--ig-calendar-date-selected-focus-background, var(--ig-primary-400));--date-selected-special-foreground: var(--ig-calendar-date-selected-special-foreground, var(--ig-primary-500-contrast));--date-selected-special-background: var(--ig-calendar-date-selected-special-background, var(--ig-primary-500));--date-selected-special-hover-foreground: var(--ig-calendar-date-selected-special-hover-foreground, var(--ig-primary-900-contrast));--date-selected-special-hover-background: var(--ig-calendar-date-selected-special-hover-background, var(--ig-primary-400));--date-selected-special-focus-foreground: var(--ig-calendar-date-selected-special-focus-foreground, var(--ig-primary-900-contrast));--date-selected-special-focus-background: var(--ig-calendar-date-selected-special-focus-background, var(--ig-primary-400));--date-selected-current-foreground: var(--ig-calendar-date-selected-current-foreground, var(--ig-primary-500-contrast));--date-selected-current-background: var(--ig-calendar-date-selected-current-background, var(--ig-primary-500));--date-selected-current-hover-foreground: var(--ig-calendar-date-selected-current-hover-foreground, var(--ig-primary-900-contrast));--date-selected-current-hover-background: var(--ig-calendar-date-selected-current-hover-background, var(--ig-primary-400));--date-selected-current-focus-foreground: var(--ig-calendar-date-selected-current-focus-foreground, var(--ig-primary-900-contrast));--date-selected-current-focus-background: var(--ig-calendar-date-selected-current-focus-background, var(--ig-primary-400));--date-selected-current-border-color: var(--ig-calendar-date-selected-current-border-color, var(--ig-primary-300));--date-selected-current-hover-border-color: var(--ig-calendar-date-selected-current-hover-border-color, var(--ig-primary-200));--date-selected-current-focus-border-color: var(--ig-calendar-date-selected-current-focus-border-color, var(--ig-primary-200));--date-selected-special-border-color: var(--ig-calendar-date-selected-special-border-color, hsl(from var(--ig-primary-900-contrast) h s l/0.8));--date-selected-special-hover-border-color: var(--ig-calendar-date-selected-special-hover-border-color, hsl(from var(--ig-primary-900-contrast) h s l/0.8));--date-selected-special-focus-border-color: var(--ig-calendar-date-selected-special-focus-border-color, hsl(from var(--ig-primary-900-contrast) h s l/0.8));--date-selected-range-foreground: var(--ig-calendar-date-selected-range-foreground, var(--ig-gray-900));--date-selected-range-background: var(--ig-calendar-date-selected-range-background, hsl(from var(--ig-primary-400) h s l/0.2));--date-selected-range-hover-background: var(--ig-calendar-date-selected-range-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-selected-range-focus-background: var(--ig-calendar-date-selected-range-focus-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--date-selected-current-range-background: var(--ig-calendar-date-selected-current-range-background, hsl(from var(--ig-primary-700) h s l/0.5));--date-selected-current-range-hover-background: var(--ig-calendar-date-selected-current-range-hover-background, var(--ig-primary-700));--date-selected-current-range-focus-background: var(--ig-calendar-date-selected-current-range-focus-background, var(--ig-primary-700));--ym-selected-current-hover-foreground: var(--ig-calendar-ym-selected-current-hover-foreground, var(--ig-primary-900-contrast));--ym-selected-current-hover-background: var(--ig-calendar-ym-selected-current-hover-background, var(--ig-primary-400));--ym-hover-foreground: var(--ig-calendar-ym-hover-foreground, var(--ig-gray-900));--ym-hover-background: var(--ig-calendar-ym-hover-background, hsl(from var(--ig-gray-50-contrast) h s l/0.1));--ym-current-foreground: var(--ig-calendar-ym-current-foreground, var(--ig-gray-900));--ym-current-background: var(--ig-calendar-ym-current-background, hsl(from var(--ig-primary-700) h s l/0.5));--ym-current-hover-foreground: var(--ig-calendar-ym-current-hover-foreground, var(--ig-gray-900));--ym-current-hover-background: var(--ig-calendar-ym-current-hover-background, var(--ig-primary-700));--ym-selected-foreground: var(--ig-calendar-ym-selected-foreground, var(--ig-primary-500-contrast));--ym-selected-background: var(--ig-calendar-ym-selected-background, var(--ig-primary-500));--ym-selected-hover-foreground: var(--ig-calendar-ym-selected-hover-foreground, var(--ig-primary-900-contrast));--ym-selected-hover-background: var(--ig-calendar-ym-selected-hover-background, var(--ig-primary-400));--ym-selected-current-foreground: var(--ig-calendar-ym-selected-current-foreground, var(--ig-primary-500-contrast));--ym-selected-current-background: var(--ig-calendar-ym-selected-current-background, var(--ig-primary-500));--ym-current-outline-color: var(--ig-calendar-ym-current-outline-color, var(--ig-primary-300));--ym-selected-current-outline-color: var(--ig-calendar-ym-selected-current-outline-color, var(--ig-primary-300));--ym-selected-current-outline-hover-color: var(--ig-calendar-ym-selected-current-outline-hover-color, var(--ig-primary-200));--ym-selected-current-outline-focus-color: var(--ig-calendar-ym-selected-current-outline-focus-color, var(--ig-primary-200));--ig-theme: indigo;--ig-theme-variant: dark}`;
3
3
  //# sourceMappingURL=calendar.indigo.css.js.map