@globalpayments/vega 2.16.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/cjs/{app-globals-5e074c5e.js → app-globals-4e0416c1.js} +2 -2
  2. package/dist/cjs/{childNodesEventPreventSlimmer-7e1895d7.js → childNodesEventPreventSlimmer-6848c3cf.js} +1 -1
  3. package/dist/cjs/{eventEmitSlimmer-ea57144a.js → eventEmitSlimmer-1d70a720.js} +1 -1
  4. package/dist/cjs/{formFieldControllerSlimmer-9271a8b8.js → formFieldControllerSlimmer-8b54f14d.js} +1 -1
  5. package/dist/cjs/index.cjs.js +3 -3
  6. package/dist/cjs/{internalVegaEventManager-543c20cb.js → internalVegaEventManager-743a124d.js} +2 -2
  7. package/dist/cjs/loader.cjs.js +5 -5
  8. package/dist/cjs/{subStateObserverSlimmer-48ad20a1.js → subStateObserverSlimmer-60e4d6da.js} +28 -14
  9. package/dist/cjs/vega-accordion.cjs.entry.js +4 -4
  10. package/dist/cjs/vega-app-header-button.cjs.entry.js +4 -4
  11. package/dist/cjs/vega-banner.cjs.entry.js +3 -3
  12. package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
  13. package/dist/cjs/vega-button-circle.cjs.entry.js +4 -4
  14. package/dist/cjs/vega-button-group_2.cjs.entry.js +6 -6
  15. package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
  16. package/dist/cjs/vega-button.cjs.entry.js +57 -12
  17. package/dist/cjs/vega-calendar_2.cjs.entry.js +830 -90
  18. package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
  19. package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
  20. package/dist/cjs/vega-chip.cjs.entry.js +4 -4
  21. package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
  22. package/dist/cjs/vega-combo-box.cjs.entry.js +6 -6
  23. package/dist/cjs/vega-date-picker_2.cjs.entry.js +6 -6
  24. package/dist/cjs/vega-dialog_2.cjs.entry.js +4 -4
  25. package/dist/cjs/vega-dropdown_5.cjs.entry.js +308 -183
  26. package/dist/cjs/vega-field-label.cjs.entry.js +4 -4
  27. package/dist/cjs/vega-form.cjs.entry.js +6 -6
  28. package/dist/cjs/vega-image-uploader.cjs.entry.js +6 -6
  29. package/dist/cjs/vega-input-credit-card.cjs.entry.js +6 -6
  30. package/dist/cjs/vega-input-range.cjs.entry.js +6 -6
  31. package/dist/cjs/vega-input-select.cjs.entry.js +168 -58
  32. package/dist/cjs/vega-input.cjs.entry.js +5 -5
  33. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  34. package/dist/cjs/vega-left-nav_5.cjs.entry.js +4 -4
  35. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +1 -1
  36. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  37. package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
  38. package/dist/cjs/vega-popover_2.cjs.entry.js +3 -3
  39. package/dist/cjs/vega-progress-tracker.cjs.entry.js +3 -3
  40. package/dist/cjs/vega-radio_2.cjs.entry.js +6 -6
  41. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +7 -7
  43. package/dist/cjs/{vega-skeleton-loader-controller-bac82c82.js → vega-skeleton-loader-controller-8932c0ed.js} +3 -3
  44. package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
  45. package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
  46. package/dist/cjs/vega-table_8.cjs.entry.js +6 -6
  47. package/dist/cjs/vega-textarea.cjs.entry.js +6 -6
  48. package/dist/cjs/vega-time-picker_2.cjs.entry.js +6 -6
  49. package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
  50. package/dist/cjs/vega.cjs.js +5 -5
  51. package/dist/cjs/{vegaEventId-d7774262.js → vegaEventId-f375a6a3.js} +2 -0
  52. package/dist/cjs/{vegaInternalEventId-173c4941.js → vegaInternalEventId-ac38dd4b.js} +2 -0
  53. package/dist/collection/components/vega-button/slimmers/renderers/vega-button-loading-renderer.js +24 -0
  54. package/dist/collection/components/vega-button/vega-button.css +9 -1
  55. package/dist/collection/components/vega-button/vega-button.js +49 -7
  56. package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.js +38 -24
  57. package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.js +54 -1
  58. package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.js +13 -21
  59. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/baseRepeatPattern.js +61 -0
  60. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventDailyRepeatPattern.js +70 -0
  61. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventMonthlyRepeatPattern.js +90 -0
  62. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventRepeatPatternFactory.js +60 -0
  63. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventWeeklyRepeatPattern.js +163 -0
  64. package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventYearlyRepeatPattern.js +92 -0
  65. package/dist/collection/components/vega-calendar/slimmers/common/helpers/test/calendarEventRepeatPatternFactory.test.js +105 -0
  66. package/dist/collection/components/vega-calendar/slimmers/common/layout/test/longEventLayoutGenerator.test.js +0 -5
  67. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.js +1 -1
  68. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/test/dayViewEventLayoutGenerator.test.js +0 -5
  69. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.js +21 -4
  70. package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.js +45 -2
  71. package/dist/collection/components/vega-calendar/vega-calendar.css +0 -1
  72. package/dist/collection/components/vega-calendar/vega-calendar.js +51 -4
  73. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +0 -4
  74. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.js +14 -1
  75. package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.js +142 -0
  76. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +16 -50
  77. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +6 -1
  78. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.js +1 -0
  79. package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +7 -5
  80. package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.js +1 -1
  81. package/dist/collection/components/vega-dropdown/vega-dropdown.js +5 -2
  82. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.js +23 -0
  83. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-items-slot-controler.js +62 -0
  84. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.js +11 -0
  85. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.js +7 -10
  86. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +18 -2
  87. package/dist/collection/components/vega-input-select/vega-input-select.js +5 -0
  88. package/dist/collection/components/vega-loading-indicator/vega-loading-indicator.js +2 -2
  89. package/dist/collection/constants/ui.js +1 -1
  90. package/dist/collection/helpers/calendar/calendar-date.js +11 -0
  91. package/dist/collection/helpers/calendar/calendar-event.js +73 -24
  92. package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +8 -0
  93. package/dist/collection/helpers/calendar/calendar-period/day-period.js +1 -0
  94. package/dist/collection/helpers/calendar/calendar-period/month-period.js +16 -3
  95. package/dist/collection/helpers/calendar/calendar-period/week-period.js +1 -0
  96. package/dist/collection/helpers/calendar/test/calendar-event.test.js +23 -20
  97. package/dist/collection/helpers/event-manager/eventID/componentEventIdMap.js +2 -2
  98. package/dist/collection/helpers/event-manager/eventID/vegaEventId.js +1 -1
  99. package/dist/collection/helpers/event-manager/eventID/vegaInternalEventId.js +1 -0
  100. package/dist/collection/helpers/slimmers/sub-state/subStateObserverSlimmer.js +27 -13
  101. package/dist/collection/helpers/slimmers/sub-state/test/sub-state-observer-slimmer.test.js +15 -3
  102. package/dist/collection/helpers/vega-telemetry-helper/test/vegaEnvManager.test.js +1 -1
  103. package/dist/collection/helpers/vega-telemetry-helper/vegaEnvManager.js +2 -2
  104. package/dist/esm/{app-globals-032d6105.js → app-globals-ba85a900.js} +2 -2
  105. package/dist/esm/{childNodesEventPreventSlimmer-b9c50cc4.js → childNodesEventPreventSlimmer-d0da4527.js} +1 -1
  106. package/dist/esm/{eventEmitSlimmer-9c33f04e.js → eventEmitSlimmer-7b16eef9.js} +1 -1
  107. package/dist/esm/{formFieldControllerSlimmer-85ff874e.js → formFieldControllerSlimmer-ea050a17.js} +1 -1
  108. package/dist/esm/index.js +3 -3
  109. package/dist/esm/{internalVegaEventManager-e1501923.js → internalVegaEventManager-71d00966.js} +2 -2
  110. package/dist/esm/loader.js +5 -5
  111. package/dist/esm/{subStateObserverSlimmer-354b33f6.js → subStateObserverSlimmer-2a8a615e.js} +28 -14
  112. package/dist/esm/vega-accordion.entry.js +4 -4
  113. package/dist/esm/vega-app-header-button.entry.js +4 -4
  114. package/dist/esm/vega-banner.entry.js +3 -3
  115. package/dist/esm/vega-breadcrumb.entry.js +4 -4
  116. package/dist/esm/vega-button-circle.entry.js +4 -4
  117. package/dist/esm/vega-button-group_2.entry.js +6 -6
  118. package/dist/esm/vega-button-link.entry.js +4 -4
  119. package/dist/esm/vega-button.entry.js +59 -14
  120. package/dist/esm/vega-calendar_2.entry.js +830 -90
  121. package/dist/esm/vega-carousel.entry.js +3 -3
  122. package/dist/esm/vega-checkbox_2.entry.js +6 -6
  123. package/dist/esm/vega-chip.entry.js +4 -4
  124. package/dist/esm/vega-color-picker.entry.js +5 -5
  125. package/dist/esm/vega-combo-box.entry.js +6 -6
  126. package/dist/esm/vega-date-picker_2.entry.js +6 -6
  127. package/dist/esm/vega-dialog_2.entry.js +4 -4
  128. package/dist/esm/vega-dropdown_5.entry.js +308 -183
  129. package/dist/esm/vega-field-label.entry.js +4 -4
  130. package/dist/esm/vega-form.entry.js +6 -6
  131. package/dist/esm/vega-image-uploader.entry.js +6 -6
  132. package/dist/esm/vega-input-credit-card.entry.js +6 -6
  133. package/dist/esm/vega-input-range.entry.js +6 -6
  134. package/dist/esm/vega-input-select.entry.js +168 -58
  135. package/dist/esm/vega-input.entry.js +5 -5
  136. package/dist/esm/vega-item-toggle.entry.js +3 -3
  137. package/dist/esm/vega-left-nav_5.entry.js +4 -4
  138. package/dist/esm/vega-loader-wrapper_2.entry.js +1 -1
  139. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  140. package/dist/esm/vega-pagination.entry.js +4 -4
  141. package/dist/esm/vega-popover_2.entry.js +3 -3
  142. package/dist/esm/vega-progress-tracker.entry.js +3 -3
  143. package/dist/esm/vega-radio_2.entry.js +6 -6
  144. package/dist/esm/vega-segment-control.entry.js +3 -3
  145. package/dist/esm/vega-selection-tile_2.entry.js +7 -7
  146. package/dist/esm/{vega-skeleton-loader-controller-3f5500e5.js → vega-skeleton-loader-controller-778b12be.js} +3 -3
  147. package/dist/esm/vega-stepper.entry.js +6 -6
  148. package/dist/esm/vega-tab-group_2.entry.js +4 -4
  149. package/dist/esm/vega-table_8.entry.js +6 -6
  150. package/dist/esm/vega-textarea.entry.js +6 -6
  151. package/dist/esm/vega-time-picker_2.entry.js +6 -6
  152. package/dist/esm/vega-toggle-switch.entry.js +3 -3
  153. package/dist/esm/vega.js +5 -5
  154. package/dist/esm/{vegaEventId-680887e1.js → vegaEventId-f279bb62.js} +2 -1
  155. package/dist/esm/{vegaInternalEventId-600b3751.js → vegaInternalEventId-bde5d617.js} +2 -1
  156. package/dist/types/components/vega-button/slimmers/renderers/vega-button-loading-renderer.d.ts +13 -0
  157. package/dist/types/components/vega-button/vega-button.d.ts +16 -0
  158. package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.d.ts +12 -9
  159. package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.d.ts +20 -0
  160. package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.d.ts +8 -12
  161. package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/baseRepeatPattern.d.ts +50 -0
  162. package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventDailyRepeatPattern.d.ts +43 -0
  163. package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventMonthlyRepeatPattern.d.ts +55 -0
  164. package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventRepeatPatternFactory.d.ts +34 -0
  165. package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventWeeklyRepeatPattern.d.ts +99 -0
  166. package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventYearlyRepeatPattern.d.ts +57 -0
  167. package/dist/types/components/vega-calendar/slimmers/common/helpers/test/calendarEventRepeatPatternFactory.test.d.ts +1 -0
  168. package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.d.ts +8 -0
  169. package/dist/types/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.d.ts +23 -0
  170. package/dist/types/components/vega-calendar/types.d.ts +14 -2
  171. package/dist/types/components/vega-calendar/vega-calendar.d.ts +15 -3
  172. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +0 -1
  173. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.d.ts +4 -0
  174. package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.d.ts +57 -0
  175. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +7 -17
  176. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.d.ts +3 -0
  177. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +2 -1
  178. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.d.ts +2 -0
  179. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-items-slot-controler.d.ts +19 -0
  180. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.d.ts +11 -1
  181. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.d.ts +1 -1
  182. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +6 -0
  183. package/dist/types/components/vega-input-select/vega-input-select.d.ts +2 -0
  184. package/dist/types/components.d.ts +17 -1
  185. package/dist/types/constants/ui.d.ts +1 -1
  186. package/dist/types/helpers/calendar/calendar-date.d.ts +8 -0
  187. package/dist/types/helpers/calendar/calendar-event.d.ts +44 -2
  188. package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +10 -2
  189. package/dist/types/helpers/calendar/calendar-period/day-period.d.ts +1 -0
  190. package/dist/types/helpers/calendar/calendar-period/month-period.d.ts +12 -0
  191. package/dist/types/helpers/calendar/calendar-period/week-period.d.ts +1 -0
  192. package/dist/types/helpers/event-manager/eventID/vegaEventId.d.ts +1 -1
  193. package/dist/types/helpers/event-manager/eventID/vegaInternalEventId.d.ts +1 -0
  194. package/dist/types/helpers/slimmers/sub-state/subStateObserverSlimmer.d.ts +9 -0
  195. package/dist/types/types/components.type.d.ts +1 -0
  196. package/dist/vega/index.esm.js +1 -1
  197. package/dist/vega/{p-0f88130f.entry.js → p-0ef3d3fd.entry.js} +1 -1
  198. package/dist/vega/p-1080d80a.js +1 -0
  199. package/dist/vega/{p-9d9f7c25.entry.js → p-154a3145.entry.js} +1 -1
  200. package/dist/vega/{p-cbb90cf6.entry.js → p-1bc3348e.entry.js} +1 -1
  201. package/dist/vega/{p-86d3e5eb.entry.js → p-255aa39b.entry.js} +1 -1
  202. package/dist/vega/p-29654e12.entry.js +1 -0
  203. package/dist/vega/{p-77b39fe7.entry.js → p-2f905e6f.entry.js} +1 -1
  204. package/dist/vega/p-3490dd8a.entry.js +1 -0
  205. package/dist/vega/p-3fee5d7e.entry.js +1 -0
  206. package/dist/vega/p-44f4924b.js +1 -0
  207. package/dist/vega/p-4546cd3d.entry.js +1 -0
  208. package/dist/vega/{p-77ff7c72.js → p-5141bcac.js} +1 -1
  209. package/dist/vega/{p-16608c5a.js → p-51e2c836.js} +1 -1
  210. package/dist/vega/{p-d7cb0227.entry.js → p-52bf3ce1.entry.js} +1 -1
  211. package/dist/vega/{p-cd05ab96.entry.js → p-5611cf4c.entry.js} +1 -1
  212. package/dist/vega/{p-40db8b33.entry.js → p-5e3f5e8e.entry.js} +1 -1
  213. package/dist/vega/p-642d58ff.js +1 -0
  214. package/dist/vega/{p-9b5e858e.entry.js → p-6470d034.entry.js} +1 -1
  215. package/dist/vega/{p-8e63fc54.entry.js → p-6877dc17.entry.js} +1 -1
  216. package/dist/vega/{p-1dfddf03.entry.js → p-69cf5269.entry.js} +1 -1
  217. package/dist/vega/{p-21675b8e.entry.js → p-70af1334.entry.js} +1 -1
  218. package/dist/vega/{p-bd1bc019.entry.js → p-7115c145.entry.js} +1 -1
  219. package/dist/vega/{p-7d22c459.entry.js → p-795927c4.entry.js} +1 -1
  220. package/dist/vega/{p-6ad96891.entry.js → p-7c1d2dcf.entry.js} +1 -1
  221. package/dist/vega/p-7f9cb4c0.entry.js +1 -0
  222. package/dist/vega/p-82fd348b.entry.js +1 -0
  223. package/dist/vega/p-8543f9c3.entry.js +1 -0
  224. package/dist/vega/{p-12e93c00.entry.js → p-8771bf66.entry.js} +1 -1
  225. package/dist/vega/{p-84787f59.entry.js → p-88cf7e56.entry.js} +1 -1
  226. package/dist/vega/{p-d7f7e2df.entry.js → p-8e7d6700.entry.js} +1 -1
  227. package/dist/vega/p-9119ad95.entry.js +1 -0
  228. package/dist/vega/p-9799f3d8.entry.js +1 -0
  229. package/dist/vega/{p-61c96c79.entry.js → p-a6c43909.entry.js} +1 -1
  230. package/dist/vega/{p-ceb5067a.entry.js → p-b23ad436.entry.js} +1 -1
  231. package/dist/vega/{p-c8e1b56d.entry.js → p-b570e6c7.entry.js} +1 -1
  232. package/dist/vega/{p-ba37eaad.entry.js → p-b6f68efd.entry.js} +1 -1
  233. package/dist/vega/{p-25f60a0b.entry.js → p-b8a47375.entry.js} +1 -1
  234. package/dist/vega/{p-7fd253e0.entry.js → p-b8d45e28.entry.js} +1 -1
  235. package/dist/vega/{p-9e5f7b82.js → p-bba06111.js} +1 -1
  236. package/dist/vega/{p-2066e3eb.entry.js → p-c1401fab.entry.js} +1 -1
  237. package/dist/vega/{p-a9f61d9e.entry.js → p-cafe75e8.entry.js} +1 -1
  238. package/dist/vega/{p-7d9934ee.entry.js → p-cf40587e.entry.js} +1 -1
  239. package/dist/vega/{p-7706a169.js → p-d126407a.js} +1 -1
  240. package/dist/vega/{p-fb34de30.entry.js → p-e373bc4d.entry.js} +1 -1
  241. package/dist/vega/p-eacf64be.js +1 -0
  242. package/dist/vega/{p-1d628d23.entry.js → p-ec4afdaa.entry.js} +1 -1
  243. package/dist/vega/{p-a9d3ea86.js → p-f0330fcc.js} +1 -1
  244. package/dist/vega/{p-c0ca1a1c.entry.js → p-f8a97354.entry.js} +1 -1
  245. package/dist/vega/{p-f5d3d49f.entry.js → p-f96ee751.entry.js} +1 -1
  246. package/dist/vega/vega.esm.js +1 -1
  247. package/package.json +1 -1
  248. package/dist/vega/p-1092a8ce.entry.js +0 -1
  249. package/dist/vega/p-43515fe4.entry.js +0 -1
  250. package/dist/vega/p-592e755b.entry.js +0 -1
  251. package/dist/vega/p-76265c0e.entry.js +0 -1
  252. package/dist/vega/p-9316cd6d.entry.js +0 -1
  253. package/dist/vega/p-a9c3e9fd.js +0 -1
  254. package/dist/vega/p-aae8855d.js +0 -1
  255. package/dist/vega/p-bb845e70.entry.js +0 -1
  256. package/dist/vega/p-c47d4933.js +0 -1
  257. package/dist/vega/p-c9f922bf.entry.js +0 -1
  258. package/dist/vega/p-ca1fae74.entry.js +0 -1
  259. package/dist/vega/p-eb461dad.entry.js +0 -1
  260. package/dist/vega/p-f1d8fd1c.js +0 -1
