@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
@@ -0,0 +1,60 @@
1
+ import { CalendarDate } from '../../../../../../helpers/calendar';
2
+ import { CalendarEventDailyRepeatPattern } from '../repeatPattern/calendarEventDailyRepeatPattern';
3
+ import { CalendarEventMonthlyRepeatPattern } from '../repeatPattern/calendarEventMonthlyRepeatPattern';
4
+ import { CalendarEventWeeklyRepeatPattern } from '../repeatPattern/calendarEventWeeklyRepeatPattern';
5
+ import { CalendarEventYearlyRepeatPattern } from '../repeatPattern/calendarEventYearlyRepeatPattern';
6
+ /** 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: */
7
+ class CalendarEventRepeatPatternFactory {
8
+ /**
9
+ * 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:
10
+ *
11
+ * @param {Date} startDate repeat start date
12
+ * @param {VegaCalendarEventRepeatOptions|undefined} repeatOptions repeat options
13
+ * @returns {CalendarEventBaseRepeatPattern} the match repeat pattern
14
+ */
15
+ getPattern(startDate, repeatOptions) {
16
+ const repeatStartDate = CalendarDate.from(startDate);
17
+ const { frequency, interval = 1, byWeekDay, until, count, } = repeatOptions;
18
+ const repeatEndDate = this.initDate(until);
19
+ return this.initRepeatPattern(frequency, repeatStartDate, interval < 1 ? 1 : interval, count, repeatEndDate, byWeekDay);
20
+ }
21
+ /**
22
+ * The `initDate` function initializes a `CalendarDate` object based on the input date string or Date object provided.
23
+ *
24
+ * @param {Nullable<string | Date>} date - The `date` parameter can be either a string or a Date object.
25
+ * @returns {Nullable<CalendarDate>} The function `initDate` returns a `Nullable<CalendarDate>`, which means it can return either a `CalendarDate` object or `null`.
26
+ */
27
+ initDate(date) {
28
+ if (date && typeof date === 'object') {
29
+ return CalendarDate.from(date);
30
+ }
31
+ else if (date && typeof date === 'string') {
32
+ const [month, day, year] = date.split('/');
33
+ return new CalendarDate(Number(year), Number(month), Number(day));
34
+ }
35
+ }
36
+ /**
37
+ * The function `initRepeatPattern` initializes a repeat pattern based on the frequency specified for a calendar event.
38
+ *
39
+ * @param {VegaCalendarEventRepeatType} frequency event frequency
40
+ * @param {CalendarDate} repeatStartDate event start date
41
+ * @param {number} interval event repeat interval
42
+ * @param {Nullable<number>} count the event repeat count
43
+ * @param {Nullable<CalendarDate>} repeatEndDate repeat end date
44
+ * @param {Nullable<VegaCalendarWeekDayType[]>} byWeekDay weekly week days
45
+ * @returns {CalendarEventBaseRepeatPattern} calendar event repeat pattern instance
46
+ */
47
+ initRepeatPattern(frequency, repeatStartDate, interval, count, repeatEndDate, byWeekDay) {
48
+ switch (frequency) {
49
+ case 'daily':
50
+ return new CalendarEventDailyRepeatPattern(repeatStartDate, interval, count, repeatEndDate);
51
+ case 'weekly':
52
+ return new CalendarEventWeeklyRepeatPattern(repeatStartDate, interval, count, repeatEndDate, byWeekDay);
53
+ case 'monthly':
54
+ return new CalendarEventMonthlyRepeatPattern(repeatStartDate, interval, count, repeatEndDate);
55
+ default:
56
+ return new CalendarEventYearlyRepeatPattern(repeatStartDate, interval, count, repeatEndDate);
57
+ }
58
+ }
59
+ }
60
+ export default new CalendarEventRepeatPatternFactory();
@@ -0,0 +1,163 @@
1
+ import { CalendarDate } from '../../../../../../helpers/calendar';
2
+ import { flatNestedArray } from '../../../../../../utils/array';
3
+ import { CalendarEventBaseRepeatPattern } from './baseRepeatPattern';
4
+ /** 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. */
5
+ export class CalendarEventWeeklyRepeatPattern extends CalendarEventBaseRepeatPattern {
6
+ /**
7
+ * 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.
8
+ *
9
+ * @param {CalendarDate} startDate - The `startDate` parameter represents the starting date of the
10
+ * calendar event or schedule. It is of type `CalendarDate`, which likely includes the year, month, and day components of a date.
11
+ * @param {number} interval - The `interval` parameter represents the frequency of the recurrence. For
12
+ * example, if `interval` is set to 1, the event will occur every week. If it's set to 2, the event
13
+ * will occur every two weeks.
14
+ * @param {Nullable<number>} count - The `count` parameter specifies the number of occurrences of the rule. If `count` is
15
+ * provided, the recurrence will generate at most that many occurrences. If `count` is not provided,
16
+ * the recurrence will continue indefinitely based on other parameters like `endDate` or `until`.
17
+ * @param {Nullable<CalendarDate>} until - The `until` parameter specifies the end date for the recurrence rule. If provided,
18
+ * the recurrence will continue until this date. If not provided, the recurrence will continue
19
+ * indefinitely based on other parameters like `count` or `interval`.
20
+ * @param {Nullable<VegaCalendarWeekDayType[]>} byWeekDay - The `byWeekDay` parameter is an array of
21
+ * `VegaCalendarWeekDayType` values, which represent the days of the week for which the event should occur.
22
+ */
23
+ constructor(startDate, interval, count, until, byWeekDay) {
24
+ super(startDate, interval, count, until);
25
+ this.byWeekDay = this.sortWeekDay(byWeekDay);
26
+ this.initCache();
27
+ }
28
+ /**
29
+ * The function `getRepeatSeries` retrieves a series of repeated events within a specified calendar period.
30
+ *
31
+ * @param {CalendarPeriod} period - The `period` parameter in the `getRepeatSeries` method represents
32
+ * a specific time period in the form of a `CalendarPeriod` object. This object typically contains a
33
+ * `startDate` and an `endDate`, which define the range of dates for which you want to generate repeat series.
34
+ * @param {number} eventSpansDays - the current repeat series cross days, default value is one
35
+ * @returns {CalendarDate[]} repeat start date array
36
+ */
37
+ getRepeatSeries(period, eventSpansDays = 1) {
38
+ this.generateRepeatDateCacheUntilEndDate(period.endDate);
39
+ return this.getValidCache().filter((item) => {
40
+ return this.isSeriesInPeriod(item, eventSpansDays, period);
41
+ });
42
+ }
43
+ /**
44
+ * This function generates repeated dates and caches them until a specified end date.
45
+ *
46
+ * @param {CalendarDate} endDate - The `endDate` parameter is a `CalendarDate` object that represents
47
+ * the date until which the repeat date cache needs to be generated. The function
48
+ * `generateRepeatDateCacheUntilEndDate` generates repeat dates until this specified end date.
49
+ */
50
+ generateRepeatDateCacheUntilEndDate(endDate) {
51
+ const lastMatchDate = this.cache[this.cache.length - 1];
52
+ if (lastMatchDate[0].toDate() < endDate.toDate() &&
53
+ (!this.count || (typeof this.count === 'number' && this.cache.length < this.count))) {
54
+ let nextMatchDate = this.getNextRepeatStartDate(lastMatchDate);
55
+ while (nextMatchDate && nextMatchDate[0].toDate() < endDate.toDate()) {
56
+ nextMatchDate = this.getNextRepeatStartDate(nextMatchDate);
57
+ if (typeof this.count === 'number' && this.getValidCache().length >= this.count) {
58
+ break;
59
+ }
60
+ }
61
+ }
62
+ }
63
+ /**
64
+ * The function getNextRepeatStartDate calculates the next start dates based on a given array of CalendarDate objects and returns them if certain conditions are met.
65
+ *
66
+ * @param {CalendarDate[]} dates - The `dates` parameter is an array of `CalendarDate` objects.
67
+ * @returns {Nullable<CalendarDate[]>} The `getNextRepeatStartDate` function returns a nullable array of `CalendarDate` objects.
68
+ * If there are no next dates available or if the cache count exceeds a specified limit, it returns
69
+ * `null`. Otherwise, it returns an array of `CalendarDate` objects representing the next start dates.
70
+ */
71
+ getNextRepeatStartDate(dates) {
72
+ const nextDate = this.getNextStartDates(dates);
73
+ if (nextDate.length === 0 ||
74
+ (typeof this.count === 'number' && this.getValidCache().length >= this.count)) {
75
+ return null;
76
+ }
77
+ else {
78
+ const nextCalendarDates = nextDate.map((item) => CalendarDate.from(item));
79
+ this.cache.push(nextCalendarDates);
80
+ return nextCalendarDates;
81
+ }
82
+ }
83
+ /**
84
+ * 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.
85
+ *
86
+ * @param {CalendarDate[]} dates - The `dates` parameter is an array of `CalendarDate` objects
87
+ * representing specific dates in a calendar. Each `CalendarDate` object has properties for the year,
88
+ * month, and date.
89
+ * @returns {Date[]} The `getNextStartDates` function returns an array of `Date` objects representing the next
90
+ * start dates based on the input `CalendarDate` array. The function calculates the next start dates
91
+ * by adding a specific interval (multiplied by 7 to represent weeks) to each date in the input array.
92
+ * Finally, it filters out any dates that are after a specified `until` date, if provided.
93
+ */
94
+ getNextStartDates(dates) {
95
+ const nextDates = dates.map((dateItem) => new Date(dateItem.year, dateItem.month - 1, dateItem.date + this.interval * 7));
96
+ return nextDates.filter((item) => !this.until || item <= this.until.toDate());
97
+ }
98
+ /**
99
+ * The `initCache` function initializes a cache of calendar dates based on the start date and weekly repeat pattern.
100
+ */
101
+ initCache() {
102
+ const result = [];
103
+ const currentWeekDayIndex = this.getCurrentDayIndex(this.repeatStartDate);
104
+ this.byWeekDay.forEach((day) => {
105
+ const index = CalendarEventWeeklyRepeatPattern.weekDay.indexOf(day);
106
+ const days = index - currentWeekDayIndex;
107
+ const { year, month, date } = this.repeatStartDate;
108
+ const dateItem = CalendarDate.from(new Date(year, month - 1, date + days));
109
+ result.push(dateItem);
110
+ });
111
+ this.cache = [result];
112
+ }
113
+ /**
114
+ * The function `sortWeekDay` sorts an array of week days based on their position in a predefined list.
115
+ *
116
+ * @param {boolean} weekDay - The `weekDay` parameter is an array of week day values that need to be sorted in a
117
+ * specific order. The function `sortWeekDay` takes this array and sorts it based on a predefined
118
+ * order specified in `CalendarEventWeeklyRepeatPattern.weekDay`.
119
+ * @returns {VegaCalendarWeekDayType[]} The `sortWeekDay` function is returning the `weekDay` array sorted based on the index of
120
+ * each `VegaCalendarWeekDayType` item in the `CalendarEventWeeklyRepeatPattern.weekDay` array.
121
+ */
122
+ sortWeekDay(weekDay) {
123
+ if (weekDay && weekDay.length) {
124
+ return weekDay
125
+ .map((item) => item.toLocaleLowerCase())
126
+ .sort((itemA, itemB) => {
127
+ return (CalendarEventWeeklyRepeatPattern.weekDay.indexOf(itemA) -
128
+ CalendarEventWeeklyRepeatPattern.weekDay.indexOf(itemB));
129
+ });
130
+ }
131
+ else {
132
+ return [CalendarEventWeeklyRepeatPattern.weekDay[this.getCurrentDayIndex(this.repeatStartDate)]];
133
+ }
134
+ }
135
+ /**
136
+ * This function returns the index of the current day in a week, with Sunday represented as 0.
137
+ *
138
+ * @param {CalendarDate} date - The `date` parameter in the `getCurrentDayIndex` function is of type
139
+ * `CalendarDate`, which is a custom data type representing a date in a calendar.
140
+ * @returns {number} The function `getCurrentDayIndex` returns the index of the current day in the week, with
141
+ * Sunday being represented as 0 and Saturday being represented as 6.
142
+ */
143
+ getCurrentDayIndex(date) {
144
+ return date.toDate().getDay();
145
+ }
146
+ /**
147
+ * The function `getValidCache` returns a filtered and concatenated array of CalendarDate objects from the cache based on a start date.
148
+ *
149
+ * @returns {CalendarDate[]} The `getValidCache` method returns an array of `CalendarDate` objects that meet the
150
+ * condition of having a date greater than or equal to the `startDate` property. The method first
151
+ * flattens a nested array of `CalendarDate` objects stored in the `cache` property, then filters out
152
+ * the `CalendarDate` objects that do not meet the condition, and finally concatenates the filtered
153
+ * array
154
+ */
155
+ getValidCache() {
156
+ const flatArr = flatNestedArray(this.cache.slice(1));
157
+ return this.cache[0]
158
+ .filter((item) => item.toDate() >= this.repeatStartDate.toDate())
159
+ .concat(flatArr)
160
+ .slice(0, typeof this.count === 'number' ? this.count : undefined);
161
+ }
162
+ }
163
+ CalendarEventWeeklyRepeatPattern.weekDay = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'].map((item) => item.toLowerCase());
@@ -0,0 +1,92 @@
1
+ import { CalendarDate } from '../../../../../../helpers/calendar';
2
+ import { CalendarEventBaseRepeatPattern } from './baseRepeatPattern';
3
+ /** The `CalendarEventYearlyRepeatPattern` class defines a yearly repeat pattern for calendar events, checking for matches and generating future dates based on specified criteria. */
4
+ export class CalendarEventYearlyRepeatPattern extends CalendarEventBaseRepeatPattern {
5
+ /**
6
+ * The constructor initializes a new instance with specified start and end dates, interval, count, and until date.
7
+ *
8
+ * @param {CalendarDate} startDate - The `startDate` parameter is of type `CalendarDate` and
9
+ * represents the starting date of a calendar event or interval.
10
+ * @param {number} interval - The `interval` parameter represents the frequency at which the event
11
+ * occurs. For example, if the interval is set to 2, the event will occur every 2 units of time (days,
12
+ * weeks, months, etc.).
13
+ * @param {Nullable<number>} count - The `count` parameter specifies the number of occurrences of the event. If `count`
14
+ * is provided, the event will repeat `count` times within the specified interval. If `count` is not
15
+ * provided, the event will repeat indefinitely based on the other parameters like `endDate` or
16
+ * `until`.
17
+ * @param {Nullable<CalendarDate>} until - The `until` parameter in the constructor is of type `Nullable<CalendarDate>`. This
18
+ * means that it can either accept a `CalendarDate` object or be `null`. It is used to specify a date
19
+ * until which the recurring event should repeat. If `until` is provided, the event
20
+ */
21
+ constructor(startDate, interval, count, until) {
22
+ super(startDate, interval, count, until);
23
+ this.matchDay = this.repeatStartDate.date;
24
+ this.matchMonth = this.repeatStartDate.month;
25
+ this.initCache();
26
+ }
27
+ /**
28
+ * The function generates repeat dates and caches them until reaching the specified end date.
29
+ *
30
+ * @param {CalendarDate} endDate - The `endDate` parameter in the
31
+ * `generateRepeatDateCacheUntilEndDate` function is a CalendarDate object that represents the date
32
+ * until which the repeat date cache should be generated. The function checks if the last date in the
33
+ * cache is before the `endDate`, and if so, it generates additional repeat dates
34
+ */
35
+ generateRepeatDateCacheUntilEndDate(endDate) {
36
+ const lastMatchDate = this.cache[this.cache.length - 1];
37
+ if (lastMatchDate.toDate() < endDate.toDate() &&
38
+ (!this.count || (typeof this.count === 'number' && this.cache.length < this.count))) {
39
+ let nextMatchDate = this.getNextRepeatStartDate(lastMatchDate);
40
+ while (nextMatchDate && nextMatchDate.toDate() < endDate.toDate()) {
41
+ nextMatchDate = this.getNextRepeatStartDate(nextMatchDate);
42
+ if (typeof this.count === 'number' && this.cache.length >= this.count) {
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * The function getNextRepeatStartDate calculates the next repeat start date based on a given date and certain conditions.
50
+ *
51
+ * @param {CalendarDate} date - The `date` parameter represents the current date for which you want to
52
+ * calculate the next repeat start date. It is of type `CalendarDate`, which seems to be a custom
53
+ * class or structure that holds year, month, and day information.
54
+ * @returns {Nullable<CalendarDate>} The function `getNextRepeatStartDate` returns either a `CalendarDate` object or `null`
55
+ * based on certain conditions. If the next date exceeds the `until` date or the count limit has been
56
+ * reached, it returns `null`. Otherwise, it adds the next date to the cache and returns it as a
57
+ * `CalendarDate`.
58
+ */
59
+ getNextRepeatStartDate(date) {
60
+ const nextDate = this.getNextStartDate(date.year + this.interval);
61
+ const nextCalendarDate = CalendarDate.from(nextDate);
62
+ if ((this.until && nextDate > this.until.toDate()) ||
63
+ (typeof this.count === 'number' && this.cache.length >= this.count)) {
64
+ return null;
65
+ }
66
+ else {
67
+ this.cache.push(nextCalendarDate);
68
+ return nextCalendarDate;
69
+ }
70
+ }
71
+ /**
72
+ * 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
73
+ *
74
+ * @param {number} year year
75
+ * @returns {Date} the new date
76
+ */
77
+ getNextStartDate(year) {
78
+ const nextDate = new Date(year, this.matchMonth - 1, this.matchDay);
79
+ if (nextDate.getDate() === this.matchDay && nextDate.getMonth() + 1 === this.matchMonth) {
80
+ return nextDate;
81
+ }
82
+ else {
83
+ return this.getNextStartDate(year + 1);
84
+ }
85
+ }
86
+ /**
87
+ * The function `initCache` initializes a cache array with the `startDate` value.
88
+ */
89
+ initCache() {
90
+ this.cache = [this.repeatStartDate];
91
+ }
92
+ }
@@ -0,0 +1,105 @@
1
+ import { CalendarDate, DayPeriod, MonthPeriod } from '../../../../../../helpers/calendar';
2
+ import calendarEventRepeatPatternFactory from '../repeatPattern/calendarEventRepeatPatternFactory';
3
+ import { CalendarEventDailyRepeatPattern } from '../repeatPattern/calendarEventDailyRepeatPattern';
4
+ import { CalendarEventMonthlyRepeatPattern } from '../repeatPattern/calendarEventMonthlyRepeatPattern';
5
+ import { CalendarEventWeeklyRepeatPattern } from '../repeatPattern/calendarEventWeeklyRepeatPattern';
6
+ import { CalendarEventYearlyRepeatPattern } from '../repeatPattern/calendarEventYearlyRepeatPattern';
7
+ const dailyRepeatOptions = {
8
+ frequency: 'daily',
9
+ interval: 1,
10
+ until: '01/02/2024',
11
+ };
12
+ const weeklyRepeatOptions = {
13
+ frequency: 'weekly',
14
+ interval: 1,
15
+ count: 2,
16
+ byWeekDay: ['Mon', 'Wed'],
17
+ };
18
+ const monthlyRepeatOptions = {
19
+ frequency: 'monthly',
20
+ interval: 1,
21
+ count: 2,
22
+ };
23
+ const yearlyRepeatOptions = {
24
+ frequency: 'yearly',
25
+ interval: 1,
26
+ count: 2,
27
+ };
28
+ describe('calendarEventRepeatPatternFactory', () => {
29
+ it('calendarEventRepeatPatternFactory#dailyPattern', () => {
30
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 0, 1), dailyRepeatOptions);
31
+ expect(pattern instanceof CalendarEventDailyRepeatPattern).toBeTruthy();
32
+ const result = pattern.getRepeatSeries(new MonthPeriod(new CalendarDate(2024, 1, 1)));
33
+ expect(result.length).toEqual(2);
34
+ expect(result[0].date).toEqual(1);
35
+ expect(result[1].date).toEqual(2);
36
+ });
37
+ it('calendarEventRepeatPatternFactory#dailyPattern in default options', () => {
38
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 0, 1), { frequency: 'daily' });
39
+ expect(pattern instanceof CalendarEventDailyRepeatPattern).toBeTruthy();
40
+ expect(pattern['interval']).toEqual(1);
41
+ });
42
+ it('calendarEventRepeatPatternFactory#dailyPattern interval set to zero', () => {
43
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 0, 1), { frequency: 'daily', interval: 0 });
44
+ expect(pattern instanceof CalendarEventDailyRepeatPattern).toBeTruthy();
45
+ expect(pattern['interval']).toEqual(1);
46
+ });
47
+ it('calendarEventRepeatPatternFactory#weeklyPattern', () => {
48
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 0, 1), weeklyRepeatOptions);
49
+ expect(pattern instanceof CalendarEventWeeklyRepeatPattern).toBeTruthy();
50
+ const result = pattern.getRepeatSeries(new MonthPeriod(new CalendarDate(2024, 1, 1)));
51
+ expect(result.length).toEqual(2);
52
+ expect(result[0].date).toEqual(1);
53
+ expect(result[1].date).toEqual(3);
54
+ });
55
+ it('calendarEventRepeatPatternFactory#weeklyPattern', () => {
56
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 0, 1), {
57
+ frequency: 'weekly',
58
+ interval: 1,
59
+ });
60
+ expect(pattern instanceof CalendarEventWeeklyRepeatPattern).toBeTruthy();
61
+ expect(pattern['byWeekDay']).toEqual(['Mon'.toLowerCase()]);
62
+ });
63
+ it('calendarEventRepeatPatternFactory#monthlyPattern', () => {
64
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 0, 1), Object.assign(Object.assign({}, monthlyRepeatOptions), { interval: 2 }));
65
+ expect(pattern instanceof CalendarEventMonthlyRepeatPattern).toBeTruthy();
66
+ const result = pattern.getRepeatSeries(new MonthPeriod(new CalendarDate(2024, 1, 1)), 2);
67
+ expect(result.length).toEqual(1);
68
+ expect(result[0]).toEqual(new CalendarDate(2024, 1, 1));
69
+ });
70
+ it('calendarEventRepeatPatternFactory#yearlyPattern', () => {
71
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 0, 1), yearlyRepeatOptions);
72
+ expect(pattern instanceof CalendarEventYearlyRepeatPattern).toBeTruthy();
73
+ const result = pattern.getRepeatSeries(new MonthPeriod(new CalendarDate(2024, 1, 1)), 2);
74
+ expect(result.length).toEqual(1);
75
+ expect(result[0]).toEqual(new CalendarDate(2024, 1, 1));
76
+ });
77
+ it('calendarEventRepeatPatternFactory#yearlyPattern getRepeatSeries', () => {
78
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 6, 1), { frequency: 'weekly', interval: 1, until: '07/08/2024' });
79
+ expect(pattern.getRepeatSeries(new MonthPeriod(new CalendarDate(2024, 7, 1)), 2)).toEqual([
80
+ CalendarDate.from(new Date(2024, 6, 1)),
81
+ CalendarDate.from(new Date(2024, 6, 8)),
82
+ ]);
83
+ });
84
+ it('calendarEventRepeatPatternFactory#dailyPattern getRepeatSeries', () => {
85
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 5, 30), { frequency: 'daily', interval: 3, until: '07/12/2024' });
86
+ expect(pattern.getRepeatSeries(new MonthPeriod(new CalendarDate(2024, 7, 1)), 2)).toEqual([
87
+ CalendarDate.from(new Date(2024, 5, 30)),
88
+ CalendarDate.from(new Date(2024, 6, 3)),
89
+ CalendarDate.from(new Date(2024, 6, 6)),
90
+ CalendarDate.from(new Date(2024, 6, 9)),
91
+ CalendarDate.from(new Date(2024, 6, 12)),
92
+ ]);
93
+ });
94
+ it('calendarEventRepeatPatternFactory#dailyPattern isSeriesInPeriod monthPeriod', () => {
95
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 6, 27), { frequency: 'monthly', interval: 1, count: 2 });
96
+ const monthPeriod = new MonthPeriod(new CalendarDate(2024, 8, 1));
97
+ expect(pattern['isSeriesInPeriod'](new CalendarDate(2024, 7, 27), 3, monthPeriod)).toBeTruthy();
98
+ expect(pattern['isSeriesInPeriod'](new CalendarDate(2024, 8, 27), 3, monthPeriod)).toBeTruthy();
99
+ });
100
+ it('calendarEventRepeatPatternFactory#dailyPattern isSeriesInPeriod dayPeriod', () => {
101
+ const pattern = calendarEventRepeatPatternFactory.getPattern(new Date(2024, 6, 31), { frequency: 'monthly', interval: 1, count: 2 });
102
+ const dayPeriod = new DayPeriod(new CalendarDate(2024, 8, 1));
103
+ expect(pattern['isSeriesInPeriod'](new CalendarDate(2024, 7, 31), 3, dayPeriod)).toBeTruthy();
104
+ });
105
+ });
@@ -9,7 +9,6 @@ const mockEvents1 = [
9
9
  startTime: '10:00',
10
10
  endTime: '11:00',
11
11
  isAllDay: false,
12
- repeat: 'none',
13
12
  disabled: false,
14
13
  variant: 'primary',
15
14
  },
