@globalpayments/vega 2.13.0 → 2.14.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.
- package/dist/cjs/{app-globals-641bb215.js → app-globals-6b5136b1.js} +4 -4
- package/dist/cjs/{childNodesEventPreventSlimmer-29128c2a.js → childNodesEventPreventSlimmer-5b352793.js} +1 -1
- package/dist/cjs/{componentUsageRuntimeMetrics-0fbcd33f.js → componentUsageRuntimeMetrics-1a2a592d.js} +1 -1
- package/dist/cjs/{designToken-91ea7c25.js → designToken-3904c6b7.js} +5 -82
- package/dist/cjs/{eventEmitSlimmer-da0b3b8b.js → eventEmitSlimmer-ea57144a.js} +1 -1
- package/dist/cjs/{featureFlagController-da4c779b.js → featureFlagController-ab94fd4f.js} +1 -1
- package/dist/cjs/{formFieldControllerSlimmer-b451c7a5.js → formFieldControllerSlimmer-769ef4fd.js} +1 -1
- package/dist/cjs/index-1299d729.js +4 -0
- package/dist/cjs/{index-55e89877.js → index-3183748d.js} +65 -44
- package/dist/cjs/{index-5a81786f.js → index-b8881ddc.js} +4 -3
- package/dist/cjs/index.cjs.js +7 -6
- package/dist/cjs/{internalVegaEventManager-a3672e0c.js → internalVegaEventManager-543c20cb.js} +2 -1
- package/dist/cjs/{legendInputProcessor-b1c5958c.js → legendInputProcessor-a3cdc806.js} +5 -32
- package/dist/cjs/loader.cjs.js +7 -7
- package/dist/cjs/pixel-b18a8279.js +32 -0
- package/dist/cjs/stateBackgroundColorFormatter-96a26ee7.js +85 -0
- package/dist/cjs/{stringInputFormatterSlimmer-e15e55cd.js → stringInputFormatterSlimmer-afdb5cfd.js} +2 -0
- package/dist/cjs/{subStateObserverSlimmer-e61bda94.js → subStateObserverSlimmer-48ad20a1.js} +1 -1
- package/dist/cjs/timer-5f33058b.js +24 -0
- package/dist/cjs/vega-accordion.cjs.entry.js +7 -6
- package/dist/cjs/vega-app-footer.cjs.entry.js +1 -1
- package/dist/cjs/vega-app-header-button.cjs.entry.js +7 -6
- package/dist/cjs/vega-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/vega-banner.cjs.entry.js +4 -4
- package/dist/cjs/vega-bar-chart.cjs.entry.js +4 -3
- package/dist/cjs/vega-box.cjs.entry.js +3 -2
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +5 -5
- package/dist/cjs/vega-button-circle.cjs.entry.js +7 -6
- package/dist/cjs/vega-button-group_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
- package/dist/cjs/vega-button.cjs.entry.js +5 -5
- package/dist/cjs/vega-calendar_2.cjs.entry.js +2927 -0
- package/dist/cjs/vega-card.cjs.entry.js +3 -2
- package/dist/cjs/vega-carousel.cjs.entry.js +4 -4
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-chip.cjs.entry.js +7 -6
- package/dist/cjs/vega-color-picker.cjs.entry.js +6 -6
- package/dist/cjs/vega-combo-box.cjs.entry.js +7 -7
- package/dist/cjs/vega-counter-badge.cjs.entry.js +1 -1
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-dialog_2.cjs.entry.js +7 -6
- package/dist/cjs/vega-divider.cjs.entry.js +3 -2
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +52 -9
- package/dist/cjs/vega-field-error.cjs.entry.js +1 -1
- package/dist/cjs/vega-field-label.cjs.entry.js +5 -5
- package/dist/cjs/vega-flex.cjs.entry.js +5 -4
- package/dist/cjs/vega-font.cjs.entry.js +3 -2
- package/dist/cjs/vega-form.cjs.entry.js +7 -7
- package/dist/cjs/vega-grid.cjs.entry.js +3 -2
- package/dist/cjs/vega-icon.cjs.entry.js +3 -2
- package/dist/cjs/vega-image-uploader.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +9 -9
- package/dist/cjs/vega-input-range.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-select.cjs.entry.js +7 -7
- package/dist/cjs/vega-input.cjs.entry.js +7 -7
- package/dist/cjs/vega-item-toggle.cjs.entry.js +4 -4
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +63 -8
- package/dist/cjs/vega-line-chart.cjs.entry.js +4 -3
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination.cjs.entry.js +5 -5
- package/dist/cjs/vega-pie-chart.cjs.entry.js +3 -2
- package/dist/cjs/vega-popover_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +4 -4
- package/dist/cjs/vega-radio_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-section-title.cjs.entry.js +1 -1
- package/dist/cjs/vega-segment-control.cjs.entry.js +4 -4
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-slot-container.cjs.entry.js +1 -1
- package/dist/cjs/vega-stepper.cjs.entry.js +8 -8
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +7 -27
- package/dist/cjs/vega-table_8.cjs.entry.js +18 -16
- package/dist/cjs/vega-text.cjs.entry.js +1 -1
- package/dist/cjs/vega-textarea.cjs.entry.js +7 -7
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +4 -4
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +30 -8
- package/dist/cjs/vega.cjs.js +7 -7
- package/dist/cjs/{vegaEventId-1a0eb6b5.js → vegaEventId-d7774262.js} +2 -0
- package/dist/cjs/{vegaInternalEventId-b27735af.js → vegaInternalEventId-173c4941.js} +2 -0
- package/dist/cjs/{yAxisInputProcessor-da676e61.js → yAxisInputProcessor-62c4e838.js} +1 -1
- package/dist/collection/collection-manifest.json +8 -0
- package/dist/collection/components/vega-calendar/icons/clock-three.js +3 -0
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.js +103 -0
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.js +71 -0
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-responsive-controller.js +74 -0
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.js +78 -0
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/calendarEventSorter.js +91 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/baseEventLayout.js +11 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/baseEventLayoutCell.js +43 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/baseEventLayoutGenerator.js +23 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/fullDayEventLayout.js +42 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/fullDayEventLayoutGenerator.js +84 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/fullDayEventLayoutRow.js +41 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/test/longEventLayoutGenerator.test.js +99 -0
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +39 -0
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-full-day-event-layout-renderer.js +99 -0
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-renderer.js +27 -0
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.js +150 -0
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-view-renderer.js +30 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/full-day-event/vega-calendar-full-day-event-renderer.js +54 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/dayViewTimedEventLayout.js +35 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/dayViewTimedEventLayoutColumn.js +50 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/dayViewTimedEventLayoutGenerator.js +29 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/test/dayViewEventLayoutGenerator.test.js +77 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-day-event-layout-renderer.js +70 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-timed-event-renderer.js +52 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-time-line-renderer.js +152 -0
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.js +88 -0
- package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-event-renderer.js +177 -0
- package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.js +73 -0
- package/dist/collection/components/vega-calendar/utils/index.js +23 -0
- package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-event-bg-color-controller.js +29 -0
- package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-event-title-max-height-controller.js +37 -0
- package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-sub-state-controller.js +28 -0
- package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.js +151 -0
- package/dist/collection/components/vega-calendar/vega-calendar-event/vega-calendar-event.css +342 -0
- package/dist/collection/components/vega-calendar/vega-calendar-event/vega-calendar-event.js +94 -0
- package/dist/collection/components/vega-calendar/vega-calendar.css +602 -0
- package/dist/collection/components/vega-calendar/vega-calendar.js +345 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +17 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +2 -1
- package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +2 -1
- package/dist/collection/components/vega-nav/vega-nav-card/vega-nav-card.js +2 -1
- package/dist/collection/components/vega-table/vega-table-row/slimmers/controllers/vega-table-row-click-controller.js +7 -5
- package/dist/collection/components/vega-tooltip/slimmers/controllers/vega-tooltip-element-appender-controller.js +23 -1
- package/dist/collection/components/vega-tooltip/vega-tooltip.js +12 -8
- package/dist/collection/constants/runtime-metrics-payload-definition/vega-dropdown/runtime-metrics-payload-definition.js +26 -0
- package/dist/collection/constants/runtime-metrics-payload-definition/vega-left-nav/runtime-metrics-payload-definition.js +26 -0
- package/dist/collection/constants/runtime-metrics-payload-definition/vega-nav-card/runtime-metrics-payload-definition.js +26 -0
- package/dist/collection/constants/runtime-metrics-payload-definition/vega-stepper/runtime-metrics-payload-definition.js +1 -1
- package/dist/collection/constants/runtime-metrics-payload-definition/vega-table/runtime-metrics-payload-definition.js +2 -2
- package/dist/collection/constants/ui.js +2 -0
- package/dist/collection/global/icons/chevron-left.js +3 -0
- package/dist/collection/global/icons/chevron-right.js +3 -0
- package/dist/collection/helpers/calendar/calendar-date.js +103 -0
- package/dist/collection/helpers/calendar/calendar-event.js +256 -0
- package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +75 -0
- package/dist/collection/helpers/calendar/calendar-period/day-period.js +33 -0
- package/dist/collection/helpers/calendar/calendar-period/month-period.js +35 -0
- package/dist/collection/helpers/calendar/calendar-period/week-period.js +34 -0
- package/dist/collection/helpers/calendar/calendar-view-generator/calendar-view-generator.abstract.js +41 -0
- package/dist/collection/helpers/calendar/calendar-view-generator/day-view-generator.js +13 -0
- package/dist/collection/helpers/calendar/calendar-view-generator/month-view-generator.js +24 -0
- package/dist/collection/helpers/calendar/calendar-view-generator/week-view-generator.js +15 -0
- package/dist/collection/helpers/calendar/calendar-view.js +25 -0
- package/dist/collection/helpers/calendar/index.js +10 -0
- package/dist/collection/helpers/calendar/test/calendar-date.test.js +71 -0
- package/dist/collection/helpers/calendar/test/calendar-event.test.js +130 -0
- package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +65 -0
- package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +60 -0
- package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +60 -0
- package/dist/collection/helpers/calendar/test/calendar-view-generator/day-view-generator.test.js +19 -0
- package/dist/collection/helpers/calendar/test/calendar-view-generator/month-view-generator.test.js +73 -0
- package/dist/collection/helpers/calendar/test/calendar-view-generator/week-view-generator.test.js +28 -0
- package/dist/collection/helpers/calendar/test/calendar-view.test.js +9 -0
- package/dist/collection/helpers/calendar/test/index.test.js +13 -0
- package/dist/collection/helpers/calendar/test/utils.test.js +9 -0
- package/dist/collection/helpers/calendar/utils.js +10 -0
- package/dist/collection/helpers/event-manager/eventID/componentEventIdMap.js +2 -1
- package/dist/collection/helpers/event-manager/eventID/vegaEventId.js +2 -0
- package/dist/collection/helpers/event-manager/eventID/vegaInternalEventId.js +1 -0
- package/dist/collection/helpers/slimmers/stringInputFormatterSlimmer.js +2 -0
- package/dist/collection/helpers/vega-telemetry-helper/test/vegaEnvManager.test.js +1 -2
- package/dist/collection/helpers/vega-telemetry-helper/vegaEnvManager.js +3 -2
- package/dist/esm/{app-globals-6bb63482.js → app-globals-cf903368.js} +4 -4
- package/dist/esm/{childNodesEventPreventSlimmer-86a1593c.js → childNodesEventPreventSlimmer-ca73e6c1.js} +1 -1
- package/dist/esm/{componentUsageRuntimeMetrics-6bc153ea.js → componentUsageRuntimeMetrics-4f08dec8.js} +1 -1
- package/dist/esm/{designToken-d25f5b1e.js → designToken-4459ff64.js} +4 -81
- package/dist/esm/{elementAppenderSlimmer-ef58e7a4.js → elementAppenderSlimmer-6bdee603.js} +2 -2
- package/dist/esm/{eventEmitSlimmer-d5b8d8d7.js → eventEmitSlimmer-9c33f04e.js} +1 -1
- package/dist/esm/{featureFlagController-fdb8cf0e.js → featureFlagController-816491ad.js} +1 -1
- package/dist/esm/{formFieldControllerSlimmer-04953f74.js → formFieldControllerSlimmer-2cc9eec5.js} +1 -1
- package/dist/esm/{index-1d242e89.js → index-4126a006.js} +65 -44
- package/dist/esm/index-c3505689.js +4 -0
- package/dist/esm/{index-8584d77d.js → index-dd06e5e7.js} +4 -3
- package/dist/esm/index.js +9 -8
- package/dist/esm/{internalVegaEventManager-501f9eb9.js → internalVegaEventManager-e1501923.js} +2 -1
- package/dist/esm/{legendInputProcessor-0b8dc09c.js → legendInputProcessor-e9c0ddf3.js} +1 -28
- package/dist/esm/loader.js +7 -7
- package/dist/esm/pixel-53ad41ea.js +29 -0
- package/dist/esm/{responsiveFormatFacade-7665557d.js → responsiveFormatFacade-7072153e.js} +1 -1
- package/dist/esm/stateBackgroundColorFormatter-e705312f.js +82 -0
- package/dist/esm/{stringInputFormatterSlimmer-9ba33d9e.js → stringInputFormatterSlimmer-e67c7503.js} +3 -1
- package/dist/esm/{subStateObserverSlimmer-71b39ca0.js → subStateObserverSlimmer-354b33f6.js} +1 -1
- package/dist/esm/timer-9321173b.js +22 -0
- package/dist/esm/{typeGuard-ebc62114.js → typeGuard-f33ed2eb.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +9 -8
- package/dist/esm/vega-app-footer.entry.js +1 -1
- package/dist/esm/vega-app-header-button.entry.js +9 -8
- package/dist/esm/vega-backdrop.entry.js +1 -1
- package/dist/esm/vega-banner.entry.js +4 -4
- package/dist/esm/vega-bar-chart.entry.js +4 -3
- package/dist/esm/vega-box.entry.js +5 -4
- package/dist/esm/vega-breadcrumb.entry.js +5 -5
- package/dist/esm/vega-button-circle.entry.js +9 -8
- package/dist/esm/vega-button-group_2.entry.js +7 -7
- package/dist/esm/vega-button-link.entry.js +5 -5
- package/dist/esm/vega-button.entry.js +7 -7
- package/dist/esm/vega-calendar_2.entry.js +2922 -0
- package/dist/esm/vega-card.entry.js +5 -4
- package/dist/esm/vega-carousel.entry.js +6 -6
- package/dist/esm/vega-checkbox_2.entry.js +7 -7
- package/dist/esm/vega-chip.entry.js +9 -8
- package/dist/esm/vega-color-picker.entry.js +6 -6
- package/dist/esm/vega-combo-box.entry.js +8 -8
- package/dist/esm/vega-counter-badge.entry.js +1 -1
- package/dist/esm/vega-date-picker_2.entry.js +11 -11
- package/dist/esm/vega-dialog_2.entry.js +9 -8
- package/dist/esm/vega-divider.entry.js +5 -4
- package/dist/esm/vega-dropdown_5.entry.js +55 -12
- package/dist/esm/vega-field-error.entry.js +1 -1
- package/dist/esm/vega-field-label.entry.js +5 -5
- package/dist/esm/vega-flex.entry.js +7 -6
- package/dist/esm/vega-font.entry.js +5 -4
- package/dist/esm/vega-form.entry.js +7 -7
- package/dist/esm/vega-grid.entry.js +5 -4
- package/dist/esm/vega-icon.entry.js +5 -4
- package/dist/esm/vega-image-uploader.entry.js +9 -9
- package/dist/esm/vega-input-credit-card.entry.js +9 -9
- package/dist/esm/vega-input-range.entry.js +7 -7
- package/dist/esm/vega-input-select.entry.js +9 -9
- package/dist/esm/vega-input.entry.js +8 -8
- package/dist/esm/vega-item-toggle.entry.js +4 -4
- package/dist/esm/vega-left-nav_5.entry.js +65 -10
- package/dist/esm/vega-line-chart.entry.js +4 -3
- package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
- package/dist/esm/vega-page-notification_2.entry.js +2 -2
- package/dist/esm/vega-pagination.entry.js +5 -5
- package/dist/esm/vega-pie-chart.entry.js +3 -2
- package/dist/esm/vega-popover_2.entry.js +7 -7
- package/dist/esm/vega-progress-tracker.entry.js +4 -4
- package/dist/esm/vega-radio_2.entry.js +7 -7
- package/dist/esm/vega-section-title.entry.js +1 -1
- package/dist/esm/vega-segment-control.entry.js +4 -4
- package/dist/esm/vega-selection-tile_2.entry.js +8 -8
- package/dist/esm/vega-slot-container.entry.js +1 -1
- package/dist/esm/vega-stepper.entry.js +8 -8
- package/dist/esm/vega-tab-group_2.entry.js +6 -26
- package/dist/esm/vega-table_8.entry.js +20 -18
- package/dist/esm/vega-text.entry.js +1 -1
- package/dist/esm/vega-textarea.entry.js +7 -7
- package/dist/esm/vega-time-picker_2.entry.js +10 -10
- package/dist/esm/vega-toggle-switch.entry.js +4 -4
- package/dist/esm/vega-tooltip_2.entry.js +34 -12
- package/dist/esm/vega.js +7 -7
- package/dist/esm/{vegaEventId-c0384a6f.js → vegaEventId-680887e1.js} +2 -1
- package/dist/esm/{vegaInternalEventId-ba0b5623.js → vegaInternalEventId-600b3751.js} +2 -1
- package/dist/esm/{yAxisInputProcessor-1d65dcf9.js → yAxisInputProcessor-a2a29991.js} +1 -1
- package/dist/types/components/vega-calendar/icons/clock-three.d.ts +3 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.d.ts +45 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.d.ts +36 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-responsive-controller.d.ts +25 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.d.ts +39 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/calendarEventSorter.d.ts +38 -0
- package/dist/types/components/vega-calendar/slimmers/common/layout/baseEventLayout.d.ts +11 -0
- package/dist/types/components/vega-calendar/slimmers/common/layout/baseEventLayoutCell.d.ts +40 -0
- package/dist/types/components/vega-calendar/slimmers/common/layout/baseEventLayoutGenerator.d.ts +16 -0
- package/dist/types/components/vega-calendar/slimmers/common/layout/fullDayEventLayout.d.ts +30 -0
- package/dist/types/components/vega-calendar/slimmers/common/layout/fullDayEventLayoutGenerator.d.ts +39 -0
- package/dist/types/components/vega-calendar/slimmers/common/layout/fullDayEventLayoutRow.d.ts +26 -0
- package/dist/types/components/vega-calendar/slimmers/common/layout/test/longEventLayoutGenerator.test.d.ts +1 -0
- package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.d.ts +23 -0
- package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-full-day-event-layout-renderer.d.ts +39 -0
- package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-renderer.d.ts +13 -0
- package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.d.ts +67 -0
- package/dist/types/components/vega-calendar/slimmers/common/renderers/vega-calendar-view-renderer.d.ts +14 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/full-day-event/vega-calendar-full-day-event-renderer.d.ts +22 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/dayViewTimedEventLayout.d.ts +20 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/dayViewTimedEventLayoutColumn.d.ts +28 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/dayViewTimedEventLayoutGenerator.d.ts +20 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/test/dayViewEventLayoutGenerator.test.d.ts +1 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-day-event-layout-renderer.d.ts +27 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-timed-event-renderer.d.ts +23 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-time-line-renderer.d.ts +63 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.d.ts +37 -0
- package/dist/types/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-event-renderer.d.ts +66 -0
- package/dist/types/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.d.ts +29 -0
- package/dist/types/components/vega-calendar/types.d.ts +58 -0
- package/dist/types/components/vega-calendar/utils/index.d.ts +18 -0
- package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-event-bg-color-controller.d.ts +12 -0
- package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-event-title-max-height-controller.d.ts +13 -0
- package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-sub-state-controller.d.ts +10 -0
- package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.d.ts +54 -0
- package/dist/types/components/vega-calendar/vega-calendar-event/vega-calendar-event.d.ts +25 -0
- package/dist/types/components/vega-calendar/vega-calendar.d.ts +107 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.d.ts +10 -0
- package/dist/types/components/vega-tooltip/slimmers/controllers/vega-tooltip-element-appender-controller.d.ts +8 -0
- package/dist/types/components/vega-tooltip/vega-tooltip.d.ts +2 -1
- package/dist/types/components.d.ts +82 -1
- package/dist/types/constants/runtime-metrics-payload-definition/vega-dropdown/runtime-metrics-payload-definition.d.ts +2 -0
- package/dist/types/constants/runtime-metrics-payload-definition/vega-left-nav/runtime-metrics-payload-definition.d.ts +2 -0
- package/dist/types/constants/runtime-metrics-payload-definition/vega-nav-card/runtime-metrics-payload-definition.d.ts +2 -0
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/global/icons/chevron-left.d.ts +3 -0
- package/dist/types/global/icons/chevron-right.d.ts +3 -0
- package/dist/types/helpers/calendar/calendar-date.d.ts +61 -0
- package/dist/types/helpers/calendar/calendar-event.d.ts +140 -0
- package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +73 -0
- package/dist/types/helpers/calendar/calendar-period/day-period.d.ts +21 -0
- package/dist/types/helpers/calendar/calendar-period/month-period.d.ts +21 -0
- package/dist/types/helpers/calendar/calendar-period/week-period.d.ts +21 -0
- package/dist/types/helpers/calendar/calendar-view-generator/calendar-view-generator.abstract.d.ts +35 -0
- package/dist/types/helpers/calendar/calendar-view-generator/day-view-generator.d.ts +12 -0
- package/dist/types/helpers/calendar/calendar-view-generator/month-view-generator.d.ts +12 -0
- package/dist/types/helpers/calendar/calendar-view-generator/week-view-generator.d.ts +12 -0
- package/dist/types/helpers/calendar/calendar-view.d.ts +21 -0
- package/dist/types/helpers/calendar/index.d.ts +10 -0
- package/dist/types/helpers/calendar/test/calendar-date.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-event.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-period/day-period.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-period/month-period.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-period/week-period.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-view-generator/day-view-generator.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-view-generator/month-view-generator.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-view-generator/week-view-generator.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-view.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/index.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/utils.test.d.ts +1 -0
- package/dist/types/helpers/calendar/utils.d.ts +7 -0
- package/dist/types/helpers/event-manager/eventID/vegaEventId.d.ts +2 -0
- package/dist/types/helpers/event-manager/eventID/vegaInternalEventId.d.ts +1 -0
- package/dist/types/types/components.type.d.ts +8 -1
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-17d55440.entry.js → p-0bf26a50.entry.js} +1 -1
- package/dist/vega/{p-303e35ae.entry.js → p-10c41ccc.entry.js} +1 -1
- package/dist/vega/{p-d361ef78.js → p-1265732f.js} +1 -1
- package/dist/vega/{p-8c52a064.entry.js → p-12b4c69a.entry.js} +1 -1
- package/dist/vega/p-149e0999.entry.js +1 -0
- package/dist/vega/p-163b8ab5.entry.js +1 -0
- package/dist/vega/{p-d942a746.js → p-16608c5a.js} +1 -1
- package/dist/vega/{p-c3089dea.entry.js → p-1b83652c.entry.js} +1 -1
- package/dist/vega/p-1bc5b3bc.js +1 -0
- package/dist/vega/{p-f3b35323.entry.js → p-1d628d23.entry.js} +1 -1
- package/dist/vega/{p-e24344c7.entry.js → p-27d76db9.entry.js} +1 -1
- package/dist/vega/{p-b7c51304.js → p-2969b1c2.js} +1 -1
- package/dist/vega/p-29d2d70a.js +1 -0
- package/dist/vega/{p-e93861a9.entry.js → p-2c89a9a4.entry.js} +1 -1
- package/dist/vega/p-2d41b82e.js +1 -0
- package/dist/vega/p-2e871e5b.entry.js +1 -0
- package/dist/vega/{p-f43b8a7e.entry.js → p-360ac223.entry.js} +1 -1
- package/dist/vega/p-36ea8012.js +1 -0
- package/dist/vega/p-47367768.entry.js +1 -0
- package/dist/vega/p-485e71d4.entry.js +1 -0
- package/dist/vega/{p-3cf2c509.entry.js → p-4dacc0b7.entry.js} +1 -1
- package/dist/vega/p-50219611.entry.js +1 -0
- package/dist/vega/{p-d2d89e6d.entry.js → p-5ba654a4.entry.js} +1 -1
- package/dist/vega/{p-2ddc3071.js → p-5cad29f5.js} +1 -1
- package/dist/vega/p-60f511cf.entry.js +1 -0
- package/dist/vega/{p-9f8f7c85.js → p-61f18887.js} +1 -1
- package/dist/vega/p-6bdc4407.js +1 -0
- package/dist/vega/{p-c9320565.entry.js → p-6d482bec.entry.js} +1 -1
- package/dist/vega/{p-e85d0765.entry.js → p-6e0daee9.entry.js} +1 -1
- package/dist/vega/p-72f9ad2e.entry.js +1 -0
- package/dist/vega/{p-e80fd0ef.js → p-76712540.js} +1 -1
- package/dist/vega/{p-6e8cbf86.entry.js → p-77b39fe7.entry.js} +1 -1
- package/dist/vega/p-783bcc7b.entry.js +1 -0
- package/dist/vega/{p-f275ec4b.entry.js → p-84787f59.entry.js} +1 -1
- package/dist/vega/p-85054a3e.entry.js +1 -0
- package/dist/vega/p-87d6e85f.entry.js +1 -0
- package/dist/vega/{p-218f1334.entry.js → p-897a3a9b.entry.js} +1 -1
- package/dist/vega/p-8bbac798.entry.js +1 -0
- package/dist/vega/{p-fa460bce.entry.js → p-9047ee85.entry.js} +1 -1
- package/dist/vega/p-90d4e1c6.entry.js +1 -0
- package/dist/vega/{p-a1673ea4.entry.js → p-9443e399.entry.js} +1 -1
- package/dist/vega/{p-52eaf169.entry.js → p-969ba15a.entry.js} +1 -1
- package/dist/vega/{p-85cd20e0.js → p-999e1318.js} +1 -1
- package/dist/vega/{p-9c69703d.js → p-99c8fe92.js} +1 -1
- package/dist/vega/{p-24bce1b6.entry.js → p-9b396c06.entry.js} +1 -1
- package/dist/vega/p-9f1151cd.entry.js +1 -0
- package/dist/vega/{p-7896719f.entry.js → p-9f56c3e4.entry.js} +1 -1
- package/dist/vega/p-a7c96716.entry.js +1 -0
- package/dist/vega/{p-75c51fe9.js → p-a9c3e9fd.js} +1 -1
- package/dist/vega/{p-0ab8a349.entry.js → p-a9f61d9e.entry.js} +1 -1
- package/dist/vega/p-aae8855d.js +1 -0
- package/dist/vega/{p-b10c9d7d.entry.js → p-b58e2fae.entry.js} +1 -1
- package/dist/vega/p-b623aad1.entry.js +1 -0
- package/dist/vega/{p-8bf617af.entry.js → p-b708b0c2.entry.js} +1 -1
- package/dist/vega/p-b70b3aae.entry.js +1 -0
- package/dist/vega/p-b77e9b22.entry.js +1 -0
- package/dist/vega/{p-ef72e1e6.entry.js → p-b8b4bc6c.entry.js} +1 -1
- package/dist/vega/p-ba232064.entry.js +1 -0
- package/dist/vega/{p-92ead254.entry.js → p-bb52d620.entry.js} +1 -1
- package/dist/vega/p-c47d4933.js +1 -0
- package/dist/vega/{p-9f1e74ed.entry.js → p-cd05ab96.entry.js} +1 -1
- package/dist/vega/{p-13e506c1.entry.js → p-ce0af8db.entry.js} +1 -1
- package/dist/vega/{p-f970a737.entry.js → p-ceec3241.entry.js} +1 -1
- package/dist/vega/{p-7752a460.entry.js → p-d224e798.entry.js} +1 -1
- package/dist/vega/p-d909c9b4.entry.js +1 -0
- package/dist/vega/{p-b6a086a7.entry.js → p-db60ccf5.entry.js} +1 -1
- package/dist/vega/p-e02c5199.entry.js +1 -0
- package/dist/vega/{p-9973baa8.entry.js → p-e1ecfa0e.entry.js} +1 -1
- package/dist/vega/{p-7b127de4.js → p-e32b7a38.js} +1 -1
- package/dist/vega/{p-dcc9b865.entry.js → p-e424cbec.entry.js} +1 -1
- package/dist/vega/p-e4d466f0.js +1 -0
- package/dist/vega/p-eb461dad.entry.js +1 -0
- package/dist/vega/p-ece4decb.entry.js +1 -0
- package/dist/vega/{p-6bad54fd.entry.js → p-ef6e7563.entry.js} +1 -1
- package/dist/vega/p-f1d8fd1c.js +1 -0
- package/dist/vega/{p-abb2f489.js → p-f2118771.js} +1 -1
- package/dist/vega/p-f6c9d17f.entry.js +1 -0
- package/dist/vega/p-fc090247.entry.js +1 -0
- package/dist/vega/{p-eb6c9578.js → p-fc21bd44.js} +1 -1
- package/dist/vega/{p-6ff07396.js → p-fda33444.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +2 -3
- package/dist/vega/p-0994a7a3.entry.js +0 -1
- package/dist/vega/p-0b32651a.entry.js +0 -1
- package/dist/vega/p-0e77df41.entry.js +0 -1
- package/dist/vega/p-1fe9e4b3.js +0 -1
- package/dist/vega/p-26be7725.js +0 -1
- package/dist/vega/p-2b04b732.entry.js +0 -1
- package/dist/vega/p-3053fef7.entry.js +0 -1
- package/dist/vega/p-3221000e.entry.js +0 -1
- package/dist/vega/p-49a730d5.entry.js +0 -1
- package/dist/vega/p-4e0baf1a.entry.js +0 -1
- package/dist/vega/p-55eaa4ae.entry.js +0 -1
- package/dist/vega/p-56bfc2ac.entry.js +0 -1
- package/dist/vega/p-6bb6bf50.entry.js +0 -1
- package/dist/vega/p-72aff5a0.entry.js +0 -1
- package/dist/vega/p-7db505ba.entry.js +0 -1
- package/dist/vega/p-7fa146a2.entry.js +0 -1
- package/dist/vega/p-8da4b720.js +0 -1
- package/dist/vega/p-8f472cdd.entry.js +0 -1
- package/dist/vega/p-8f9a7718.entry.js +0 -1
- package/dist/vega/p-91160d38.js +0 -1
- package/dist/vega/p-95eff660.entry.js +0 -1
- package/dist/vega/p-9a8165a9.entry.js +0 -1
- package/dist/vega/p-9a92cc18.entry.js +0 -1
- package/dist/vega/p-9e70473b.js +0 -1
- package/dist/vega/p-aeef2799.js +0 -1
- package/dist/vega/p-c90eb07d.entry.js +0 -1
- package/dist/vega/p-cbe4adc3.entry.js +0 -1
- package/dist/vega/p-cc30efbc.entry.js +0 -1
- package/dist/vega/p-e5bcd681.entry.js +0 -1
- package/dist/vega/p-fb565e6e.entry.js +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { CalendarEvent } from '../../../../../../helpers/calendar/calendar-event';
|
|
2
|
+
import { VegaCalendarFullDayEventLayoutGenerator } from '../fullDayEventLayoutGenerator';
|
|
3
|
+
const mockEvents1 = [
|
|
4
|
+
{
|
|
5
|
+
key: '0',
|
|
6
|
+
title: 'Event 0',
|
|
7
|
+
startDate: '07/08/2024',
|
|
8
|
+
endDate: '07/09/2024',
|
|
9
|
+
startTime: '10:00',
|
|
10
|
+
endTime: '11:00',
|
|
11
|
+
isAllDay: false,
|
|
12
|
+
repeat: 'none',
|
|
13
|
+
disabled: false,
|
|
14
|
+
variant: 'primary',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
key: '1',
|
|
18
|
+
title: 'Event 1',
|
|
19
|
+
startDate: '07/08/2024',
|
|
20
|
+
endDate: '07/10/2024',
|
|
21
|
+
startTime: '10:00',
|
|
22
|
+
endTime: '10:15',
|
|
23
|
+
isAllDay: false,
|
|
24
|
+
repeat: 'none',
|
|
25
|
+
disabled: false,
|
|
26
|
+
variant: 'primary',
|
|
27
|
+
color: '#73E6DC',
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
const mockEvents2 = [
|
|
31
|
+
{
|
|
32
|
+
key: '0',
|
|
33
|
+
title: 'Event 0',
|
|
34
|
+
startDate: '07/08/2024',
|
|
35
|
+
endDate: '07/09/2024',
|
|
36
|
+
startTime: '10:00',
|
|
37
|
+
endTime: '11:00',
|
|
38
|
+
isAllDay: false,
|
|
39
|
+
repeat: 'none',
|
|
40
|
+
disabled: false,
|
|
41
|
+
variant: 'primary',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: '2',
|
|
45
|
+
title: 'Event 2',
|
|
46
|
+
startDate: '07/09/2024',
|
|
47
|
+
endDate: '07/10/2024',
|
|
48
|
+
startTime: '10:30',
|
|
49
|
+
endTime: '11:30',
|
|
50
|
+
isAllDay: false,
|
|
51
|
+
repeat: 'none',
|
|
52
|
+
disabled: false,
|
|
53
|
+
variant: 'secondary',
|
|
54
|
+
color: '#806BFF',
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
const mockEvent4 = [
|
|
58
|
+
{
|
|
59
|
+
key: '4',
|
|
60
|
+
title: 'Event 4',
|
|
61
|
+
startDate: '07/13/2024',
|
|
62
|
+
endDate: '07/15/2024',
|
|
63
|
+
startTime: '10:00',
|
|
64
|
+
endTime: '10:15',
|
|
65
|
+
isAllDay: false,
|
|
66
|
+
repeat: 'none',
|
|
67
|
+
disabled: false,
|
|
68
|
+
variant: 'primary',
|
|
69
|
+
color: '#73E6DC',
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
describe('VegaCalendarFullDayEventLayoutGenerator', () => {
|
|
73
|
+
it('VegaCalendarFullDayEventLayoutGenerator#generate', () => {
|
|
74
|
+
const generator = new VegaCalendarFullDayEventLayoutGenerator();
|
|
75
|
+
const calendarEvents = [
|
|
76
|
+
mockEvents1[0],
|
|
77
|
+
mockEvents1[1],
|
|
78
|
+
mockEvents2[1],
|
|
79
|
+
mockEvent4[0],
|
|
80
|
+
].map((item) => {
|
|
81
|
+
return new CalendarEvent(item);
|
|
82
|
+
});
|
|
83
|
+
const calendarEventsList = [
|
|
84
|
+
[calendarEvents[0], calendarEvents[1]],
|
|
85
|
+
[calendarEvents[0], calendarEvents[2]],
|
|
86
|
+
[calendarEvents[1], calendarEvents[2]],
|
|
87
|
+
[],
|
|
88
|
+
[],
|
|
89
|
+
[calendarEvents[3]],
|
|
90
|
+
[calendarEvents[3]],
|
|
91
|
+
];
|
|
92
|
+
const layout = generator.generate(calendarEventsList);
|
|
93
|
+
expect(layout.eventLayoutCells.length).toEqual(2);
|
|
94
|
+
expect(layout.getEventRowsIndex(calendarEventsList[0][0])).toEqual(0);
|
|
95
|
+
expect(layout.getEventsByIndex(0)).toEqual([calendarEventsList[0][0]]);
|
|
96
|
+
expect(layout.eventLayoutCells[0].getEventStartIndex(calendarEventsList[5][0])).toEqual(5);
|
|
97
|
+
expect(layout.eventLayoutCells[0].getEventEndIndex(calendarEventsList[5][0])).toEqual(6);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { h } from '@stencil/core';
|
|
8
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import { createEnterKeyHandlerToTriggerClick } from '../../../../../utils/accessibility';
|
|
10
|
+
/** The `VegaCalendarEventItemRenderer` class in TypeScript React is used for rendering calendar event items with specific layout and styling properties. */
|
|
11
|
+
export class VegaCalendarEventItemRenderer extends VegaSlimmer {
|
|
12
|
+
/**
|
|
13
|
+
* render event component
|
|
14
|
+
*
|
|
15
|
+
* @param {CalendarEvent} item the calendar event object
|
|
16
|
+
* @param {Record<string,boolean>} classMap the class name map
|
|
17
|
+
* @returns {HTMLVegaCalendarEventElement} calendar event element
|
|
18
|
+
*/
|
|
19
|
+
render(item, classMap) {
|
|
20
|
+
return (h("vega-calendar-event", { key: item.eventKey, calendarEvent: item, class: classMap, onKeyDown: createEnterKeyHandlerToTriggerClick(),
|
|
21
|
+
// eslint-disable-next-line react/jsx-no-bind
|
|
22
|
+
onClick: () => this.handleEventClick(item) }));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* emit vega click event
|
|
26
|
+
*
|
|
27
|
+
* @param {CalendarEvent} eventItem the event item
|
|
28
|
+
*/
|
|
29
|
+
handleEventClick(eventItem) {
|
|
30
|
+
this.eventClickEmitter.emit({ rawEvent: eventItem.event });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
VegaCalendarEventItemRenderer.backgroundColorModeEventHeight = 18;
|
|
34
|
+
__decorate([
|
|
35
|
+
MapToComponentField()
|
|
36
|
+
], VegaCalendarEventItemRenderer.prototype, "calendarView", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
MapToComponentField()
|
|
39
|
+
], VegaCalendarEventItemRenderer.prototype, "eventClickEmitter", void 0);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { h } from '@stencil/core';
|
|
8
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import { VegaCalendarFullDayEventLayoutGenerator } from '../layout/fullDayEventLayoutGenerator';
|
|
10
|
+
import { VegaCalendarEventSorter } from '../helpers/calendarEventSorter';
|
|
11
|
+
import { VegaCalendarEventItemRenderer } from './vega-calendar-event-item-renderer';
|
|
12
|
+
/** This code snippet defines a TypeScript class `VegaCalendarFullDayEventLayoutRenderer` that extends `VegaSlimmer`. Here's a breakdown of what the class and its methods are doing: */
|
|
13
|
+
export class VegaCalendarFullDayEventLayoutRenderer extends VegaSlimmer {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.longEventLayoutGenerator = new VegaCalendarFullDayEventLayoutGenerator();
|
|
17
|
+
this.calendarEventSorter = new VegaCalendarEventSorter();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The function `sortLongEvents` sorts calendar events based on a fixed layout generated by `longEventLayoutGenerator`.
|
|
21
|
+
*
|
|
22
|
+
* @param {CalendarEvent[][]} calendarEvents - calendar current row all events
|
|
23
|
+
* @returns {Nullable<CalendarEvent>[][]} the events after sorter
|
|
24
|
+
*/
|
|
25
|
+
sortLongEvents(calendarEvents) {
|
|
26
|
+
this.fullDayEventLayout = this.longEventLayoutGenerator.generate(calendarEvents);
|
|
27
|
+
return calendarEvents.map((items, index) => {
|
|
28
|
+
return this.calendarEventSorter.sort(items, index, this.fullDayEventLayout);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* render the month view or week view long events
|
|
33
|
+
*
|
|
34
|
+
* @param {Nullable<CalendarEvent>[]} calendarEvents current events
|
|
35
|
+
* @param {currentViewIndex} currentViewIndex the current index of the row
|
|
36
|
+
* @returns {HTMLElement[]} event elements
|
|
37
|
+
*/
|
|
38
|
+
render(calendarEvents, currentViewIndex) {
|
|
39
|
+
return calendarEvents.map((item, index) => {
|
|
40
|
+
if (item) {
|
|
41
|
+
return (h("div", { key: item.eventKey, class: this.viewMode === 'month' ? 'month-event-block' : 'day-event-block', style: this.getEventStyle(item, currentViewIndex, index, this.viewMode === 'month'
|
|
42
|
+
? VegaCalendarFullDayEventLayoutRenderer.monthViewEventOffsetTop
|
|
43
|
+
: 0) }, this.eventItemRenderer.render(item, {
|
|
44
|
+
'month-event': this.viewMode === 'month',
|
|
45
|
+
'day-event': this.viewMode !== 'month',
|
|
46
|
+
})));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/*
|
|
51
|
+
* The below method is e2e-test covered in
|
|
52
|
+
* @see{module:vega-calendar-render-full-day-event-correct}
|
|
53
|
+
*/
|
|
54
|
+
/* istanbul ignore next */
|
|
55
|
+
/**
|
|
56
|
+
* Get the current event layout style from the params
|
|
57
|
+
*
|
|
58
|
+
* @param {CalendarEvent} calendarEvent current event item
|
|
59
|
+
* @param {number} currentViewIndex the current date index of the row
|
|
60
|
+
* @param {number} itemIndex the current event index of the event array
|
|
61
|
+
* @param {number} offsetTop the default offset top for the event
|
|
62
|
+
* @returns {VegaCalendarEventStyle} layout style object
|
|
63
|
+
*/
|
|
64
|
+
getEventStyle(calendarEvent, currentViewIndex, itemIndex, offsetTop) {
|
|
65
|
+
const cellCount = this.calendarView.weekdays.length;
|
|
66
|
+
const start = currentViewIndex;
|
|
67
|
+
let end = currentViewIndex + 1;
|
|
68
|
+
const top = itemIndex;
|
|
69
|
+
let visible = true;
|
|
70
|
+
const order = this.fullDayEventLayout.getEventRowsIndex(calendarEvent);
|
|
71
|
+
if (order >= 0) {
|
|
72
|
+
const startIndex = this.fullDayEventLayout.eventLayoutCells[order].getEventStartIndex(calendarEvent);
|
|
73
|
+
const endIndex = this.fullDayEventLayout.eventLayoutCells[order].getEventEndIndex(calendarEvent);
|
|
74
|
+
if (startIndex === currentViewIndex) {
|
|
75
|
+
end = endIndex + 1;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
visible = false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
position: 'absolute',
|
|
83
|
+
left: `${(100 / cellCount) * start}%`,
|
|
84
|
+
top: `${top * VegaCalendarEventItemRenderer.backgroundColorModeEventHeight + offsetTop}px`,
|
|
85
|
+
width: `${(100 / cellCount) * (end - start)}%`,
|
|
86
|
+
opacity: visible ? '1' : '0',
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
VegaCalendarFullDayEventLayoutRenderer.monthViewEventOffsetTop = 26;
|
|
91
|
+
__decorate([
|
|
92
|
+
MapToComponentField()
|
|
93
|
+
], VegaCalendarFullDayEventLayoutRenderer.prototype, "eventItemRenderer", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
MapToComponentField()
|
|
96
|
+
], VegaCalendarFullDayEventLayoutRenderer.prototype, "viewMode", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
MapToComponentField()
|
|
99
|
+
], VegaCalendarFullDayEventLayoutRenderer.prototype, "calendarView", void 0);
|
package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-renderer.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Fragment, h } from '@stencil/core';
|
|
8
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
/** The `VegaCalendarRenderer` class in TypeScript React renders switch panel and view components for a calendar using VegaSlimmer. */
|
|
10
|
+
export class VegaCalendarRenderer extends VegaSlimmer {
|
|
11
|
+
/**
|
|
12
|
+
* The render function returns a Fragment containing the rendered output of switchPanelRenderer and viewRenderer components.
|
|
13
|
+
*
|
|
14
|
+
* @returns {HTMLElement} An HTMLElement containing the rendered output of the switchPanelRenderer and viewRenderer components.
|
|
15
|
+
*/
|
|
16
|
+
render() {
|
|
17
|
+
return (h(Fragment, null,
|
|
18
|
+
this.switchPanelRenderer.render(),
|
|
19
|
+
this.viewRenderer.render()));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
__decorate([
|
|
23
|
+
MapToComponentField()
|
|
24
|
+
], VegaCalendarRenderer.prototype, "switchPanelRenderer", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
MapToComponentField()
|
|
27
|
+
], VegaCalendarRenderer.prototype, "viewRenderer", void 0);
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { h } from '@stencil/core';
|
|
8
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/domNodeSubjectObserverFactory';
|
|
10
|
+
import { VegaChange, VegaClick } from '../../../../../helpers/event-manager/eventID/vegaEventId';
|
|
11
|
+
import { VegaInternalIconManager } from '../../../../../helpers/icon/internal-icon-manager';
|
|
12
|
+
import chevronRight from '../../../../../global/icons/chevron-right';
|
|
13
|
+
import chevronLeft from '../../../../../global/icons/chevron-left';
|
|
14
|
+
import { getMonthName } from '../../../utils';
|
|
15
|
+
/** The `VegaCalendarSwitchPanelRenderer` class in TypeScript React renders a calendar switch panel with date navigation, view selection, and action buttons. */
|
|
16
|
+
export class VegaCalendarSwitchPanelRenderer extends VegaSlimmer {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
/**
|
|
20
|
+
* This function is responsible for updating the `viewMode` property of the `VegaCalendarSwitchPanelRenderer` class with the value extracted from the `input` parameter.
|
|
21
|
+
*
|
|
22
|
+
* @param {NotifyObserverPayload<VegaCalendarViewModeType>} input mark which view should be selected
|
|
23
|
+
*/
|
|
24
|
+
this.handleViewChange = (input) => {
|
|
25
|
+
this.calendarViewController.setViewMode(input.detail);
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* reset view content to today
|
|
29
|
+
*/
|
|
30
|
+
this.todayButtonClick = () => {
|
|
31
|
+
this.currentPeriodController.setCurrentPeriod(this.currentPeriod.now());
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* update view content after click next button
|
|
35
|
+
*/
|
|
36
|
+
this.nextButtonClick = () => {
|
|
37
|
+
this.currentPeriodController.setCurrentPeriod(this.currentPeriod.next());
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* update view content after click previous button
|
|
41
|
+
*/
|
|
42
|
+
this.prevButtonClick = () => {
|
|
43
|
+
this.currentPeriodController.setCurrentPeriod(this.currentPeriod.previous());
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* get the switch panel container element
|
|
48
|
+
*
|
|
49
|
+
* @returns {HTMLElement} container element
|
|
50
|
+
*/
|
|
51
|
+
getSwitchPanelRef() {
|
|
52
|
+
return this.switchPanelRef;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* calendar switch panel with date switch, view switch, add new button, and more action components.
|
|
56
|
+
*
|
|
57
|
+
* @returns {HTMLElement} html element
|
|
58
|
+
*/
|
|
59
|
+
render() {
|
|
60
|
+
return (h("vega-flex", { direction: "row", gap: "size-16", justifyContent: "space-between", alignItems: "center", class: "calendar-switch-panel", ref: (node) => (this.switchPanelRef = node) },
|
|
61
|
+
this.renderDateSwitch(),
|
|
62
|
+
h("div", { class: "calendar-view-switch-container" }, this.renderViewSwitch())));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The `renderDateSwitch` function returns a container with buttons for switching dates and displaying the current date.
|
|
66
|
+
*
|
|
67
|
+
* @returns {HTMLDivElement} action button elements container.
|
|
68
|
+
*/
|
|
69
|
+
renderDateSwitch() {
|
|
70
|
+
return (h("div", { class: "calendar-date-switch-container" },
|
|
71
|
+
h("vega-button", { variant: "secondary", size: "small", ref: (button) => {
|
|
72
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.todayButtonClick);
|
|
73
|
+
} }, "Today"),
|
|
74
|
+
h("vega-button-circle", { variant: "secondary", size: "small", icon: VegaInternalIconManager.getIconKey('chevron-left'), label: "previous", showTooltip: false, ref: (button) => {
|
|
75
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.prevButtonClick);
|
|
76
|
+
} }),
|
|
77
|
+
h("vega-button-circle", { variant: "secondary", size: "small", icon: VegaInternalIconManager.getIconKey('chevron-right'), label: "next", showTooltip: false, ref: (button) => {
|
|
78
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(button, VegaClick, this.nextButtonClick);
|
|
79
|
+
} }),
|
|
80
|
+
this.renderCurrentPeriod()));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The function `renderCurrentPeriod` returns an HTML element displaying the view date content summary info.
|
|
84
|
+
*
|
|
85
|
+
* @returns {HTMLVegaFontElement} The text content inside the element is "Current Date Test".
|
|
86
|
+
*/
|
|
87
|
+
renderCurrentPeriod() {
|
|
88
|
+
return (h("vega-font", { class: "calendar-current-date", variant: "font-field-label", color: "text-primary" }, this.getViewDateSummary()));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The function `renderViewSwitch` returns a JSX element for rendering a segment control component in a TypeScript React application.
|
|
92
|
+
*
|
|
93
|
+
* @returns {HTMLElement} An HTMLElement containing a vega-segment-control element with specific attributes and event handling.
|
|
94
|
+
*/
|
|
95
|
+
renderViewSwitch() {
|
|
96
|
+
return (h("vega-segment-control", { segments: VegaCalendarSwitchPanelRenderer.views, size: "small", variant: "text-only", selected: this.viewMode, ref: (node) => {
|
|
97
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaChange, this.handleViewChange);
|
|
98
|
+
} }));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get the view content date summary info, such as `January, 2024` or `10 January, 2024` or `28 December, 2023 - 3 January, 2024`
|
|
102
|
+
*
|
|
103
|
+
* @returns {string} string
|
|
104
|
+
*/
|
|
105
|
+
getViewDateSummary() {
|
|
106
|
+
const currentDate = this.currentPeriod.current;
|
|
107
|
+
let result = '';
|
|
108
|
+
switch (this.viewMode) {
|
|
109
|
+
case 'day':
|
|
110
|
+
result = `${currentDate.date} ${getMonthName(currentDate.toDate())}, ${currentDate.year}`;
|
|
111
|
+
break;
|
|
112
|
+
case 'week': {
|
|
113
|
+
const start = this.currentPeriod.startDate;
|
|
114
|
+
const end = this.currentPeriod.endDate;
|
|
115
|
+
result = `${start.date} ${getMonthName(start.toDate())}${start.year === end.year ? '' : ', ' + start.year} - ${end.date} ${getMonthName(end.toDate())}, ${end.year}`;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
case 'month':
|
|
119
|
+
result = `${getMonthName(currentDate.toDate())}, ${currentDate.year}`;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
(() => {
|
|
126
|
+
VegaInternalIconManager.register({
|
|
127
|
+
'chevron-right': chevronRight,
|
|
128
|
+
'chevron-left': chevronLeft,
|
|
129
|
+
});
|
|
130
|
+
})();
|
|
131
|
+
VegaCalendarSwitchPanelRenderer.views = [
|
|
132
|
+
{ text: 'Day', key: 'day' },
|
|
133
|
+
{ text: 'Week', key: 'week' },
|
|
134
|
+
{ text: 'Month', key: 'month' },
|
|
135
|
+
];
|
|
136
|
+
__decorate([
|
|
137
|
+
MapToComponentField()
|
|
138
|
+
], VegaCalendarSwitchPanelRenderer.prototype, "viewMode", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
MapToComponentField()
|
|
141
|
+
], VegaCalendarSwitchPanelRenderer.prototype, "calendarView", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
MapToComponentField()
|
|
144
|
+
], VegaCalendarSwitchPanelRenderer.prototype, "currentPeriod", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
MapToComponentField()
|
|
147
|
+
], VegaCalendarSwitchPanelRenderer.prototype, "currentPeriodController", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
MapToComponentField()
|
|
150
|
+
], VegaCalendarSwitchPanelRenderer.prototype, "calendarViewController", void 0);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { h } from '@stencil/core';
|
|
8
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
/** renders different views based on the specified view mode using month, week, and day view render. */
|
|
10
|
+
export class VegaCalendarViewRenderer extends VegaSlimmer {
|
|
11
|
+
/**
|
|
12
|
+
* render the calendar month/week/day view
|
|
13
|
+
*
|
|
14
|
+
* @returns {HTMLElement} html element
|
|
15
|
+
*/
|
|
16
|
+
render() {
|
|
17
|
+
return (h("div", { class: `calendar-view calendar-view-${this.viewMode}` }, this.viewMode === 'month'
|
|
18
|
+
? this.monthViewRenderer.render()
|
|
19
|
+
: this.viewWithTimeRenderer.render()));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
__decorate([
|
|
23
|
+
MapToComponentField()
|
|
24
|
+
], VegaCalendarViewRenderer.prototype, "viewMode", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
MapToComponentField()
|
|
27
|
+
], VegaCalendarViewRenderer.prototype, "monthViewRenderer", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
MapToComponentField()
|
|
30
|
+
], VegaCalendarViewRenderer.prototype, "viewWithTimeRenderer", void 0);
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Fragment, h } from '@stencil/core';
|
|
8
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import { VegaCalendarEventItemRenderer } from '../../../common/renderers/vega-calendar-event-item-renderer';
|
|
10
|
+
export class VegaCalendarFullDayEventRenderer extends VegaSlimmer {
|
|
11
|
+
/**
|
|
12
|
+
* render current preiod all day events
|
|
13
|
+
*
|
|
14
|
+
* @returns {HTMLElement} event element
|
|
15
|
+
*/
|
|
16
|
+
render() {
|
|
17
|
+
const viewSource = this.calendarView.dateItems[0];
|
|
18
|
+
const events = viewSource.map((calendarDate) => {
|
|
19
|
+
return this.calendarEventController
|
|
20
|
+
.getCurrentDateEvents(calendarDate)
|
|
21
|
+
.filter((eventItem) => eventItem.isAllDayEvent || eventItem.isGroupEvent());
|
|
22
|
+
});
|
|
23
|
+
const orderEvents = this.fullDayEventLayoutRenderer.sortLongEvents(events);
|
|
24
|
+
return (h("div", { class: "calendar-view-event-all" }, viewSource.map((item, index) => (h("div", { class: "event-all-col border-divider-left", key: item.date }, this.renderCurrentFullDayEvents(orderEvents[index], index))))));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* render current date all day events
|
|
28
|
+
*
|
|
29
|
+
* @param {Nullable<CalendarEvent>[]} events calendar events
|
|
30
|
+
* @param {number} currentViewIndex the current date index of the array
|
|
31
|
+
* @returns {HTMLVegaCalendarEventElement[]} event component array
|
|
32
|
+
*/
|
|
33
|
+
renderCurrentFullDayEvents(events, currentViewIndex) {
|
|
34
|
+
const height = events.length * VegaCalendarEventItemRenderer.backgroundColorModeEventHeight - 2;
|
|
35
|
+
return (h(Fragment, null,
|
|
36
|
+
h("div", { class: "placeholder-block", style: { height: height + 'px' } },
|
|
37
|
+
h("span", null,
|
|
38
|
+
events.length,
|
|
39
|
+
" events")),
|
|
40
|
+
this.fullDayEventLayoutRenderer.render(events, currentViewIndex)));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
__decorate([
|
|
44
|
+
MapToComponentField()
|
|
45
|
+
], VegaCalendarFullDayEventRenderer.prototype, "calendarView", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
MapToComponentField()
|
|
48
|
+
], VegaCalendarFullDayEventRenderer.prototype, "calendarEventController", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
MapToComponentField()
|
|
51
|
+
], VegaCalendarFullDayEventRenderer.prototype, "eventItemRenderer", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
MapToComponentField()
|
|
54
|
+
], VegaCalendarFullDayEventRenderer.prototype, "fullDayEventLayoutRenderer", void 0);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { VegaCalendarBaseEventLayout } from '../../../../common/layout/baseEventLayout';
|
|
2
|
+
/** This TypeScript class, VegaCalendarDayViewTimedEventLayout, manages the layout of events in a day view calendar. */
|
|
3
|
+
export class VegaCalendarDayViewTimedEventLayout extends VegaCalendarBaseEventLayout {
|
|
4
|
+
/**
|
|
5
|
+
* The constructor function initializes the columns property with the provided array of VegaCalendarDayViewTimedEventLayoutColumn objects.
|
|
6
|
+
*
|
|
7
|
+
* @param {VegaCalendarDayViewTimedEventLayoutColumn[]} columns - An array of VegaCalendarDayViewTimedEventLayoutColumn objects.
|
|
8
|
+
*/
|
|
9
|
+
constructor(columns) {
|
|
10
|
+
super();
|
|
11
|
+
this.cells = columns;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The function `getEventColumnsSpannedCount` calculates the number of columns spanned by a given calendar event in a day view layout.
|
|
15
|
+
*
|
|
16
|
+
* @param {CalendarEvent} eventItem - The `getEventColumnsSpannedCount` function takes a `CalendarEvent` object as the `eventItem` parameter. This function calculates the number of columns spanned by the given event within the calendar view.
|
|
17
|
+
* @returns {number} The function `getEventColumnsSpannedCount` returns the number of columns spanned by the given `eventItem` in the `VegaCalendarDayViewTimedEventLayoutColumn` array `columns`.
|
|
18
|
+
*/
|
|
19
|
+
getEventColumnsSpannedCount(eventItem) {
|
|
20
|
+
const eventColumnIndex = this.cells.findIndex((column) => {
|
|
21
|
+
return column.getEventStartIndex(eventItem) >= 0;
|
|
22
|
+
});
|
|
23
|
+
let count = eventColumnIndex + 1;
|
|
24
|
+
if (eventColumnIndex < this.cells.length - 1) {
|
|
25
|
+
this.cells
|
|
26
|
+
.slice(eventColumnIndex + 1)
|
|
27
|
+
.forEach((column) => {
|
|
28
|
+
if (column.hasOverlapEvent(eventItem)) {
|
|
29
|
+
count++;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return count;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getTimeIndex } from '../../../../../utils';
|
|
2
|
+
import { VegaCalendarBaseEventLayoutCell } from '../../../../common/layout/baseEventLayoutCell';
|
|
3
|
+
/** The class `VegaCalendarDayViewEventLayoutColumn` manages the layout of events in a day view calendar by storing event slots and providing methods to interact with them. */
|
|
4
|
+
export class VegaCalendarDayViewTimedEventLayoutColumn extends VegaCalendarBaseEventLayoutCell {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.slots = VegaCalendarDayViewTimedEventLayoutColumn.defaultSlots;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The function `hasOverlapEvent` checks if a given calendar event overlaps with existing events in the calendar.
|
|
11
|
+
*
|
|
12
|
+
* @param {CalendarEvent} eventItem - The `eventItem` parameter in the `hasOverlapEvent` function represents a `CalendarEvent` object that contains information about an event such as its start time, end time, and possibly other details related to the event.
|
|
13
|
+
* @returns {boolean} The function `hasOverlapEvent` returns a boolean value indicating whether there is an overlap in the calendar event slots. If there is an overlap, it returns `true`, otherwise it returns `false`.
|
|
14
|
+
*/
|
|
15
|
+
hasOverlapEvent(eventItem) {
|
|
16
|
+
const [start, end] = this.getIndexRangeFromEvent(eventItem);
|
|
17
|
+
let overlapFlag = false;
|
|
18
|
+
for (let i = start; i < end; i++) {
|
|
19
|
+
if (this.slots[i]) {
|
|
20
|
+
overlapFlag = true;
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return overlapFlag;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The function `updateColumnSlots` updates the slots array by replacing a range of elements with a given event item.
|
|
28
|
+
*
|
|
29
|
+
* @param {CalendarEvent} eventItem - The `eventItem` parameter is a `CalendarEvent` object that represents an event in a calendar.
|
|
30
|
+
*/
|
|
31
|
+
updateSlots(eventItem) {
|
|
32
|
+
const [start, end] = this.getIndexRangeFromEvent(eventItem);
|
|
33
|
+
if (end > start) {
|
|
34
|
+
this.slots = this.slots
|
|
35
|
+
.slice(0, start)
|
|
36
|
+
.concat(Array(end - start).fill(eventItem), this.slots.slice(end));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The function `getIndexRangeFromEvent` takes a `CalendarEvent` object and returns an array of time indices based on the start and end times of the event.
|
|
41
|
+
*
|
|
42
|
+
* @param {CalendarEvent} eventItem - A CalendarEvent object containing information about a specific event in a calendar, such as its start time and end time.
|
|
43
|
+
* @returns {number[]} An array of two numbers representing the index range of the start and end times of the given CalendarEvent.
|
|
44
|
+
*/
|
|
45
|
+
getIndexRangeFromEvent(eventItem) {
|
|
46
|
+
const { startTime, endTime } = eventItem;
|
|
47
|
+
return [getTimeIndex(startTime), getTimeIndex(endTime)];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
VegaCalendarDayViewTimedEventLayoutColumn.defaultSlots = Array(96).fill(null);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { VegaCalendarBaseEventLayoutGenerator } from '../../../../common/layout/baseEventLayoutGenerator';
|
|
2
|
+
import { VegaCalendarDayViewTimedEventLayout } from './dayViewTimedEventLayout';
|
|
3
|
+
import { VegaCalendarDayViewTimedEventLayoutColumn } from './dayViewTimedEventLayoutColumn';
|
|
4
|
+
/** The `VegaCalendarDayViewEventLayoutGenerator` class in TypeScript generates a layout for calendar events in a day view. */
|
|
5
|
+
export class VegaCalendarDayViewTimedEventLayoutGenerator extends VegaCalendarBaseEventLayoutGenerator {
|
|
6
|
+
/**
|
|
7
|
+
* The function generates a layout for displaying calendar events in a day view.
|
|
8
|
+
*
|
|
9
|
+
* @param {CalendarEvent[]} calendarEvents - CalendarEvent[] - an array of calendar events containing information such as event title, start time, end time, and other relevant details.
|
|
10
|
+
* @returns {VegaCalendarDayViewTimedEventLayout} A `VegaCalendarDayViewTimedEventLayout` object is being returned, which is constructed using the `layoutColumns` array containing `VegaCalendarDayViewTimedEventLayoutColumn` objects.
|
|
11
|
+
*/
|
|
12
|
+
generate(calendarEvents) {
|
|
13
|
+
const layoutColumns = [
|
|
14
|
+
new VegaCalendarDayViewTimedEventLayoutColumn(),
|
|
15
|
+
];
|
|
16
|
+
calendarEvents.forEach((eventItem) => {
|
|
17
|
+
this.addCurrentEventToLayout(layoutColumns, eventItem);
|
|
18
|
+
});
|
|
19
|
+
return new VegaCalendarDayViewTimedEventLayout(layoutColumns);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The function creates a new instance of VegaCalendarDayViewTimedEventLayoutColumn.
|
|
23
|
+
*
|
|
24
|
+
* @returns {VegaCalendarDayViewTimedEventLayoutColumn} An instance of the class `VegaCalendarDayViewTimedEventLayoutColumn` is being returned.
|
|
25
|
+
*/
|
|
26
|
+
createNewLayoutCell() {
|
|
27
|
+
return new VegaCalendarDayViewTimedEventLayoutColumn();
|
|
28
|
+
}
|
|
29
|
+
}
|