@@ -7,24 +7,26 @@ const component = require('./component-c3bbaf20.js');
7
7
  const globalSlimmerRegistry = require('./global-slimmer-registry-fdb2a041.js');
8
8
  const componentUsageRuntimeMetrics = require('./componentUsageRuntimeMetrics-1a2a592d.js');
9
9
  const domNodeSubjectObserverFactory = require('./domNodeSubjectObserverFactory-2bbdec29.js');
10
- const vegaEventId = require('./vegaEventId-d7774262.js');
10
+ const vegaEventId = require('./vegaEventId-f375a6a3.js');
11
11
  const internalIconManager = require('./internal-icon-manager-b21347bf.js');
12
12
  const date = require('./date-b62fe96f.js');
13
- const eventEmitSlimmer = require('./eventEmitSlimmer-ea57144a.js');
14
- const childNodesEventPreventSlimmer = require('./childNodesEventPreventSlimmer-7e1895d7.js');
15
- const vegaInternalEventId = require('./vegaInternalEventId-173c4941.js');
13
+ const eventEmitSlimmer = require('./eventEmitSlimmer-1d70a720.js');
14
+ const childNodesEventPreventSlimmer = require('./childNodesEventPreventSlimmer-6848c3cf.js');
15
+ const vegaInternalEventId = require('./vegaInternalEventId-ac38dd4b.js');
16
16
  const accessibility = require('./accessibility-bfa227f6.js');
17
+ const array = require('./array-6e559cde.js');
17
18
  const misc = require('./misc-0197689b.js');
18
19
  const pageResizeObserverSlimmer = require('./pageResizeObserverSlimmer-8d417925.js');
19
20
  const timer = require('./timer-5f33058b.js');
20
21
  const changeManager = require('./changeManager-7c13d64f.js');
21
- const subStateObserverSlimmer = require('./subStateObserverSlimmer-48ad20a1.js');
22
+ const subStateObserverSlimmer = require('./subStateObserverSlimmer-60e4d6da.js');
22
23
  const typeGuard = require('./typeGuard-b1a74545.js');
23
24
  const stateBackgroundColorFormatter = require('./stateBackgroundColorFormatter-96a26ee7.js');
24
25
  const pixel = require('./pixel-98f2a10c.js');
25
26
  require('./iconManager-a9c2209d.js');
26
27
  require('./dynamic-slimmer-d5ea4204.js');
27
- require('./internalVegaEventManager-543c20cb.js');
28
+ require('./internalVegaEventManager-743a124d.js');
29
+ require('./number-459031f7.js');
28
30
  require('./breakpoints-cb3291ba.js');
29
31
  require('./ui-077fc009.js');
30
32
  require('./ui-fa68545a.js');
@@ -105,7 +107,7 @@ class VegaCalendarSwitchPanelRenderer extends globalSlimmerRegistry.VegaSlimmer
105
107
  * @param {NotifyObserverPayload<VegaCalendarViewModeType>} input mark which view should be selected
106
108
  */
107
109
  this.handleViewChange = (input) => {
108
- this.calendarViewController.setViewMode(input.detail);
110
+ this.currentPeriodController.updateCalendarPeriod(input.detail, this.currentPeriod.current);
109
111
  };
110
112
  /**
111
113
  * reset view content to today
@@ -297,7 +299,9 @@ class VegaCalendarMonthViewRenderer extends globalSlimmerRegistry.VegaSlimmer {
297
299
  'current-month-day': item.compare(currentDate).inMonth,
298
300
  'active': item.isToday(),
299
301
  'disabled': false,
300
- }, key: `${item.month}-${item.date}` },
302
+ }, key: `${item.month}-${item.date}`,
303
+ // eslint-disable-next-line react/jsx-no-bind
304
+ onDblClick: (e) => this.handleDateBlockClick(e, item) },
301
305
  this.renderDateBlock(item),
302
306
  this.monthEventRenderer.render(item, eventsArray[itemIndex], displayEventsArray[itemIndex], itemIndex)));
303
307
  })));
@@ -313,7 +317,42 @@ class VegaCalendarMonthViewRenderer extends globalSlimmerRegistry.VegaSlimmer {
313
317
  const isMonthFirstDay = item.date === 1;
314
318
  return (index.h("div", { class: "date" },
315
319
  isMonthFirstDay && index.h("div", { class: "month-block" }, getMonthName(item.toDate(), true)),
316
- index.h("div", { role: "button", tabIndex: 0, class: "grid-col" }, item.date)));
320
+ index.h("div", { role: "button", tabIndex: 0, class: "grid-col",
321
+ // eslint-disable-next-line react/jsx-no-bind
322
+ onDblClick: (e) => this.goToCurrentDayView(e, item) }, item.date)));
323
+ }
324
+ /**
325
+ * switch to current date day view
326
+ *
327
+ * @param {MouseEvent} e the double click event object
328
+ * @param {CalendarDate} calendarDate the calendar date object
329
+ */
330
+ goToCurrentDayView(e, calendarDate) {
331
+ e.stopPropagation();
332
+ this.currentPeriodController.updateCalendarPeriod('day', calendarDate);
333
+ }
334
+ /**
335
+ * emit vega click event when click the date block
336
+ *
337
+ * @param {MouseEvent} e the mouse event object
338
+ * @param {CalendarDate} calendarDate the calendar date object
339
+ */
340
+ handleDateBlockClick(e, calendarDate) {
341
+ const target = e.target;
342
+ if (this.isMonthBlockBlankArea(target)) {
343
+ const { year, month, date } = calendarDate;
344
+ this.dateDblClickEmitter.emit({ year, month, date, hour: 0 });
345
+ }
346
+ }
347
+ /**
348
+ * determine if the clicked element is blank area
349
+ *
350
+ * @param {HTMLElement} element the target element
351
+ * @returns {boolean} true or false
352
+ */
353
+ isMonthBlockBlankArea(element) {
354
+ // the more button and the calendar event component should not trigger dateDblClick event
355
+ return !element.classList.contains('more-button') && element.tagName !== 'VEGA-CALENDAR-EVENT';
317
356
  }
318
357
  }
319
358
  __decorate$i([
@@ -328,9 +367,15 @@ __decorate$i([
328
367
  __decorate$i([
329
368
  globalSlimmerRegistry.MapToComponentField()
330
369
  ], VegaCalendarMonthViewRenderer.prototype, "calendarViewController", void 0);
370
+ __decorate$i([
371
+ globalSlimmerRegistry.MapToComponentField()
372
+ ], VegaCalendarMonthViewRenderer.prototype, "currentPeriodController", void 0);
331
373
  __decorate$i([
332
374
  globalSlimmerRegistry.MapToComponentField()
333
375
  ], VegaCalendarMonthViewRenderer.prototype, "monthEventRenderer", void 0);
376
+ __decorate$i([
377
+ globalSlimmerRegistry.MapToComponentField()
378
+ ], VegaCalendarMonthViewRenderer.prototype, "dateDblClickEmitter", void 0);
334
379
 
335
380
  var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
336
381
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -383,7 +428,7 @@ class VegaCalendarViewWithTimeRenderer extends globalSlimmerRegistry.VegaSlimmer
383
428
  index.h("div", { class: "calendar-view-content" }, source.map((item) => {
384
429
  return (index.h("div", { class: "grid-col border-divider-left", key: item.date },
385
430
  index.h("div", { class: "hour-empty border-divider-top" }),
386
- this.renderHourBlock()));
431
+ this.renderHourBlock(item)));
387
432
  })),
388
433
  this.dayViewTimedEventRenderer.render(),
389
434
  this.timeLineRenderer.renderTimeMarker(source))));
