@globalpayments/vega 2.64.0 → 2.66.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-a190cd2d.js → app-globals-ab28f910.js} +9 -9
- package/dist/cjs/{brand-switch-state-controller-slimmer-5efa1b24.js → brand-switch-state-controller-slimmer-3d41b2a4.js} +1 -1
- package/dist/cjs/{child-nodes-event-prevent-slimmer-4e96270e.js → child-nodes-event-prevent-slimmer-eb803b14.js} +1 -1
- package/dist/cjs/{child-nodes-notify-observer-slimmer-34ac3bfc.js → child-nodes-notify-observer-slimmer-257fedb3.js} +1 -1
- package/dist/cjs/{code-block-417a131b.js → code-block-ab97a0a0.js} +15 -18
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-0c4d1453.js → component-value-history-controller-slimmer.abstract-5630341e.js} +6 -6
- package/dist/cjs/{dark-mode-state-controller-slimmer-add5d8a8.js → dark-mode-state-controller-slimmer-8a87ec08.js} +1 -1
- package/dist/cjs/{dark-mode-style-controller-41c94aac.js → dark-mode-style-controller-27809ff8.js} +1 -1
- package/dist/cjs/{design-token-ae0de304.js → design-token-847739f1.js} +1 -1
- package/dist/cjs/{dom-node-subject-observer-factory-58e3c010.js → dom-node-subject-observer-factory-f040608b.js} +6 -2
- package/dist/cjs/{dto-renderer-manager-6d338e46.js → dto-renderer-manager-d0f0f2c0.js} +20 -35
- package/dist/cjs/{element-appender-slimmer-5a23e722.js → element-appender-slimmer-aead9bbb.js} +6 -6
- package/dist/cjs/{event-emit-slimmer-428d8802.js → event-emit-slimmer-d21a0935.js} +2 -2
- package/dist/cjs/{form-field-controller-slimmer-cceb5c79.js → form-field-controller-slimmer-2a091912.js} +16 -8
- package/dist/cjs/{image-annotation-action-9785bc59.js → image-annotation-action-d84de785.js} +4 -4
- package/dist/cjs/{index-9a92abce.js → index-4b896e76.js} +2 -2
- package/dist/cjs/index-58ea899e.js +4 -0
- package/dist/cjs/index.cjs.js +16 -16
- package/dist/cjs/{inject-keyboard-manager-ad865c95.js → inject-keyboard-manager-13c66257.js} +1 -1
- package/dist/cjs/{internal-vega-event-manager-28b957c8.js → internal-vega-event-manager-4d1ce667.js} +3 -2
- package/dist/cjs/{keyboard-manager-7f4e1f43.js → keyboard-manager-af0d08a6.js} +8 -2
- package/dist/cjs/{keyboard-manager-slimmer-138a90e5.js → keyboard-manager-slimmer-62f072cd.js} +1 -1
- package/dist/cjs/{language-extension-abbc251a.js → language-extension-d257e65d.js} +2 -2
- package/dist/cjs/loader.cjs.js +14 -14
- package/dist/cjs/{public-rules-ffc5db13.js → public-rules-d2b9b8f0.js} +8 -8
- package/dist/cjs/{range-37161c00.js → range-d610028e.js} +2 -2
- package/dist/cjs/{responsive-format-facade-b20dad44.js → responsive-format-facade-71e7b74c.js} +5 -5
- package/dist/cjs/{rich-text-editor-required-rule-604ea2b9.js → rich-text-editor-required-rule-a8fe5f50.js} +1 -1
- package/dist/cjs/{static-subject-title-7e7d791a.js → static-subject-title-5829a298.js} +0 -6
- package/dist/cjs/{string-input-formatter-slimmer-8445abc9.js → string-input-formatter-slimmer-8236b5e1.js} +3 -3
- package/dist/cjs/{style-formatter-56751462.js → style-formatter-6facb42b.js} +1 -1
- package/dist/cjs/{sub-state-notify-slimmer-52fa23af.js → sub-state-notify-slimmer-78682046.js} +2 -2
- package/dist/cjs/{sub-state-observer-slimmer-90c26113.js → sub-state-observer-slimmer-73aecfff.js} +3 -3
- package/dist/cjs/{token-extension-46821c19.js → token-extension-aa8d5cce.js} +9 -8
- package/dist/cjs/{translation-ecfc704a.js → translation-f5adcb9f.js} +1 -1
- package/dist/cjs/{translation-slimmer-40a3536d.js → translation-slimmer-4b6239d1.js} +1 -1
- package/dist/cjs/{ui-4ce1fa08.js → ui-9e181079.js} +16 -3
- package/dist/cjs/vega-accordion.cjs.entry.js +13 -13
- package/dist/cjs/vega-app-footer.cjs.entry.js +3 -3
- package/dist/cjs/vega-app-header-button.cjs.entry.js +14 -14
- package/dist/cjs/vega-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/vega-banner.cjs.entry.js +4 -4
- package/dist/cjs/vega-box.cjs.entry.js +13 -13
- package/dist/cjs/vega-brand-logo.cjs.entry.js +3 -3
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +30 -15
- package/dist/cjs/vega-button-circle.cjs.entry.js +19 -16
- package/dist/cjs/vega-button-group_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
- package/dist/cjs/vega-button.cjs.entry.js +19 -14
- package/dist/cjs/vega-calendar_4.cjs.entry.js +506 -212
- package/dist/cjs/vega-card.cjs.entry.js +12 -12
- package/dist/cjs/vega-carousel.cjs.entry.js +12 -12
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +11 -11
- package/dist/cjs/vega-chip.cjs.entry.js +14 -14
- package/dist/cjs/vega-code-block.cjs.entry.js +15 -15
- package/dist/cjs/vega-color-picker.cjs.entry.js +9 -9
- package/dist/cjs/vega-combo-box.cjs.entry.js +12 -12
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +62 -25
- package/dist/cjs/vega-dialog_2.cjs.entry.js +15 -15
- package/dist/cjs/vega-divider.cjs.entry.js +12 -12
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +23 -22
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-error.cjs.entry.js +1 -1
- package/dist/cjs/vega-field-label.cjs.entry.js +4 -4
- package/dist/cjs/vega-file-uploader.cjs.entry.js +10 -10
- package/dist/cjs/vega-flag-icon.cjs.entry.js +12 -12
- package/dist/cjs/vega-flex.cjs.entry.js +13 -13
- package/dist/cjs/vega-font.cjs.entry.js +12 -12
- package/dist/cjs/vega-form.cjs.entry.js +649 -352
- package/dist/cjs/vega-grid.cjs.entry.js +12 -12
- package/dist/cjs/vega-icon.cjs.entry.js +12 -12
- package/dist/cjs/vega-image-uploader.cjs.entry.js +17 -17
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +10 -10
- package/dist/cjs/vega-input-numeric.cjs.entry.js +13 -13
- package/dist/cjs/vega-input-passcode.cjs.entry.js +724 -0
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +14 -14
- package/dist/cjs/vega-input-range.cjs.entry.js +11 -11
- package/dist/cjs/vega-input-select.cjs.entry.js +16 -16
- package/dist/cjs/vega-input.cjs.entry.js +27 -12
- package/dist/cjs/{vega-internal-event-id-dfd8b802.js → vega-internal-event-id-6d4a2c53.js} +6 -0
- package/dist/cjs/vega-item-toggle.cjs.entry.js +4 -4
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +44 -20
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +11 -11
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +5 -5
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +6 -6
- package/dist/cjs/vega-pagination.cjs.entry.js +14 -14
- package/dist/cjs/vega-popover_2.cjs.entry.js +16 -16
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +4 -4
- package/dist/cjs/vega-radio_2.cjs.entry.js +13 -13
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +10 -10
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +23 -23
- package/dist/cjs/vega-segment-control.cjs.entry.js +4 -4
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +16 -16
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +12 -12
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +14 -14
- package/dist/cjs/vega-signature-capture.cjs.entry.js +16 -16
- package/dist/cjs/vega-stepper.cjs.entry.js +10 -10
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-table_8.cjs.entry.js +16 -16
- package/dist/cjs/vega-text.cjs.entry.js +1 -1
- package/dist/cjs/vega-textarea.cjs.entry.js +10 -10
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +19 -19
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +9 -9
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +14 -14
- package/dist/cjs/vega.cjs.js +14 -14
- package/dist/collection/collection-manifest.json +6 -0
- package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.js +1 -1
- package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-renderer.js +12 -8
- package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.css +6 -6
- package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.js +32 -0
- package/dist/collection/components/vega-button/vega-button.js +9 -2
- package/dist/collection/components/vega-button-circle/vega-button-circle.js +8 -3
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.js +7 -4
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.js +21 -1
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-preivew-popover-controller.js +18 -1
- package/dist/collection/components/vega-calendar/slimmers/common/controllers/vega-calendar-post-operation-date-controller.js +14 -1
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-repeat-pattern-factory.js +8 -9
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-weekly-repeat-pattern.js +3 -1
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/test/calendar-event-repeat-pattern-factory.test.js +34 -0
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +1 -1
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-time-marker-renderer.js +31 -5
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.js +4 -1
- package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-event-renderer.js +5 -3
- package/dist/collection/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.js +4 -1
- package/dist/collection/components/vega-calendar/vega-calendar.js +47 -1
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +37 -3
- package/dist/collection/components/vega-date-picker/vega-date-picker.js +6 -0
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +1 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.css +4 -8
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +4 -0
- package/dist/collection/components/vega-form/slimmers/controllers/vega-form-field-controller.js +351 -0
- package/dist/collection/components/vega-form/slimmers/controllers/vega-form-reset-controller.js +99 -0
- package/dist/collection/components/vega-form/slimmers/controllers/vega-form-submit-controller.js +179 -0
- package/dist/collection/components/vega-form/vega-form.js +20 -366
- package/dist/collection/components/vega-input/vega-input.js +72 -5
- package/dist/collection/components/vega-input-passcode/slimmers/controllers/vega-input-passcode-keyboard-controller.js +101 -0
- package/dist/collection/components/vega-input-passcode/slimmers/controllers/vega-input-passcode-value-controller.js +115 -0
- package/dist/collection/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.js +166 -0
- package/dist/collection/components/vega-input-passcode/vega-input-passcode.css +90 -0
- package/dist/collection/components/vega-input-passcode/vega-input-passcode.js +513 -0
- package/dist/collection/components/vega-modal/vega-modal.css +4 -1
- package/dist/collection/components/vega-nav/slimmers/vega-nav-observer-slimmer.js +8 -3
- package/dist/collection/components/vega-nav/vega-left-nav-link/slimmers/controllers/vega-left-nav-link-controller.js +21 -4
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/link-group-annotation.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/code-block.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/image-block.js +3 -7
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +3 -7
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +4 -12
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +3 -7
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/image-node.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/code-block.test.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/html-block.test.js +4 -0
- package/dist/collection/components/vega-rich-text-editor/test/dto/nodes/text-node.test.js +1 -1
- package/dist/collection/constants/ui.js +2 -0
- package/dist/collection/helpers/calendar/calendar-date.js +10 -8
- package/dist/collection/helpers/calendar/calendar-event.js +152 -16
- package/dist/collection/helpers/calendar/calendar-period/calendar-period.abstract.js +13 -4
- package/dist/collection/helpers/calendar/calendar-period/day-period.js +4 -4
- package/dist/collection/helpers/calendar/calendar-period/month-period.js +7 -6
- package/dist/collection/helpers/calendar/calendar-period/week-period.js +3 -3
- package/dist/collection/helpers/calendar/calendar-view-generator/week-view-generator.js +1 -1
- package/dist/collection/helpers/calendar/test/calendar-date.test.js +24 -0
- package/dist/collection/helpers/calendar/test/calendar-event.test.js +71 -0
- package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +28 -0
- package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +35 -0
- package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +43 -0
- package/dist/collection/helpers/calendar/test/utils.test.js +29 -1
- package/dist/collection/helpers/calendar/utils.js +46 -0
- package/dist/collection/helpers/change-manager/subject/static-subject/static-subject-title.js +0 -2
- package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +3 -2
- package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +3 -1
- package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +3 -0
- package/dist/collection/helpers/event-manager/test/component-event-id-map.test.js +2 -1
- package/dist/collection/helpers/event-manager/test/vega-event-manager.test.js +2 -1
- package/dist/collection/helpers/immutable/immutable-array.js +133 -0
- package/dist/collection/helpers/immutable/test/immutable-array.test.js +78 -0
- package/dist/collection/helpers/keyboard/keyboard-manager.js +7 -1
- package/dist/collection/helpers/keyboard/test/keyboard-manager.test.js +4 -0
- package/dist/collection/helpers/validator/form-field-controller.js +13 -3
- package/dist/collection/utils/test/ui.test.js +55 -0
- package/dist/collection/utils/ui.js +16 -3
- package/dist/collection/value-model-adapters/angular-ng-model-accessor-adapter.js +1 -0
- package/dist/collection/value-model-adapters/vue-component-v-model-adaptor.js +1 -0
- package/dist/esm/{app-globals-b074e012.js → app-globals-37a60cc1.js} +9 -9
- package/dist/esm/{brand-switch-state-controller-slimmer-05c85e6d.js → brand-switch-state-controller-slimmer-60249013.js} +1 -1
- package/dist/esm/{child-nodes-event-prevent-slimmer-7fe3dc57.js → child-nodes-event-prevent-slimmer-735cb880.js} +1 -1
- package/dist/esm/{child-nodes-notify-observer-slimmer-78f77c2c.js → child-nodes-notify-observer-slimmer-b676cd2b.js} +1 -1
- package/dist/esm/{code-block-a6c78bbb.js → code-block-11b2bc1c.js} +15 -18
- package/dist/esm/{component-value-history-controller-slimmer.abstract-d37d2df7.js → component-value-history-controller-slimmer.abstract-16c5cb96.js} +6 -6
- package/dist/esm/{dark-mode-state-controller-slimmer-f1c2c299.js → dark-mode-state-controller-slimmer-f2b4f8ed.js} +1 -1
- package/dist/esm/{dark-mode-style-controller-5cf1c482.js → dark-mode-style-controller-b7e85b6a.js} +1 -1
- package/dist/esm/{design-token-6f9e70c4.js → design-token-297dc528.js} +1 -1
- package/dist/esm/{dom-node-subject-observer-factory-c7bc3035.js → dom-node-subject-observer-factory-dca87b70.js} +5 -3
- package/dist/esm/{dto-renderer-manager-5b036e47.js → dto-renderer-manager-a1a3b6d2.js} +20 -35
- package/dist/esm/{element-appender-slimmer-1d6c2960.js → element-appender-slimmer-f7233708.js} +6 -6
- package/dist/esm/{event-emit-slimmer-3922d816.js → event-emit-slimmer-28fd360c.js} +2 -2
- package/dist/esm/{form-field-controller-slimmer-c29b345f.js → form-field-controller-slimmer-b23d9ff3.js} +16 -8
- package/dist/esm/{image-annotation-action-f6308cf4.js → image-annotation-action-fc46c920.js} +4 -4
- package/dist/esm/index-090d31ca.js +4 -0
- package/dist/esm/{index-4f26bbd0.js → index-c943d263.js} +2 -2
- package/dist/esm/index.js +16 -16
- package/dist/esm/{inject-keyboard-manager-109817bf.js → inject-keyboard-manager-ffd351b9.js} +1 -1
- package/dist/esm/{internal-vega-event-manager-cb06e987.js → internal-vega-event-manager-a5a5938d.js} +3 -2
- package/dist/esm/{keyboard-manager-ab521d22.js → keyboard-manager-5d8f3582.js} +8 -2
- package/dist/esm/{keyboard-manager-slimmer-cae3a002.js → keyboard-manager-slimmer-f39214e4.js} +1 -1
- package/dist/esm/{language-extension-962c427a.js → language-extension-314a2b18.js} +2 -2
- package/dist/esm/loader.js +14 -14
- package/dist/esm/{public-rules-6fa7533f.js → public-rules-c6a6946d.js} +8 -8
- package/dist/esm/{range-4d7aa0fd.js → range-b78254de.js} +2 -2
- package/dist/esm/{responsive-format-facade-b594fc72.js → responsive-format-facade-a41e1be7.js} +5 -5
- package/dist/esm/{rich-text-editor-required-rule-a72374cd.js → rich-text-editor-required-rule-d50c24da.js} +1 -1
- package/dist/esm/{static-subject-title-ca83d6b6.js → static-subject-title-52f93124.js} +1 -4
- package/dist/esm/{string-input-formatter-slimmer-75256a17.js → string-input-formatter-slimmer-3acd240c.js} +3 -3
- package/dist/esm/{style-formatter-56074ede.js → style-formatter-f7effaac.js} +1 -1
- package/dist/esm/{sub-state-notify-slimmer-85c658b7.js → sub-state-notify-slimmer-56380f02.js} +2 -2
- package/dist/esm/{sub-state-observer-slimmer-e58a2485.js → sub-state-observer-slimmer-3504e2f2.js} +3 -3
- package/dist/esm/{token-extension-3c198013.js → token-extension-b690953f.js} +9 -8
- package/dist/esm/{translation-3d35961b.js → translation-f10b1e19.js} +1 -1
- package/dist/esm/{translation-slimmer-d5b0d292.js → translation-slimmer-984c9ce6.js} +1 -1
- package/dist/esm/{ui-c20be16d.js → ui-bb99c0c2.js} +16 -3
- package/dist/esm/vega-accordion.entry.js +13 -13
- package/dist/esm/vega-app-footer.entry.js +3 -3
- package/dist/esm/vega-app-header-button.entry.js +14 -14
- package/dist/esm/vega-backdrop.entry.js +1 -1
- package/dist/esm/vega-banner.entry.js +4 -4
- package/dist/esm/vega-box.entry.js +13 -13
- package/dist/esm/vega-brand-logo.entry.js +3 -3
- package/dist/esm/vega-breadcrumb.entry.js +30 -15
- package/dist/esm/vega-button-circle.entry.js +19 -16
- package/dist/esm/vega-button-group_2.entry.js +8 -8
- package/dist/esm/vega-button-link.entry.js +5 -5
- package/dist/esm/vega-button.entry.js +19 -14
- package/dist/esm/vega-calendar_4.entry.js +507 -213
- package/dist/esm/vega-card.entry.js +12 -12
- package/dist/esm/vega-carousel.entry.js +12 -12
- package/dist/esm/vega-checkbox_2.entry.js +11 -11
- package/dist/esm/vega-chip.entry.js +14 -14
- package/dist/esm/vega-code-block.entry.js +15 -15
- package/dist/esm/vega-color-picker.entry.js +9 -9
- package/dist/esm/vega-combo-box.entry.js +12 -12
- package/dist/esm/vega-date-picker_2.entry.js +62 -25
- package/dist/esm/vega-dialog_2.entry.js +15 -15
- package/dist/esm/vega-divider.entry.js +12 -12
- package/dist/esm/vega-dropdown_5.entry.js +23 -22
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-error.entry.js +1 -1
- package/dist/esm/vega-field-label.entry.js +4 -4
- package/dist/esm/vega-file-uploader.entry.js +10 -10
- package/dist/esm/vega-flag-icon.entry.js +12 -12
- package/dist/esm/vega-flex.entry.js +13 -13
- package/dist/esm/vega-font.entry.js +12 -12
- package/dist/esm/vega-form.entry.js +649 -352
- package/dist/esm/vega-grid.entry.js +12 -12
- package/dist/esm/vega-icon.entry.js +12 -12
- package/dist/esm/vega-image-uploader.entry.js +17 -17
- package/dist/esm/vega-input-credit-card.entry.js +10 -10
- package/dist/esm/vega-input-numeric.entry.js +13 -13
- package/dist/esm/vega-input-passcode.entry.js +720 -0
- package/dist/esm/vega-input-phone-number.entry.js +14 -14
- package/dist/esm/vega-input-range.entry.js +11 -11
- package/dist/esm/vega-input-select.entry.js +16 -16
- package/dist/esm/vega-input.entry.js +27 -12
- package/dist/esm/{vega-internal-event-id-bee7946b.js → vega-internal-event-id-5c3e5f7f.js} +4 -1
- package/dist/esm/vega-item-toggle.entry.js +4 -4
- package/dist/esm/vega-left-nav_5.entry.js +44 -20
- package/dist/esm/vega-loader-wrapper_2.entry.js +11 -11
- package/dist/esm/vega-page-notification_2.entry.js +2 -2
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +5 -5
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +6 -6
- package/dist/esm/vega-pagination.entry.js +14 -14
- package/dist/esm/vega-popover_2.entry.js +16 -16
- package/dist/esm/vega-progress-tracker.entry.js +4 -4
- package/dist/esm/vega-radio_2.entry.js +13 -13
- package/dist/esm/vega-rich-text-content.entry.js +10 -10
- package/dist/esm/vega-rich-text-editor_4.entry.js +23 -23
- package/dist/esm/vega-segment-control.entry.js +4 -4
- package/dist/esm/vega-selection-chip_2.entry.js +16 -16
- package/dist/esm/vega-selection-tile_2.entry.js +12 -12
- package/dist/esm/vega-sidenav_3.entry.js +14 -14
- package/dist/esm/vega-signature-capture.entry.js +16 -16
- package/dist/esm/vega-stepper.entry.js +10 -10
- package/dist/esm/vega-tab-group_2.entry.js +6 -6
- package/dist/esm/vega-table_8.entry.js +16 -16
- package/dist/esm/vega-text.entry.js +1 -1
- package/dist/esm/vega-textarea.entry.js +10 -10
- package/dist/esm/vega-time-picker_2.entry.js +19 -19
- package/dist/esm/vega-toggle-switch.entry.js +9 -9
- package/dist/esm/vega-tooltip_2.entry.js +14 -14
- package/dist/esm/vega.js +14 -14
- package/dist/sri/vega-sri-loader.js +147 -0
- package/dist/sri/vega-sri-manifest.json +702 -0
- package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-renderer.d.ts +2 -1
- package/dist/types/components/vega-breadcrumb/types.d.ts +1 -1
- package/dist/types/components/vega-breadcrumb/vega-breadcrumb.d.ts +11 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-current-period-controller.d.ts +1 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-controller.d.ts +6 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-event-preivew-popover-controller.d.ts +5 -0
- package/dist/types/components/vega-calendar/slimmers/common/controllers/vega-calendar-post-operation-date-controller.d.ts +6 -0
- package/dist/types/components/vega-calendar/slimmers/common/helpers/repeat-pattern/calendar-event-repeat-pattern-factory.d.ts +3 -1
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-time-marker-renderer.d.ts +1 -0
- package/dist/types/components/vega-calendar/slimmers/day-view/renderers/vega-calendar-view-with-time-renderer.d.ts +1 -0
- package/dist/types/components/vega-calendar/slimmers/month-view/renderers/vega-calendar-month-view-renderer.d.ts +1 -0
- package/dist/types/components/vega-calendar/types.d.ts +5 -0
- package/dist/types/components/vega-calendar/vega-calendar.d.ts +17 -0
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +13 -0
- package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +1 -0
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +1 -0
- package/dist/types/components/vega-form/slimmers/controllers/vega-form-field-controller.d.ts +158 -0
- package/dist/types/components/vega-form/slimmers/controllers/vega-form-reset-controller.d.ts +43 -0
- package/dist/types/components/vega-form/slimmers/controllers/vega-form-submit-controller.d.ts +72 -0
- package/dist/types/components/vega-form/types.d.ts +13 -0
- package/dist/types/components/vega-form/vega-form.d.ts +6 -110
- package/dist/types/components/vega-input/types.d.ts +65 -0
- package/dist/types/components/vega-input/vega-input.d.ts +17 -2
- package/dist/types/components/vega-input-passcode/slimmers/controllers/vega-input-passcode-keyboard-controller.d.ts +25 -0
- package/dist/types/components/vega-input-passcode/slimmers/controllers/vega-input-passcode-value-controller.d.ts +47 -0
- package/dist/types/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.d.ts +29 -0
- package/dist/types/components/vega-input-passcode/vega-input-passcode.d.ts +135 -0
- package/dist/types/components/vega-nav/slimmers/vega-nav-observer-slimmer.d.ts +3 -0
- package/dist/types/components/vega-nav/vega-left-nav-link/slimmers/controllers/vega-left-nav-link-controller.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +2 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/code-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/image-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/nodes/code-block-node.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/nodes/image-node.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +2 -1
- package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +2 -1
- package/dist/types/components.d.ts +185 -4
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/helpers/calendar/calendar-date.d.ts +5 -3
- package/dist/types/helpers/calendar/calendar-event.d.ts +50 -1
- package/dist/types/helpers/calendar/calendar-period/calendar-period.abstract.d.ts +8 -1
- package/dist/types/helpers/calendar/calendar-period/day-period.d.ts +1 -1
- package/dist/types/helpers/calendar/calendar-period/month-period.d.ts +4 -3
- package/dist/types/helpers/calendar/calendar-period/week-period.d.ts +1 -1
- package/dist/types/helpers/calendar/utils.d.ts +22 -0
- package/dist/types/helpers/change-manager/subject/static-subject/static-subject-title.d.ts +0 -2
- package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +2 -0
- package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +3 -0
- package/dist/types/helpers/immutable/immutable-array.d.ts +86 -0
- package/dist/types/helpers/immutable/immutable-map.d.ts +1 -1
- package/dist/types/helpers/immutable/immutable.d.ts +1 -0
- package/dist/types/helpers/immutable/test/immutable-array.test.d.ts +1 -0
- package/dist/types/types/components.type.d.ts +7 -2
- package/dist/types/utils/ui.d.ts +5 -1
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-1d3a7be6.entry.js → p-00071542.entry.js} +1 -1
- package/dist/vega/p-0113a83c.entry.js +1 -0
- package/dist/vega/{p-61966868.entry.js → p-015cdbe7.entry.js} +1 -1
- package/dist/vega/{p-f37558c1.js → p-019f7f95.js} +1 -1
- package/dist/vega/{p-3a455ac3.entry.js → p-03a1e82e.entry.js} +1 -1
- package/dist/vega/p-0d1eca78.entry.js +1 -0
- package/dist/vega/{p-e41931d4.entry.js → p-0ed53cce.entry.js} +1 -1
- package/dist/vega/p-129c0ce1.js +1 -0
- package/dist/vega/p-16370cfb.js +1 -0
- package/dist/vega/p-19522949.js +1 -0
- package/dist/vega/{p-21a480b0.entry.js → p-1a3cb65e.entry.js} +1 -1
- package/dist/vega/{p-fd2d02ea.entry.js → p-2553031f.entry.js} +1 -1
- package/dist/vega/{p-179693f1.entry.js → p-276b1163.entry.js} +2 -2
- package/dist/vega/p-2d430dc4.entry.js +1 -0
- package/dist/vega/p-308aa2e3.js +1 -0
- package/dist/vega/{p-55c26035.entry.js → p-3288a65b.entry.js} +1 -1
- package/dist/vega/p-34800282.entry.js +1 -0
- package/dist/vega/p-358e9800.entry.js +1 -0
- package/dist/vega/{p-743c5baf.js → p-3925c16b.js} +1 -1
- package/dist/vega/{p-d3bf55e9.js → p-39482a1a.js} +1 -1
- package/dist/vega/{p-7aae9252.entry.js → p-39b9c57b.entry.js} +1 -1
- package/dist/vega/p-3a7f177a.entry.js +1 -0
- package/dist/vega/p-41c3fcb4.js +1 -0
- package/dist/vega/p-447c7590.js +1 -0
- package/dist/vega/p-46830028.entry.js +1 -0
- package/dist/vega/{p-c8789df1.entry.js → p-47cae62d.entry.js} +1 -1
- package/dist/vega/{p-37fd7a80.js → p-47fa359b.js} +1 -1
- package/dist/vega/{p-bb58a7cf.entry.js → p-4897bedd.entry.js} +1 -1
- package/dist/vega/{p-8938b5c4.js → p-4c192985.js} +1 -1
- package/dist/vega/{p-0f2c83a1.entry.js → p-4e33fff6.entry.js} +1 -1
- package/dist/vega/{p-d4564bfd.js → p-521d1d07.js} +1 -1
- package/dist/vega/{p-b3cd1992.entry.js → p-524693d8.entry.js} +1 -1
- package/dist/vega/{p-06b624e6.js → p-54b62ecf.js} +1 -1
- package/dist/vega/{p-92ec4fac.entry.js → p-59298f5e.entry.js} +1 -1
- package/dist/vega/{p-9819dda9.entry.js → p-5a0524ab.entry.js} +1 -1
- package/dist/vega/{p-6c85c1f3.entry.js → p-5e32866d.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-ae963cb3.entry.js → p-5f58d1da.entry.js} +1 -1
- package/dist/vega/{p-956a5899.entry.js → p-616cd622.entry.js} +1 -1
- package/dist/vega/{p-4669ce11.entry.js → p-65693321.entry.js} +1 -1
- package/dist/vega/{p-db29b9f9.entry.js → p-671afda4.entry.js} +1 -1
- package/dist/vega/p-67f159c3.js +1 -0
- package/dist/vega/{p-3176804b.entry.js → p-6ce1e9d4.entry.js} +1 -1
- package/dist/vega/{p-ffc2ef90.entry.js → p-6f6ccf67.entry.js} +1 -1
- package/dist/vega/{p-3a0b9e66.entry.js → p-6f7d42a0.entry.js} +1 -1
- package/dist/vega/{p-684391a4.entry.js → p-719354e7.entry.js} +1 -1
- package/dist/vega/{p-1da54ff3.js → p-725f0a2c.js} +1 -1
- package/dist/vega/{p-4b57bb12.entry.js → p-74d61782.entry.js} +1 -1
- package/dist/vega/{p-3cdbee7e.js → p-7b145620.js} +1 -1
- package/dist/vega/{p-bf8d2978.entry.js → p-7c1d08db.entry.js} +1 -1
- package/dist/vega/p-7cd2b93b.js +1 -0
- package/dist/vega/{p-d20ab09f.entry.js → p-7efb5ebe.entry.js} +1 -1
- package/dist/vega/{p-57c42c30.entry.js → p-7f69081b.entry.js} +1 -1
- package/dist/vega/{p-df31307b.entry.js → p-7f9ec104.entry.js} +1 -1
- package/dist/vega/p-81105691.entry.js +1 -0
- package/dist/vega/p-822c6092.js +1 -0
- package/dist/vega/{p-3709b0e0.js → p-8350506e.js} +1 -1
- package/dist/vega/{p-3354f5a7.js → p-85f9a980.js} +1 -1
- package/dist/vega/{p-641fbb48.entry.js → p-892cbe7c.entry.js} +1 -1
- package/dist/vega/{p-eb5f99db.entry.js → p-8d096fea.entry.js} +1 -1
- package/dist/vega/{p-15766433.entry.js → p-8d574fbd.entry.js} +1 -1
- package/dist/vega/p-8d655fd2.entry.js +1 -0
- package/dist/vega/p-8edf3513.js +1 -0
- package/dist/vega/{p-f4877bee.entry.js → p-92a22562.entry.js} +1 -1
- package/dist/vega/p-9fb6fbcc.js +1 -0
- package/dist/vega/p-a0467b83.js +1 -0
- package/dist/vega/{p-459efe39.entry.js → p-a1b7a179.entry.js} +1 -1
- package/dist/vega/p-a528714c.js +1 -0
- package/dist/vega/p-a5713178.js +1 -0
- package/dist/vega/{p-3a9aa6eb.entry.js → p-a6010b93.entry.js} +1 -1
- package/dist/vega/{p-697acd40.js → p-a7631c6b.js} +1 -1
- package/dist/vega/{p-56b8ffd5.entry.js → p-ab1001f5.entry.js} +1 -1
- package/dist/vega/{p-f81f2071.entry.js → p-ab8f99e9.entry.js} +1 -1
- package/dist/vega/{p-4faa7bab.entry.js → p-ad5393f0.entry.js} +1 -1
- package/dist/vega/{p-1be68fba.js → p-af5bfe34.js} +1 -1
- package/dist/vega/{p-a9e3058e.entry.js → p-b2aaab66.entry.js} +1 -1
- package/dist/vega/{p-e4acac0a.entry.js → p-b431f9d5.entry.js} +1 -1
- package/dist/vega/{p-32058dbd.entry.js → p-b82d3915.entry.js} +1 -1
- package/dist/vega/p-bee1cc34.entry.js +1 -0
- package/dist/vega/{p-2044aa2c.js → p-bf7f755b.js} +1 -1
- package/dist/vega/p-bf9476cd.entry.js +1 -0
- package/dist/vega/{p-32655cfc.entry.js → p-c1da8328.entry.js} +1 -1
- package/dist/vega/{p-e27802fb.js → p-c6ce2869.js} +1 -1
- package/dist/vega/{p-52b0abb5.entry.js → p-cc519f53.entry.js} +1 -1
- package/dist/vega/{p-1655b920.entry.js → p-d006e732.entry.js} +1 -1
- package/dist/vega/p-d0e6454e.entry.js +1 -0
- package/dist/vega/{p-04158119.entry.js → p-d1dacaeb.entry.js} +1 -1
- package/dist/vega/{p-119430db.entry.js → p-d4452dbc.entry.js} +1 -1
- package/dist/vega/{p-64e949fa.entry.js → p-d5761532.entry.js} +1 -1
- package/dist/vega/p-d5ff8b7f.js +1 -0
- package/dist/vega/{p-a1cf29a9.js → p-d88e88a7.js} +1 -1
- package/dist/vega/p-d9671d27.js +1 -0
- package/dist/vega/{p-7c75ce6c.entry.js → p-de624f7d.entry.js} +1 -1
- package/dist/vega/{p-c7f68d74.js → p-e6cccee4.js} +1 -1
- package/dist/vega/{p-4082fa22.entry.js → p-ea05a2fc.entry.js} +1 -1
- package/dist/vega/p-ed8bc4f0.entry.js +1 -0
- package/dist/vega/{p-3af81271.js → p-f360c9ba.js} +1 -1
- package/dist/vega/{p-5443d614.entry.js → p-fc8c5869.entry.js} +1 -1
- package/dist/vega/{p-a30ebdf5.js → p-fde50319.js} +1 -1
- package/dist/vega/{p-159fda34.entry.js → p-fe2e859f.entry.js} +1 -1
- package/dist/vega/{p-3eaa6cce.entry.js → p-fef846d5.entry.js} +1 -1
- package/dist/vega/p-ff3bb4e2.entry.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +3 -2
- package/dist/vega/p-06e6be0e.js +0 -1
- package/dist/vega/p-0b92b15b.entry.js +0 -1
- package/dist/vega/p-1110b422.entry.js +0 -1
- package/dist/vega/p-1aba48bc.js +0 -1
- package/dist/vega/p-1cb87bad.entry.js +0 -1
- package/dist/vega/p-2608b9fe.js +0 -1
- package/dist/vega/p-27dfa896.js +0 -1
- package/dist/vega/p-2ee4def0.js +0 -1
- package/dist/vega/p-3355ec0f.js +0 -1
- package/dist/vega/p-3674db0f.js +0 -1
- package/dist/vega/p-36f331bf.entry.js +0 -1
- package/dist/vega/p-465a6660.entry.js +0 -1
- package/dist/vega/p-4ae3eebf.entry.js +0 -1
- package/dist/vega/p-4e503e23.entry.js +0 -1
- package/dist/vega/p-575235c8.js +0 -1
- package/dist/vega/p-5773a9a3.js +0 -1
- package/dist/vega/p-6163818f.js +0 -1
- package/dist/vega/p-6be16084.js +0 -1
- package/dist/vega/p-6ed663d5.entry.js +0 -1
- package/dist/vega/p-84eabbec.entry.js +0 -1
- package/dist/vega/p-904d1b43.js +0 -1
- package/dist/vega/p-96bda7ca.js +0 -1
- package/dist/vega/p-a3d77013.js +0 -1
- package/dist/vega/p-b9e8c6bf.entry.js +0 -1
- package/dist/vega/p-be539a54.js +0 -1
- package/dist/vega/p-e4b0606a.entry.js +0 -1
- package/dist/vega/p-e6158a33.entry.js +0 -1
- package/dist/vega/p-ed0f000b.entry.js +0 -1
- package/dist/vega/p-f1436035.js +0 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { CalendarDate } from '../calendar-date';
|
|
2
2
|
import { CalendarEvent } from '../calendar-event';
|
|
3
3
|
import { MonthPeriod } from '../calendar-period/month-period';
|
|
4
|
+
import { newSpecPage } from '@stencil/core/testing';
|
|
5
|
+
import { VegaCalendar } from '../../../components/vega-calendar/vega-calendar';
|
|
6
|
+
import { LogUtility } from '../../../utils/log';
|
|
4
7
|
const mockDate = new Date(2024, 5, 13, 13, 44);
|
|
5
8
|
const mockStringDate = '06/13/2024';
|
|
6
9
|
const rawEvent = {
|
|
@@ -188,3 +191,71 @@ describe('calendar-event', () => {
|
|
|
188
191
|
expect(calendarEvent11.generateRepeatString()).toBe('');
|
|
189
192
|
});
|
|
190
193
|
});
|
|
194
|
+
describe('calendar event with timezone', () => {
|
|
195
|
+
it('should display correct event start time after timezone conversion', async () => {
|
|
196
|
+
const testEvents = [
|
|
197
|
+
{
|
|
198
|
+
key: 'event1',
|
|
199
|
+
title: 'Test Event 1',
|
|
200
|
+
startDate: '10/29/2025',
|
|
201
|
+
endDate: '10/29/2025',
|
|
202
|
+
startTime: '09:00',
|
|
203
|
+
endTime: '17:00',
|
|
204
|
+
isAllDay: false,
|
|
205
|
+
},
|
|
206
|
+
];
|
|
207
|
+
const page = await newSpecPage({
|
|
208
|
+
components: [VegaCalendar],
|
|
209
|
+
html: `<vega-calendar timezone="UTC" view-mode="week"></vega-calendar>`,
|
|
210
|
+
});
|
|
211
|
+
const component = page.rootInstance;
|
|
212
|
+
const calendarElement = page.body.querySelector('vega-calendar');
|
|
213
|
+
calendarElement.events = testEvents;
|
|
214
|
+
await page.waitForChanges();
|
|
215
|
+
expect(component.calendarEvents).toHaveLength(1);
|
|
216
|
+
const calendarEvent = component.calendarEvents[0];
|
|
217
|
+
expect(calendarEvent.startTime).toBe('09:00');
|
|
218
|
+
calendarElement.timezone = 'Asia/Shanghai';
|
|
219
|
+
expect(calendarEvent.startTime).toBe('17:0');
|
|
220
|
+
expect(calendarEvent.endTime).toBe('1:0');
|
|
221
|
+
calendarElement.timezone = 'America/New_York';
|
|
222
|
+
expect(calendarEvent.startTime).toBe('5:0');
|
|
223
|
+
expect(calendarEvent.endTime).toBe('13:0');
|
|
224
|
+
});
|
|
225
|
+
it('should handle timezone conversion with invalid timezone gracefully', async () => {
|
|
226
|
+
const testEvents = [
|
|
227
|
+
{
|
|
228
|
+
key: 'event1',
|
|
229
|
+
title: 'Test Event 1',
|
|
230
|
+
startDate: '10/29/2025',
|
|
231
|
+
endDate: '10/29/2025',
|
|
232
|
+
startTime: '14:30',
|
|
233
|
+
endTime: '16:45',
|
|
234
|
+
isAllDay: false,
|
|
235
|
+
},
|
|
236
|
+
];
|
|
237
|
+
const page = await newSpecPage({
|
|
238
|
+
components: [VegaCalendar],
|
|
239
|
+
html: `<vega-calendar timezone="Invalid/Timezone"></vega-calendar>`,
|
|
240
|
+
});
|
|
241
|
+
const calendarElement = page.body.querySelector('vega-calendar');
|
|
242
|
+
calendarElement.events = testEvents;
|
|
243
|
+
spyOn(LogUtility, 'warn');
|
|
244
|
+
await page.waitForChanges();
|
|
245
|
+
expect(LogUtility.warn).toHaveBeenCalledWith('Invalid timezone:', 'Invalid/Timezone');
|
|
246
|
+
});
|
|
247
|
+
it('should not call updateTimezone when no calendar events exist during timezone change', async () => {
|
|
248
|
+
const page = await newSpecPage({
|
|
249
|
+
components: [VegaCalendar],
|
|
250
|
+
html: `<vega-calendar timezone="UTC"></vega-calendar>`,
|
|
251
|
+
});
|
|
252
|
+
const component = page.rootInstance;
|
|
253
|
+
expect(component.calendarEvents).toHaveLength(0);
|
|
254
|
+
const calendarElement = page.body.querySelector('vega-calendar');
|
|
255
|
+
calendarElement.timezone = 'Asia/Shanghai';
|
|
256
|
+
expect(() => {
|
|
257
|
+
component.watchTimezoneChange();
|
|
258
|
+
}).not.toThrow();
|
|
259
|
+
expect(component.postOperationDate).toBeDefined();
|
|
260
|
+
});
|
|
261
|
+
});
|
|
@@ -79,3 +79,31 @@ describe('day-period', () => {
|
|
|
79
79
|
expect(dayPeriod.current.date).toEqual(8);
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
|
+
describe('DayPeriod Timezone', () => {
|
|
83
|
+
beforeEach(() => {
|
|
84
|
+
jest.useFakeTimers('modern');
|
|
85
|
+
});
|
|
86
|
+
afterEach(() => {
|
|
87
|
+
jest.useRealTimers();
|
|
88
|
+
});
|
|
89
|
+
it('should create day period for a specific date', () => {
|
|
90
|
+
const dayPeriod = new DayPeriod(new CalendarDate(2025, 10, 29));
|
|
91
|
+
expect(dayPeriod.current).toEqual(new CalendarDate(2025, 10, 29));
|
|
92
|
+
expect(dayPeriod.startDate).toEqual(new CalendarDate(2025, 10, 29));
|
|
93
|
+
expect(dayPeriod.endDate).toEqual(new CalendarDate(2025, 10, 29));
|
|
94
|
+
});
|
|
95
|
+
it('should create day period with timezone Asia/Shanghai', () => {
|
|
96
|
+
jest.setSystemTime(new Date('2025-10-29T16:00:00Z'));
|
|
97
|
+
const dayPeriod = new DayPeriod(undefined, true, 'Asia/Shanghai');
|
|
98
|
+
expect(dayPeriod.current).toEqual(new CalendarDate(2025, 10, 30));
|
|
99
|
+
expect(dayPeriod.startDate).toEqual(new CalendarDate(2025, 10, 30));
|
|
100
|
+
expect(dayPeriod.endDate).toEqual(new CalendarDate(2025, 10, 30));
|
|
101
|
+
});
|
|
102
|
+
it('should go to now with timezone America/Los_Angeles', () => {
|
|
103
|
+
jest.setSystemTime(new Date('2025-10-30T06:00:00Z'));
|
|
104
|
+
const nowPeriod = new DayPeriod(undefined, true, 'America/Los_Angeles');
|
|
105
|
+
expect(nowPeriod.current).toEqual(new CalendarDate(2025, 10, 29));
|
|
106
|
+
expect(nowPeriod.startDate).toEqual(new CalendarDate(2025, 10, 29));
|
|
107
|
+
expect(nowPeriod.endDate).toEqual(new CalendarDate(2025, 10, 29));
|
|
108
|
+
});
|
|
109
|
+
});
|
|
@@ -66,3 +66,38 @@ describe('month-period', () => {
|
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
});
|
|
69
|
+
describe('MonthPeriod Timezone', () => {
|
|
70
|
+
beforeEach(() => {
|
|
71
|
+
jest.useFakeTimers('modern');
|
|
72
|
+
});
|
|
73
|
+
afterEach(() => {
|
|
74
|
+
jest.useRealTimers();
|
|
75
|
+
});
|
|
76
|
+
it('should create month period for a specific date', () => {
|
|
77
|
+
const monthPeriod = new MonthPeriod(new CalendarDate(2025, 10, 29));
|
|
78
|
+
expect(monthPeriod.current).toEqual(new CalendarDate(2025, 10, 29));
|
|
79
|
+
expect(monthPeriod.startDate.month).toBe(9);
|
|
80
|
+
expect(monthPeriod.endDate.month).toBe(11);
|
|
81
|
+
});
|
|
82
|
+
it('should create month period with timezone Asia/Shanghai', () => {
|
|
83
|
+
jest.setSystemTime(new Date('2025-10-31T16:00:00Z'));
|
|
84
|
+
const monthPeriod = new MonthPeriod(undefined, true, 'Asia/Shanghai');
|
|
85
|
+
expect(monthPeriod.current).toEqual(new CalendarDate(2025, 11, 1));
|
|
86
|
+
expect(monthPeriod.startDate.month).toBe(10);
|
|
87
|
+
expect(monthPeriod.endDate.month).toBe(12);
|
|
88
|
+
});
|
|
89
|
+
it('should go to now with timezone America/Los_Angeles', () => {
|
|
90
|
+
jest.setSystemTime(new Date('2025-11-01T06:00:00Z'));
|
|
91
|
+
const monthPeriod = new MonthPeriod(undefined, true, 'America/Los_Angeles');
|
|
92
|
+
expect(monthPeriod.current).toEqual(new CalendarDate(2025, 10, 31));
|
|
93
|
+
expect(monthPeriod.startDate.month).toBe(9);
|
|
94
|
+
expect(monthPeriod.endDate.month).toBe(11);
|
|
95
|
+
});
|
|
96
|
+
it('should go to another month', () => {
|
|
97
|
+
const monthPeriod = new MonthPeriod(new CalendarDate(2025, 10, 29));
|
|
98
|
+
const nextMonth = monthPeriod.goTo(new CalendarDate(2025, 11, 1));
|
|
99
|
+
expect(nextMonth.current).toEqual(new CalendarDate(2025, 11, 1));
|
|
100
|
+
expect(nextMonth.startDate.month).toBe(10);
|
|
101
|
+
expect(nextMonth.endDate.month).toBe(12);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
@@ -58,3 +58,46 @@ describe('week-period', () => {
|
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
|
+
describe('WeekPeriod Timezone', () => {
|
|
62
|
+
beforeEach(() => {
|
|
63
|
+
jest.useFakeTimers('modern');
|
|
64
|
+
});
|
|
65
|
+
afterEach(() => {
|
|
66
|
+
jest.useRealTimers();
|
|
67
|
+
});
|
|
68
|
+
it('should create week period for a specific date', () => {
|
|
69
|
+
jest.setSystemTime(new Date('2025-10-29T12:00:00Z'));
|
|
70
|
+
const weekPeriod = new WeekPeriod();
|
|
71
|
+
expect(weekPeriod.current).toEqual(new CalendarDate(2025, 10, 29));
|
|
72
|
+
expect(weekPeriod.startDate).toEqual(new CalendarDate(2025, 10, 26));
|
|
73
|
+
expect(weekPeriod.endDate).toEqual(new CalendarDate(2025, 11, 1));
|
|
74
|
+
});
|
|
75
|
+
it('should create week period with timezone Asia/Shanghai', () => {
|
|
76
|
+
jest.setSystemTime(new Date('2025-10-27T16:00:00Z'));
|
|
77
|
+
const weekPeriod = new WeekPeriod(undefined, true, 'Asia/Shanghai');
|
|
78
|
+
expect(weekPeriod.current).toEqual(new CalendarDate(2025, 10, 28));
|
|
79
|
+
expect(weekPeriod.startDate).toEqual(new CalendarDate(2025, 10, 26));
|
|
80
|
+
expect(weekPeriod.endDate).toEqual(new CalendarDate(2025, 11, 1));
|
|
81
|
+
});
|
|
82
|
+
it('should go to a date in another week', () => {
|
|
83
|
+
const weekPeriod = new WeekPeriod(new CalendarDate(2025, 10, 29));
|
|
84
|
+
const nextWeek = weekPeriod.goTo(new CalendarDate(2025, 11, 4));
|
|
85
|
+
expect(nextWeek.current).toEqual(new CalendarDate(2025, 11, 4));
|
|
86
|
+
expect(nextWeek.startDate).toEqual(new CalendarDate(2025, 11, 2));
|
|
87
|
+
expect(nextWeek.endDate).toEqual(new CalendarDate(2025, 11, 8));
|
|
88
|
+
});
|
|
89
|
+
it('should go to now with timezone America/New_York', () => {
|
|
90
|
+
jest.setSystemTime(new Date('2025-11-02T04:00:00Z'));
|
|
91
|
+
const weekPeriod = new WeekPeriod(undefined, true, 'America/New_York');
|
|
92
|
+
const nowPeriod = weekPeriod.now();
|
|
93
|
+
expect(nowPeriod.current).toEqual(new CalendarDate(2025, 11, 2));
|
|
94
|
+
expect(nowPeriod.startDate).toEqual(new CalendarDate(2025, 11, 2));
|
|
95
|
+
expect(nowPeriod.endDate).toEqual(new CalendarDate(2025, 11, 8));
|
|
96
|
+
});
|
|
97
|
+
it('should handle week period at year boundary', () => {
|
|
98
|
+
const weekPeriod = new WeekPeriod(new CalendarDate(2025, 12, 31));
|
|
99
|
+
expect(weekPeriod.current).toEqual(new CalendarDate(2025, 12, 31));
|
|
100
|
+
expect(weekPeriod.startDate).toEqual(new CalendarDate(2025, 12, 28));
|
|
101
|
+
expect(weekPeriod.endDate).toEqual(new CalendarDate(2026, 1, 3));
|
|
102
|
+
});
|
|
103
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getWeekdays } from '../utils';
|
|
1
|
+
import { getWeekdays, getCurrentDatePartsInTimezone, getSystemTimezone } from '../utils';
|
|
2
2
|
describe('utils', () => {
|
|
3
3
|
it('should return weekdays as expected by default', () => {
|
|
4
4
|
expect(getWeekdays()).toEqual([0, 1, 2, 3, 4, 5, 6]);
|
|
@@ -7,3 +7,31 @@ describe('utils', () => {
|
|
|
7
7
|
expect(getWeekdays(1)).toEqual([1, 2, 3, 4, 5, 6, 0]);
|
|
8
8
|
});
|
|
9
9
|
});
|
|
10
|
+
describe('timezone-utils', () => {
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
jest.useFakeTimers('modern');
|
|
13
|
+
jest.setSystemTime(new Date('2025-10-29T23:30:00Z'));
|
|
14
|
+
});
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
jest.useRealTimers();
|
|
17
|
+
});
|
|
18
|
+
it('should get correct date parts in UTC', () => {
|
|
19
|
+
const result = getCurrentDatePartsInTimezone('UTC', new Date('2025-10-29T23:30:00Z'));
|
|
20
|
+
expect(result.year).toBe(2025);
|
|
21
|
+
expect(result.month).toBe(10);
|
|
22
|
+
expect(result.date).toBe(29);
|
|
23
|
+
});
|
|
24
|
+
it('should get current date parts in specific timezone', () => {
|
|
25
|
+
const shanghaiParts = getCurrentDatePartsInTimezone('Asia/Shanghai', new Date('2025-10-29T23:30:00Z'));
|
|
26
|
+
expect(shanghaiParts.year).toBe(2025);
|
|
27
|
+
expect(shanghaiParts.month).toBe(10);
|
|
28
|
+
expect(shanghaiParts.date).toBe(30); // already next day
|
|
29
|
+
});
|
|
30
|
+
it('should fallback to system time for invalid timezone', () => {
|
|
31
|
+
const result = getCurrentDatePartsInTimezone('Invalid/Timezone', new Date('2025-10-29T23:30:00Z'));
|
|
32
|
+
const systemTimezoneResult = getCurrentDatePartsInTimezone(getSystemTimezone(), new Date('2025-10-29T23:30:00Z'));
|
|
33
|
+
expect(result.year).toBe(systemTimezoneResult.year);
|
|
34
|
+
expect(result.month).toBe(systemTimezoneResult.month);
|
|
35
|
+
expect(result.date).toBe(systemTimezoneResult.date);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { VegaInternalTranslation } from '../translation';
|
|
2
|
+
import { LogUtility } from '../../utils/log';
|
|
2
3
|
/**
|
|
3
4
|
* Get a week days array
|
|
4
5
|
*
|
|
@@ -46,3 +47,48 @@ export const formatDisplayTime = (timeFormat, timeString) => {
|
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* Gets current date parts in the specified timezone
|
|
52
|
+
*
|
|
53
|
+
* @param {string} timezone - The IANA timezone identifier
|
|
54
|
+
* @param {Date} date - The date to get parts for
|
|
55
|
+
* @returns {DateParts} - An object with year, month, and date properties for the specified timezone
|
|
56
|
+
*/
|
|
57
|
+
export function getCurrentDatePartsInTimezone(timezone, date) {
|
|
58
|
+
if (timezone && timezone !== getSystemTimezone()) {
|
|
59
|
+
try {
|
|
60
|
+
const formatter = new Intl.DateTimeFormat([], {
|
|
61
|
+
timeZone: timezone,
|
|
62
|
+
year: 'numeric',
|
|
63
|
+
month: '2-digit',
|
|
64
|
+
day: '2-digit',
|
|
65
|
+
});
|
|
66
|
+
const parts = formatter.formatToParts(date);
|
|
67
|
+
const yearPart = parts.find((part) => part.type === 'year');
|
|
68
|
+
const monthPart = parts.find((part) => part.type === 'month');
|
|
69
|
+
const dayPart = parts.find((part) => part.type === 'day');
|
|
70
|
+
if (yearPart && monthPart && dayPart) {
|
|
71
|
+
const year = parseInt(yearPart.value, 10);
|
|
72
|
+
const month = parseInt(monthPart.value, 10);
|
|
73
|
+
const date = parseInt(dayPart.value, 10);
|
|
74
|
+
return { year, month, date };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (_a) {
|
|
78
|
+
LogUtility.warn('Invalid timezone:', timezone);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
year: date.getFullYear(),
|
|
83
|
+
month: date.getMonth() + 1,
|
|
84
|
+
date: date.getDate(),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the system timezone identifier
|
|
89
|
+
*
|
|
90
|
+
* @returns {string} - The system timezone identifier (e.g., "America/New_York")
|
|
91
|
+
*/
|
|
92
|
+
export const getSystemTimezone = () => {
|
|
93
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
94
|
+
};
|
package/dist/collection/helpers/change-manager/subject/static-subject/static-subject-title.js
CHANGED
|
@@ -4,8 +4,6 @@ export const LEFT_NAV_LINK_SELECTED_TOPIC = new StaticSubject('LEFT_NAV_LINK_SEL
|
|
|
4
4
|
export const ACCORDION_EXPAND_TOPIC = new StaticSubject('ACCORDION_EXPAND_TOPIC');
|
|
5
5
|
export const FORM_RESET_OPERATION_TRIGGERED = new StaticSubject('FORM_RESET_OPERATION_TRIGGERED');
|
|
6
6
|
export const FORM_FIELD_ELEMENT_DISCONNECTED = new StaticSubject('FORM_FIELD_ELEMENT_DISCONNECTED');
|
|
7
|
-
export const FORM_SUBMIT = new StaticSubject('FORM_SUBMIT');
|
|
8
|
-
export const FORM_RESET = new StaticSubject('FORM_RESET');
|
|
9
7
|
export const RADIO_GROUP_DISABLED_CHANGE = new StaticSubject('RADIO_GROUP_DISABLED_CHANGE');
|
|
10
8
|
export const CHECKBOX_GROUP_DISABLED_CHANGE = new StaticSubject('CHECKBOX_GROUP_DISABLED_CHANGE');
|
|
11
9
|
export const FORM_FIELD_PENDING_VALID_CHANGE = new StaticSubject('FORM_FIELD_PENDING_VALID_CHANGE');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VegaExpand, VegaClick, VegaDropdownClick, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaDropdownShow, VegaDropdownHide, VegaReset, VegaDropdownSearch, VegaSearchTrigger, VegaLabelButtonClick, VegaSelectFileChange, VegaRetry, VegaPreview, VegaFormSubmit, VegaFormReset, VegaValidate, VegaCancel, VegaFocus, VegaBlur, VegaCountryChange, VegaShow, VegaHide, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaImageInserted, VegaSelectChange, VegaSelectAllChange, VegaRowClick, VegaRowExpand, VegaRowSelect, VegaRowSelectAll, } from './vega-event-id';
|
|
1
|
+
import { VegaExpand, VegaClick, VegaDropdownClick, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaDropdownShow, VegaDropdownHide, VegaReset, VegaDropdownSearch, VegaSearchTrigger, VegaLabelButtonClick, VegaSelectFileChange, VegaRetry, VegaPreview, VegaFormSubmit, VegaFormReset, VegaValidate, VegaCancel, VegaFocus, VegaBlur, VegaPaste, VegaComplete, VegaCountryChange, VegaShow, VegaHide, VegaToggleStatus, VegaOpen, VegaStateUpdate, VegaGroupClick, VegaMenuClick, VegaActionClick, VegaPageSizeChange, VegaPopoverShow, VegaPopoverHide, VegaCurrentStepUpdate, VegaImageInserted, VegaSelectChange, VegaSelectAllChange, VegaRowClick, VegaRowExpand, VegaRowSelect, VegaRowSelectAll, } from './vega-event-id';
|
|
2
2
|
const entries = [
|
|
3
3
|
['vega-accordion', [VegaExpand]],
|
|
4
4
|
['vega-app-header-button', [VegaClick, VegaDropdownClick]],
|
|
@@ -34,9 +34,10 @@ const entries = [
|
|
|
34
34
|
['vega-file-uploader', [VegaChange, VegaSelectFileChange, VegaRemove, VegaRetry, VegaPreview]],
|
|
35
35
|
['vega-form', [VegaFormSubmit, VegaFormReset, VegaValidate]],
|
|
36
36
|
['vega-image-uploader', [VegaChange, VegaRemove, VegaCancel]],
|
|
37
|
-
['vega-input', [VegaChange, VegaFocus, VegaBlur, VegaLabelButtonClick]],
|
|
37
|
+
['vega-input', [VegaChange, VegaFocus, VegaBlur, VegaLabelButtonClick, VegaPaste]],
|
|
38
38
|
['vega-input-credit-card', [VegaChange, VegaBlur, VegaFocus]],
|
|
39
39
|
['vega-input-numeric', [VegaChange]],
|
|
40
|
+
['vega-input-passcode', [VegaChange, VegaComplete]],
|
|
40
41
|
['vega-input-phone-number', [VegaChange, VegaCountryChange]],
|
|
41
42
|
['vega-input-range', [VegaChange]],
|
|
42
43
|
['vega-input-select', [VegaChange, VegaSearch, VegaSearchTrigger, VegaShow, VegaHide]],
|
|
@@ -102,4 +102,6 @@ export const VegaPreview = new VegaEventID('vegaPreview', 'preview');
|
|
|
102
102
|
export const VegaLabelButtonClick = new VegaEventID('vegaLabelButtonClick', 'labelButtonClick');
|
|
103
103
|
export const VegaReset = new VegaEventID('vegaReset', 'reset');
|
|
104
104
|
export const VegaMonthYearChange = new VegaEventID('vegaMonthYearChange', 'monthYearChange');
|
|
105
|
-
export const
|
|
105
|
+
export const VegaComplete = new VegaEventID('vegaComplete', 'complete');
|
|
106
|
+
export const VegaPaste = new VegaEventID('vegaPaste', 'paste');
|
|
107
|
+
export const HTMLNativeEventIds = [VegaChange, VegaClick, VegaFocus, VegaBlur, VegaPaste];
|
|
@@ -57,4 +57,7 @@ export const VegaInternalCalendarEventPreviewUpdate = new VegaInternalEventID('c
|
|
|
57
57
|
export const VegaInternalCalendarEventPreviewClear = new VegaInternalEventID('calendarEventPreviewClear');
|
|
58
58
|
export const VegaInternalUpdateRTECursorPosition = new VegaInternalEventID('InternalUpdateRTECursorPosition');
|
|
59
59
|
export const VegaInternalMonthYearChange = new VegaInternalEventID('internalMonthYearChange');
|
|
60
|
+
export const VegaInternalLeftNavLinkSelectedTopic = new VegaInternalEventID('leftNavLinkSelectedTopic');
|
|
60
61
|
export const VegaInternalCalendarEventPreviewHide = new VegaInternalEventID('calendarEventPreviewHide');
|
|
62
|
+
export const VegaInternalFormSubmit = new VegaInternalEventID('formSubmit');
|
|
63
|
+
export const VegaInternalFormReset = new VegaInternalEventID('formReset');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VEGA_COMPONENT_EVENT_MAP } from '../event-id/component-event-id-map';
|
|
2
|
-
import { VegaBlur, VegaChange, VegaFocus, VegaLabelButtonClick } from '../event-id/vega-event-id';
|
|
2
|
+
import { VegaBlur, VegaChange, VegaFocus, VegaLabelButtonClick, VegaPaste } from '../event-id/vega-event-id';
|
|
3
3
|
test('VEGA_COMPONENT_EVENT_MAP size', () => {
|
|
4
4
|
expect(VEGA_COMPONENT_EVENT_MAP.size).not.toEqual(0);
|
|
5
5
|
});
|
|
@@ -9,5 +9,6 @@ test('VEGA_COMPONENT_EVENT_MAP vega-input', () => {
|
|
|
9
9
|
VegaFocus,
|
|
10
10
|
VegaBlur,
|
|
11
11
|
VegaLabelButtonClick,
|
|
12
|
+
VegaPaste,
|
|
12
13
|
]);
|
|
13
14
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VegaEventManager } from '../../public-api';
|
|
2
|
-
import { VegaBlur, VegaChange, VegaCreate, VegaDropdownClick, VegaDropdownHide, VegaDropdownSearch, VegaDropdownShow, VegaFocus, VegaLabelButtonClick, VegaReset, VegaSearchTrigger, } from '../event-id/vega-event-id';
|
|
2
|
+
import { VegaBlur, VegaChange, VegaCreate, VegaDropdownClick, VegaDropdownHide, VegaDropdownSearch, VegaDropdownShow, VegaFocus, VegaLabelButtonClick, VegaPaste, VegaReset, VegaSearchTrigger, } from '../event-id/vega-event-id';
|
|
3
3
|
import VegaTelemetryRuntimeMetricsManager from '@globalpayments/vega-telemetry-runtime-metrics/index';
|
|
4
4
|
import { sleep } from '../../../utils/test-utils';
|
|
5
5
|
describe('VegaEventManager', () => {
|
|
@@ -23,6 +23,7 @@ describe('VegaEventManager', () => {
|
|
|
23
23
|
VegaFocus,
|
|
24
24
|
VegaBlur,
|
|
25
25
|
VegaLabelButtonClick,
|
|
26
|
+
VegaPaste,
|
|
26
27
|
]);
|
|
27
28
|
expect(VegaEventManager.getEnabledEventIdsByComponent('vega-dropdown')).toEqual([
|
|
28
29
|
VegaDropdownShow,
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable Array cannot be changed once created
|
|
3
|
+
*/
|
|
4
|
+
export class ImmutableArray {
|
|
5
|
+
/**
|
|
6
|
+
* The constructor of ImmutableArray
|
|
7
|
+
*
|
|
8
|
+
* @typedef T generic type parameter
|
|
9
|
+
* @param {T[]} initialArray - Optional initial array
|
|
10
|
+
* @param {() => void} onMutate - Optional callback invoked with the new ImmutableArray whenever a mutation is performed
|
|
11
|
+
*/
|
|
12
|
+
constructor(initialArray, onMutate) {
|
|
13
|
+
this.length = 0;
|
|
14
|
+
this.array = [];
|
|
15
|
+
if (initialArray) {
|
|
16
|
+
this.array = initialArray;
|
|
17
|
+
this.length = initialArray.length;
|
|
18
|
+
}
|
|
19
|
+
if (onMutate) {
|
|
20
|
+
this.onMutate = onMutate;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The function is called when the array is mutated
|
|
25
|
+
*
|
|
26
|
+
* @typedef T generic type parameter
|
|
27
|
+
* @param {ImmutableArray<T>} _newArr - The new array that was created.
|
|
28
|
+
*/
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
|
+
onMutate(_newArr) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Append items to the array and return a new ImmutableArray
|
|
35
|
+
*
|
|
36
|
+
* @param {T[]} items - The items to be appended to the array
|
|
37
|
+
* @returns {ImmutableArray<T>} - a new ImmutableArray with new items pushed.
|
|
38
|
+
*/
|
|
39
|
+
push(...items) {
|
|
40
|
+
return this.withMutation((arr) => {
|
|
41
|
+
arr.push(...items);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Remove the last item from the array and return a new ImmutableArray.
|
|
46
|
+
* If the array is empty, a new ImmutableArray with the same (empty) contents is returned.
|
|
47
|
+
*
|
|
48
|
+
* @returns {ImmutableArray<T>} - a new ImmutableArray with the last one popped
|
|
49
|
+
*/
|
|
50
|
+
pop() {
|
|
51
|
+
return this.withMutation((arr) => {
|
|
52
|
+
if (arr.length > 0)
|
|
53
|
+
arr.pop();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Update the item at the specified index and return a new ImmutableArray.
|
|
58
|
+
* If the index is out of range, no change is made and a new ImmutableArray (same contents) is returned.
|
|
59
|
+
*
|
|
60
|
+
* @param {number} index - Index of the item to update.
|
|
61
|
+
* @param {T} value - New value to set at the given index.
|
|
62
|
+
* @returns {ImmutableArray<T>} - a new ImmutableArray with updated item.
|
|
63
|
+
*/
|
|
64
|
+
set(index, value) {
|
|
65
|
+
return this.withMutation((arr) => {
|
|
66
|
+
if (index >= 0)
|
|
67
|
+
arr[index] = value;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Set values from the provided array into this ImmutableArray one by one
|
|
72
|
+
*
|
|
73
|
+
* @param {T[]} values - Array of values to write into this array.
|
|
74
|
+
* @returns {ImmutableArray<T>} - a new ImmutableArray with updated items.
|
|
75
|
+
*/
|
|
76
|
+
setAll(values) {
|
|
77
|
+
return this.withMutation((arr) => {
|
|
78
|
+
arr.length = 0;
|
|
79
|
+
for (let i = 0; i < values.length; i++) {
|
|
80
|
+
arr[i] = values[i];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Clear the array and return a new ImmutableArray
|
|
86
|
+
*
|
|
87
|
+
* @returns {ImmutableArray<T>} return a new ImmutableArray.
|
|
88
|
+
*/
|
|
89
|
+
clear() {
|
|
90
|
+
return this.withMutation((arr) => {
|
|
91
|
+
arr.length = 0;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Performs a mutation on a copy of the internal array and returns a new ImmutableArray
|
|
96
|
+
*
|
|
97
|
+
* @param {(arr: T[]) => void} fn - (arr: T[]) => void
|
|
98
|
+
* @returns {ImmutableArray<T>} A new ImmutableArray
|
|
99
|
+
*/
|
|
100
|
+
withMutation(fn) {
|
|
101
|
+
const newArr = [...this.array];
|
|
102
|
+
fn(newArr);
|
|
103
|
+
const newImmutable = new ImmutableArray(newArr, this.onMutate);
|
|
104
|
+
this.onMutate(newImmutable);
|
|
105
|
+
return newImmutable;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get item by index
|
|
109
|
+
*
|
|
110
|
+
* @param {number} index - index of the array items
|
|
111
|
+
* @returns {T | undefined} The array item with the index
|
|
112
|
+
*/
|
|
113
|
+
get(index) {
|
|
114
|
+
return this.array[index];
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Join array elements into a string separated by the given separator.
|
|
118
|
+
*
|
|
119
|
+
* @param {string} [separator=','] - Separator to use between elements.
|
|
120
|
+
* @returns {string} The joined string.
|
|
121
|
+
*/
|
|
122
|
+
join(separator) {
|
|
123
|
+
return this.array.join(separator);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* It returns an array of the values in the array
|
|
127
|
+
*
|
|
128
|
+
* @returns {T[]} An array of the values in the array.
|
|
129
|
+
*/
|
|
130
|
+
toArray() {
|
|
131
|
+
return this.array;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ImmutableArray } from '../immutable-array';
|
|
2
|
+
describe('immutableArray', () => {
|
|
3
|
+
test('array with default values', () => {
|
|
4
|
+
const array = new ImmutableArray(['a', 'b', 'c']);
|
|
5
|
+
expect(array.length).toEqual(3);
|
|
6
|
+
expect(array.get(0)).toEqual('a');
|
|
7
|
+
expect(array.get(1)).toEqual('b');
|
|
8
|
+
expect(array.get(2)).toEqual('c');
|
|
9
|
+
expect(array.get(4)).toEqual(undefined);
|
|
10
|
+
});
|
|
11
|
+
test('should produce new array if values changed', () => {
|
|
12
|
+
const array = new ImmutableArray();
|
|
13
|
+
const array1 = array.push('a');
|
|
14
|
+
const array2 = array.push(...['b', 'c', 'd']);
|
|
15
|
+
const array3 = array1.pop();
|
|
16
|
+
const array4 = array2.pop();
|
|
17
|
+
expect(array.length).toEqual(0);
|
|
18
|
+
expect(array1.length).toEqual(1);
|
|
19
|
+
expect(array1.toArray()).toEqual(['a']);
|
|
20
|
+
expect(array2.length).toEqual(3);
|
|
21
|
+
expect(array2.toArray()).toEqual(['b', 'c', 'd']);
|
|
22
|
+
expect(array3.length).toEqual(0);
|
|
23
|
+
expect(array4.length).toEqual(2);
|
|
24
|
+
expect(array4.toArray()).toEqual(['b', 'c']);
|
|
25
|
+
});
|
|
26
|
+
test('reassigned array in callback', () => {
|
|
27
|
+
let array = new ImmutableArray(new Array(), (newArray) => {
|
|
28
|
+
array = newArray;
|
|
29
|
+
});
|
|
30
|
+
array.push('a');
|
|
31
|
+
array.push('b');
|
|
32
|
+
array.push('c');
|
|
33
|
+
array.push('d');
|
|
34
|
+
expect(array.length).toEqual(4);
|
|
35
|
+
expect(array.toArray()).toEqual(['a', 'b', 'c', 'd']);
|
|
36
|
+
});
|
|
37
|
+
test('clear the array values', () => {
|
|
38
|
+
let array = new ImmutableArray(new Array('a', 'b', 'c'), (newArray) => {
|
|
39
|
+
array = newArray;
|
|
40
|
+
});
|
|
41
|
+
array.clear();
|
|
42
|
+
expect(array.length).toEqual(0);
|
|
43
|
+
});
|
|
44
|
+
test('set and get the item in array', () => {
|
|
45
|
+
let array = new ImmutableArray(new Array('a', 'b', 'c'), (newArray) => {
|
|
46
|
+
array = newArray;
|
|
47
|
+
});
|
|
48
|
+
array.set(1, 'd');
|
|
49
|
+
expect(array.get(1)).toEqual('d');
|
|
50
|
+
expect(array.toArray()).toEqual(['a', 'd', 'c']);
|
|
51
|
+
});
|
|
52
|
+
test('setAll the items in array', () => {
|
|
53
|
+
const arr = ['a', 'b', 'c'];
|
|
54
|
+
let array = new ImmutableArray([], (newArray) => {
|
|
55
|
+
array = newArray;
|
|
56
|
+
});
|
|
57
|
+
array.setAll(arr);
|
|
58
|
+
expect(array.toArray()).toEqual(['a', 'b', 'c']);
|
|
59
|
+
});
|
|
60
|
+
test('join the items in array to a string', () => {
|
|
61
|
+
let array = new ImmutableArray(['a', 'b', 'c'], (newArray) => {
|
|
62
|
+
array = newArray;
|
|
63
|
+
});
|
|
64
|
+
const str = array.join();
|
|
65
|
+
expect(str).toEqual('a,b,c');
|
|
66
|
+
});
|
|
67
|
+
test('change the array by calling withMutation method', () => {
|
|
68
|
+
let array = new ImmutableArray(new Array('a', 'b', 'c'), (newArray) => {
|
|
69
|
+
array = newArray;
|
|
70
|
+
});
|
|
71
|
+
expect(array.length).toEqual(3);
|
|
72
|
+
array.withMutation((arr) => {
|
|
73
|
+
arr.length = 0;
|
|
74
|
+
arr.push('d');
|
|
75
|
+
});
|
|
76
|
+
expect(array.toArray()).toEqual(['d']);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -70,7 +70,13 @@ class KeyboardManager {
|
|
|
70
70
|
* @returns {boolean} - should invoke
|
|
71
71
|
*/
|
|
72
72
|
shouldInvokeListener(listener, event) {
|
|
73
|
-
|
|
73
|
+
let keyCode = '';
|
|
74
|
+
if (event.code) {
|
|
75
|
+
keyCode = event.code;
|
|
76
|
+
}
|
|
77
|
+
else if (event.key && event.key !== 'Unidentified') {
|
|
78
|
+
keyCode = event.key;
|
|
79
|
+
}
|
|
74
80
|
let activeElementInScope = [];
|
|
75
81
|
let activeElementOutScope = [];
|
|
76
82
|
const isKeyCodeAccepted = Array.isArray(listener.keyCode)
|
|
@@ -28,15 +28,19 @@ describe('KeyboardManager', () => {
|
|
|
28
28
|
KeyboardManager['listenKeyPress']();
|
|
29
29
|
});
|
|
30
30
|
test('should proper while use KeyboardManager', () => {
|
|
31
|
+
const callback0 = jest.fn();
|
|
31
32
|
const callback1 = jest.fn();
|
|
32
33
|
const callback2 = jest.fn();
|
|
33
34
|
const callback3 = jest.fn();
|
|
34
35
|
KeyboardManager.register([
|
|
36
|
+
{ keyCode: 'ArrowLeft', activeElementInScope: [button1], callback: callback0 },
|
|
35
37
|
{ keyCode: 'Tab', activeElementInScope: [button1], callback: callback1 },
|
|
36
38
|
{ keyCode: ['ArrowUp', 'ArrowDown'], activeElementInScope: [button1], callback: callback2 },
|
|
37
39
|
{ keyCode: 'Escape', activeElementInScope: [button1], callback: callback3 },
|
|
38
40
|
]);
|
|
39
41
|
Object.assign(document, { activeElement: button1 });
|
|
42
|
+
document.dispatchEvent(new KeyboardEvent('keyup', { code: '', key: 'ArrowLeft' }));
|
|
43
|
+
expect(callback0).toBeCalledTimes(1);
|
|
40
44
|
document.dispatchEvent(new KeyboardEvent('keyup', { code: 'Tab' }));
|
|
41
45
|
expect(callback1).toBeCalledTimes(1);
|
|
42
46
|
document.dispatchEvent(new KeyboardEvent('keyup', { code: 'ArrowUp' }));
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import ChangeManager from '../change-manager/change-manager';
|
|
8
8
|
import { Observer } from '../change-manager/observer/observer';
|
|
9
|
-
import { FORM_ELEMENT_VALUE_CHANGE, FORM_FIELD_ELEMENT_DISCONNECTED, FORM_FIELD_PENDING_VALID_CHANGE, FORM_RESET_OPERATION_TRIGGERED,
|
|
9
|
+
import { FORM_ELEMENT_VALUE_CHANGE, FORM_FIELD_ELEMENT_DISCONNECTED, FORM_FIELD_PENDING_VALID_CHANGE, FORM_RESET_OPERATION_TRIGGERED, } from '../change-manager/subject/static-subject/static-subject-title';
|
|
10
10
|
import { findParent, isElementVisible } from '../../utils/ui';
|
|
11
11
|
import { FormFieldValidationRuleHandlerChain, } from './validation-rule-handler/form-field-validation-rule-handler-chain';
|
|
12
12
|
import { InjectVegaSlimmer, createDynamicSlimmer, methodPlaceholder } from 'vega-slimmer/core';
|
|
@@ -14,6 +14,8 @@ import { FieldErrorUIControllerSlimmer } from '../slimmers/field-error-ui-contro
|
|
|
14
14
|
import { PageResizeObserverSlimmer } from '../slimmers/page-resize-observer-slimmer';
|
|
15
15
|
import { FormFieldMessageTranslatorSlimmer } from '../slimmers/form-field-message-translator';
|
|
16
16
|
import { InternalFormFieldValidationRule } from './rules/internal-form-field-validation-rule.abstract';
|
|
17
|
+
import domNodeSubjectFactory from '../change-manager/subject/dom-node-subject/dom-node-subject-factory';
|
|
18
|
+
import { VegaInternalFormSubmit } from '../event-manager/event-id/vega-internal-event-id';
|
|
17
19
|
/**
|
|
18
20
|
* The FormFieldController class is a class that validates the value of an input elements
|
|
19
21
|
*
|
|
@@ -424,9 +426,17 @@ export class FormFieldController {
|
|
|
424
426
|
this.host.addEventListener('keydown',
|
|
425
427
|
/* istanbul ignore next */ (event) => {
|
|
426
428
|
if (this.canSubmitFormByEvent(event)) {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
+
/**
|
|
430
|
+
* The below method is e2e-test covered in
|
|
431
|
+
*
|
|
432
|
+
* @see {module:emit-vegaFormSubmit-when-press-enter-nested-forms-input}
|
|
433
|
+
*/
|
|
434
|
+
const outerForm = findParent(this.host, 'vega-form', {
|
|
435
|
+
outerMost: true,
|
|
429
436
|
});
|
|
437
|
+
if (outerForm) {
|
|
438
|
+
ChangeManager.notify(domNodeSubjectFactory.getSubject(outerForm, VegaInternalFormSubmit), { host: this.host });
|
|
439
|
+
}
|
|
430
440
|
}
|
|
431
441
|
});
|
|
432
442
|
}
|