@globalpayments/vega 2.13.1 → 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-9633dc88.js → app-globals-6b5136b1.js} +4 -4
- package/dist/cjs/{childNodesEventPreventSlimmer-29128c2a.js → childNodesEventPreventSlimmer-5b352793.js} +1 -1
- package/dist/cjs/{componentUsageRuntimeMetrics-b21c694f.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-44d5e755.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-672f20ec.js → index-3183748d.js} +27 -11
- package/dist/cjs/{index-1aa6f0c9.js → index-b8881ddc.js} +3 -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 +7 -7
- 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 +7 -6
- 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 +7 -7
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +7 -27
- package/dist/cjs/vega-table_8.cjs.entry.js +16 -14
- 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 +1 -1
- 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-table/vega-table-row/slimmers/controllers/vega-table-row-click-controller.js +7 -5
- 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 -1
- package/dist/collection/helpers/vega-telemetry-helper/vegaEnvManager.js +2 -2
- package/dist/esm/{app-globals-f49e68bc.js → app-globals-cf903368.js} +4 -4
- package/dist/esm/{childNodesEventPreventSlimmer-86a1593c.js → childNodesEventPreventSlimmer-ca73e6c1.js} +1 -1
- package/dist/esm/{componentUsageRuntimeMetrics-9f888049.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-9df5a1a3.js → featureFlagController-816491ad.js} +1 -1
- package/dist/esm/{formFieldControllerSlimmer-04953f74.js → formFieldControllerSlimmer-2cc9eec5.js} +1 -1
- package/dist/esm/{index-27e4eb43.js → index-4126a006.js} +27 -11
- package/dist/esm/index-c3505689.js +4 -0
- package/dist/esm/{index-41dc8dc1.js → index-dd06e5e7.js} +3 -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 +10 -10
- 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 +9 -8
- 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 +7 -7
- package/dist/esm/vega-tab-group_2.entry.js +6 -26
- package/dist/esm/vega-table_8.entry.js +18 -16
- 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 +4 -4
- 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.d.ts +82 -1
- 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-3185ee03.entry.js → p-0bf26a50.entry.js} +1 -1
- package/dist/vega/{p-e89db39c.entry.js → p-10c41ccc.entry.js} +1 -1
- package/dist/vega/{p-d361ef78.js → p-1265732f.js} +1 -1
- package/dist/vega/{p-5df33dea.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-ade08379.entry.js → p-1b83652c.entry.js} +1 -1
- package/dist/vega/p-1bc5b3bc.js +1 -0
- package/dist/vega/{p-f27998de.entry.js → p-1d628d23.entry.js} +1 -1
- package/dist/vega/{p-797b24d3.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-cffd96c9.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-a09efd3b.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-a022bf87.entry.js → p-485e71d4.entry.js} +1 -1
- package/dist/vega/{p-d3605b1a.entry.js → p-4dacc0b7.entry.js} +1 -1
- package/dist/vega/p-50219611.entry.js +1 -0
- package/dist/vega/{p-a62f4fbf.entry.js → p-5ba654a4.entry.js} +1 -1
- package/dist/vega/{p-210737f2.js → p-5cad29f5.js} +1 -1
- package/dist/vega/{p-5abced5e.entry.js → p-60f511cf.entry.js} +1 -1
- package/dist/vega/p-61f18887.js +1 -0
- package/dist/vega/p-6bdc4407.js +1 -0
- package/dist/vega/{p-194a3f8f.entry.js → p-6d482bec.entry.js} +1 -1
- package/dist/vega/{p-5b5625a0.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-bbbcfd09.entry.js → p-77b39fe7.entry.js} +1 -1
- package/dist/vega/p-783bcc7b.entry.js +1 -0
- package/dist/vega/{p-e49ec016.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-fbc0c261.entry.js → p-897a3a9b.entry.js} +1 -1
- package/dist/vega/{p-da12b2da.entry.js → p-8bbac798.entry.js} +1 -1
- package/dist/vega/{p-a03b1bad.entry.js → p-9047ee85.entry.js} +1 -1
- package/dist/vega/p-90d4e1c6.entry.js +1 -0
- package/dist/vega/{p-07abc29b.entry.js → p-9443e399.entry.js} +1 -1
- package/dist/vega/{p-6cb26711.entry.js → p-969ba15a.entry.js} +1 -1
- package/dist/vega/{p-3d220905.js → p-999e1318.js} +1 -1
- package/dist/vega/{p-7653f0c2.js → p-99c8fe92.js} +1 -1
- package/dist/vega/{p-e6848e33.entry.js → p-9b396c06.entry.js} +1 -1
- package/dist/vega/p-9f1151cd.entry.js +1 -0
- package/dist/vega/{p-f5f0545e.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-8bdb7c1d.entry.js → p-a9f61d9e.entry.js} +1 -1
- package/dist/vega/p-aae8855d.js +1 -0
- package/dist/vega/{p-fa38e1c8.entry.js → p-b58e2fae.entry.js} +1 -1
- package/dist/vega/p-b623aad1.entry.js +1 -0
- package/dist/vega/{p-86002ca4.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-e0d2c9f6.entry.js → p-b8b4bc6c.entry.js} +1 -1
- package/dist/vega/p-ba232064.entry.js +1 -0
- package/dist/vega/{p-22101a5f.entry.js → p-bb52d620.entry.js} +1 -1
- package/dist/vega/p-c47d4933.js +1 -0
- package/dist/vega/{p-c902a586.entry.js → p-cd05ab96.entry.js} +1 -1
- package/dist/vega/{p-41413ea4.entry.js → p-ce0af8db.entry.js} +1 -1
- package/dist/vega/{p-31ec4b52.entry.js → p-ceec3241.entry.js} +1 -1
- package/dist/vega/{p-761c458e.entry.js → p-d224e798.entry.js} +1 -1
- package/dist/vega/p-d909c9b4.entry.js +1 -0
- package/dist/vega/{p-bbc8b4f5.entry.js → p-db60ccf5.entry.js} +1 -1
- package/dist/vega/p-e02c5199.entry.js +1 -0
- package/dist/vega/{p-bd350fb7.entry.js → p-e1ecfa0e.entry.js} +1 -1
- package/dist/vega/{p-7b127de4.js → p-e32b7a38.js} +1 -1
- package/dist/vega/{p-4aaa9e0d.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-bf877997.entry.js → p-ef6e7563.entry.js} +1 -1
- package/dist/vega/p-f1d8fd1c.js +1 -0
- package/dist/vega/{p-629acb2e.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 -2
- package/dist/vega/p-08b48e61.entry.js +0 -1
- package/dist/vega/p-0d51b10e.entry.js +0 -1
- package/dist/vega/p-0ee347fd.entry.js +0 -1
- package/dist/vega/p-1fe9e4b3.js +0 -1
- package/dist/vega/p-26be7725.js +0 -1
- package/dist/vega/p-2d38dcab.entry.js +0 -1
- package/dist/vega/p-2ea7b083.entry.js +0 -1
- package/dist/vega/p-3205e6ec.entry.js +0 -1
- package/dist/vega/p-33ac74cb.entry.js +0 -1
- package/dist/vega/p-60dbd035.entry.js +0 -1
- package/dist/vega/p-64020a69.entry.js +0 -1
- package/dist/vega/p-79ccf076.entry.js +0 -1
- package/dist/vega/p-7d2ed978.entry.js +0 -1
- package/dist/vega/p-8da4b720.js +0 -1
- package/dist/vega/p-91160d38.js +0 -1
- package/dist/vega/p-9745f18f.entry.js +0 -1
- package/dist/vega/p-9820bd52.entry.js +0 -1
- package/dist/vega/p-9c726541.entry.js +0 -1
- package/dist/vega/p-9e70473b.js +0 -1
- package/dist/vega/p-ac23cfa6.js +0 -1
- package/dist/vega/p-ad2d02c5.entry.js +0 -1
- package/dist/vega/p-aeef2799.js +0 -1
- package/dist/vega/p-b7a0f473.entry.js +0 -1
- package/dist/vega/p-cb06eb1c.entry.js +0 -1
- package/dist/vega/p-db6e73fc.entry.js +0 -1
- package/dist/vega/p-fc30b986.entry.js +0 -1
- package/dist/vega/p-ff3ae862.entry.js +0 -1
- package/dist/vega/p-ffa25bf2.entry.js +0 -1
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { CalendarEvent } from '../../../../../../../../helpers/calendar/calendar-event';
|
|
2
|
+
import { VegaCalendarDayViewTimedEventLayoutGenerator } from '../dayViewTimedEventLayoutGenerator';
|
|
3
|
+
const mockEvents = [
|
|
4
|
+
{
|
|
5
|
+
key: '0',
|
|
6
|
+
title: 'Event 0',
|
|
7
|
+
startDate: '07/08/2024',
|
|
8
|
+
endDate: '07/08/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/08/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
|
+
key: '2',
|
|
31
|
+
title: 'Event 2',
|
|
32
|
+
startDate: '07/08/2024',
|
|
33
|
+
endDate: '07/08/2024',
|
|
34
|
+
startTime: '10:30',
|
|
35
|
+
endTime: '11:30',
|
|
36
|
+
isAllDay: false,
|
|
37
|
+
repeat: 'none',
|
|
38
|
+
disabled: false,
|
|
39
|
+
variant: 'secondary',
|
|
40
|
+
color: '#806BFF',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
key: '3',
|
|
44
|
+
title: 'Event 3',
|
|
45
|
+
startDate: '07/08/2024',
|
|
46
|
+
endDate: '07/08/2024',
|
|
47
|
+
startTime: '10:45',
|
|
48
|
+
endTime: '11:00',
|
|
49
|
+
isAllDay: false,
|
|
50
|
+
repeat: 'none',
|
|
51
|
+
disabled: false,
|
|
52
|
+
variant: 'secondary',
|
|
53
|
+
color: '#806BFF',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
key: '4',
|
|
57
|
+
title: 'Event 4',
|
|
58
|
+
startDate: '07/08/2024',
|
|
59
|
+
endDate: '07/08/2024',
|
|
60
|
+
startTime: '11:00',
|
|
61
|
+
endTime: '12:00',
|
|
62
|
+
isAllDay: false,
|
|
63
|
+
repeat: 'none',
|
|
64
|
+
disabled: false,
|
|
65
|
+
variant: 'secondary',
|
|
66
|
+
color: '#806BFF',
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
describe('VegaCalendarDayViewEventLayoutGenerator', () => {
|
|
70
|
+
it('VegaCalendarDayViewEventLayoutGenerator#generate', () => {
|
|
71
|
+
const generator = new VegaCalendarDayViewTimedEventLayoutGenerator();
|
|
72
|
+
const calendarEvents = mockEvents.map((item) => new CalendarEvent(item));
|
|
73
|
+
const layout = generator.generate(calendarEvents);
|
|
74
|
+
expect(layout.eventLayoutCells.length).toEqual(3);
|
|
75
|
+
expect(layout.getEventColumnsSpannedCount(calendarEvents[2])).toEqual(3);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
/** The `VegaCalendarDayViewEventLayoutRenderer` class in TypeScript React renders event layouts for a day view calendar. */
|
|
10
|
+
export class VegaCalendarDayViewEventLayoutRenderer extends VegaSlimmer {
|
|
11
|
+
/**
|
|
12
|
+
* The `render` function in TypeScript React renders a layout of calendar events for a day view.
|
|
13
|
+
*
|
|
14
|
+
* @param {VegaCalendarDayViewTimedEventLayout} layout - The `layout` parameter in the `render` function is
|
|
15
|
+
* of type `VegaCalendarDayViewTimedEventLayout`, which contains information about the layout of events for
|
|
16
|
+
* a day view in a calendar. It has properties like `eventLayoutColumns`, which is an array of `VegaCalendarDayViewEvent
|
|
17
|
+
* @returns {HTMLElement[]} An array of HTMLElements representing the rendered event nodes based on the provided layout and event data.
|
|
18
|
+
*/
|
|
19
|
+
render(layout) {
|
|
20
|
+
const layoutColumns = layout.eventLayoutCells;
|
|
21
|
+
const eventNodes = [];
|
|
22
|
+
layoutColumns.forEach((columns, index) => {
|
|
23
|
+
let renderEvent = columns.getEventBySlotIndex(0);
|
|
24
|
+
let start = 0;
|
|
25
|
+
for (let i = 0; i < VegaCalendarDayViewEventLayoutRenderer.totalNumberOfCells; i++) {
|
|
26
|
+
const currentEvent = columns.getEventBySlotIndex(i);
|
|
27
|
+
if (currentEvent !== renderEvent) {
|
|
28
|
+
if (renderEvent) {
|
|
29
|
+
eventNodes.push(h("div", { key: index, class: "time-event-block", style: this.getTimeEventStyle(start, i, index, layout.getEventColumnsSpannedCount(renderEvent)) }, this.eventItemRenderer.render(renderEvent, {
|
|
30
|
+
'day-event': true,
|
|
31
|
+
'bg-shadow': index > 0,
|
|
32
|
+
})));
|
|
33
|
+
}
|
|
34
|
+
renderEvent = currentEvent;
|
|
35
|
+
start = i;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return eventNodes;
|
|
40
|
+
}
|
|
41
|
+
/*
|
|
42
|
+
* The below method is e2e-test covered in
|
|
43
|
+
* @see{module:vega-calendar-render-timed-event-correct}
|
|
44
|
+
*/
|
|
45
|
+
/* istanbul ignore next */
|
|
46
|
+
/**
|
|
47
|
+
* This function calculates and returns the style properties for positioning and sizing a calendar event within a grid layout.
|
|
48
|
+
*
|
|
49
|
+
* @param {number} startIndex - The `startIndex` parameter represents the index of the starting cell for the time event in the calendar grid.
|
|
50
|
+
* @param {number} endIndex - The `endIndex` parameter represents the index of the end position of the time event within a column. It indicates where the time event ends vertically within the column layout.
|
|
51
|
+
* @param {number} columnIndex - The `columnIndex` parameter represents the index of the column in which the event is being displayed. It is used to calculate the `left` position of the event element within the container based on the total number of columns spanned by the event.
|
|
52
|
+
* @param {number} columnsSpannedCount - The `columnsSpannedCount` parameter represents the number of columns spanned by the event in a calendar layout. It is used to calculate the left position of the event within the calendar grid.
|
|
53
|
+
* @returns {VegaCalendarEventStyle} The function `getTimeEventStyle` returns an object of type `VegaCalendarEventStyle` with properties for position, left, top, width, height, and zIndex.
|
|
54
|
+
*/
|
|
55
|
+
getTimeEventStyle(startIndex, endIndex, columnIndex, columnsSpannedCount) {
|
|
56
|
+
const left = columnIndex * (1 / columnsSpannedCount);
|
|
57
|
+
return {
|
|
58
|
+
position: 'absolute',
|
|
59
|
+
left: `${left * 100}%`,
|
|
60
|
+
top: `${(100 / VegaCalendarDayViewEventLayoutRenderer.totalNumberOfCells) * startIndex}%`,
|
|
61
|
+
width: `calc(100% - ${left * 100}%)`,
|
|
62
|
+
height: `${(100 / VegaCalendarDayViewEventLayoutRenderer.totalNumberOfCells) * (endIndex - startIndex)}%`,
|
|
63
|
+
zIndex: columnIndex > 0 ? `${columnIndex}` : null,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
VegaCalendarDayViewEventLayoutRenderer.totalNumberOfCells = 24 * 4;
|
|
68
|
+
__decorate([
|
|
69
|
+
MapToComponentField()
|
|
70
|
+
], VegaCalendarDayViewEventLayoutRenderer.prototype, "eventItemRenderer", void 0);
|