@@ -391,14 +436,28 @@ class VegaCalendarViewWithTimeRenderer extends globalSlimmerRegistry.VegaSlimmer
391
436
  /**
392
437
  * The function `renderHourBlock` returns an array of HTML elements representing hour blocks with time information.
393
438
  *
439
+ * @param {CalendarDate} calendarDate then current calendar date object
394
440
  * @returns {HTMLElement[]} An array of HTMLElements is being returned. Each HTMLElement represents an hour block with a time value inside a div element.
395
441
  */
396
- renderHourBlock() {
442
+ renderHourBlock(calendarDate) {
397
443
  const timeLineSource = Array(24).fill('');
398
- return timeLineSource.map(() => {
399
- return index.h("div", { class: "grid-cell border-divider-top" });
444
+ return timeLineSource.map((_item, index$1) => {
445
+ return (index.h("div", { class: "grid-cell border-divider-top",
446
+ // eslint-disable-next-line react/jsx-no-bind
447
+ onDblClick: () => {
448
+ this.handleDateBlockClick(calendarDate, index$1);
449
+ } }));
400
450
  });
401
451
  }
452
+ /**
453
+ * emit vega click event when click the date block
454
+ *
455
+ * @param {CalendarDate} calendarDate the calendar date object
456
+ */
457
+ handleDateBlockClick(calendarDate, hour) {
458
+ const { year, month, date } = calendarDate;
459
+ this.dateDblClickEmitter.emit({ year, month, date, hour });
460
+ }
402
461
  }
403
462
  __decorate$h([
404
463
  globalSlimmerRegistry.MapToComponentField()
@@ -418,6 +477,9 @@ __decorate$h([
418
477
  __decorate$h([
419
478
  globalSlimmerRegistry.MapToComponentField()
420
479
  ], VegaCalendarViewWithTimeRenderer.prototype, "calendarViewController", void 0);
480
+ __decorate$h([
481
+ globalSlimmerRegistry.MapToComponentField()
482
+ ], VegaCalendarViewWithTimeRenderer.prototype, "dateDblClickEmitter", void 0);
421
483
 
422
484
  var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
423
485
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -761,6 +823,17 @@ class CalendarDate {
761
823
  }
762
824
  return result;
763
825
  }
826
+ /**
827
+ * The function "equal" compares the year, month, and date of two CalendarDate objects and returns true if they are equal.
828
+ *
829
+ * @param {CalendarDate} calendarDate - The `equal` method in the code snippet is a function that compares the year, month, and date of the current `CalendarDate` object with another
830
+ * `CalendarDate` object passed as a parameter. The method returns `true` if all three values (year, month, date) are equal
831
+ * @returns {boolean} The date is same day with current
832
+ */
833
+ equal(calendarDate) {
834
+ const { year, month, date } = calendarDate;
835
+ return this._year === year && this._month === month && this._date === date;
836
+ }
764
837
  }
765
838
 
766
839
  /**
@@ -839,6 +912,14 @@ class CalendarPeriod {
839
912
  get count() {
840
913
  return this._count;
841
914
  }
915
+ /**
916
+ * This function returns the type of the object.
917
+ *
918
+ * @type {string}
919
+ */
920
+ get type() {
921
+ return this._type;
922
+ }
842
923
  /**
843
924
  * Go to a specific date.
844
925
  *
@@ -878,6 +959,7 @@ class CalendarPeriod {
878
959
  class DayPeriod extends CalendarPeriod {
879
960
  constructor(current) {
880
961
  super(DayPeriod.DISPLAY_DATE_COUNT, current);
962
+ this._type = 'day';
881
963
  }
882
964
  /**
883
965
  * @inheritDoc
@@ -910,6 +992,7 @@ DayPeriod.DISPLAY_DATE_COUNT = 1;
910
992
  class WeekPeriod extends CalendarPeriod {
911
993
  constructor(current) {
912
994
  super(WeekPeriod.DISPLAY_DATE_COUNT, current);
995
+ this._type = 'week';
913
996
  }
914
997
  /**
915
998
  * @inheritDoc
@@ -941,9 +1024,22 @@ WeekPeriod.DISPLAY_DATE_COUNT = 7;
941
1024
  */
942
1025
  class MonthPeriod extends CalendarPeriod {
943
1026
  constructor(current) {
944
- const date = current || CalendarDate.from(new Date());
945
- const firstDayOfMonth = new CalendarDate(date.year, date.month, 1);
946
- super(MonthPeriod.DISPLAY_DATE_COUNT, firstDayOfMonth);
1027
+ super(MonthPeriod.DISPLAY_DATE_COUNT, MonthPeriod.getMonthFirstDay(current));
1028
+ this._type = 'month';
1029
+ }
1030
+ /**
1031
+ * The function `getMonthFirstDay` returns the first day of a given month in a calendar.
1032
+ *
1033
+ * @param {CalendarDate} [calendarDate] - The `calendarDate` parameter is an optional parameter of
1034
+ * type `CalendarDate`. It represents a specific date in the calendar. If a `calendarDate` is
1035
+ * provided, the function will use that date to determine the first day of the month. If no
1036
+ * `calendarDate` is provided, the function
1037
+ * @returns {CalendarDate} A new `CalendarDate` object representing the first day of the month from the provided
1038
+ * `calendarDate` parameter or the current date if no parameter is provided.
1039
+ */
1040
+ static getMonthFirstDay(calendarDate) {
1041
+ const date = calendarDate || CalendarDate.from(new Date());
1042
+ return new CalendarDate(date.year, date.month, 1);
947
1043
  }
948
1044
  /**
949
1045
  * @inheritDoc
@@ -984,39 +1080,34 @@ class VegaCalendarViewController extends globalSlimmerRegistry.VegaSlimmer {
984
1080
  this.weekViewGenerator = new WeekViewGenerator();
985
1081
  this.dayViewGenerator = new DayViewGenerator();
986
1082
  }
987
- /**
988
- * Update the view mode by param
989
- *
990
- * @param {VegaCalendarViewModeType} viewMode view mode string
991
- */
992
- setViewMode(viewMode) {
993
- this.viewMode = viewMode;
994
- }
995
1083
  /**
996
1084
  * set default calendar view
997
1085
  */
998
1086
  initialCalendarView() {
999
- this.setCalendarView(this.getCalendarViewByViewMode());
1087
+ this.setCalendarView(this.getCalendarViewByPeriod(this.currentPeriod));
1000
1088
  }
1001
1089
  /**
1002
1090
  * generator new calendar view if the calendar current period changes
1091
+ *
1092
+ * @param {CalendarPeriod} newValue the new calendar period
1003
1093
  */
1004
- generateCalendarView() {
1005
- this.setCalendarView(this.getCalendarViewByViewMode());
1094
+ generateCalendarView(newValue) {
1095
+ this.setCalendarView(this.getCalendarViewByPeriod(newValue));
1006
1096
  }
1007
1097
  /**
1008
- * The function `getCalendarViewByViewMode` returns a specific calendar view based on the current view mode.
1098
+ * The function `getCalendarViewByPeriod` returns a specific calendar view based on the current period.
1009
1099
  *
1010
- * @returns {CalendarView} get the match calendar view by the view mode
1100
+ * @param {CalendarPeriod} newPeriod the new period
1101
+ * @returns {CalendarView} get the match calendar view by the period
1011
1102
  */
1012
- getCalendarViewByViewMode() {
1013
- switch (this.viewMode) {
1103
+ getCalendarViewByPeriod(newPeriod) {
1104
+ switch (newPeriod.type) {
1014
1105
  case 'week':
1015
- return this.weekViewGenerator.generate(this.currentPeriod);
1106
+ return this.weekViewGenerator.generate(newPeriod);
1016
1107
  case 'day':
1017
- return this.dayViewGenerator.generate(this.currentPeriod);
1108
+ return this.dayViewGenerator.generate(newPeriod);
1018
1109
  default:
1019
- return this.monthViewGenerator.generate(this.currentPeriod);
1110
+ return this.monthViewGenerator.generate(newPeriod);
1020
1111
  }
1021
1112
  }
1022
1113
  /**
@@ -1031,9 +1122,6 @@ class VegaCalendarViewController extends globalSlimmerRegistry.VegaSlimmer {
1031
1122
  __decorate$f([
1032
1123
  globalSlimmerRegistry.MapToComponentField({ writable: true })
1033
1124
  ], VegaCalendarViewController.prototype, "calendarView", void 0);
1034
- __decorate$f([
1035
- globalSlimmerRegistry.MapToComponentField({ writable: true })
1036
- ], VegaCalendarViewController.prototype, "viewMode", void 0);
1037
1125
  __decorate$f([
1038
1126
  globalSlimmerRegistry.MapToComponentField()
1039
1127
  ], VegaCalendarViewController.prototype, "currentPeriod", void 0);
@@ -1063,19 +1151,50 @@ class VegaCalendarCurrentPeriodController extends globalSlimmerRegistry.VegaSlim
1063
1151
  setCurrentPeriod(newPeriod) {
1064
1152
  this.currentPeriod = newPeriod;
1065
1153
  }
1154
+ /**
1155
+ * set new current period by the view mode and the current date
1156
+ *
1157
+ * @param {VegaCalendarViewModeType} viewMode view mode value
1158
+ * @param {CalendarDate} date current date
1159
+ */
1160
+ updateCalendarPeriod(viewMode, date) {
1161
+ switch (viewMode) {
1162
+ case 'month':
1163
+ this.setCurrentPeriod(new MonthPeriod(date));
1164
+ break;
1165
+ case 'week':
1166
+ this.setCurrentPeriod(new WeekPeriod(date));
1167
+ break;
1168
+ case 'day':
1169
+ this.setCurrentPeriod(new DayPeriod(date));
1170
+ break;
1171
+ }
1172
+ }
1066
1173
  /**
1067
1174
  * default current period is month period, re-create period if the default view mode is not month
1068
1175
  * set default calendar view
1069
1176
  */
1070
1177
  initialCurrentPeriod() {
1071
- this.initCalendarPeriod(this.viewMode, CalendarDate.from(new Date()));
1178
+ this.updateCalendarPeriod(this.viewMode, CalendarDate.from(new Date()));
1072
1179
  }
1073
1180
  /**
1074
1181
  * emit period change event
1182
+ *
1183
+ * @param {CalendarPeriod} newValue the new calendar period
1184
+ * @param {CalendarPeriod} oldValue the prev calendar period
1075
1185
  */
1076
- emitChangeEvent() {
1186
+ emitChangeEvent(newValue, oldValue) {
1187
+ if (newValue &&
1188
+ oldValue &&
1189
+ newValue.startDate.equal(oldValue.startDate) &&
1190
+ newValue.endDate.equal(oldValue.endDate)) {
1191
+ return;
1192
+ }
1193
+ if (newValue && newValue.type !== this.viewMode) {
1194
+ this.viewMode = newValue.type;
1195
+ }
1077
1196
  this.changeEventEmitter.emit({
1078
- viewMode: this.viewMode,
1197
+ viewMode: newValue.type,
1079
1198
  currentPeriod: this.getCurrentPeriodSummary(),
1080
1199
  });
1081
1200
  }
@@ -1085,7 +1204,9 @@ class VegaCalendarCurrentPeriodController extends globalSlimmerRegistry.VegaSlim
1085
1204
  * @param {VegaCalendarViewModeType} viewMode new view mode value
1086
1205
  */
1087
1206
  updateCurrentPeriodByViewMode(viewMode) {
1088
- this.initCalendarPeriod(viewMode, this.currentPeriod.current);
1207
+ if (this.currentPeriod && viewMode !== this.currentPeriod.type) {
1208
+ this.updateCalendarPeriod(viewMode, this.currentPeriod.current);
1209
+ }
1089
1210
  }
1090
1211
  /**
1091
1212
  * The function `getStartDateAndEndDate` returns an array of `VegaCalendarDateType` objects based on the `startDate` and `endDate` properties of the `currentPeriod` object.
@@ -1110,25 +1231,6 @@ class VegaCalendarCurrentPeriodController extends globalSlimmerRegistry.VegaSlim
1110
1231
  },
1111
1232
  };
1112
1233
  }
1113
- /**
1114
- * set new current period by the view mode and the current date
1115
- *
1116
- * @param {VegaCalendarViewModeType} viewMode view mode value
1117
- * @param {CalendarDate} date current date
1118
- */
1119
- initCalendarPeriod(viewMode, date) {
1120
- switch (viewMode) {
1121
- case 'month':
1122
- this.setCurrentPeriod(new MonthPeriod(date));
1123
- break;
1124
- case 'week':
1125
- this.setCurrentPeriod(new WeekPeriod(date));
1126
- break;
1127
- case 'day':
1128
- this.setCurrentPeriod(new DayPeriod(date));
1129
- break;
1130
- }
1131
- }
1132
1234
  }
1133
1235
  __decorate$e([
1134
1236
  globalSlimmerRegistry.MapToComponentField({ writable: true })
@@ -1137,7 +1239,7 @@ __decorate$e([
1137
1239
  globalSlimmerRegistry.MapToComponentField()
1138
1240
  ], VegaCalendarCurrentPeriodController.prototype, "changeEventEmitter", void 0);
1139
1241
  __decorate$e([
1140
- globalSlimmerRegistry.MapToComponentField()
1242
+ globalSlimmerRegistry.MapToComponentField({ writable: true })
1141
1243
  ], VegaCalendarCurrentPeriodController.prototype, "viewMode", void 0);
1142
1244
  __decorate$e([
1143
1245
  globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
@@ -1321,6 +1423,534 @@ __decorate$d([
1321
1423
  globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
1322
1424
  ], VegaCalendarMonthEventRenderer.prototype, "addMaxDisplayCountChange", null);
1323
1425
 
1426
+ /** The above code defines an abstract class `CalendarEventBaseRepeatPattern` in TypeScript that represents a repeat pattern for calendar events. Here is a summary of what the code is doing: */
1427
+ class CalendarEventBaseRepeatPattern {
1428
+ /**
1429
+ * The constructor initializes the current date for a given date range and interval.
1430
+ *
1431
+ * @param {CalendarDate} repeatStartDate - The `repeatStartDate` parameter represents the starting date of a
1432
+ * calendar event or interval. It is of type `CalendarDate`, which likely contains information such as
1433
+ * the year, month, and day of the event.
1434
+ * @param {number} interval - The `interval` parameter represents the frequency at which the event
1435
+ * occurs. For example, if the interval is set to 2, it means the event occurs every 2 units of time
1436
+ * (e.g., every 2 days, weeks, months, etc.).
1437
+ * @param {Nullable<number>} count - The `count` parameter specifies the number of occurrences of the event. If `count`
1438
+ * is provided, the event will repeat `count` times within the specified interval. If `count` is
1439
+ * `null`, the event will repeat indefinitely until the `until` date is reached.
1440
+ * @param {Nullable<CalendarDate>} until - The `until` parameter in the constructor represents a date until which the recurring
1441
+ * event will occur. If this date is reached, the recurring event will stop.
1442
+ */
1443
+ constructor(repeatStartDate, interval, count, until) {
1444
+ this.repeatStartDate = repeatStartDate;
1445
+ this.interval = interval;
1446
+ this.count = count;
1447
+ this.until = until;
1448
+ }
1449
+ /**
1450
+ * The function `getRepeatSeries` retrieves a series of repeated events within a specified calendar period.
1451
+ *
1452
+ * @param {CalendarPeriod} period - The `period` parameter in the `getRepeatSeries` method represents
1453
+ * a specific time period in the form of a `CalendarPeriod` object. This object typically contains a
1454
+ * `startDate` and an `endDate`, which define the range of dates for which you want to generate repeat series.
1455
+ * @param {number} eventSpansDays - the current repeat series cross days, default value is one
1456
+ * @returns {CalendarDate[]} repeat start date array
1457
+ */
1458
+ getRepeatSeries(period, eventSpansDays = 1) {
1459
+ this.generateRepeatDateCacheUntilEndDate(period.endDate);
1460
+ return this.cache.filter((item) => {
1461
+ return this.isSeriesInPeriod(item, eventSpansDays, period);
1462
+ });
1463
+ }
1464
+ /**
1465
+ * The function `isSeriesInPeriod` checks if a series of dates falls within a specified date range.
1466
+ *
1467
+ * @param {CalendarDate} series - The `series` parameter represents a specific date in the form of a
1468
+ * `CalendarDate` object.
1469
+ * @param {number} seriesSpansDays - The `seriesSpansDays` parameter represents the number of days
1470
+ * that the series spans. It is used to calculate the end date of the series based on the start date.
1471
+ * @param {CalendarPeriod} period - Date period
1472
+ * @returns {boolean} a boolean value indicating whether the given series falls within the specified date
1473
+ * range.
1474
+ */
1475
+ isSeriesInPeriod(series, seriesSpansDays, period) {
1476
+ const seriesStart = series.toDate();
1477
+ const seriesEnd = new Date(series.year, series.month - 1, series.date + seriesSpansDays - 1);
1478
+ const { startDate, endDate } = period;
1479
+ const rangeStart = startDate.toDate();
1480
+ const rangeEnd = endDate.toDate();
1481
+ return ((seriesStart >= rangeStart && seriesStart <= rangeEnd) ||
1482
+ (seriesEnd >= rangeStart && seriesEnd <= rangeEnd) ||
1483
+ (seriesStart <= rangeStart && seriesEnd >= rangeEnd));
1484
+ }
1485
+ }
1486
+ CalendarEventBaseRepeatPattern.daySeconds = 24 * 60 * 60 * 1000;
1487
+
1488
+ /** The `CalendarEventDailyRepeatPattern` class in TypeScript represents a daily repeating pattern for calendar events. */
1489
+ class CalendarEventDailyRepeatPattern extends CalendarEventBaseRepeatPattern {
1490
+ /**
1491
+ * The constructor initializes the current date for a given date range and interval.
1492
+ *
1493
+ * @param {CalendarDate} startDate - The `startDate` parameter is of type `CalendarDate` and represents the starting date for a specific interval or range.
1494
+ * @param {number} interval - The `interval` parameter represents the frequency at which the event
1495
+ * occurs. For example, if the interval is set to 1, it means the event occurs every day. If the
1496
+ * interval is set to 2, it means the event occurs every other day.
1497
+ * @param {Nullable<number>} count - The `count` parameter specifies the number of occurrences of the event. If `count`
1498
+ * is provided, the event will repeat `count` times within the specified interval. If `count` is
1499
+ * `null`, the event will repeat indefinitely until the `until` date is reached.
1500
+ * @param {Nullable<CalendarDate>} until - The `until` parameter in the constructor is of type `Nullable<CalendarDate>`, which
1501
+ * means it can either accept a `CalendarDate` object or be `null`. This parameter is used to specify
1502
+ * a date until which the recurring event should repeat. If `until` is provided, the event
1503
+ */
1504
+ constructor(startDate, interval, count, until) {
1505
+ super(startDate, interval, count, until);
1506
+ this.initCache();
1507
+ }
1508
+ /**
1509
+ * The function generates and caches repeated dates before a specified end date.
1510
+ *
1511
+ * @param {CalendarDate} endDate - The `endDate` parameter represents the date until which you want to
1512
+ * generate repeat dates in the cache. The function `generateRepeatDateCacheBeforeEndDate` is
1513
+ * responsible for populating the cache with repeat dates until the specified `endDate`. It checks the
1514
+ * last date in the cache and generates subsequent repeat dates until
1515
+ */
1516
+ generateRepeatDateCacheUntilEndDate(endDate) {
1517
+ const lastMatchDate = this.cache[this.cache.length - 1];
1518
+ if (lastMatchDate.toDate() < endDate.toDate() &&
1519
+ (!this.count || (typeof this.count === 'number' && this.cache.length < this.count))) {
1520
+ let nextMatchDate = this.getNextRepeatStartDate(lastMatchDate);
1521
+ while (nextMatchDate && nextMatchDate.toDate() < endDate.toDate()) {
1522
+ nextMatchDate = this.getNextRepeatStartDate(nextMatchDate);
1523
+ if (typeof this.count === 'number' && this.cache.length >= this.count) {
1524
+ break;
1525
+ }
1526
+ }
1527
+ }
1528
+ }
1529
+ /**
1530
+ * The function `initCache` initializes a cache array with the `startDate` value.
1531
+ */
1532
+ initCache() {
1533
+ this.cache = [this.repeatStartDate];
1534
+ }
1535
+ /**
1536
+ * The function getNextRepeatStartDate calculates the next repeat start date based on a given date and certain conditions.
1537
+ *
1538
+ * @param {CalendarDate} date - The `date` parameter represents the current date for which you want to
1539
+ * calculate the next repeat start date. It is an instance of the `CalendarDate` class.
1540
+ * @returns {Nullable<CalendarDate>} The function `getNextRepeatStartDate` returns either a `CalendarDate` object if certain
1541
+ * conditions are met, or `null` if the conditions are not met.
1542
+ */
1543
+ getNextRepeatStartDate(date) {
1544
+ const nextDate = new Date(date.year, date.month - 1, date.date + this.interval);
1545
+ const nextCalendarDate = CalendarDate.from(nextDate);
1546
+ if ((this.until && nextDate > this.until.toDate()) ||
1547
+ (typeof this.count === 'number' && this.cache.length >= this.count)) {
1548
+ return null;
1549
+ }
1550
+ else {
1551
+ this.cache.push(nextCalendarDate);
1552
+ return nextCalendarDate;
1553
+ }
1554
+ }
1555
+ }
1556
+
1557
+ /** The `CalendarEventMonthlyRepeatPattern` class in TypeScript represents a monthly repeat pattern for calendar events. */
1558
+ class CalendarEventMonthlyRepeatPattern extends CalendarEventBaseRepeatPattern {
1559
+ /**
1560
+ * The constructor initializes the event with specified start and end dates, interval, count, and until date, and sets the byMonthDay property to the start date's day.
1561
+ *
1562
+ * @param {CalendarDate} startDate - The `startDate` parameter represents the starting date of the
1563
+ * event or interval. It is of type `CalendarDate`, which likely includes the year, month, and day
1564
+ * components of the date.
1565
+ * @param {number} interval - The `interval` parameter specifies the frequency of the recurring
1566
+ * events. For example, if the interval is set to 2, the event will occur every 2 units of time (days,
1567
+ * weeks, months, etc.).
1568
+ * @param {Nullable<number>} count - The `count` parameter specifies the number of occurrences of the event. If `count`
1569
+ * is provided, the event will repeat `count` times within the specified interval. If `count` is not
1570
+ * provided (or is `null`), the event will repeat indefinitely based on the other parameters like `
1571
+ * @param {Nullable<CalendarDate>} until - The `until` parameter is a nullable `CalendarDate` that specifies the end date for
1572
+ * the recurring event. If provided, the event will repeat until this date. If not provided, the event
1573
+ * will repeat indefinitely based on the other parameters like `count` or `endDate`.
1574
+ */
1575
+ constructor(startDate, interval, count, until) {
1576
+ super(startDate, interval, count, until);
1577
+ this.byMonthDay = this.repeatStartDate.date;
1578
+ this.initCache();
1579
+ }
1580
+ /**
1581
+ * This function generates and caches repeated dates before a specified end date.
1582
+ *
1583
+ * @param {CalendarDate} endDate - The `endDate` parameter in the
1584
+ * `generateRepeatDateCacheUntilEndDate` function is a CalendarDate object that represents the end
1585
+ * date until which the repeat dates need to be generated and cached. The function checks if the last
1586
+ * cached date is before the `endDate` and generates additional repeat dates until it reaches
1587
+ */
1588
+ generateRepeatDateCacheUntilEndDate(endDate) {
1589
+ const lastMatchDate = this.cache[this.cache.length - 1];
1590
+ if (lastMatchDate.toDate() < endDate.toDate() &&
1591
+ (!this.count || (typeof this.count === 'number' && this.cache.length < this.count))) {
1592
+ let nextMatchDate = this.getNextRepeatStartDate(lastMatchDate);
1593
+ while (nextMatchDate && nextMatchDate.toDate() < endDate.toDate()) {
1594
+ nextMatchDate = this.getNextRepeatStartDate(nextMatchDate);
1595
+ if (typeof this.count === 'number' && this.cache.length >= this.count) {
1596
+ break;
1597
+ }
1598
+ }
1599
+ }
1600
+ }
1601
+ /**
1602
+ * The function `initCache` initializes a cache array with the startDate value.
1603
+ */
1604
+ initCache() {
1605
+ this.cache = [this.repeatStartDate];
1606
+ }
1607
+ /**
1608
+ * The getNextRepeatStartDate function calculates the next start date based on a given date and interval, considering constraints such as end date and count limit.
1609
+ *
1610
+ * @param {CalendarDate} date - The `date` parameter represents the current date for which you want to
1611
+ * calculate the next repeat start date. It is of type `CalendarDate`.
1612
+ * @returns {Nullable<CalendarDate>} The function `getNextRepeatStartDate` returns a nullable `CalendarDate`. It either returns
1613
+ * the next calculated `CalendarDate` based on the input date and interval, or it returns `null` if
1614
+ * certain conditions are met (such as reaching the specified end date or count limit).
1615
+ */
1616
+ getNextRepeatStartDate(date) {
1617
+ const nextDate = this.getNextStartDate(date.year, date.month - 1 + this.interval);
1618
+ const nextCalendarDate = CalendarDate.from(nextDate);
1619
+ if ((this.until && nextDate > this.until.toDate()) ||
1620
+ (typeof this.count === 'number' && this.cache.length >= this.count)) {
1621
+ return null;
1622
+ }
1623
+ else {
1624
+ this.cache.push(nextCalendarDate);
1625
+ return nextCalendarDate;
1626
+ }
1627
+ }
1628
+ /**
1629
+ * get the new date with fixed date, if the date.getDate() not equal the fixed date, find the next month
1630
+ *
1631
+ * @param {number} year year
1632
+ * @param {number} month month
1633
+ * @returns {Date} the new date
1634
+ */
1635
+ getNextStartDate(year, month) {
1636
+ const nextDate = new Date(year, month, this.byMonthDay);
1637
+ if (nextDate.getDate() === this.byMonthDay) {
1638
+ return nextDate;
1639
+ }
1640
+ else {
1641
+ return this.getNextStartDate(year, month + 1);
1642
+ }
1643
+ }
1644
+ }
1645
+
1646
+ /** The `CalendarEventWeeklyRepeatPattern` class in TypeScript represents a weekly repeat pattern for calendar events, allowing for matching dates based on specific weekdays and generating future dates with optional constraints. */
1647
+ class CalendarEventWeeklyRepeatPattern extends CalendarEventBaseRepeatPattern {
1648
+ /**
1649
+ * This TypeScript constructor initializes a calendar date range with specified parameters including start date, end date, interval, count, until date, and an array of week days.
1650
+ *
1651
+ * @param {CalendarDate} startDate - The `startDate` parameter represents the starting date of the
1652
+ * calendar event or schedule. It is of type `CalendarDate`, which likely includes the year, month, and day components of a date.
1653
+ * @param {number} interval - The `interval` parameter represents the frequency of the recurrence. For
1654
+ * example, if `interval` is set to 1, the event will occur every week. If it's set to 2, the event
1655
+ * will occur every two weeks.
1656
+ * @param {Nullable<number>} count - The `count` parameter specifies the number of occurrences of the rule. If `count` is
1657
+ * provided, the recurrence will generate at most that many occurrences. If `count` is not provided,
1658
+ * the recurrence will continue indefinitely based on other parameters like `endDate` or `until`.
1659
+ * @param {Nullable<CalendarDate>} until - The `until` parameter specifies the end date for the recurrence rule. If provided,
1660
+ * the recurrence will continue until this date. If not provided, the recurrence will continue
1661
+ * indefinitely based on other parameters like `count` or `interval`.
1662
+ * @param {Nullable<VegaCalendarWeekDayType[]>} byWeekDay - The `byWeekDay` parameter is an array of
1663
+ * `VegaCalendarWeekDayType` values, which represent the days of the week for which the event should occur.
1664
+ */
1665
+ constructor(startDate, interval, count, until, byWeekDay) {
1666
+ super(startDate, interval, count, until);
1667
+ this.byWeekDay = this.sortWeekDay(byWeekDay);
1668
+ this.initCache();
1669
+ }
1670
+ /**
1671
+ * The function `getRepeatSeries` retrieves a series of repeated events within a specified calendar period.
1672
+ *
1673
+ * @param {CalendarPeriod} period - The `period` parameter in the `getRepeatSeries` method represents
1674
+ * a specific time period in the form of a `CalendarPeriod` object. This object typically contains a
1675
+ * `startDate` and an `endDate`, which define the range of dates for which you want to generate repeat series.
1676
+ * @param {number} eventSpansDays - the current repeat series cross days, default value is one
1677
+ * @returns {CalendarDate[]} repeat start date array
1678
+ */
1679
+ getRepeatSeries(period, eventSpansDays = 1) {
1680
+ this.generateRepeatDateCacheUntilEndDate(period.endDate);
1681
+ return this.getValidCache().filter((item) => {
1682
+ return this.isSeriesInPeriod(item, eventSpansDays, period);
1683
+ });
1684
+ }
1685
+ /**
1686
+ * This function generates repeated dates and caches them until a specified end date.
1687
+ *
1688
+ * @param {CalendarDate} endDate - The `endDate` parameter is a `CalendarDate` object that represents
1689
+ * the date until which the repeat date cache needs to be generated. The function
1690
+ * `generateRepeatDateCacheUntilEndDate` generates repeat dates until this specified end date.
1691
+ */
1692
+ generateRepeatDateCacheUntilEndDate(endDate) {
1693
+ const lastMatchDate = this.cache[this.cache.length - 1];
1694
+ if (lastMatchDate[0].toDate() < endDate.toDate() &&
1695
+ (!this.count || (typeof this.count === 'number' && this.cache.length < this.count))) {
1696
+ let nextMatchDate = this.getNextRepeatStartDate(lastMatchDate);
1697
+ while (nextMatchDate && nextMatchDate[0].toDate() < endDate.toDate()) {
1698
+ nextMatchDate = this.getNextRepeatStartDate(nextMatchDate);
1699
+ if (typeof this.count === 'number' && this.getValidCache().length >= this.count) {
1700
+ break;
1701
+ }
1702
+ }
1703
+ }
1704
+ }
1705
+ /**
1706
+ * The function getNextRepeatStartDate calculates the next start dates based on a given array of CalendarDate objects and returns them if certain conditions are met.
1707
+ *
1708
+ * @param {CalendarDate[]} dates - The `dates` parameter is an array of `CalendarDate` objects.
1709
+ * @returns {Nullable<CalendarDate[]>} The `getNextRepeatStartDate` function returns a nullable array of `CalendarDate` objects.
1710
+ * If there are no next dates available or if the cache count exceeds a specified limit, it returns
1711
+ * `null`. Otherwise, it returns an array of `CalendarDate` objects representing the next start dates.
1712
+ */
1713
+ getNextRepeatStartDate(dates) {
1714
+ const nextDate = this.getNextStartDates(dates);
1715
+ if (nextDate.length === 0 ||
1716
+ (typeof this.count === 'number' && this.getValidCache().length >= this.count)) {
1717
+ return null;
1718
+ }
1719
+ else {
1720
+ const nextCalendarDates = nextDate.map((item) => CalendarDate.from(item));
1721
+ this.cache.push(nextCalendarDates);
1722
+ return nextCalendarDates;
1723
+ }
1724
+ }
1725
+ /**
1726
+ * The function `getNextStartDates` takes an array of `CalendarDate` objects, calculates the next dates based on a specified interval, and filters out dates that are after a specified end date.
1727
+ *
1728
+ * @param {CalendarDate[]} dates - The `dates` parameter is an array of `CalendarDate` objects
1729
+ * representing specific dates in a calendar. Each `CalendarDate` object has properties for the year,
1730
+ * month, and date.
1731
+ * @returns {Date[]} The `getNextStartDates` function returns an array of `Date` objects representing the next
1732
+ * start dates based on the input `CalendarDate` array. The function calculates the next start dates
1733
+ * by adding a specific interval (multiplied by 7 to represent weeks) to each date in the input array.
1734
+ * Finally, it filters out any dates that are after a specified `until` date, if provided.
1735
+ */
1736
+ getNextStartDates(dates) {
1737
+ const nextDates = dates.map((dateItem) => new Date(dateItem.year, dateItem.month - 1, dateItem.date + this.interval * 7));
1738
+ return nextDates.filter((item) => !this.until || item <= this.until.toDate());
1739
+ }
1740
+ /**
1741
+ * The `initCache` function initializes a cache of calendar dates based on the start date and weekly repeat pattern.
1742
+ */
1743
+ initCache() {
1744
+ const result = [];
1745
+ const currentWeekDayIndex = this.getCurrentDayIndex(this.repeatStartDate);
1746
+ this.byWeekDay.forEach((day) => {
1747
+ const index = CalendarEventWeeklyRepeatPattern.weekDay.indexOf(day);
1748
+ const days = index - currentWeekDayIndex;
1749
+ const { year, month, date } = this.repeatStartDate;
1750
+ const dateItem = CalendarDate.from(new Date(year, month - 1, date + days));
1751
+ result.push(dateItem);
1752
+ });
1753
+ this.cache = [result];
1754
+ }
1755
+ /**
1756
+ * The function `sortWeekDay` sorts an array of week days based on their position in a predefined list.
1757
+ *
1758
+ * @param {boolean} weekDay - The `weekDay` parameter is an array of week day values that need to be sorted in a
1759
+ * specific order. The function `sortWeekDay` takes this array and sorts it based on a predefined
1760
+ * order specified in `CalendarEventWeeklyRepeatPattern.weekDay`.
1761
+ * @returns {VegaCalendarWeekDayType[]} The `sortWeekDay` function is returning the `weekDay` array sorted based on the index of
1762
+ * each `VegaCalendarWeekDayType` item in the `CalendarEventWeeklyRepeatPattern.weekDay` array.
1763
+ */
1764
+ sortWeekDay(weekDay) {
1765
+ if (weekDay && weekDay.length) {
1766
+ return weekDay
1767
+ .map((item) => item.toLocaleLowerCase())
1768
+ .sort((itemA, itemB) => {
1769
+ return (CalendarEventWeeklyRepeatPattern.weekDay.indexOf(itemA) -
1770
+ CalendarEventWeeklyRepeatPattern.weekDay.indexOf(itemB));
1771
+ });
1772
+ }
1773
+ else {
1774
+ return [CalendarEventWeeklyRepeatPattern.weekDay[this.getCurrentDayIndex(this.repeatStartDate)]];
1775
+ }
1776
+ }
1777
+ /**
1778
+ * This function returns the index of the current day in a week, with Sunday represented as 0.
1779
+ *
1780
+ * @param {CalendarDate} date - The `date` parameter in the `getCurrentDayIndex` function is of type
1781
+ * `CalendarDate`, which is a custom data type representing a date in a calendar.
1782
+ * @returns {number} The function `getCurrentDayIndex` returns the index of the current day in the week, with
1783
+ * Sunday being represented as 0 and Saturday being represented as 6.
1784
+ */
1785
+ getCurrentDayIndex(date) {
1786
+ return date.toDate().getDay();
1787
+ }
1788
+ /**
1789
+ * The function `getValidCache` returns a filtered and concatenated array of CalendarDate objects from the cache based on a start date.
1790
+ *
1791
+ * @returns {CalendarDate[]} The `getValidCache` method returns an array of `CalendarDate` objects that meet the
1792
+ * condition of having a date greater than or equal to the `startDate` property. The method first
1793
+ * flattens a nested array of `CalendarDate` objects stored in the `cache` property, then filters out
1794
+ * the `CalendarDate` objects that do not meet the condition, and finally concatenates the filtered
1795
+ * array
1796
+ */
1797
+ getValidCache() {
1798
+ const flatArr = array.flatNestedArray(this.cache.slice(1));
1799
+ return this.cache[0]
1800
+ .filter((item) => item.toDate() >= this.repeatStartDate.toDate())
1801
+ .concat(flatArr)
1802
+ .slice(0, typeof this.count === 'number' ? this.count : undefined);
1803
+ }
1804
+ }
1805
+ CalendarEventWeeklyRepeatPattern.weekDay = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'].map((item) => item.toLowerCase());
1806
+
1807
+ /** The `CalendarEventYearlyRepeatPattern` class defines a yearly repeat pattern for calendar events, checking for matches and generating future dates based on specified criteria. */
1808
+ class CalendarEventYearlyRepeatPattern extends CalendarEventBaseRepeatPattern {
1809
+ /**
1810
+ * The constructor initializes a new instance with specified start and end dates, interval, count, and until date.
1811
+ *
1812
+ * @param {CalendarDate} startDate - The `startDate` parameter is of type `CalendarDate` and
1813
+ * represents the starting date of a calendar event or interval.
1814
+ * @param {number} interval - The `interval` parameter represents the frequency at which the event
1815
+ * occurs. For example, if the interval is set to 2, the event will occur every 2 units of time (days,
1816
+ * weeks, months, etc.).
1817
+ * @param {Nullable<number>} count - The `count` parameter specifies the number of occurrences of the event. If `count`
1818
+ * is provided, the event will repeat `count` times within the specified interval. If `count` is not
1819
+ * provided, the event will repeat indefinitely based on the other parameters like `endDate` or
1820
+ * `until`.
1821
+ * @param {Nullable<CalendarDate>} until - The `until` parameter in the constructor is of type `Nullable<CalendarDate>`. This
1822
+ * means that it can either accept a `CalendarDate` object or be `null`. It is used to specify a date
1823
+ * until which the recurring event should repeat. If `until` is provided, the event
1824
+ */
1825
+ constructor(startDate, interval, count, until) {
1826
+ super(startDate, interval, count, until);
1827
+ this.matchDay = this.repeatStartDate.date;
1828
+ this.matchMonth = this.repeatStartDate.month;
1829
+ this.initCache();
1830
+ }
1831
+ /**
1832
+ * The function generates repeat dates and caches them until reaching the specified end date.
1833
+ *
1834
+ * @param {CalendarDate} endDate - The `endDate` parameter in the
1835
+ * `generateRepeatDateCacheUntilEndDate` function is a CalendarDate object that represents the date
1836
+ * until which the repeat date cache should be generated. The function checks if the last date in the
1837
+ * cache is before the `endDate`, and if so, it generates additional repeat dates
1838
+ */
1839
+ generateRepeatDateCacheUntilEndDate(endDate) {
1840
+ const lastMatchDate = this.cache[this.cache.length - 1];
1841
+ if (lastMatchDate.toDate() < endDate.toDate() &&
1842
+ (!this.count || (typeof this.count === 'number' && this.cache.length < this.count))) {
1843
+ let nextMatchDate = this.getNextRepeatStartDate(lastMatchDate);
1844
+ while (nextMatchDate && nextMatchDate.toDate() < endDate.toDate()) {
1845
+ nextMatchDate = this.getNextRepeatStartDate(nextMatchDate);
1846
+ if (typeof this.count === 'number' && this.cache.length >= this.count) {
1847
+ break;
1848
+ }
1849
+ }
1850
+ }
1851
+ }
1852
+ /**
1853
+ * The function getNextRepeatStartDate calculates the next repeat start date based on a given date and certain conditions.
1854
+ *
1855
+ * @param {CalendarDate} date - The `date` parameter represents the current date for which you want to
1856
+ * calculate the next repeat start date. It is of type `CalendarDate`, which seems to be a custom
1857
+ * class or structure that holds year, month, and day information.
1858
+ * @returns {Nullable<CalendarDate>} The function `getNextRepeatStartDate` returns either a `CalendarDate` object or `null`
1859
+ * based on certain conditions. If the next date exceeds the `until` date or the count limit has been
1860
+ * reached, it returns `null`. Otherwise, it adds the next date to the cache and returns it as a
1861
+ * `CalendarDate`.
1862
+ */
1863
+ getNextRepeatStartDate(date) {
1864
+ const nextDate = this.getNextStartDate(date.year + this.interval);
1865
+ const nextCalendarDate = CalendarDate.from(nextDate);
1866
+ if ((this.until && nextDate > this.until.toDate()) ||
1867
+ (typeof this.count === 'number' && this.cache.length >= this.count)) {
1868
+ return null;
1869
+ }
1870
+ else {
1871
+ this.cache.push(nextCalendarDate);
1872
+ return nextCalendarDate;
1873
+ }
1874
+ }
1875
+ /**
1876
+ * get the new date with fixed month and fixed date, if the date.getDate() not equal the fixed date or fixed month, find the next year
1877
+ *
1878
+ * @param {number} year year
1879
+ * @returns {Date} the new date
1880
+ */
1881
+ getNextStartDate(year) {
1882
+ const nextDate = new Date(year, this.matchMonth - 1, this.matchDay);
1883
+ if (nextDate.getDate() === this.matchDay && nextDate.getMonth() + 1 === this.matchMonth) {
1884
+ return nextDate;
1885
+ }
1886
+ else {
1887
+ return this.getNextStartDate(year + 1);
1888
+ }
1889
+ }
1890
+ /**
1891
+ * The function `initCache` initializes a cache array with the `startDate` value.
1892
+ */
1893
+ initCache() {
1894
+ this.cache = [this.repeatStartDate];
1895
+ }
1896
+ }
1897
+
1898
+ /** This code snippet defines a TypeScript class `CalendarEventRepeatPatternFactory` that serves as a factory for creating different types of repeat patterns for calendar events. Here's a breakdown of what the class and its methods are doing: */
1899
+ class CalendarEventRepeatPatternFactory {
1900
+ /**
1901
+ * This `getPattern` method within the `CalendarEventRepeatPatternFactory` class is a public method that is responsible for creating and returning a specific type of repeat pattern for a calendar event based on the input parameters provided. Here's a breakdown of what this method is doing:
1902
+ *
1903
+ * @param {Date} startDate repeat start date
1904
+ * @param {VegaCalendarEventRepeatOptions|undefined} repeatOptions repeat options
1905
+ * @returns {CalendarEventBaseRepeatPattern} the match repeat pattern
1906
+ */
1907
+ getPattern(startDate, repeatOptions) {
1908
+ const repeatStartDate = CalendarDate.from(startDate);
1909
+ const { frequency, interval = 1, byWeekDay, until, count, } = repeatOptions;
1910
+ const repeatEndDate = this.initDate(until);
1911
+ return this.initRepeatPattern(frequency, repeatStartDate, interval < 1 ? 1 : interval, count, repeatEndDate, byWeekDay);
1912
+ }
1913
+ /**
1914
+ * The `initDate` function initializes a `CalendarDate` object based on the input date string or Date object provided.
1915
+ *
1916
+ * @param {Nullable<string | Date>} date - The `date` parameter can be either a string or a Date object.
1917
+ * @returns {Nullable<CalendarDate>} The function `initDate` returns a `Nullable<CalendarDate>`, which means it can return either a `CalendarDate` object or `null`.
1918
+ */
1919
+ initDate(date) {
1920
+ if (date && typeof date === 'object') {
1921
+ return CalendarDate.from(date);
1922
+ }
1923
+ else if (date && typeof date === 'string') {
1924
+ const [month, day, year] = date.split('/');
1925
+ return new CalendarDate(Number(year), Number(month), Number(day));
1926
+ }
1927
+ }
1928
+ /**
1929
+ * The function `initRepeatPattern` initializes a repeat pattern based on the frequency specified for a calendar event.
1930
+ *
1931
+ * @param {VegaCalendarEventRepeatType} frequency event frequency
1932
+ * @param {CalendarDate} repeatStartDate event start date
1933
+ * @param {number} interval event repeat interval
1934
+ * @param {Nullable<number>} count the event repeat count
1935
+ * @param {Nullable<CalendarDate>} repeatEndDate repeat end date
1936
+ * @param {Nullable<VegaCalendarWeekDayType[]>} byWeekDay weekly week days
1937
+ * @returns {CalendarEventBaseRepeatPattern} calendar event repeat pattern instance
1938
+ */
1939
+ initRepeatPattern(frequency, repeatStartDate, interval, count, repeatEndDate, byWeekDay) {
1940
+ switch (frequency) {
1941
+ case 'daily':
1942
+ return new CalendarEventDailyRepeatPattern(repeatStartDate, interval, count, repeatEndDate);
1943
+ case 'weekly':
1944
+ return new CalendarEventWeeklyRepeatPattern(repeatStartDate, interval, count, repeatEndDate, byWeekDay);
1945
+ case 'monthly':
1946
+ return new CalendarEventMonthlyRepeatPattern(repeatStartDate, interval, count, repeatEndDate);
1947
+ default:
1948
+ return new CalendarEventYearlyRepeatPattern(repeatStartDate, interval, count, repeatEndDate);
1949
+ }
1950
+ }
1951
+ }
1952
+ const calendarEventRepeatPatternFactory = new CalendarEventRepeatPatternFactory();
1953
+
1324
1954
  const CalendarDateFormatReg = /^\d{1,2}\/\d{1,2}\/\d{4}/;
1325
1955
  const CalendarTimeFormatReg = /^\d{1,2}:\d{1,2}/;
1326
1956
  /** The `CalendarEvent` class in TypeScript represents a calendar event with methods to validate required fields, initialize dates and times, and determine if it is a group event. */
@@ -1331,12 +1961,20 @@ class CalendarEvent {
1331
1961
  * @param {VegaCalendarRawEvent} eventOptions - The `eventOptions` parameter in the constructor
1332
1962
  * represents the raw event data for a Vega calendar event. It contains information such as the event
1333
1963
  * title, start and end dates, location, description, and any other relevant details about the event.
1334
- */
1335
- constructor(eventOptions) {
1964
+ * @param {string} eventKey If a value is not provided for `eventKey`, a UUID (Universally
1965
+ * Unique Identifier) will be generated as a default value. This identifier is used to distinguish
1966
+ * different events and can be helpful for tracking
1967
+ */
1968
+ constructor(eventOptions, eventKey) {
1969
+ // the default value is 1 when the event end date is same as start date
1970
+ this._eventSpansDays = 1;
1971
+ this.repeatPattern = null;
1336
1972
  this._event = eventOptions;
1337
- this._eventKey = misc.generateUUID();
1973
+ this._eventKey = eventKey || misc.generateUUID();
1338
1974
  this.checkEventRequireField(eventOptions);
1339
1975
  this.initDate(eventOptions);
1976
+ this.initEventSpansDays();
1977
+ this.initRepeatPattern();
1340
1978
  }
1341
1979
  /**
1342
1980
  * The function returns the raw event data for a VegaCalendar event.
@@ -1395,12 +2033,12 @@ class CalendarEvent {
1395
2033
  return !!this._event.isAllDay;
1396
2034
  }
1397
2035
  /**
1398
- * The function isRepeatEvent returns a boolean value based on whether the event's repeat property is not equal to 'none'.
2036
+ * The function isRepeatEvent returns a boolean value based on whether the event's repeatOptions property is not equal to 'none'.
1399
2037
  *
1400
2038
  * @returns {boolean} The method `isRepeatEvent` returns a boolean value indicating whether the `_event` has a repeat value other than 'none'.
1401
2039
  */
1402
2040
  get isRepeatEvent() {
1403
- return this._event.repeat !== 'none';
2041
+ return this.repeatPattern !== null;
1404
2042
  }
1405
2043
  /**
1406
2044
  * The function returns the start date property of an object.
@@ -1434,16 +2072,39 @@ class CalendarEvent {
1434
2072
  get endTime() {
1435
2073
  return this._endTime;
1436
2074
  }
2075
+ /**
2076
+ * This function returns the number of days that an event spans.
2077
+ *
2078
+ * @returns {number} The method `get eventSpansDays()` is returning the value of the property
2079
+ * `_eventSpansDays`, which is of type `number`.
2080
+ */
2081
+ get eventSpansDays() {
2082
+ return this._eventSpansDays;
2083
+ }
2084
+ /**
2085
+ * The function `copyTo` copies a calendar event with updated start and end dates.
2086
+ *
2087
+ * @param {string} eventKey - The `eventKey` parameter in the `copyTo` function is a string that represents the key or identifier of the new calendar event that will be created.
2088
+ * @param {CalendarDate} startDate - The `startDate` parameter in the `copyTo` function represents
2089
+ * the starting date of a calendar event. It is of type `CalendarDate`, which may contain information such as the day, month, and year of the event.
2090
+ * @returns {CalendarEvent} A new `CalendarEvent` object is being returned with the properties from the original
2091
+ * `_event` object (excluding `repeatOptions`) and the `startDate` and `endDate` properties set to
2092
+ * the `toDate()` values of the `startDate` and `endDate` parameters.
2093
+ */
2094
+ copyTo(eventKey, startDate) {
2095
+ const endDate = this._eventSpansDays > 1
2096
+ ? new Date(startDate.year, startDate.month - 1, startDate.date + (this._eventSpansDays - 1))
2097
+ : startDate.toDate();
2098
+ const result = new CalendarEvent(Object.assign(Object.assign({}, this._event), { startDate: startDate.toDate(), endDate: endDate, startTime: this.startTime, endTime: this.endTime }), eventKey);
2099
+ return result;
2100
+ }
1437
2101
  /**
1438
2102
  * Check the event is a group event or not
1439
2103
  *
1440
2104
  * @returns {boolean} true or false
1441
2105
  */
1442
2106
  isGroupEvent() {
1443
- const { year: startYear, month: startMonth, date: startDay, } = CalendarDate.from(this.startDate);
1444
- const { year: endYear, month: endMonth, date: endDay, } = CalendarDate.from(this.endDate);
1445
- return (!(startYear === endYear && startMonth === endMonth && startDay === endDay) &&
1446
- this._event.repeat !== 'daily');
2107
+ return this._eventSpansDays > 1;
1447
2108
  }
1448
2109
  /**
1449
2110
  * This TypeScript function checks if a given date falls within the range of a calendar event based on its start and end dates, considering different repeat types like daily, weekly, monthly, and yearly.
@@ -1456,23 +2117,8 @@ class CalendarEvent {
1456
2117
  const { startDate, endDate } = this;
1457
2118
  const startCalendarDate = CalendarDate.from(startDate);
1458
2119
  const endCalendarDate = CalendarDate.from(new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate() + 1));
1459
- const repeat = this._event.repeat;
1460
2120
  const currentDate = date.toDate();
1461
- if (startCalendarDate.toDate() <= currentDate) {
1462
- switch (repeat) {
1463
- case 'daily':
1464
- return true;
1465
- case 'weekly':
1466
- return currentDate.getDay() === startDate.getDay();
1467
- case 'monthly':
1468
- return date.date === startCalendarDate.date;
1469
- case 'yearly':
1470
- return date.month === startCalendarDate.month && date.date === startCalendarDate.date;
1471
- default:
1472
- return endCalendarDate.toDate() > currentDate;
1473
- }
1474
- }
1475
- return false;
2121
+ return startCalendarDate.toDate() <= currentDate && endCalendarDate.toDate() > currentDate;
1476
2122
  }
1477
2123
  /**
1478
2124
  * Get the number of minutes the event lasted
@@ -1487,6 +2133,21 @@ class CalendarEvent {
1487
2133
  const endDate = new Date(now.year, now.month, now.date, Number(endHour) === 0 && Number(startHour) !== 0 ? 24 : Number(endHour), Number(endMinutes));
1488
2134
  return (endDate.valueOf() - startDate.valueOf()) / (60 * 1000);
1489
2135
  }
2136
+ /**
2137
+ * This function returns an array of repeat series based on a given calendar period.
2138
+ *
2139
+ * @param {CalendarPeriod} period - The `period` parameter in the `getRepeatSeries` method is of type
2140
+ * `CalendarPeriod`. It represents a specific time period within a calendar, typically defined by a
2141
+ * start date and an end date. The method uses this period to generate a series of repeated events
2142
+ * based on a daily repeat pattern specified
2143
+ * @returns {CalendarDate[]} repeat start date array
2144
+ */
2145
+ getRepeatSeries(period) {
2146
+ if (this.repeatPattern) {
2147
+ return this.repeatPattern.getRepeatSeries(period, this._eventSpansDays);
2148
+ }
2149
+ return [];
2150
+ }
1490
2151
  /**
1491
2152
  * The function `convertTimeTo24Hour` converts a time string from 12-hour format to 24-hour format in TypeScript.
1492
2153
  *
@@ -1574,6 +2235,23 @@ class CalendarEvent {
1574
2235
  this._endTime = this.convertTimeTo24Hour(endTime);
1575
2236
  }
1576
2237
  }
2238
+ /**
2239
+ * The function initializes a repeat pattern controller for a calendar event with specified start and end dates and repeat options.
2240
+ */
2241
+ initRepeatPattern() {
2242
+ if (this._event.repeatOptions && this._event.repeatOptions.frequency) {
2243
+ this.repeatPattern = calendarEventRepeatPatternFactory.getPattern(this._startDate, this._event.repeatOptions);
2244
+ }
2245
+ }
2246
+ /**
2247
+ * Initializes the event cross days by the event start date and end date.
2248
+ */
2249
+ initEventSpansDays() {
2250
+ const start = CalendarDate.from(this.startDate);
2251
+ const end = CalendarDate.from(this.endDate);
2252
+ this._eventSpansDays =
2253
+ (end.toDate().valueOf() - start.toDate().valueOf()) / (24 * 60 * 60 * 1000) + 1;
2254
+ }
1577
2255
  }
1578
2256
 
1579
2257
  var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -1584,6 +2262,11 @@ var __decorate$c = (undefined && undefined.__decorate) || function (decorators,
1584
2262
  };
1585
2263
  /** The `VegaCalendarEventController` class in TypeScript manages calendar events, initializes event layouts, retrieves events for the current date, and checks if a date falls within the range of a calendar event. */
1586
2264
  class VegaCalendarEventController extends globalSlimmerRegistry.VegaSlimmer {
2265
+ constructor() {
2266
+ super(...arguments);
2267
+ // This map is cache for newly generated calendar events
2268
+ this.repeatEventMap = new Map();
2269
+ }
1587
2270
  /**
1588
2271
  * The function `getCurrentDateEvent` returns an array of calendar events for the current date, including both normal events and group events.
1589
2272
  *
@@ -1594,7 +2277,7 @@ class VegaCalendarEventController extends globalSlimmerRegistry.VegaSlimmer {
1594
2277
  * the group events and returns the combined array.
1595
2278
  */
1596
2279
  getCurrentDateEvents(date) {
1597
- const allEvents = this.calendarEvents;
2280
+ const allEvents = this.createRepeatEvents();
1598
2281
  return allEvents.filter((item) => item.isCurrentDayEvent(date));
1599
2282
  }
1600
2283
  /**
@@ -1604,6 +2287,7 @@ class VegaCalendarEventController extends globalSlimmerRegistry.VegaSlimmer {
1604
2287
  */
1605
2288
  updateAfterEventChange(newEvents) {
1606
2289
  this.initCalendarEvents(newEvents);
2290
+ this.repeatEventMap.clear();
1607
2291
  }
1608
2292
  /**
1609
2293
  * initial calendar events in first time
@@ -1631,10 +2315,57 @@ class VegaCalendarEventController extends globalSlimmerRegistry.VegaSlimmer {
1631
2315
  }
1632
2316
  this.calendarEvents = result;
1633
2317
  }
2318
+ /**
2319
+ * We need generate new calendar event from the full-day repeat calendar event, so we can render those event as normal full-day event
2320
+ *
2321
+ * @returns {CalendarEvent[]} The `handleRepeatEvents` method returns an array of `CalendarEvent` objects.
2322
+ */
2323
+ createRepeatEvents() {
2324
+ const allEvents = this.calendarEvents;
2325
+ const otherEvents = [];
2326
+ const newRepeatEvents = [];
2327
+ allEvents.forEach((item) => {
2328
+ if (item.isRepeatEvent) {
2329
+ const repeatSeries = item.getRepeatSeries(this.currentPeriod);
2330
+ repeatSeries.forEach((series) => {
2331
+ newRepeatEvents.push(this.generateCalendarEventByRepeatSeries(item, series));
2332
+ });
2333
+ }
2334
+ else {
2335
+ otherEvents.push(item);
2336
+ }
2337
+ });
2338
+ return newRepeatEvents.concat(otherEvents);
2339
+ }
2340
+ /**
2341
+ * This function generates a calendar event based on a repeat series and stores it in a map to avoid duplicate creation.
2342
+ *
2343
+ * @param {CalendarEvent} calendarEvent - The `calendarEvent` parameter represents a single event on
2344
+ * a calendar. It contains information such as the event's start date, end date, and other details.
2345
+ * @param {CalendarDate} series - The repeat start date
2346
+ * @returns {CalendarEvent} The function `generateCalendarEventByRepeatSeries` returns a `CalendarEvent` object. If
2347
+ * the event key already exists in the `repeatEventMap`, it returns the corresponding `CalendarEvent`
2348
+ * object from the map. Otherwise, it creates a new `CalendarEvent` object based on the input
2349
+ * `calendarEvent` and `series` parameters, adds it to the `repeatEventMap`, and then
2350
+ */
2351
+ generateCalendarEventByRepeatSeries(calendarEvent, series) {
2352
+ const eventKey = `${calendarEvent.eventKey}-${series.year}${series.month}${series.date}`;
2353
+ if (this.repeatEventMap.has(eventKey)) {
2354
+ return this.repeatEventMap.get(eventKey);
2355
+ }
2356
+ else {
2357
+ const result = calendarEvent.copyTo(eventKey, series);
2358
+ this.repeatEventMap.set(eventKey, result);
2359
+ return result;
2360
+ }
2361
+ }
1634
2362
  }
1635
2363
  __decorate$c([
1636
2364
  globalSlimmerRegistry.MapToComponentField({ writable: true })
1637
2365
  ], VegaCalendarEventController.prototype, "calendarEvents", void 0);
2366
+ __decorate$c([
2367
+ globalSlimmerRegistry.MapToComponentField()
2368
+ ], VegaCalendarEventController.prototype, "currentPeriod", void 0);
1638
2369
  __decorate$c([
1639
2370
  globalSlimmerRegistry.MapToComponentField()
1640
2371
  ], VegaCalendarEventController.prototype, "events", void 0);
@@ -2462,7 +3193,7 @@ __decorate$6([
2462
3193
  globalSlimmerRegistry.MapToComponentField()
2463
3194
  ], VegaCalendarFullDayEventLayoutRenderer.prototype, "calendarView", void 0);
2464
3195
 
2465
- const vegaCalendarCss = ".border-divider-top{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-left-width:0px;border-right-width:0px;border-bottom-width:0px}.border-divider-left{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-top-width:0px;border-right-width:0px;border-bottom-width:0px}.border-divider-right{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-top-width:0px;border-left-width:0px;border-bottom-width:0px}.border-divider-bottom{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-top-width:0px;border-left-width:0px;border-right-width:0px}:host{display:flex;flex-direction:column;border-radius:12px;border:1px solid rgba(var(--v-border-divider, 171, 198, 216, 1));background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));overflow:hidden;width:100%;height:100%;box-sizing:border-box;max-height:1966px}.calendar-switch-panel{padding:24px;border-bottom-width:1px;border-top-width:0px;border-left-width:0px;border-right-width:0px;border-style:solid;border-color:rgba(var(--v-border-color-divider, 171, 198, 216, 1));flex-shrink:0;width:100%;box-sizing:border-box}.calendar-switch-panel .calendar-date-switch-container{display:flex;gap:8px;align-items:center;flex-direction:row}.calendar-switch-panel .calendar-view-switch-container{display:flex;gap:16px;align-items:center;flex-direction:row}.calendar-switch-panel .calendar-current-date{padding-left:8px}.calendar-view{width:100%;position:relative;flex-grow:1;overflow-y:auto;overflow-x:hidden}.calendar-view-month .calendar-view-month-container{width:100%;display:grid;min-height:100%;grid-template-rows:43px repeat(6, minmax(64px, 1fr))}.calendar-view-month .calendar-view-title{background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));top:0;left:0;z-index:62}.calendar-view-month .calendar-view-title div{padding-top:12px;padding-bottom:12px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px;text-align:center}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-month .calendar-view-title div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-month .calendar-view-title div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-month .calendar-view-title div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}.calendar-view-month .calendar-view-row{position:relative;display:grid;grid-template-rows:1fr;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-month .calendar-view-row.calendar-view-title{position:sticky}.calendar-view-month .calendar-view-row:last-child{border-bottom-width:0px}.calendar-view-month .calendar-view-row .row-cell{overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.calendar-view-month .calendar-view-row .row-cell:last-child{border-right-width:0px}.calendar-view-month .calendar-view-row .row-cell .date{padding-top:4px;padding-bottom:4px;padding-right:12px;padding-left:8px}.calendar-view-month .calendar-view-row .row-cell .date>div{display:inline-block;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-month .calendar-view-row .row-cell .date>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-month .calendar-view-row .row-cell .date>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-month .calendar-view-row .row-cell .date>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}.calendar-view-month .calendar-view-row .row-cell .date .month-block{margin-right:2px}.calendar-view-month .calendar-view-row .row-cell .date .grid-col{text-align:center;border-top-left-radius:9999px;border-bottom-left-radius:9999px;border-top-right-radius:9999px;border-bottom-right-radius:9999px;cursor:pointer;width:18px;height:18px;line-height:18px}.calendar-view-month .calendar-view-row .row-cell .date .grid-col:hover{background-color:rgba(var(--v-bg-action-secondary-hover, 4, 112, 236, 0.1))}.calendar-view-month .calendar-view-row .row-cell .date .grid-col:active{background-color:rgba(var(--v-bg-action-secondary-active, 29, 65, 195, 0.1))}.calendar-view-month .calendar-view-row .row-cell .date .grid-col:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:2px}.calendar-view-month .calendar-view-row .row-cell.current-month-day .date>div{color:rgba(var(--v-text-primary, 32, 54, 69, 1))}.calendar-view-month .calendar-view-row .row-cell.disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1))}.calendar-view-month .calendar-view-row .row-cell.disabled .date>div{color:rgba(var(--v-text-disabled, 176, 180, 181, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col{background-color:rgba(var(--v-bg-action, 19, 98, 226, 1));border-top-left-radius:9999px;border-bottom-left-radius:9999px;color:rgba(var(--v-text-on-action, 252, 252, 252, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col:hover{background-color:rgba(var(--v-bg-action-hover, 4, 112, 236, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col:active{background-color:rgba(var(--v-bg-action-active, 29, 65, 195, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:2px}.calendar-view-container{width:100%}.calendar-view-container .calendar-view-title-container{background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));position:sticky;top:0;left:0;z-index:62}.calendar-view-container .calendar-view-row{box-sizing:border-box;width:100%;display:flex;flex-direction:row}.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{width:72px;text-align:right;padding-right:8px;box-sizing:border-box;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));flex-shrink:0}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}.calendar-view-container .calendar-view-title{width:100%}.calendar-view-container .calendar-view-title>div{padding:12px;padding-bottom:8px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px;text-align:center;display:flex;flex-direction:column;gap:8px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-title>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-container .calendar-view-title>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-container .calendar-view-title>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}.calendar-view-container .calendar-view-title .week-day{cursor:pointer;color:rgba(var(--v-text-primary, 32, 54, 69, 1));font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-title .week-day{font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-container .calendar-view-title .week-day{font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-container .calendar-view-title .week-day{font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}}.calendar-view-container .calendar-view-title .active div{color:rgba(var(--v-text-link, 19, 98, 226, 1))}.calendar-view-container .calendar-view-event-all-container{align-items:center}.calendar-view-container .calendar-view-event-all{display:grid;grid-template-rows:1fr;flex-grow:1;min-height:18px}.calendar-view-container .calendar-view-day-container .time-line{display:grid;grid-template-rows:16px repeat(24, minmax(74px, 1fr))}.calendar-view-container .calendar-view-day-container .time-line .time-text{margin-top:-9px}.calendar-view-container .calendar-view-day-container .calendar-view-content{width:100%}.calendar-view-container .calendar-view-day-container .calendar-view-content .grid-col{display:grid;grid-template-rows:16px repeat(24, minmax(74px, 1fr));grid-template-columns:minmax(64px, 1fr)}.calendar-view-container .calendar-view-day-container .calendar-view-content .grid-col>.border-divider-top:first-child{border-top-width:0px}.calendar-view-container .calendar-view-content-container{width:100%;position:relative}.calendar-view-week .calendar-view-container{min-height:100%}.calendar-view-week .calendar-view-container .calendar-view-title{display:grid;grid-template-rows:1fr;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .calendar-view-container .calendar-view-event-all{grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .calendar-view-container .calendar-view-day-container .calendar-view-content{display:grid;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .time-marker-container .time-marker{display:grid;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .day-event-container{display:grid;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-day .calendar-view-container{min-height:100%}.time-marker-container{position:absolute;min-width:100%;left:0;top:16px;height:calc(100% - 16px);pointer-events:none}.time-marker-container.hidden{display:none}.time-marker-container .time-marker{position:absolute;height:2px;display:grid;min-width:100%;left:0;top:0;z-index:61}.time-marker-container .time-marker div{width:100%;height:2px;background-color:rgba(var(--v-bg-status-error, 255, 110, 139, 1));opacity:0.3}.time-marker-container .time-marker div.active{opacity:1;position:relative}.time-marker-container .time-marker div.active::before{content:\"\";display:block;border-top-left-radius:9999px;border-bottom-left-radius:9999px;border-top-right-radius:9999px;border-bottom-right-radius:9999px;position:absolute;width:8px;height:8px;background-color:rgba(var(--v-bg-status-error, 255, 110, 139, 1));top:-3px;left:-4px}.day-event-container{position:absolute;min-width:100%;left:0;top:16px;height:calc(100% - 16px);pointer-events:none}.day-event-container .day-event-col{height:100%;overflow:hidden}.day-event-container vega-calendar-event{pointer-events:auto;height:100%}.calendar-view-month .month-event-row{position:absolute;width:100%;overflow:hidden;height:calc(100% - 26px);left:0;bottom:0}.calendar-view-month .events-container{width:100%;box-sizing:border-box;overflow:hidden;padding:2px;display:flex;flex-direction:column;gap:2px;justify-content:space-between;flex-grow:1}.calendar-view-month .events-container .event-list{display:flex;flex-direction:column;gap:2px;flex-grow:1}.calendar-view-month .events-container .event-list .month-event-block{box-sizing:border-box;padding-left:2px;padding-right:3px}.calendar-view-month .events-container .month-event-more .more-button{display:inline-block;height:16px;font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px;color:rgba(var(--v-text-link, 19, 98, 226, 1));cursor:pointer;border-radius:2px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-month .events-container .month-event-more .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-month .events-container .month-event-more .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-month .events-container .month-event-more .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}.calendar-view-month .events-container .month-event-more .more-button:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:0px}.calendar-view-container .calendar-view-event-all{position:relative}.calendar-view-container .calendar-view-event-all .placeholder-block{padding-top:2px;padding-bottom:2px;box-sizing:content-box}.calendar-view-container .calendar-view-event-all .placeholder-block span{display:none}.calendar-view-container .calendar-view-event-all .day-event-block{padding-top:2px;padding-right:2px;box-sizing:border-box;padding-left:3px}.calendar-view-container .day-event-col{position:relative}.calendar-view-container .day-event-col .time-event-block{box-sizing:border-box;padding-right:8px;padding-bottom:2px;padding-top:3px}.calendar-view-container .day-event-col .time-event-block vega-calendar-event.bg-shadow::part(event-container):not(:focus){outline:2px solid rgba(var(--v-bg-primary, 252, 252, 252, 1))}.calendar-view-container .day-event-col .time-event-block:focus-within{z-index:60 !important}";
3196
+ const vegaCalendarCss = ".border-divider-top{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-left-width:0px;border-right-width:0px;border-bottom-width:0px}.border-divider-left{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-top-width:0px;border-right-width:0px;border-bottom-width:0px}.border-divider-right{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-top-width:0px;border-left-width:0px;border-bottom-width:0px}.border-divider-bottom{border:1px solid rgba(var(--v-border-divider-secondary, 199, 217, 229, 1));border-top-width:0px;border-left-width:0px;border-right-width:0px}:host{display:flex;flex-direction:column;border-radius:12px;border:1px solid rgba(var(--v-border-divider, 171, 198, 216, 1));background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));overflow:hidden;width:100%;height:100%;box-sizing:border-box;max-height:1966px}.calendar-switch-panel{padding:24px;border-bottom-width:1px;border-top-width:0px;border-left-width:0px;border-right-width:0px;border-style:solid;border-color:rgba(var(--v-border-color-divider, 171, 198, 216, 1));flex-shrink:0;width:100%;box-sizing:border-box}.calendar-switch-panel .calendar-date-switch-container{display:flex;gap:8px;align-items:center;flex-direction:row}.calendar-switch-panel .calendar-view-switch-container{display:flex;gap:16px;align-items:center;flex-direction:row}.calendar-switch-panel .calendar-current-date{padding-left:8px}.calendar-view{width:100%;position:relative;flex-grow:1;overflow-y:auto;overflow-x:hidden}.calendar-view-month .calendar-view-month-container{width:100%;display:grid;min-height:100%;grid-template-rows:43px repeat(6, minmax(64px, 1fr))}.calendar-view-month .calendar-view-title{background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));top:0;left:0;z-index:62}.calendar-view-month .calendar-view-title div{padding-top:12px;padding-bottom:12px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px;text-align:center}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-month .calendar-view-title div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-month .calendar-view-title div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-month .calendar-view-title div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}.calendar-view-month .calendar-view-row{position:relative;display:grid;grid-template-rows:1fr;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-month .calendar-view-row.calendar-view-title{position:sticky}.calendar-view-month .calendar-view-row:last-child{border-bottom-width:0px}.calendar-view-month .calendar-view-row .row-cell{overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.calendar-view-month .calendar-view-row .row-cell:last-child{border-right-width:0px}.calendar-view-month .calendar-view-row .row-cell .date{padding-top:4px;padding-bottom:4px;padding-right:12px;padding-left:8px}.calendar-view-month .calendar-view-row .row-cell .date>div{display:inline-block;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-month .calendar-view-row .row-cell .date>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-month .calendar-view-row .row-cell .date>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-month .calendar-view-row .row-cell .date>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}.calendar-view-month .calendar-view-row .row-cell .date .month-block{margin-right:2px}.calendar-view-month .calendar-view-row .row-cell .date .grid-col{text-align:center;border-top-left-radius:9999px;border-bottom-left-radius:9999px;border-top-right-radius:9999px;border-bottom-right-radius:9999px;cursor:pointer;width:18px;height:18px;line-height:18px}.calendar-view-month .calendar-view-row .row-cell .date .grid-col:hover{background-color:rgba(var(--v-bg-action-secondary-hover, 4, 112, 236, 0.1))}.calendar-view-month .calendar-view-row .row-cell .date .grid-col:active{background-color:rgba(var(--v-bg-action-secondary-active, 29, 65, 195, 0.1))}.calendar-view-month .calendar-view-row .row-cell .date .grid-col:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:2px}.calendar-view-month .calendar-view-row .row-cell.current-month-day .date>div{color:rgba(var(--v-text-primary, 32, 54, 69, 1))}.calendar-view-month .calendar-view-row .row-cell.disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1))}.calendar-view-month .calendar-view-row .row-cell.disabled .date>div{color:rgba(var(--v-text-disabled, 176, 180, 181, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col{background-color:rgba(var(--v-bg-action, 19, 98, 226, 1));border-top-left-radius:9999px;border-bottom-left-radius:9999px;color:rgba(var(--v-text-on-action, 252, 252, 252, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col:hover{background-color:rgba(var(--v-bg-action-hover, 4, 112, 236, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col:active{background-color:rgba(var(--v-bg-action-active, 29, 65, 195, 1))}.calendar-view-month .calendar-view-row .row-cell.active .date .grid-col:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:2px}.calendar-view-container{width:100%}.calendar-view-container .calendar-view-title-container{background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));position:sticky;top:0;left:0;z-index:62}.calendar-view-container .calendar-view-row{box-sizing:border-box;width:100%;display:flex;flex-direction:row}.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{width:72px;text-align:right;padding-right:8px;box-sizing:border-box;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));flex-shrink:0}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-container .calendar-view-row .time-line,.calendar-view-container .calendar-view-row .time-line-empty,.calendar-view-container .calendar-view-row .time-line-all{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px}}.calendar-view-container .calendar-view-title{width:100%}.calendar-view-container .calendar-view-title>div{padding:12px;padding-bottom:8px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px;text-align:center;display:flex;flex-direction:column;gap:8px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-title>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-container .calendar-view-title>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-container .calendar-view-title>div{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:700;line-height:18px}}.calendar-view-container .calendar-view-title .week-day{color:rgba(var(--v-text-primary, 32, 54, 69, 1));font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-title .week-day{font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-container .calendar-view-title .week-day{font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-container .calendar-view-title .week-day{font-family:\"Inter\", sans-serif;font-size:20px;font-weight:500;line-height:24px;letter-spacing:0px}}.calendar-view-container .calendar-view-title .active div{color:rgba(var(--v-text-link, 19, 98, 226, 1))}.calendar-view-container .calendar-view-event-all-container{align-items:center}.calendar-view-container .calendar-view-event-all{display:grid;grid-template-rows:1fr;flex-grow:1;min-height:18px}.calendar-view-container .calendar-view-day-container .time-line{display:grid;grid-template-rows:16px repeat(24, minmax(74px, 1fr))}.calendar-view-container .calendar-view-day-container .time-line .time-text{margin-top:-9px}.calendar-view-container .calendar-view-day-container .calendar-view-content{width:100%}.calendar-view-container .calendar-view-day-container .calendar-view-content .grid-col{display:grid;grid-template-rows:16px repeat(24, minmax(74px, 1fr));grid-template-columns:minmax(64px, 1fr)}.calendar-view-container .calendar-view-day-container .calendar-view-content .grid-col>.border-divider-top:first-child{border-top-width:0px}.calendar-view-container .calendar-view-content-container{width:100%;position:relative}.calendar-view-week .calendar-view-container{min-height:100%}.calendar-view-week .calendar-view-container .calendar-view-title{display:grid;grid-template-rows:1fr;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .calendar-view-container .calendar-view-event-all{grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .calendar-view-container .calendar-view-day-container .calendar-view-content{display:grid;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .time-marker-container .time-marker{display:grid;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-week .day-event-container{display:grid;grid-template-columns:repeat(7, minmax(64px, 1fr))}.calendar-view-day .calendar-view-container{min-height:100%}.time-marker-container{position:absolute;min-width:100%;left:0;top:16px;height:calc(100% - 16px);pointer-events:none}.time-marker-container.hidden{display:none}.time-marker-container .time-marker{position:absolute;height:2px;display:grid;min-width:100%;left:0;top:0;z-index:61}.time-marker-container .time-marker div{width:100%;height:2px;background-color:rgba(var(--v-bg-status-error, 255, 110, 139, 1));opacity:0.3}.time-marker-container .time-marker div.active{opacity:1;position:relative}.time-marker-container .time-marker div.active::before{content:\"\";display:block;border-top-left-radius:9999px;border-bottom-left-radius:9999px;border-top-right-radius:9999px;border-bottom-right-radius:9999px;position:absolute;width:8px;height:8px;background-color:rgba(var(--v-bg-status-error, 255, 110, 139, 1));top:-3px;left:-4px}.day-event-container{position:absolute;min-width:100%;left:0;top:16px;height:calc(100% - 16px);pointer-events:none}.day-event-container .day-event-col{height:100%;overflow:hidden}.day-event-container vega-calendar-event{pointer-events:auto;height:100%}.calendar-view-month .month-event-row{position:absolute;width:100%;overflow:hidden;height:calc(100% - 26px);left:0;bottom:0}.calendar-view-month .events-container{width:100%;box-sizing:border-box;overflow:hidden;padding:2px;display:flex;flex-direction:column;gap:2px;justify-content:space-between;flex-grow:1}.calendar-view-month .events-container .event-list{display:flex;flex-direction:column;gap:2px;flex-grow:1}.calendar-view-month .events-container .event-list .month-event-block{box-sizing:border-box;padding-left:2px;padding-right:3px}.calendar-view-month .events-container .month-event-more .more-button{display:inline-block;height:16px;font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px;color:rgba(var(--v-text-link, 19, 98, 226, 1));cursor:pointer;border-radius:2px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-month .events-container .month-event-more .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.calendar-view-month .events-container .month-event-more .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.calendar-view-month .events-container .month-event-more .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}.calendar-view-month .events-container .month-event-more .more-button:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:0px}.calendar-view-container .calendar-view-event-all{position:relative}.calendar-view-container .calendar-view-event-all .placeholder-block{padding-top:2px;padding-bottom:2px;box-sizing:content-box}.calendar-view-container .calendar-view-event-all .placeholder-block span{display:none}.calendar-view-container .calendar-view-event-all .day-event-block{padding-top:2px;padding-right:2px;box-sizing:border-box;padding-left:3px}.calendar-view-container .day-event-col{position:relative}.calendar-view-container .day-event-col .time-event-block{box-sizing:border-box;padding-right:8px;padding-bottom:2px;padding-top:3px}.calendar-view-container .day-event-col .time-event-block vega-calendar-event.bg-shadow::part(event-container):not(:focus){outline:2px solid rgba(var(--v-bg-primary, 252, 252, 252, 1))}.calendar-view-container .day-event-col .time-event-block:focus-within{z-index:60 !important}";
2466
3197
 
2467
3198
  var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2468
3199
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -2481,6 +3212,8 @@ const VegaCalendar = class {
2481
3212
  this.change = index.createEvent(this, "change", 7);
2482
3213
  this.vegaEventClick = index.createEvent(this, "vegaEventClick", 7);
2483
3214
  this.eventClick = index.createEvent(this, "eventClick", 7);
3215
+ this.vegaDateDblClick = index.createEvent(this, "vegaDateDblClick", 7);
3216
+ this.dateDblClick = index.createEvent(this, "dateDblClick", 7);
2484
3217
  this.globalSlimmer = {};
2485
3218
  this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
2486
3219
  this.renderer = new VegaCalendarRenderer();
@@ -2502,6 +3235,7 @@ const VegaCalendar = class {
2502
3235
  this.eventResponsiveController = new VegaCalendarEventResponsiveController();
2503
3236
  this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaCalendar, vegaEventId.VegaChange);
2504
3237
  this.eventClickEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaCalendar, vegaEventId.VegaEventClick);
3238
+ this.dateDblClickEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaCalendar, vegaEventId.VegaDateDblClick);
2505
3239
  this.changeEventPrevent = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([vegaEventId.VegaChange], () => this.switchPanelRenderer.getSwitchPanelRef());
2506
3240
  this.timeFormatNotifySlimmer = subStateObserverSlimmer.createSubStateNotifySlimmer(VegaCalendar, 'timeFormat', 'watchTimeFormat');
2507
3241
  this.calendarEvents = [];
@@ -2516,9 +3250,12 @@ const VegaCalendar = class {
2516
3250
  this.timeFormat = '24-hour';
2517
3251
  }
2518
3252
  /**
2519
- * watch the state calendar current period change
3253
+ * Tracks changes to the current period state.
3254
+ *
3255
+ * @param {CalendarPeriod} newValue Specifies the new calendar period.
3256
+ * @param {CalendarPeriod} oldValue Specifies the old calendar period.
2520
3257
  */
2521
- watchCurrentPeriodChange() {
3258
+ watchCurrentPeriodChange(newValue, oldValue) {
2522
3259
  }
2523
3260
  /**
2524
3261
  * Watch the view mode change
@@ -2612,6 +3349,9 @@ __decorate$5([
2612
3349
  __decorate$5([
2613
3350
  globalSlimmerRegistry.InjectVegaSlimmer()
2614
3351
  ], VegaCalendar.prototype, "eventClickEmitter", void 0);
3352
+ __decorate$5([
3353
+ globalSlimmerRegistry.InjectVegaSlimmer()
3354
+ ], VegaCalendar.prototype, "dateDblClickEmitter", void 0);
2615
3355
  __decorate$5([
2616
3356
  globalSlimmerRegistry.InjectVegaSlimmer()
2617
3357
  ], VegaCalendar.prototype, "changeEventPrevent", void 0);