@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
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { tryGetDocument } from './try-get-document';
|
|
2
|
+
/**
|
|
3
|
+
* Helper utilities for sanitizing string from harmful tags
|
|
4
|
+
* This utility is intentionally restrictive of allowed tags depending on expected output.
|
|
5
|
+
*
|
|
6
|
+
* - Uses DOM-based parsing (no regex)
|
|
7
|
+
* - All attributes are stripped
|
|
8
|
+
* - Disallowed elements are unwrapped (children preserved)
|
|
9
|
+
*/
|
|
10
|
+
export class SanitizeUtility {
|
|
11
|
+
/**
|
|
12
|
+
* It cleans up string for labels and allow minor formatting like bold, italic, strong
|
|
13
|
+
*
|
|
14
|
+
* @param {string} input - the passed label input string for sanitization
|
|
15
|
+
* @returns {string} returns sanitized string
|
|
16
|
+
*/
|
|
17
|
+
static sanitizeHtmlLabel(input) {
|
|
18
|
+
return this.sanitize(input, this.LABEL_ALLOWED_TAGS);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sanitizes the provided HTML string by parsing it into a DOM tree and
|
|
22
|
+
* removing all disallowed elements and attributes.
|
|
23
|
+
*
|
|
24
|
+
* @param {string} input - raw HTML string to sanitize
|
|
25
|
+
* @param {ReadonlySet<string>} allowedTags - set of allowed HTML tag names
|
|
26
|
+
* @returns {string} sanitized HTML string
|
|
27
|
+
*/
|
|
28
|
+
static sanitize(input, allowedTags) {
|
|
29
|
+
if (input.trim() === '')
|
|
30
|
+
return '';
|
|
31
|
+
const doc = tryGetDocument();
|
|
32
|
+
if (!doc)
|
|
33
|
+
return '';
|
|
34
|
+
const parser = new DOMParser();
|
|
35
|
+
const parsedDocument = parser.parseFromString(input, 'text/html');
|
|
36
|
+
const outputFragment = doc.createDocumentFragment();
|
|
37
|
+
parsedDocument.body.childNodes.forEach((node) => {
|
|
38
|
+
const cleanNode = this.sanitizeNode(node, allowedTags, doc);
|
|
39
|
+
if (cleanNode) {
|
|
40
|
+
outputFragment.appendChild(cleanNode);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return this.serializeFragment(outputFragment, doc);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Sanitizes a DOM node recursively.
|
|
47
|
+
* - Text nodes are preserved
|
|
48
|
+
* - Element nodes are sanitized based on allowed tags
|
|
49
|
+
* - Other node types are discarded
|
|
50
|
+
*
|
|
51
|
+
* @param {Node} node - DOM node to sanitize
|
|
52
|
+
* @param {ReadonlySet<string>} allowedTags - set of allowed HTML tag names
|
|
53
|
+
* @param {Document} doc - document reference
|
|
54
|
+
* @returns {Nullable<Node>} sanitized node or null if not allowed
|
|
55
|
+
*/
|
|
56
|
+
static sanitizeNode(node, allowedTags, doc) {
|
|
57
|
+
switch (node.nodeType) {
|
|
58
|
+
case Node.TEXT_NODE:
|
|
59
|
+
return node.cloneNode(true);
|
|
60
|
+
case Node.ELEMENT_NODE:
|
|
61
|
+
return this.sanitizeElement(node, allowedTags, doc);
|
|
62
|
+
default:
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Sanitizes an HTML element.
|
|
68
|
+
* - If the element tag is not allowed, it is removed but its children are preserved
|
|
69
|
+
* - If allowed, a clean element is created with no attributes
|
|
70
|
+
*
|
|
71
|
+
* @param {HTMLElement} element - element to sanitize
|
|
72
|
+
* @param {ReadonlySet<string>} allowedTags - set of allowed HTML tag names
|
|
73
|
+
* @param {Document} doc - document reference
|
|
74
|
+
* @returns {Node} sanitized node or fragment
|
|
75
|
+
*/
|
|
76
|
+
static sanitizeElement(element, allowedTags, doc) {
|
|
77
|
+
if (!allowedTags.has(element.tagName)) {
|
|
78
|
+
const fragment = doc.createDocumentFragment();
|
|
79
|
+
element.childNodes.forEach((child) => {
|
|
80
|
+
const cleanChild = this.sanitizeNode(child, allowedTags, doc);
|
|
81
|
+
if (cleanChild) {
|
|
82
|
+
fragment.appendChild(cleanChild);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return fragment;
|
|
86
|
+
}
|
|
87
|
+
const cleanElement = doc.createElement(element.tagName.toLowerCase());
|
|
88
|
+
element.childNodes.forEach((child) => {
|
|
89
|
+
const cleanChild = this.sanitizeNode(child, allowedTags, doc);
|
|
90
|
+
if (cleanChild) {
|
|
91
|
+
cleanElement.appendChild(cleanChild);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return cleanElement;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Serializes a DocumentFragment back into an HTML string.
|
|
98
|
+
*
|
|
99
|
+
* @param {DocumentFragment} fragment - fragment to serialize
|
|
100
|
+
* @param {Document} doc - document reference
|
|
101
|
+
* @returns {string} serialized HTML string
|
|
102
|
+
*/
|
|
103
|
+
static serializeFragment(fragment, doc) {
|
|
104
|
+
var _a;
|
|
105
|
+
const container = doc.createElement('div');
|
|
106
|
+
container.appendChild(fragment);
|
|
107
|
+
// If no HTML elements exist, return textContent
|
|
108
|
+
return container.children.length === 0 ? (_a = container.textContent) !== null && _a !== void 0 ? _a : '' : container.innerHTML;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Set of allowed HTML tags for label rendering.
|
|
113
|
+
* Tags must be uppercase to match DOMParser element.tagName output.
|
|
114
|
+
*/
|
|
115
|
+
SanitizeUtility.LABEL_ALLOWED_TAGS = new Set(['B', 'I', 'STRONG', 'EM']);
|
|
116
|
+
/**
|
|
117
|
+
* Standalone helper (keeps parity with existing utility exports pattern)
|
|
118
|
+
*
|
|
119
|
+
* It cleans up string for labels and allow minor formatting like bold, italic, strong
|
|
120
|
+
*
|
|
121
|
+
* @param {string} input - the passed label input string for sanitization
|
|
122
|
+
* @returns {string} returns sanitized string
|
|
123
|
+
*/
|
|
124
|
+
export function sanitizeHtmlLabel(input) {
|
|
125
|
+
return SanitizeUtility.sanitizeHtmlLabel(input);
|
|
126
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { tryGetDocument } from '../try-get-document';
|
|
2
|
+
import { sanitizeHtmlLabel } from '../sanitize';
|
|
3
|
+
test('sanitizeHtmlLabel should render simple string as it is', () => {
|
|
4
|
+
expect(sanitizeHtmlLabel('Hello')).toEqual('Hello');
|
|
5
|
+
expect(sanitizeHtmlLabel('Hello world paragraph text')).toEqual('Hello world paragraph text');
|
|
6
|
+
expect(sanitizeHtmlLabel('')).toBe('');
|
|
7
|
+
expect(sanitizeHtmlLabel(' ')).toBe('');
|
|
8
|
+
expect(sanitizeHtmlLabel('\n\t')).toBe('');
|
|
9
|
+
});
|
|
10
|
+
test('sanitizeHtmlLabel should preserve allowed formatting tags', () => {
|
|
11
|
+
// bold
|
|
12
|
+
expect(sanitizeHtmlLabel('<b>Hello</b>')).toEqual('<b>Hello</b>');
|
|
13
|
+
// italic
|
|
14
|
+
expect(sanitizeHtmlLabel('<i>Hello</i>')).toEqual('<i>Hello</i>');
|
|
15
|
+
// em
|
|
16
|
+
expect(sanitizeHtmlLabel('<em>Em</em>')).toEqual('<em>Em</em>');
|
|
17
|
+
// strong
|
|
18
|
+
expect(sanitizeHtmlLabel('<strong>Strong text</strong>')).toEqual('<strong>Strong text</strong>');
|
|
19
|
+
});
|
|
20
|
+
test('sanitizeHtmlLabel should not allow executable tags and functions', () => {
|
|
21
|
+
expect(sanitizeHtmlLabel('<script>window.__xssExecuted = true</script>')).toEqual('');
|
|
22
|
+
expect(sanitizeHtmlLabel('<img src="x" onerror="window.__xssImg = true">')).toEqual('');
|
|
23
|
+
expect(sanitizeHtmlLabel('<span onclick="window.__xssClick = true">Span</span>')).toEqual('Span');
|
|
24
|
+
});
|
|
25
|
+
test('sanitizeHtmlLabel should unwrap disallowed elements but preserve their children', () => {
|
|
26
|
+
expect(sanitizeHtmlLabel('<div>Hello <span>World</span></div>')).toEqual('Hello World');
|
|
27
|
+
});
|
|
28
|
+
test('sanitizeHtmlLabel should ignore non-element, non-text nodes', () => {
|
|
29
|
+
expect(sanitizeHtmlLabel('Text <!-- malicious comment --><script>alert(1)</script>')).toEqual('Text alert(1)');
|
|
30
|
+
});
|
|
31
|
+
it('sanitizeHtmlLabel should not return empty string if document is available', () => {
|
|
32
|
+
expect(typeof document).toBe('object');
|
|
33
|
+
expect(tryGetDocument()).toBe(document);
|
|
34
|
+
expect(sanitizeHtmlLabel('<b>Some</b> text')).toEqual('<b>Some</b> text');
|
|
35
|
+
});
|
|
36
|
+
it('sanitizeHtmlLabel should return empty string if document is not available', () => {
|
|
37
|
+
const originalDocument = globalThis.document;
|
|
38
|
+
delete globalThis.document;
|
|
39
|
+
expect(tryGetDocument()).toBeUndefined();
|
|
40
|
+
expect(sanitizeHtmlLabel('<b>Some</b> text')).toEqual('');
|
|
41
|
+
globalThis.document = originalDocument;
|
|
42
|
+
});
|
|
43
|
+
test('sanitizeHtmlLabel should return textContent if no HTML elements exist', () => {
|
|
44
|
+
expect(sanitizeHtmlLabel('>hello')).toEqual('>hello');
|
|
45
|
+
expect(sanitizeHtmlLabel('Me > You')).toEqual('Me > You');
|
|
46
|
+
expect(sanitizeHtmlLabel('Me <b>></b> You')).toEqual('Me <b>></b> You');
|
|
47
|
+
});
|
|
48
|
+
test('serializeFragment should return innerHTML when HTML elements exist', () => {
|
|
49
|
+
expect(sanitizeHtmlLabel('<b>Bold</b>')).toBe('<b>Bold</b>');
|
|
50
|
+
});
|
|
51
|
+
test('serializeFragment falls back to empty string when textContent is null', () => {
|
|
52
|
+
const originalCreateElement = document.createElement;
|
|
53
|
+
jest.spyOn(document, 'createElement').mockImplementation((tagName) => {
|
|
54
|
+
const el = originalCreateElement.call(document, tagName);
|
|
55
|
+
if (tagName === 'div') {
|
|
56
|
+
Object.defineProperty(el, 'textContent', {
|
|
57
|
+
get: () => null,
|
|
58
|
+
configurable: true,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return el;
|
|
62
|
+
});
|
|
63
|
+
expect(sanitizeHtmlLabel('plain text')).toBe('');
|
|
64
|
+
document.createElement.mockRestore();
|
|
65
|
+
});
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { F as FeatureFlag } from './feature-flag-controller-51659753.js';
|
|
2
|
-
import { V as VegaLoader, a as VegaNotify, b as VegaThemeManager, c as VegaDialog, d as VegaEventManager, e as VegaZIndexManager, f as VegaSkeletonLoader, g as VegaRTETokenExtension, h as VegaRTEFunctionExtension } from './function-extension-
|
|
2
|
+
import { V as VegaLoader, a as VegaNotify, b as VegaThemeManager, c as VegaDialog, d as VegaEventManager, e as VegaZIndexManager, f as VegaSkeletonLoader, g as VegaRTETokenExtension, h as VegaRTEFunctionExtension } from './function-extension-63028f20.js';
|
|
3
3
|
import { M as MapToComponentMethod, V as VegaSlimmer, s as setVegaLogLevel, G as GlobalSlimmersRegistry } from './global-slimmer-registry-17c4efd4.js';
|
|
4
4
|
import { v as vegaEnvManager } from './vega-env-manager-8f8dc473.js';
|
|
5
5
|
import { V as VegaIconManager } from './internal-icon-manager-f0486245.js';
|
|
6
6
|
import './wait-for-vega-handler-c2c07ac3.js';
|
|
7
7
|
import './ui-bb99c0c2.js';
|
|
8
8
|
import { V as VegaInternalTranslation, a as VegaTranslation, s as staticTranslations } from './translation-96e5debd.js';
|
|
9
|
-
import { V as VegaRTEContent } from './dto-renderer-manager-
|
|
9
|
+
import { V as VegaRTEContent } from './dto-renderer-manager-f07cf2d9.js';
|
|
10
10
|
import { v as vegaNonceManager, s as setVegaNonce } from './vega-nonce-manager-497e5eb5.js';
|
|
11
|
-
import { V as VegaRTEPresetToolbarItems } from './code-block-
|
|
12
|
-
import './type-guard-
|
|
11
|
+
import { V as VegaRTEPresetToolbarItems } from './code-block-8ee34ab6.js';
|
|
12
|
+
import './type-guard-c65a227d.js';
|
|
13
13
|
import { T as TypographyUrls } from './typography-396de03f.js';
|
|
14
|
-
import { V as ValidCreditCardNumberRule } from './valid-credit-card-number-rule-
|
|
15
|
-
import { w as waitForVega } from './index-
|
|
16
|
-
import { V as VegaRTELanguageExtension } from './language-extension-
|
|
14
|
+
import { V as ValidCreditCardNumberRule } from './valid-credit-card-number-rule-666c415d.js';
|
|
15
|
+
import { w as waitForVega } from './index-51a7da7f.js';
|
|
16
|
+
import { V as VegaRTELanguageExtension } from './language-extension-c4ff21dd.js';
|
|
17
17
|
import { U as UPDATE_TRANSLATION } from './static-subject-title-52f93124.js';
|
|
18
18
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
19
19
|
import { O as Observer } from './observer-3959f9dd.js';
|
|
@@ -398,7 +398,7 @@ function injectVegaRichTextEditorClassIntoGlobal() {
|
|
|
398
398
|
* Inject VegaPublicValidationRules to global as a public api
|
|
399
399
|
*/
|
|
400
400
|
function injectVegaPublicValidationRules() {
|
|
401
|
-
void import('./public-rules-
|
|
401
|
+
void import('./public-rules-6ebdfcf5.js').then((module) => {
|
|
402
402
|
Object.entries(module).forEach(([name, value]) => {
|
|
403
403
|
globalThis[name] = value;
|
|
404
404
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as MapToComponentField, M as MapToComponentMethod, V as VegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
|
|
2
|
-
import { i as internalVegaEventManager, j as jqueryDelegatedStrategyController } from './internal-vega-event-manager-
|
|
2
|
+
import { i as internalVegaEventManager, j as jqueryDelegatedStrategyController } from './internal-vega-event-manager-efb6786e.js';
|
|
3
3
|
import { v as vegaEnvManager } from './vega-env-manager-8f8dc473.js';
|
|
4
4
|
import { F as FeatureFlag } from './feature-flag-controller-51659753.js';
|
|
5
5
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A trigger strategy that hides the appendable element when a global mouse down event occurs outside the element.
|
|
3
|
+
*/
|
|
4
|
+
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
|
+
}
|
|
29
|
+
|
|
30
|
+
export { ClickOutsideOnlyToDismissStrategy as C };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
2
|
-
import { d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-
|
|
2
|
+
import { d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-064ee2b2.js';
|
|
3
3
|
import { b as VegaInternalRichTextEditorFlushChanges, c as VegaInternalRichTextEditorSelectionRangeChange } from './vega-internal-event-id-4a06d705.js';
|
|
4
4
|
import { c as camelToDashCase } from './string-a953eafc.js';
|
|
5
5
|
import { L as LogUtility } from './global-slimmer-registry-17c4efd4.js';
|
|
6
|
-
import { i as isNonNullable } from './type-guard-
|
|
6
|
+
import { i as isNonNullable } from './type-guard-c65a227d.js';
|
|
7
7
|
import { g as generateUUID } from './create-public-api-runtime-metrics-slimmer-bedf3a1e.js';
|
|
8
8
|
import { V as VegaInternalThemeManager } from './dark-mode-style-controller-de88a117.js';
|
|
9
9
|
import { c as cleanObject } from './object-66c37948.js';
|
|
@@ -2620,7 +2620,7 @@ class PlainTextAnnotation extends NodeAnnotation {
|
|
|
2620
2620
|
* @inheritDoc
|
|
2621
2621
|
*/
|
|
2622
2622
|
toJSON() {
|
|
2623
|
-
return { plainText: this.plainText };
|
|
2623
|
+
return this.plainText ? { plainText: this.plainText } : undefined;
|
|
2624
2624
|
}
|
|
2625
2625
|
}
|
|
2626
2626
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { M as MapToComponentMethod, V as VegaSlimmer, L as LogUtility, c as MapToComponentField } from './global-slimmer-registry-17c4efd4.js';
|
|
2
|
-
import { a0 as RTECodeBlockNode, b as RTETextNode, Z as ZERO_WIDTH_SPACE, _ as SelectionChangeAction, k as InternalAnnotationTypeEnum, s as stateEntityRenderingRegistry, f as RTEBlock, i as RTENode, z as RTEDecoratorNode, x as RTECodeBlock } from './code-block-
|
|
2
|
+
import { a0 as RTECodeBlockNode, b as RTETextNode, Z as ZERO_WIDTH_SPACE, _ as SelectionChangeAction, k as InternalAnnotationTypeEnum, s as stateEntityRenderingRegistry, f as RTEBlock, i as RTENode, z as RTEDecoratorNode, x as RTECodeBlock } from './code-block-8ee34ab6.js';
|
|
3
3
|
import { d as debounce } from './timer-9321173b.js';
|
|
4
4
|
import { g as getActiveElement } from './component-7d906393.js';
|
|
5
5
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
6
|
-
import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-
|
|
6
|
+
import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-064ee2b2.js';
|
|
7
7
|
import { c as VegaInternalRichTextEditorSelectionRangeChange, a as VegaInternalUpdateRTECursorPosition } from './vega-internal-event-id-4a06d705.js';
|
|
8
8
|
import { O as Observer } from './observer-3959f9dd.js';
|
|
9
|
-
import { R as RTERange } from './range-
|
|
9
|
+
import { R as RTERange } from './range-5257c062.js';
|
|
10
10
|
import { S as SynchronizeTaskQueue } from './synchronize-task-queue-ac8acc3b.js';
|
|
11
11
|
import { i as isHTMLElement } from './ui-bb99c0c2.js';
|
|
12
|
-
import { K as KeyboardManagerSlimmer } from './keyboard-manager-slimmer-
|
|
12
|
+
import { K as KeyboardManagerSlimmer } from './keyboard-manager-slimmer-79c78ce8.js';
|
|
13
13
|
|
|
14
14
|
let processing = false;
|
|
15
15
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { j as StateVariantFormatter, k as isBorderColorTokenType, b as BorderColors, e as BorderColorMap, l as isShadowsTokenType, f as Shadows, g as ShadowMap, m as isBorderTokenType, n as Borders, o as BorderMap, p as StateBackgroundColorFormatter, q as isSpacingTokenType, r as isBorderRadiusTokenType, s as isBackgroundColorTokenType, t as isTextColorTokenType, u as isBreakpointsTokenType, h as Spacing, v as isBorderStyleType, B as BorderRadius, C as Colors, w as isTypographyTokenType } from './type-guard-
|
|
1
|
+
import { j as StateVariantFormatter, k as isBorderColorTokenType, b as BorderColors, e as BorderColorMap, l as isShadowsTokenType, f as Shadows, g as ShadowMap, m as isBorderTokenType, n as Borders, o as BorderMap, p as StateBackgroundColorFormatter, q as isSpacingTokenType, r as isBorderRadiusTokenType, s as isBackgroundColorTokenType, t as isTextColorTokenType, u as isBreakpointsTokenType, h as Spacing, v as isBorderStyleType, B as BorderRadius, C as Colors, w as isTypographyTokenType } from './type-guard-c65a227d.js';
|
|
2
2
|
import { B as Breakpoints } from './breakpoints-d9faf11c.js';
|
|
3
3
|
import { L as LogUtility } from './global-slimmer-registry-17c4efd4.js';
|
|
4
|
-
import { R as ResponsiveFormatFacade } from './responsive-format-facade-
|
|
4
|
+
import { R as ResponsiveFormatFacade } from './responsive-format-facade-05e53016.js';
|
|
5
5
|
import { a as TypographyKeys } from './typography-396de03f.js';
|
|
6
6
|
import { B as BorderStyle } from './ui-28fd4193.js';
|
|
7
7
|
|
|
@@ -111,6 +111,8 @@ const VegaPaste = new VegaEventID('vegaPaste', 'paste');
|
|
|
111
111
|
const HTMLNativeEventIds = [VegaChange, VegaClick, VegaFocus, VegaBlur, VegaPaste];
|
|
112
112
|
const VegaMonthYearChange = new VegaEventID('vegaMonthYearChange', 'monthYearChange');
|
|
113
113
|
const VegaSelectionChange = new VegaEventID('vegaSelectionChange', 'selectionChange');
|
|
114
|
+
const VegaSuggestionItemClick = new VegaEventID('vegaSuggestionItemClick', 'suggestionItemClick');
|
|
115
|
+
const VegaNativeInputChange = new VegaEventID('vegaNativeInputChange', 'nativeInputChange');
|
|
114
116
|
|
|
115
117
|
/** The DomNodeSubject class represents a subject related to DOM nodes. */
|
|
116
118
|
class DomNodeSubject {
|
|
@@ -245,4 +247,4 @@ class DomNodeSubjectObserverFactory {
|
|
|
245
247
|
}
|
|
246
248
|
}
|
|
247
249
|
|
|
248
|
-
export {
|
|
250
|
+
export { VegaSelectAllChange as $, VegaFormSubmit as A, VegaFormReset as B, VegaValidate as C, DomNodeSubjectObserverFactory as D, VegaCancel as E, VegaNativeInputChange as F, VegaFocus as G, VegaBlur as H, VegaSuggestionItemClick as I, VegaPaste as J, VegaComplete as K, VegaCountryChange as L, VegaShow as M, VegaHide as N, VegaToggleStatus as O, VegaOpen as P, VegaStateUpdate as Q, VegaGroupClick as R, VegaMenuClick as S, VegaActionClick as T, VegaPageSizeChange as U, VegaDropdownClick as V, VegaPopoverShow as W, VegaPopoverHide as X, VegaCurrentStepUpdate as Y, VegaImageInserted as Z, VegaSelectChange as _, VegaClick as a, VegaRowClick as a0, VegaRowExpand as a1, VegaRowSelect as a2, VegaRowSelectAll as a3, VegaExpand as b, VegaReset as c, domNodeSubjectFactory as d, VegaClose as e, VegaActionButtonClick as f, VegaChange as g, VegaEventClick as h, VegaDateDblClick as i, VegaMoreActionClick as j, VegaDateClick as k, VegaPageUpdate as l, VegaRemove as m, VegaCreate as n, VegaSearch as o, VegaMonthYearChange as p, VegaClear as q, VegaSelectionChange as r, VegaDropdownShow as s, VegaDropdownHide as t, VegaDropdownSearch as u, VegaSearchTrigger as v, VegaLabelButtonClick as w, VegaSelectFileChange as x, VegaRetry as y, VegaPreview as z };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as ActionHandleStrategy, e as RTETextBlock, b as RTETextNode, h as AppendChildrenAction, A as ActionHandleStrategyRegistry, T as TextStyleAnnotationAction, B as BlockUpdateTextStyleStrategy, H as HorizontalAlignmentAnnotationAction, l as BlockUpdateHorizontalAlignmentStrategy, c as ModifyContentActionType, m as BlockInsertLineBreakStrategy, n as BlockInsertLineBreakWithBlocksStrategy, o as BlockSplitWithTextNodeStrategy, p as BlockReplaceNodesStrategy, q as BlockMergeNodesStrategy, I as InsertChildrenAfterAction, r as RemoveChildrenAction, S as SyncUpSelectionAction, j as InsertChildrenBeforeAction, t as BlockAnnotation, u as BlockAnnotationTypeEnum, f as RTEBlock, v as CustomStyleAnnotation, w as CustomClassAnnotation, C as CustomAttributeAnnotation, x as RTECodeBlock, s as stateEntityRenderingRegistry, N as NodeAnnotation, y as NodeAnnotationTypeEnum, z as RTEDecoratorNode, D as NodeTypeEnum, E as CommonAnnotation, F as AnnotationAction, G as ReplaceChildNodesAction, M as ModifyContentAction, J as SplitBlockWithNodeAction, K as BlockDeleteNodeContentStrategy, U as UpdateTextAction, L as RemoveChildrenStrategy, O as RTE_TEXT_COLORS, P as RTE_DEFAULT_TEXT_COLOR, R as RTEDTOClassManager } from './code-block-
|
|
1
|
+
import { d as ActionHandleStrategy, e as RTETextBlock, b as RTETextNode, h as AppendChildrenAction, A as ActionHandleStrategyRegistry, T as TextStyleAnnotationAction, B as BlockUpdateTextStyleStrategy, H as HorizontalAlignmentAnnotationAction, l as BlockUpdateHorizontalAlignmentStrategy, c as ModifyContentActionType, m as BlockInsertLineBreakStrategy, n as BlockInsertLineBreakWithBlocksStrategy, o as BlockSplitWithTextNodeStrategy, p as BlockReplaceNodesStrategy, q as BlockMergeNodesStrategy, I as InsertChildrenAfterAction, r as RemoveChildrenAction, S as SyncUpSelectionAction, j as InsertChildrenBeforeAction, t as BlockAnnotation, u as BlockAnnotationTypeEnum, f as RTEBlock, v as CustomStyleAnnotation, w as CustomClassAnnotation, C as CustomAttributeAnnotation, x as RTECodeBlock, s as stateEntityRenderingRegistry, N as NodeAnnotation, y as NodeAnnotationTypeEnum, z as RTEDecoratorNode, D as NodeTypeEnum, E as CommonAnnotation, F as AnnotationAction, G as ReplaceChildNodesAction, M as ModifyContentAction, J as SplitBlockWithNodeAction, K as BlockDeleteNodeContentStrategy, U as UpdateTextAction, L as RemoveChildrenStrategy, O as RTE_TEXT_COLORS, P as RTE_DEFAULT_TEXT_COLOR, R as RTEDTOClassManager } from './code-block-8ee34ab6.js';
|
|
2
2
|
import { g as generateUUID } from './create-public-api-runtime-metrics-slimmer-bedf3a1e.js';
|
|
3
|
-
import { i as isNonNullable } from './type-guard-
|
|
3
|
+
import { i as isNonNullable } from './type-guard-c65a227d.js';
|
|
4
4
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
5
|
-
import { d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-
|
|
5
|
+
import { d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-064ee2b2.js';
|
|
6
6
|
import { a as VegaInternalUpdateRTECursorPosition, b as VegaInternalRichTextEditorFlushChanges } from './vega-internal-event-id-4a06d705.js';
|
|
7
7
|
import { d as dashCaseToCamel } from './string-a953eafc.js';
|
|
8
8
|
import { r as rgbToHex, i as isHTMLElement } from './ui-bb99c0c2.js';
|
|
@@ -3661,22 +3661,27 @@ class VegaRTEContent {
|
|
|
3661
3661
|
/**
|
|
3662
3662
|
* Create an empty content state
|
|
3663
3663
|
*
|
|
3664
|
+
* @param {VegaRTETransformOptions} options - Optional transformation options.
|
|
3664
3665
|
* @returns {VegaRTEContent} An empty content state
|
|
3665
3666
|
*/
|
|
3666
|
-
static createEmptyContent() {
|
|
3667
|
+
static createEmptyContent(options = { autoMatchFormat: true }) {
|
|
3667
3668
|
return VegaRTEContent.fromJSON([
|
|
3668
3669
|
{
|
|
3669
3670
|
id: generateUUID(),
|
|
3670
3671
|
type: 'paragraph',
|
|
3672
|
+
annotations: {
|
|
3673
|
+
internalWrapper: !options.autoMatchFormat,
|
|
3674
|
+
},
|
|
3671
3675
|
nodes: [
|
|
3672
3676
|
{
|
|
3673
3677
|
id: generateUUID(),
|
|
3678
|
+
annotations: { plainText: !options.autoMatchFormat },
|
|
3674
3679
|
type: 'text',
|
|
3675
3680
|
text: '',
|
|
3676
3681
|
},
|
|
3677
3682
|
],
|
|
3678
3683
|
},
|
|
3679
|
-
]);
|
|
3684
|
+
], options);
|
|
3680
3685
|
}
|
|
3681
3686
|
/**
|
|
3682
3687
|
* Converts HTML content to a VegaRTEContent instance.
|
|
@@ -3749,8 +3754,19 @@ class VegaRTEContent {
|
|
|
3749
3754
|
if (options) {
|
|
3750
3755
|
LogUtility.warn(`The 'options' parameter in toHtml method is deprecated and will be removed in the future.`);
|
|
3751
3756
|
}
|
|
3757
|
+
if (this.isEmpty()) {
|
|
3758
|
+
return '';
|
|
3759
|
+
}
|
|
3752
3760
|
return this.children.map((block) => block.toHtml()).join('');
|
|
3753
3761
|
}
|
|
3762
|
+
/**
|
|
3763
|
+
* Checks if the content state is empty.
|
|
3764
|
+
*
|
|
3765
|
+
* @returns {boolean} True if the content state is empty, false otherwise.
|
|
3766
|
+
*/
|
|
3767
|
+
isEmpty() {
|
|
3768
|
+
return this.children.length === 0 || (this.children.length === 1 && !this.children[0].isNotEmpty());
|
|
3769
|
+
}
|
|
3754
3770
|
/**
|
|
3755
3771
|
* Internal method to add the block item, remove the block item
|
|
3756
3772
|
*
|