@globalpayments/vega 2.73.0 → 2.75.1
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-35614ce8.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-bb39e07e.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-03e1a038.js} +218 -27
- package/dist/cjs/{element-appender-slimmer-12f40b8b.js → element-appender-slimmer-daa8b9f5.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-cfbbc57e.js} +5 -5
- package/dist/cjs/{image-annotation-action-7408a4b3.js → image-annotation-action-3fa501b7.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-8c4a56ff.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-dc2a8d62.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-d5dba942.js} +4 -4
- package/dist/cjs/{rich-text-editor-required-rule-4aab05a3.js → rich-text-editor-required-rule-ba312af9.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-49693da7.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 +87 -27
- 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/blocks/html-block.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +21 -24
- 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/html-cleaner/html-content-cleaner-processor.interface.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.js +59 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.js +4 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.js +21 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.js +21 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.js +77 -0
- 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/blocks/html-block.test.js +39 -0
- package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +171 -1
- package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.js +186 -0
- package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.js +22 -0
- package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.js +22 -0
- package/dist/collection/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.js +26 -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/code-format/code-formatter.js +57 -7
- package/dist/collection/helpers/code-format/test/code-formatter.test.js +48 -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-2ac60ff5.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-007efbaa.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-ee1a5864.js} +218 -27
- package/dist/esm/{element-appender-slimmer-b9890dcb.js → element-appender-slimmer-35e26b5a.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-e8c0e43e.js} +5 -5
- package/dist/esm/{image-annotation-action-b3eea6a2.js → image-annotation-action-285d432e.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-29bf8acd.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-724873f5.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-28ee2dbd.js} +4 -4
- package/dist/esm/{rich-text-editor-required-rule-2131f21c.js → rich-text-editor-required-rule-873e2e67.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-314b37f3.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 +87 -27
- 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/blocks/html-block.d.ts +10 -0
- 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/html-cleaner/html-content-cleaner-processor.interface.d.ts +13 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/html-content-cleaner.d.ts +35 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/index.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-after-opening-tag-processor.d.ts +19 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-before-closing-tag-processor.d.ts +19 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/html-cleaner/processors/remove-whitespace-between-tags-processor.d.ts +59 -0
- 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/vega-rich-text-editor/test/html-cleaner/html-content-cleaner.test.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-after-opening-tag-processor.test.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-before-closing-tag-processor.test.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/test/html-cleaner/remove-whitespace-between-tags-processor.test.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/code-format/code-formatter.d.ts +14 -0
- 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-6e701542.entry.js → p-012753b5.entry.js} +1 -1
- package/dist/vega/{p-db62b038.entry.js → p-024331ce.entry.js} +1 -1
- package/dist/vega/{p-74a77cad.js → p-0575d22e.js} +1 -1
- package/dist/vega/{p-42a283b5.entry.js → p-08a90cc6.entry.js} +1 -1
- package/dist/vega/{p-d01fe83d.entry.js → p-0ede1fea.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-3353b3d7.js +1 -0
- package/dist/vega/p-365b1b35.entry.js +1 -0
- package/dist/vega/{p-f3831dc9.entry.js → p-3ae9ee3d.entry.js} +1 -1
- package/dist/vega/p-3af92370.entry.js +1 -0
- 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-3e5f362f.js +1 -0
- package/dist/vega/{p-c0036e71.js → p-430be941.js} +1 -1
- package/dist/vega/p-43f585f7.entry.js +1 -0
- package/dist/vega/{p-75d91ee9.entry.js → p-45296fd4.entry.js} +1 -1
- package/dist/vega/p-476a173a.js +1 -0
- package/dist/vega/p-491618a6.entry.js +1 -0
- package/dist/vega/p-4a537391.entry.js +1 -0
- package/dist/vega/p-4aa893ef.entry.js +1 -0
- package/dist/vega/{p-2b20a215.entry.js → p-4c47e8bb.entry.js} +1 -1
- package/dist/vega/{p-7f86b3c8.js → p-4da75f2b.js} +1 -1
- package/dist/vega/{p-82dbff54.entry.js → p-509eb52e.entry.js} +1 -1
- package/dist/vega/{p-adc615a4.entry.js → p-5110ba73.entry.js} +1 -1
- package/dist/vega/{p-38ed3d59.entry.js → p-556f9a21.entry.js} +1 -1
- package/dist/vega/{p-70b2906a.entry.js → p-55b54ba0.entry.js} +1 -1
- package/dist/vega/{p-94cf46ca.entry.js → p-5ea2e43c.entry.js} +1 -1
- package/dist/vega/{p-5f09868d.entry.js → p-5efc6fe1.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-de70aac1.js → p-60851f9d.js} +1 -1
- package/dist/vega/{p-03e16a05.entry.js → p-64cd1931.entry.js} +1 -1
- package/dist/vega/{p-f2c8c363.js → p-66fa700b.js} +1 -1
- package/dist/vega/{p-623c3911.entry.js → p-67fcf6f2.entry.js} +1 -1
- package/dist/vega/{p-e88f2dc3.js → p-68df4288.js} +1 -1
- package/dist/vega/{p-2971b17a.js → p-691ba1ae.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-bf61d136.js → p-6f8be8ea.js} +1 -1
- package/dist/vega/{p-f427d88c.entry.js → p-6fa8e231.entry.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-9dfe2bbc.js → p-749f96a4.js} +1 -1
- package/dist/vega/{p-5be29f14.js → p-77edf50c.js} +1 -1
- package/dist/vega/{p-114c6df8.entry.js → p-7aaece55.entry.js} +1 -1
- package/dist/vega/{p-40561fa0.entry.js → p-7ec6a104.entry.js} +1 -1
- 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-89d685a8.js +1 -0
- 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-0ba0f83d.entry.js → p-8d701832.entry.js} +1 -1
- package/dist/vega/{p-f6cd7a08.entry.js → p-8e42a14c.entry.js} +1 -1
- package/dist/vega/{p-a3c4fa30.entry.js → p-8ed0faa2.entry.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-99aa554b.entry.js +1 -0
- package/dist/vega/{p-7be3aefc.entry.js → p-9a2446f1.entry.js} +1 -1
- package/dist/vega/{p-a4ec6575.js → p-a2aeb646.js} +1 -1
- package/dist/vega/{p-a125cfec.entry.js → p-a475d525.entry.js} +1 -1
- package/dist/vega/{p-2409a475.entry.js → p-a530797f.entry.js} +1 -1
- package/dist/vega/{p-be0b67b8.entry.js → p-a85ad369.entry.js} +1 -1
- package/dist/vega/p-ac5e9955.entry.js +1 -0
- package/dist/vega/{p-ce2ffff7.js → p-aedf7146.js} +1 -1
- package/dist/vega/p-b1f869fb.js +1 -0
- 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-dd72ad9e.js → p-c2488ed6.js} +1 -1
- package/dist/vega/{p-ead1da57.entry.js → p-c379a5a5.entry.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-721b2981.entry.js → p-cf5b80f9.entry.js} +1 -1
- package/dist/vega/{p-d1d0f08a.js → p-d0e31633.js} +1 -1
- package/dist/vega/{p-21e7808a.entry.js → p-db60a38e.entry.js} +1 -1
- package/dist/vega/{p-6c1ef2ed.js → p-dd11f735.js} +1 -1
- package/dist/vega/{p-3d85411d.js → p-e16b3adf.js} +1 -1
- package/dist/vega/{p-1e019406.js → p-e93545fd.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-7b337fd4.entry.js → p-ec192283.entry.js} +1 -1
- package/dist/vega/{p-3938880f.entry.js → p-f2a3a1ec.entry.js} +1 -1
- package/dist/vega/{p-c2ac6b47.entry.js → p-f2cdd212.entry.js} +1 -1
- package/dist/vega/{p-c7f292dd.entry.js → p-f3c3ff26.entry.js} +1 -1
- package/dist/vega/{p-2bc4f7d9.entry.js → p-f4c05b4a.entry.js} +1 -1
- package/dist/vega/{p-7f9acdf7.entry.js → p-f52a0155.entry.js} +1 -1
- package/dist/vega/{p-e39aa2ea.entry.js → p-f8641214.entry.js} +1 -1
- package/dist/vega/{p-0ad59141.entry.js → p-f89443aa.entry.js} +1 -1
- package/dist/vega/{p-96797fee.entry.js → p-f8f7cf48.entry.js} +1 -1
- package/dist/vega/p-fe12eff6.js +1 -0
- 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-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-79a544d6.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-f38a4be2.entry.js +0 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { HTMLContentCleaner } from '../../slimmers/controllers/html-cleaner';
|
|
2
|
+
describe('HTMLContentCleaner', () => {
|
|
3
|
+
let cleaner;
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
cleaner = new HTMLContentCleaner();
|
|
6
|
+
});
|
|
7
|
+
it('should handle empty string', () => {
|
|
8
|
+
expect(cleaner.clean('')).toBe('');
|
|
9
|
+
});
|
|
10
|
+
it('should handle whitespace-only string', () => {
|
|
11
|
+
expect(cleaner.clean(' ')).toBe(' ');
|
|
12
|
+
});
|
|
13
|
+
it('should remove \\n\\t after opening tag and before closing tag', () => {
|
|
14
|
+
const input = '<div><p>\n\t <span>test</span>\n\t </p></div>';
|
|
15
|
+
expect(cleaner.clean(input)).toBe('<div><p><span>test</span></p></div>');
|
|
16
|
+
});
|
|
17
|
+
it('should remove all \\n and \\t characters between tags', () => {
|
|
18
|
+
const input = '<div><p>\n\ttest\n</p></div>';
|
|
19
|
+
expect(cleaner.clean(input)).toBe('<div><p>test</p></div>');
|
|
20
|
+
});
|
|
21
|
+
it('should preserve space between matching tags', () => {
|
|
22
|
+
const input = '<div><span> </span></div>';
|
|
23
|
+
expect(cleaner.clean(input)).toBe('<div><span> </span></div>');
|
|
24
|
+
});
|
|
25
|
+
it('should preserve space with text between matching tags', () => {
|
|
26
|
+
const input = '<div><span> test </span></div>';
|
|
27
|
+
expect(cleaner.clean(input)).toBe('<div><span> test </span></div>');
|
|
28
|
+
});
|
|
29
|
+
it('should preserve multiple spaces between matching tags', () => {
|
|
30
|
+
const input = '<div><span> </span></div>';
|
|
31
|
+
expect(cleaner.clean(input)).toBe('<div><span> </span></div>');
|
|
32
|
+
});
|
|
33
|
+
it('should remove whitespace between opening tags', () => {
|
|
34
|
+
const input = '<div>\n\t<p></p></div>';
|
|
35
|
+
expect(cleaner.clean(input)).toBe('<div><p></p></div>');
|
|
36
|
+
});
|
|
37
|
+
it('should remove \\n\\t after opening tag but preserve regular spaces', () => {
|
|
38
|
+
const input = '<p>\n\t Hello</p>';
|
|
39
|
+
expect(cleaner.clean(input)).toBe('<p> Hello</p>');
|
|
40
|
+
});
|
|
41
|
+
it('should remove whitespace between multiple closing tags', () => {
|
|
42
|
+
const input = '<table><tbody><tr></tr> </tbody> </table>';
|
|
43
|
+
expect(cleaner.clean(input)).toBe('<table><tbody><tr></tr></tbody></table>');
|
|
44
|
+
});
|
|
45
|
+
it('should remove whitespace between multiple opening tags', () => {
|
|
46
|
+
const input = '<div> <span></span></div>';
|
|
47
|
+
expect(cleaner.clean(input)).toBe('<div><span></span></div>');
|
|
48
|
+
});
|
|
49
|
+
it('should handle complex nested structure', () => {
|
|
50
|
+
const input = '<div>\n\t<p>\n\t\t<span>Hello</span>\n\t</p>\n</div>';
|
|
51
|
+
expect(cleaner.clean(input)).toBe('<div><p><span>Hello</span></p></div>');
|
|
52
|
+
});
|
|
53
|
+
it('should preserve regular spaces within text content', () => {
|
|
54
|
+
const input = '<div><p>Hello World</p></div>';
|
|
55
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello World</p></div>');
|
|
56
|
+
});
|
|
57
|
+
it('should preserve multiple spaces in text content', () => {
|
|
58
|
+
const input = '<div><p>Hello World</p></div>';
|
|
59
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello World</p></div>');
|
|
60
|
+
});
|
|
61
|
+
it('should not remove \\n between words in text content', () => {
|
|
62
|
+
const input = '<div><p>Hello\nWorld</p></div>';
|
|
63
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello\nWorld</p></div>');
|
|
64
|
+
});
|
|
65
|
+
it('should not remove \\n between words with space in text content', () => {
|
|
66
|
+
const input = '<div><p>Hello\n World</p></div>';
|
|
67
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello\n World</p></div>');
|
|
68
|
+
});
|
|
69
|
+
it('should remove multiple consecutive \\n characters', () => {
|
|
70
|
+
const input = '<div><p>\n\n\n\nHello</p></div>';
|
|
71
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
|
|
72
|
+
});
|
|
73
|
+
it('should remove multiple consecutive \\t characters', () => {
|
|
74
|
+
const input = '<div><p>\t\t\tHello</p></div>';
|
|
75
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
|
|
76
|
+
});
|
|
77
|
+
it('should preserve empty matching tags', () => {
|
|
78
|
+
const input = '<div><span></span></div>';
|
|
79
|
+
expect(cleaner.clean(input)).toBe('<div><span></span></div>');
|
|
80
|
+
});
|
|
81
|
+
it('should handle mixed spaces, tabs, and newlines', () => {
|
|
82
|
+
const input = '<div> \n\t <p>Text</p> \n\t </div>';
|
|
83
|
+
expect(cleaner.clean(input)).toBe('<div><p>Text</p></div>');
|
|
84
|
+
});
|
|
85
|
+
it('should remove \\t\\n combination', () => {
|
|
86
|
+
const input = '<div><p>\t\nHello</p></div>';
|
|
87
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
|
|
88
|
+
});
|
|
89
|
+
it('should remove complex \\n\\t\\n patterns', () => {
|
|
90
|
+
const input = '<div><p>\n\t\n\t\nHello</p></div>';
|
|
91
|
+
expect(cleaner.clean(input)).toBe('<div><p>Hello</p></div>');
|
|
92
|
+
});
|
|
93
|
+
it('should handle 4-level deep nesting', () => {
|
|
94
|
+
const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<p>Text</p>\n\t\t</article>\n\t</section>\n</div>';
|
|
95
|
+
expect(cleaner.clean(input)).toBe('<div><section><article><p>Text</p></article></section></div>');
|
|
96
|
+
});
|
|
97
|
+
it('should handle 5-level deep nesting', () => {
|
|
98
|
+
const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<main>\n\t\t\t\t<p>Text</p>\n\t\t\t</main>\n\t\t</article>\n\t</section>\n</div>';
|
|
99
|
+
expect(cleaner.clean(input)).toBe('<div><section><article><main><p>Text</p></main></article></section></div>');
|
|
100
|
+
});
|
|
101
|
+
it('should handle 6-level deep nesting', () => {
|
|
102
|
+
const input = '<div>\n\t<section>\n\t\t<article>\n\t\t\t<main>\n\t\t\t\t<aside>\n\t\t\t\t\t<p>Text</p>\n\t\t\t\t</aside>\n\t\t\t</main>\n\t\t</article>\n\t</section>\n</div>';
|
|
103
|
+
expect(cleaner.clean(input)).toBe('<div><section><article><main><aside><p>Text</p></aside></main></article></section></div>');
|
|
104
|
+
});
|
|
105
|
+
it('should remove whitespace after br and hr tags', () => {
|
|
106
|
+
const input1 = '<div><br>\n</div>';
|
|
107
|
+
expect(cleaner.clean(input1)).toBe('<div><br></div>');
|
|
108
|
+
const input2 = '<div><hr>\n\t</div>';
|
|
109
|
+
expect(cleaner.clean(input2)).toBe('<div><hr></div>');
|
|
110
|
+
const input3 = '<div><input type="text">\n</div>';
|
|
111
|
+
expect(cleaner.clean(input3)).toBe('<div><input type="text"></div>');
|
|
112
|
+
});
|
|
113
|
+
it('should remove newlines after br tags', () => {
|
|
114
|
+
const input = '<p>Line 1<br>\nLine 2</p>';
|
|
115
|
+
expect(cleaner.clean(input)).toBe('<p>Line 1<br>Line 2</p>');
|
|
116
|
+
});
|
|
117
|
+
it('should preserve spaces in code blocks between matching tags', () => {
|
|
118
|
+
const input = '<code> const x = 1; </code>';
|
|
119
|
+
expect(cleaner.clean(input)).toBe('<code> const x = 1; </code>');
|
|
120
|
+
});
|
|
121
|
+
it('should preserve plain text without tags', () => {
|
|
122
|
+
const input = 'Hello World';
|
|
123
|
+
expect(cleaner.clean(input)).toBe('Hello World');
|
|
124
|
+
});
|
|
125
|
+
it('should remove whitespace between different inline elements', () => {
|
|
126
|
+
const input = '<span>text</span>\n\t<strong>bold</strong>';
|
|
127
|
+
expect(cleaner.clean(input)).toBe('<span>text</span><strong>bold</strong>');
|
|
128
|
+
});
|
|
129
|
+
it('should inline a table by removing all whitespace between tags', () => {
|
|
130
|
+
const input = `<table style="width: 400px; border-collapse: collapse;"> <thead> <tr> ` +
|
|
131
|
+
`<th style="padding: 12px; text-align: left; font-weight: bold;">Header 1</th> ` +
|
|
132
|
+
`<th style="padding: 12px; text-align: left; font-weight: bold;">Header 2</th> ` +
|
|
133
|
+
`<th style="padding: 12px; text-align: left; font-weight: bold;">Header 3</th> ` +
|
|
134
|
+
`</tr> </thead> <tbody> <tr> <td style="padding: 12px;">Cell 1-1</td> ` +
|
|
135
|
+
`<td style="padding: 12px;">Cell 1-2</td> <td style="padding: 12px;">Cell 1-3</td> ` +
|
|
136
|
+
`</tr> <tr> <td style="padding: 12px;">Cell 2-1</td> <td style="padding: 12px;">Cell 2-2</td> ` +
|
|
137
|
+
`<td style="padding: 12px;">Cell 2-3</td> </tr> <tr> <td style="padding: 12px;">Cell 3-1</td> ` +
|
|
138
|
+
`<td style="padding: 12px;">Cell 3-2</td> <td style="padding: 12px;">Cell 3-3</td> ` +
|
|
139
|
+
`</tr> </tbody> </table>`;
|
|
140
|
+
const expected = `<table style="width: 400px; border-collapse: collapse;"><thead><tr>` +
|
|
141
|
+
`<th style="padding: 12px; text-align: left; font-weight: bold;">Header 1</th>` +
|
|
142
|
+
`<th style="padding: 12px; text-align: left; font-weight: bold;">Header 2</th>` +
|
|
143
|
+
`<th style="padding: 12px; text-align: left; font-weight: bold;">Header 3</th>` +
|
|
144
|
+
`</tr></thead><tbody><tr>` +
|
|
145
|
+
`<td style="padding: 12px;">Cell 1-1</td>` +
|
|
146
|
+
`<td style="padding: 12px;">Cell 1-2</td>` +
|
|
147
|
+
`<td style="padding: 12px;">Cell 1-3</td>` +
|
|
148
|
+
`</tr><tr>` +
|
|
149
|
+
`<td style="padding: 12px;">Cell 2-1</td>` +
|
|
150
|
+
`<td style="padding: 12px;">Cell 2-2</td>` +
|
|
151
|
+
`<td style="padding: 12px;">Cell 2-3</td>` +
|
|
152
|
+
`</tr><tr>` +
|
|
153
|
+
`<td style="padding: 12px;">Cell 3-1</td>` +
|
|
154
|
+
`<td style="padding: 12px;">Cell 3-2</td>` +
|
|
155
|
+
`<td style="padding: 12px;">Cell 3-3</td>` +
|
|
156
|
+
`</tr></tbody></table>`;
|
|
157
|
+
expect(cleaner.clean(input)).toBe(expected);
|
|
158
|
+
});
|
|
159
|
+
it('should remove newline after img tag', () => {
|
|
160
|
+
const input = '<div><img id="image-id" class="img-class" style="vertical-align: bottom; width: 25%; padding: 20px" alt="test alt" src="data:image/svg+xml;base64,xxx=" data-size="sm">\n</div>';
|
|
161
|
+
const expected = '<div><img id="image-id" class="img-class" style="vertical-align: bottom; width: 25%; padding: 20px" alt="test alt" src="data:image/svg+xml;base64,xxx=" data-size="sm"></div>';
|
|
162
|
+
expect(cleaner.clean(input)).toBe(expected);
|
|
163
|
+
});
|
|
164
|
+
it('should preserve spaces in attribute values', () => {
|
|
165
|
+
const input = '<p class="my custom class">Text</p>';
|
|
166
|
+
expect(cleaner.clean(input)).toBe('<p class="my custom class">Text</p>');
|
|
167
|
+
});
|
|
168
|
+
describe('Edge cases', () => {
|
|
169
|
+
it('should handle self-closing tags', () => {
|
|
170
|
+
expect(cleaner.clean('<br/>\n<hr/>')).toBe('<br/><hr/>');
|
|
171
|
+
expect(cleaner.clean('<img src="test.jpg"/>\n<input/>')).toBe('<img src="test.jpg"/><input/>');
|
|
172
|
+
});
|
|
173
|
+
it('should handle nested matching tags', () => {
|
|
174
|
+
expect(cleaner.clean('<div> <div> </div> </div>')).toBe('<div><div> </div></div>');
|
|
175
|
+
});
|
|
176
|
+
it('should handle tags with special characters in attributes', () => {
|
|
177
|
+
expect(cleaner.clean('<a href="http://example.com?a=1&b=2">\nLink</a>')).toBe('<a href="http://example.com?a=1&b=2">Link</a>');
|
|
178
|
+
});
|
|
179
|
+
it('should handle HTML entities', () => {
|
|
180
|
+
expect(cleaner.clean('<div><p>\n <></p></div>')).toBe('<div><p> <></p></div>');
|
|
181
|
+
});
|
|
182
|
+
it('should handle comments', () => {
|
|
183
|
+
expect(cleaner.clean('<div>\n<!-- comment -->\n<p>Text</p></div>')).toBe('<div><!-- comment --><p>Text</p></div>');
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RemoveWhitespaceAfterOpeningTagProcessor } from '../../slimmers/controllers/html-cleaner';
|
|
2
|
+
describe('RemoveWhitespaceAfterOpeningTagProcessor', () => {
|
|
3
|
+
let processor;
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
processor = new RemoveWhitespaceAfterOpeningTagProcessor();
|
|
6
|
+
});
|
|
7
|
+
it('should remove \\n and \\t after opening tag', () => {
|
|
8
|
+
expect(processor.process('<div><p>\n\tHello</p></div>')).toBe('<div><p>Hello</p></div>');
|
|
9
|
+
expect(processor.process('<div><div>\n\n\tWorld</div></div>')).toBe('<div><div>World</div></div>');
|
|
10
|
+
expect(processor.process('<div><span>\tTest</span></div>')).toBe('<div><span>Test</span></div>');
|
|
11
|
+
});
|
|
12
|
+
it('should preserve regular spaces', () => {
|
|
13
|
+
expect(processor.process('<div><p> Hello</p></div>')).toBe('<div><p> Hello</p></div>');
|
|
14
|
+
expect(processor.process('<div><p> World</p></div>')).toBe('<div><p> World</p></div>');
|
|
15
|
+
});
|
|
16
|
+
it('should not affect text without opening tags', () => {
|
|
17
|
+
expect(processor.process('<div>Hello World</div>')).toBe('<div>Hello World</div>');
|
|
18
|
+
});
|
|
19
|
+
it('should handle multiple occurrences', () => {
|
|
20
|
+
expect(processor.process('<div><p>\nHello</p><div>\tWorld</div></div>')).toBe('<div><p>Hello</p><div>World</div></div>');
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RemoveWhitespaceBeforeClosingTagProcessor } from '../../slimmers/controllers/html-cleaner';
|
|
2
|
+
describe('RemoveWhitespaceBeforeClosingTagProcessor', () => {
|
|
3
|
+
let processor;
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
processor = new RemoveWhitespaceBeforeClosingTagProcessor();
|
|
6
|
+
});
|
|
7
|
+
it('should remove \\n and \\t before closing tag', () => {
|
|
8
|
+
expect(processor.process('<div><p>World\n\t</p></div>')).toBe('<div><p>World</p></div>');
|
|
9
|
+
expect(processor.process('<div><div>Hello\n</div></div>')).toBe('<div><div>Hello</div></div>');
|
|
10
|
+
expect(processor.process('<div><span>Test\t</span></div>')).toBe('<div><span>Test</span></div>');
|
|
11
|
+
});
|
|
12
|
+
it('should preserve regular spaces', () => {
|
|
13
|
+
expect(processor.process('<div><p>Hello </p></div>')).toBe('<div><p>Hello </p></div>');
|
|
14
|
+
expect(processor.process('<div><p>World </p></div>')).toBe('<div><p>World </p></div>');
|
|
15
|
+
});
|
|
16
|
+
it('should not affect text without closing tags', () => {
|
|
17
|
+
expect(processor.process('<div>Hello World</div>')).toBe('<div>Hello World</div>');
|
|
18
|
+
});
|
|
19
|
+
it('should handle multiple occurrences', () => {
|
|
20
|
+
expect(processor.process('<div><p>Hello\n</p><div>World\t</div></div>')).toBe('<div><p>Hello</p><div>World</div></div>');
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { RemoveWhitespaceBetweenTagsProcessor } from '../../slimmers/controllers/html-cleaner';
|
|
2
|
+
describe('RemoveWhitespaceBetweenTagsProcessor', () => {
|
|
3
|
+
let processor;
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
processor = new RemoveWhitespaceBetweenTagsProcessor();
|
|
6
|
+
});
|
|
7
|
+
it('should remove whitespace between different tags', () => {
|
|
8
|
+
expect(processor.process('<div><p></p>\n\t<div></div></div>')).toBe('<div><p></p><div></div></div>');
|
|
9
|
+
expect(processor.process('<div><div>\n\t<span></span></div></div>')).toBe('<div><div><span></span></div></div>');
|
|
10
|
+
expect(processor.process('<div><div></div> <p></p></div>')).toBe('<div><div></div><p></p></div>');
|
|
11
|
+
});
|
|
12
|
+
it('should preserve whitespace between matching tags', () => {
|
|
13
|
+
expect(processor.process('<div><span> </span></div>')).toBe('<div><span> </span></div>');
|
|
14
|
+
expect(processor.process('<div><span> </span></div>')).toBe('<div><span> </span></div>');
|
|
15
|
+
expect(processor.process('<div><span>\n\t</span></div>')).toBe('<div><span>\n\t</span></div>');
|
|
16
|
+
expect(processor.process('<div><code> </code></div>')).toBe('<div><code> </code></div>');
|
|
17
|
+
});
|
|
18
|
+
it('should handle custom elements with hyphens', () => {
|
|
19
|
+
expect(processor.process('<div><my-component> </my-component></div>')).toBe('<div><my-component> </my-component></div>');
|
|
20
|
+
expect(processor.process('<div><my-component></my-component>\n<other-component></other-component></div>')).toBe('<div><my-component></my-component><other-component></other-component></div>');
|
|
21
|
+
});
|
|
22
|
+
it('should handle tags with attributes', () => {
|
|
23
|
+
expect(processor.process('<div><div class="test">\n<span></span></div></div>')).toBe('<div><div class="test"><span></span></div></div>');
|
|
24
|
+
expect(processor.process('<div><span id="test"> </span></div>')).toBe('<div><span id="test"> </span></div>');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -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'];
|
|
@@ -5,6 +5,7 @@ class CodeFormatter {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
/**
|
|
7
7
|
* Formats a given HTML source string by applying indentation and cleaning up styles.
|
|
8
|
+
* Content inside preserve tags (pre) is preserved as-is without formatting.
|
|
8
9
|
*
|
|
9
10
|
* @param {string} source - The HTML source string to format.
|
|
10
11
|
* @param {CodeFormatOptions} options - Formatting options.
|
|
@@ -19,9 +20,25 @@ class CodeFormatter {
|
|
|
19
20
|
const tokens = source.split(tagRegex).filter((t) => t.length > 0);
|
|
20
21
|
let indentLevel = 0;
|
|
21
22
|
let output = '';
|
|
23
|
+
let preserveDepth = 0;
|
|
22
24
|
for (let i = 0; i < tokens.length; i++) {
|
|
23
25
|
let token = tokens[i];
|
|
24
|
-
|
|
26
|
+
const tagName = CodeFormatter.getTagName(token);
|
|
27
|
+
// Track if we're entering or exiting preserve tags
|
|
28
|
+
if (CodeFormatter.PRESERVE_CONTENT_TAGS.has(tagName)) {
|
|
29
|
+
if (token.startsWith('</')) {
|
|
30
|
+
preserveDepth = Math.max(0, preserveDepth - 1);
|
|
31
|
+
}
|
|
32
|
+
else if (token.startsWith('<')) {
|
|
33
|
+
preserveDepth++;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// If inside preserve tag, output as-is without formatting
|
|
37
|
+
if (preserveDepth > 0) {
|
|
38
|
+
output += token;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
// Decrease indentation for closing tags (after exiting preserve tags)
|
|
25
42
|
if (token.startsWith('</')) {
|
|
26
43
|
indentLevel = Math.max(0, indentLevel - 1);
|
|
27
44
|
}
|
|
@@ -31,15 +48,20 @@ class CodeFormatter {
|
|
|
31
48
|
token = token.replace(/style\s*=\s*"([^"]*)"/g, (_, styleContent) => {
|
|
32
49
|
return `style="${this.formatStyle(styleContent)}"`;
|
|
33
50
|
});
|
|
34
|
-
const tagName = CodeFormatter.getTagName(token);
|
|
35
51
|
const isInline = CodeFormatter.INLINE_TAGS.has(tagName);
|
|
36
|
-
// Inline tag grouping: e.g., <strong>Text</strong> stays on one line
|
|
37
|
-
|
|
38
|
-
|
|
52
|
+
// Inline tag grouping: e.g., <strong>Text</strong> or <span></span> stays on one line
|
|
53
|
+
// Check for empty tags: <tag></tag> (closing tag immediately follows opening tag)
|
|
54
|
+
if (isInline && i + 1 < tokens.length && tokens[i + 1] === `</${tagName}>`) {
|
|
55
|
+
// Empty inline tag: <span></span>
|
|
56
|
+
output += `${indent}${token}${tokens[i + 1]}\n`;
|
|
57
|
+
i += 1;
|
|
58
|
+
}
|
|
59
|
+
else if (isInline && i + 2 < tokens.length && tokens[i + 2] === `</${tagName}>`) {
|
|
60
|
+
// Group consecutive inline tags with content
|
|
39
61
|
let inlineGroup = `${token}${tokens[i + 1]}${tokens[i + 2]}`;
|
|
40
62
|
i += 2;
|
|
41
63
|
// Keep merging consecutive inline tag pairs
|
|
42
|
-
while (i +
|
|
64
|
+
while (i + 3 < tokens.length &&
|
|
43
65
|
tokens[i + 1].startsWith('<') &&
|
|
44
66
|
CodeFormatter.INLINE_TAGS.has(CodeFormatter.getTagName(tokens[i + 1])) &&
|
|
45
67
|
tokens[i + 3] === `</${CodeFormatter.getTagName(tokens[i + 1])}>`) {
|
|
@@ -53,7 +75,7 @@ class CodeFormatter {
|
|
|
53
75
|
// Increase indentation for non-void opening tags
|
|
54
76
|
if (!token.startsWith('</') &&
|
|
55
77
|
!token.endsWith('/>') &&
|
|
56
|
-
|
|
78
|
+
!CodeFormatter.VOID_TAGS.has(tagName)) {
|
|
57
79
|
indentLevel++;
|
|
58
80
|
}
|
|
59
81
|
}
|
|
@@ -94,6 +116,10 @@ class CodeFormatter {
|
|
|
94
116
|
.join('; ');
|
|
95
117
|
}
|
|
96
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Inline/phrasing elements that should be kept on a single line with their content.
|
|
121
|
+
* These tags are formatted as: <tag>content</tag> on one line.
|
|
122
|
+
*/
|
|
97
123
|
CodeFormatter.INLINE_TAGS = new Set([
|
|
98
124
|
'span',
|
|
99
125
|
'strong',
|
|
@@ -113,4 +139,28 @@ CodeFormatter.INLINE_TAGS = new Set([
|
|
|
113
139
|
'del',
|
|
114
140
|
'ins',
|
|
115
141
|
]);
|
|
142
|
+
/**
|
|
143
|
+
* Void/self-closing elements that don't have closing tags.
|
|
144
|
+
* Used to avoid increasing indentation for these elements.
|
|
145
|
+
*/
|
|
146
|
+
CodeFormatter.VOID_TAGS = new Set([
|
|
147
|
+
'area',
|
|
148
|
+
'base',
|
|
149
|
+
'br',
|
|
150
|
+
'col',
|
|
151
|
+
'embed',
|
|
152
|
+
'hr',
|
|
153
|
+
'img',
|
|
154
|
+
'input',
|
|
155
|
+
'link',
|
|
156
|
+
'meta',
|
|
157
|
+
'param',
|
|
158
|
+
'source',
|
|
159
|
+
'track',
|
|
160
|
+
'wbr',
|
|
161
|
+
]);
|
|
162
|
+
/**
|
|
163
|
+
* Tags whose content should be preserved as-is without formatting.
|
|
164
|
+
*/
|
|
165
|
+
CodeFormatter.PRESERVE_CONTENT_TAGS = new Set(['pre']);
|
|
116
166
|
export default new CodeFormatter();
|
|
@@ -359,4 +359,52 @@ describe('Code formatter', () => {
|
|
|
359
359
|
]).toHtml();
|
|
360
360
|
expect(CodeFormatter.format(input)).toMatchSnapshot();
|
|
361
361
|
});
|
|
362
|
+
it('should preserve pre content without formatting', () => {
|
|
363
|
+
const input = `<pre>
|
|
364
|
+
S
|
|
365
|
+
A
|
|
366
|
+
LUT
|
|
367
|
+
M
|
|
368
|
+
O N
|
|
369
|
+
D E
|
|
370
|
+
DONT
|
|
371
|
+
JE SUIS
|
|
372
|
+
LA LAN
|
|
373
|
+
G U E É
|
|
374
|
+
L O Q U E N
|
|
375
|
+
TE QUESA
|
|
376
|
+
B O U C H E
|
|
377
|
+
O P A R I S
|
|
378
|
+
T I R E ET TIRERA
|
|
379
|
+
T O U JOURS
|
|
380
|
+
AUX A L
|
|
381
|
+
LEM ANDS - Apollinaire
|
|
382
|
+
</pre>
|
|
383
|
+
`;
|
|
384
|
+
expect(CodeFormatter.format(input)).toMatchSnapshot();
|
|
385
|
+
});
|
|
386
|
+
it('should format empty inline tags on a single line', () => {
|
|
387
|
+
const input = `<p><span></span></p>`;
|
|
388
|
+
const output = CodeFormatter.format(input);
|
|
389
|
+
expect(output).toMatchSnapshot();
|
|
390
|
+
// Verify empty span stays inline
|
|
391
|
+
expect(output).toContain('<span></span>');
|
|
392
|
+
expect(output).not.toContain('<span>\n');
|
|
393
|
+
});
|
|
394
|
+
it('should format multiple empty inline tags', () => {
|
|
395
|
+
const input = `<p><span></span><strong></strong><em></em></p>`;
|
|
396
|
+
const output = CodeFormatter.format(input);
|
|
397
|
+
expect(output).toMatchSnapshot();
|
|
398
|
+
// Verify all empty inline tags stay inline
|
|
399
|
+
expect(output).toContain('<span></span>');
|
|
400
|
+
expect(output).toContain('<strong></strong>');
|
|
401
|
+
expect(output).toContain('<em></em>');
|
|
402
|
+
});
|
|
403
|
+
it('should format mixed empty and non-empty inline tags', () => {
|
|
404
|
+
const input = `<p><span></span><strong>Text</strong><em></em></p>`;
|
|
405
|
+
const output = CodeFormatter.format(input);
|
|
406
|
+
expect(output).toMatchSnapshot();
|
|
407
|
+
expect(output).toContain('<span></span>');
|
|
408
|
+
expect(output).toContain('<em></em>');
|
|
409
|
+
});
|
|
362
410
|
});
|
|
@@ -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([
|