@globalpayments/vega 2.73.0 → 2.75.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-cc162173.js → app-globals-bf183914.js} +8 -8
- package/dist/cjs/{child-nodes-event-prevent-slimmer-536d29fc.js → child-nodes-event-prevent-slimmer-aca87dac.js} +1 -1
- package/dist/cjs/click-outside-only-to-dismiss-strategy-407f6d1e.js +32 -0
- package/dist/cjs/{code-block-823cd481.js → code-block-c1d2e6a8.js} +3 -3
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-e2e0c6f3.js → component-value-history-controller-slimmer.abstract-787c67dc.js} +4 -4
- package/dist/cjs/{date-required-rule-99cca681.js → date-required-rule-30ee62d0.js} +1 -1
- package/dist/cjs/{design-token-11656685.js → design-token-cbc01283.js} +2 -2
- package/dist/cjs/{dom-node-subject-observer-factory-1c8f7880.js → dom-node-subject-observer-factory-b5e71bf6.js} +4 -0
- package/dist/cjs/{dto-renderer-manager-bd2bd447.js → dto-renderer-manager-2fc24151.js} +21 -5
- package/dist/cjs/{element-appender-slimmer-12f40b8b.js → element-appender-slimmer-318d29c7.js} +160 -36
- package/dist/cjs/{event-emit-slimmer-6a591353.js → event-emit-slimmer-2dacabbd.js} +2 -2
- package/dist/cjs/{form-field-controller-slimmer-6e3e14fd.js → form-field-controller-slimmer-aef2fb1e.js} +2 -2
- package/dist/cjs/{function-extension-78ec27e0.js → function-extension-ca9aa115.js} +5 -5
- package/dist/cjs/{image-annotation-action-7408a4b3.js → image-annotation-action-e4a35325.js} +3 -3
- package/dist/cjs/{index-638a0f0d.js → index-95fca64f.js} +1 -1
- package/dist/cjs/index.cjs.js +15 -15
- package/dist/cjs/{inject-keyboard-manager-a6101379.js → inject-keyboard-manager-d21b4387.js} +1 -1
- package/dist/cjs/{internal-vega-event-manager-d587a33c.js → internal-vega-event-manager-6befeb34.js} +13 -2
- package/dist/cjs/{keyboard-manager-d8adb0ed.js → keyboard-manager-3dea6b28.js} +1 -1
- package/dist/cjs/{keyboard-manager-slimmer-15e65357.js → keyboard-manager-slimmer-0d45f944.js} +1 -1
- package/dist/cjs/{language-extension-716015a5.js → language-extension-38e4905e.js} +2 -2
- package/dist/cjs/loader.cjs.js +11 -11
- package/dist/cjs/{month-view-generator-706c5477.js → month-view-generator-49cc5fc2.js} +1 -1
- package/dist/cjs/{public-rules-2950f1fc.js → public-rules-661823fa.js} +7 -7
- package/dist/cjs/{range-c3c48132.js → range-79b668e7.js} +1 -1
- package/dist/cjs/{responsive-format-facade-96c5f598.js → responsive-format-facade-f71d399c.js} +4 -4
- package/dist/cjs/{rich-text-editor-required-rule-4aab05a3.js → rich-text-editor-required-rule-d5feeffd.js} +1 -1
- package/dist/cjs/sanitize-fb222510.js +131 -0
- package/dist/cjs/{string-format-strategy.abstract-a8264fca.js → string-format-strategy.abstract-63514c60.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-338bbd73.js → string-input-formatter-slimmer-f3e0bbc7.js} +3 -3
- package/dist/cjs/{string-mask-strategy-4e7d3780.js → string-mask-strategy-d23ac21a.js} +2 -2
- package/dist/cjs/{style-formatter-9c42d41b.js → style-formatter-566df206.js} +2 -2
- package/dist/cjs/{sub-state-notify-slimmer-1efa69c4.js → sub-state-notify-slimmer-468e19aa.js} +1 -1
- package/dist/cjs/{sub-state-observer-slimmer-6afa62f5.js → sub-state-observer-slimmer-5d0b8ac3.js} +1 -1
- package/dist/cjs/{time-required-rule-9d39a620.js → time-required-rule-c96ecdc9.js} +1 -1
- package/dist/cjs/{type-guard-69d2cf01.js → type-guard-a0f026d8.js} +12 -0
- package/dist/cjs/{valid-credit-card-number-rule-9f40d1d9.js → valid-credit-card-number-rule-c854bed9.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +9 -9
- package/dist/cjs/vega-app-header-button.cjs.entry.js +10 -10
- package/dist/cjs/vega-banner.cjs.entry.js +3 -3
- package/dist/cjs/vega-box.cjs.entry.js +9 -9
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-circle.cjs.entry.js +10 -10
- 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 +9 -9
- package/dist/cjs/vega-calendar_4.cjs.entry.js +8 -8
- package/dist/cjs/vega-card.cjs.entry.js +8 -8
- package/dist/cjs/vega-carousel.cjs.entry.js +8 -8
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-chip.cjs.entry.js +10 -10
- package/dist/cjs/vega-code-block.cjs.entry.js +10 -10
- package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
- package/dist/cjs/vega-combo-box.cjs.entry.js +11 -10
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +389 -342
- package/dist/cjs/vega-dialog_2.cjs.entry.js +10 -10
- package/dist/cjs/vega-divider.cjs.entry.js +8 -8
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +49 -21
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
- package/dist/cjs/vega-file-uploader.cjs.entry.js +5 -5
- package/dist/cjs/vega-flag-icon.cjs.entry.js +8 -8
- package/dist/cjs/vega-flex.cjs.entry.js +9 -9
- package/dist/cjs/vega-font.cjs.entry.js +8 -8
- package/dist/cjs/vega-form.cjs.entry.js +8 -8
- package/dist/cjs/vega-grid.cjs.entry.js +8 -8
- package/dist/cjs/vega-icon.cjs.entry.js +8 -8
- package/dist/cjs/vega-image-uploader.cjs.entry.js +11 -11
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +10 -10
- package/dist/cjs/vega-input-numeric.cjs.entry.js +10 -10
- package/dist/cjs/vega-input-passcode.cjs.entry.js +9 -9
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +11 -11
- package/dist/cjs/vega-input-range.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-select.cjs.entry.js +187 -54
- package/dist/cjs/vega-input.cjs.entry.js +339 -98
- package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +11 -11
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination.cjs.entry.js +9 -9
- package/dist/cjs/vega-popover_2.cjs.entry.js +12 -12
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +10 -10
- package/dist/cjs/vega-radio_2.cjs.entry.js +9 -9
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +30 -20
- package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +12 -12
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
- package/dist/cjs/vega-signature-capture.cjs.entry.js +11 -11
- 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_11.cjs.entry.js +11 -11
- package/dist/cjs/vega-textarea.cjs.entry.js +6 -6
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +18 -17
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +5 -5
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +10 -10
- package/dist/cjs/vega.cjs.js +11 -11
- package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +1 -1
- package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.js +1 -1
- package/dist/collection/components/vega-calendar/vega-calendar.js +1 -1
- package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +2 -1
- package/dist/collection/components/vega-date-picker/assets/icons.js +4 -1
- package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +2 -1
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +2 -2
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +109 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +4 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +42 -70
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +12 -56
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +435 -108
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +5 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +5 -1
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.js +7 -0
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +6 -3
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +3 -2
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +50 -4
- package/dist/collection/components/vega-field-label/vega-field-label.js +1 -1
- package/dist/collection/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.js +51 -0
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +6 -0
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.js +142 -0
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-renderer.js +12 -1
- package/dist/collection/components/vega-input/vega-input.js +200 -3
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.js +89 -0
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.js +4 -0
- package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.js +4 -0
- package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +38 -13
- package/dist/collection/components/vega-input-select/vega-input-select.js +27 -7
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/plain-text-annotation.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +18 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +6 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +6 -0
- package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +5 -0
- package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +1 -1
- package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.js +2 -1
- package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.js +2 -1
- package/dist/collection/constants/ui.js +2 -0
- package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +13 -2
- package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +2 -0
- package/dist/collection/helpers/event-manager/test/component-event-id-map.test.js +3 -1
- package/dist/collection/helpers/event-manager/test/vega-event-manager.test.js +3 -1
- package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +60 -32
- package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js +3 -2
- package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.js +28 -0
- package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.js +33 -0
- package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.js +42 -0
- package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.js +22 -0
- package/dist/collection/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.js +1 -0
- package/dist/collection/types/test/type-guard.test.js +8 -1
- package/dist/collection/types/type-guard.js +11 -0
- package/dist/collection/utils/sanitize.js +126 -0
- package/dist/collection/utils/test/sanitize.test.js +65 -0
- package/dist/esm/{app-globals-949d2e18.js → app-globals-f3414aca.js} +8 -8
- package/dist/esm/{child-nodes-event-prevent-slimmer-e6f98de5.js → child-nodes-event-prevent-slimmer-e662bee2.js} +1 -1
- package/dist/esm/click-outside-only-to-dismiss-strategy-3d286c1b.js +30 -0
- package/dist/esm/{code-block-666674d7.js → code-block-8ee34ab6.js} +3 -3
- package/dist/esm/{component-value-history-controller-slimmer.abstract-171dda08.js → component-value-history-controller-slimmer.abstract-a61bf821.js} +4 -4
- package/dist/esm/{date-required-rule-a9980386.js → date-required-rule-47ecc28f.js} +1 -1
- package/dist/esm/{design-token-9b510e59.js → design-token-9b299589.js} +2 -2
- package/dist/esm/{dom-node-subject-observer-factory-1aaa1159.js → dom-node-subject-observer-factory-064ee2b2.js} +3 -1
- package/dist/esm/{dto-renderer-manager-49ae5d56.js → dto-renderer-manager-f07cf2d9.js} +21 -5
- package/dist/esm/{element-appender-slimmer-b9890dcb.js → element-appender-slimmer-7cb08343.js} +160 -36
- package/dist/esm/{event-emit-slimmer-2d791d0e.js → event-emit-slimmer-09827cec.js} +2 -2
- package/dist/esm/{form-field-controller-slimmer-257928c1.js → form-field-controller-slimmer-5d9dc384.js} +2 -2
- package/dist/esm/{function-extension-8b06c6f8.js → function-extension-63028f20.js} +5 -5
- package/dist/esm/{image-annotation-action-b3eea6a2.js → image-annotation-action-53529cd9.js} +3 -3
- package/dist/esm/{index-0d487fae.js → index-51a7da7f.js} +1 -1
- package/dist/esm/index.js +15 -15
- package/dist/esm/{inject-keyboard-manager-9241968c.js → inject-keyboard-manager-83d76ff5.js} +1 -1
- package/dist/esm/{internal-vega-event-manager-fdee2a0a.js → internal-vega-event-manager-efb6786e.js} +13 -2
- package/dist/esm/{keyboard-manager-89acac79.js → keyboard-manager-c92808d8.js} +1 -1
- package/dist/esm/{keyboard-manager-slimmer-e303cb7d.js → keyboard-manager-slimmer-79c78ce8.js} +1 -1
- package/dist/esm/{language-extension-b3f836d4.js → language-extension-c4ff21dd.js} +2 -2
- package/dist/esm/loader.js +11 -11
- package/dist/esm/{month-view-generator-4bec99fd.js → month-view-generator-16192182.js} +1 -1
- package/dist/esm/{public-rules-b164e40e.js → public-rules-6ebdfcf5.js} +7 -7
- package/dist/esm/{range-9cc1422b.js → range-5257c062.js} +1 -1
- package/dist/esm/{responsive-format-facade-94897ae8.js → responsive-format-facade-05e53016.js} +4 -4
- package/dist/esm/{rich-text-editor-required-rule-2131f21c.js → rich-text-editor-required-rule-f63a37d1.js} +1 -1
- package/dist/esm/sanitize-fd0cb40d.js +129 -0
- package/dist/esm/{string-format-strategy.abstract-75540c16.js → string-format-strategy.abstract-fc60db79.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-3a42d9b8.js → string-input-formatter-slimmer-ee32b1fd.js} +3 -3
- package/dist/esm/{string-mask-strategy-4a18ed1a.js → string-mask-strategy-0b0accaa.js} +2 -2
- package/dist/esm/{style-formatter-bb5aec96.js → style-formatter-5f5bd714.js} +2 -2
- package/dist/esm/{sub-state-notify-slimmer-71b9bbd5.js → sub-state-notify-slimmer-4453047a.js} +1 -1
- package/dist/esm/{sub-state-observer-slimmer-41a1b380.js → sub-state-observer-slimmer-202ec7dc.js} +1 -1
- package/dist/esm/{time-required-rule-8ec1faf5.js → time-required-rule-5fa43804.js} +1 -1
- package/dist/esm/{type-guard-b48aec98.js → type-guard-c65a227d.js} +12 -1
- package/dist/esm/{valid-credit-card-number-rule-96eaf9b1.js → valid-credit-card-number-rule-666c415d.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +9 -9
- package/dist/esm/vega-app-header-button.entry.js +10 -10
- package/dist/esm/vega-banner.entry.js +3 -3
- package/dist/esm/vega-box.entry.js +9 -9
- package/dist/esm/vega-breadcrumb.entry.js +4 -4
- package/dist/esm/vega-button-circle.entry.js +10 -10
- 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 +9 -9
- package/dist/esm/vega-calendar_4.entry.js +8 -8
- package/dist/esm/vega-card.entry.js +8 -8
- package/dist/esm/vega-carousel.entry.js +8 -8
- package/dist/esm/vega-checkbox_2.entry.js +6 -6
- package/dist/esm/vega-chip.entry.js +10 -10
- package/dist/esm/vega-code-block.entry.js +10 -10
- package/dist/esm/vega-color-picker.entry.js +5 -5
- package/dist/esm/vega-combo-box.entry.js +11 -10
- package/dist/esm/vega-date-picker_2.entry.js +389 -342
- package/dist/esm/vega-dialog_2.entry.js +10 -10
- package/dist/esm/vega-divider.entry.js +8 -8
- package/dist/esm/vega-dropdown_5.entry.js +49 -21
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +3 -3
- package/dist/esm/vega-file-uploader.entry.js +5 -5
- package/dist/esm/vega-flag-icon.entry.js +8 -8
- package/dist/esm/vega-flex.entry.js +9 -9
- package/dist/esm/vega-font.entry.js +8 -8
- package/dist/esm/vega-form.entry.js +8 -8
- package/dist/esm/vega-grid.entry.js +8 -8
- package/dist/esm/vega-icon.entry.js +8 -8
- package/dist/esm/vega-image-uploader.entry.js +11 -11
- package/dist/esm/vega-input-credit-card.entry.js +10 -10
- package/dist/esm/vega-input-numeric.entry.js +10 -10
- package/dist/esm/vega-input-passcode.entry.js +9 -9
- package/dist/esm/vega-input-phone-number.entry.js +11 -11
- package/dist/esm/vega-input-range.entry.js +6 -6
- package/dist/esm/vega-input-select.entry.js +187 -54
- package/dist/esm/vega-input.entry.js +340 -99
- package/dist/esm/vega-item-toggle.entry.js +3 -3
- package/dist/esm/vega-left-nav_5.entry.js +11 -11
- package/dist/esm/vega-loader-wrapper_2.entry.js +7 -7
- package/dist/esm/vega-page-notification_2.entry.js +1 -1
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +3 -3
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +1 -1
- package/dist/esm/vega-pagination.entry.js +9 -9
- package/dist/esm/vega-popover_2.entry.js +12 -12
- package/dist/esm/vega-progress-tracker_2.entry.js +10 -10
- package/dist/esm/vega-radio_2.entry.js +9 -9
- package/dist/esm/vega-rich-text-content.entry.js +7 -7
- package/dist/esm/vega-rich-text-editor_4.entry.js +30 -20
- package/dist/esm/vega-segment-control.entry.js +3 -3
- package/dist/esm/vega-selection-chip_2.entry.js +12 -12
- package/dist/esm/vega-selection-tile_2.entry.js +7 -7
- package/dist/esm/vega-sidenav_3.entry.js +10 -10
- package/dist/esm/vega-signature-capture.entry.js +11 -11
- 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_11.entry.js +11 -11
- package/dist/esm/vega-textarea.entry.js +6 -6
- package/dist/esm/vega-time-picker_2.entry.js +18 -17
- package/dist/esm/vega-toggle-switch.entry.js +5 -5
- package/dist/esm/vega-tooltip_2.entry.js +10 -10
- package/dist/esm/vega.js +11 -11
- package/dist/sri/vega-sri-manifest.json +326 -318
- package/dist/types/components/vega-date-picker/assets/icons.d.ts +1 -1
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.d.ts +20 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +1 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.d.ts +4 -11
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +4 -9
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +2 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.d.ts +2 -0
- package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +1 -0
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +14 -2
- package/dist/types/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.d.ts +27 -0
- package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +1 -0
- package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.d.ts +40 -0
- package/dist/types/components/vega-input/slimmers/renderers/vega-input-renderer.d.ts +3 -0
- package/dist/types/components/vega-input/types.d.ts +4 -0
- package/dist/types/components/vega-input/vega-input.d.ts +55 -1
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-item-controller.d.ts +29 -0
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-source-controller.d.ts +1 -0
- package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-value-controller.d.ts +1 -0
- package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +1 -1
- package/dist/types/components/vega-input-select/types.d.ts +5 -0
- package/dist/types/components/vega-input-select/vega-input-select.d.ts +12 -4
- package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +8 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -0
- package/dist/types/components.d.ts +65 -11
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +2 -0
- package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +4 -9
- package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy.d.ts +21 -0
- package/dist/types/helpers/slimmers/element-appender/trigger-strategies/click-trigger-strategy.d.ts +21 -0
- package/dist/types/helpers/slimmers/element-appender/trigger-strategies/hover-trigger-strategy.d.ts +22 -0
- package/dist/types/helpers/slimmers/element-appender/trigger-strategies/none-trigger-strategy.d.ts +18 -0
- package/dist/types/helpers/slimmers/element-appender/trigger-strategies/trigger-strategy.interface.d.ts +37 -0
- package/dist/types/types/components.type.d.ts +3 -0
- package/dist/types/types/type-guard.d.ts +8 -0
- package/dist/types/types/ui.type.d.ts +9 -0
- package/dist/types/utils/sanitize.d.ts +71 -0
- package/dist/types/utils/test/sanitize.test.d.ts +1 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-44bc9ea9.entry.js → p-011b94b1.entry.js} +1 -1
- package/dist/vega/{p-1e019406.js → p-06aaced4.js} +1 -1
- package/dist/vega/{p-38ed3d59.entry.js → p-07d3df01.entry.js} +1 -1
- package/dist/vega/{p-c2ac6b47.entry.js → p-08f18b22.entry.js} +1 -1
- package/dist/vega/{p-8fba7f9a.js → p-1298b126.js} +1 -1
- package/dist/vega/{p-9b673fd4.entry.js → p-17c55205.entry.js} +1 -1
- package/dist/vega/{p-161b9c5b.js → p-1f83cebf.js} +1 -1
- package/dist/vega/{p-7f86b3c8.js → p-20ad42be.js} +1 -1
- package/dist/vega/p-22b2841f.entry.js +1 -0
- package/dist/vega/{p-e88f2dc3.js → p-22c5d83b.js} +1 -1
- package/dist/vega/{p-2bc4f7d9.entry.js → p-34246870.entry.js} +1 -1
- package/dist/vega/p-35bf5789.entry.js +1 -0
- package/dist/vega/{p-a125cfec.entry.js → p-3bbc0c7d.entry.js} +1 -1
- package/dist/vega/{p-59fa3f68.js → p-3bf66be2.js} +1 -1
- package/dist/vega/{p-6e84e451.entry.js → p-3c5a28e4.entry.js} +1 -1
- package/dist/vega/p-3cfd8616.entry.js +1 -0
- package/dist/vega/p-3e5f362f.js +1 -0
- package/dist/vega/p-43f585f7.entry.js +1 -0
- package/dist/vega/p-476a173a.js +1 -0
- package/dist/vega/p-4a537391.entry.js +1 -0
- package/dist/vega/{p-82dbff54.entry.js → p-509eb52e.entry.js} +1 -1
- package/dist/vega/{p-5f09868d.entry.js → p-50ab977c.entry.js} +1 -1
- package/dist/vega/p-53a694d1.entry.js +1 -0
- package/dist/vega/{p-79a544d6.js → p-56e97df8.js} +1 -1
- package/dist/vega/{p-e39aa2ea.entry.js → p-5a27084e.entry.js} +1 -1
- package/dist/vega/{p-03e16a05.entry.js → p-5df9a856.entry.js} +1 -1
- package/dist/vega/{p-94cf46ca.entry.js → p-5ea2e43c.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/p-60274fb1.js +1 -0
- package/dist/vega/{p-de70aac1.js → p-60851f9d.js} +1 -1
- package/dist/vega/{p-0ad59141.entry.js → p-60da99c6.entry.js} +1 -1
- package/dist/vega/{p-f2c8c363.js → p-66fa700b.js} +1 -1
- package/dist/vega/{p-114c6df8.entry.js → p-67f18b9e.entry.js} +1 -1
- package/dist/vega/{p-623c3911.entry.js → p-67fcf6f2.entry.js} +1 -1
- package/dist/vega/{p-676eaf3f.entry.js → p-6a2205a1.entry.js} +1 -1
- package/dist/vega/{p-b007d0d5.entry.js → p-6a4277df.entry.js} +1 -1
- package/dist/vega/{p-30e7544c.js → p-6e136980.js} +1 -1
- package/dist/vega/p-6f239144.entry.js +1 -0
- package/dist/vega/{p-bf61d136.js → p-6f8be8ea.js} +1 -1
- package/dist/vega/p-7045e84c.entry.js +1 -0
- package/dist/vega/{p-3566ad76.js → p-7288f8c4.js} +1 -1
- package/dist/vega/{p-721b2981.entry.js → p-747d6afc.entry.js} +1 -1
- package/dist/vega/{p-40561fa0.entry.js → p-75651f32.entry.js} +1 -1
- package/dist/vega/{p-5be29f14.js → p-77edf50c.js} +1 -1
- package/dist/vega/p-7ae55fd5.js +1 -0
- package/dist/vega/{p-9fb71d8c.entry.js → p-81134e9e.entry.js} +1 -1
- package/dist/vega/p-8187878e.js +1 -0
- package/dist/vega/p-87238c4c.entry.js +1 -0
- package/dist/vega/{p-21e7808a.entry.js → p-8a887843.entry.js} +1 -1
- package/dist/vega/{p-2ae5ad30.entry.js → p-8c0eb12f.entry.js} +1 -1
- package/dist/vega/p-8d0ca805.js +1 -0
- package/dist/vega/{p-f6cd7a08.entry.js → p-8e42a14c.entry.js} +1 -1
- package/dist/vega/{p-9dfe2bbc.js → p-91ec2e30.js} +1 -1
- package/dist/vega/{p-a8dad05d.js → p-920719ad.js} +1 -1
- package/dist/vega/{p-a58bdbad.entry.js → p-94394df7.entry.js} +1 -1
- package/dist/vega/p-991008a8.entry.js +1 -0
- package/dist/vega/p-a20854d6.entry.js +1 -0
- package/dist/vega/{p-a4ec6575.js → p-a2aeb646.js} +1 -1
- package/dist/vega/{p-2409a475.entry.js → p-a530797f.entry.js} +1 -1
- package/dist/vega/{p-f3831dc9.entry.js → p-a5bd3c15.entry.js} +1 -1
- package/dist/vega/{p-70b2906a.entry.js → p-a65941d0.entry.js} +1 -1
- package/dist/vega/{p-be0b67b8.entry.js → p-a85ad369.entry.js} +1 -1
- package/dist/vega/{p-42a283b5.entry.js → p-a86010f7.entry.js} +1 -1
- package/dist/vega/{p-6e701542.entry.js → p-aa10eeb3.entry.js} +1 -1
- package/dist/vega/{p-7be3aefc.entry.js → p-ab2f35af.entry.js} +1 -1
- package/dist/vega/{p-c0036e71.js → p-ac4563d7.js} +1 -1
- package/dist/vega/{p-ce2ffff7.js → p-aedf7146.js} +1 -1
- package/dist/vega/p-b4ea3fad.js +1 -0
- package/dist/vega/{p-d991fb11.js → p-badad9ed.js} +1 -1
- package/dist/vega/{p-c7194674.entry.js → p-bb4a558d.entry.js} +1 -1
- package/dist/vega/{p-4957f07a.entry.js → p-bb8339ed.entry.js} +1 -1
- package/dist/vega/{p-6b9d2996.entry.js → p-be930e85.entry.js} +1 -1
- package/dist/vega/{p-398220f5.entry.js → p-bf2bd6d0.entry.js} +1 -1
- package/dist/vega/{p-ead1da57.entry.js → p-c379a5a5.entry.js} +1 -1
- package/dist/vega/{p-2971b17a.js → p-c8f1b9d5.js} +1 -1
- package/dist/vega/{p-184d8443.js → p-c9b6b5a9.js} +1 -1
- package/dist/vega/{p-9d8e2939.entry.js → p-ca3472c1.entry.js} +1 -1
- package/dist/vega/{p-2e0deef6.js → p-cc43bffb.js} +1 -1
- package/dist/vega/{p-74a77cad.js → p-ce1a2982.js} +1 -1
- package/dist/vega/{p-d1d0f08a.js → p-d0e31633.js} +1 -1
- package/dist/vega/{p-75d91ee9.entry.js → p-d6ed3d76.entry.js} +1 -1
- package/dist/vega/{p-6c1ef2ed.js → p-dd11f735.js} +1 -1
- package/dist/vega/{p-adc615a4.entry.js → p-e1610196.entry.js} +1 -1
- package/dist/vega/{p-3d85411d.js → p-e16b3adf.js} +1 -1
- package/dist/vega/{p-a3c4fa30.entry.js → p-e87b0b4a.entry.js} +1 -1
- package/dist/vega/{p-a5d4d168.entry.js → p-e9c4fd24.entry.js} +1 -1
- package/dist/vega/{p-7a8c4cf8.entry.js → p-eb60cfe1.entry.js} +1 -1
- package/dist/vega/{p-2b20a215.entry.js → p-ef001c70.entry.js} +1 -1
- package/dist/vega/{p-dd72ad9e.js → p-f383c856.js} +1 -1
- package/dist/vega/{p-c7f292dd.entry.js → p-f3c3ff26.entry.js} +1 -1
- package/dist/vega/{p-7f9acdf7.entry.js → p-f52a0155.entry.js} +1 -1
- package/dist/vega/{p-96797fee.entry.js → p-f8f7cf48.entry.js} +1 -1
- package/dist/vega/{p-f427d88c.entry.js → p-fba14ad2.entry.js} +1 -1
- package/dist/vega/{p-7b337fd4.entry.js → p-fbd64f9c.entry.js} +1 -1
- package/dist/vega/{p-db62b038.entry.js → p-fdc270b8.entry.js} +1 -1
- package/dist/vega/p-fe12eff6.js +1 -0
- package/dist/vega/{p-0ba0f83d.entry.js → p-ffbff9b5.entry.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/vega/p-1faef917.entry.js +0 -1
- package/dist/vega/p-207cfa6a.js +0 -1
- package/dist/vega/p-21cba83b.entry.js +0 -1
- package/dist/vega/p-2f592078.entry.js +0 -1
- package/dist/vega/p-3162a7fd.entry.js +0 -1
- package/dist/vega/p-3938880f.entry.js +0 -1
- package/dist/vega/p-524ffc12.entry.js +0 -1
- package/dist/vega/p-697eb0e1.js +0 -1
- package/dist/vega/p-76e6c13a.js +0 -1
- package/dist/vega/p-8bd496b4.js +0 -1
- package/dist/vega/p-9a83a6b0.js +0 -1
- package/dist/vega/p-aab0deab.js +0 -1
- package/dist/vega/p-b406a846.entry.js +0 -1
- package/dist/vega/p-bd60c72e.entry.js +0 -1
- package/dist/vega/p-c4700277.entry.js +0 -1
- package/dist/vega/p-d01fe83d.entry.js +0 -1
- package/dist/vega/p-f38a4be2.entry.js +0 -1
|
@@ -53,22 +53,27 @@ export class VegaRTEContent {
|
|
|
53
53
|
/**
|
|
54
54
|
* Create an empty content state
|
|
55
55
|
*
|
|
56
|
+
* @param {VegaRTETransformOptions} options - Optional transformation options.
|
|
56
57
|
* @returns {VegaRTEContent} An empty content state
|
|
57
58
|
*/
|
|
58
|
-
static createEmptyContent() {
|
|
59
|
+
static createEmptyContent(options = { autoMatchFormat: true }) {
|
|
59
60
|
return VegaRTEContent.fromJSON([
|
|
60
61
|
{
|
|
61
62
|
id: generateUUID(),
|
|
62
63
|
type: 'paragraph',
|
|
64
|
+
annotations: {
|
|
65
|
+
internalWrapper: !options.autoMatchFormat,
|
|
66
|
+
},
|
|
63
67
|
nodes: [
|
|
64
68
|
{
|
|
65
69
|
id: generateUUID(),
|
|
70
|
+
annotations: { plainText: !options.autoMatchFormat },
|
|
66
71
|
type: 'text',
|
|
67
72
|
text: '',
|
|
68
73
|
},
|
|
69
74
|
],
|
|
70
75
|
},
|
|
71
|
-
]);
|
|
76
|
+
], options);
|
|
72
77
|
}
|
|
73
78
|
/**
|
|
74
79
|
* Converts HTML content to a VegaRTEContent instance.
|
|
@@ -141,8 +146,19 @@ export class VegaRTEContent {
|
|
|
141
146
|
if (options) {
|
|
142
147
|
LogUtility.warn(`The 'options' parameter in toHtml method is deprecated and will be removed in the future.`);
|
|
143
148
|
}
|
|
149
|
+
if (this.isEmpty()) {
|
|
150
|
+
return '';
|
|
151
|
+
}
|
|
144
152
|
return this.children.map((block) => block.toHtml()).join('');
|
|
145
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Checks if the content state is empty.
|
|
156
|
+
*
|
|
157
|
+
* @returns {boolean} True if the content state is empty, false otherwise.
|
|
158
|
+
*/
|
|
159
|
+
isEmpty() {
|
|
160
|
+
return this.children.length === 0 || (this.children.length === 1 && !this.children[0].isNotEmpty());
|
|
161
|
+
}
|
|
146
162
|
/**
|
|
147
163
|
* Internal method to add the block item, remove the block item
|
|
148
164
|
*
|
|
@@ -90,7 +90,7 @@ __decorate([
|
|
|
90
90
|
MapToComponentField()
|
|
91
91
|
], RTEExtensionController.prototype, "selectionController", void 0);
|
|
92
92
|
__decorate([
|
|
93
|
-
MapToComponentMethod('
|
|
93
|
+
MapToComponentMethod('componentDidLoad')
|
|
94
94
|
], RTEExtensionController.prototype, "initialExtensionContext", null);
|
|
95
95
|
__decorate([
|
|
96
96
|
MapToComponentMethod('watchExtensions')
|
package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js
CHANGED
|
@@ -50,11 +50,12 @@ export class ValueController extends VegaSlimmer {
|
|
|
50
50
|
* Watches the value of the editor and updates the internal value.
|
|
51
51
|
*/
|
|
52
52
|
watchValueUpdate() {
|
|
53
|
+
const autoMatchFormat = this.sourceEditConfig.autoMatchFormat;
|
|
53
54
|
if (this.value && !(this.value instanceof VegaRTEContent)) {
|
|
54
|
-
this.value = VegaRTEContent.fromJSON(this.value);
|
|
55
|
+
this.value = VegaRTEContent.fromJSON(this.value, { autoMatchFormat });
|
|
55
56
|
}
|
|
56
57
|
else if (!this.value || this.value.children.length === 0) {
|
|
57
|
-
this.value = VegaRTEContent.createEmptyContent();
|
|
58
|
+
this.value = VegaRTEContent.createEmptyContent({ autoMatchFormat });
|
|
58
59
|
}
|
|
59
60
|
else {
|
|
60
61
|
this.changeEventEmitter.emit(this.value);
|
|
@@ -114,6 +115,9 @@ __decorate([
|
|
|
114
115
|
__decorate([
|
|
115
116
|
MapToComponentField()
|
|
116
117
|
], ValueController.prototype, "selectionController", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
MapToComponentField()
|
|
120
|
+
], ValueController.prototype, "sourceEditConfig", void 0);
|
|
117
121
|
__decorate([
|
|
118
122
|
MapToComponentMethod('connectedCallback')
|
|
119
123
|
], ValueController.prototype, "connectedCallback", null);
|
|
@@ -37,6 +37,9 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
37
37
|
}
|
|
38
38
|
async saveSourceCode() {
|
|
39
39
|
const sourceViewValue = this.vegaRichTextEditorRenderer.getSourceCode();
|
|
40
|
+
if (!sourceViewValue && this.value.isEmpty()) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
40
43
|
if (typeof sourceViewValue === 'string') {
|
|
41
44
|
await this.valueController.flushChanges(VegaRTEContent.fromHtml(sourceViewValue, {
|
|
42
45
|
autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
|
|
@@ -62,3 +65,6 @@ __decorate([
|
|
|
62
65
|
__decorate([
|
|
63
66
|
MapToComponentField()
|
|
64
67
|
], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
MapToComponentField()
|
|
70
|
+
], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
|
|
@@ -2797,6 +2797,11 @@ Line 1
|
|
|
2797
2797
|
const paragraph = content.children[0];
|
|
2798
2798
|
expect(paragraph.children[1].text).toEqual(' ');
|
|
2799
2799
|
});
|
|
2800
|
+
it('should convert empty value as expect', async () => {
|
|
2801
|
+
const emptyContent = VegaRTEContent.fromHtml('', { autoMatchFormat: false });
|
|
2802
|
+
expect(emptyContent.toHtml()).toEqual('');
|
|
2803
|
+
expect(emptyContent.toJSON()).toEqual([]);
|
|
2804
|
+
});
|
|
2800
2805
|
});
|
|
2801
2806
|
describe('fromJSON', () => {
|
|
2802
2807
|
it('should translate the paragraph as expect JSON', () => {
|
|
@@ -241,7 +241,7 @@ export class VegaSelectionChip {
|
|
|
241
241
|
"mutable": false,
|
|
242
242
|
"complexType": {
|
|
243
243
|
"original": "VegaSelectionChipTooltipProps",
|
|
244
|
-
"resolved": "{ size?: ResponsiveType<SizeType>; trigger?: \"
|
|
244
|
+
"resolved": "{ size?: ResponsiveType<SizeType>; trigger?: \"click\" | \"hover\" | \"none\"; positionRelativeTo?: string; minWidth?: ResponsiveType<SizeType>; maxWidth?: ResponsiveType<SizeType>; content?: string; disableInteractive?: boolean; text?: string; placement?: ElementAppenderPlacementType; alignment?: ElementAppenderAlignmentType; }",
|
|
245
245
|
"references": {
|
|
246
246
|
"VegaSelectionChipTooltipProps": {
|
|
247
247
|
"location": "import",
|
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { MapToComponentField, MapToComponentMethod } from 'vega-slimmer/core';
|
|
8
8
|
import { ElementAppenderSlimmer } from '../../../../helpers/slimmers/element-appender/element-appender-slimmer';
|
|
9
|
+
import { ClickOutsideOnlyToDismissStrategy } from '../../../../helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy';
|
|
9
10
|
/** The `VegaTimePickerRangeDropdownController` class is responsible for managing the dropdown menu for selecting a range of time in the VegaTimePicker component. */
|
|
10
11
|
export class VegaTimePickerRangeDropdownController extends ElementAppenderSlimmer {
|
|
11
12
|
/**
|
|
@@ -29,7 +30,7 @@ export class VegaTimePickerRangeDropdownController extends ElementAppenderSlimme
|
|
|
29
30
|
placement: ['bottom', 'top'],
|
|
30
31
|
matchTargetWidth: true,
|
|
31
32
|
};
|
|
32
|
-
}, () =>
|
|
33
|
+
}, () => new ClickOutsideOnlyToDismissStrategy(), 'isRangeDropdownShow');
|
|
33
34
|
this.isRangeDropdownShow = false;
|
|
34
35
|
this.rangeDropdownType = 'start';
|
|
35
36
|
/*
|
|
@@ -8,6 +8,7 @@ import { MapToComponentField, MapToComponentMethod } from 'vega-slimmer/core';
|
|
|
8
8
|
import { ElementAppenderSlimmer } from '../../../../helpers/slimmers/element-appender/element-appender-slimmer';
|
|
9
9
|
import { LogUtility } from '../../../../utils/log';
|
|
10
10
|
import { pad } from '../../../../utils/date';
|
|
11
|
+
import { ClickOutsideOnlyToDismissStrategy } from '../../../../helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy';
|
|
11
12
|
/** The `VegaTimePickerDropdownController` class is responsible for managing the dropdown functionality of the VegaTimePicker component in a TypeScript application. */
|
|
12
13
|
export class VegaTimePickerSingleDropdownController extends ElementAppenderSlimmer {
|
|
13
14
|
/**
|
|
@@ -23,7 +24,7 @@ export class VegaTimePickerSingleDropdownController extends ElementAppenderSlimm
|
|
|
23
24
|
positionRelativeTo: this.positionRelativeTo,
|
|
24
25
|
translocation: { X: 0, Y: 8 },
|
|
25
26
|
placement: ['bottom', 'top'],
|
|
26
|
-
}), () =>
|
|
27
|
+
}), () => new ClickOutsideOnlyToDismissStrategy());
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* The function initializes a value controller and dropdown source.
|
|
@@ -91,6 +91,8 @@ export const VegaNativeEventName = [
|
|
|
91
91
|
'clear',
|
|
92
92
|
'periodChange',
|
|
93
93
|
'selectionChange',
|
|
94
|
+
'suggestionItemClick',
|
|
95
|
+
'nativeInputChange',
|
|
94
96
|
];
|
|
95
97
|
// eslint-disable-next-line @typescript-eslint/typedef
|
|
96
98
|
export const CssStates = ['default', 'hover', 'active', 'focus-visible'];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VegaExpand, VegaClick, VegaDropdownClick, VegaReset, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaClear, VegaSelectionChange, VegaDropdownShow, VegaDropdownHide, 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';
|
|
1
|
+
import { VegaExpand, VegaClick, VegaDropdownClick, VegaReset, VegaClose, VegaActionButtonClick, VegaChange, VegaEventClick, VegaDateDblClick, VegaMoreActionClick, VegaDateClick, VegaPageUpdate, VegaRemove, VegaCreate, VegaSearch, VegaMonthYearChange, VegaClear, VegaSelectionChange, VegaDropdownShow, VegaDropdownHide, VegaDropdownSearch, VegaSearchTrigger, VegaLabelButtonClick, VegaSelectFileChange, VegaRetry, VegaPreview, VegaFormSubmit, VegaFormReset, VegaValidate, VegaCancel, VegaNativeInputChange, VegaFocus, VegaBlur, VegaSuggestionItemClick, 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, VegaReset]],
|
|
@@ -35,7 +35,18 @@ const entries = [
|
|
|
35
35
|
['vega-file-uploader', [VegaChange, VegaSelectFileChange, VegaRemove, VegaRetry, VegaPreview]],
|
|
36
36
|
['vega-form', [VegaFormSubmit, VegaFormReset, VegaValidate]],
|
|
37
37
|
['vega-image-uploader', [VegaChange, VegaRemove, VegaCancel]],
|
|
38
|
-
[
|
|
38
|
+
[
|
|
39
|
+
'vega-input',
|
|
40
|
+
[
|
|
41
|
+
VegaChange,
|
|
42
|
+
VegaNativeInputChange,
|
|
43
|
+
VegaFocus,
|
|
44
|
+
VegaBlur,
|
|
45
|
+
VegaLabelButtonClick,
|
|
46
|
+
VegaSuggestionItemClick,
|
|
47
|
+
VegaPaste,
|
|
48
|
+
],
|
|
49
|
+
],
|
|
39
50
|
['vega-input-credit-card', [VegaChange, VegaBlur, VegaFocus]],
|
|
40
51
|
['vega-input-numeric', [VegaChange]],
|
|
41
52
|
['vega-input-passcode', [VegaChange, VegaComplete]],
|
|
@@ -107,3 +107,5 @@ export const VegaPaste = new VegaEventID('vegaPaste', 'paste');
|
|
|
107
107
|
export const HTMLNativeEventIds = [VegaChange, VegaClick, VegaFocus, VegaBlur, VegaPaste];
|
|
108
108
|
export const VegaMonthYearChange = new VegaEventID('vegaMonthYearChange', 'monthYearChange');
|
|
109
109
|
export const VegaSelectionChange = new VegaEventID('vegaSelectionChange', 'selectionChange');
|
|
110
|
+
export const VegaSuggestionItemClick = new VegaEventID('vegaSuggestionItemClick', 'suggestionItemClick');
|
|
111
|
+
export const VegaNativeInputChange = new VegaEventID('vegaNativeInputChange', 'nativeInputChange');
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { VEGA_COMPONENT_EVENT_MAP } from '../event-id/component-event-id-map';
|
|
2
|
-
import { VegaBlur, VegaChange, VegaFocus, VegaLabelButtonClick, VegaPaste } from '../event-id/vega-event-id';
|
|
2
|
+
import { VegaBlur, VegaChange, VegaFocus, VegaLabelButtonClick, VegaNativeInputChange, VegaPaste, VegaSuggestionItemClick, } 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
|
});
|
|
6
6
|
test('VEGA_COMPONENT_EVENT_MAP vega-input', () => {
|
|
7
7
|
expect(VEGA_COMPONENT_EVENT_MAP.get('vega-input')).toEqual([
|
|
8
8
|
VegaChange,
|
|
9
|
+
VegaNativeInputChange,
|
|
9
10
|
VegaFocus,
|
|
10
11
|
VegaBlur,
|
|
11
12
|
VegaLabelButtonClick,
|
|
13
|
+
VegaSuggestionItemClick,
|
|
12
14
|
VegaPaste,
|
|
13
15
|
]);
|
|
14
16
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VegaEventManager } from '../../public-api';
|
|
2
|
-
import { VegaBlur, VegaChange, VegaCreate, VegaDropdownClick, VegaDropdownHide, VegaDropdownSearch, VegaDropdownShow, VegaFocus, VegaLabelButtonClick, VegaPaste, VegaReset, VegaSearchTrigger, } from '../event-id/vega-event-id';
|
|
2
|
+
import { VegaBlur, VegaChange, VegaCreate, VegaDropdownClick, VegaDropdownHide, VegaDropdownSearch, VegaDropdownShow, VegaFocus, VegaLabelButtonClick, VegaNativeInputChange, VegaPaste, VegaReset, VegaSearchTrigger, VegaSuggestionItemClick, } 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', () => {
|
|
@@ -20,9 +20,11 @@ describe('VegaEventManager', () => {
|
|
|
20
20
|
it('should work proper while call getNativeEventName', () => {
|
|
21
21
|
expect(VegaEventManager.getEnabledEventIdsByComponent('vega-input')).toEqual([
|
|
22
22
|
VegaChange,
|
|
23
|
+
VegaNativeInputChange,
|
|
23
24
|
VegaFocus,
|
|
24
25
|
VegaBlur,
|
|
25
26
|
VegaLabelButtonClick,
|
|
27
|
+
VegaSuggestionItemClick,
|
|
26
28
|
VegaPaste,
|
|
27
29
|
]);
|
|
28
30
|
expect(VegaEventManager.getEnabledEventIdsByComponent('vega-dropdown')).toEqual([
|
|
@@ -11,6 +11,10 @@ import ChangeManager from '../../change-manager/change-manager';
|
|
|
11
11
|
import { SHADOW_ROOT_ELEMENT_SCROLLING } from '../../change-manager/subject/static-subject/static-subject-title';
|
|
12
12
|
import { Observer } from '../../change-manager/observer/observer';
|
|
13
13
|
import { ElementAppenderHierarchyTreeManager } from './element-appender-hierarchy-tree-manager';
|
|
14
|
+
import { ClickTriggerStrategy } from './trigger-strategies/click-trigger-strategy';
|
|
15
|
+
import { HoverTriggerStrategy } from './trigger-strategies/hover-trigger-strategy';
|
|
16
|
+
import { NoneTriggerStrategy } from './trigger-strategies/none-trigger-strategy';
|
|
17
|
+
import { isEATriggerStrategy } from '../../../types/type-guard';
|
|
14
18
|
export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
15
19
|
constructor(showConfigFactory, getTrigger, isDropdownShowName = 'isDropdownShow', disableInteractiveGetter = () => false) {
|
|
16
20
|
super();
|
|
@@ -36,25 +40,28 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
36
40
|
};
|
|
37
41
|
/* It's a function that listens to the click event on the dropdown. It checks if the trigger
|
|
38
42
|
property is equal to 'click'. If it is, then it toggles the dropdown. */
|
|
39
|
-
this.targetClickHandler = () => {
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
this.targetClickHandler = (event) => {
|
|
44
|
+
const triggerStrategy = this.getTriggerStrategy();
|
|
45
|
+
if (triggerStrategy.canEvaluate('target-click')) {
|
|
46
|
+
this.executeTriggerStrategy(triggerStrategy, event, 'target-click');
|
|
42
47
|
}
|
|
43
48
|
};
|
|
44
49
|
/* It's a function that listens to the mouseenter event on the dropdown. It checks if the trigger
|
|
45
50
|
property is equal to 'hover'. If it is, then it clears the timer. */
|
|
46
|
-
this.targetMouseEnterHandler = () => {
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
this.targetMouseEnterHandler = (event) => {
|
|
52
|
+
const triggerStrategy = this.getTriggerStrategy();
|
|
53
|
+
if (triggerStrategy.canEvaluate('target-mouseenter')) {
|
|
54
|
+
this.executeTriggerStrategy(triggerStrategy, event, 'target-mouseenter');
|
|
49
55
|
this.clearDelayHideTimer();
|
|
50
56
|
}
|
|
51
57
|
};
|
|
52
58
|
/* It's a function that listens to the mouseleave event on the dropdown. It checks if the trigger
|
|
53
59
|
property is equal to 'hover'. If it is, then it creates a timer that will hide the dropdown after a
|
|
54
60
|
certain amount of time. */
|
|
55
|
-
this.targetMouseLeaveHandler = () => {
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
this.targetMouseLeaveHandler = (event) => {
|
|
62
|
+
const triggerStrategy = this.getTriggerStrategy();
|
|
63
|
+
if (triggerStrategy.canEvaluate('target-mouseleave')) {
|
|
64
|
+
this.createDelayHideTimer(event, 'target-mouseleave');
|
|
58
65
|
}
|
|
59
66
|
};
|
|
60
67
|
/* istanbul ignore next */
|
|
@@ -62,7 +69,7 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
62
69
|
this.targetFocusoutHandler = (e) => {
|
|
63
70
|
var _a;
|
|
64
71
|
if (!isParent(e.relatedTarget, (_a = this.showConfig) === null || _a === void 0 ? void 0 : _a.appendableElement)) {
|
|
65
|
-
this.targetMouseLeaveHandler();
|
|
72
|
+
this.targetMouseLeaveHandler(e);
|
|
66
73
|
}
|
|
67
74
|
};
|
|
68
75
|
/* It's a function that listens to the mouseenter event on the dropdown. It checks if the trigger
|
|
@@ -70,18 +77,20 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
70
77
|
this.elementMouseEnterHandler = () => {
|
|
71
78
|
var _a;
|
|
72
79
|
(_a = this.hierarchyTreeManager.getParent()) === null || _a === void 0 ? void 0 : _a.elementMouseEnterHandler();
|
|
73
|
-
|
|
80
|
+
const triggerStrategy = this.getTriggerStrategy();
|
|
81
|
+
if (triggerStrategy.canEvaluate('element-mouseenter') && !this.disableInteractiveGetter()) {
|
|
74
82
|
this.clearDelayHideTimer();
|
|
75
83
|
}
|
|
76
84
|
};
|
|
77
85
|
/* It's a function that listens to the mouseleave event on the dropdown. It checks if the trigger
|
|
78
86
|
property is equal to 'hover'. If it is, then it creates a timer that will hide the dropdown after a
|
|
79
87
|
certain amount of time. */
|
|
80
|
-
this.elementMouseLeaveHandler = () => {
|
|
88
|
+
this.elementMouseLeaveHandler = (event) => {
|
|
81
89
|
var _a;
|
|
82
|
-
(_a = this.hierarchyTreeManager.getParent()) === null || _a === void 0 ? void 0 : _a.elementMouseLeaveHandler();
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
(_a = this.hierarchyTreeManager.getParent()) === null || _a === void 0 ? void 0 : _a.elementMouseLeaveHandler(event);
|
|
91
|
+
const triggerStrategy = this.getTriggerStrategy();
|
|
92
|
+
if (triggerStrategy.canEvaluate('element-mouseleave') && !this.disableInteractiveGetter()) {
|
|
93
|
+
this.createDelayHideTimer(event, 'element-mouseleave');
|
|
85
94
|
}
|
|
86
95
|
};
|
|
87
96
|
/* It's a function that listens to the global mousedown event. It checks if the dropdown is showing,
|
|
@@ -92,15 +101,15 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
92
101
|
const hasChildShowing = this.hierarchyTreeManager
|
|
93
102
|
.getChildren()
|
|
94
103
|
.some((child) => child.isShowing());
|
|
104
|
+
const triggerStrategy = this.getTriggerStrategy();
|
|
95
105
|
if (!hasChildShowing &&
|
|
96
|
-
|
|
97
|
-
this.isShowing() &&
|
|
106
|
+
triggerStrategy.canEvaluate('click-outside') &&
|
|
98
107
|
this.showConfig &&
|
|
99
108
|
!isParent(currentTarget, this.showConfig.appendableElement) &&
|
|
100
109
|
!isParent(currentTarget, this.showConfig.target) &&
|
|
101
110
|
(this.showConfig.isScreenPosition ||
|
|
102
111
|
findParent(currentTarget, 'vega-modal') === findParent(this.showConfig.target, 'vega-modal'))) {
|
|
103
|
-
this.
|
|
112
|
+
this.executeTriggerStrategy(triggerStrategy, e, 'click-outside');
|
|
104
113
|
}
|
|
105
114
|
};
|
|
106
115
|
/* istanbul ignore next */
|
|
@@ -112,9 +121,10 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
112
121
|
}
|
|
113
122
|
};
|
|
114
123
|
/* A timer that will hide the dropdown after a certain amount of time. */
|
|
115
|
-
this.createDelayHideTimer = () => {
|
|
124
|
+
this.createDelayHideTimer = (event, eventType) => {
|
|
125
|
+
const triggerStrategy = this.getTriggerStrategy();
|
|
116
126
|
this.delayHideTimer = setTimeout(() => {
|
|
117
|
-
this.
|
|
127
|
+
this.executeTriggerStrategy(triggerStrategy, event, eventType);
|
|
118
128
|
clearTimeout(this.delayHideTimer);
|
|
119
129
|
}, ElementAppenderSlimmer.DELAY_HIDE_TIME);
|
|
120
130
|
};
|
|
@@ -122,19 +132,22 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
122
132
|
this.clearDelayHideTimer = () => {
|
|
123
133
|
this.delayHideTimer && clearTimeout(this.delayHideTimer);
|
|
124
134
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
+
this.executeTriggerStrategy = (triggerStrategy, event, eventType) => {
|
|
136
|
+
if (this.showConfig) {
|
|
137
|
+
const result = triggerStrategy.evaluate({
|
|
138
|
+
target: this.showConfig.target,
|
|
139
|
+
appendableElement: this.showConfig.appendableElement,
|
|
140
|
+
htmlEvent: event,
|
|
141
|
+
eventType: eventType,
|
|
142
|
+
currentState: {
|
|
143
|
+
isVisible: this.isShowing(),
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
if (result) {
|
|
147
|
+
result.nextAction === 'hide' && this.hide();
|
|
148
|
+
result.nextAction === 'show' && this.show();
|
|
149
|
+
}
|
|
135
150
|
}
|
|
136
|
-
/* istanbul ignore next */
|
|
137
|
-
throw new Error(`Unexpected trigger: ${trigger}. Expected values are custom, click, or hover.`);
|
|
138
151
|
};
|
|
139
152
|
this.showConfigFactory = showConfigFactory;
|
|
140
153
|
this.getTrigger = getTrigger;
|
|
@@ -236,6 +249,21 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
236
249
|
removeShadowRootElementScrolling() {
|
|
237
250
|
ChangeManager.unregister(SHADOW_ROOT_ELEMENT_SCROLLING, this.shadowRootElementScrollingObserver);
|
|
238
251
|
}
|
|
252
|
+
getTriggerStrategy() {
|
|
253
|
+
const trigger = this.getTrigger();
|
|
254
|
+
if (trigger === 'click') {
|
|
255
|
+
return new ClickTriggerStrategy();
|
|
256
|
+
}
|
|
257
|
+
else if (trigger === 'hover') {
|
|
258
|
+
return new HoverTriggerStrategy();
|
|
259
|
+
}
|
|
260
|
+
else if (isEATriggerStrategy(trigger)) {
|
|
261
|
+
return trigger;
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
return new NoneTriggerStrategy();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
239
267
|
}
|
|
240
268
|
ElementAppenderSlimmer.DELAY_HIDE_TIME = 100;
|
|
241
269
|
__decorate([
|
package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js
CHANGED
|
@@ -12,6 +12,7 @@ import { ElementAppenderSlimmer } from '../element-appender-slimmer';
|
|
|
12
12
|
import { LogUtility } from '../../../../utils/log';
|
|
13
13
|
import ChangeManager from '../../../change-manager/change-manager';
|
|
14
14
|
import { SHADOW_ROOT_ELEMENT_SCROLLING } from '../../../change-manager/subject/static-subject/static-subject-title';
|
|
15
|
+
import { ClickOutsideOnlyToDismissStrategy } from '../trigger-strategies/click-outside-only-to-dismiss-strategy';
|
|
15
16
|
describe('ElementAppender slimmer test suite', () => {
|
|
16
17
|
const mockedComponentDidLoadMethod = jest.fn();
|
|
17
18
|
const mockedComponentDisconnectedCallbackMethod = jest.fn();
|
|
@@ -184,14 +185,14 @@ describe('ElementAppender slimmer test suite', () => {
|
|
|
184
185
|
expect((appendableElement.style.display = 'block'));
|
|
185
186
|
jest.useRealTimers();
|
|
186
187
|
});
|
|
187
|
-
test('should listen event proper while trigger is custom', () => {
|
|
188
|
+
test('should listen event proper while trigger is custom trigger', () => {
|
|
188
189
|
const mockedComponent = new MockedComponent();
|
|
189
190
|
const target = new MockHTMLElement('body', 'div');
|
|
190
191
|
const appendableElement = new MockHTMLElement('body', 'div');
|
|
191
192
|
appendableElement.classList.add('vega-force-hidden');
|
|
192
193
|
mockedComponent.target = target;
|
|
193
194
|
mockedComponent.appendableElement = appendableElement;
|
|
194
|
-
mockedComponent.trigger =
|
|
195
|
+
mockedComponent.trigger = new ClickOutsideOnlyToDismissStrategy();
|
|
195
196
|
mockedComponent.componentDidLoad();
|
|
196
197
|
mockedComponent.show();
|
|
197
198
|
expect(mockedComponent.appendableElement).not.toHaveClass('vega-force-hidden');
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A trigger strategy that hides the appendable element when a global mouse down event occurs outside the element.
|
|
3
|
+
*/
|
|
4
|
+
export class ClickOutsideOnlyToDismissStrategy {
|
|
5
|
+
/**
|
|
6
|
+
* Determines if the strategy can evaluate the given event type.
|
|
7
|
+
*
|
|
8
|
+
* @param {VegaEAEventType} type - The type of the event.
|
|
9
|
+
* @returns {boolean} True if the event type is 'globalMouseDown', otherwise false.
|
|
10
|
+
*/
|
|
11
|
+
canEvaluate(type) {
|
|
12
|
+
return type === 'click-outside';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Evaluates the trigger context and determines whether to hide the appendable element.
|
|
16
|
+
*
|
|
17
|
+
* @param {VegaEATriggerContext} context - The context of the trigger event.
|
|
18
|
+
* @returns {VegaEATriggerResult} An object indicating whether to hide the appendable element.
|
|
19
|
+
*/
|
|
20
|
+
evaluate(context) {
|
|
21
|
+
if (context.eventType === 'click-outside' && context.currentState.isVisible) {
|
|
22
|
+
return {
|
|
23
|
+
nextAction: 'hide',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickTriggerStrategy handles 'targetClick' and 'globalMouseDown' events to toggle or hide the appendable element.
|
|
3
|
+
*/
|
|
4
|
+
export class ClickTriggerStrategy {
|
|
5
|
+
/**
|
|
6
|
+
* Determines if the strategy can evaluate the given event type.
|
|
7
|
+
*
|
|
8
|
+
* @param {VegaEAEventType} type - The type of the event.
|
|
9
|
+
* @returns {boolean} True if the event type is 'targetClick' or 'globalMouseDown', otherwise false.
|
|
10
|
+
*/
|
|
11
|
+
canEvaluate(type) {
|
|
12
|
+
return type === 'target-click' || type === 'click-outside';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Evaluates the trigger context and determines whether to show, hide, or toggle the appendable element.
|
|
16
|
+
*
|
|
17
|
+
* @param {VegaEATriggerContext} context - The context of the trigger event.
|
|
18
|
+
* @returns {VegaEATriggerResult} An object indicating whether to show, hide, or toggle the appendable element.
|
|
19
|
+
*/
|
|
20
|
+
evaluate(context) {
|
|
21
|
+
if (context.eventType === 'target-click') {
|
|
22
|
+
return {
|
|
23
|
+
nextAction: context.currentState.isVisible ? 'hide' : 'show',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (context.eventType === 'click-outside' && context.currentState.isVisible) {
|
|
27
|
+
return {
|
|
28
|
+
nextAction: 'hide',
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HoverTriggerStrategy handles mouse enter and leave events on the target and appendable elements,
|
|
3
|
+
* as well as global mouse down events to show or hide the appendable element.
|
|
4
|
+
*/
|
|
5
|
+
export class HoverTriggerStrategy {
|
|
6
|
+
/**
|
|
7
|
+
* Determines if the strategy can evaluate the given event type.
|
|
8
|
+
*
|
|
9
|
+
* @param {VegaEAEventType} type - The type of the event.
|
|
10
|
+
* @returns {boolean} True if the event type is related to hover actions or global mouse down, otherwise false.
|
|
11
|
+
*/
|
|
12
|
+
canEvaluate(type) {
|
|
13
|
+
return [
|
|
14
|
+
'target-mouseenter',
|
|
15
|
+
'target-mouseleave',
|
|
16
|
+
'element-mouseenter',
|
|
17
|
+
'element-mouseleave',
|
|
18
|
+
].includes(type);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Evaluates the trigger context and determines whether to show, hide, or toggle the appendable element.
|
|
22
|
+
*
|
|
23
|
+
* @param {VegaEATriggerContext} context - The context of the trigger event.
|
|
24
|
+
* @returns {VegaEATriggerResult} An object indicating whether to show, hide, or toggle the appendable element.
|
|
25
|
+
*/
|
|
26
|
+
evaluate(context) {
|
|
27
|
+
if (['target-mouseenter', 'element-mouseenter'].includes(context.eventType)) {
|
|
28
|
+
return !context.currentState.isVisible
|
|
29
|
+
? {
|
|
30
|
+
nextAction: 'show',
|
|
31
|
+
}
|
|
32
|
+
: {};
|
|
33
|
+
}
|
|
34
|
+
if (['target-mouseleave', 'element-mouseleave'].includes(context.eventType)) {
|
|
35
|
+
return {
|
|
36
|
+
nextAction: 'hide',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/* istanbul ignore next */
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NoneTriggerStrategy does not respond to any events and always indicates no action.
|
|
3
|
+
*/
|
|
4
|
+
export class NoneTriggerStrategy {
|
|
5
|
+
/**
|
|
6
|
+
* Determines if the strategy can evaluate the given event type.
|
|
7
|
+
*
|
|
8
|
+
* @returns {boolean} Always false as this strategy does not respond to any events.
|
|
9
|
+
*/
|
|
10
|
+
canEvaluate() {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
/* istanbul ignore next */
|
|
14
|
+
/**
|
|
15
|
+
* Evaluates the trigger context and always indicates no action.
|
|
16
|
+
*
|
|
17
|
+
* @returns {VegaEATriggerResult} An object indicating no action (no show, hide, or toggle).
|
|
18
|
+
*/
|
|
19
|
+
evaluate() {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ClickOutsideOnlyToDismissStrategy } from '../../helpers/slimmers/element-appender/trigger-strategies/click-outside-only-to-dismiss-strategy';
|
|
2
|
+
import { isEATriggerStrategy, isFlexWrapType, isResponsiveType, isSpacingDirection, isStateVariantTokenType, } from '../type-guard';
|
|
2
3
|
test('should get expect result when call function isResponsiveType', async () => {
|
|
3
4
|
const sizeWithDefault = {
|
|
4
5
|
default: 'default',
|
|
@@ -37,3 +38,9 @@ test('should get expect result when call function isFlexWrapType', async () => {
|
|
|
37
38
|
expect(isFlexWrapType('wrap')).toBeTruthy();
|
|
38
39
|
expect(isFlexWrapType('wrap1')).toBeFalsy();
|
|
39
40
|
});
|
|
41
|
+
test('should get expect result when call function isEATriggerStrategy', async () => {
|
|
42
|
+
expect(isEATriggerStrategy(undefined)).toBeFalsy();
|
|
43
|
+
expect(isEATriggerStrategy(null)).toBeFalsy();
|
|
44
|
+
expect(isEATriggerStrategy('wrap')).toBeFalsy();
|
|
45
|
+
expect(isEATriggerStrategy(new ClickOutsideOnlyToDismissStrategy())).toBeTruthy();
|
|
46
|
+
});
|
|
@@ -395,3 +395,14 @@ export const isVegaTableColumnGroupingModelType = (input) => {
|
|
|
395
395
|
export const isCalendarDateType = (input) => {
|
|
396
396
|
return input instanceof CalendarDate;
|
|
397
397
|
};
|
|
398
|
+
/**
|
|
399
|
+
* Type guard to check if the provided instance implements the VegaEATriggerStrategy interface
|
|
400
|
+
*
|
|
401
|
+
* @param {unknown} instance - The instance to check.
|
|
402
|
+
* @returns {instance is VegaEATriggerStrategy} True if the instance implements VegaEATriggerStrategy.
|
|
403
|
+
*/
|
|
404
|
+
export const isEATriggerStrategy = (instance) => {
|
|
405
|
+
return (!!instance &&
|
|
406
|
+
typeof instance.evaluate === 'function' &&
|
|
407
|
+
typeof instance.canEvaluate === 'function');
|
|
408
|
+
};
|