@globalpayments/vega 2.15.0 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-6b5136b1.js → app-globals-4e0416c1.js} +15 -8
- package/dist/cjs/{childNodesEventPreventSlimmer-5b352793.js → childNodesEventPreventSlimmer-6848c3cf.js} +13 -1
- package/dist/cjs/{eventEmitSlimmer-ea57144a.js → eventEmitSlimmer-1d70a720.js} +1 -1
- package/dist/cjs/{formFieldControllerSlimmer-9271a8b8.js → formFieldControllerSlimmer-8b54f14d.js} +1 -1
- package/dist/cjs/index.cjs.js +11 -10
- package/dist/cjs/{internalVegaEventManager-543c20cb.js → internalVegaEventManager-743a124d.js} +2 -2
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/{subStateObserverSlimmer-48ad20a1.js → subStateObserverSlimmer-60e4d6da.js} +28 -14
- package/dist/cjs/vega-accordion.cjs.entry.js +4 -4
- package/dist/cjs/vega-app-header-button.cjs.entry.js +4 -4
- package/dist/cjs/vega-banner.cjs.entry.js +3 -3
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-circle.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-group_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
- package/dist/cjs/vega-button.cjs.entry.js +57 -12
- package/dist/cjs/vega-calendar_2.cjs.entry.js +830 -90
- package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-chip.cjs.entry.js +4 -4
- package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
- package/dist/cjs/vega-combo-box.cjs.entry.js +6 -6
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-dialog_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +310 -184
- package/dist/cjs/vega-field-label.cjs.entry.js +4 -4
- package/dist/cjs/vega-form.cjs.entry.js +6 -6
- package/dist/cjs/vega-image-uploader.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-range.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-select.cjs.entry.js +217 -105
- package/dist/cjs/vega-input.cjs.entry.js +5 -5
- package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +4 -4
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
- package/dist/cjs/vega-popover_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +3 -3
- package/dist/cjs/vega-radio_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +7 -7
- package/dist/cjs/{index-b8881ddc.js → vega-skeleton-loader-controller-8932c0ed.js} +91 -3
- package/dist/cjs/vega-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-table_8.cjs.entry.js +6 -6
- package/dist/cjs/vega-textarea.cjs.entry.js +6 -6
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
- package/dist/cjs/vega.cjs.js +5 -5
- package/dist/cjs/{vegaEventId-d7774262.js → vegaEventId-f375a6a3.js} +2 -0
- package/dist/cjs/{vegaInternalEventId-173c4941.js → vegaInternalEventId-ac38dd4b.js} +2 -0
- package/dist/collection/components/vega-button/slimmers/renderers/vega-button-loading-renderer.js +24 -0
- package/dist/collection/components/vega-button/vega-button.css +9 -1
- package/dist/collection/components/vega-button/vega-button.js +49 -7
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.js +38 -24
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.js +54 -1
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.js +13 -21
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/baseRepeatPattern.js +61 -0
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventDailyRepeatPattern.js +70 -0
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventMonthlyRepeatPattern.js +90 -0
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventRepeatPatternFactory.js +60 -0
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventWeeklyRepeatPattern.js +163 -0
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventYearlyRepeatPattern.js +92 -0
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/test/calendarEventRepeatPatternFactory.test.js +105 -0
- package/dist/collection/components/vega-calendar/slimmers/common/layout/test/longEventLayoutGenerator.test.js +0 -5
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-switch-panel.js +1 -1
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/test/dayViewEventLayoutGenerator.test.js +0 -5
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.js +21 -4
- package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.js +45 -2
- package/dist/collection/components/vega-calendar/vega-calendar.css +2 -1
- package/dist/collection/components/vega-calendar/vega-calendar.js +51 -4
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +0 -4
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.js +14 -1
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.js +142 -0
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +16 -50
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +8 -2
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.js +1 -0
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +7 -5
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.js +1 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +5 -2
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.js +22 -40
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-items-slot-controler.js +62 -0
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-lazy-load-controller.js +2 -2
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.js +48 -0
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.js +7 -10
- package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +25 -6
- package/dist/collection/components/vega-input-select/vega-input-select.js +10 -2
- package/dist/collection/components/vega-loading-indicator/vega-loading-indicator.js +2 -2
- package/dist/collection/components/vega-skeleton/vega-skeleton.css +5 -2
- package/dist/collection/constants/ui.js +1 -1
- package/dist/collection/global/scripts/beforeVegaLoad.js +8 -0
- package/dist/collection/helpers/calendar/calendar-date.js +11 -0
- package/dist/collection/helpers/calendar/calendar-event.js +73 -24
- package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +8 -0
- package/dist/collection/helpers/calendar/calendar-period/day-period.js +1 -0
- package/dist/collection/helpers/calendar/calendar-period/month-period.js +16 -3
- package/dist/collection/helpers/calendar/calendar-period/week-period.js +1 -0
- package/dist/collection/helpers/calendar/test/calendar-event.test.js +23 -20
- package/dist/collection/helpers/event-manager/eventID/componentEventIdMap.js +2 -2
- package/dist/collection/helpers/event-manager/eventID/vegaEventId.js +1 -1
- package/dist/collection/helpers/event-manager/eventID/vegaInternalEventId.js +1 -0
- package/dist/collection/helpers/event-manager/slimmers/childNodesEventPreventSlimmer.js +12 -0
- package/dist/collection/helpers/event-manager/test/childNodesEventPreventSlimmer.test.js +14 -0
- package/dist/collection/helpers/publicApi.js +1 -0
- package/dist/collection/helpers/skeleton-loader/tests/vega-skeleton-loader-controller.test.js +139 -0
- package/dist/collection/helpers/skeleton-loader/vega-skeleton-loader-controller.js +87 -0
- package/dist/collection/helpers/slimmers/sub-state/subStateObserverSlimmer.js +27 -13
- package/dist/collection/helpers/slimmers/sub-state/test/sub-state-observer-slimmer.test.js +15 -3
- 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-cf903368.js → app-globals-ba85a900.js} +9 -2
- package/dist/esm/{childNodesEventPreventSlimmer-ca73e6c1.js → childNodesEventPreventSlimmer-d0da4527.js} +13 -1
- package/dist/esm/{eventEmitSlimmer-9c33f04e.js → eventEmitSlimmer-7b16eef9.js} +1 -1
- package/dist/esm/{formFieldControllerSlimmer-85ff874e.js → formFieldControllerSlimmer-ea050a17.js} +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/{internalVegaEventManager-e1501923.js → internalVegaEventManager-71d00966.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{subStateObserverSlimmer-354b33f6.js → subStateObserverSlimmer-2a8a615e.js} +28 -14
- package/dist/esm/vega-accordion.entry.js +4 -4
- package/dist/esm/vega-app-header-button.entry.js +4 -4
- package/dist/esm/vega-banner.entry.js +3 -3
- package/dist/esm/vega-breadcrumb.entry.js +4 -4
- package/dist/esm/vega-button-circle.entry.js +4 -4
- package/dist/esm/vega-button-group_2.entry.js +6 -6
- package/dist/esm/vega-button-link.entry.js +4 -4
- package/dist/esm/vega-button.entry.js +59 -14
- package/dist/esm/vega-calendar_2.entry.js +830 -90
- package/dist/esm/vega-carousel.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +6 -6
- package/dist/esm/vega-chip.entry.js +4 -4
- package/dist/esm/vega-color-picker.entry.js +5 -5
- package/dist/esm/vega-combo-box.entry.js +6 -6
- package/dist/esm/vega-date-picker_2.entry.js +6 -6
- package/dist/esm/vega-dialog_2.entry.js +4 -4
- package/dist/esm/vega-dropdown_5.entry.js +310 -184
- package/dist/esm/vega-field-label.entry.js +4 -4
- package/dist/esm/vega-form.entry.js +6 -6
- package/dist/esm/vega-image-uploader.entry.js +6 -6
- package/dist/esm/vega-input-credit-card.entry.js +6 -6
- package/dist/esm/vega-input-range.entry.js +6 -6
- package/dist/esm/vega-input-select.entry.js +217 -105
- package/dist/esm/vega-input.entry.js +5 -5
- package/dist/esm/vega-item-toggle.entry.js +3 -3
- package/dist/esm/vega-left-nav_5.entry.js +4 -4
- package/dist/esm/vega-loader-wrapper_2.entry.js +1 -1
- package/dist/esm/vega-page-notification_2.entry.js +1 -1
- package/dist/esm/vega-pagination.entry.js +4 -4
- package/dist/esm/vega-popover_2.entry.js +3 -3
- package/dist/esm/vega-progress-tracker.entry.js +3 -3
- package/dist/esm/vega-radio_2.entry.js +6 -6
- package/dist/esm/vega-segment-control.entry.js +3 -3
- package/dist/esm/vega-selection-tile_2.entry.js +7 -7
- package/dist/esm/{index-dd06e5e7.js → vega-skeleton-loader-controller-778b12be.js} +91 -4
- package/dist/esm/vega-skeleton.entry.js +1 -1
- package/dist/esm/vega-stepper.entry.js +6 -6
- package/dist/esm/vega-tab-group_2.entry.js +4 -4
- package/dist/esm/vega-table_8.entry.js +6 -6
- package/dist/esm/vega-textarea.entry.js +6 -6
- package/dist/esm/vega-time-picker_2.entry.js +6 -6
- package/dist/esm/vega-toggle-switch.entry.js +3 -3
- package/dist/esm/vega.js +5 -5
- package/dist/esm/{vegaEventId-680887e1.js → vegaEventId-f279bb62.js} +2 -1
- package/dist/esm/{vegaInternalEventId-600b3751.js → vegaInternalEventId-bde5d617.js} +2 -1
- package/dist/types/components/vega-button/slimmers/renderers/vega-button-loading-renderer.d.ts +13 -0
- package/dist/types/components/vega-button/vega-button.d.ts +16 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.d.ts +12 -9
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.d.ts +20 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-view-controller.d.ts +8 -12
- package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/baseRepeatPattern.d.ts +50 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventDailyRepeatPattern.d.ts +43 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventMonthlyRepeatPattern.d.ts +55 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventRepeatPatternFactory.d.ts +34 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventWeeklyRepeatPattern.d.ts +99 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventYearlyRepeatPattern.d.ts +57 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/test/calendarEventRepeatPatternFactory.test.d.ts +1 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.d.ts +8 -0
- package/dist/types/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.d.ts +23 -0
- package/dist/types/components/vega-calendar/types.d.ts +14 -2
- package/dist/types/components/vega-calendar/vega-calendar.d.ts +15 -3
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +0 -1
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.d.ts +4 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.d.ts +57 -0
- package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +7 -17
- package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.d.ts +3 -0
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +2 -1
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.d.ts +2 -19
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-items-slot-controler.d.ts +19 -0
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-lazy-load-controller.d.ts +1 -1
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.d.ts +29 -0
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.d.ts +1 -1
- package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +7 -1
- package/dist/types/components/vega-input-select/vega-input-select.d.ts +4 -2
- package/dist/types/components.d.ts +17 -1
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/helpers/calendar/calendar-date.d.ts +8 -0
- package/dist/types/helpers/calendar/calendar-event.d.ts +44 -2
- package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +10 -2
- package/dist/types/helpers/calendar/calendar-period/day-period.d.ts +1 -0
- package/dist/types/helpers/calendar/calendar-period/month-period.d.ts +12 -0
- package/dist/types/helpers/calendar/calendar-period/week-period.d.ts +1 -0
- package/dist/types/helpers/event-manager/eventID/vegaEventId.d.ts +1 -1
- package/dist/types/helpers/event-manager/eventID/vegaInternalEventId.d.ts +1 -0
- package/dist/types/helpers/event-manager/slimmers/childNodesEventPreventSlimmer.d.ts +6 -0
- package/dist/types/helpers/publicApi.d.ts +1 -0
- package/dist/types/helpers/skeleton-loader/interface.d.ts +16 -0
- package/dist/types/helpers/skeleton-loader/tests/vega-skeleton-loader-controller.test.d.ts +1 -0
- package/dist/types/helpers/skeleton-loader/vega-skeleton-loader-controller.d.ts +48 -0
- package/dist/types/helpers/slimmers/sub-state/subStateObserverSlimmer.d.ts +9 -0
- package/dist/types/types/components.type.d.ts +1 -0
- package/dist/types/types/publicApi.d.ts +1 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-692df03d.entry.js → p-0ef3d3fd.entry.js} +1 -1
- package/dist/vega/p-1080d80a.js +1 -0
- package/dist/vega/{p-6f7f9cda.entry.js → p-154a3145.entry.js} +1 -1
- package/dist/vega/{p-af72a212.entry.js → p-1bc3348e.entry.js} +1 -1
- package/dist/vega/{p-b58e2fae.entry.js → p-255aa39b.entry.js} +1 -1
- package/dist/vega/p-29654e12.entry.js +1 -0
- package/dist/vega/{p-77b39fe7.entry.js → p-2f905e6f.entry.js} +1 -1
- package/dist/vega/p-3490dd8a.entry.js +1 -0
- package/dist/vega/p-3fee5d7e.entry.js +1 -0
- package/dist/vega/p-44f4924b.js +1 -0
- package/dist/vega/p-4546cd3d.entry.js +1 -0
- package/dist/vega/p-4bc71294.entry.js +1 -0
- package/dist/vega/{p-77ff7c72.js → p-5141bcac.js} +1 -1
- package/dist/vega/{p-16608c5a.js → p-51e2c836.js} +1 -1
- package/dist/vega/{p-2bb1c1c1.entry.js → p-52bf3ce1.entry.js} +1 -1
- package/dist/vega/{p-cd05ab96.entry.js → p-5611cf4c.entry.js} +1 -1
- package/dist/vega/{p-1b3a0b54.entry.js → p-5e3f5e8e.entry.js} +1 -1
- package/dist/vega/p-642d58ff.js +1 -0
- package/dist/vega/{p-9047ee85.entry.js → p-6470d034.entry.js} +1 -1
- package/dist/vega/{p-3efc814a.entry.js → p-6877dc17.entry.js} +1 -1
- package/dist/vega/{p-1dfddf03.entry.js → p-69cf5269.entry.js} +1 -1
- package/dist/vega/{p-ceec3241.entry.js → p-70af1334.entry.js} +1 -1
- package/dist/vega/{p-f723790c.entry.js → p-7115c145.entry.js} +1 -1
- package/dist/vega/{p-de5db6c9.entry.js → p-795927c4.entry.js} +1 -1
- package/dist/vega/{p-6ad96891.entry.js → p-7c1d2dcf.entry.js} +1 -1
- package/dist/vega/p-7f9cb4c0.entry.js +1 -0
- package/dist/vega/p-82fd348b.entry.js +1 -0
- package/dist/vega/p-8543f9c3.entry.js +1 -0
- package/dist/vega/{p-d224e798.entry.js → p-8771bf66.entry.js} +1 -1
- package/dist/vega/{p-84787f59.entry.js → p-88cf7e56.entry.js} +1 -1
- package/dist/vega/{p-eb709bc0.entry.js → p-8e7d6700.entry.js} +1 -1
- package/dist/vega/p-9119ad95.entry.js +1 -0
- package/dist/vega/p-9799f3d8.entry.js +1 -0
- package/dist/vega/{p-61c96c79.entry.js → p-a6c43909.entry.js} +1 -1
- package/dist/vega/{p-e1a284b1.entry.js → p-b23ad436.entry.js} +1 -1
- package/dist/vega/{p-b708b0c2.entry.js → p-b570e6c7.entry.js} +1 -1
- package/dist/vega/{p-ba37eaad.entry.js → p-b6f68efd.entry.js} +1 -1
- package/dist/vega/{p-38a22eb3.entry.js → p-b8a47375.entry.js} +1 -1
- package/dist/vega/{p-2e59a4f1.entry.js → p-b8d45e28.entry.js} +1 -1
- package/dist/vega/{p-99c8fe92.js → p-bba06111.js} +1 -1
- package/dist/vega/{p-282648c1.entry.js → p-c1401fab.entry.js} +1 -1
- package/dist/vega/{p-a9f61d9e.entry.js → p-cafe75e8.entry.js} +1 -1
- package/dist/vega/{p-37d3b80c.entry.js → p-cf40587e.entry.js} +1 -1
- package/dist/vega/p-d126407a.js +1 -0
- package/dist/vega/{p-c849236f.entry.js → p-e373bc4d.entry.js} +1 -1
- package/dist/vega/p-eacf64be.js +1 -0
- package/dist/vega/{p-1d628d23.entry.js → p-ec4afdaa.entry.js} +1 -1
- package/dist/vega/p-f0330fcc.js +1 -0
- package/dist/vega/{p-c0ca1a1c.entry.js → p-f8a97354.entry.js} +1 -1
- package/dist/vega/{p-8c62c493.entry.js → p-f96ee751.entry.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/vega/p-009405b6.entry.js +0 -1
- package/dist/vega/p-38b01f3f.entry.js +0 -1
- package/dist/vega/p-38d19c4f.entry.js +0 -1
- package/dist/vega/p-4d2859c9.entry.js +0 -1
- package/dist/vega/p-557516a4.entry.js +0 -1
- package/dist/vega/p-592e755b.entry.js +0 -1
- package/dist/vega/p-999e1318.js +0 -1
- package/dist/vega/p-a6cb10e8.entry.js +0 -1
- package/dist/vega/p-a9c3e9fd.js +0 -1
- package/dist/vega/p-aae8855d.js +0 -1
- package/dist/vega/p-b3056874.entry.js +0 -1
- package/dist/vega/p-c47d4933.js +0 -1
- package/dist/vega/p-d978ee2c.entry.js +0 -1
- package/dist/vega/p-eb461dad.entry.js +0 -1
- package/dist/vega/p-f1d8fd1c.js +0 -1
- package/dist/vega/p-fda33444.js +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import calendarEventRepeatPatternFactory from '../../components/vega-calendar/slimmers/common/helpers/repeatPattern/calendarEventRepeatPatternFactory';
|
|
1
2
|
import { generateUUID } from '../../utils/misc';
|
|
2
3
|
import { CalendarDate } from './calendar-date';
|
|
3
4
|
const CalendarDateFormatReg = /^\d{1,2}\/\d{1,2}\/\d{4}/;
|
|
@@ -10,12 +11,20 @@ export class CalendarEvent {
|
|
|
10
11
|
* @param {VegaCalendarRawEvent} eventOptions - The `eventOptions` parameter in the constructor
|
|
11
12
|
* represents the raw event data for a Vega calendar event. It contains information such as the event
|
|
12
13
|
* title, start and end dates, location, description, and any other relevant details about the event.
|
|
14
|
+
* @param {string} eventKey If a value is not provided for `eventKey`, a UUID (Universally
|
|
15
|
+
* Unique Identifier) will be generated as a default value. This identifier is used to distinguish
|
|
16
|
+
* different events and can be helpful for tracking
|
|
13
17
|
*/
|
|
14
|
-
constructor(eventOptions) {
|
|
18
|
+
constructor(eventOptions, eventKey) {
|
|
19
|
+
// the default value is 1 when the event end date is same as start date
|
|
20
|
+
this._eventSpansDays = 1;
|
|
21
|
+
this.repeatPattern = null;
|
|
15
22
|
this._event = eventOptions;
|
|
16
|
-
this._eventKey = generateUUID();
|
|
23
|
+
this._eventKey = eventKey || generateUUID();
|
|
17
24
|
this.checkEventRequireField(eventOptions);
|
|
18
25
|
this.initDate(eventOptions);
|
|
26
|
+
this.initEventSpansDays();
|
|
27
|
+
this.initRepeatPattern();
|
|
19
28
|
}
|
|
20
29
|
/**
|
|
21
30
|
* The function returns the raw event data for a VegaCalendar event.
|
|
@@ -74,12 +83,12 @@ export class CalendarEvent {
|
|
|
74
83
|
return !!this._event.isAllDay;
|
|
75
84
|
}
|
|
76
85
|
/**
|
|
77
|
-
* The function isRepeatEvent returns a boolean value based on whether the event's
|
|
86
|
+
* The function isRepeatEvent returns a boolean value based on whether the event's repeatOptions property is not equal to 'none'.
|
|
78
87
|
*
|
|
79
88
|
* @returns {boolean} The method `isRepeatEvent` returns a boolean value indicating whether the `_event` has a repeat value other than 'none'.
|
|
80
89
|
*/
|
|
81
90
|
get isRepeatEvent() {
|
|
82
|
-
return this.
|
|
91
|
+
return this.repeatPattern !== null;
|
|
83
92
|
}
|
|
84
93
|
/**
|
|
85
94
|
* The function returns the start date property of an object.
|
|
@@ -113,16 +122,39 @@ export class CalendarEvent {
|
|
|
113
122
|
get endTime() {
|
|
114
123
|
return this._endTime;
|
|
115
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* This function returns the number of days that an event spans.
|
|
127
|
+
*
|
|
128
|
+
* @returns {number} The method `get eventSpansDays()` is returning the value of the property
|
|
129
|
+
* `_eventSpansDays`, which is of type `number`.
|
|
130
|
+
*/
|
|
131
|
+
get eventSpansDays() {
|
|
132
|
+
return this._eventSpansDays;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* The function `copyTo` copies a calendar event with updated start and end dates.
|
|
136
|
+
*
|
|
137
|
+
* @param {string} eventKey - The `eventKey` parameter in the `copyTo` function is a string that represents the key or identifier of the new calendar event that will be created.
|
|
138
|
+
* @param {CalendarDate} startDate - The `startDate` parameter in the `copyTo` function represents
|
|
139
|
+
* the starting date of a calendar event. It is of type `CalendarDate`, which may contain information such as the day, month, and year of the event.
|
|
140
|
+
* @returns {CalendarEvent} A new `CalendarEvent` object is being returned with the properties from the original
|
|
141
|
+
* `_event` object (excluding `repeatOptions`) and the `startDate` and `endDate` properties set to
|
|
142
|
+
* the `toDate()` values of the `startDate` and `endDate` parameters.
|
|
143
|
+
*/
|
|
144
|
+
copyTo(eventKey, startDate) {
|
|
145
|
+
const endDate = this._eventSpansDays > 1
|
|
146
|
+
? new Date(startDate.year, startDate.month - 1, startDate.date + (this._eventSpansDays - 1))
|
|
147
|
+
: startDate.toDate();
|
|
148
|
+
const result = new CalendarEvent(Object.assign(Object.assign({}, this._event), { startDate: startDate.toDate(), endDate: endDate, startTime: this.startTime, endTime: this.endTime }), eventKey);
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
116
151
|
/**
|
|
117
152
|
* Check the event is a group event or not
|
|
118
153
|
*
|
|
119
154
|
* @returns {boolean} true or false
|
|
120
155
|
*/
|
|
121
156
|
isGroupEvent() {
|
|
122
|
-
|
|
123
|
-
const { year: endYear, month: endMonth, date: endDay, } = CalendarDate.from(this.endDate);
|
|
124
|
-
return (!(startYear === endYear && startMonth === endMonth && startDay === endDay) &&
|
|
125
|
-
this._event.repeat !== 'daily');
|
|
157
|
+
return this._eventSpansDays > 1;
|
|
126
158
|
}
|
|
127
159
|
/**
|
|
128
160
|
* This TypeScript function checks if a given date falls within the range of a calendar event based on its start and end dates, considering different repeat types like daily, weekly, monthly, and yearly.
|
|
@@ -135,23 +167,8 @@ export class CalendarEvent {
|
|
|
135
167
|
const { startDate, endDate } = this;
|
|
136
168
|
const startCalendarDate = CalendarDate.from(startDate);
|
|
137
169
|
const endCalendarDate = CalendarDate.from(new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate() + 1));
|
|
138
|
-
const repeat = this._event.repeat;
|
|
139
170
|
const currentDate = date.toDate();
|
|
140
|
-
|
|
141
|
-
switch (repeat) {
|
|
142
|
-
case 'daily':
|
|
143
|
-
return true;
|
|
144
|
-
case 'weekly':
|
|
145
|
-
return currentDate.getDay() === startDate.getDay();
|
|
146
|
-
case 'monthly':
|
|
147
|
-
return date.date === startCalendarDate.date;
|
|
148
|
-
case 'yearly':
|
|
149
|
-
return date.month === startCalendarDate.month && date.date === startCalendarDate.date;
|
|
150
|
-
default:
|
|
151
|
-
return endCalendarDate.toDate() > currentDate;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return false;
|
|
171
|
+
return startCalendarDate.toDate() <= currentDate && endCalendarDate.toDate() > currentDate;
|
|
155
172
|
}
|
|
156
173
|
/**
|
|
157
174
|
* Get the number of minutes the event lasted
|
|
@@ -166,6 +183,21 @@ export class CalendarEvent {
|
|
|
166
183
|
const endDate = new Date(now.year, now.month, now.date, Number(endHour) === 0 && Number(startHour) !== 0 ? 24 : Number(endHour), Number(endMinutes));
|
|
167
184
|
return (endDate.valueOf() - startDate.valueOf()) / (60 * 1000);
|
|
168
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* This function returns an array of repeat series based on a given calendar period.
|
|
188
|
+
*
|
|
189
|
+
* @param {CalendarPeriod} period - The `period` parameter in the `getRepeatSeries` method is of type
|
|
190
|
+
* `CalendarPeriod`. It represents a specific time period within a calendar, typically defined by a
|
|
191
|
+
* start date and an end date. The method uses this period to generate a series of repeated events
|
|
192
|
+
* based on a daily repeat pattern specified
|
|
193
|
+
* @returns {CalendarDate[]} repeat start date array
|
|
194
|
+
*/
|
|
195
|
+
getRepeatSeries(period) {
|
|
196
|
+
if (this.repeatPattern) {
|
|
197
|
+
return this.repeatPattern.getRepeatSeries(period, this._eventSpansDays);
|
|
198
|
+
}
|
|
199
|
+
return [];
|
|
200
|
+
}
|
|
169
201
|
/**
|
|
170
202
|
* The function `convertTimeTo24Hour` converts a time string from 12-hour format to 24-hour format in TypeScript.
|
|
171
203
|
*
|
|
@@ -253,4 +285,21 @@ export class CalendarEvent {
|
|
|
253
285
|
this._endTime = this.convertTimeTo24Hour(endTime);
|
|
254
286
|
}
|
|
255
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* The function initializes a repeat pattern controller for a calendar event with specified start and end dates and repeat options.
|
|
290
|
+
*/
|
|
291
|
+
initRepeatPattern() {
|
|
292
|
+
if (this._event.repeatOptions && this._event.repeatOptions.frequency) {
|
|
293
|
+
this.repeatPattern = calendarEventRepeatPatternFactory.getPattern(this._startDate, this._event.repeatOptions);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Initializes the event cross days by the event start date and end date.
|
|
298
|
+
*/
|
|
299
|
+
initEventSpansDays() {
|
|
300
|
+
const start = CalendarDate.from(this.startDate);
|
|
301
|
+
const end = CalendarDate.from(this.endDate);
|
|
302
|
+
this._eventSpansDays =
|
|
303
|
+
(end.toDate().valueOf() - start.toDate().valueOf()) / (24 * 60 * 60 * 1000) + 1;
|
|
304
|
+
}
|
|
256
305
|
}
|
|
@@ -5,9 +5,22 @@ import { CalendarDate } from '../calendar-date';
|
|
|
5
5
|
*/
|
|
6
6
|
export class MonthPeriod extends CalendarPeriod {
|
|
7
7
|
constructor(current) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
super(MonthPeriod.DISPLAY_DATE_COUNT, MonthPeriod.getMonthFirstDay(current));
|
|
9
|
+
this._type = 'month';
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The function `getMonthFirstDay` returns the first day of a given month in a calendar.
|
|
13
|
+
*
|
|
14
|
+
* @param {CalendarDate} [calendarDate] - The `calendarDate` parameter is an optional parameter of
|
|
15
|
+
* type `CalendarDate`. It represents a specific date in the calendar. If a `calendarDate` is
|
|
16
|
+
* provided, the function will use that date to determine the first day of the month. If no
|
|
17
|
+
* `calendarDate` is provided, the function
|
|
18
|
+
* @returns {CalendarDate} A new `CalendarDate` object representing the first day of the month from the provided
|
|
19
|
+
* `calendarDate` parameter or the current date if no parameter is provided.
|
|
20
|
+
*/
|
|
21
|
+
static getMonthFirstDay(calendarDate) {
|
|
22
|
+
const date = calendarDate || CalendarDate.from(new Date());
|
|
23
|
+
return new CalendarDate(date.year, date.month, 1);
|
|
11
24
|
}
|
|
12
25
|
/**
|
|
13
26
|
* @inheritDoc
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CalendarDate } from '../calendar-date';
|
|
2
2
|
import { CalendarEvent } from '../calendar-event';
|
|
3
|
+
import { MonthPeriod } from '../calendar-period/month-period';
|
|
3
4
|
const mockDate = new Date(2024, 5, 13, 13, 44);
|
|
4
5
|
const mockStringDate = '06/13/2024';
|
|
5
6
|
const rawEvent = {
|
|
@@ -10,7 +11,6 @@ const rawEvent = {
|
|
|
10
11
|
startTime: '',
|
|
11
12
|
endTime: '14:44',
|
|
12
13
|
disabled: false,
|
|
13
|
-
repeat: 'none',
|
|
14
14
|
isAllDay: false,
|
|
15
15
|
variant: 'secondary',
|
|
16
16
|
color: 'red',
|
|
@@ -32,6 +32,8 @@ describe('calendar-event', () => {
|
|
|
32
32
|
expect(calendarEvent.disabled).toEqual(false);
|
|
33
33
|
expect(calendarEvent.color).toEqual('red');
|
|
34
34
|
expect(calendarEvent.event).toEqual(rawEvent);
|
|
35
|
+
expect(calendarEvent.eventSpansDays).toEqual(1);
|
|
36
|
+
expect(calendarEvent.getRepeatSeries(new MonthPeriod(new CalendarDate(2024, 6, 1)))).toEqual([]);
|
|
35
37
|
});
|
|
36
38
|
it('should throw error when event options is incorrect', () => {
|
|
37
39
|
function wrongStartDate() {
|
|
@@ -83,7 +85,10 @@ describe('calendar-event', () => {
|
|
|
83
85
|
it('should get group event correct', () => {
|
|
84
86
|
const calendarEvent1 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { endDate: '06/14/2024', endTime: '18:00' }));
|
|
85
87
|
expect(calendarEvent1.isGroupEvent()).toBeTruthy();
|
|
86
|
-
const calendarEvent2 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { endDate: '06/
|
|
88
|
+
const calendarEvent2 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { endDate: '06/13/2024', endTime: '18:00', repeatOptions: {
|
|
89
|
+
frequency: 'daily',
|
|
90
|
+
interval: 1,
|
|
91
|
+
} }));
|
|
87
92
|
expect(calendarEvent2.isGroupEvent()).toBeFalsy();
|
|
88
93
|
});
|
|
89
94
|
it('should check current day event correct with normal event', () => {
|
|
@@ -91,24 +96,7 @@ describe('calendar-event', () => {
|
|
|
91
96
|
expect(calendarEvent1.isCurrentDayEvent(new CalendarDate(2024, 6, 14))).toBeTruthy();
|
|
92
97
|
expect(calendarEvent1.isCurrentDayEvent(new CalendarDate(2024, 6, 15))).toBeFalsy();
|
|
93
98
|
});
|
|
94
|
-
it('should
|
|
95
|
-
const calendarEvent1 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { endDate: '06/14/2024', repeat: 'daily' }));
|
|
96
|
-
expect(calendarEvent1.isCurrentDayEvent(new CalendarDate(2024, 6, 12))).toBeFalsy();
|
|
97
|
-
expect(calendarEvent1.isCurrentDayEvent(new CalendarDate(2024, 6, 13))).toBeTruthy();
|
|
98
|
-
const calendarEvent2 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { endDate: '06/14/2024', repeat: 'weekly' }));
|
|
99
|
-
expect(calendarEvent2.isCurrentDayEvent(new CalendarDate(2024, 6, 19))).toBeFalsy();
|
|
100
|
-
expect(calendarEvent2.isCurrentDayEvent(new CalendarDate(2024, 6, 13))).toBeTruthy();
|
|
101
|
-
expect(calendarEvent2.isCurrentDayEvent(new CalendarDate(2024, 6, 20))).toBeTruthy();
|
|
102
|
-
const calendarEvent3 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { endDate: '06/14/2024', repeat: 'monthly' }));
|
|
103
|
-
expect(calendarEvent3.isCurrentDayEvent(new CalendarDate(2024, 6, 13))).toBeTruthy();
|
|
104
|
-
expect(calendarEvent3.isCurrentDayEvent(new CalendarDate(2024, 7, 12))).toBeFalsy();
|
|
105
|
-
expect(calendarEvent3.isCurrentDayEvent(new CalendarDate(2024, 7, 13))).toBeTruthy();
|
|
106
|
-
const calendarEvent4 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { endDate: '06/14/2024', repeat: 'yearly' }));
|
|
107
|
-
expect(calendarEvent4.isCurrentDayEvent(new CalendarDate(2024, 6, 13))).toBeTruthy();
|
|
108
|
-
expect(calendarEvent4.isCurrentDayEvent(new CalendarDate(2025, 6, 13))).toBeTruthy();
|
|
109
|
-
expect(calendarEvent4.isCurrentDayEvent(new CalendarDate(2024, 7, 14))).toBeFalsy();
|
|
110
|
-
});
|
|
111
|
-
it('should check current day event correct with repeat event', () => {
|
|
99
|
+
it('should get event duration correct', () => {
|
|
112
100
|
const calendarEvent1 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { startDate: '06/14/2024', startTime: '10:00', endTime: '11:00', endDate: '06/14/2024' }));
|
|
113
101
|
expect(calendarEvent1.getEventDuration()).toEqual(60);
|
|
114
102
|
const calendarEvent2 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { startDate: '06/14/2024', startTime: '23:00', endTime: '00:00', endDate: '06/14/2024' }));
|
|
@@ -127,4 +115,19 @@ describe('calendar-event', () => {
|
|
|
127
115
|
expect(calendarEvent3.startTime).toEqual('13:00');
|
|
128
116
|
expect(calendarEvent3.endTime).toEqual('14:30');
|
|
129
117
|
});
|
|
118
|
+
it('should create event correct when call copyTo', () => {
|
|
119
|
+
const calendarEvent1 = new CalendarEvent(Object.assign(Object.assign({}, rawEvent), { startDate: '06/14/2024', endDate: '06/15/2024', startTime: '12:00 am', endTime: '12:00 pm', repeatOptions: {
|
|
120
|
+
frequency: 'daily',
|
|
121
|
+
interval: 2,
|
|
122
|
+
until: '06/16/2024',
|
|
123
|
+
} }));
|
|
124
|
+
const copyEvent1 = calendarEvent1.copyTo('test', new CalendarDate(2024, 6, 14));
|
|
125
|
+
const copyEvent2 = calendarEvent1.copyTo('test', new CalendarDate(2024, 6, 16));
|
|
126
|
+
expect(copyEvent1.startDate.getDate()).toEqual(14);
|
|
127
|
+
expect(copyEvent1.endDate.getDate()).toEqual(15);
|
|
128
|
+
expect(copyEvent1.eventKey).toEqual('test');
|
|
129
|
+
expect(copyEvent2.startDate.getDate()).toEqual(16);
|
|
130
|
+
expect(copyEvent2.endDate.getDate()).toEqual(17);
|
|
131
|
+
expect(copyEvent2.eventKey).toEqual('test');
|
|
132
|
+
});
|
|
130
133
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VegaExpand, VegaClick, VegaDropdownClick, VegaClose, VegaChange, VegaEventClick, VegaPageUpdate, VegaCreate, VegaSearch, VegaDropdownShow, VegaDropdownHide, VegaDropdownSearch, VegaFormSubmit, VegaFormReset, VegaValidate, VegaRemove, VegaCancel, VegaFocus, VegaBlur, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaSelectChange, VegaSelectAllChange, VegaRowClick, } from './vegaEventId';
|
|
1
|
+
import { VegaExpand, VegaClick, VegaDropdownClick, VegaClose, VegaChange, VegaEventClick, VegaDateDblClick, VegaPageUpdate, VegaCreate, VegaSearch, VegaDropdownShow, VegaDropdownHide, VegaDropdownSearch, VegaFormSubmit, VegaFormReset, VegaValidate, VegaRemove, VegaCancel, VegaFocus, VegaBlur, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaSelectChange, VegaSelectAllChange, VegaRowClick, } from './vegaEventId';
|
|
2
2
|
const entries = [
|
|
3
3
|
['vega-accordion', [VegaExpand]],
|
|
4
4
|
['vega-app-header-button', [VegaClick, VegaDropdownClick]],
|
|
@@ -8,7 +8,7 @@ const entries = [
|
|
|
8
8
|
['vega-button-circle', [VegaClick]],
|
|
9
9
|
['vega-button-group', [VegaClick]],
|
|
10
10
|
['vega-button-link', [VegaClick]],
|
|
11
|
-
['vega-calendar', [VegaChange, VegaEventClick]],
|
|
11
|
+
['vega-calendar', [VegaChange, VegaEventClick, VegaDateDblClick]],
|
|
12
12
|
['vega-carousel', [VegaPageUpdate]],
|
|
13
13
|
['vega-checkbox', [VegaChange]],
|
|
14
14
|
['vega-checkbox-group', [VegaChange]],
|
|
@@ -86,5 +86,5 @@ export const VegaDropdownHide = new VegaEventID('vegaHide', 'dropdownHide');
|
|
|
86
86
|
export const VegaDropdownSearch = new VegaEventID('vegaSearch', 'dropdownSearch');
|
|
87
87
|
export const VegaActionClick = new VegaEventID('vegaActionClick', 'actionClick');
|
|
88
88
|
export const VegaEventClick = new VegaEventID('vegaEventClick', 'eventClick');
|
|
89
|
-
export const
|
|
89
|
+
export const VegaDateDblClick = new VegaEventID('vegaDateDblClick', 'dateDblClick');
|
|
90
90
|
export const HTMLNativeEventIds = [VegaChange, VegaClick, VegaFocus, VegaBlur];
|
|
@@ -25,3 +25,4 @@ export const VegaInternalLeftNavLinkClick = new VegaInternalEventID('leftNavLink
|
|
|
25
25
|
export const VegaInternalSubStatePull = new VegaInternalEventID('subStatePull');
|
|
26
26
|
export const VegaInternalSubStatePush = new VegaInternalEventID('subStatePush');
|
|
27
27
|
export const VegaInternalCalendarMonthEventsChange = new VegaInternalEventID('monthEventsChange');
|
|
28
|
+
export const VegaInternalDropdownTemplateItemsChange = new VegaInternalEventID('dropdownTemplateItemsChange');
|
|
@@ -30,6 +30,9 @@ export class ChildNodesEventPreventSlimmer extends VegaSlimmer {
|
|
|
30
30
|
*/
|
|
31
31
|
this.preventChildEvent = (event) => {
|
|
32
32
|
const hostElement = this.getHostElement();
|
|
33
|
+
if (this.shouldSkipEventPrevent()) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
33
36
|
if (typeof this.customPreventHandle === 'function') {
|
|
34
37
|
this.customPreventHandle(event);
|
|
35
38
|
}
|
|
@@ -109,6 +112,15 @@ export class ChildNodesEventPreventSlimmer extends VegaSlimmer {
|
|
|
109
112
|
!!jqueryDelegatedEvent &&
|
|
110
113
|
jqueryDelegatedStrategyController.isSupportDelegated(this.host, eventId));
|
|
111
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* The function `shouldSkipEventPrevent` checks if a host element has a specific dataset value to determine whether event prevention should be skipped.
|
|
117
|
+
*
|
|
118
|
+
* @returns {boolean} If the `hostElement` exists and has a `dataset.vegaNoEventPrevent` attribute with a value of `'true'`, then the function returns `true`. Otherwise, it returns `false`.
|
|
119
|
+
*/
|
|
120
|
+
shouldSkipEventPrevent() {
|
|
121
|
+
const hostElement = this.getHostElement();
|
|
122
|
+
return hostElement && hostElement.dataset.vegaNoEventPrevent === 'true';
|
|
123
|
+
}
|
|
112
124
|
}
|
|
113
125
|
__decorate([
|
|
114
126
|
MapToComponentField()
|
|
@@ -107,6 +107,20 @@ describe('ChildNodesEventPreventSlimmer', () => {
|
|
|
107
107
|
mockedComponent.disconnectedCallback();
|
|
108
108
|
expect(mockedComponent['slimmer']['isEventListenerAdded']).toBeFalsy();
|
|
109
109
|
});
|
|
110
|
+
test('should skip prevent child event when set skip flag after component did render', () => {
|
|
111
|
+
const mockedComponent = new MockedSlimmer();
|
|
112
|
+
const host = document.createElement('div');
|
|
113
|
+
mockedComponent.host = host;
|
|
114
|
+
host.innerHTML = `<p><span></span></p>`;
|
|
115
|
+
mockedComponent.parentElement = host.querySelector('p');
|
|
116
|
+
const mockListener = jest.fn();
|
|
117
|
+
host.addEventListener('vegaClick', mockListener);
|
|
118
|
+
mockedComponent.componentDidLoad();
|
|
119
|
+
mockedComponent.parentElement.setAttribute('data-vega-no-event-prevent', 'true');
|
|
120
|
+
host.dispatchEvent(new CustomEvent('vegaClick', { bubbles: true, cancelable: true }));
|
|
121
|
+
host.querySelector('span').dispatchEvent(new CustomEvent('vegaClick', { bubbles: true, cancelable: true }));
|
|
122
|
+
expect(mockListener).toBeCalledTimes(2);
|
|
123
|
+
});
|
|
110
124
|
});
|
|
111
125
|
describe('shadow dom', () => {
|
|
112
126
|
class MockedShadowComponent {
|
|
@@ -11,3 +11,4 @@ export { BaseStrategy as VegaJQueryDelegatedEventStrategy } from './event-manage
|
|
|
11
11
|
export { VegaIconManager } from './icon/iconManager';
|
|
12
12
|
export { ValidCreditCardNumberRule } from './validator/rules/validCreditCardNumberRule';
|
|
13
13
|
export { waitForVega } from './common';
|
|
14
|
+
export { VegaSkeletonLoader } from '../helpers/skeleton-loader/vega-skeleton-loader-controller';
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
jest.mock('../../../utils/misc', () => ({
|
|
2
|
+
generateUUID: () => 'TEST_UUID',
|
|
3
|
+
}));
|
|
4
|
+
import { VegaSkeletonLoader } from '../vega-skeleton-loader-controller';
|
|
5
|
+
describe('vega-skeleton-loader-controller', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
document.body.innerHTML = `
|
|
8
|
+
<div class="target-class"></div>
|
|
9
|
+
`;
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
VegaSkeletonLoader.unLoadAll();
|
|
13
|
+
document.body.innerHTML = '';
|
|
14
|
+
});
|
|
15
|
+
it('should render a skeleton in target', () => {
|
|
16
|
+
VegaSkeletonLoader.load({
|
|
17
|
+
target: '.target-class',
|
|
18
|
+
});
|
|
19
|
+
expect(document.body).toMatchInlineSnapshot(`
|
|
20
|
+
<body>
|
|
21
|
+
<div class="target-class">
|
|
22
|
+
<vega-skeleton data-vega-skeleton-loader-key="vega-skeleton-loader-TEST_UUID"></vega-skeleton>
|
|
23
|
+
</div>
|
|
24
|
+
</body>
|
|
25
|
+
`);
|
|
26
|
+
});
|
|
27
|
+
it('should remove the skeleton when call unLoad', () => {
|
|
28
|
+
const key = VegaSkeletonLoader.load({
|
|
29
|
+
target: '.target-class',
|
|
30
|
+
});
|
|
31
|
+
expect(document.body).toMatchInlineSnapshot(`
|
|
32
|
+
<body>
|
|
33
|
+
<div class="target-class">
|
|
34
|
+
<vega-skeleton data-vega-skeleton-loader-key="vega-skeleton-loader-TEST_UUID"></vega-skeleton>
|
|
35
|
+
</div>
|
|
36
|
+
</body>
|
|
37
|
+
`);
|
|
38
|
+
expect(VegaSkeletonLoader['loaderMap'].size).toEqual(1);
|
|
39
|
+
VegaSkeletonLoader.unLoad(key);
|
|
40
|
+
expect(VegaSkeletonLoader['loaderMap'].size).toEqual(0);
|
|
41
|
+
expect(document.body).toMatchInlineSnapshot(`
|
|
42
|
+
<body>
|
|
43
|
+
<div class="target-class"></div>
|
|
44
|
+
</body>
|
|
45
|
+
`);
|
|
46
|
+
});
|
|
47
|
+
it('should remove all the skeletons when call unLoadAll', () => {
|
|
48
|
+
VegaSkeletonLoader.load({
|
|
49
|
+
target: '.target-class',
|
|
50
|
+
});
|
|
51
|
+
expect(VegaSkeletonLoader['loaderMap'].size).toEqual(1);
|
|
52
|
+
expect(document.body).toMatchInlineSnapshot(`
|
|
53
|
+
<body>
|
|
54
|
+
<div class="target-class">
|
|
55
|
+
<vega-skeleton data-vega-skeleton-loader-key="vega-skeleton-loader-TEST_UUID"></vega-skeleton>
|
|
56
|
+
</div>
|
|
57
|
+
</body>
|
|
58
|
+
`);
|
|
59
|
+
VegaSkeletonLoader.unLoadAll();
|
|
60
|
+
expect(VegaSkeletonLoader['loaderMap'].size).toEqual(0);
|
|
61
|
+
expect(document.body).toMatchInlineSnapshot(`
|
|
62
|
+
<body>
|
|
63
|
+
<div class="target-class"></div>
|
|
64
|
+
</body>
|
|
65
|
+
`);
|
|
66
|
+
});
|
|
67
|
+
it('should render a skeleton with type', () => {
|
|
68
|
+
VegaSkeletonLoader.load({
|
|
69
|
+
target: '.target-class',
|
|
70
|
+
type: 'full-width-paragraph',
|
|
71
|
+
});
|
|
72
|
+
expect(document.body.querySelector('vega-skeleton').type).toEqual('full-width-paragraph');
|
|
73
|
+
});
|
|
74
|
+
it('should render a skeleton with width and height', () => {
|
|
75
|
+
VegaSkeletonLoader.load({
|
|
76
|
+
target: '.target-class',
|
|
77
|
+
type: 'image',
|
|
78
|
+
width: '200px',
|
|
79
|
+
height: '100px',
|
|
80
|
+
});
|
|
81
|
+
const skeletonEl = document.querySelector('vega-skeleton');
|
|
82
|
+
expect(skeletonEl.type).toEqual('image');
|
|
83
|
+
expect(skeletonEl.width).toEqual('200px');
|
|
84
|
+
expect(skeletonEl.height).toEqual('100px');
|
|
85
|
+
});
|
|
86
|
+
it('should render complex items', () => {
|
|
87
|
+
VegaSkeletonLoader.load({
|
|
88
|
+
target: '.target-class',
|
|
89
|
+
items: [
|
|
90
|
+
{ type: 'ellipse', width: '30px', height: '30px' },
|
|
91
|
+
{ type: 'text', width: '100px' },
|
|
92
|
+
],
|
|
93
|
+
});
|
|
94
|
+
const skeletons = document.querySelectorAll('vega-skeleton');
|
|
95
|
+
expect(document.body).toMatchInlineSnapshot(`
|
|
96
|
+
<body>
|
|
97
|
+
<div class="target-class">
|
|
98
|
+
<vega-skeleton data-vega-skeleton-loader-key="vega-skeleton-loader-TEST_UUID"></vega-skeleton>
|
|
99
|
+
<vega-skeleton data-vega-skeleton-loader-key="vega-skeleton-loader-TEST_UUID"></vega-skeleton>
|
|
100
|
+
</div>
|
|
101
|
+
</body>
|
|
102
|
+
`);
|
|
103
|
+
expect({ type: skeletons[0].type, width: skeletons[0].width, height: skeletons[0].height }).toEqual({
|
|
104
|
+
type: 'ellipse',
|
|
105
|
+
width: '30px',
|
|
106
|
+
height: '30px',
|
|
107
|
+
});
|
|
108
|
+
expect({ type: skeletons[1].type, width: skeletons[1].width }).toEqual({
|
|
109
|
+
type: 'text',
|
|
110
|
+
width: '100px',
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
it('should render item with wrapped layout', () => {
|
|
114
|
+
VegaSkeletonLoader.load({
|
|
115
|
+
target: '.target-class',
|
|
116
|
+
items: [
|
|
117
|
+
{ type: 'image', width: '100%', height: '200px' },
|
|
118
|
+
{ type: 'paragraph', width: '100%' },
|
|
119
|
+
],
|
|
120
|
+
layout: {
|
|
121
|
+
props: {
|
|
122
|
+
direction: 'col',
|
|
123
|
+
gap: 'size-20',
|
|
124
|
+
},
|
|
125
|
+
style: { width: 'calc(33% - 12px)' },
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
expect(document.body).toMatchInlineSnapshot(`
|
|
129
|
+
<body>
|
|
130
|
+
<div class="target-class">
|
|
131
|
+
<vega-flex class="vega-skeleton-loader-template-container" data-vega-skeleton-loader-key="vega-skeleton-loader-TEST_UUID" style="width: calc(33% - 12px);">
|
|
132
|
+
<vega-skeleton></vega-skeleton>
|
|
133
|
+
<vega-skeleton></vega-skeleton>
|
|
134
|
+
</vega-flex>
|
|
135
|
+
</div>
|
|
136
|
+
</body>
|
|
137
|
+
`);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { generateUUID } from '../../utils/misc';
|
|
2
|
+
/**
|
|
3
|
+
* Vega Skeleton Loader Controller to show skeletons in the target elements
|
|
4
|
+
*/
|
|
5
|
+
class VegaSkeletonLoaderController {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.loaderMap = new Map();
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Load the skeletons in the target elements
|
|
11
|
+
*
|
|
12
|
+
* @param { VegaSkeletonLoaderConfig } config - Configuration for the loading function
|
|
13
|
+
* @param {string} config.target - Target elements to show the skeletons.
|
|
14
|
+
* @param {VegaSkeletonLoaderConfig.type} [config.type = 'text'] - Type of the skeleton.
|
|
15
|
+
* @param {VegaSkeletonLoaderConfig.width} config.width - Width of the skeleton.
|
|
16
|
+
* @param {VegaSkeletonLoaderConfig.height} config.height - Height of the skeleton.
|
|
17
|
+
* @param {VegaSkeletonLoaderConfig.items} config.items - Configuration for multiple skeleton items.
|
|
18
|
+
* @param {VegaSkeletonLoaderConfig.layout} config.layout - Layout of the skeleton items.
|
|
19
|
+
* @returns { string } - Key of the loaded skeleton items.
|
|
20
|
+
*/
|
|
21
|
+
load({ target, type = 'text', width, height, items, layout }) {
|
|
22
|
+
const targets = Array.from(document.body.querySelectorAll(target));
|
|
23
|
+
const key = `vega-skeleton-loader-${generateUUID()}`;
|
|
24
|
+
const loaderItems = [];
|
|
25
|
+
targets.forEach((target) => {
|
|
26
|
+
const skeletonsLoaders = !items
|
|
27
|
+
? [this.createSkeleton({ type, width, height })]
|
|
28
|
+
: items.map(this.createSkeleton);
|
|
29
|
+
const itemsWithKey = (layout ? [this.wrapLayout(skeletonsLoaders, layout)] : skeletonsLoaders).map((item) => {
|
|
30
|
+
item.dataset[VegaSkeletonLoaderController.LOADER_DATA_SET_KEY] = key;
|
|
31
|
+
return item;
|
|
32
|
+
});
|
|
33
|
+
loaderItems.push(...itemsWithKey);
|
|
34
|
+
target.append(...itemsWithKey);
|
|
35
|
+
});
|
|
36
|
+
this.loaderMap.set(key, loaderItems);
|
|
37
|
+
return key;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Remove the skeletons from the dom.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} key - The key returned from {@link VegaSkeletonLoaderController.load}.
|
|
43
|
+
*/
|
|
44
|
+
unLoad(key) {
|
|
45
|
+
if (this.loaderMap.has(key)) {
|
|
46
|
+
this.loaderMap.get(key).forEach((item) => item.remove());
|
|
47
|
+
this.loaderMap.delete(key);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Remove all the skeletons from the dom.
|
|
52
|
+
*/
|
|
53
|
+
unLoadAll() {
|
|
54
|
+
for (const items of this.loaderMap.values()) {
|
|
55
|
+
items.forEach((item) => item.remove());
|
|
56
|
+
}
|
|
57
|
+
this.loaderMap.clear();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a skeleton item. The skeleton animated always be true
|
|
61
|
+
*
|
|
62
|
+
* @param {VegaSkeletonLoaderItem} config - Configuration for the skeleton item.
|
|
63
|
+
* @returns {HTMLElement} - Skeleton item.
|
|
64
|
+
*/
|
|
65
|
+
createSkeleton(config) {
|
|
66
|
+
const { type, width, height } = config;
|
|
67
|
+
const skeleton = document.createElement('vega-skeleton');
|
|
68
|
+
Object.assign(skeleton, { animated: true, type, width, height });
|
|
69
|
+
return skeleton;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Wrap the flex layout for the skeletons.
|
|
73
|
+
*
|
|
74
|
+
* @param {HTMLElement[]} skeletons - Skeleton elements of the loader.
|
|
75
|
+
* @param {VegaSkeletonLoaderLayout} layout - Flex properties for the layout.
|
|
76
|
+
* @returns {HTMLElement} - Container wrapping the skeletons in the specified flex layout.
|
|
77
|
+
*/
|
|
78
|
+
wrapLayout(skeletons, layout) {
|
|
79
|
+
const skeletonContainer = document.createElement('vega-flex');
|
|
80
|
+
Object.assign(skeletonContainer, Object.assign({ className: 'vega-skeleton-loader-template-container' }, layout.props));
|
|
81
|
+
Object.assign(skeletonContainer.style, layout.style);
|
|
82
|
+
skeletonContainer.append(...skeletons);
|
|
83
|
+
return skeletonContainer;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
VegaSkeletonLoaderController.LOADER_DATA_SET_KEY = 'vegaSkeletonLoaderKey';
|
|
87
|
+
export const VegaSkeletonLoader = new VegaSkeletonLoaderController();
|