@globalpayments/vega 2.26.0 → 2.28.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 (726) hide show
  1. package/dist/cjs/{app-globals-2bae50fb.js → app-globals-512d84f4.js} +61 -9
  2. package/dist/cjs/{breakpoints-cb3291ba.js → breakpoints-7e2dff90.js} +1 -1
  3. package/dist/cjs/{child-nodes-event-prevent-slimmer-cc557cb3.js → child-nodes-event-prevent-slimmer-e383a914.js} +1 -1
  4. package/dist/cjs/{child-nodes-notify-observer-slimmer-c144a963.js → child-nodes-notify-observer-slimmer-79f2f5a7.js} +2 -2
  5. package/dist/cjs/{create-public-api-runtime-metrics-slimmer-d2d49ff5.js → create-public-api-runtime-metrics-slimmer-7510221b.js} +39 -2
  6. package/dist/cjs/{design-token-2c2cdd7d.js → design-token-17b8e4d8.js} +5 -5
  7. package/dist/cjs/{dom-node-subject-observer-factory-d2698876.js → dom-node-subject-observer-factory-2e41340d.js} +2 -31
  8. package/dist/cjs/{element-appender-slimmer-5fa9ff52.js → element-appender-slimmer-bf5ecbd8.js} +4 -4
  9. package/dist/cjs/{event-emit-slimmer-54616105.js → event-emit-slimmer-8f51adaa.js} +1 -1
  10. package/dist/cjs/{feature-flag-controller-e031c341.js → feature-flag-controller-078da332.js} +3 -0
  11. package/dist/cjs/{form-field-controller-slimmer-8b314ba2.js → form-field-controller-slimmer-223f8ee3.js} +54 -12
  12. package/dist/cjs/{icon-manager-2c3cf5ba.js → icon-manager-5a2b67cf.js} +4 -1
  13. package/dist/cjs/index.cjs.js +18 -14
  14. package/dist/cjs/{internal-icon-manager-3dd4faeb.js → internal-icon-manager-858baff1.js} +1 -1
  15. package/dist/cjs/loader.cjs.js +15 -12
  16. package/dist/cjs/{min-number-rule-0ce5347c.js → min-number-rule-84f21ad9.js} +8 -4
  17. package/dist/cjs/{min-string-length-rule-d1a1ea94.js → min-string-length-rule-75f24a48.js} +11 -4
  18. package/dist/cjs/observer-f49483e8.js +32 -0
  19. package/dist/cjs/{page-resize-observer-slimmer-1e404fc7.js → page-resize-observer-slimmer-a8cf1874.js} +1 -1
  20. package/dist/cjs/{remote-invocation-registry-162044d5.js → remote-invocation-registry-32aaf6c2.js} +3 -3
  21. package/dist/cjs/{required-field-rule-8655758f.js → required-field-rule-9a57b1a0.js} +1 -1
  22. package/dist/cjs/{responsive-format-facade-aa849dc7.js → responsive-format-facade-7bc51a43.js} +3 -3
  23. package/dist/cjs/{state-background-color-formatter-33ae4282.js → state-background-color-formatter-418b84e6.js} +1 -1
  24. package/dist/cjs/{static-subject-title-35e2a92c.js → static-subject-title-3599787e.js} +2 -0
  25. package/dist/cjs/{string-input-formatter-slimmer-0ac6e18a.js → string-input-formatter-slimmer-fcfa5bb7.js} +1 -1
  26. package/dist/cjs/{style-formatter-dc0682a4.js → style-formatter-a0829641.js} +2 -2
  27. package/dist/cjs/{sub-state-observer-slimmer-58217668.js → sub-state-observer-slimmer-36660092.js} +6 -5
  28. package/dist/cjs/translation-0dd74433.js +276 -0
  29. package/dist/cjs/translation-slimmer-83577cfd.js +42 -0
  30. package/dist/cjs/{type-guard-4d05d4b2.js → type-guard-a07b353b.js} +2 -2
  31. package/dist/cjs/{ui-077fc009.js → ui-32e69595.js} +1 -1
  32. package/dist/cjs/vega-accordion.cjs.entry.js +20 -20
  33. package/dist/cjs/vega-app-footer.cjs.entry.js +11 -11
  34. package/dist/cjs/vega-app-header-button.cjs.entry.js +25 -25
  35. package/dist/cjs/vega-backdrop.cjs.entry.js +2 -2
  36. package/dist/cjs/vega-banner.cjs.entry.js +14 -14
  37. package/dist/cjs/vega-bar-chart.cjs.entry.js +1 -1
  38. package/dist/cjs/vega-box.cjs.entry.js +9 -9
  39. package/dist/cjs/vega-breadcrumb.cjs.entry.js +7 -6
  40. package/dist/cjs/vega-button-circle.cjs.entry.js +20 -19
  41. package/dist/cjs/vega-button-group_2.cjs.entry.js +12 -11
  42. package/dist/cjs/vega-button-link.cjs.entry.js +13 -12
  43. package/dist/cjs/vega-button.cjs.entry.js +21 -20
  44. package/dist/cjs/vega-calendar_3.cjs.entry.js +963 -826
  45. package/dist/cjs/vega-card.cjs.entry.js +7 -7
  46. package/dist/cjs/vega-carousel.cjs.entry.js +16 -15
  47. package/dist/cjs/vega-checkbox_2.cjs.entry.js +34 -32
  48. package/dist/cjs/vega-chip.cjs.entry.js +23 -22
  49. package/dist/cjs/vega-color-picker.cjs.entry.js +20 -18
  50. package/dist/cjs/vega-combo-box.cjs.entry.js +29 -27
  51. package/dist/cjs/vega-counter-badge.cjs.entry.js +4 -4
  52. package/dist/cjs/vega-date-picker_2.cjs.entry.js +86 -48
  53. package/dist/cjs/{vega-dialog-controller-cb07e697.js → vega-dialog-controller-6a8525b3.js} +3 -3
  54. package/dist/cjs/vega-dialog_2.cjs.entry.js +26 -25
  55. package/dist/cjs/vega-divider.cjs.entry.js +10 -10
  56. package/dist/cjs/vega-dropdown_5.cjs.entry.js +63 -50
  57. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  58. package/dist/cjs/vega-field-error.cjs.entry.js +2 -2
  59. package/dist/cjs/vega-field-label.cjs.entry.js +7 -6
  60. package/dist/cjs/vega-file-uploader.cjs.entry.js +33 -24
  61. package/dist/cjs/vega-flex.cjs.entry.js +12 -12
  62. package/dist/cjs/vega-font.cjs.entry.js +11 -11
  63. package/dist/cjs/vega-form.cjs.entry.js +23 -21
  64. package/dist/cjs/vega-grid.cjs.entry.js +8 -8
  65. package/dist/cjs/vega-icon.cjs.entry.js +9 -10
  66. package/dist/cjs/vega-image-uploader.cjs.entry.js +40 -31
  67. package/dist/cjs/vega-input-credit-card.cjs.entry.js +26 -25
  68. package/dist/cjs/vega-input-phone-number.cjs.entry.js +35 -31
  69. package/dist/cjs/vega-input-range.cjs.entry.js +41 -31
  70. package/dist/cjs/vega-input-select.cjs.entry.js +43 -34
  71. package/dist/cjs/vega-input.cjs.entry.js +83 -48
  72. package/dist/cjs/vega-item-toggle.cjs.entry.js +7 -6
  73. package/dist/cjs/vega-left-nav_5.cjs.entry.js +24 -24
  74. package/dist/cjs/vega-line-chart.cjs.entry.js +1 -1
  75. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +12 -12
  76. package/dist/cjs/vega-page-notification_2.cjs.entry.js +9 -8
  77. package/dist/cjs/vega-pagination.cjs.entry.js +27 -18
  78. package/dist/cjs/vega-pie-chart.cjs.entry.js +1 -1
  79. package/dist/cjs/vega-popover_2.cjs.entry.js +16 -15
  80. package/dist/cjs/vega-progress-tracker.cjs.entry.js +13 -12
  81. package/dist/cjs/vega-radio_2.cjs.entry.js +29 -27
  82. package/dist/cjs/vega-section-title.cjs.entry.js +2 -2
  83. package/dist/cjs/vega-segment-control.cjs.entry.js +10 -9
  84. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +28 -26
  85. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +25 -23
  86. package/dist/cjs/vega-signature-capture.cjs.entry.js +40 -31
  87. package/dist/cjs/{vega-skeleton-loader-controller-cb631f0e.js → vega-skeleton-loader-controller-e886dc58.js} +28 -6
  88. package/dist/cjs/vega-skeleton.cjs.entry.js +2 -2
  89. package/dist/cjs/vega-stepper.cjs.entry.js +22 -20
  90. package/dist/cjs/vega-tab-group_2.cjs.entry.js +43 -17
  91. package/dist/cjs/vega-table_8.cjs.entry.js +389 -333
  92. package/dist/cjs/vega-text.cjs.entry.js +4 -4
  93. package/dist/cjs/vega-textarea.cjs.entry.js +27 -25
  94. package/dist/cjs/vega-time-picker_2.cjs.entry.js +46 -29
  95. package/dist/cjs/vega-toggle-switch.cjs.entry.js +18 -16
  96. package/dist/cjs/vega-tooltip_2.cjs.entry.js +10 -10
  97. package/dist/cjs/vega.cjs.js +15 -12
  98. package/dist/collection/components/vega-accordion/vega-accordion.css +21 -0
  99. package/dist/collection/components/vega-accordion/vega-accordion.js +16 -16
  100. package/dist/collection/components/vega-app-footer/vega-app-footer.js +23 -23
  101. package/dist/collection/components/vega-app-header-button/vega-app-header-button.css +7 -1
  102. package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +23 -23
  103. package/dist/collection/components/vega-backdrop/vega-backdrop.js +7 -7
  104. package/dist/collection/components/vega-banner/vega-banner.js +19 -19
  105. package/dist/collection/components/vega-box/vega-box.css +21 -0
  106. package/dist/collection/components/vega-box/vega-box.js +27 -27
  107. package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.js +7 -7
  108. package/dist/collection/components/vega-button/vega-button.css +1 -0
  109. package/dist/collection/components/vega-button/vega-button.js +22 -22
  110. package/dist/collection/components/vega-button-circle/vega-button-circle.css +4 -0
  111. package/dist/collection/components/vega-button-circle/vega-button-circle.js +20 -20
  112. package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.css +10 -0
  113. package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.js +8 -8
  114. package/dist/collection/components/vega-button-group/vega-button-group.css +13 -0
  115. package/dist/collection/components/vega-button-group/vega-button-group.js +9 -9
  116. package/dist/collection/components/vega-button-link/vega-button-link.js +20 -20
  117. package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.js +17 -3
  118. package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-responsive-controller.js +1 -1
  119. package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.js +3 -0
  120. package/dist/collection/components/vega-calendar/slimmers/common/layout/full-day-event-layout-generator.js +1 -1
  121. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.js +19 -10
  122. package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-view-renderer.js +4 -1
  123. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-day-event-layout-renderer.js +1 -1
  124. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-time-line-renderer.js +12 -2
  125. package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.js +9 -8
  126. package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-event-renderer.js +3 -1
  127. package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.js +12 -6
  128. package/dist/collection/components/vega-calendar/utils/index.js +24 -0
  129. package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.js +3 -2
  130. package/dist/collection/components/vega-calendar/vega-calendar-event/vega-calendar-event.js +2 -2
  131. package/dist/collection/components/vega-calendar/vega-calendar-event-slot/vega-calendar-event-slot.js +2 -2
  132. package/dist/collection/components/vega-calendar/vega-calendar.css +10 -6
  133. package/dist/collection/components/vega-calendar/vega-calendar.js +60 -19
  134. package/dist/collection/components/vega-card/vega-card.js +6 -6
  135. package/dist/collection/components/vega-carousel/vega-carousel.js +19 -19
  136. package/dist/collection/components/vega-chart/vega-bar-chart/vega-bar-chart.js +3 -3
  137. package/dist/collection/components/vega-chart/vega-line-chart/vega-line-chart.js +4 -4
  138. package/dist/collection/components/vega-chart/vega-pie-chart/vega-pie-chart.js +4 -4
  139. package/dist/collection/components/vega-checkbox/vega-checkbox-group/vega-checkbox-group.js +21 -21
  140. package/dist/collection/components/vega-checkbox/vega-checkbox.js +19 -19
  141. package/dist/collection/components/vega-chip/vega-chip.css +4 -0
  142. package/dist/collection/components/vega-chip/vega-chip.js +26 -26
  143. package/dist/collection/components/vega-color-picker/vega-color-picker.js +21 -21
  144. package/dist/collection/components/vega-combo-box/vega-combo-box.js +37 -37
  145. package/dist/collection/components/vega-counter-badge/vega-counter-badge.js +9 -9
  146. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +16 -2
  147. package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.js +5 -2
  148. package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +1 -1
  149. package/dist/collection/components/vega-date-picker/vega-date-picker.js +42 -37
  150. package/dist/collection/components/vega-dialog/vega-dialog.js +13 -13
  151. package/dist/collection/components/vega-divider/vega-divider.js +7 -7
  152. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +6 -1
  153. package/dist/collection/components/vega-dropdown/vega-dropdown-content-box/vega-dropdown-content-box.js +1 -1
  154. package/dist/collection/components/vega-dropdown/vega-dropdown-group/vega-dropdown-group.js +4 -4
  155. package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.js +12 -12
  156. package/dist/collection/components/vega-dropdown/vega-dropdown.js +70 -65
  157. package/dist/collection/components/vega-field-error/vega-field-error.js +3 -3
  158. package/dist/collection/components/vega-field-label/vega-field-label.js +12 -12
  159. package/dist/collection/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.js +4 -1
  160. package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +35 -30
  161. package/dist/collection/components/vega-flex/vega-flex.js +16 -16
  162. package/dist/collection/components/vega-font/vega-font.js +10 -10
  163. package/dist/collection/components/vega-form/vega-form.js +19 -19
  164. package/dist/collection/components/vega-grid/vega-grid.js +8 -8
  165. package/dist/collection/components/vega-hint/vega-hint.js +1 -1
  166. package/dist/collection/components/vega-icon/vega-icon.js +5 -5
  167. package/dist/collection/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-default-content-renderer.js +4 -1
  168. package/dist/collection/components/vega-image-uploader/vega-image-uploader.js +45 -40
  169. package/dist/collection/components/vega-input/vega-input.js +58 -58
  170. package/dist/collection/components/vega-input-credit-card/vega-input-credit-card.js +29 -29
  171. package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +28 -28
  172. package/dist/collection/components/vega-input-range/slimmers/renderers/vega-input-range-input-renderer.js +4 -1
  173. package/dist/collection/components/vega-input-range/vega-input-range.js +37 -32
  174. package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +5 -2
  175. package/dist/collection/components/vega-input-select/vega-input-select.js +45 -40
  176. package/dist/collection/components/vega-item-toggle/vega-item-toggle.js +9 -9
  177. package/dist/collection/components/vega-loader-wrapper/vega-loader-wrapper.js +1 -1
  178. package/dist/collection/components/vega-loading-indicator/vega-loading-indicator.js +15 -15
  179. package/dist/collection/components/vega-modal/vega-modal.js +29 -29
  180. package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +16 -16
  181. package/dist/collection/components/vega-nav/vega-left-nav-group/vega-left-nav-group.js +6 -6
  182. package/dist/collection/components/vega-nav/vega-left-nav-link/vega-left-nav-link.js +8 -8
  183. package/dist/collection/components/vega-nav/vega-left-nav-section/vega-left-nav-section.js +4 -4
  184. package/dist/collection/components/vega-nav/vega-nav-card/vega-nav-card.js +3 -3
  185. package/dist/collection/components/vega-page-notification/vega-page-notification-list/vega-page-notification-list.js +1 -1
  186. package/dist/collection/components/vega-page-notification/vega-page-notification.js +15 -15
  187. package/dist/collection/components/vega-pagination/internal/vega-pagination-current-page-label.js +2 -2
  188. package/dist/collection/components/vega-pagination/internal/vega-pagination-go-to.js +2 -2
  189. package/dist/collection/components/vega-pagination/internal/vega-pagination-page-size-selector.js +2 -2
  190. package/dist/collection/components/vega-pagination/vega-pagination.js +23 -18
  191. package/dist/collection/components/vega-popover/vega-popover-content-box/vega-popover-content-box.js +3 -3
  192. package/dist/collection/components/vega-popover/vega-popover.js +19 -19
  193. package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +23 -23
  194. package/dist/collection/components/vega-radio/vega-radio-group/vega-radio-group.js +22 -22
  195. package/dist/collection/components/vega-radio/vega-radio.js +16 -16
  196. package/dist/collection/components/vega-section-title/vega-section-title.js +7 -7
  197. package/dist/collection/components/vega-segment-control/vega-segment-control.js +12 -12
  198. package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.js +16 -16
  199. package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +18 -18
  200. package/dist/collection/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.js +18 -18
  201. package/dist/collection/components/vega-selection-tile/vega-selection-tile.js +13 -13
  202. package/dist/collection/components/vega-signature-capture/slimmers/written-mode/renderers/written-mode-renderer.js +5 -2
  203. package/dist/collection/components/vega-signature-capture/vega-signature-capture.js +34 -29
  204. package/dist/collection/components/vega-skeleton/vega-skeleton.js +7 -7
  205. package/dist/collection/components/vega-slot-container/vega-slot-container.js +1 -1
  206. package/dist/collection/components/vega-stepper/vega-stepper.js +22 -22
  207. package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.js +26 -1
  208. package/dist/collection/components/vega-tab-group/vega-tab-group-panel/vega-tab-group-panel.js +3 -3
  209. package/dist/collection/components/vega-tab-group/vega-tab-group.css +29 -0
  210. package/dist/collection/components/vega-tab-group/vega-tab-group.js +14 -14
  211. package/dist/collection/components/vega-table/slimmers/renderers/vega-table-renderer.js +4 -1
  212. package/dist/collection/components/vega-table/vega-table-body/vega-table-body.js +1 -1
  213. package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.js +5 -5
  214. package/dist/collection/components/vega-table/vega-table-expand-row/vega-table-expand-row.js +2 -2
  215. package/dist/collection/components/vega-table/vega-table-head/vega-table-head.js +1 -1
  216. package/dist/collection/components/vega-table/vega-table-head-cell/slimmers/renderers/sort-icon-renderer.js +38 -0
  217. package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.css +27 -31
  218. package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.js +25 -26
  219. package/dist/collection/components/vega-table/vega-table-head-row/vega-table-head-row.js +3 -3
  220. package/dist/collection/components/vega-table/vega-table-row/vega-table-row.js +6 -6
  221. package/dist/collection/components/vega-table/vega-table.js +87 -82
  222. package/dist/collection/components/vega-text/vega-text.js +4 -4
  223. package/dist/collection/components/vega-textarea/vega-textarea.js +31 -31
  224. package/dist/collection/components/vega-time-picker/slimmers/renderers/vega-time-picker-range-input-renderer.js +7 -2
  225. package/dist/collection/components/vega-time-picker/slimmers/renderers/vega-time-picker-single-input-renderer.js +6 -1
  226. package/dist/collection/components/vega-time-picker/vega-time-picker-dropdown/vega-time-picker-dropdown.js +1 -1
  227. package/dist/collection/components/vega-time-picker/vega-time-picker.js +31 -26
  228. package/dist/collection/components/vega-toggle-switch/vega-toggle-switch.js +20 -20
  229. package/dist/collection/components/vega-tooltip/vega-tooltip-content-box/vega-tooltip-content-box.js +2 -2
  230. package/dist/collection/components/vega-tooltip/vega-tooltip.js +15 -15
  231. package/dist/collection/components/vega-virtual-scroll/vega-virtual-scroll.js +16 -16
  232. package/dist/collection/constants/runtime-metrics-payload-definition/public-api/VegaTranslation/runtime-metrics-payload-definition.js +42 -0
  233. package/dist/collection/constants/ui.js +1 -1
  234. package/dist/collection/global/icons/arrow-up-arrow-down.js +3 -0
  235. package/dist/collection/global/icons/circle-arrow-down.js +3 -0
  236. package/dist/collection/global/icons/circle-arrow-up.js +3 -0
  237. package/dist/collection/global/scripts/before-vega-load.js +12 -2
  238. package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +8 -0
  239. package/dist/collection/helpers/calendar/calendar-period/day-period.js +27 -4
  240. package/dist/collection/helpers/calendar/calendar-period/month-period.js +4 -2
  241. package/dist/collection/helpers/calendar/calendar-period/week-period.js +4 -2
  242. package/dist/collection/helpers/calendar/calendar-view-generator/month-view-generator.js +8 -2
  243. package/dist/collection/helpers/calendar/calendar-view-generator/week-view-generator.js +8 -1
  244. package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +16 -0
  245. package/dist/collection/helpers/calendar/test/calendar-view-generator/month-view-generator.test.js +50 -0
  246. package/dist/collection/helpers/calendar/test/calendar-view-generator/week-view-generator.test.js +15 -0
  247. package/dist/collection/helpers/change-manager/subject/static-subject/static-subject-title.js +1 -0
  248. package/dist/collection/helpers/common/wait-for-vega-handler.js +2 -0
  249. package/dist/collection/helpers/dialog/vega-dialog-controller.js +1 -0
  250. package/dist/collection/helpers/event-manager/vega-event-manager.js +3 -0
  251. package/dist/collection/helpers/feature-control/feature-flag-controller.js +3 -0
  252. package/dist/collection/helpers/formatter/string-formatter/number-mask-strategy.js +36 -4
  253. package/dist/collection/helpers/formatter/string-formatter/number-thousand-comma-strategy.js +9 -7
  254. package/dist/collection/helpers/formatter/test/responsive-map-formatter/responsive-box-display-formatter.test.js +15 -3
  255. package/dist/collection/helpers/formatter/test/string-formatter/number-mask-strategy.test.js +11 -2
  256. package/dist/collection/helpers/formatter/test/string-formatter/number-thousand-comma-mask-strategy.test.js +2 -0
  257. package/dist/collection/helpers/icon/icon-manager.js +3 -0
  258. package/dist/collection/helpers/loading-indicator/vega-loader-controller.js +2 -0
  259. package/dist/collection/helpers/notify/vega-notify-controller.js +6 -0
  260. package/dist/collection/helpers/public-api.js +1 -0
  261. package/dist/collection/helpers/skeleton-loader/vega-skeleton-loader-controller.js +4 -0
  262. package/dist/collection/helpers/slimmers/field-error-ui-controller-slimmer.js +46 -3
  263. package/dist/collection/helpers/slimmers/global/vega-translate-observer-slimmer.js +44 -0
  264. package/dist/collection/helpers/slimmers/sub-state/sub-state-observer-slimmer.js +2 -2
  265. package/dist/collection/helpers/slimmers/test/string-input-formatter-slimmer.test.js +20 -0
  266. package/dist/collection/helpers/slimmers/test/translation-slimmer.test.js +89 -0
  267. package/dist/collection/helpers/slimmers/translation/index.js +1 -0
  268. package/dist/collection/helpers/slimmers/translation/translation-slimmer.js +37 -0
  269. package/dist/collection/helpers/theme/theme-manager.js +5 -0
  270. package/dist/collection/helpers/translation/index.js +4 -0
  271. package/dist/collection/helpers/translation/internal-translation-controller.js +104 -0
  272. package/dist/collection/helpers/translation/locales/en.js +74 -0
  273. package/dist/collection/helpers/translation/tests/internal-translation-controller.test.js +182 -0
  274. package/dist/collection/helpers/translation/tests/translation.test.js +32 -0
  275. package/dist/collection/helpers/translation/translation.js +51 -0
  276. package/dist/collection/helpers/validator/rules/check-box-required-rule.js +1 -1
  277. package/dist/collection/helpers/validator/rules/date-range-rule.js +1 -1
  278. package/dist/collection/helpers/validator/rules/date-required-rule.js +1 -1
  279. package/dist/collection/helpers/validator/rules/email-field-rule.js +1 -1
  280. package/dist/collection/helpers/validator/rules/input-phone-number-required-rule.js +1 -1
  281. package/dist/collection/helpers/validator/rules/input-range-min-and-max-rule.js +5 -5
  282. package/dist/collection/helpers/validator/rules/input-range-required-rule.js +1 -1
  283. package/dist/collection/helpers/validator/rules/max-number-rule.js +4 -2
  284. package/dist/collection/helpers/validator/rules/max-string-length-rule.js +4 -2
  285. package/dist/collection/helpers/validator/rules/min-and-max-date-rule.js +25 -10
  286. package/dist/collection/helpers/validator/rules/min-number-rule.js +4 -2
  287. package/dist/collection/helpers/validator/rules/min-string-length-rule.js +7 -2
  288. package/dist/collection/helpers/validator/rules/required-field-rule.js +1 -1
  289. package/dist/collection/helpers/validator/rules/time-range-required-rule.js +1 -1
  290. package/dist/collection/helpers/validator/rules/time-range-rule.js +1 -1
  291. package/dist/collection/helpers/validator/rules/time-required-rule.js +1 -1
  292. package/dist/collection/helpers/validator/rules/valid-phone-number-rule.js +8 -5
  293. package/dist/collection/helpers/validator/test/rules/custom-validation-rule.test.js +56 -0
  294. package/dist/collection/helpers/validator/test/rules/input-range-min-and-max-rule.test.js +4 -4
  295. package/dist/collection/helpers/validator/test/rules/max-number-rule.test.js +3 -3
  296. package/dist/collection/helpers/validator/test/rules/max-string-length-rule.test.js +1 -1
  297. package/dist/collection/helpers/validator/test/rules/min-and-max-date-rule.test.js +10 -10
  298. package/dist/collection/helpers/validator/test/rules/min-number-rule.test.js +2 -2
  299. package/dist/collection/helpers/validator/test/rules/min-string-length-rule.test.js +1 -1
  300. package/dist/collection/helpers/validator/test/rules/valid-phone-number-rule.test.js +4 -1
  301. package/dist/collection/helpers/zindex/vega-z-index-manager.js +1 -0
  302. package/dist/esm/{app-globals-b5bc861f.js → app-globals-41797af8.js} +61 -9
  303. package/dist/esm/{breakpoints-e59edf8d.js → breakpoints-36a3ed69.js} +1 -1
  304. package/dist/esm/{child-nodes-event-prevent-slimmer-d3883004.js → child-nodes-event-prevent-slimmer-345c46c5.js} +1 -1
  305. package/dist/esm/{child-nodes-notify-observer-slimmer-50cd94b9.js → child-nodes-notify-observer-slimmer-3d52b843.js} +1 -1
  306. package/dist/esm/{create-public-api-runtime-metrics-slimmer-dc9af92b.js → create-public-api-runtime-metrics-slimmer-928ad7f0.js} +37 -2
  307. package/dist/esm/{design-token-44525832.js → design-token-3671ce60.js} +5 -5
  308. package/dist/esm/{dom-node-subject-observer-factory-0d4b85b8.js → dom-node-subject-observer-factory-9461cd67.js} +2 -30
  309. package/dist/esm/{element-appender-slimmer-1aa00c06.js → element-appender-slimmer-1172e2ea.js} +4 -4
  310. package/dist/esm/{event-emit-slimmer-0315fa00.js → event-emit-slimmer-eee9fd41.js} +1 -1
  311. package/dist/esm/{feature-flag-controller-a5fe5022.js → feature-flag-controller-10780eeb.js} +3 -0
  312. package/dist/esm/{form-field-controller-slimmer-bf7441bd.js → form-field-controller-slimmer-edbaaf7c.js} +49 -7
  313. package/dist/esm/{icon-manager-754cda3f.js → icon-manager-0f030f8a.js} +4 -1
  314. package/dist/esm/index.js +16 -14
  315. package/dist/esm/{internal-icon-manager-ebe6ecf4.js → internal-icon-manager-9671142a.js} +1 -1
  316. package/dist/esm/loader.js +15 -12
  317. package/dist/esm/{min-number-rule-88e546e5.js → min-number-rule-8f643dbd.js} +8 -4
  318. package/dist/esm/{min-string-length-rule-27a8ba07.js → min-string-length-rule-c6a69eeb.js} +11 -4
  319. package/dist/esm/observer-3959f9dd.js +30 -0
  320. package/dist/esm/{page-resize-observer-slimmer-8caeb03b.js → page-resize-observer-slimmer-994c1e1b.js} +1 -1
  321. package/dist/esm/{remote-invocation-registry-cf9c81bb.js → remote-invocation-registry-1682b34e.js} +1 -1
  322. package/dist/esm/{required-field-rule-f438a73f.js → required-field-rule-5da360cc.js} +1 -1
  323. package/dist/esm/{responsive-format-facade-4488d609.js → responsive-format-facade-5a1329a7.js} +3 -3
  324. package/dist/esm/{state-background-color-formatter-de7e6522.js → state-background-color-formatter-0540d006.js} +1 -1
  325. package/dist/esm/{static-subject-title-2a4d6602.js → static-subject-title-6987a80b.js} +2 -1
  326. package/dist/esm/{string-input-formatter-slimmer-633271ed.js → string-input-formatter-slimmer-bfe3f5e5.js} +1 -1
  327. package/dist/esm/{style-formatter-391b4f97.js → style-formatter-2fa5ce09.js} +2 -2
  328. package/dist/esm/{sub-state-observer-slimmer-46abe492.js → sub-state-observer-slimmer-8eff5559.js} +4 -3
  329. package/dist/esm/translation-0fa7cf77.js +272 -0
  330. package/dist/esm/translation-slimmer-79f9a9c9.js +40 -0
  331. package/dist/esm/{type-guard-467c9e3e.js → type-guard-63caf78b.js} +2 -2
  332. package/dist/esm/{ui-df46cc20.js → ui-8424715a.js} +1 -1
  333. package/dist/esm/vega-accordion.entry.js +19 -19
  334. package/dist/esm/vega-app-footer.entry.js +11 -11
  335. package/dist/esm/vega-app-header-button.entry.js +25 -25
  336. package/dist/esm/vega-backdrop.entry.js +2 -2
  337. package/dist/esm/vega-banner.entry.js +14 -14
  338. package/dist/esm/vega-bar-chart.entry.js +1 -1
  339. package/dist/esm/vega-box.entry.js +9 -9
  340. package/dist/esm/vega-breadcrumb.entry.js +7 -6
  341. package/dist/esm/vega-button-circle.entry.js +20 -19
  342. package/dist/esm/vega-button-group_2.entry.js +12 -11
  343. package/dist/esm/vega-button-link.entry.js +13 -12
  344. package/dist/esm/vega-button.entry.js +21 -20
  345. package/dist/esm/vega-calendar_3.entry.js +962 -825
  346. package/dist/esm/vega-card.entry.js +7 -7
  347. package/dist/esm/vega-carousel.entry.js +16 -15
  348. package/dist/esm/vega-checkbox_2.entry.js +32 -30
  349. package/dist/esm/vega-chip.entry.js +23 -22
  350. package/dist/esm/vega-color-picker.entry.js +20 -18
  351. package/dist/esm/vega-combo-box.entry.js +29 -27
  352. package/dist/esm/vega-counter-badge.entry.js +4 -4
  353. package/dist/esm/vega-date-picker_2.entry.js +86 -48
  354. package/dist/esm/{vega-dialog-controller-fb1a8e21.js → vega-dialog-controller-3b905672.js} +2 -2
  355. package/dist/esm/vega-dialog_2.entry.js +26 -25
  356. package/dist/esm/vega-divider.entry.js +10 -10
  357. package/dist/esm/vega-dropdown_5.entry.js +63 -50
  358. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  359. package/dist/esm/vega-field-error.entry.js +2 -2
  360. package/dist/esm/vega-field-label.entry.js +7 -6
  361. package/dist/esm/vega-file-uploader.entry.js +32 -23
  362. package/dist/esm/vega-flex.entry.js +12 -12
  363. package/dist/esm/vega-font.entry.js +11 -11
  364. package/dist/esm/vega-form.entry.js +19 -17
  365. package/dist/esm/vega-grid.entry.js +8 -8
  366. package/dist/esm/vega-icon.entry.js +9 -10
  367. package/dist/esm/vega-image-uploader.entry.js +40 -31
  368. package/dist/esm/vega-input-credit-card.entry.js +26 -25
  369. package/dist/esm/vega-input-phone-number.entry.js +35 -31
  370. package/dist/esm/vega-input-range.entry.js +41 -31
  371. package/dist/esm/vega-input-select.entry.js +43 -34
  372. package/dist/esm/vega-input.entry.js +83 -48
  373. package/dist/esm/vega-item-toggle.entry.js +7 -6
  374. package/dist/esm/vega-left-nav_5.entry.js +23 -23
  375. package/dist/esm/vega-line-chart.entry.js +1 -1
  376. package/dist/esm/vega-loader-wrapper_2.entry.js +12 -12
  377. package/dist/esm/vega-page-notification_2.entry.js +9 -8
  378. package/dist/esm/vega-pagination.entry.js +27 -18
  379. package/dist/esm/vega-pie-chart.entry.js +1 -1
  380. package/dist/esm/vega-popover_2.entry.js +16 -15
  381. package/dist/esm/vega-progress-tracker.entry.js +13 -12
  382. package/dist/esm/vega-radio_2.entry.js +27 -25
  383. package/dist/esm/vega-section-title.entry.js +2 -2
  384. package/dist/esm/vega-segment-control.entry.js +10 -9
  385. package/dist/esm/vega-selection-chip_2.entry.js +27 -25
  386. package/dist/esm/vega-selection-tile_2.entry.js +24 -22
  387. package/dist/esm/vega-signature-capture.entry.js +40 -31
  388. package/dist/esm/{vega-skeleton-loader-controller-74e3d189.js → vega-skeleton-loader-controller-6fb25f3b.js} +25 -3
  389. package/dist/esm/vega-skeleton.entry.js +2 -2
  390. package/dist/esm/vega-stepper.entry.js +22 -20
  391. package/dist/esm/vega-tab-group_2.entry.js +42 -16
  392. package/dist/esm/vega-table_8.entry.js +377 -321
  393. package/dist/esm/vega-text.entry.js +4 -4
  394. package/dist/esm/vega-textarea.entry.js +27 -25
  395. package/dist/esm/vega-time-picker_2.entry.js +46 -29
  396. package/dist/esm/vega-toggle-switch.entry.js +18 -16
  397. package/dist/esm/vega-tooltip_2.entry.js +10 -10
  398. package/dist/esm/vega.js +15 -12
  399. package/dist/types/components/vega-accordion/vega-accordion.d.ts +11 -11
  400. package/dist/types/components/vega-app-footer/vega-app-footer.d.ts +12 -12
  401. package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +14 -14
  402. package/dist/types/components/vega-backdrop/vega-backdrop.d.ts +5 -5
  403. package/dist/types/components/vega-banner/vega-banner.d.ts +12 -12
  404. package/dist/types/components/vega-box/vega-box.d.ts +26 -26
  405. package/dist/types/components/vega-breadcrumb/vega-breadcrumb.d.ts +5 -5
  406. package/dist/types/components/vega-button/vega-button.d.ts +13 -13
  407. package/dist/types/components/vega-button-circle/vega-button-circle.d.ts +13 -13
  408. package/dist/types/components/vega-button-group/vega-button-group-item/vega-button-group-item.d.ts +7 -7
  409. package/dist/types/components/vega-button-group/vega-button-group.d.ts +6 -6
  410. package/dist/types/components/vega-button-link/vega-button-link.d.ts +12 -12
  411. package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.d.ts +5 -0
  412. package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.d.ts +1 -0
  413. package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.d.ts +2 -1
  414. package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-view-renderer.d.ts +1 -0
  415. package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-time-line-renderer.d.ts +4 -0
  416. package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.d.ts +1 -1
  417. package/dist/types/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.d.ts +1 -1
  418. package/dist/types/components/vega-calendar/types.d.ts +9 -1
  419. package/dist/types/components/vega-calendar/utils/index.d.ts +13 -0
  420. package/dist/types/components/vega-calendar/vega-calendar-event/vega-calendar-event.d.ts +2 -2
  421. package/dist/types/components/vega-calendar/vega-calendar-event-slot/vega-calendar-event-slot.d.ts +2 -2
  422. package/dist/types/components/vega-calendar/vega-calendar.d.ts +26 -14
  423. package/dist/types/components/vega-card/vega-card.d.ts +5 -5
  424. package/dist/types/components/vega-carousel/vega-carousel.d.ts +11 -11
  425. package/dist/types/components/vega-chart/vega-bar-chart/vega-bar-chart.d.ts +2 -2
  426. package/dist/types/components/vega-chart/vega-line-chart/vega-line-chart.d.ts +3 -3
  427. package/dist/types/components/vega-chart/vega-pie-chart/vega-pie-chart.d.ts +3 -3
  428. package/dist/types/components/vega-checkbox/vega-checkbox-group/vega-checkbox-group.d.ts +12 -12
  429. package/dist/types/components/vega-checkbox/vega-checkbox.d.ts +11 -11
  430. package/dist/types/components/vega-chip/vega-chip.d.ts +16 -16
  431. package/dist/types/components/vega-color-picker/vega-color-picker.d.ts +12 -12
  432. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +22 -22
  433. package/dist/types/components/vega-counter-badge/vega-counter-badge.d.ts +5 -5
  434. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +7 -0
  435. package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-range-input-renderer.d.ts +1 -0
  436. package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +1 -1
  437. package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +24 -22
  438. package/dist/types/components/vega-dialog/vega-dialog.d.ts +10 -10
  439. package/dist/types/components/vega-divider/vega-divider.d.ts +4 -4
  440. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +1 -0
  441. package/dist/types/components/vega-dropdown/vega-dropdown-content-box/vega-dropdown-content-box.d.ts +1 -1
  442. package/dist/types/components/vega-dropdown/vega-dropdown-group/vega-dropdown-group.d.ts +3 -3
  443. package/dist/types/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.d.ts +10 -10
  444. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +42 -40
  445. package/dist/types/components/vega-field-error/vega-field-error.d.ts +2 -2
  446. package/dist/types/components/vega-field-label/vega-field-label.d.ts +8 -8
  447. package/dist/types/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.d.ts +1 -0
  448. package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +23 -21
  449. package/dist/types/components/vega-flex/vega-flex.d.ts +13 -13
  450. package/dist/types/components/vega-font/vega-font.d.ts +6 -6
  451. package/dist/types/components/vega-form/vega-form.d.ts +13 -13
  452. package/dist/types/components/vega-grid/vega-grid.d.ts +4 -4
  453. package/dist/types/components/vega-hint/vega-hint.d.ts +1 -1
  454. package/dist/types/components/vega-icon/vega-icon.d.ts +4 -4
  455. package/dist/types/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-default-content-renderer.d.ts +1 -0
  456. package/dist/types/components/vega-image-uploader/vega-image-uploader.d.ts +27 -25
  457. package/dist/types/components/vega-input/vega-input.d.ts +35 -35
  458. package/dist/types/components/vega-input-credit-card/vega-input-credit-card.d.ts +18 -18
  459. package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +17 -17
  460. package/dist/types/components/vega-input-range/slimmers/renderers/vega-input-range-input-renderer.d.ts +1 -0
  461. package/dist/types/components/vega-input-range/vega-input-range.d.ts +20 -18
  462. package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +1 -0
  463. package/dist/types/components/vega-input-select/vega-input-select.d.ts +26 -24
  464. package/dist/types/components/vega-item-toggle/vega-item-toggle.d.ts +6 -6
  465. package/dist/types/components/vega-loader-wrapper/vega-loader-wrapper.d.ts +1 -1
  466. package/dist/types/components/vega-loading-indicator/vega-loading-indicator.d.ts +8 -8
  467. package/dist/types/components/vega-modal/vega-modal.d.ts +18 -18
  468. package/dist/types/components/vega-nav/vega-left-nav/vega-left-nav.d.ts +10 -10
  469. package/dist/types/components/vega-nav/vega-left-nav-group/vega-left-nav-group.d.ts +5 -5
  470. package/dist/types/components/vega-nav/vega-left-nav-link/vega-left-nav-link.d.ts +7 -7
  471. package/dist/types/components/vega-nav/vega-left-nav-section/vega-left-nav-section.d.ts +4 -4
  472. package/dist/types/components/vega-nav/vega-nav-card/vega-nav-card.d.ts +3 -3
  473. package/dist/types/components/vega-page-notification/vega-page-notification-list/vega-page-notification-list.d.ts +1 -1
  474. package/dist/types/components/vega-page-notification/vega-page-notification.d.ts +8 -8
  475. package/dist/types/components/vega-pagination/internal/vega-pagination-current-page-label.d.ts +2 -0
  476. package/dist/types/components/vega-pagination/internal/vega-pagination-go-to.d.ts +2 -0
  477. package/dist/types/components/vega-pagination/internal/vega-pagination-page-size-selector.d.ts +2 -0
  478. package/dist/types/components/vega-pagination/vega-pagination.d.ts +12 -10
  479. package/dist/types/components/vega-popover/vega-popover-content-box/vega-popover-content-box.d.ts +2 -2
  480. package/dist/types/components/vega-popover/vega-popover.d.ts +13 -13
  481. package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +13 -13
  482. package/dist/types/components/vega-radio/vega-radio-group/vega-radio-group.d.ts +13 -13
  483. package/dist/types/components/vega-radio/vega-radio.d.ts +12 -12
  484. package/dist/types/components/vega-section-title/vega-section-title.d.ts +5 -5
  485. package/dist/types/components/vega-segment-control/vega-segment-control.d.ts +8 -8
  486. package/dist/types/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.d.ts +11 -11
  487. package/dist/types/components/vega-selection-chip/vega-selection-chip.d.ts +12 -12
  488. package/dist/types/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.d.ts +12 -12
  489. package/dist/types/components/vega-selection-tile/vega-selection-tile.d.ts +10 -10
  490. package/dist/types/components/vega-signature-capture/slimmers/written-mode/renderers/written-mode-renderer.d.ts +1 -0
  491. package/dist/types/components/vega-signature-capture/vega-signature-capture.d.ts +18 -16
  492. package/dist/types/components/vega-skeleton/vega-skeleton.d.ts +5 -5
  493. package/dist/types/components/vega-slot-container/vega-slot-container.d.ts +1 -1
  494. package/dist/types/components/vega-stepper/vega-stepper.d.ts +13 -13
  495. package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.d.ts +2 -0
  496. package/dist/types/components/vega-tab-group/types.d.ts +7 -0
  497. package/dist/types/components/vega-tab-group/vega-tab-group-panel/vega-tab-group-panel.d.ts +2 -2
  498. package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +9 -9
  499. package/dist/types/components/vega-table/slimmers/renderers/vega-table-renderer.d.ts +1 -0
  500. package/dist/types/components/vega-table/vega-table-body/vega-table-body.d.ts +1 -1
  501. package/dist/types/components/vega-table/vega-table-cell/vega-table-cell.d.ts +5 -5
  502. package/dist/types/components/vega-table/vega-table-expand-row/vega-table-expand-row.d.ts +2 -2
  503. package/dist/types/components/vega-table/vega-table-head/vega-table-head.d.ts +1 -1
  504. package/dist/types/components/vega-table/vega-table-head-cell/slimmers/renderers/sort-icon-renderer.d.ts +8 -0
  505. package/dist/types/components/vega-table/vega-table-head-cell/vega-table-head-cell.d.ts +10 -10
  506. package/dist/types/components/vega-table/vega-table-head-row/vega-table-head-row.d.ts +3 -3
  507. package/dist/types/components/vega-table/vega-table-row/vega-table-row.d.ts +6 -6
  508. package/dist/types/components/vega-table/vega-table.d.ts +51 -49
  509. package/dist/types/components/vega-text/vega-text.d.ts +3 -3
  510. package/dist/types/components/vega-textarea/vega-textarea.d.ts +18 -18
  511. package/dist/types/components/vega-time-picker/slimmers/renderers/vega-time-picker-range-input-renderer.d.ts +1 -0
  512. package/dist/types/components/vega-time-picker/slimmers/renderers/vega-time-picker-single-input-renderer.d.ts +1 -0
  513. package/dist/types/components/vega-time-picker/vega-time-picker-dropdown/vega-time-picker-dropdown.d.ts +1 -1
  514. package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +18 -16
  515. package/dist/types/components/vega-toggle-switch/vega-toggle-switch.d.ts +12 -12
  516. package/dist/types/components/vega-tooltip/vega-tooltip-content-box/vega-tooltip-content-box.d.ts +2 -2
  517. package/dist/types/components/vega-tooltip/vega-tooltip.d.ts +11 -11
  518. package/dist/types/components/vega-virtual-scroll/vega-virtual-scroll.d.ts +9 -9
  519. package/dist/types/components.d.ts +1462 -1452
  520. package/dist/types/constants/runtime-metrics-payload-definition/public-api/VegaTranslation/runtime-metrics-payload-definition.d.ts +2 -0
  521. package/dist/types/constants/ui.d.ts +1 -1
  522. package/dist/types/global/icons/arrow-up-arrow-down.d.ts +3 -0
  523. package/dist/types/global/icons/circle-arrow-down.d.ts +3 -0
  524. package/dist/types/global/icons/circle-arrow-up.d.ts +3 -0
  525. package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +7 -0
  526. package/dist/types/helpers/calendar/calendar-period/day-period.d.ts +8 -1
  527. package/dist/types/helpers/calendar/calendar-period/month-period.d.ts +2 -1
  528. package/dist/types/helpers/calendar/calendar-period/week-period.d.ts +2 -1
  529. package/dist/types/helpers/change-manager/subject/static-subject/static-subject-title.d.ts +2 -1
  530. package/dist/types/helpers/common/wait-for-vega-handler.d.ts +2 -0
  531. package/dist/types/helpers/dialog/vega-dialog-controller.d.ts +1 -0
  532. package/dist/types/helpers/event-manager/vega-event-manager.d.ts +3 -0
  533. package/dist/types/helpers/feature-control/feature-flag-controller.d.ts +3 -0
  534. package/dist/types/helpers/formatter/string-formatter/number-mask-strategy.d.ts +20 -0
  535. package/dist/types/helpers/icon/icon-manager.d.ts +3 -0
  536. package/dist/types/helpers/loading-indicator/vega-loader-controller.d.ts +2 -0
  537. package/dist/types/helpers/notify/vega-notify-controller.d.ts +6 -0
  538. package/dist/types/helpers/public-api.d.ts +1 -0
  539. package/dist/types/helpers/skeleton-loader/vega-skeleton-loader-controller.d.ts +4 -0
  540. package/dist/types/helpers/slimmers/field-error-ui-controller-slimmer.d.ts +22 -2
  541. package/dist/types/helpers/slimmers/global/vega-translate-observer-slimmer.d.ts +19 -0
  542. package/dist/types/helpers/slimmers/sub-state/sub-state-observer-slimmer.d.ts +1 -1
  543. package/dist/types/helpers/slimmers/test/translation-slimmer.test.d.ts +1 -0
  544. package/dist/types/helpers/slimmers/translation/index.d.ts +1 -0
  545. package/dist/types/helpers/slimmers/translation/translation-slimmer.d.ts +22 -0
  546. package/dist/types/helpers/theme/theme-manager.d.ts +5 -0
  547. package/dist/types/helpers/translation/index.d.ts +4 -0
  548. package/dist/types/helpers/translation/interface.d.ts +90 -0
  549. package/dist/types/helpers/translation/internal-translation-controller.d.ts +58 -0
  550. package/dist/types/helpers/translation/locales/en.d.ts +5 -0
  551. package/dist/types/helpers/translation/tests/internal-translation-controller.test.d.ts +1 -0
  552. package/dist/types/helpers/translation/tests/translation.test.d.ts +1 -0
  553. package/dist/types/helpers/translation/translation.d.ts +33 -0
  554. package/dist/types/helpers/validator/rules/check-box-required-rule.d.ts +4 -3
  555. package/dist/types/helpers/validator/rules/date-range-rule.d.ts +4 -3
  556. package/dist/types/helpers/validator/rules/date-required-rule.d.ts +4 -3
  557. package/dist/types/helpers/validator/rules/email-field-rule.d.ts +4 -3
  558. package/dist/types/helpers/validator/rules/form-field-validation-rule.d.ts +2 -5
  559. package/dist/types/helpers/validator/rules/input-phone-number-required-rule.d.ts +4 -3
  560. package/dist/types/helpers/validator/rules/input-range-min-and-max-rule.d.ts +6 -5
  561. package/dist/types/helpers/validator/rules/input-range-required-rule.d.ts +4 -3
  562. package/dist/types/helpers/validator/rules/max-number-rule.d.ts +4 -3
  563. package/dist/types/helpers/validator/rules/max-string-length-rule.d.ts +4 -3
  564. package/dist/types/helpers/validator/rules/min-and-max-date-rule.d.ts +8 -7
  565. package/dist/types/helpers/validator/rules/min-number-rule.d.ts +4 -3
  566. package/dist/types/helpers/validator/rules/min-string-length-rule.d.ts +4 -3
  567. package/dist/types/helpers/validator/rules/required-field-rule.d.ts +4 -3
  568. package/dist/types/helpers/validator/rules/time-range-required-rule.d.ts +4 -3
  569. package/dist/types/helpers/validator/rules/time-range-rule.d.ts +4 -3
  570. package/dist/types/helpers/validator/rules/time-required-rule.d.ts +4 -3
  571. package/dist/types/helpers/validator/rules/valid-credit-card-number-rule.d.ts +2 -1
  572. package/dist/types/helpers/validator/rules/valid-phone-number-rule.d.ts +7 -6
  573. package/dist/types/helpers/validator/rules/validation-rule.d.ts +15 -2
  574. package/dist/types/helpers/validator/test/rules/custom-validation-rule.test.d.ts +1 -0
  575. package/dist/types/helpers/zindex/vega-z-index-manager.d.ts +1 -0
  576. package/dist/types/types/public-api.d.ts +1 -0
  577. package/dist/types/types/type-guard.d.ts +1 -1
  578. package/dist/vega/index.esm.js +1 -1
  579. package/dist/vega/p-0120ce7a.js +1 -0
  580. package/dist/vega/p-0395e791.entry.js +1 -0
  581. package/dist/vega/p-048a97d1.entry.js +1 -0
  582. package/dist/vega/p-056f448c.entry.js +1 -0
  583. package/dist/vega/{p-1cb8f21a.entry.js → p-063c3ba6.entry.js} +1 -1
  584. package/dist/vega/p-0dd750b0.entry.js +1 -0
  585. package/dist/vega/p-115e5967.js +1 -0
  586. package/dist/vega/p-1b901368.entry.js +13 -0
  587. package/dist/vega/p-1bbc62ef.entry.js +1 -0
  588. package/dist/vega/{p-66098cf8.js → p-1ea57951.js} +1 -1
  589. package/dist/vega/p-1f38eef6.entry.js +1 -0
  590. package/dist/vega/p-1fc5373a.entry.js +1 -0
  591. package/dist/vega/p-22a85055.entry.js +1 -0
  592. package/dist/vega/p-26d0d411.entry.js +1 -0
  593. package/dist/vega/p-331a62d5.js +1 -0
  594. package/dist/vega/p-33366630.entry.js +1 -0
  595. package/dist/vega/p-34545d2d.entry.js +1 -0
  596. package/dist/vega/p-365c340d.entry.js +1 -0
  597. package/dist/vega/{p-f71aa49e.entry.js → p-3fc59fd3.entry.js} +1 -1
  598. package/dist/vega/p-40f6add9.entry.js +1 -0
  599. package/dist/vega/p-41784db1.js +1 -0
  600. package/dist/vega/p-456416ea.js +1 -0
  601. package/dist/vega/{p-883a939b.js → p-47c87634.js} +1 -1
  602. package/dist/vega/{p-5f456ea0.entry.js → p-4bc042ec.entry.js} +1 -1
  603. package/dist/vega/p-51622ace.entry.js +1 -0
  604. package/dist/vega/p-51cd2a39.entry.js +1 -0
  605. package/dist/vega/{p-1c1805aa.js → p-573948c2.js} +1 -1
  606. package/dist/vega/p-5d231a82.entry.js +1 -0
  607. package/dist/vega/{p-191c5c26.js → p-5dc98104.js} +1 -1
  608. package/dist/vega/p-5f377954.js +1 -1
  609. package/dist/vega/p-64e8bb64.js +1 -0
  610. package/dist/vega/p-657df167.entry.js +1 -0
  611. package/dist/vega/p-68055c2d.entry.js +1 -0
  612. package/dist/vega/p-6874d6a1.entry.js +1 -0
  613. package/dist/vega/p-6c6d86da.js +1 -0
  614. package/dist/vega/p-6d015656.entry.js +1 -0
  615. package/dist/vega/p-6e3cc7f0.entry.js +1 -0
  616. package/dist/vega/p-74168615.js +1 -0
  617. package/dist/vega/{p-4b29a9c2.entry.js → p-7a1df282.entry.js} +1 -1
  618. package/dist/vega/p-80c0f98c.entry.js +1 -0
  619. package/dist/vega/{p-016045b0.js → p-83af8ed7.js} +1 -1
  620. package/dist/vega/{p-462a6417.entry.js → p-84118b6d.entry.js} +1 -1
  621. package/dist/vega/p-880f91fb.js +1 -0
  622. package/dist/vega/p-8b0533c4.entry.js +1 -0
  623. package/dist/vega/p-8c72aa56.entry.js +1 -0
  624. package/dist/vega/p-8f60c3ee.entry.js +1 -0
  625. package/dist/vega/p-8fd6775a.entry.js +1 -0
  626. package/dist/vega/p-9a4ffc2c.entry.js +1 -0
  627. package/dist/vega/p-9e6934fb.js +1 -0
  628. package/dist/vega/{p-2df25c7f.js → p-9fbdeada.js} +1 -1
  629. package/dist/vega/p-a190c86a.js +1 -0
  630. package/dist/vega/p-a19ae233.entry.js +1 -0
  631. package/dist/vega/p-a454acc4.entry.js +1 -0
  632. package/dist/vega/{p-f1a59ae3.entry.js → p-a57eed48.entry.js} +1 -1
  633. package/dist/vega/p-a59c221b.entry.js +1 -0
  634. package/dist/vega/{p-a73c06f0.js → p-a5f80d35.js} +1 -1
  635. package/dist/vega/p-a8b1f19c.entry.js +1 -0
  636. package/dist/vega/{p-764be3f6.entry.js → p-a901494d.entry.js} +1 -1
  637. package/dist/vega/{p-af26780d.js → p-ac0ab38b.js} +1 -1
  638. package/dist/vega/p-acc14aa2.js +1 -0
  639. package/dist/vega/{p-9909e768.js → p-acf8b473.js} +1 -1
  640. package/dist/vega/{p-2675fb06.entry.js → p-b2053fa8.entry.js} +1 -1
  641. package/dist/vega/p-bccacf42.js +1 -0
  642. package/dist/vega/p-be26b334.entry.js +1 -0
  643. package/dist/vega/p-be784f53.js +1 -0
  644. package/dist/vega/{p-f6fa60f9.entry.js → p-cbeda6ca.entry.js} +1 -1
  645. package/dist/vega/p-d0a83562.entry.js +1 -0
  646. package/dist/vega/{p-3e1b21ec.entry.js → p-d4c85e4e.entry.js} +1 -1
  647. package/dist/vega/p-d4fb2264.entry.js +1 -0
  648. package/dist/vega/p-d550fc66.entry.js +1 -0
  649. package/dist/vega/p-d686dd96.entry.js +1 -0
  650. package/dist/vega/{p-bb491bed.js → p-da86ba01.js} +1 -1
  651. package/dist/vega/{p-59a75a4e.js → p-db120a1e.js} +1 -1
  652. package/dist/vega/p-e0410974.entry.js +1 -0
  653. package/dist/vega/p-ead9a2b9.entry.js +1 -0
  654. package/dist/vega/p-ec157238.js +1 -0
  655. package/dist/vega/p-f0ad06bd.entry.js +1 -0
  656. package/dist/vega/p-f2019f70.entry.js +1 -0
  657. package/dist/vega/p-f41102cd.js +1 -0
  658. package/dist/vega/{p-3542f8fe.js → p-f46c930f.js} +1 -1
  659. package/dist/vega/p-f948debe.entry.js +1 -0
  660. package/dist/vega/p-fb6c90d6.js +1 -0
  661. package/dist/vega/p-fc746bae.entry.js +1 -0
  662. package/dist/vega/{p-b6ef48be.entry.js → p-fd929ab5.entry.js} +1 -1
  663. package/dist/vega/vega.esm.js +1 -1
  664. package/package.json +2 -2
  665. package/dist/cjs/misc-3d30df91.js +0 -41
  666. package/dist/esm/misc-9fdbcfbb.js +0 -37
  667. package/dist/vega/p-0134e8c5.js +0 -1
  668. package/dist/vega/p-020baf8d.entry.js +0 -1
  669. package/dist/vega/p-0702921a.entry.js +0 -1
  670. package/dist/vega/p-0f71ffab.entry.js +0 -1
  671. package/dist/vega/p-13f2c41c.entry.js +0 -1
  672. package/dist/vega/p-16c85ca9.entry.js +0 -1
  673. package/dist/vega/p-1878a270.entry.js +0 -1
  674. package/dist/vega/p-1f712313.js +0 -1
  675. package/dist/vega/p-23ec14fe.js +0 -1
  676. package/dist/vega/p-241bd30d.entry.js +0 -1
  677. package/dist/vega/p-25310239.entry.js +0 -1
  678. package/dist/vega/p-28b1a294.entry.js +0 -1
  679. package/dist/vega/p-29ac203a.js +0 -1
  680. package/dist/vega/p-396c3e32.entry.js +0 -1
  681. package/dist/vega/p-3c8b2105.js +0 -1
  682. package/dist/vega/p-3e6e7fe0.entry.js +0 -1
  683. package/dist/vega/p-41f61205.entry.js +0 -1
  684. package/dist/vega/p-4302b57d.entry.js +0 -1
  685. package/dist/vega/p-47d106e7.js +0 -1
  686. package/dist/vega/p-47ee3c26.entry.js +0 -1
  687. package/dist/vega/p-4925ec08.entry.js +0 -1
  688. package/dist/vega/p-4f8ce53e.entry.js +0 -1
  689. package/dist/vega/p-5041624e.entry.js +0 -1
  690. package/dist/vega/p-527fec9b.entry.js +0 -1
  691. package/dist/vega/p-530f2b72.entry.js +0 -1
  692. package/dist/vega/p-54f87b68.entry.js +0 -1
  693. package/dist/vega/p-55ccc669.entry.js +0 -1
  694. package/dist/vega/p-68e87fb4.entry.js +0 -13
  695. package/dist/vega/p-75c401fe.entry.js +0 -1
  696. package/dist/vega/p-770c736e.js +0 -1
  697. package/dist/vega/p-7cbd8367.entry.js +0 -1
  698. package/dist/vega/p-7ff750c0.entry.js +0 -1
  699. package/dist/vega/p-8172bde8.entry.js +0 -1
  700. package/dist/vega/p-8b5d3a52.js +0 -1
  701. package/dist/vega/p-8ca2b2a6.js +0 -1
  702. package/dist/vega/p-9f9535d4.js +0 -1
  703. package/dist/vega/p-a1f7484f.js +0 -1
  704. package/dist/vega/p-a537eaa9.entry.js +0 -1
  705. package/dist/vega/p-b34a7f6c.entry.js +0 -1
  706. package/dist/vega/p-b441fd2d.entry.js +0 -1
  707. package/dist/vega/p-b9cb9098.entry.js +0 -1
  708. package/dist/vega/p-bb953c8e.js +0 -1
  709. package/dist/vega/p-bc5ce560.entry.js +0 -1
  710. package/dist/vega/p-be893ca7.entry.js +0 -1
  711. package/dist/vega/p-c093f5d2.js +0 -1
  712. package/dist/vega/p-c4ebfb95.entry.js +0 -1
  713. package/dist/vega/p-c6e0ca01.entry.js +0 -1
  714. package/dist/vega/p-c946ff64.entry.js +0 -1
  715. package/dist/vega/p-ca656348.entry.js +0 -1
  716. package/dist/vega/p-d26f7423.entry.js +0 -1
  717. package/dist/vega/p-d6893dba.entry.js +0 -1
  718. package/dist/vega/p-d9cd543f.entry.js +0 -1
  719. package/dist/vega/p-d9fc1fff.entry.js +0 -1
  720. package/dist/vega/p-e011e457.entry.js +0 -1
  721. package/dist/vega/p-e4085f89.entry.js +0 -1
  722. package/dist/vega/p-ea1f50c9.entry.js +0 -1
  723. package/dist/vega/p-eae4a1c1.js +0 -1
  724. package/dist/vega/p-f9e456a6.js +0 -1
  725. /package/dist/vega/{p-7c316199.js → p-319efe6c.js} +0 -0
  726. /package/dist/vega/{p-961e1ecd.js → p-e2acbc60.js} +0 -0