@@ -21,7 +20,6 @@ const mockEvents1 = [
21
20
  startTime: '10:00',
22
21
  endTime: '10:15',
23
22
  isAllDay: false,
24
- repeat: 'none',
25
23
  disabled: false,
26
24
  variant: 'primary',
27
25
  color: '#73E6DC',
@@ -36,7 +34,6 @@ const mockEvents2 = [
36
34
  startTime: '10:00',
37
35
  endTime: '11:00',
38
36
  isAllDay: false,
39
- repeat: 'none',
40
37
  disabled: false,
41
38
  variant: 'primary',
42
39
  },
@@ -48,7 +45,6 @@ const mockEvents2 = [
48
45
  startTime: '10:30',
49
46
  endTime: '11:30',
50
47
  isAllDay: false,
51
- repeat: 'none',
52
48
  disabled: false,
53
49
  variant: 'secondary',
54
50
  color: '#806BFF',
@@ -63,7 +59,6 @@ const mockEvent4 = [
63
59
  startTime: '10:00',
64
60
  endTime: '10:15',
65
61
  isAllDay: false,
66
- repeat: 'none',
67
62
  disabled: false,
68
63
  variant: 'primary',
69
64
  color: '#73E6DC',
@@ -22,7 +22,7 @@ export class VegaCalendarSwitchPanelRenderer extends VegaSlimmer {
22
22
  * @param {NotifyObserverPayload<VegaCalendarViewModeType>} input mark which view should be selected
23
23
  */
24
24
  this.handleViewChange = (input) => {
25
- this.calendarViewController.setViewMode(input.detail);
25
+ this.currentPeriodController.updateCalendarPeriod(input.detail, this.currentPeriod.current);
26
26
  };
27
27
  /**
28
28
  * reset view content to today
@@ -9,7 +9,6 @@ const mockEvents = [
9
9
  startTime: '10:00',
10
10
  endTime: '11:00',
11
11
  isAllDay: false,
12
- repeat: 'none',
13
12
  disabled: false,
14
13
  variant: 'primary',
15
14
  },
@@ -21,7 +20,6 @@ const mockEvents = [
21
20
  startTime: '10:00',
22
21
  endTime: '10:15',
23
22
  isAllDay: false,
24
- repeat: 'none',
25
23
  disabled: false,
26
24
  variant: 'primary',
27
25
  color: '#73E6DC',
@@ -34,7 +32,6 @@ const mockEvents = [
34
32
  startTime: '10:30',
35
33
  endTime: '11:30',
36
34
  isAllDay: false,
37
- repeat: 'none',
38
35
  disabled: false,
39
36
  variant: 'secondary',
40
37
  color: '#806BFF',
@@ -47,7 +44,6 @@ const mockEvents = [
47
44
  startTime: '10:45',
48
45
  endTime: '11:00',
49
46
  isAllDay: false,
50
- repeat: 'none',
51
47
  disabled: false,
52
48
  variant: 'secondary',
53
49
  color: '#806BFF',
@@ -60,7 +56,6 @@ const mockEvents = [
60
56
  startTime: '11:00',
61
57
  endTime: '12:00',
62
58
  isAllDay: false,
63
- repeat: 'none',
64
59
  disabled: false,
65
60
  variant: 'secondary',
66
61
  color: '#806BFF',
@@ -51,7 +51,7 @@ export class VegaCalendarViewWithTimeRenderer extends VegaSlimmer {
51
51
  h("div", { class: "calendar-view-content" }, source.map((item) => {
52
52
  return (h("div", { class: "grid-col border-divider-left", key: item.date },
53
53
  h("div", { class: "hour-empty border-divider-top" }),
54
- this.renderHourBlock()));
54
+ this.renderHourBlock(item)));
55
55
  })),
56
56
  this.dayViewTimedEventRenderer.render(),
57
57
  this.timeLineRenderer.renderTimeMarker(source))));
@@ -59,14 +59,28 @@ export class VegaCalendarViewWithTimeRenderer extends VegaSlimmer {
59
59
  /**
60
60
  * The function `renderHourBlock` returns an array of HTML elements representing hour blocks with time information.
61
61
  *
62
+ * @param {CalendarDate} calendarDate then current calendar date object
62
63
  * @returns {HTMLElement[]} An array of HTMLElements is being returned. Each HTMLElement represents an hour block with a time value inside a div element.
63
64
  */
64
- renderHourBlock() {
65
+ renderHourBlock(calendarDate) {
65
66
  const timeLineSource = Array(24).fill('');
66
- return timeLineSource.map(() => {
67
- return h("div", { class: "grid-cell border-divider-top" });
67
+ return timeLineSource.map((_item, index) => {
68
+ return (h("div", { class: "grid-cell border-divider-top",
69
+ // eslint-disable-next-line react/jsx-no-bind
70
+ onDblClick: () => {
71
+ this.handleDateBlockClick(calendarDate, index);
72
+ } }));
68
73
  });
69
74
  }
75
+ /**
76
+ * emit vega click event when click the date block
77
+ *
78
+ * @param {CalendarDate} calendarDate the calendar date object
79
+ */
80
+ handleDateBlockClick(calendarDate, hour) {
81
+ const { year, month, date } = calendarDate;
82
+ this.dateDblClickEmitter.emit({ year, month, date, hour });
83
+ }
70
84
  }
71
85
  __decorate([
72
86
  MapToComponentField()
@@ -86,3 +100,6 @@ __decorate([
86
100
  __decorate([
87
101
  MapToComponentField()
88
102
  ], VegaCalendarViewWithTimeRenderer.prototype, "calendarViewController", void 0);
103
+ __decorate([
104
+ MapToComponentField()
105
+ ], VegaCalendarViewWithTimeRenderer.prototype, "dateDblClickEmitter", void 0);
@@ -37,7 +37,9 @@ export class VegaCalendarMonthViewRenderer extends VegaSlimmer {
37
37
  'current-month-day': item.compare(currentDate).inMonth,
38
38
  'active': item.isToday(),
39
39
  'disabled': false,
40
- }, key: `${item.month}-${item.date}` },
40
+ }, key: `${item.month}-${item.date}`,
41
+ // eslint-disable-next-line react/jsx-no-bind
42
+ onDblClick: (e) => this.handleDateBlockClick(e, item) },
41
43
  this.renderDateBlock(item),
42
44
  this.monthEventRenderer.render(item, eventsArray[itemIndex], displayEventsArray[itemIndex], itemIndex)));
43
45
  })));
@@ -53,7 +55,42 @@ export class VegaCalendarMonthViewRenderer extends VegaSlimmer {
53
55
  const isMonthFirstDay = item.date === 1;
54
56
  return (h("div", { class: "date" },
55
57
  isMonthFirstDay && h("div", { class: "month-block" }, getMonthName(item.toDate(), true)),
56
- h("div", { role: "button", tabIndex: 0, class: "grid-col" }, item.date)));
58
+ h("div", { role: "button", tabIndex: 0, class: "grid-col",
59
+ // eslint-disable-next-line react/jsx-no-bind
60
+ onDblClick: (e) => this.goToCurrentDayView(e, item) }, item.date)));
61
+ }
62
+ /**
63
+ * switch to current date day view
64
+ *
65
+ * @param {MouseEvent} e the double click event object
66
+ * @param {CalendarDate} calendarDate the calendar date object
67
+ */
68
+ goToCurrentDayView(e, calendarDate) {
69
+ e.stopPropagation();
70
+ this.currentPeriodController.updateCalendarPeriod('day', calendarDate);
71
+ }
72
+ /**
73
+ * emit vega click event when click the date block
74
+ *
75
+ * @param {MouseEvent} e the mouse event object
76
+ * @param {CalendarDate} calendarDate the calendar date object
77
+ */
78
+ handleDateBlockClick(e, calendarDate) {
79
+ const target = e.target;
80
+ if (this.isMonthBlockBlankArea(target)) {
81
+ const { year, month, date } = calendarDate;
82
+ this.dateDblClickEmitter.emit({ year, month, date, hour: 0 });
83
+ }
84
+ }
85
+ /**
86
+ * determine if the clicked element is blank area
87
+ *
88
+ * @param {HTMLElement} element the target element
89
+ * @returns {boolean} true or false
90
+ */
91
+ isMonthBlockBlankArea(element) {
92
+ // the more button and the calendar event component should not trigger dateDblClick event
93
+ return !element.classList.contains('more-button') && element.tagName !== 'VEGA-CALENDAR-EVENT';
57
94
  }
58
95
  }
59
96
  __decorate([
@@ -68,6 +105,12 @@ __decorate([
68
105
  __decorate([
69
106
  MapToComponentField()
70
107
  ], VegaCalendarMonthViewRenderer.prototype, "calendarViewController", void 0);
108
+ __decorate([
109
+ MapToComponentField()
110
+ ], VegaCalendarMonthViewRenderer.prototype, "currentPeriodController", void 0);
71
111
  __decorate([
72
112
  MapToComponentField()
73
113
  ], VegaCalendarMonthViewRenderer.prototype, "monthEventRenderer", void 0);
114
+ __decorate([
115
+ MapToComponentField()
116
+ ], VegaCalendarMonthViewRenderer.prototype, "dateDblClickEmitter", void 0);
@@ -336,7 +336,6 @@
336
336
  }
337
337
  }
338
338
  .calendar-view-container .calendar-view-title .week-day {
339
- cursor: pointer;
340
339
  color: rgba(var(--v-text-primary, 32, 54, 69, 1));
341
340
  font-family: "Inter", sans-serif;
342
341
  font-size: 20px;