@@ -2,35 +2,38 @@ import { h, F as Fragment, f as forceUpdate, r as registerInstance, c as createE
2
2
  import { s as sanitizeVegaComponent } from './component-cae24190.js';
3
3
  import { c as MapToComponentField, V as VegaSlimmer, M as MapToComponentMethod, L as LogUtility, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
4
4
  import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlimmer } from './component-usage-runtime-metrics-b3f6ac79.js';
5
- import { D as DomNodeSubjectObserverFactory, d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-0d4b85b8.js';
5
+ import { D as DomNodeSubjectObserverFactory, d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-9461cd67.js';
6
6
  import { a as VegaClick, e as VegaChange, b as VegaDropdownClick, f as VegaEventClick, g as VegaDateDblClick, h as VegaMoreActionClick } from './vega-event-id-7465a011.js';
7
- import { V as VegaInternalIconManager } from './internal-icon-manager-ebe6ecf4.js';
7
+ import { V as VegaInternalIconManager } from './internal-icon-manager-9671142a.js';
8
8
  import { p as pad } from './date-732bc749.js';
9
- import { c as createEventEmitSlimmer } from './event-emit-slimmer-0315fa00.js';
10
- import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-d3883004.js';
9
+ import { c as createEventEmitSlimmer } from './event-emit-slimmer-eee9fd41.js';
10
+ import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-345c46c5.js';
11
11
  import { i as VegaInternalCalendarMonthEventsChange } from './vega-internal-event-id-7e05cf4a.js';
12
12
  import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0fab.js';
13
13
  import { f as flatNestedArray } from './array-506b88b9.js';
14
- import { g as generateUUID } from './misc-9fdbcfbb.js';
15
- import { P as PageResizeObserverSlimmer } from './page-resize-observer-slimmer-8caeb03b.js';
14
+ import { g as generateUUID } from './create-public-api-runtime-metrics-slimmer-928ad7f0.js';
15
+ import { P as PageResizeObserverSlimmer } from './page-resize-observer-slimmer-994c1e1b.js';
16
16
  import { d as debounce } from './timer-9321173b.js';
17
17
  import { C as ChangeManager } from './change-manager-6a7eb88c.js';
18
- import { c as createSubStateNotifySlimmer, S as SubStateObserverSlimmer } from './sub-state-observer-slimmer-46abe492.js';
18
+ import { c as createSubStateNotifySlimmer, S as SubStateObserverSlimmer } from './sub-state-observer-slimmer-8eff5559.js';
19
+ import { T as TranslationSlimmer } from './translation-slimmer-79f9a9c9.js';
19
20
  import { s as slotPlaceholder } from './placeholder-bf562081.js';
20
- import { p as isBackgroundColorTokenType } from './type-guard-467c9e3e.js';
21
- import { s as stateBackgroundColorFormatter } from './state-background-color-formatter-de7e6522.js';
21
+ import { p as isBackgroundColorTokenType } from './type-guard-63caf78b.js';
22
+ import { s as stateBackgroundColorFormatter } from './state-background-color-formatter-0540d006.js';
22
23
  import { b as parsePixelStringToNumber } from './pixel-f32c07ce.js';
24
+ import './observer-3959f9dd.js';
23
25
  import './ui-0132dbb5.js';
24
- import './icon-manager-754cda3f.js';
25
- import './create-public-api-runtime-metrics-slimmer-dc9af92b.js';
26
+ import './icon-manager-0f030f8a.js';
26
27
  import './dynamic-slimmer-90b8af32.js';
27
28
  import './internal-vega-event-manager-722461c1.js';
28
29
  import './vega-env-manager-8f8dc473.js';
29
- import './feature-flag-controller-a5fe5022.js';
30
+ import './feature-flag-controller-10780eeb.js';
30
31
  import './index-0863eec6.js';
31
32
  import './number-e2519d1c.js';
32
- import './breakpoints-e59edf8d.js';
33
- import './ui-df46cc20.js';
33
+ import './breakpoints-36a3ed69.js';
34
+ import './ui-8424715a.js';
35
+ import './translation-0fa7cf77.js';
36
+ import './static-subject-title-6987a80b.js';
34
37
  import './regex-dfe11abf.js';
35
38
  import './typography-a8fc4764.js';
36
39
 
@@ -69,1047 +72,1146 @@ const chevronLeft = {
69
72
  };
70
73
 
71
74
  /**
72
- * get month name from the month number
73
- *
74
- * @param {Date} date the date object
75
- * @param {boolean} isShortName short or long name
76
- * @returns {string} the month English name
77
- */
78
- function getMonthName(date, isShortName = false) {
79
- return date.toLocaleDateString('en-US', { month: isShortName ? 'short' : 'long' });
80
- }
81
- /**
82
- * The function `getTimeIndex` calculates the index of a given time string based on a specified time unit.
83
- *
84
- * @param {string} timeString - A string representing a time in the format "HH:MM", where HH is the hour and MM is the minutes.
85
- * @param {number} [unit=15] - The `unit` parameter in the `getTimeIndex` function is used to specify
86
- * the interval in minutes for dividing the day. By default, it is set to 15 minutes, meaning that the
87
- * day will be divided into 15-minute intervals.
88
- * @returns {number} the index of the given time string based on the specified time unit.
89
- */
90
- function getTimeIndex(timeString, unit = 15) {
91
- const [hour, minutes] = timeString.split(':');
92
- return Math.round((Number(hour) * 60 + Number(minutes)) / unit);
93
- }
94
- /**
95
- * Returns a string that includes the event key for a calendar event slot.
75
+ * Get a week days array
96
76
  *
97
- * @param {string} eventKey - represents the key or identifier of a calendar event.
98
- * @returns {string} a string that is a concatenation of 'vega-calendar-event-slot-' and the eventKey parameter.
77
+ * @param {number} firstWeekDay - The first week day (0: Sunday, 1: Monday, ...)
78
+ * @returns {number[]} - The week days array
99
79
  */
100
- function getCalendarEventSlotName(eventKey) {
101
- return 'vega-calendar-event-slot-' + eventKey;
102
- }
103
-
104
- const ellipsisVertical = {
105
- icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M48 464a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm0-160a48 48 0 1 1 0-96 48 48 0 1 1 0 96zM0 96a48 48 0 1 1 96 0A48 48 0 1 1 0 96z"/></svg>`,
80
+ const getWeekdays = (firstWeekDay = 0) => {
81
+ const weekdays = [0, 1, 2, 3, 4, 5, 6];
82
+ return weekdays.concat(weekdays).slice(firstWeekDay, firstWeekDay + 7);
106
83
  };
107
84
 
108
- var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
109
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
110
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
111
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
112
- return c > 3 && r && Object.defineProperty(target, key, r), r;
113
- };
114
- /** The `VegaCalendarSwitchPanelRenderer` class in TypeScript React renders a calendar switch panel with date navigation, view selection, and action buttons. */
115
- class VegaCalendarSwitchPanelRenderer extends VegaSlimmer {
85
+ /**
86
+ * Calendar view generator abstract class.
87
+ */
88
+ class CalendarViewGenerator {
116
89
  constructor() {
117
- super(...arguments);
118
- /**
119
- * This function is responsible for updating the `viewMode` property of the `VegaCalendarSwitchPanelRenderer` class with the value extracted from the `input` parameter.
120
- *
121
- * @param {NotifyObserverPayload<VegaCalendarViewModeType>} input mark which view should be selected
122
- */
123
- this.handleViewChange = (input) => {
124
- this.currentPeriodController.updateCalendarPeriod(input.detail, this.currentPeriod.current);
125
- };
126
- /**
127
- * reset view content to today
128
- */
129
- this.todayButtonClick = () => {
130
- this.currentPeriodController.setCurrentPeriod(this.currentPeriod.now());
131
- };
132
- /**
133
- * update view content after click next button
134
- */
135
- this.nextButtonClick = () => {
136
- this.currentPeriodController.setCurrentPeriod(this.currentPeriod.next());
137
- };
138
- /**
139
- * update view content after click previous button
140
- */
141
- this.prevButtonClick = () => {
142
- this.currentPeriodController.setCurrentPeriod(this.currentPeriod.previous());
143
- };
144
- /**
145
- * The more action menu ite click
146
- *
147
- * @param {NotifyObserverPayload<string>} payload The object contains the menu item key
148
- */
149
- this.moreActionMenuClick = (payload) => {
150
- this.moreActionClickEmitter.emit(payload.detail);
151
- };
152
- }
153
- /**
154
- * get the switch panel container element
155
- *
156
- * @returns {HTMLElement} container element
157
- */
158
- getSwitchPanelRef() {
159
- return this.switchPanelRef;
160
- }
161
- /**
162
- * calendar switch panel with date switch, view switch, add new button, and more action components.
163
- *
164
- * @returns {HTMLElement} html element
165
- */
166
- render() {
167
- return (h("vega-flex", { direction: "row", gap: "size-16", justifyContent: "space-between", alignItems: "center", class: "calendar-switch-panel", ref: (node) => (this.switchPanelRef = node) },
168
- this.renderDateSwitch(),
169
- h("div", { class: "calendar-view-switch-container" },
170
- this.renderViewSwitch(),
171
- this.renderMoreActionMenu())));
172
- }
173
- /**
174
- * The `renderDateSwitch` function returns a container with buttons for switching dates and displaying the current date.
175
- *
176
- * @returns {HTMLDivElement} action button elements container.
177
- */
178
- renderDateSwitch() {
179
- return (h("div", { class: "calendar-date-switch-container" },
180
- h("vega-button", { variant: "secondary", size: "small", ref: (button) => {
181
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.todayButtonClick);
182
- } }, "Today"),
183
- h("vega-button-circle", { variant: "secondary", size: "small", icon: VegaInternalIconManager.getIconKey('chevron-left'), label: "previous", showTooltip: false, ref: (button) => {
184
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.prevButtonClick);
185
- } }),
186
- h("vega-button-circle", { variant: "secondary", size: "small", icon: VegaInternalIconManager.getIconKey('chevron-right'), label: "next", showTooltip: false, ref: (button) => {
187
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.nextButtonClick);
188
- } }),
189
- this.renderCurrentPeriod()));
190
- }
191
- /**
192
- * The function `renderCurrentPeriod` returns an HTML element displaying the view date content summary info.
193
- *
194
- * @returns {HTMLVegaFontElement} The text content inside the element is "Current Date Test".
195
- */
196
- renderCurrentPeriod() {
197
- return (h("vega-font", { class: "calendar-current-date", variant: "font-field-label", color: "text-primary" }, this.getViewDateSummary()));
90
+ this.WEEKDAYS_SHORT = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
91
+ this.weekdays = getWeekdays();
198
92
  }
199
93
  /**
200
- * The function `renderViewSwitch` returns a JSX element for rendering a segment control component in a TypeScript React application.
94
+ * Get weekday names.
201
95
  *
202
- * @returns {HTMLElement} An HTMLElement containing a vega-segment-control element with specific attributes and event handling.
96
+ * @returns {string[]} - The weekday strings
203
97
  */
204
- renderViewSwitch() {
205
- return (h("vega-segment-control", { segments: VegaCalendarSwitchPanelRenderer.views, size: "small", variant: "text-only", selected: this.viewMode, ref: (node) => {
206
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaChange, this.handleViewChange);
207
- } }));
98
+ getWeekdayNames() {
99
+ return this.WEEKDAYS_SHORT;
208
100
  }
209
101
  /**
210
- * Render an more action button if dropdown source is not empty
102
+ * Generate calendar dates
211
103
  *
212
- * @returns {Nullable<HTMLElement>} the additional element
104
+ * @param {CalendarPeriod} period - The calendar period
105
+ * @returns {Date[]} - The date result
213
106
  */
214
- renderMoreActionMenu() {
215
- var _a, _b;
216
- if ((_b = (_a = this.moreActionDropdownProps) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.length) {
217
- return (h("vega-dropdown", Object.assign({ alignment: "end", trigger: "click" }, this.moreActionDropdownProps, { ref: (node) => {
218
- DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaDropdownClick, this.moreActionMenuClick);
219
- } }),
220
- h("vega-button-circle", { size: "small", icon: VegaInternalIconManager.getIconKey('ellipsis-vertical'), variant: "icon-only" })));
107
+ generateDates(period) {
108
+ const cursor = period.startDate.toDate();
109
+ const dates = [];
110
+ for (let i = 0; i < period.count; i++) {
111
+ dates.push(new Date(cursor));
112
+ cursor.setDate(cursor.getDate() + 1);
221
113
  }
114
+ return dates;
222
115
  }
223
116
  /**
224
- * Get the view content date summary info, such as `January, 2024` or `10 January, 2024` or `28 December, 2023 - 3 January, 2024`
117
+ * Generate calendar head
225
118
  *
226
- * @returns {string} string
119
+ * @returns {string[]} - The data of week head
227
120
  */
228
- getViewDateSummary() {
229
- const currentDate = this.currentPeriod.current;
230
- let result = '';
231
- switch (this.viewMode) {
232
- case 'day':
233
- result = `${currentDate.date} ${getMonthName(currentDate.toDate())}, ${currentDate.year}`;
234
- break;
235
- case 'week': {
236
- const start = this.currentPeriod.startDate;
237
- const end = this.currentPeriod.endDate;
238
- result = `${start.date} ${getMonthName(start.toDate())}${start.year === end.year ? '' : ', ' + start.year} - ${end.date} ${getMonthName(end.toDate())}, ${end.year}`;
239
- break;
240
- }
241
- case 'month':
242
- result = `${getMonthName(currentDate.toDate())}, ${currentDate.year}`;
243
- break;
244
- }
245
- return result;
121
+ generateWeekHead() {
122
+ return this.weekdays.map((day) => this.getWeekdayNames()[day]);
246
123
  }
247
124
  }
248
- (() => {
249
- VegaInternalIconManager.register({
250
- 'chevron-right': chevronRight,
251
- 'chevron-left': chevronLeft,
252
- 'ellipsis-vertical': ellipsisVertical,
253
- });
254
- })();
255
- VegaCalendarSwitchPanelRenderer.views = [
256
- { text: 'Day', key: 'day' },
257
- { text: 'Week', key: 'week' },
258
- { text: 'Month', key: 'month' },
259
- ];
260
- __decorate$n([
261
- MapToComponentField()
262
- ], VegaCalendarSwitchPanelRenderer.prototype, "viewMode", void 0);
263
- __decorate$n([
264
- MapToComponentField()
265
- ], VegaCalendarSwitchPanelRenderer.prototype, "calendarView", void 0);
266
- __decorate$n([
267
- MapToComponentField()
268
- ], VegaCalendarSwitchPanelRenderer.prototype, "currentPeriod", void 0);
269
- __decorate$n([
270
- MapToComponentField()
271
- ], VegaCalendarSwitchPanelRenderer.prototype, "moreActionDropdownProps", void 0);
272
- __decorate$n([
273
- MapToComponentField()
274
- ], VegaCalendarSwitchPanelRenderer.prototype, "moreActionClickEmitter", void 0);
275
- __decorate$n([
276
- MapToComponentField()
277
- ], VegaCalendarSwitchPanelRenderer.prototype, "currentPeriodController", void 0);
278
- __decorate$n([
279
- MapToComponentField()
280
- ], VegaCalendarSwitchPanelRenderer.prototype, "calendarViewController", void 0);
281
125
 
282
- var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
283
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
284
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
285
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
286
- return c > 3 && r && Object.defineProperty(target, key, r), r;
287
- };
288
- /** renders different views based on the specified view mode using month, week, and day view render. */
289
- class VegaCalendarViewRenderer extends VegaSlimmer {
126
+ /**
127
+ * Calendar view
128
+ */
129
+ class CalendarView {
130
+ constructor(weekdays, dateItems) {
131
+ this._weekdays = weekdays;
132
+ this._dateItems = dateItems;
133
+ }
290
134
  /**
291
- * render the calendar month/week/day view
135
+ * The week head of the calendar view
292
136
  *
293
- * @returns {HTMLElement} html element
137
+ * @type {string[]}
294
138
  */
295
- render() {
296
- return (h("div", { class: `calendar-view calendar-view-${this.viewMode}` }, this.viewMode === 'month'
297
- ? this.monthViewRenderer.render()
298
- : this.viewWithTimeRenderer.render()));
139
+ get weekdays() {
140
+ return this._weekdays;
299
141
  }
300
- }
301
- __decorate$m([
302
- MapToComponentField()
303
- ], VegaCalendarViewRenderer.prototype, "viewMode", void 0);
304
- __decorate$m([
305
- MapToComponentField()
306
- ], VegaCalendarViewRenderer.prototype, "monthViewRenderer", void 0);
307
- __decorate$m([
308
- MapToComponentField()
309
- ], VegaCalendarViewRenderer.prototype, "viewWithTimeRenderer", void 0);
310
-
311
- var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
312
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
313
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
314
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
315
- return c > 3 && r && Object.defineProperty(target, key, r), r;
316
- };
317
- /** The code provided is defining a TypeScript class called `VegaCalendarMonthViewRenderer` that extends `VegaSlimmer`. This class is responsible for rendering a month view of a calendar component. */
318
- class VegaCalendarMonthViewRenderer extends VegaSlimmer {
319
142
  /**
320
- * the HTML elements that represent the month view of a calendar component.
143
+ * The date items of the calendar view
321
144
  *
322
- * @returns {HTMLElement} the month view calendar content
145
+ * @type {CalendarDate[][]}
323
146
  */
324
- render() {
325
- const weekHead = this.calendarView.weekdays;
326
- return (h("div", { class: "calendar-view-month-container" },
327
- h("div", { class: "calendar-view-row calendar-view-title border-divider-bottom" }, weekHead.map((title) => (h("div", { key: title }, title)))),
328
- this.renderMonthViewContent()));
147
+ get dateItems() {
148
+ return this._dateItems;
329
149
  }
150
+ }
151
+
152
+ /**
153
+ * Day view calendar generator
154
+ */
155
+ class DayViewGenerator extends CalendarViewGenerator {
330
156
  /**
331
- * generating the HTML elements that represent the content of the month view in a calendar component
332
- *
333
- * @returns {HTMLElement[]} month view content and event content
157
+ * @inheritDoc
334
158
  */
335
- renderMonthViewContent() {
336
- const monthSource = this.calendarView.dateItems;
337
- const currentDate = this.currentPeriod.current;
338
- return monthSource.map((dateArray, index) => {
339
- const eventsArray = this.monthEventRenderer.getCurrentRowEvents(dateArray);
340
- const displayEventsArray = this.monthEventRenderer.filterRowDisplayEvents(eventsArray);
341
- return (h("div", { key: index, class: "calendar-view-row border-divider-bottom" }, dateArray.map((item, itemIndex) => {
342
- return (h("div", { class: {
343
- 'row-cell border-divider-right': true,
344
- 'current-month-day': item.compare(currentDate).inMonth,
345
- 'active': item.isToday(),
346
- 'disabled': false,
347
- }, key: `${item.month}-${item.date}`,
348
- // eslint-disable-next-line react/jsx-no-bind
349
- onDblClick: (e) => this.handleDateBlockClick(e, item) },
350
- this.renderDateBlock(item),
351
- this.monthEventRenderer.render(item, eventsArray[itemIndex], displayEventsArray[itemIndex], itemIndex)));
352
- })));
353
- });
159
+ generate(period) {
160
+ return new CalendarView([this.generateWeekHead()[period.current.toDate().getDay()]], [[period.current]]);
161
+ }
162
+ }
163
+
164
+ /**
165
+ * Calendar date class
166
+ */
167
+ class CalendarDate {
168
+ constructor(year, month, date) {
169
+ this._date = date;
170
+ this._month = month;
171
+ this._year = year;
354
172
  }
355
173
  /**
356
- * It takes a `CalendarDate` object as a parameter and returns an HTML element representing a date block in the calendar view.
174
+ * Create a calendar date from a Date object
357
175
  *
358
- * @param {CalendarDate} item the day object
359
- * @returns {HTMLElement} the date block element
176
+ * @param {Date} date - The Date object
177
+ * @returns {CalendarDate} - Return a CalendarDate object
360
178
  */
361
- renderDateBlock(item) {
362
- const isMonthFirstDay = item.date === 1;
363
- return (h("div", { class: "date" },
364
- isMonthFirstDay && h("div", { class: "month-block" }, getMonthName(item.toDate(), true)),
365
- h("div", { role: "button", tabIndex: 0, class: "grid-col",
366
- // eslint-disable-next-line react/jsx-no-bind
367
- onDblClick: (e) => this.goToCurrentDayView(e, item) }, item.date)));
179
+ static from(date) {
180
+ return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate());
368
181
  }
369
182
  /**
370
- * switch to current date day view
183
+ * The year of the calendar date
371
184
  *
372
- * @param {MouseEvent} e the double click event object
373
- * @param {CalendarDate} calendarDate the calendar date object
185
+ * @type {number}
374
186
  */
375
- goToCurrentDayView(e, calendarDate) {
376
- e.stopPropagation();
377
- this.currentPeriodController.updateCalendarPeriod('day', calendarDate);
187
+ get year() {
188
+ return this._year;
189
+ }
190
+ set year(value) {
191
+ this._year = value;
378
192
  }
379
193
  /**
380
- * emit vega click event when click the date block
194
+ * The month of the calendar date
381
195
  *
382
- * @param {MouseEvent} e the mouse event object
383
- * @param {CalendarDate} calendarDate the calendar date object
196
+ * @type {number}
384
197
  */
385
- handleDateBlockClick(e, calendarDate) {
386
- const target = e.target;
387
- if (this.isMonthBlockBlankArea(target)) {
388
- const { year, month, date } = calendarDate;
389
- this.dateDblClickEmitter.emit({ year, month, date, hour: 0 });
390
- }
198
+ get month() {
199
+ return this._month;
200
+ }
201
+ set month(value) {
202
+ this._month = value;
391
203
  }
392
204
  /**
393
- * determine if the clicked element is blank area
205
+ * The date of the calendar date
394
206
  *
395
- * @param {HTMLElement} element the target element
396
- * @returns {boolean} true or false
207
+ * @type {number}
397
208
  */
398
- isMonthBlockBlankArea(element) {
399
- // the more button and the calendar event component should not trigger dateDblClick event
400
- return !element.classList.contains('more-button') && element.tagName !== 'VEGA-CALENDAR-EVENT';
209
+ get date() {
210
+ return this._date;
211
+ }
212
+ set date(value) {
213
+ this._date = value;
401
214
  }
402
- }
403
- __decorate$l([
404
- MapToComponentField()
405
- ], VegaCalendarMonthViewRenderer.prototype, "viewMode", void 0);
406
- __decorate$l([
407
- MapToComponentField()
408
- ], VegaCalendarMonthViewRenderer.prototype, "calendarView", void 0);
409
- __decorate$l([
410
- MapToComponentField()
411
- ], VegaCalendarMonthViewRenderer.prototype, "currentPeriod", void 0);
412
- __decorate$l([
413
- MapToComponentField()
414
- ], VegaCalendarMonthViewRenderer.prototype, "calendarViewController", void 0);
415
- __decorate$l([
416
- MapToComponentField()
417
- ], VegaCalendarMonthViewRenderer.prototype, "currentPeriodController", void 0);
418
- __decorate$l([
419
- MapToComponentField()
420
- ], VegaCalendarMonthViewRenderer.prototype, "monthEventRenderer", void 0);
421
- __decorate$l([
422
- MapToComponentField()
423
- ], VegaCalendarMonthViewRenderer.prototype, "dateDblClickEmitter", void 0);
424
-
425
- var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
426
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
427
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
428
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
429
- return c > 3 && r && Object.defineProperty(target, key, r), r;
430
- };
431
- /** The `VegaCalendarViewWithTimeRenderer` class in TypeScript React renders a day view for a calendar component with title, content, and hour blocks. */
432
- class VegaCalendarViewWithTimeRenderer extends VegaSlimmer {
433
215
  /**
434
- * The render function in TypeScript React returns an array of HTMLElements containing the week calendar view for a specific day.
216
+ * Verify whether the calendar date is today
435
217
  *
436
- * @returns {HTMLElement} An array of HTMLElement elements containing the rendered content of a calendar view for a
437
- * specific day in the week. The content includes the title and the main content of the calendar view
438
- * for that day.
218
+ * @returns {boolean} - Return true if the calendar date is today. Otherwise, return false.
439
219
  */
440
- render() {
441
- return (h("div", { class: "calendar-view-container" },
442
- this.renderViewTitle(),
443
- this.renderViewContent()));
220
+ isToday() {
221
+ const today = new Date();
222
+ return (today.getFullYear() === this.year &&
223
+ today.getMonth() + 1 === this.month &&
224
+ today.getDate() === this.date);
444
225
  }
445
226
  /**
446
- * The function `renderViewTitle` renders a calendar view title and events based on the provided source data.
227
+ * Convert the calendar date to a Date object
447
228
  *
448
- * @returns {HTMLElement} The `renderViewTitle` function returns an HTML element (HTMLElement) that contains a calendar view title container with rows for each day's information.
229
+ * @returns {Date} - Return a Date object
449
230
  */
450
- renderViewTitle() {
451
- const source = this.calendarView.dateItems[0];
452
- const weekHead = this.calendarView.weekdays;
453
- return (h("div", { class: "calendar-view-title-container" },
454
- h("div", { class: "calendar-view-row" },
455
- h("div", { class: "time-line-empty" }),
456
- h("div", { class: "calendar-view-title" }, source.map((item, index) => (h("div", { key: item.date, class: { active: item.isToday() } },
457
- h("div", null, weekHead[index]),
458
- h("div", { class: "week-day" }, item.date)))))),
459
- h("div", { class: "calendar-view-row calendar-view-event-all-container border-divider-bottom" },
460
- h("div", { class: "time-line-all" }, "All Day"),
461
- this.dayViewFullDayEventRenderer.render())));
231
+ toDate() {
232
+ return new Date(this.year, this.month - 1, this.date);
462
233
  }
463
234
  /**
464
- * The `renderViewContent` function in TypeScript React renders a calendar view with day blocks and time markers based on the provided data.
235
+ * Compare with another calendar date
465
236
  *
466
- * @returns {HTMLElement} An HTMLElement containing a calendar view row with day containers, a timeline renderer, a content container, a day list, and hour blocks for each item in the source array.
237
+ * @param {CalendarDate} date - The calendar date to compare with
238
+ * @returns {DateCompareResult} - Return a DateCompareResult object
467
239
  */
468
- renderViewContent() {
469
- const source = this.calendarView.dateItems[0];
470
- return (h("div", { class: "calendar-view-row calendar-view-day-container" },
471
- this.timeLineRenderer.render(),
472
- h("div", { class: "calendar-view-content-container" },
473
- h("div", { class: "calendar-view-content" }, source.map((item) => {
474
- return (h("div", { class: "grid-col border-divider-left", key: item.date },
475
- h("div", { class: "hour-empty border-divider-top" }),
476
- this.renderHourBlock(item)));
477
- })),
478
- this.dayViewTimedEventRenderer.render(),
479
- this.timeLineRenderer.renderTimeMarker(source))));
240
+ compare(date) {
241
+ const { year, month } = date;
242
+ const result = {
243
+ isPreviousMonth: false,
244
+ inMonth: false,
245
+ isNextMonth: false,
246
+ };
247
+ if (this.year === year) {
248
+ if (this.month < month) {
249
+ result.isPreviousMonth = true;
250
+ }
251
+ else if (this.month > month) {
252
+ result.isNextMonth = true;
253
+ }
254
+ else {
255
+ result.inMonth = true;
256
+ }
257
+ }
258
+ else if (this.year > year) {
259
+ result.isNextMonth = true;
260
+ }
261
+ else {
262
+ result.isPreviousMonth = true;
263
+ }
264
+ return result;
480
265
  }
481
266
  /**
482
- * The function `renderHourBlock` returns an array of HTML elements representing hour blocks with time information.
267
+ * The function "equal" compares the year, month, and date of two CalendarDate objects and returns true if they are equal.
483
268
  *
484
- * @param {CalendarDate} calendarDate then current calendar date object
485
- * @returns {HTMLElement[]} An array of HTMLElements is being returned. Each HTMLElement represents an hour block with a time value inside a div element.
269
+ * @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
270
+ * `CalendarDate` object passed as a parameter. The method returns `true` if all three values (year, month, date) are equal
271
+ * @returns {boolean} The date is same day with current
486
272
  */
487
- renderHourBlock(calendarDate) {
488
- const timeLineSource = Array(24).fill('');
489
- return timeLineSource.map((_item, index) => {
490
- return (h("div", { class: "grid-cell border-divider-top",
491
- // eslint-disable-next-line react/jsx-no-bind
492
- onDblClick: () => {
493
- this.handleDateBlockClick(calendarDate, index);
494
- } }));
495
- });
273
+ equal(calendarDate) {
274
+ const { year, month, date } = calendarDate;
275
+ return this._year === year && this._month === month && this._date === date;
276
+ }
277
+ }
278
+
279
+ /**
280
+ * Calendar week view generator
281
+ */
282
+ class WeekViewGenerator extends CalendarViewGenerator {
283
+ /**
284
+ * @inheritDoc
285
+ */
286
+ generate(period) {
287
+ const dates = this.generateDates(period);
288
+ const showWeekends = period.showWeekends;
289
+ let weekDays = this.generateWeekHead();
290
+ let dateItems = [dates.map(CalendarDate.from)];
291
+ if (showWeekends === false) {
292
+ weekDays = weekDays.slice(1, 6);
293
+ dateItems = dateItems.map((items) => items.slice(1, 6));
294
+ }
295
+ return new CalendarView(weekDays, dateItems);
496
296
  }
297
+ }
298
+
299
+ /**
300
+ * Calendar month view generator
301
+ */
302
+ class MonthViewGenerator extends CalendarViewGenerator {
497
303
  /**
498
- * emit vega click event when click the date block
499
- *
500
- * @param {CalendarDate} calendarDate the calendar date object
304
+ * @inheritDoc
501
305
  */
502
- handleDateBlockClick(calendarDate, hour) {
503
- const { year, month, date } = calendarDate;
504
- this.dateDblClickEmitter.emit({ year, month, date, hour });
306
+ generate(period) {
307
+ const showWeekends = period.showWeekends;
308
+ let calendarDates = [];
309
+ let week = [];
310
+ const dates = this.generateDates(period);
311
+ dates.forEach((date, i) => {
312
+ if (!(i % 7)) {
313
+ calendarDates[i / 7] = week = [];
314
+ }
315
+ const item = CalendarDate.from(date);
316
+ week.push(item);
317
+ });
318
+ let weekDays = this.generateWeekHead();
319
+ if (showWeekends === false) {
320
+ weekDays = weekDays.slice(1, 6);
321
+ calendarDates = calendarDates.map((items) => items.slice(1, 6));
322
+ }
323
+ return new CalendarView(weekDays, calendarDates);
505
324
  }
506
325
  }
507
- __decorate$k([
508
- MapToComponentField()
509
- ], VegaCalendarViewWithTimeRenderer.prototype, "viewMode", void 0);
510
- __decorate$k([
511
- MapToComponentField()
512
- ], VegaCalendarViewWithTimeRenderer.prototype, "timeLineRenderer", void 0);
513
- __decorate$k([
514
- MapToComponentField()
515
- ], VegaCalendarViewWithTimeRenderer.prototype, "dayViewTimedEventRenderer", void 0);
516
- __decorate$k([
517
- MapToComponentField()
518
- ], VegaCalendarViewWithTimeRenderer.prototype, "dayViewFullDayEventRenderer", void 0);
519
- __decorate$k([
520
- MapToComponentField()
521
- ], VegaCalendarViewWithTimeRenderer.prototype, "calendarView", void 0);
522
- __decorate$k([
523
- MapToComponentField()
524
- ], VegaCalendarViewWithTimeRenderer.prototype, "calendarViewController", void 0);
525
- __decorate$k([
526
- MapToComponentField()
527
- ], VegaCalendarViewWithTimeRenderer.prototype, "dateDblClickEmitter", void 0);
528
326
 
529
- var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
530
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
531
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
532
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
533
- return c > 3 && r && Object.defineProperty(target, key, r), r;
534
- };
535
- /** The `VegaCalendarTimeLineRenderer` class in TypeScript React renders a time line with custom time format options and includes methods for rendering time markers and the time line itself. */
536
- class VegaCalendarTimeLineRenderer extends VegaSlimmer {
327
+ /**
328
+ * CalendarPeriod is an abstract class that represents a period of date for calendar.
329
+ */
330
+ class CalendarPeriod {
331
+ constructor(count, current) {
332
+ this._count = count;
333
+ this._current = current ? current : CalendarDate.from(new Date());
334
+ this.calculatePeriod(this._current);
335
+ }
537
336
  /**
538
- * takes an array of `CalendarDate` objects as input and returns an HTML element
337
+ * The current date of the period.
539
338
  *
540
- * @param {CalendarDate[]} source
541
- * @returns {HTMLElement} the html element
339
+ * @type {CalendarDate}
542
340
  */
543
- renderTimeMarker(source) {
544
- const isVisible = source.findIndex((calendarDate) => calendarDate.isToday()) >= 0;
545
- return (h("div", { class: {
546
- 'time-marker-container': true,
547
- 'hidden': !isVisible,
548
- } },
549
- h("div", { class: "time-marker", style: { top: this.getTimeMarkerPosition() }, ref: (div) => (this.timeMarkerRef = div) }, source.map((item) => {
550
- return h("div", { key: item.date, class: { active: item.isToday() } });
551
- }))));
341
+ get current() {
342
+ return this._current;
552
343
  }
553
344
  /**
554
- * rendering the time line component as an HTML element
345
+ * The start date of the period
555
346
  *
556
- * @returns {HTMLElement} the html element
347
+ * @type {CalendarDate}
557
348
  */
558
- render() {
559
- const timeLineSource = this.getTimeLineTitles();
560
- return (h("div", { class: "time-line", ref: (div) => (this.timeLineRef = div) },
561
- h("div", { class: "hour-empty" }),
562
- timeLineSource.map((time, index) => {
563
- return (h("div", { key: time },
564
- h("div", { class: "time-text", "data-time": index === 0 ? 24 : index }, time)));
565
- })));
349
+ get startDate() {
350
+ return this._startDate;
566
351
  }
567
352
  /**
568
- * scroll to current time line block if change view mode to week or day
353
+ * The end date of the period
569
354
  *
570
- * @param {VegaCalendarViewModeType} viewMode the view mode
355
+ * @type {CalendarDate}
571
356
  */
572
- updateTimeLine(viewMode) {
573
- this.scrollToTargetTimeBlock(viewMode);
574
- this.syncTimeMarkerPosition(viewMode);
357
+ get endDate() {
358
+ return this._endDate;
575
359
  }
576
360
  /**
577
- * remove setInterval when component destroy
361
+ * The count of the period
362
+ *
363
+ * @type {number}
578
364
  */
579
- clearTimer() {
580
- clearInterval(this.timeMarkerPositionTimer);
365
+ get count() {
366
+ return this._count;
581
367
  }
582
368
  /**
583
- * Add the time mark position update logic if the component add back to page
369
+ * This function returns the type of the object.
370
+ *
371
+ * @type {string}
584
372
  */
585
- updateTimeLineIfComponentAddBack() {
586
- this.syncTimeMarkerPosition(this.viewMode);
373
+ get type() {
374
+ return this._type;
587
375
  }
588
376
  /**
589
- * The function `getTimeMarkerPosition` calculates the position of the current time marker as a percentage of the day.
377
+ * This function returns the showWeekends of the object.
590
378
  *
591
- * @returns {string} a string representing the current time marker position as a percentage of the day.
379
+ * @type {boolean}
592
380
  */
593
- getTimeMarkerPosition() {
594
- const now = new Date();
595
- const minutesOneDay = 24 * 60;
596
- return ((now.getHours() * 60 + now.getMinutes()) / minutesOneDay) * 100 + '%';
381
+ get showWeekends() {
382
+ return this._showWeekends;
597
383
  }
598
384
  /**
599
- * The function `getTimeLineTitles` generates a time line array based on the specified time format (24-hour) and stores it in the `timeLineSource` property.
385
+ * Go to a specific date.
600
386
  *
601
- * @returns {string[]} returns an array of strings representing the time line
387
+ * @param {CalendarDate} date - The date to go to.
388
+ * @returns {this} - The current period.
602
389
  */
603
- getTimeLineTitles() {
604
- const timeLine = [];
605
- if (this.timeFormat === '12-hour') {
606
- timeLine.push('12 AM');
607
- for (let i = 1; i < 12; i++) {
608
- timeLine.push(`${i} AM`);
609
- }
610
- timeLine.push('12 PM');
611
- for (let i = 1; i < 12; i++) {
612
- timeLine.push(`${i} PM`);
613
- }
614
- }
615
- else {
616
- for (let i = 0; i < 24; i++) {
617
- timeLine.push(pad(i));
618
- }
619
- }
620
- return timeLine;
390
+ goTo(date) {
391
+ return this.createBy(date);
621
392
  }
622
- /*
623
- * The below method is e2e-test covered in
624
- * @see{module:vega-calendar-scroll-to-current-time}
625
- */
626
- /* istanbul ignore next */
627
393
  /**
628
- * Update the time marker position with the time
394
+ * Go to now.
629
395
  *
630
- * @param {VegaCalendarViewModeType} viewMode view mode value
396
+ * @returns {this} - The current period.
631
397
  */
632
- syncTimeMarkerPosition(viewMode) {
633
- clearInterval(this.timeMarkerPositionTimer);
634
- if (viewMode !== 'month') {
635
- this.timeMarkerPositionTimer = setInterval(() => {
636
- if (this.timeMarkerRef) {
637
- this.timeMarkerRef.style.top = this.getTimeMarkerPosition();
638
- }
639
- }, 60 * 1000);
640
- }
398
+ now() {
399
+ return this.createBy(CalendarDate.from(new Date()));
641
400
  }
642
- /*
643
- * The below method is e2e-test covered in
644
- * @see{module:vega-calendar-scroll-to-current-time}
645
- */
646
- /* istanbul ignore next */
647
401
  /**
648
- * scroll the time line in to current view
402
+ * Calculate the period start date and end date.
649
403
  *
650
- * @param {VegaCalendarViewModeType} viewMode view mode value
404
+ * @param {CalendarDate} date - The date to calculate the period from.
651
405
  */
652
- scrollToTargetTimeBlock(viewMode) {
653
- if (viewMode !== 'month') {
654
- // add setTimeout here to make sure call the scroll into view after time line rendered.
655
- setTimeout(() => {
656
- var _a, _b;
657
- const hour = new Date().getHours();
658
- (_b = (_a = this.timeLineRef) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-time='${hour < 23 ? hour + 1 : hour}']`)) === null || _b === void 0 ? void 0 : _b.scrollIntoView({ block: 'end' });
659
- }, 0);
406
+ calculatePeriod(date) {
407
+ const cursor = date.toDate();
408
+ if (this.count > 1) {
409
+ cursor.setDate(cursor.getDate() - getWeekdays().indexOf(cursor.getDay()));
660
410
  }
411
+ this._startDate = CalendarDate.from(cursor);
412
+ cursor.setDate(cursor.getDate() + this.count - 1);
413
+ this._endDate = CalendarDate.from(cursor);
661
414
  }
662
415
  }
663
- __decorate$j([
664
- MapToComponentField()
665
- ], VegaCalendarTimeLineRenderer.prototype, "timeFormat", void 0);
666
- __decorate$j([
667
- MapToComponentField()
668
- ], VegaCalendarTimeLineRenderer.prototype, "viewMode", void 0);
669
- __decorate$j([
670
- MapToComponentMethod('watchViewModeChange')
671
- ], VegaCalendarTimeLineRenderer.prototype, "updateTimeLine", null);
672
- __decorate$j([
673
- MapToComponentMethod('disconnectedCallback')
674
- ], VegaCalendarTimeLineRenderer.prototype, "clearTimer", null);
675
- __decorate$j([
676
- MapToComponentMethod('connectedCallback')
677
- ], VegaCalendarTimeLineRenderer.prototype, "updateTimeLineIfComponentAddBack", null);
678
416
 
679
417
  /**
680
- * Get a week days array
681
- *
682
- * @param {number} firstWeekDay - The first week day (0: Sunday, 1: Monday, ...)
683
- * @returns {number[]} - The week days array
418
+ * Period of day.
684
419
  */
685
- const getWeekdays = (firstWeekDay = 0) => {
686
- const weekdays = [0, 1, 2, 3, 4, 5, 6];
687
- return weekdays.concat(weekdays).slice(firstWeekDay, firstWeekDay + 7);
688
- };
420
+ class DayPeriod extends CalendarPeriod {
421
+ constructor(current, showWeekends) {
422
+ super(DayPeriod.DISPLAY_DATE_COUNT, current);
423
+ this._type = 'day';
424
+ this._showWeekends = true;
425
+ this._showWeekends = showWeekends === false ? false : true;
426
+ }
427
+ /**
428
+ * @inheritDoc
429
+ */
430
+ next() {
431
+ const nextDate = this.current.toDate();
432
+ nextDate.setDate(nextDate.getDate() + 1);
433
+ let calendarDate = CalendarDate.from(nextDate);
434
+ if (this._showWeekends === false) {
435
+ calendarDate = getClosestWorkday(calendarDate);
436
+ }
437
+ return this.createBy(calendarDate);
438
+ }
439
+ /**
440
+ * @inheritDoc
441
+ */
442
+ previous() {
443
+ const previousDate = this.current.toDate();
444
+ previousDate.setDate(previousDate.getDate() - 1);
445
+ let calendarDate = CalendarDate.from(previousDate);
446
+ if (this._showWeekends === false) {
447
+ calendarDate = getClosestWorkday(calendarDate, DateDirection.PREVIOUS);
448
+ }
449
+ return this.createBy(calendarDate);
450
+ }
451
+ /**
452
+ * Go to now.
453
+ *
454
+ * @returns {this} - The current period.
455
+ */
456
+ now() {
457
+ let calendarDate = CalendarDate.from(new Date());
458
+ if (this._showWeekends === false) {
459
+ calendarDate = getClosestWorkday(calendarDate);
460
+ }
461
+ return this.createBy(calendarDate);
462
+ }
463
+ /**
464
+ * @inheritDoc
465
+ */
466
+ createBy(current) {
467
+ return new DayPeriod(current, this._showWeekends);
468
+ }
469
+ }
470
+ DayPeriod.DISPLAY_DATE_COUNT = 1;
689
471
 
690
472
  /**
691
- * Calendar view generator abstract class.
473
+ * Period of the week
692
474
  */
693
- class CalendarViewGenerator {
694
- constructor() {
695
- this.WEEKDAYS_SHORT = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
696
- this.weekdays = getWeekdays();
475
+ class WeekPeriod extends CalendarPeriod {
476
+ constructor(current, showWeekends) {
477
+ super(WeekPeriod.DISPLAY_DATE_COUNT, current);
478
+ this._type = 'week';
479
+ this._showWeekends = true;
480
+ this._showWeekends = showWeekends === false ? false : true;
697
481
  }
698
482
  /**
699
- * Get weekday names.
700
- *
701
- * @returns {string[]} - The weekday strings
483
+ * @inheritDoc
702
484
  */
703
- getWeekdayNames() {
704
- return this.WEEKDAYS_SHORT;
485
+ next() {
486
+ const nextWeekStartDate = this.current.toDate();
487
+ nextWeekStartDate.setDate(nextWeekStartDate.getDate() - getWeekdays().indexOf(nextWeekStartDate.getDay()) + 7);
488
+ return this.createBy(CalendarDate.from(nextWeekStartDate));
705
489
  }
706
490
  /**
707
- * Generate calendar dates
708
- *
709
- * @param {CalendarPeriod} period - The calendar period
710
- * @returns {Date[]} - The date result
491
+ * @inheritDoc
711
492
  */
712
- generateDates(period) {
713
- const cursor = period.startDate.toDate();
714
- const dates = [];
715
- for (let i = 0; i < period.count; i++) {
716
- dates.push(new Date(cursor));
717
- cursor.setDate(cursor.getDate() + 1);
718
- }
719
- return dates;
493
+ previous() {
494
+ const previousWeekStartDate = this.current.toDate();
495
+ previousWeekStartDate.setDate(previousWeekStartDate.getDate() - getWeekdays().indexOf(previousWeekStartDate.getDay()) - 7);
496
+ return this.createBy(CalendarDate.from(previousWeekStartDate));
720
497
  }
721
498
  /**
722
- * Generate calendar head
723
- *
724
- * @returns {string[]} - The data of week head
499
+ * @inheritDoc
725
500
  */
726
- generateWeekHead() {
727
- return this.weekdays.map((day) => this.getWeekdayNames()[day]);
501
+ createBy(current) {
502
+ return new WeekPeriod(current, this._showWeekends);
728
503
  }
729
504
  }
505
+ WeekPeriod.DISPLAY_DATE_COUNT = 7;
730
506
 
731
507
  /**
732
- * Calendar view
508
+ * Period of month
733
509
  */
734
- class CalendarView {
735
- constructor(weekdays, dateItems) {
736
- this._weekdays = weekdays;
737
- this._dateItems = dateItems;
510
+ class MonthPeriod extends CalendarPeriod {
511
+ constructor(current, showWeekends) {
512
+ super(MonthPeriod.DISPLAY_DATE_COUNT, MonthPeriod.getMonthFirstDay(current));
513
+ this._type = 'month';
514
+ this._showWeekends = true;
515
+ this._showWeekends = showWeekends === false ? false : true;
516
+ }
517
+ /**
518
+ * The function `getMonthFirstDay` returns the first day of a given month in a calendar.
519
+ *
520
+ * @param {CalendarDate} [calendarDate] - The `calendarDate` parameter is an optional parameter of
521
+ * type `CalendarDate`. It represents a specific date in the calendar. If a `calendarDate` is
522
+ * provided, the function will use that date to determine the first day of the month. If no
523
+ * `calendarDate` is provided, the function
524
+ * @returns {CalendarDate} A new `CalendarDate` object representing the first day of the month from the provided
525
+ * `calendarDate` parameter or the current date if no parameter is provided.
526
+ */
527
+ static getMonthFirstDay(calendarDate) {
528
+ const date = calendarDate || CalendarDate.from(new Date());
529
+ return new CalendarDate(date.year, date.month, 1);
738
530
  }
739
531
  /**
740
- * The week head of the calendar view
741
- *
742
- * @type {string[]}
532
+ * @inheritDoc
743
533
  */
744
- get weekdays() {
745
- return this._weekdays;
534
+ next() {
535
+ const next = this.current.toDate();
536
+ next.setMonth(next.getMonth() + 1);
537
+ return this.createBy(CalendarDate.from(next));
746
538
  }
747
539
  /**
748
- * The date items of the calendar view
749
- *
750
- * @type {CalendarDate[][]}
540
+ * @inheritDoc
751
541
  */
752
- get dateItems() {
753
- return this._dateItems;
542
+ previous() {
543
+ const previous = this.current.toDate();
544
+ previous.setMonth(previous.getMonth() - 1);
545
+ return this.createBy(CalendarDate.from(previous));
754
546
  }
755
- }
756
-
757
- /**
758
- * Day view calendar generator
759
- */
760
- class DayViewGenerator extends CalendarViewGenerator {
761
547
  /**
762
548
  * @inheritDoc
763
549
  */
764
- generate(period) {
765
- return new CalendarView([this.generateWeekHead()[period.current.toDate().getDay()]], [[period.current]]);
550
+ createBy(current) {
551
+ return new MonthPeriod(current, this._showWeekends);
766
552
  }
767
553
  }
554
+ MonthPeriod.DISPLAY_DATE_COUNT = 6 * 7;
768
555
 
556
+ var DateDirection;
557
+ (function (DateDirection) {
558
+ DateDirection["PREVIOUS"] = "-1";
559
+ DateDirection["NEXT"] = "1";
560
+ })(DateDirection || (DateDirection = {}));
769
561
  /**
770
- * Calendar date class
562
+ * get month name from the month number
563
+ *
564
+ * @param {Date} date the date object
565
+ * @param {boolean} isShortName short or long name
566
+ * @returns {string} the month English name
771
567
  */
772
- class CalendarDate {
773
- constructor(year, month, date) {
774
- this._date = date;
775
- this._month = month;
776
- this._year = year;
568
+ function getMonthName(date, isShortName = false) {
569
+ return date.toLocaleDateString('en-US', { month: isShortName ? 'short' : 'long' });
570
+ }
571
+ /**
572
+ * The function `getTimeIndex` calculates the index of a given time string based on a specified time unit.
573
+ *
574
+ * @param {string} timeString - A string representing a time in the format "HH:MM", where HH is the hour and MM is the minutes.
575
+ * @param {number} [unit=15] - The `unit` parameter in the `getTimeIndex` function is used to specify
576
+ * the interval in minutes for dividing the day. By default, it is set to 15 minutes, meaning that the
577
+ * day will be divided into 15-minute intervals.
578
+ * @returns {number} the index of the given time string based on the specified time unit.
579
+ */
580
+ function getTimeIndex(timeString, unit = 15) {
581
+ const [hour, minutes] = timeString.split(':');
582
+ return Math.round((Number(hour) * 60 + Number(minutes)) / unit);
583
+ }
584
+ /**
585
+ * Returns a string that includes the event key for a calendar event slot.
586
+ *
587
+ * @param {string} eventKey - represents the key or identifier of a calendar event.
588
+ * @returns {string} a string that is a concatenation of 'vega-calendar-event-slot-' and the eventKey parameter.
589
+ */
590
+ function getCalendarEventSlotName(eventKey) {
591
+ return 'vega-calendar-event-slot-' + eventKey;
592
+ }
593
+ /**
594
+ * Returns the closest workday to a given calendar date based on a specified direction.
595
+ *
596
+ * @param {Date} date - The starting date from which you want to find the closest workday.
597
+ * @param {'-1' | '1'} [direction=1] - Determines whether to find the closest workday in the past or future. It can have two possible values:
598
+ * @returns {Date} The closest workday to the input date
599
+ */
600
+ function getClosestWorkday(date, direction = DateDirection.NEXT) {
601
+ const day = date.toDate().getDay();
602
+ if (day === 0 || day === 6) {
603
+ let nextWorkdayGap = day === 0 ? 1 : 2;
604
+ if (direction === DateDirection.PREVIOUS) {
605
+ nextWorkdayGap = day === 0 ? -2 : -1;
606
+ }
607
+ return CalendarDate.from(new Date(date.year, date.month - 1, date.date + nextWorkdayGap));
608
+ }
609
+ return date;
610
+ }
611
+
612
+ const ellipsisVertical = {
613
+ icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M48 464a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm0-160a48 48 0 1 1 0-96 48 48 0 1 1 0 96zM0 96a48 48 0 1 1 96 0A48 48 0 1 1 0 96z"/></svg>`,
614
+ };
615
+
616
+ var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
617
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
618
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
619
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
620
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
621
+ };
622
+ /** The `VegaCalendarSwitchPanelRenderer` class in TypeScript React renders a calendar switch panel with date navigation, view selection, and action buttons. */
623
+ class VegaCalendarSwitchPanelRenderer extends VegaSlimmer {
624
+ constructor() {
625
+ super(...arguments);
626
+ /**
627
+ * This function is responsible for updating the `viewMode` property of the `VegaCalendarSwitchPanelRenderer` class with the value extracted from the `input` parameter.
628
+ *
629
+ * @param {NotifyObserverPayload<VegaCalendarViewModeType>} input mark which view should be selected
630
+ */
631
+ this.handleViewChange = (input) => {
632
+ this.currentPeriodController.updateCalendarPeriod(input.detail, this.currentPeriod.current);
633
+ };
634
+ /**
635
+ * reset view content to today
636
+ */
637
+ this.todayButtonClick = () => {
638
+ this.currentPeriodController.setCurrentPeriod(this.currentPeriod.now());
639
+ };
640
+ /**
641
+ * update view content after click next button
642
+ */
643
+ this.nextButtonClick = () => {
644
+ this.currentPeriodController.setCurrentPeriod(this.currentPeriod.next());
645
+ };
646
+ /**
647
+ * update view content after click previous button
648
+ */
649
+ this.prevButtonClick = () => {
650
+ this.currentPeriodController.setCurrentPeriod(this.currentPeriod.previous());
651
+ };
652
+ /**
653
+ * The more action menu item click
654
+ *
655
+ * @param {NotifyObserverPayload<string>} payload The object contains the menu item key
656
+ */
657
+ this.moreActionMenuClick = (payload) => {
658
+ this.moreActionClickEmitter.emit(payload.detail);
659
+ };
777
660
  }
778
661
  /**
779
- * Create a calendar date from a Date object
662
+ * get the switch panel container element
780
663
  *
781
- * @param {Date} date - The Date object
782
- * @returns {CalendarDate} - Return a CalendarDate object
664
+ * @returns {HTMLElement} container element
783
665
  */
784
- static from(date) {
785
- return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate());
666
+ getSwitchPanelRef() {
667
+ return this.switchPanelRef;
786
668
  }
787
669
  /**
788
- * The year of the calendar date
670
+ * calendar switch panel with date switch, view switch, add new button, and more action components.
789
671
  *
790
- * @type {number}
672
+ * @returns {HTMLElement} html element
791
673
  */
792
- get year() {
793
- return this._year;
794
- }
795
- set year(value) {
796
- this._year = value;
674
+ render() {
675
+ return (h("vega-flex", { direction: "row", gap: "size-16", justifyContent: "space-between", alignItems: "center", class: "calendar-switch-panel", ref: (node) => (this.switchPanelRef = node) },
676
+ this.renderDateSwitch(),
677
+ h("div", { class: "calendar-view-switch-container" },
678
+ this.renderViewSwitch(),
679
+ this.renderMoreActionMenu())));
797
680
  }
798
681
  /**
799
- * The month of the calendar date
682
+ * The `renderDateSwitch` function returns a container with buttons for switching dates and displaying the current date.
800
683
  *
801
- * @type {number}
684
+ * @returns {HTMLDivElement} action button elements container.
802
685
  */
803
- get month() {
804
- return this._month;
686
+ renderDateSwitch() {
687
+ return (h("div", { class: "calendar-date-switch-container" },
688
+ h("vega-button", { variant: "secondary", size: "small", ref: (button) => {
689
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.todayButtonClick);
690
+ }, label: this.translationSlimmer.t('Today') }),
691
+ h("vega-button-circle", { variant: "secondary", size: "small", icon: VegaInternalIconManager.getIconKey('chevron-left'), label: "previous", showTooltip: false, ref: (button) => {
692
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.prevButtonClick);
693
+ } }),
694
+ h("vega-button-circle", { variant: "secondary", size: "small", icon: VegaInternalIconManager.getIconKey('chevron-right'), label: "next", showTooltip: false, ref: (button) => {
695
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.nextButtonClick);
696
+ } }),
697
+ this.renderCurrentPeriod()));
805
698
  }
806
- set month(value) {
807
- this._month = value;
699
+ /**
700
+ * The function `renderCurrentPeriod` returns an HTML element displaying the view date content summary info.
701
+ *
702
+ * @returns {HTMLVegaFontElement} The text content inside the element is "Current Date Test".
703
+ */
704
+ renderCurrentPeriod() {
705
+ return (h("vega-font", { class: "calendar-current-date", variant: "font-field-label", color: "text-primary" }, this.getViewDateSummary()));
808
706
  }
809
707
  /**
810
- * The date of the calendar date
708
+ * The function `renderViewSwitch` returns a JSX element for rendering a segment control component in a TypeScript React application.
811
709
  *
812
- * @type {number}
710
+ * @returns {HTMLElement} An HTMLElement containing a vega-segment-control element with specific attributes and event handling.
813
711
  */
814
- get date() {
815
- return this._date;
712
+ renderViewSwitch() {
713
+ return (h("vega-segment-control", { segments: VegaCalendarSwitchPanelRenderer.views.map((item) => (Object.assign(Object.assign({}, item), { text: this.translationSlimmer.t(item.text) }))), size: "small", variant: "text-only", selected: this.viewMode, ref: (node) => {
714
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaChange, this.handleViewChange);
715
+ } }));
816
716
  }
817
- set date(value) {
818
- this._date = value;
717
+ /**
718
+ * Render an more action button if dropdown source is not empty
719
+ *
720
+ * @returns {Nullable<HTMLElement>} the additional element
721
+ */
722
+ renderMoreActionMenu() {
723
+ var _a, _b;
724
+ if ((_b = (_a = this.moreActionDropdownProps) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.length) {
725
+ return (h("vega-dropdown", Object.assign({ alignment: "end", trigger: "click" }, this.moreActionDropdownProps, { ref: (node) => {
726
+ DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaDropdownClick, this.moreActionMenuClick);
727
+ } }),
728
+ h("vega-button-circle", { size: "small", icon: VegaInternalIconManager.getIconKey('ellipsis-vertical'), variant: "icon-only" })));
729
+ }
819
730
  }
820
731
  /**
821
- * Verify whether the calendar date is today
732
+ * Get the view content date summary info, such as `January, 2024` or `10 January, 2024` or `28 December, 2023 - 3 January, 2024`
822
733
  *
823
- * @returns {boolean} - Return true if the calendar date is today. Otherwise, return false.
734
+ * @returns {string} string
824
735
  */
825
- isToday() {
826
- const today = new Date();
827
- return (today.getFullYear() === this.year &&
828
- today.getMonth() + 1 === this.month &&
829
- today.getDate() === this.date);
736
+ getViewDateSummary() {
737
+ const currentDate = this.currentPeriod.current;
738
+ let result = '';
739
+ switch (this.viewMode) {
740
+ case 'day': {
741
+ const monthName = this.translationSlimmer.t(getMonthName(currentDate.toDate()));
742
+ result = `${currentDate.date} ${monthName}, ${currentDate.year}`;
743
+ break;
744
+ }
745
+ case 'week': {
746
+ const weekItems = this.calendarView.dateItems[0];
747
+ const start = weekItems[0];
748
+ const end = weekItems[weekItems.length - 1];
749
+ const [startMonthName, endMonthName] = [start, end].map((item) => this.translationSlimmer.t(getMonthName(item.toDate())));
750
+ result = `${start.date} ${startMonthName}${start.year === end.year ? '' : ', ' + start.year} - ${end.date} ${endMonthName}, ${end.year}`;
751
+ break;
752
+ }
753
+ case 'month': {
754
+ const monthName = this.translationSlimmer.t(getMonthName(currentDate.toDate()));
755
+ result = `${monthName}, ${currentDate.year}`;
756
+ break;
757
+ }
758
+ }
759
+ return result;
830
760
  }
761
+ }
762
+ (() => {
763
+ VegaInternalIconManager.register({
764
+ 'chevron-right': chevronRight,
765
+ 'chevron-left': chevronLeft,
766
+ 'ellipsis-vertical': ellipsisVertical,
767
+ });
768
+ })();
769
+ VegaCalendarSwitchPanelRenderer.views = [
770
+ { text: 'Day', key: 'day' },
771
+ { text: 'Week', key: 'week' },
772
+ { text: 'Month', key: 'month' },
773
+ ];
774
+ __decorate$n([
775
+ MapToComponentField()
776
+ ], VegaCalendarSwitchPanelRenderer.prototype, "viewMode", void 0);
777
+ __decorate$n([
778
+ MapToComponentField()
779
+ ], VegaCalendarSwitchPanelRenderer.prototype, "calendarView", void 0);
780
+ __decorate$n([
781
+ MapToComponentField()
782
+ ], VegaCalendarSwitchPanelRenderer.prototype, "currentPeriod", void 0);
783
+ __decorate$n([
784
+ MapToComponentField()
785
+ ], VegaCalendarSwitchPanelRenderer.prototype, "moreActionDropdownProps", void 0);
786
+ __decorate$n([
787
+ MapToComponentField()
788
+ ], VegaCalendarSwitchPanelRenderer.prototype, "moreActionClickEmitter", void 0);
789
+ __decorate$n([
790
+ MapToComponentField()
791
+ ], VegaCalendarSwitchPanelRenderer.prototype, "currentPeriodController", void 0);
792
+ __decorate$n([
793
+ MapToComponentField()
794
+ ], VegaCalendarSwitchPanelRenderer.prototype, "calendarViewController", void 0);
795
+ __decorate$n([
796
+ MapToComponentField()
797
+ ], VegaCalendarSwitchPanelRenderer.prototype, "translationSlimmer", void 0);
798
+
799
+ var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
800
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
801
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
802
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
803
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
804
+ };
805
+ /** renders different views based on the specified view mode using month, week, and day view render. */
806
+ class VegaCalendarViewRenderer extends VegaSlimmer {
831
807
  /**
832
- * Convert the calendar date to a Date object
808
+ * render the calendar month/week/day view
833
809
  *
834
- * @returns {Date} - Return a Date object
810
+ * @returns {HTMLElement} html element
835
811
  */
836
- toDate() {
837
- return new Date(this.year, this.month - 1, this.date);
812
+ render() {
813
+ return (h("div", { class: `calendar-view calendar-view-${this.viewMode} ${this.showWeekends === false ? 'calendar-hide-weekends' : ''}` }, this.viewMode === 'month'
814
+ ? this.monthViewRenderer.render()
815
+ : this.viewWithTimeRenderer.render()));
838
816
  }
817
+ }
818
+ __decorate$m([
819
+ MapToComponentField()
820
+ ], VegaCalendarViewRenderer.prototype, "viewMode", void 0);
821
+ __decorate$m([
822
+ MapToComponentField()
823
+ ], VegaCalendarViewRenderer.prototype, "showWeekends", void 0);
824
+ __decorate$m([
825
+ MapToComponentField()
826
+ ], VegaCalendarViewRenderer.prototype, "monthViewRenderer", void 0);
827
+ __decorate$m([
828
+ MapToComponentField()
829
+ ], VegaCalendarViewRenderer.prototype, "viewWithTimeRenderer", void 0);
830
+
831
+ var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
832
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
833
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
834
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
835
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
836
+ };
837
+ /** The code provided is defining a TypeScript class called `VegaCalendarMonthViewRenderer` that extends `VegaSlimmer`. This class is responsible for rendering a month view of a calendar component. */
838
+ class VegaCalendarMonthViewRenderer extends VegaSlimmer {
839
839
  /**
840
- * Compare with another calendar date
840
+ * the HTML elements that represent the month view of a calendar component.
841
841
  *
842
- * @param {CalendarDate} date - The calendar date to compare with
843
- * @returns {DateCompareResult} - Return a DateCompareResult object
842
+ * @returns {HTMLElement} the month view calendar content
844
843
  */
845
- compare(date) {
846
- const { year, month } = date;
847
- const result = {
848
- isPreviousMonth: false,
849
- inMonth: false,
850
- isNextMonth: false,
851
- };
852
- if (this.year === year) {
853
- if (this.month < month) {
854
- result.isPreviousMonth = true;
855
- }
856
- else if (this.month > month) {
857
- result.isNextMonth = true;
858
- }
859
- else {
860
- result.inMonth = true;
861
- }
862
- }
863
- else if (this.year > year) {
864
- result.isNextMonth = true;
865
- }
866
- else {
867
- result.isPreviousMonth = true;
868
- }
869
- return result;
844
+ render() {
845
+ const weekHead = this.calendarView.weekdays;
846
+ return (h("div", { class: "calendar-view-month-container" },
847
+ h("div", { class: "calendar-view-row calendar-view-title border-divider-bottom" }, weekHead.map((title) => (h("div", { key: title }, this.translationSlimmer.t(title))))),
848
+ this.renderMonthViewContent()));
870
849
  }
871
850
  /**
872
- * The function "equal" compares the year, month, and date of two CalendarDate objects and returns true if they are equal.
851
+ * generating the HTML elements that represent the content of the month view in a calendar component
873
852
  *
874
- * @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
875
- * `CalendarDate` object passed as a parameter. The method returns `true` if all three values (year, month, date) are equal
876
- * @returns {boolean} The date is same day with current
877
- */
878
- equal(calendarDate) {
879
- const { year, month, date } = calendarDate;
880
- return this._year === year && this._month === month && this._date === date;
881
- }
882
- }
883
-
884
- /**
885
- * Calendar week view generator
886
- */
887
- class WeekViewGenerator extends CalendarViewGenerator {
888
- /**
889
- * @inheritDoc
853
+ * @returns {HTMLElement[]} month view content and event content
890
854
  */
891
- generate(period) {
892
- const dates = this.generateDates(period);
893
- return new CalendarView(this.generateWeekHead(), [dates.map(CalendarDate.from)]);
855
+ renderMonthViewContent() {
856
+ const monthSource = this.calendarView.dateItems;
857
+ const currentDate = this.currentPeriod.current;
858
+ return monthSource.map((dateArray, index) => {
859
+ const eventsArray = this.monthEventRenderer.getCurrentRowEvents(dateArray);
860
+ const displayEventsArray = this.monthEventRenderer.filterRowDisplayEvents(eventsArray);
861
+ return (h("div", { key: index, class: "calendar-view-row border-divider-bottom" }, dateArray.map((item, itemIndex) => {
862
+ return (h("div", { class: {
863
+ 'row-cell border-divider-right': true,
864
+ 'current-month-day': item.compare(currentDate).inMonth,
865
+ 'active': item.isToday(),
866
+ 'disabled': false,
867
+ }, key: `${item.month}-${item.date}`,
868
+ // eslint-disable-next-line react/jsx-no-bind
869
+ onDblClick: (e) => this.handleDateBlockClick(e, item) },
870
+ this.renderDateBlock(item),
871
+ this.monthEventRenderer.render(item, eventsArray[itemIndex], displayEventsArray[itemIndex], itemIndex)));
872
+ })));
873
+ });
894
874
  }
895
- }
896
-
897
- /**
898
- * Calendar month view generator
899
- */
900
- class MonthViewGenerator extends CalendarViewGenerator {
901
875
  /**
902
- * @inheritDoc
876
+ * It takes a `CalendarDate` object as a parameter and returns an HTML element representing a date block in the calendar view.
877
+ *
878
+ * @param {CalendarDate} item the day object
879
+ * @returns {HTMLElement} the date block element
903
880
  */
904
- generate(period) {
905
- const calendarDates = [];
906
- let week = [];
907
- const dates = this.generateDates(period);
908
- dates.forEach((date, i) => {
909
- if (!(i % 7)) {
910
- calendarDates[i / 7] = week = [];
911
- }
912
- const item = CalendarDate.from(date);
913
- week.push(item);
914
- });
915
- return new CalendarView(this.generateWeekHead(), calendarDates);
916
- }
917
- }
918
-
919
- /**
920
- * CalendarPeriod is an abstract class that represents a period of date for calendar.
921
- */
922
- class CalendarPeriod {
923
- constructor(count, current) {
924
- this._count = count;
925
- this._current = current ? current : CalendarDate.from(new Date());
926
- this.calculatePeriod(this._current);
881
+ renderDateBlock(item) {
882
+ const isMonthFirstDay = item.date === 1;
883
+ return (h("div", { class: "date" },
884
+ isMonthFirstDay && h("div", { class: "month-block" }, getMonthName(item.toDate(), true)),
885
+ h("div", { role: "button", tabIndex: 0, class: "grid-col",
886
+ // eslint-disable-next-line react/jsx-no-bind
887
+ onDblClick: (e) => this.goToCurrentDayView(e, item) }, item.date)));
927
888
  }
928
889
  /**
929
- * The current date of the period.
890
+ * switch to current date day view
930
891
  *
931
- * @type {CalendarDate}
892
+ * @param {MouseEvent} e the double click event object
893
+ * @param {CalendarDate} calendarDate the calendar date object
932
894
  */
933
- get current() {
934
- return this._current;
895
+ goToCurrentDayView(e, calendarDate) {
896
+ e.stopPropagation();
897
+ this.currentPeriodController.updateCalendarPeriod('day', calendarDate);
935
898
  }
936
899
  /**
937
- * The start date of the period
900
+ * emit vega click event when click the date block
938
901
  *
939
- * @type {CalendarDate}
902
+ * @param {MouseEvent} e the mouse event object
903
+ * @param {CalendarDate} calendarDate the calendar date object
940
904
  */
941
- get startDate() {
942
- return this._startDate;
905
+ handleDateBlockClick(e, calendarDate) {
906
+ const { target, clientX, clientY } = e;
907
+ if (this.isMonthBlockBlankArea(target)) {
908
+ const { year, month, date } = calendarDate;
909
+ this.dateDblClickEmitter.emit({
910
+ year,
911
+ month,
912
+ date,
913
+ hour: 0,
914
+ mouseEventInfo: { clientX, clientY },
915
+ });
916
+ }
943
917
  }
944
918
  /**
945
- * The end date of the period
919
+ * determine if the clicked element is blank area
946
920
  *
947
- * @type {CalendarDate}
921
+ * @param {HTMLElement} element the target element
922
+ * @returns {boolean} true or false
948
923
  */
949
- get endDate() {
950
- return this._endDate;
924
+ isMonthBlockBlankArea(element) {
925
+ // the more button and the calendar event component should not trigger dateDblClick event
926
+ return !element.classList.contains('more-button') && element.tagName !== 'VEGA-CALENDAR-EVENT';
951
927
  }
928
+ }
929
+ __decorate$l([
930
+ MapToComponentField()
931
+ ], VegaCalendarMonthViewRenderer.prototype, "viewMode", void 0);
932
+ __decorate$l([
933
+ MapToComponentField()
934
+ ], VegaCalendarMonthViewRenderer.prototype, "calendarView", void 0);
935
+ __decorate$l([
936
+ MapToComponentField()
937
+ ], VegaCalendarMonthViewRenderer.prototype, "currentPeriod", void 0);
938
+ __decorate$l([
939
+ MapToComponentField()
940
+ ], VegaCalendarMonthViewRenderer.prototype, "currentPeriodController", void 0);
941
+ __decorate$l([
942
+ MapToComponentField()
943
+ ], VegaCalendarMonthViewRenderer.prototype, "monthEventRenderer", void 0);
944
+ __decorate$l([
945
+ MapToComponentField()
946
+ ], VegaCalendarMonthViewRenderer.prototype, "dateDblClickEmitter", void 0);
947
+ __decorate$l([
948
+ MapToComponentField()
949
+ ], VegaCalendarMonthViewRenderer.prototype, "translationSlimmer", void 0);
950
+
951
+ var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
952
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
953
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
954
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
955
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
956
+ };
957
+ /** The `VegaCalendarViewWithTimeRenderer` class in TypeScript React renders a day view for a calendar component with title, content, and hour blocks. */
958
+ class VegaCalendarViewWithTimeRenderer extends VegaSlimmer {
952
959
  /**
953
- * The count of the period
960
+ * The render function in TypeScript React returns an array of HTMLElements containing the week calendar view for a specific day.
954
961
  *
955
- * @type {number}
962
+ * @returns {HTMLElement} An array of HTMLElement elements containing the rendered content of a calendar view for a
963
+ * specific day in the week. The content includes the title and the main content of the calendar view
964
+ * for that day.
956
965
  */
957
- get count() {
958
- return this._count;
966
+ render() {
967
+ return (h("div", { class: "calendar-view-container" },
968
+ this.renderViewTitle(),
969
+ this.renderViewContent()));
959
970
  }
960
971
  /**
961
- * This function returns the type of the object.
972
+ * The function `renderViewTitle` renders a calendar view title and events based on the provided source data.
962
973
  *
963
- * @type {string}
974
+ * @returns {HTMLElement} The `renderViewTitle` function returns an HTML element (HTMLElement) that contains a calendar view title container with rows for each day's information.
964
975
  */
965
- get type() {
966
- return this._type;
976
+ renderViewTitle() {
977
+ const source = this.calendarView.dateItems[0];
978
+ const weekHead = this.calendarView.weekdays;
979
+ return (h("div", { class: "calendar-view-title-container" },
980
+ h("div", { class: "calendar-view-row" },
981
+ h("div", { class: "time-line-empty" }),
982
+ h("div", { class: "calendar-view-title" }, source.map((item, index) => (h("div", { key: item.date, class: { active: item.isToday() } },
983
+ h("div", null, this.translationSlimmer.t(weekHead[index])),
984
+ h("div", { class: "week-day" }, item.date)))))),
985
+ h("div", { class: "calendar-view-row calendar-view-event-all-container border-divider-bottom" },
986
+ h("div", { class: "time-line-all" }, this.translationSlimmer.t('All Day')),
987
+ this.dayViewFullDayEventRenderer.render())));
967
988
  }
968
989
  /**
969
- * Go to a specific date.
990
+ * The `renderViewContent` function in TypeScript React renders a calendar view with day blocks and time markers based on the provided data.
970
991
  *
971
- * @param {CalendarDate} date - The date to go to.
972
- * @returns {this} - The current period.
992
+ * @returns {HTMLElement} An HTMLElement containing a calendar view row with day containers, a timeline renderer, a content container, a day list, and hour blocks for each item in the source array.
973
993
  */
974
- goTo(date) {
975
- return this.createBy(date);
994
+ renderViewContent() {
995
+ const source = this.calendarView.dateItems[0];
996
+ return (h("div", { class: "calendar-view-row calendar-view-day-container" },
997
+ this.timeLineRenderer.render(),
998
+ h("div", { class: "calendar-view-content-container" },
999
+ h("div", { class: "calendar-view-content" }, source.map((item) => {
1000
+ return (h("div", { class: "grid-col border-divider-left", key: item.date },
1001
+ h("div", { class: "hour-empty border-divider-top" }),
1002
+ this.renderHourBlock(item)));
1003
+ })),
1004
+ this.dayViewTimedEventRenderer.render(),
1005
+ this.timeLineRenderer.renderTimeMarker(source))));
976
1006
  }
977
1007
  /**
978
- * Go to now.
1008
+ * The function `renderHourBlock` returns an array of HTML elements representing hour blocks with time information.
979
1009
  *
980
- * @returns {this} - The current period.
1010
+ * @param {CalendarDate} calendarDate then current calendar date object
1011
+ * @returns {HTMLElement[]} An array of HTMLElements is being returned. Each HTMLElement represents an hour block with a time value inside a div element.
981
1012
  */
982
- now() {
983
- return this.createBy(CalendarDate.from(new Date()));
1013
+ renderHourBlock(calendarDate) {
1014
+ const timeLineSource = Array(24).fill('');
1015
+ return timeLineSource.map((_item, index) => {
1016
+ return (h("div", { class: "grid-cell border-divider-top",
1017
+ // eslint-disable-next-line react/jsx-no-bind
1018
+ onDblClick: (e) => {
1019
+ this.handleDateBlockClick(calendarDate, index, e);
1020
+ } }));
1021
+ });
984
1022
  }
985
1023
  /**
986
- * Calculate the period start date and end date.
1024
+ * emit vega click event when click the date block
987
1025
  *
988
- * @param {CalendarDate} date - The date to calculate the period from.
1026
+ * @param {CalendarDate} calendarDate the calendar date object
989
1027
  */
990
- calculatePeriod(date) {
991
- const cursor = date.toDate();
992
- if (this.count > 1) {
993
- cursor.setDate(cursor.getDate() - getWeekdays().indexOf(cursor.getDay()));
994
- }
995
- this._startDate = CalendarDate.from(cursor);
996
- cursor.setDate(cursor.getDate() + this.count - 1);
997
- this._endDate = CalendarDate.from(cursor);
1028
+ handleDateBlockClick(calendarDate, hour, e) {
1029
+ const { year, month, date } = calendarDate;
1030
+ const { clientX, clientY } = e;
1031
+ this.dateDblClickEmitter.emit({ year, month, date, hour, mouseEventInfo: { clientX, clientY } });
998
1032
  }
999
1033
  }
1034
+ __decorate$k([
1035
+ MapToComponentField()
1036
+ ], VegaCalendarViewWithTimeRenderer.prototype, "viewMode", void 0);
1037
+ __decorate$k([
1038
+ MapToComponentField()
1039
+ ], VegaCalendarViewWithTimeRenderer.prototype, "timeLineRenderer", void 0);
1040
+ __decorate$k([
1041
+ MapToComponentField()
1042
+ ], VegaCalendarViewWithTimeRenderer.prototype, "dayViewTimedEventRenderer", void 0);
1043
+ __decorate$k([
1044
+ MapToComponentField()
1045
+ ], VegaCalendarViewWithTimeRenderer.prototype, "dayViewFullDayEventRenderer", void 0);
1046
+ __decorate$k([
1047
+ MapToComponentField()
1048
+ ], VegaCalendarViewWithTimeRenderer.prototype, "calendarView", void 0);
1049
+ __decorate$k([
1050
+ MapToComponentField()
1051
+ ], VegaCalendarViewWithTimeRenderer.prototype, "dateDblClickEmitter", void 0);
1052
+ __decorate$k([
1053
+ MapToComponentField()
1054
+ ], VegaCalendarViewWithTimeRenderer.prototype, "translationSlimmer", void 0);
1000
1055
 
1001
- /**
1002
- * Period of day.
1003
- */
1004
- class DayPeriod extends CalendarPeriod {
1005
- constructor(current) {
1006
- super(DayPeriod.DISPLAY_DATE_COUNT, current);
1007
- this._type = 'day';
1008
- }
1056
+ var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1057
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1058
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1059
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1060
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1061
+ };
1062
+ /** The `VegaCalendarTimeLineRenderer` class in TypeScript React renders a time line with custom time format options and includes methods for rendering time markers and the time line itself. */
1063
+ class VegaCalendarTimeLineRenderer extends VegaSlimmer {
1009
1064
  /**
1010
- * @inheritDoc
1065
+ * takes an array of `CalendarDate` objects as input and returns an HTML element
1066
+ *
1067
+ * @param {CalendarDate[]} source
1068
+ * @returns {HTMLElement} the html element
1011
1069
  */
1012
- next() {
1013
- const nextDate = this.current.toDate();
1014
- nextDate.setDate(nextDate.getDate() + 1);
1015
- return this.createBy(CalendarDate.from(nextDate));
1070
+ renderTimeMarker(source) {
1071
+ const isVisible = source.findIndex((calendarDate) => calendarDate.isToday()) >= 0;
1072
+ return (h("div", { class: {
1073
+ 'time-marker-container': true,
1074
+ 'hidden': !isVisible,
1075
+ } },
1076
+ h("div", { class: "time-marker", style: { top: this.getTimeMarkerPosition() }, ref: (div) => (this.timeMarkerRef = div) }, source.map((item) => {
1077
+ return h("div", { key: item.date, class: { active: item.isToday() } });
1078
+ }))));
1016
1079
  }
1017
1080
  /**
1018
- * @inheritDoc
1081
+ * rendering the time line component as an HTML element
1082
+ *
1083
+ * @returns {HTMLElement} the html element
1019
1084
  */
1020
- previous() {
1021
- const previousDate = this.current.toDate();
1022
- previousDate.setDate(previousDate.getDate() - 1);
1023
- return this.createBy(CalendarDate.from(previousDate));
1085
+ render() {
1086
+ const timeLineSource = this.getTimeLineTitles();
1087
+ return (h("div", { class: "time-line", ref: (div) => (this.timeLineRef = div) },
1088
+ h("div", { class: "hour-empty" }),
1089
+ timeLineSource.map((time, index) => {
1090
+ return (h("div", { key: time },
1091
+ h("div", { class: "time-text", "data-time": index === 0 ? 24 : index }, time)));
1092
+ })));
1024
1093
  }
1025
1094
  /**
1026
- * @inheritDoc
1095
+ * scroll to current time line block if change view mode to week or day
1096
+ *
1097
+ * @param {VegaCalendarViewModeType} viewMode the view mode
1027
1098
  */
1028
- createBy(current) {
1029
- return new DayPeriod(current);
1030
- }
1031
- }
1032
- DayPeriod.DISPLAY_DATE_COUNT = 1;
1033
-
1034
- /**
1035
- * Period of the week
1036
- */
1037
- class WeekPeriod extends CalendarPeriod {
1038
- constructor(current) {
1039
- super(WeekPeriod.DISPLAY_DATE_COUNT, current);
1040
- this._type = 'week';
1099
+ updateTimeLine(viewMode) {
1100
+ this.scrollToTargetTimeBlock(viewMode);
1101
+ this.syncTimeMarkerPosition(viewMode);
1041
1102
  }
1042
1103
  /**
1043
- * @inheritDoc
1104
+ * remove setInterval when component destroy
1044
1105
  */
1045
- next() {
1046
- const nextWeekStartDate = this.current.toDate();
1047
- nextWeekStartDate.setDate(nextWeekStartDate.getDate() - getWeekdays().indexOf(nextWeekStartDate.getDay()) + 7);
1048
- return this.createBy(CalendarDate.from(nextWeekStartDate));
1106
+ clearTimer() {
1107
+ clearInterval(this.timeMarkerPositionTimer);
1049
1108
  }
1050
1109
  /**
1051
- * @inheritDoc
1110
+ * Add the time mark position update logic if the component add back to page
1052
1111
  */
1053
- previous() {
1054
- const previousWeekStartDate = this.current.toDate();
1055
- previousWeekStartDate.setDate(previousWeekStartDate.getDate() - getWeekdays().indexOf(previousWeekStartDate.getDay()) - 7);
1056
- return this.createBy(CalendarDate.from(previousWeekStartDate));
1112
+ updateTimeLineIfComponentAddBack() {
1113
+ this.syncTimeMarkerPosition(this.viewMode);
1057
1114
  }
1058
1115
  /**
1059
- * @inheritDoc
1116
+ * Should display the current time block in the view if the default view mode is not month
1060
1117
  */
1061
- createBy(current) {
1062
- return new WeekPeriod(current);
1063
- }
1064
- }
1065
- WeekPeriod.DISPLAY_DATE_COUNT = 7;
1066
-
1067
- /**
1068
- * Period of month
1069
- */
1070
- class MonthPeriod extends CalendarPeriod {
1071
- constructor(current) {
1072
- super(MonthPeriod.DISPLAY_DATE_COUNT, MonthPeriod.getMonthFirstDay(current));
1073
- this._type = 'month';
1118
+ displayCurrentTimeBlockByDefault() {
1119
+ this.scrollToTargetTimeBlock(this.viewMode);
1074
1120
  }
1075
1121
  /**
1076
- * The function `getMonthFirstDay` returns the first day of a given month in a calendar.
1122
+ * The function `getTimeMarkerPosition` calculates the position of the current time marker as a percentage of the day.
1077
1123
  *
1078
- * @param {CalendarDate} [calendarDate] - The `calendarDate` parameter is an optional parameter of
1079
- * type `CalendarDate`. It represents a specific date in the calendar. If a `calendarDate` is
1080
- * provided, the function will use that date to determine the first day of the month. If no
1081
- * `calendarDate` is provided, the function
1082
- * @returns {CalendarDate} A new `CalendarDate` object representing the first day of the month from the provided
1083
- * `calendarDate` parameter or the current date if no parameter is provided.
1124
+ * @returns {string} a string representing the current time marker position as a percentage of the day.
1084
1125
  */
1085
- static getMonthFirstDay(calendarDate) {
1086
- const date = calendarDate || CalendarDate.from(new Date());
1087
- return new CalendarDate(date.year, date.month, 1);
1126
+ getTimeMarkerPosition() {
1127
+ const now = new Date();
1128
+ const minutesOneDay = 24 * 60;
1129
+ return ((now.getHours() * 60 + now.getMinutes()) / minutesOneDay) * 100 + '%';
1088
1130
  }
1089
1131
  /**
1090
- * @inheritDoc
1132
+ * The function `getTimeLineTitles` generates a time line array based on the specified time format (24-hour) and stores it in the `timeLineSource` property.
1133
+ *
1134
+ * @returns {string[]} returns an array of strings representing the time line
1091
1135
  */
1092
- next() {
1093
- const next = this.current.toDate();
1094
- next.setMonth(next.getMonth() + 1);
1095
- return this.createBy(CalendarDate.from(next));
1136
+ getTimeLineTitles() {
1137
+ const timeLine = [];
1138
+ if (this.timeFormat === '12-hour') {
1139
+ timeLine.push('12 AM');
1140
+ for (let i = 1; i < 12; i++) {
1141
+ timeLine.push(`${i} AM`);
1142
+ }
1143
+ timeLine.push('12 PM');
1144
+ for (let i = 1; i < 12; i++) {
1145
+ timeLine.push(`${i} PM`);
1146
+ }
1147
+ }
1148
+ else {
1149
+ for (let i = 0; i < 24; i++) {
1150
+ timeLine.push(`${pad(i)}`);
1151
+ }
1152
+ }
1153
+ return timeLine;
1096
1154
  }
1155
+ /*
1156
+ * The below method is e2e-test covered in
1157
+ * @see{module:vega-calendar-scroll-to-current-time}
1158
+ */
1159
+ /* istanbul ignore next */
1097
1160
  /**
1098
- * @inheritDoc
1161
+ * Update the time marker position with the time
1162
+ *
1163
+ * @param {VegaCalendarViewModeType} viewMode view mode value
1099
1164
  */
1100
- previous() {
1101
- const previous = this.current.toDate();
1102
- previous.setMonth(previous.getMonth() - 1);
1103
- return this.createBy(CalendarDate.from(previous));
1165
+ syncTimeMarkerPosition(viewMode) {
1166
+ clearInterval(this.timeMarkerPositionTimer);
1167
+ if (viewMode !== 'month') {
1168
+ this.timeMarkerPositionTimer = setInterval(() => {
1169
+ if (this.timeMarkerRef) {
1170
+ this.timeMarkerRef.style.top = this.getTimeMarkerPosition();
1171
+ }
1172
+ }, 60 * 1000);
1173
+ }
1104
1174
  }
1175
+ /*
1176
+ * The below method is e2e-test covered in
1177
+ * @see{module:vega-calendar-scroll-to-current-time}
1178
+ */
1179
+ /* istanbul ignore next */
1105
1180
  /**
1106
- * @inheritDoc
1181
+ * scroll the time line in to current view
1182
+ *
1183
+ * @param {VegaCalendarViewModeType} viewMode view mode value
1107
1184
  */
1108
- createBy(current) {
1109
- return new MonthPeriod(current);
1185
+ scrollToTargetTimeBlock(viewMode) {
1186
+ if (viewMode !== 'month') {
1187
+ // add setTimeout here to make sure call the scroll into view after time line rendered.
1188
+ const oneFrame = 16;
1189
+ setTimeout(() => {
1190
+ var _a, _b;
1191
+ const hour = new Date().getHours();
1192
+ (_b = (_a = this.timeLineRef) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-time='${hour < 23 ? hour + 1 : hour}']`)) === null || _b === void 0 ? void 0 : _b.scrollIntoView({ block: 'end' });
1193
+ }, oneFrame);
1194
+ }
1110
1195
  }
1111
1196
  }
1112
- MonthPeriod.DISPLAY_DATE_COUNT = 6 * 7;
1197
+ __decorate$j([
1198
+ MapToComponentField()
1199
+ ], VegaCalendarTimeLineRenderer.prototype, "timeFormat", void 0);
1200
+ __decorate$j([
1201
+ MapToComponentField()
1202
+ ], VegaCalendarTimeLineRenderer.prototype, "viewMode", void 0);
1203
+ __decorate$j([
1204
+ MapToComponentMethod('watchViewModeChange')
1205
+ ], VegaCalendarTimeLineRenderer.prototype, "updateTimeLine", null);
1206
+ __decorate$j([
1207
+ MapToComponentMethod('disconnectedCallback')
1208
+ ], VegaCalendarTimeLineRenderer.prototype, "clearTimer", null);
1209
+ __decorate$j([
1210
+ MapToComponentMethod('connectedCallback')
1211
+ ], VegaCalendarTimeLineRenderer.prototype, "updateTimeLineIfComponentAddBack", null);
1212
+ __decorate$j([
1213
+ MapToComponentMethod('componentDidLoad')
1214
+ ], VegaCalendarTimeLineRenderer.prototype, "displayCurrentTimeBlockByDefault", null);
1113
1215
 
1114
1216
  var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1115
1217
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1170,6 +1272,9 @@ __decorate$i([
1170
1272
  __decorate$i([
1171
1273
  MapToComponentField()
1172
1274
  ], VegaCalendarViewController.prototype, "currentPeriod", void 0);
1275
+ __decorate$i([
1276
+ MapToComponentField()
1277
+ ], VegaCalendarViewController.prototype, "showWeekends", void 0);
1173
1278
  __decorate$i([
1174
1279
  MapToComponentField()
1175
1280
  ], VegaCalendarViewController.prototype, "currentPeriodController", void 0);
@@ -1205,13 +1310,14 @@ class VegaCalendarCurrentPeriodController extends VegaSlimmer {
1205
1310
  updateCalendarPeriod(viewMode, date) {
1206
1311
  switch (viewMode) {
1207
1312
  case 'month':
1208
- this.setCurrentPeriod(new MonthPeriod(date));
1313
+ this.setCurrentPeriod(new MonthPeriod(date, this.showWeekends));
1209
1314
  break;
1210
1315
  case 'week':
1211
- this.setCurrentPeriod(new WeekPeriod(date));
1316
+ this.setCurrentPeriod(new WeekPeriod(date, this.showWeekends));
1212
1317
  break;
1213
1318
  case 'day':
1214
- this.setCurrentPeriod(new DayPeriod(date));
1319
+ date = this.showWeekends === false ? getClosestWorkday(date) : date;
1320
+ this.setCurrentPeriod(new DayPeriod(date, this.showWeekends));
1215
1321
  break;
1216
1322
  }
1217
1323
  }
@@ -1253,6 +1359,12 @@ class VegaCalendarCurrentPeriodController extends VegaSlimmer {
1253
1359
  this.updateCalendarPeriod(viewMode, this.currentPeriod.current);
1254
1360
  }
1255
1361
  }
1362
+ /**
1363
+ * The calendar period should update when the property showWeekends change
1364
+ */
1365
+ updateCurrentPeriodAfterHideWeekEndsChange() {
1366
+ this.updateCalendarPeriod(this.viewMode, this.currentPeriod.current);
1367
+ }
1256
1368
  /**
1257
1369
  * The function `getStartDateAndEndDate` returns an array of `VegaCalendarDateType` objects based on the `startDate` and `endDate` properties of the `currentPeriod` object.
1258
1370
  *
@@ -1286,6 +1398,9 @@ __decorate$h([
1286
1398
  __decorate$h([
1287
1399
  MapToComponentField({ writable: true })
1288
1400
  ], VegaCalendarCurrentPeriodController.prototype, "viewMode", void 0);
1401
+ __decorate$h([
1402
+ MapToComponentField()
1403
+ ], VegaCalendarCurrentPeriodController.prototype, "showWeekends", void 0);
1289
1404
  __decorate$h([
1290
1405
  MapToComponentMethod('componentWillLoad')
1291
1406
  ], VegaCalendarCurrentPeriodController.prototype, "initialCurrentPeriod", null);
@@ -1295,6 +1410,9 @@ __decorate$h([
1295
1410
  __decorate$h([
1296
1411
  MapToComponentMethod('watchViewModeChange')
1297
1412
  ], VegaCalendarCurrentPeriodController.prototype, "updateCurrentPeriodByViewMode", null);
1413
+ __decorate$h([
1414
+ MapToComponentMethod('watchShowWeekendsChange')
1415
+ ], VegaCalendarCurrentPeriodController.prototype, "updateCurrentPeriodAfterHideWeekEndsChange", null);
1298
1416
 
1299
1417
  var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1300
1418
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1439,7 +1557,9 @@ class VegaCalendarMonthEventRenderer extends VegaSlimmer {
1439
1557
  }
1440
1558
  if (removeItems.length) {
1441
1559
  rowEvents.forEach((items) => {
1442
- if (items.length && removeItems.includes(items[items.length - 1])) {
1560
+ if (items.length &&
1561
+ items[items.length - 1] &&
1562
+ removeItems.includes(items[items.length - 1])) {
1443
1563
  result.push(items.slice(0, items.length - 1));
1444
1564
  }
1445
1565
  else {
@@ -2490,7 +2610,7 @@ class VegaCalendarEventResponsiveController extends PageResizeObserverSlimmer {
2490
2610
  // The debounce method will case this method called after component disconnect, then the slimmer will get issue to get viewMode from component class, this issue will catch in spec.ts
2491
2611
  try {
2492
2612
  const eventContainerRef = this.monthEventRenderer.getMonthEventContainerRef();
2493
- if (this.viewMode === 'month' && eventContainerRef) {
2613
+ if (this.viewMode === 'month' && eventContainerRef && eventContainerRef.parentElement) {
2494
2614
  const maxContainerHeight = eventContainerRef.parentElement.getBoundingClientRect().height;
2495
2615
  const count = Math.floor((maxContainerHeight - VegaCalendarEventResponsiveController.monthDateTitleHeight) /
2496
2616
  VegaCalendarEventItemRenderer.backgroundColorModeEventHeight);
@@ -2675,7 +2795,7 @@ class VegaCalendarDayViewEventLayoutRenderer extends VegaSlimmer {
2675
2795
  top: `${(100 / VegaCalendarDayViewEventLayoutRenderer.totalNumberOfCells) * startIndex}%`,
2676
2796
  width: `calc(100% - ${left * 100}%)`,
2677
2797
  height: `${(100 / VegaCalendarDayViewEventLayoutRenderer.totalNumberOfCells) * (endIndex - startIndex)}%`,
2678
- zIndex: columnIndex > 0 ? `${columnIndex}` : null,
2798
+ zIndex: columnIndex > 0 ? `${columnIndex}` : undefined,
2679
2799
  };
2680
2800
  }
2681
2801
  }
@@ -3110,7 +3230,7 @@ class VegaCalendarFullDayEventLayoutGenerator extends VegaCalendarBaseEventLayou
3110
3230
  */
3111
3231
  generate(calendarEvents) {
3112
3232
  const allShouldOrderLongEvents = this.collectAllShouldOrderLongEvents(calendarEvents);
3113
- const layoutRows = [new VegaCalendarFullDayEventLayoutRow()];
3233
+ const layoutRows = [this.createNewLayoutCell()];
3114
3234
  allShouldOrderLongEvents.forEach((eventView) => {
3115
3235
  this.addCurrentEventToLayout(layoutRows, eventView);
3116
3236
  });
@@ -3319,7 +3439,7 @@ __decorate$8([
3319
3439
  MapToComponentMethod('watchViewModeChange')
3320
3440
  ], VegaCalendarFullDayEventMoreButtonRenderer.prototype, "resetShowAllFlag", null);
3321
3441
 
3322
- 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 .calendar-view-event-all .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;margin-left:2px;padding:2px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-event-all .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-container .calendar-view-event-all .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-container .calendar-view-event-all .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}.calendar-view-container .calendar-view-event-all .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 .event-all-col{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.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}.calendar-event-slot-container{display:none}";
3442
+ 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-weekday-columns:7}.calendar-view.calendar-hide-weekends{--calendar-weekday-columns:5}.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(var(--calendar-weekday-columns), 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(var(--calendar-weekday-columns), minmax(64px, 1fr))}.calendar-view-week .calendar-view-container .calendar-view-event-all{grid-template-columns:repeat(var(--calendar-weekday-columns), minmax(64px, 1fr))}.calendar-view-week .calendar-view-container .calendar-view-day-container .calendar-view-content{display:grid;grid-template-columns:repeat(var(--calendar-weekday-columns), minmax(64px, 1fr))}.calendar-view-week .time-marker-container .time-marker{display:grid;grid-template-columns:repeat(var(--calendar-weekday-columns), minmax(64px, 1fr))}.calendar-view-week .day-event-container{display:grid;grid-template-columns:repeat(var(--calendar-weekday-columns), 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 .calendar-view-event-all .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;margin-left:2px;padding:2px}@media screen and (min-width: 768px) and (max-width: 1023px){.calendar-view-container .calendar-view-event-all .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-container .calendar-view-event-all .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-container .calendar-view-event-all .more-button{font-family:\"Inter\", sans-serif;font-size:12px;font-weight:700;line-height:16px;letter-spacing:0px}}.calendar-view-container .calendar-view-event-all .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 .event-all-col{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.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}.calendar-event-slot-container{display:none}";
3323
3443
 
3324
3444
  var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3325
3445
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -3343,6 +3463,7 @@ const VegaCalendar = class {
3343
3463
  this.vegaMoreActionClick = createEvent(this, "vegaMoreActionClick", 7);
3344
3464
  this.moreActionClick = createEvent(this, "moreActionClick", 7);
3345
3465
  this.globalSlimmer = {};
3466
+ this.translationSlimmer = new TranslationSlimmer();
3346
3467
  this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
3347
3468
  this.renderer = new VegaCalendarRenderer();
3348
3469
  this.switchPanelRenderer = new VegaCalendarSwitchPanelRenderer();
@@ -3374,22 +3495,28 @@ const VegaCalendar = class {
3374
3495
  /**
3375
3496
  * Specifies the current view mode of the calendar.
3376
3497
  *
3377
- * @version 2.14.0
3498
+ * @vegaVersion 2.14.0
3378
3499
  */
3379
3500
  /* eslint-disable-next-line @stencil/strict-mutable */
3380
3501
  this.viewMode = 'month';
3381
3502
  /**
3382
3503
  * Specifies the time format of the calendar.
3383
3504
  *
3384
- * @version 2.14.0
3505
+ * @vegaVersion 2.14.0
3385
3506
  */
3386
3507
  this.timeFormat = '24-hour';
3387
3508
  /**
3388
3509
  * Controls the visibility of the calendar's event color bar.
3389
3510
  *
3390
- * @version 2.21.0
3511
+ * @vegaVersion 2.21.0
3391
3512
  */
3392
3513
  this.showEventColorBar = true;
3514
+ /**
3515
+ * Controls the visibility of the weekend columns in the calendar.
3516
+ *
3517
+ * @vegaVersion 2.28.0
3518
+ */
3519
+ this.showWeekends = true;
3393
3520
  }
3394
3521
  /**
3395
3522
  * Tracks changes to the current period state.
@@ -3427,6 +3554,11 @@ const VegaCalendar = class {
3427
3554
  */
3428
3555
  watchShowEventColorBar(newValue) {
3429
3556
  }
3557
+ /**
3558
+ * Monitors changes in the visibility of the weekend columns in the calendar.
3559
+ */
3560
+ watchShowWeekendsChange() {
3561
+ }
3430
3562
  render() {
3431
3563
  return sanitizeVegaComponent(h(Host, null, this.renderer.render()), this.host);
3432
3564
  }
@@ -3436,12 +3568,16 @@ const VegaCalendar = class {
3436
3568
  "viewMode": ["watchViewModeChange"],
3437
3569
  "events": ["watchEventsChange"],
3438
3570
  "timeFormat": ["watchTimeFormat"],
3439
- "showEventColorBar": ["watchShowEventColorBar"]
3571
+ "showEventColorBar": ["watchShowEventColorBar"],
3572
+ "showWeekends": ["watchShowWeekendsChange"]
3440
3573
  }; }
3441
3574
  };
3442
3575
  __decorate$7([
3443
3576
  InjectVegaGlobalSlimmer()
3444
3577
  ], VegaCalendar.prototype, "globalSlimmer", void 0);
3578
+ __decorate$7([
3579
+ InjectVegaSlimmer()
3580
+ ], VegaCalendar.prototype, "translationSlimmer", void 0);
3445
3581
  __decorate$7([
3446
3582
  InjectVegaSlimmer()
3447
3583
  ], VegaCalendar.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
@@ -3592,13 +3728,14 @@ class VegaCalendarEventRenderer extends VegaSlimmer {
3592
3728
  * @returns {HTMLAnchorElement} event element
3593
3729
  */
3594
3730
  renderNormalEvent() {
3595
- const { variant = 'primary', disabled } = this.calendarEvent;
3731
+ const { variant, disabled } = this.calendarEvent;
3732
+ const variantText = variant || 'primary';
3596
3733
  const isMonthEvent = !this.host.classList.contains('day-event');
3597
3734
  const classMap = {
3598
3735
  'slot-container': this.slotMode,
3599
3736
  'event-container': true,
3600
3737
  'disabled': disabled,
3601
- [variant]: true,
3738
+ [variantText]: true,
3602
3739
  };
3603
3740
  if (isMonthEvent) {
3604
3741
  return (h("div", { role: "button", tabIndex: 0, class: classMap, ref: (node) => (this.slotContainerRef = node) },