@globalpayments/vega 2.61.0 → 2.63.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-7e624dd0.js → app-globals-8f5fa42a.js} +23 -15
- package/dist/cjs/base-renderer-0a3b62b7.js +9 -0
- package/dist/cjs/{child-nodes-event-prevent-slimmer-184fe3b2.js → child-nodes-event-prevent-slimmer-4e96270e.js} +1 -1
- package/dist/cjs/{code-block-ecb2df41.js → code-block-eb66d852.js} +73 -22
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-58a0f64c.js → component-value-history-controller-slimmer.abstract-62cdf04c.js} +16 -182
- package/dist/cjs/{design-token-16f74439.js → design-token-76bb47bd.js} +1 -1
- package/dist/cjs/{dom-node-subject-factory-4eb1fec2.js → dom-node-subject-observer-factory-58e3c010.js} +41 -0
- package/dist/cjs/{content-state-d7b8e70b.js → dto-renderer-manager-f3894490.js} +1647 -1501
- package/dist/cjs/{element-appender-slimmer-c4816142.js → element-appender-slimmer-e8dac628.js} +7 -8
- package/dist/cjs/{event-emit-slimmer-2da7c9d6.js → event-emit-slimmer-428d8802.js} +3 -4
- package/dist/cjs/{form-field-controller-slimmer-dab30e5c.js → form-field-controller-slimmer-cc6e53a4.js} +4 -5
- package/dist/cjs/{image-annotation-action-7eaab3ce.js → image-annotation-action-a628ec9b.js} +24 -81
- package/dist/cjs/{index-da628bba.js → index-5505e8dd.js} +3 -3
- package/dist/cjs/index.cjs.js +49 -23
- package/dist/cjs/{icon-manager-9072356d.js → internal-icon-manager-32f9ed63.js} +51 -0
- package/dist/cjs/{internal-vega-event-manager-7b87c2f4.js → internal-vega-event-manager-28b957c8.js} +73 -73
- package/dist/cjs/language-extension-20a1dba5.js +207 -0
- package/dist/cjs/loader.cjs.js +14 -12
- package/dist/cjs/{min-number-rule-965fc43d.js → min-number-rule-dc555309.js} +14 -8
- package/dist/cjs/{public-rules-21622bd0.js → public-rules-5d0f3a5f.js} +5 -5
- package/dist/cjs/range-cfc45f9e.js +178 -0
- package/dist/cjs/{responsive-format-facade-0d22ff78.js → responsive-format-facade-7e933525.js} +4 -3
- package/dist/cjs/{rich-text-editor-required-rule-8d7e441a.js → rich-text-editor-required-rule-72170c10.js} +2 -2
- package/dist/cjs/{string-input-formatter-slimmer-5a744e71.js → string-input-formatter-slimmer-f6c7a255.js} +4 -4
- package/dist/cjs/{style-formatter-a66813a2.js → style-formatter-702df81e.js} +1 -1
- package/dist/cjs/{sub-state-notify-slimmer-9602b5bb.js → sub-state-notify-slimmer-bb64fcfc.js} +4 -4
- package/dist/cjs/{sub-state-observer-slimmer-df7df5bb.js → sub-state-observer-slimmer-84175d61.js} +4 -4
- package/dist/cjs/{vega-skeleton-loader-controller-9c54f3aa.js → token-extension-23ccff1d.js} +679 -3
- package/dist/cjs/vega-accordion.cjs.entry.js +15 -16
- package/dist/cjs/vega-app-header-button.cjs.entry.js +20 -21
- package/dist/cjs/vega-banner.cjs.entry.js +7 -9
- package/dist/cjs/vega-box.cjs.entry.js +13 -12
- package/dist/cjs/vega-brand-logo.cjs.entry.js +1 -2
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +44 -78
- package/dist/cjs/vega-button-circle.cjs.entry.js +16 -16
- package/dist/cjs/vega-button-group_2.cjs.entry.js +11 -12
- package/dist/cjs/vega-button-link.cjs.entry.js +22 -21
- package/dist/cjs/vega-button.cjs.entry.js +15 -15
- package/dist/cjs/vega-calendar_4.cjs.entry.js +22 -24
- package/dist/cjs/vega-card.cjs.entry.js +12 -11
- package/dist/cjs/vega-carousel.cjs.entry.js +13 -13
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +12 -13
- package/dist/cjs/vega-chip.cjs.entry.js +17 -17
- package/dist/cjs/vega-code-block.cjs.entry.js +16 -17
- package/dist/cjs/vega-color-picker.cjs.entry.js +6 -7
- package/dist/cjs/vega-combo-box.cjs.entry.js +14 -15
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +30 -31
- package/dist/cjs/vega-dialog_2.cjs.entry.js +27 -27
- package/dist/cjs/vega-divider.cjs.entry.js +12 -11
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +32 -32
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +6 -7
- package/dist/cjs/vega-file-uploader.cjs.entry.js +15 -17
- package/dist/cjs/vega-flag-icon.cjs.entry.js +13 -13
- package/dist/cjs/vega-flex.cjs.entry.js +12 -11
- package/dist/cjs/vega-font.cjs.entry.js +12 -11
- package/dist/cjs/vega-form.cjs.entry.js +13 -14
- package/dist/cjs/vega-grid.cjs.entry.js +12 -11
- package/dist/cjs/vega-icon.cjs.entry.js +15 -14
- package/dist/cjs/vega-image-uploader.cjs.entry.js +18 -18
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +14 -16
- package/dist/cjs/vega-input-numeric.cjs.entry.js +57 -12
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +20 -21
- package/dist/cjs/vega-input-range.cjs.entry.js +11 -12
- package/dist/cjs/vega-input-select.cjs.entry.js +27 -28
- package/dist/cjs/vega-input.cjs.entry.js +13 -14
- package/dist/cjs/vega-item-toggle.cjs.entry.js +5 -6
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +33 -34
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +13 -12
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -3
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +8 -9
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +3 -4
- package/dist/cjs/vega-pagination.cjs.entry.js +18 -18
- package/dist/cjs/vega-popover_2.cjs.entry.js +18 -18
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +5 -6
- package/dist/cjs/vega-radio_2.cjs.entry.js +13 -14
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +53 -48
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +387 -261
- package/dist/cjs/vega-segment-control.cjs.entry.js +5 -6
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +20 -20
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +13 -14
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +24 -25
- package/dist/cjs/vega-signature-capture.cjs.entry.js +16 -17
- package/dist/cjs/vega-stepper.cjs.entry.js +13 -14
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +8 -9
- package/dist/cjs/vega-table_8.cjs.entry.js +58 -59
- package/dist/cjs/vega-textarea.cjs.entry.js +16 -11
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +32 -24
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +7 -8
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +12 -12
- package/dist/cjs/vega.cjs.js +14 -12
- package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-collapsed-item-renderer.js +4 -13
- package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.js +19 -5
- package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.js +6 -5
- package/dist/collection/components/vega-button-link/vega-button-link.js +18 -19
- package/dist/collection/components/vega-input-numeric/slimmers/renderers/vega-input-numeric-renderer.js +27 -1
- package/dist/collection/components/vega-input-numeric/vega-input-numeric.js +64 -0
- package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +31 -0
- package/dist/collection/components/vega-rich-text-editor/constants/constant.js +10 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +11 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/apply-annotation-strategies/node-split-text-strategy.js +6 -3
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +12 -6
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/code-block-remove-self-strategy.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/insert-node-to-nearest-root-strategy.js +57 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/update-cursor-position-strategy.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/actions/insert-node-to-nearest-root-action.js +14 -0
- package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.js +5 -2
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +36 -10
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.js +10 -4
- package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +145 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +97 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +113 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +90 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-action.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.js +20 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +60 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-extension.js +38 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +67 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +55 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +88 -0
- package/dist/collection/components/vega-rich-text-editor/public-api.js +38 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +97 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/focus-controller.js +8 -6
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +9 -3
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +43 -18
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +3 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.js +6 -6
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.js +9 -9
- package/dist/collection/components/vega-rich-text-editor/test/dto/content-state.test.js +41 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +44 -11
- package/dist/collection/components/vega-textarea/vega-textarea.js +28 -1
- package/dist/collection/components/vega-time-picker/vega-time-picker.js +10 -2
- package/dist/collection/global/scripts/before-vega-load.js +9 -0
- package/dist/collection/helpers/code-format/test/code-formatter.test.js +1 -1
- package/dist/collection/helpers/public-api.js +1 -1
- package/dist/collection/helpers/rte-manager/dto-action-strategy-manager.js +2 -0
- package/dist/collection/helpers/validator/rules/max-number-rule.js +7 -4
- package/dist/collection/helpers/validator/rules/min-number-rule.js +7 -4
- package/dist/esm/{app-globals-ce54f0ac.js → app-globals-aaff0b25.js} +13 -5
- package/dist/esm/base-renderer-101f6d04.js +7 -0
- package/dist/esm/{child-nodes-event-prevent-slimmer-2a3115ae.js → child-nodes-event-prevent-slimmer-7fe3dc57.js} +1 -1
- package/dist/esm/{code-block-89a4dd13.js → code-block-68300b47.js} +67 -17
- package/dist/esm/{component-value-history-controller-slimmer.abstract-95b199df.js → component-value-history-controller-slimmer.abstract-ac2f1bfd.js} +13 -179
- package/dist/esm/{design-token-eaa7c221.js → design-token-1a36307e.js} +1 -1
- package/dist/esm/{dom-node-subject-factory-3c2e13f1.js → dom-node-subject-observer-factory-c7bc3035.js} +41 -1
- package/dist/esm/{content-state-fc47457c.js → dto-renderer-manager-af66bbd9.js} +1643 -1502
- package/dist/esm/{element-appender-slimmer-ce83db8a.js → element-appender-slimmer-fe68ec2d.js} +3 -4
- package/dist/esm/{event-emit-slimmer-4428ce26.js → event-emit-slimmer-3922d816.js} +2 -3
- package/dist/esm/{form-field-controller-slimmer-6e69ca4e.js → form-field-controller-slimmer-f7e8845b.js} +2 -3
- package/dist/esm/{image-annotation-action-53812eb7.js → image-annotation-action-f61c2693.js} +20 -76
- package/dist/esm/{index-1d479c88.js → index-7fe93427.js} +1 -1
- package/dist/esm/index.js +13 -10
- package/dist/esm/{icon-manager-2ee1c619.js → internal-icon-manager-f0486245.js} +51 -1
- package/dist/esm/{internal-vega-event-manager-a654cf8a.js → internal-vega-event-manager-cb06e987.js} +1 -1
- package/dist/esm/language-extension-1ada2a9d.js +204 -0
- package/dist/esm/loader.js +14 -12
- package/dist/esm/{min-number-rule-86421853.js → min-number-rule-2f1cfbf9.js} +14 -8
- package/dist/esm/{public-rules-095284f6.js → public-rules-9f62069a.js} +5 -5
- package/dist/esm/range-c2eeb794.js +176 -0
- package/dist/esm/{responsive-format-facade-86b6de3b.js → responsive-format-facade-5711c77d.js} +4 -3
- package/dist/esm/{rich-text-editor-required-rule-4e8d2db8.js → rich-text-editor-required-rule-de738309.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-60897659.js → string-input-formatter-slimmer-69117deb.js} +2 -2
- package/dist/esm/{style-formatter-a0719a8f.js → style-formatter-2479dc61.js} +1 -1
- package/dist/esm/{sub-state-notify-slimmer-ee730968.js → sub-state-notify-slimmer-4252a90e.js} +1 -1
- package/dist/esm/{sub-state-observer-slimmer-d474634d.js → sub-state-observer-slimmer-baa8853a.js} +1 -1
- package/dist/esm/{vega-skeleton-loader-controller-394a6026.js → token-extension-6fc5e1f5.js} +672 -4
- package/dist/esm/vega-accordion.entry.js +13 -14
- package/dist/esm/vega-app-header-button.entry.js +14 -15
- package/dist/esm/vega-banner.entry.js +4 -6
- package/dist/esm/vega-box.entry.js +13 -12
- package/dist/esm/vega-brand-logo.entry.js +1 -2
- package/dist/esm/vega-breadcrumb.entry.js +42 -76
- package/dist/esm/vega-button-circle.entry.js +14 -14
- package/dist/esm/vega-button-group_2.entry.js +6 -7
- package/dist/esm/vega-button-link.entry.js +20 -19
- package/dist/esm/vega-button.entry.js +13 -13
- package/dist/esm/vega-calendar_4.entry.js +7 -9
- package/dist/esm/vega-card.entry.js +12 -11
- package/dist/esm/vega-carousel.entry.js +12 -12
- package/dist/esm/vega-checkbox_2.entry.js +6 -7
- package/dist/esm/vega-chip.entry.js +14 -14
- package/dist/esm/vega-code-block.entry.js +8 -9
- package/dist/esm/vega-color-picker.entry.js +5 -6
- package/dist/esm/vega-combo-box.entry.js +6 -7
- package/dist/esm/vega-date-picker_2.entry.js +16 -17
- package/dist/esm/vega-dialog_2.entry.js +15 -15
- package/dist/esm/vega-divider.entry.js +12 -11
- package/dist/esm/vega-dropdown_5.entry.js +15 -15
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +4 -5
- package/dist/esm/vega-file-uploader.entry.js +6 -8
- package/dist/esm/vega-flag-icon.entry.js +12 -12
- package/dist/esm/vega-flex.entry.js +12 -11
- package/dist/esm/vega-font.entry.js +12 -11
- package/dist/esm/vega-form.entry.js +7 -8
- package/dist/esm/vega-grid.entry.js +12 -11
- package/dist/esm/vega-icon.entry.js +12 -11
- package/dist/esm/vega-image-uploader.entry.js +12 -12
- package/dist/esm/vega-input-credit-card.entry.js +7 -9
- package/dist/esm/vega-input-numeric.entry.js +54 -9
- package/dist/esm/vega-input-phone-number.entry.js +12 -13
- package/dist/esm/vega-input-range.entry.js +7 -8
- package/dist/esm/vega-input-select.entry.js +14 -15
- package/dist/esm/vega-input.entry.js +8 -9
- package/dist/esm/vega-item-toggle.entry.js +3 -4
- package/dist/esm/vega-left-nav_5.entry.js +14 -15
- package/dist/esm/vega-loader-wrapper_2.entry.js +11 -10
- package/dist/esm/vega-page-notification_2.entry.js +1 -2
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +3 -4
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +1 -2
- package/dist/esm/vega-pagination.entry.js +10 -10
- package/dist/esm/vega-popover_2.entry.js +14 -14
- package/dist/esm/vega-progress-tracker.entry.js +3 -4
- package/dist/esm/vega-radio_2.entry.js +6 -7
- package/dist/esm/vega-rich-text-content.entry.js +24 -19
- package/dist/esm/vega-rich-text-editor_4.entry.js +342 -216
- package/dist/esm/vega-segment-control.entry.js +4 -5
- package/dist/esm/vega-selection-chip_2.entry.js +15 -15
- package/dist/esm/vega-selection-tile_2.entry.js +7 -8
- package/dist/esm/vega-sidenav_3.entry.js +16 -17
- package/dist/esm/vega-signature-capture.entry.js +14 -15
- package/dist/esm/vega-stepper.entry.js +7 -8
- package/dist/esm/vega-tab-group_2.entry.js +4 -5
- package/dist/esm/vega-table_8.entry.js +12 -13
- package/dist/esm/vega-textarea.entry.js +13 -8
- package/dist/esm/vega-time-picker_2.entry.js +22 -14
- package/dist/esm/vega-toggle-switch.entry.js +6 -7
- package/dist/esm/vega-tooltip_2.entry.js +12 -12
- package/dist/esm/vega.js +14 -12
- package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-collapsed-item-renderer.d.ts +1 -1
- package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.d.ts +2 -1
- package/dist/types/components/vega-breadcrumb/types.d.ts +1 -0
- package/dist/types/components/vega-breadcrumb/vega-breadcrumb.d.ts +2 -2
- package/dist/types/components/vega-button-link/vega-button-link.d.ts +5 -8
- package/dist/types/components/vega-input-numeric/slimmers/renderers/vega-input-numeric-renderer.d.ts +3 -0
- package/dist/types/components/vega-input-numeric/vega-input-numeric.d.ts +12 -0
- package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +2 -1
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/insert-node-to-nearest-root-strategy.d.ts +18 -0
- package/dist/types/components/vega-rich-text-editor/dto/actions/insert-node-to-nearest-root-action.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -1
- package/dist/types/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.d.ts +4 -2
- package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +2 -3
- package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +11 -1
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.d.ts +3 -3
- package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +95 -2
- package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +82 -0
- package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +50 -0
- package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +54 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/insert-token-node-action.d.ts +16 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/insert-token-node-strategy.d.ts +12 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +24 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +38 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +39 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.d.ts +47 -0
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +52 -1
- package/dist/types/components/vega-rich-text-editor/public-api.d.ts +29 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/extension-controller.d.ts +44 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +10 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.d.ts +4 -4
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.d.ts +7 -7
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +10 -0
- package/dist/types/components/vega-textarea/vega-textarea.d.ts +6 -0
- package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +8 -0
- package/dist/types/components.d.ts +59 -10
- package/dist/types/helpers/public-api.d.ts +1 -1
- package/dist/types/helpers/validator/rules/max-number-rule.d.ts +3 -1
- package/dist/types/helpers/validator/rules/min-number-rule.d.ts +3 -1
- package/dist/types/types/components.type.d.ts +1 -0
- package/dist/types/types/public-api.d.ts +11 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/p-03cc47b7.entry.js +1 -0
- package/dist/vega/p-07836d27.entry.js +1 -0
- package/dist/vega/p-079f5d94.entry.js +1 -0
- package/dist/vega/p-09cb98f3.entry.js +1 -0
- package/dist/vega/{p-fb232e29.entry.js → p-0b91bb73.entry.js} +1 -1
- package/dist/vega/p-15a78afd.entry.js +1 -0
- package/dist/vega/p-16075b30.entry.js +1 -0
- package/dist/vega/{p-67101f43.entry.js → p-1c08077c.entry.js} +1 -1
- package/dist/vega/{p-c5e862aa.js → p-1da54ff3.js} +1 -1
- package/dist/vega/p-20a180e4.js +1 -0
- package/dist/vega/p-2591f217.entry.js +1 -0
- package/dist/vega/p-25ddb070.entry.js +1 -0
- package/dist/vega/p-2788afe7.entry.js +1 -0
- package/dist/vega/p-2a1b3108.entry.js +1 -0
- package/dist/vega/p-2ee4def0.js +1 -0
- package/dist/vega/p-2f88ba36.entry.js +1 -0
- package/dist/vega/{p-f2a1fe6a.js → p-39c185a5.js} +1 -1
- package/dist/vega/p-3b1bedaf.entry.js +1 -0
- package/dist/vega/p-3c96bbe1.entry.js +1 -0
- package/dist/vega/p-3cdbee7e.js +1 -0
- package/dist/vega/p-3d0d8a21.entry.js +1 -0
- package/dist/vega/p-3d53858c.entry.js +1 -0
- package/dist/vega/{p-927cab0c.entry.js → p-3f3bbaaa.entry.js} +2 -2
- package/dist/vega/p-42c364e0.entry.js +1 -0
- package/dist/vega/p-4f56a427.entry.js +1 -0
- package/dist/vega/p-4f5a2b0c.entry.js +1 -0
- package/dist/vega/p-51d40b0d.entry.js +1 -0
- package/dist/vega/p-5420c1d4.entry.js +1 -0
- package/dist/vega/p-56ff8559.entry.js +1 -0
- package/dist/vega/p-589b7ea3.entry.js +1 -0
- package/dist/vega/p-5d3c6a06.entry.js +1 -0
- package/dist/vega/p-5dec47da.entry.js +1 -0
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/p-6244b0ad.entry.js +1 -0
- package/dist/vega/p-63212cc1.js +1 -0
- package/dist/vega/p-6585cfd5.entry.js +1 -0
- package/dist/vega/p-6ba27010.js +1 -0
- package/dist/vega/{p-129f5938.js → p-6caa6bb2.js} +1 -1
- package/dist/vega/p-74ac2a48.js +1 -0
- package/dist/vega/p-76c7538a.entry.js +1 -0
- package/dist/vega/p-7d8eaca9.entry.js +1 -0
- package/dist/vega/p-7da6e7bd.js +1 -0
- package/dist/vega/p-81765b4b.entry.js +1 -0
- package/dist/vega/p-81fbf18f.entry.js +1 -0
- package/dist/vega/p-8682ee0a.entry.js +1 -0
- package/dist/vega/p-893d5dfa.js +1 -0
- package/dist/vega/p-8a484812.entry.js +1 -0
- package/dist/vega/p-8a6b820a.entry.js +1 -0
- package/dist/vega/p-8c9ea6f4.js +1 -0
- package/dist/vega/p-8e58d6cb.entry.js +1 -0
- package/dist/vega/p-8e812dca.entry.js +1 -0
- package/dist/vega/p-8f056ac2.js +1 -0
- package/dist/vega/{p-e66aef91.entry.js → p-9125ba84.entry.js} +1 -1
- package/dist/vega/p-92469fa1.entry.js +1 -0
- package/dist/vega/p-9b2d8516.entry.js +1 -0
- package/dist/vega/p-9ca0bdcc.js +1 -0
- package/dist/vega/p-a61e4bba.entry.js +1 -0
- package/dist/vega/p-a646b66d.js +1 -0
- package/dist/vega/p-a7b5f497.js +1 -0
- package/dist/vega/p-b1054e18.entry.js +1 -0
- package/dist/vega/p-b1a5ff74.entry.js +1 -0
- package/dist/vega/p-b32f7aac.entry.js +1 -0
- package/dist/vega/{p-dc6f45af.entry.js → p-baafe7d9.entry.js} +1 -1
- package/dist/vega/{p-3a6abcd7.entry.js → p-bb51e020.entry.js} +1 -1
- package/dist/vega/{p-e764acd5.js → p-bb61f015.js} +1 -1
- package/dist/vega/p-bc0ae89a.entry.js +1 -0
- package/dist/vega/p-bd39af8a.entry.js +1 -0
- package/dist/vega/{p-cd18f0fe.js → p-bdd9ef3b.js} +1 -1
- package/dist/vega/p-c08ba4d7.entry.js +1 -0
- package/dist/vega/{p-5f85811c.entry.js → p-c167fa41.entry.js} +1 -1
- package/dist/vega/{p-7ecf65ec.js → p-c2377afa.js} +1 -1
- package/dist/vega/p-c671f57e.js +1 -0
- package/dist/vega/p-c6a354b1.js +1 -0
- package/dist/vega/p-c7726252.js +1 -0
- package/dist/vega/p-ce1766fa.js +1 -0
- package/dist/vega/p-cfb2af9c.entry.js +1 -0
- package/dist/vega/{p-3bf95faf.entry.js → p-d2790023.entry.js} +2 -2
- package/dist/vega/p-d3bbfb1b.js +1 -0
- package/dist/vega/{p-5faa7313.entry.js → p-d9617358.entry.js} +1 -1
- package/dist/vega/p-d982babe.entry.js +1 -0
- package/dist/vega/p-da6369d4.entry.js +1 -0
- package/dist/vega/p-dcae53cf.entry.js +1 -0
- package/dist/vega/p-ddfad815.entry.js +1 -0
- package/dist/vega/p-e00ed9bd.entry.js +1 -0
- package/dist/vega/p-ebfc5739.entry.js +1 -0
- package/dist/vega/p-f0ff4463.js +1 -0
- package/dist/vega/{p-aeccc7f8.js → p-f1436035.js} +1 -1
- package/dist/vega/p-ff3a8907.entry.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/dom-node-subject-observer-factory-15130e50.js +0 -45
- package/dist/cjs/internal-icon-manager-f8677abb.js +0 -55
- package/dist/collection/components/vega-breadcrumb/slimmers/controllers/vega-breadcrumb-click-controller.js +0 -43
- package/dist/esm/dom-node-subject-observer-factory-1e456cd4.js +0 -43
- package/dist/esm/internal-icon-manager-7eac52c8.js +0 -53
- package/dist/types/components/vega-breadcrumb/slimmers/controllers/vega-breadcrumb-click-controller.d.ts +0 -26
- package/dist/vega/p-0070e970.entry.js +0 -1
- package/dist/vega/p-0169af6b.entry.js +0 -1
- package/dist/vega/p-03e9cbc8.js +0 -1
- package/dist/vega/p-04341cd4.entry.js +0 -1
- package/dist/vega/p-0664ca9c.js +0 -1
- package/dist/vega/p-074b73f8.js +0 -1
- package/dist/vega/p-08fb66a4.entry.js +0 -1
- package/dist/vega/p-0cf35281.entry.js +0 -1
- package/dist/vega/p-0e75ddb2.entry.js +0 -1
- package/dist/vega/p-13cb5a04.entry.js +0 -1
- package/dist/vega/p-18223240.js +0 -1
- package/dist/vega/p-19ce9ae6.js +0 -1
- package/dist/vega/p-27f922fe.entry.js +0 -1
- package/dist/vega/p-2c7b7dd6.entry.js +0 -1
- package/dist/vega/p-310f9e76.entry.js +0 -1
- package/dist/vega/p-330d7ba8.js +0 -1
- package/dist/vega/p-34fdbe7a.js +0 -1
- package/dist/vega/p-3d6c302d.js +0 -1
- package/dist/vega/p-42563036.entry.js +0 -1
- package/dist/vega/p-441a681b.js +0 -1
- package/dist/vega/p-4a357f30.entry.js +0 -1
- package/dist/vega/p-4e68dfd9.js +0 -1
- package/dist/vega/p-4e8b6eb6.entry.js +0 -1
- package/dist/vega/p-50dd3cf1.js +0 -1
- package/dist/vega/p-518722aa.js +0 -1
- package/dist/vega/p-5422fdc4.entry.js +0 -1
- package/dist/vega/p-5c36a6cb.entry.js +0 -1
- package/dist/vega/p-5d095f9b.entry.js +0 -1
- package/dist/vega/p-68806f9c.entry.js +0 -1
- package/dist/vega/p-6cf490d9.entry.js +0 -1
- package/dist/vega/p-6def20e1.js +0 -1
- package/dist/vega/p-78d3f99b.entry.js +0 -1
- package/dist/vega/p-792715f3.js +0 -1
- package/dist/vega/p-7a201c6e.entry.js +0 -1
- package/dist/vega/p-7c22a1c3.entry.js +0 -1
- package/dist/vega/p-7f329473.entry.js +0 -1
- package/dist/vega/p-80f1b680.js +0 -1
- package/dist/vega/p-82beb586.entry.js +0 -1
- package/dist/vega/p-84eb131b.entry.js +0 -1
- package/dist/vega/p-8c46e116.js +0 -1
- package/dist/vega/p-909820dd.entry.js +0 -1
- package/dist/vega/p-989e141d.entry.js +0 -1
- package/dist/vega/p-a29e5d32.js +0 -1
- package/dist/vega/p-a3942d0b.entry.js +0 -1
- package/dist/vega/p-a66533c1.entry.js +0 -1
- package/dist/vega/p-a9b831d8.entry.js +0 -1
- package/dist/vega/p-b1d0e4cb.entry.js +0 -1
- package/dist/vega/p-b34f9891.entry.js +0 -1
- package/dist/vega/p-b820e42f.entry.js +0 -1
- package/dist/vega/p-c4677b0c.entry.js +0 -1
- package/dist/vega/p-c467fe81.entry.js +0 -1
- package/dist/vega/p-c7762c86.entry.js +0 -1
- package/dist/vega/p-c9e57cf1.entry.js +0 -1
- package/dist/vega/p-d0b3e319.entry.js +0 -1
- package/dist/vega/p-d7b4ffed.entry.js +0 -1
- package/dist/vega/p-e4586f13.entry.js +0 -1
- package/dist/vega/p-e71c4a09.entry.js +0 -1
- package/dist/vega/p-ea66d9f7.entry.js +0 -1
- package/dist/vega/p-ebbaa112.entry.js +0 -1
- package/dist/vega/p-ec6819fe.entry.js +0 -1
- package/dist/vega/p-ec9a8f81.entry.js +0 -1
- package/dist/vega/p-ed01328c.entry.js +0 -1
- package/dist/vega/p-ed798cd4.entry.js +0 -1
- package/dist/vega/p-edb71a72.entry.js +0 -1
- package/dist/vega/p-f08a4adf.js +0 -1
- package/dist/vega/p-f4e23c23.entry.js +0 -1
- package/dist/vega/p-f825e8a2.entry.js +0 -1
- package/dist/vega/p-f9deb43e.entry.js +0 -1
- package/dist/vega/p-fdd930a9.entry.js +0 -1
- package/dist/vega/p-fe52c370.entry.js +0 -1
|
@@ -7,13 +7,32 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { h } from '@stencil/core';
|
|
8
8
|
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
9
|
import { DomNodeSubjectObserverFactory } from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
10
|
-
import { VegaChange } from '../../../../helpers/event-manager/event-id/vega-event-id';
|
|
10
|
+
import { VegaBlur, VegaChange } from '../../../../helpers/event-manager/event-id/vega-event-id';
|
|
11
|
+
import { normalizeNumberByRanger } from '../../../../utils/number';
|
|
11
12
|
export class VegaInputNumericRenderer extends VegaSlimmer {
|
|
12
13
|
constructor() {
|
|
13
14
|
super(...arguments);
|
|
14
15
|
this.onInputChange = (payload) => {
|
|
15
16
|
this.valueController.updateValue(payload.detail);
|
|
16
17
|
};
|
|
18
|
+
this.onInputBlur = (payload) => {
|
|
19
|
+
const vegaInput = payload.host;
|
|
20
|
+
const normalizedValue = vegaInput.value.replace(/,/g, '');
|
|
21
|
+
if (normalizedValue !== '' && !isNaN(normalizedValue)) {
|
|
22
|
+
let inputValue = normalizeNumberByRanger(Number(normalizedValue), this.min, this.max);
|
|
23
|
+
if (this.integerOnly) {
|
|
24
|
+
if (inputValue === this.min) {
|
|
25
|
+
inputValue = Math.ceil(this.min);
|
|
26
|
+
}
|
|
27
|
+
else if (inputValue === this.max) {
|
|
28
|
+
inputValue = Math.floor(this.max);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (inputValue !== Number(normalizedValue)) {
|
|
32
|
+
this.valueController.updateValue(inputValue.toString());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
17
36
|
}
|
|
18
37
|
getInputRef() {
|
|
19
38
|
return this.vegaInputRef.shadowRoot.querySelector('input');
|
|
@@ -31,6 +50,7 @@ export class VegaInputNumericRenderer extends VegaSlimmer {
|
|
|
31
50
|
return (h("vega-input", { value: this.value || '', showClearIcon: this.showClearIcon, disabled: this.disabled, label: this.label, hint: this.hint, required: this.required, type: "number", placeholder: this.placeholder, size: this.size === 'small' ? 'small' : 'default', prefixIcon: this.prefixIcon, ref: (ref) => {
|
|
32
51
|
this.vegaInputRef = ref;
|
|
33
52
|
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, (payload) => this.onInputChange(payload));
|
|
53
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaBlur, (payload) => this.onInputBlur(payload));
|
|
34
54
|
}, maskConfig: {
|
|
35
55
|
type: 'number',
|
|
36
56
|
options: maskOptions,
|
|
@@ -70,6 +90,12 @@ __decorate([
|
|
|
70
90
|
__decorate([
|
|
71
91
|
MapToComponentField()
|
|
72
92
|
], VegaInputNumericRenderer.prototype, "integerOnly", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
MapToComponentField()
|
|
95
|
+
], VegaInputNumericRenderer.prototype, "min", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
MapToComponentField()
|
|
98
|
+
], VegaInputNumericRenderer.prototype, "max", void 0);
|
|
73
99
|
__decorate([
|
|
74
100
|
MapToComponentField()
|
|
75
101
|
], VegaInputNumericRenderer.prototype, "valueController", void 0);
|
|
@@ -17,6 +17,8 @@ import { VegaInputNumericKeyboardController } from './slimmers/controllers/vega-
|
|
|
17
17
|
import { FormFieldControllerSlimmer } from '../../helpers/slimmers/form-field-controller-slimmer';
|
|
18
18
|
import { RequiredFieldRule } from '../../helpers/validator/rules/required-field-rule';
|
|
19
19
|
import { createSubStateNotifySlimmer } from '../../helpers/slimmers/sub-state/sub-state-notify-slimmer';
|
|
20
|
+
import { MinNumberRule } from '../../helpers/validator/rules/min-number-rule';
|
|
21
|
+
import { MaxNumberRule } from '../../helpers/validator/rules/max-number-rule';
|
|
20
22
|
/**
|
|
21
23
|
* @vegaVersion 2.29.0
|
|
22
24
|
*/
|
|
@@ -34,6 +36,14 @@ export class VegaInputNumeric {
|
|
|
34
36
|
propertyName: 'required',
|
|
35
37
|
ruleFactory: (isRequired) => (isRequired ? new RequiredFieldRule() : null),
|
|
36
38
|
},
|
|
39
|
+
{
|
|
40
|
+
propertyName: 'min',
|
|
41
|
+
ruleFactory: (min) => typeof min === 'number' ? new MinNumberRule({ minValue: min }) : null,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
propertyName: 'max',
|
|
45
|
+
ruleFactory: (max) => typeof max === 'number' ? new MaxNumberRule({ maxValue: max }) : null,
|
|
46
|
+
},
|
|
37
47
|
],
|
|
38
48
|
validationRulesName: 'validationRules',
|
|
39
49
|
inputContainerGetter: () => this.renderer.getContainerRef(),
|
|
@@ -138,6 +148,18 @@ export class VegaInputNumeric {
|
|
|
138
148
|
* @vegaVersion 2.53.0
|
|
139
149
|
*/
|
|
140
150
|
this.showClearIcon = true;
|
|
151
|
+
/**
|
|
152
|
+
* Sets the minimum allowable value for the numeric input.
|
|
153
|
+
*
|
|
154
|
+
* @vegaVersion 2.63.0
|
|
155
|
+
*/
|
|
156
|
+
this.min = null;
|
|
157
|
+
/**
|
|
158
|
+
* Sets the maximum allowable value for the numeric input.
|
|
159
|
+
*
|
|
160
|
+
* @vegaVersion 2.63.0
|
|
161
|
+
*/
|
|
162
|
+
this.max = null;
|
|
141
163
|
}
|
|
142
164
|
watchPrefixText() {
|
|
143
165
|
methodPlaceholder();
|
|
@@ -538,6 +560,48 @@ export class VegaInputNumeric {
|
|
|
538
560
|
"attribute": "show-clear-icon",
|
|
539
561
|
"reflect": false,
|
|
540
562
|
"defaultValue": "true"
|
|
563
|
+
},
|
|
564
|
+
"min": {
|
|
565
|
+
"type": "number",
|
|
566
|
+
"mutable": false,
|
|
567
|
+
"complexType": {
|
|
568
|
+
"original": "number | null",
|
|
569
|
+
"resolved": "number",
|
|
570
|
+
"references": {}
|
|
571
|
+
},
|
|
572
|
+
"required": false,
|
|
573
|
+
"optional": false,
|
|
574
|
+
"docs": {
|
|
575
|
+
"tags": [{
|
|
576
|
+
"name": "vegaVersion",
|
|
577
|
+
"text": "2.63.0"
|
|
578
|
+
}],
|
|
579
|
+
"text": "Sets the minimum allowable value for the numeric input."
|
|
580
|
+
},
|
|
581
|
+
"attribute": "min",
|
|
582
|
+
"reflect": true,
|
|
583
|
+
"defaultValue": "null"
|
|
584
|
+
},
|
|
585
|
+
"max": {
|
|
586
|
+
"type": "number",
|
|
587
|
+
"mutable": false,
|
|
588
|
+
"complexType": {
|
|
589
|
+
"original": "number | null",
|
|
590
|
+
"resolved": "number",
|
|
591
|
+
"references": {}
|
|
592
|
+
},
|
|
593
|
+
"required": false,
|
|
594
|
+
"optional": false,
|
|
595
|
+
"docs": {
|
|
596
|
+
"tags": [{
|
|
597
|
+
"name": "vegaVersion",
|
|
598
|
+
"text": "2.63.0"
|
|
599
|
+
}],
|
|
600
|
+
"text": "Sets the maximum allowable value for the numeric input."
|
|
601
|
+
},
|
|
602
|
+
"attribute": "max",
|
|
603
|
+
"reflect": true,
|
|
604
|
+
"defaultValue": "null"
|
|
541
605
|
}
|
|
542
606
|
}; }
|
|
543
607
|
static get states() { return {
|
|
@@ -27,6 +27,13 @@ export class VegaRichTextContent {
|
|
|
27
27
|
* @vegaVersion 2.34.0
|
|
28
28
|
*/
|
|
29
29
|
this.contentEditable = false;
|
|
30
|
+
/**
|
|
31
|
+
* Defines the configuration for rich text content extensions.
|
|
32
|
+
* It enables support for custom nodes, ensuring that extended content is rendered correctly.
|
|
33
|
+
*
|
|
34
|
+
* @vegaVersion 2.62.0
|
|
35
|
+
*/
|
|
36
|
+
this.extensions = [];
|
|
30
37
|
}
|
|
31
38
|
watchValueUpdate() {
|
|
32
39
|
methodPlaceholder();
|
|
@@ -77,6 +84,30 @@ export class VegaRichTextContent {
|
|
|
77
84
|
}],
|
|
78
85
|
"text": "Specifies the text or formatted information displayed by the rich text content, which can be either VegaRTEContent or VegaRTEContentBlock.\nIt is recommended to use the VegaRTEContent type.\nOnly in exceptional cases should the original data in the VegaRTEContentBlock type be used."
|
|
79
86
|
}
|
|
87
|
+
},
|
|
88
|
+
"extensions": {
|
|
89
|
+
"type": "unknown",
|
|
90
|
+
"mutable": false,
|
|
91
|
+
"complexType": {
|
|
92
|
+
"original": "VegaRTEExtension[]",
|
|
93
|
+
"resolved": "VegaRTEExtension[]",
|
|
94
|
+
"references": {
|
|
95
|
+
"VegaRTEExtension": {
|
|
96
|
+
"location": "import",
|
|
97
|
+
"path": "../vega-rich-text-editor/extensions/extension.abstract"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"required": false,
|
|
102
|
+
"optional": false,
|
|
103
|
+
"docs": {
|
|
104
|
+
"tags": [{
|
|
105
|
+
"name": "vegaVersion",
|
|
106
|
+
"text": "2.62.0"
|
|
107
|
+
}],
|
|
108
|
+
"text": "Defines the configuration for rich text content extensions.\nIt enables support for custom nodes, ensuring that extended content is rendered correctly."
|
|
109
|
+
},
|
|
110
|
+
"defaultValue": "[]"
|
|
80
111
|
}
|
|
81
112
|
}; }
|
|
82
113
|
static get states() { return {
|
|
@@ -32,3 +32,13 @@ export const RTE_TEXT_COLORS = [
|
|
|
32
32
|
},
|
|
33
33
|
];
|
|
34
34
|
export const ZERO_WIDTH_SPACE = '\u200b';
|
|
35
|
+
export const VegaRTEPresetToolbarItems = [
|
|
36
|
+
['textStyles'],
|
|
37
|
+
['bold', 'italic', 'underline', 'strikethrough', 'code'],
|
|
38
|
+
['textColor'],
|
|
39
|
+
['horizontalAlignment', 'bulletsNumbers'],
|
|
40
|
+
['moreIndent', 'lessIndent'],
|
|
41
|
+
['link'],
|
|
42
|
+
['image'],
|
|
43
|
+
['clearStyle'],
|
|
44
|
+
];
|
|
@@ -52,5 +52,16 @@ export class ActionHandleStrategyRegistry {
|
|
|
52
52
|
LogUtility.error(`Type ${actionType} action handle strategy is not registered in class ${RTEInstance.constructor.name}`);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if the action type can be handled by strategy for the specific RTE instance.
|
|
57
|
+
*
|
|
58
|
+
* @param {string} actionType - The special action type or the action class name.
|
|
59
|
+
* @param {RTENode | RTEBlock} RTEInstance - The rich text editor node.
|
|
60
|
+
* @returns {boolean} - Whether the action type can be handled by the strategy.
|
|
61
|
+
*/
|
|
62
|
+
static canHandle(actionType, RTEInstance) {
|
|
63
|
+
const strategy = ActionHandleStrategyRegistry.get(actionType, RTEInstance.constructor.name);
|
|
64
|
+
return strategy ? true : false;
|
|
65
|
+
}
|
|
55
66
|
}
|
|
56
67
|
ActionHandleStrategyRegistry.registry = new Map();
|
|
@@ -30,7 +30,8 @@ export class NodeSplitTextStrategy extends ActionHandleStrategy {
|
|
|
30
30
|
if (noTextRangeSelected) {
|
|
31
31
|
return this.insertNewNode(startOffset, target);
|
|
32
32
|
}
|
|
33
|
-
if (this.shouldSplitSelection(selectionRangeAnnotation.range)
|
|
33
|
+
if (this.shouldSplitSelection(selectionRangeAnnotation.range) &&
|
|
34
|
+
target.isContentEditable()) {
|
|
34
35
|
const splittedTextNodes = this.splitTextNode(selectionRangeAnnotation.range, target);
|
|
35
36
|
if (item.annotationMap.has('LINK')) {
|
|
36
37
|
item.apply(new LinkGroupNodeSplitAction(splittedTextNodes));
|
|
@@ -57,10 +58,12 @@ export class NodeSplitTextStrategy extends ActionHandleStrategy {
|
|
|
57
58
|
insertNewNode(startOffset, target) {
|
|
58
59
|
const newNode = target.cloneWithText('');
|
|
59
60
|
this.setApplyTargetNode(newNode);
|
|
60
|
-
|
|
61
|
+
const index = target.parent.children.findIndex((node) => node === target);
|
|
62
|
+
if (startOffset === 0 || (!target.isContentEditable() && startOffset === index)) {
|
|
61
63
|
return [newNode, target];
|
|
62
64
|
}
|
|
63
|
-
if (startOffset === target.text.length
|
|
65
|
+
if (startOffset === target.text.length ||
|
|
66
|
+
(!target.isContentEditable() && startOffset === index + 1)) {
|
|
64
67
|
return [target, newNode];
|
|
65
68
|
}
|
|
66
69
|
const beforeNode = target.cloneWithText(target.text.substring(0, startOffset));
|
|
@@ -57,8 +57,9 @@ export class BlockDeleteTextOrDecoratorNodeStrategy extends BlockDeleteNodeConte
|
|
|
57
57
|
else {
|
|
58
58
|
let previousNode = this.getPreviousNode(startContainerNode);
|
|
59
59
|
let nextNode = null;
|
|
60
|
+
const isCurrentNodeEmpty = startContainerNode.isEmpty();
|
|
60
61
|
if (target.children.length && previousNode && previousNode.parent !== target) {
|
|
61
|
-
if (
|
|
62
|
+
if (isCurrentNodeEmpty) {
|
|
62
63
|
target.apply(new RemoveChildrenAction(startContainerNode));
|
|
63
64
|
}
|
|
64
65
|
if (target.type === previousNode.parent.type) {
|
|
@@ -66,7 +67,7 @@ export class BlockDeleteTextOrDecoratorNodeStrategy extends BlockDeleteNodeConte
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
69
|
-
if (this.isContentFirstNode(startContainerNode) &&
|
|
70
|
+
if (this.isContentFirstNode(startContainerNode) && isCurrentNodeEmpty) {
|
|
70
71
|
nextNode = this.getNextNode(startContainerNode);
|
|
71
72
|
}
|
|
72
73
|
/**
|
|
@@ -76,21 +77,26 @@ export class BlockDeleteTextOrDecoratorNodeStrategy extends BlockDeleteNodeConte
|
|
|
76
77
|
* \n
|
|
77
78
|
* test
|
|
78
79
|
*/
|
|
79
|
-
if (
|
|
80
|
+
if (isCurrentNodeEmpty) {
|
|
80
81
|
target.apply(new RemoveChildrenAction(startContainerNode));
|
|
81
82
|
}
|
|
82
83
|
/**
|
|
83
|
-
* Remove line break
|
|
84
|
+
* Remove line break or non-editable node
|
|
84
85
|
*
|
|
85
86
|
* @example caret at the begin of second line
|
|
86
87
|
* \n
|
|
87
88
|
* test
|
|
89
|
+
* @example caret at the end of non-editable node and start of the text node
|
|
90
|
+
* <img/><span>test</span>
|
|
88
91
|
*/
|
|
89
|
-
if (previousNode &&
|
|
92
|
+
if (previousNode &&
|
|
93
|
+
previousNode.isTextNode() &&
|
|
94
|
+
(previousNode.isEmpty() ||
|
|
95
|
+
(!previousNode.isContentEditable() && previousNode.parent === target))) {
|
|
90
96
|
const shouldRemoveNode = previousNode;
|
|
91
97
|
previousNode = this.getPreviousNode(previousNode);
|
|
92
98
|
shouldRemoveNode.parent.apply(new RemoveChildrenAction(shouldRemoveNode));
|
|
93
|
-
if (!previousNode) {
|
|
99
|
+
if (!previousNode && !isCurrentNodeEmpty) {
|
|
94
100
|
nextNode = startContainerNode;
|
|
95
101
|
}
|
|
96
102
|
}
|
|
@@ -69,8 +69,8 @@ export class CodeBlockRemoveSelfStrategy extends BlockDeleteNodeContentStrategy
|
|
|
69
69
|
* @returns {number} - The number value.
|
|
70
70
|
*/
|
|
71
71
|
getRTENodeEndOffset(node) {
|
|
72
|
-
if (node
|
|
73
|
-
return node
|
|
72
|
+
if (node) {
|
|
73
|
+
return node.getRangeEndOffset();
|
|
74
74
|
}
|
|
75
75
|
return 0;
|
|
76
76
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { InsertChildrenAfterAction } from '../../actions/insert-children-after-block';
|
|
2
|
+
import { InsertChildrenBeforeAction } from '../../actions/insert-children-before-block';
|
|
3
|
+
import { RemoveChildrenAction } from '../../actions/remove-child-action';
|
|
4
|
+
import { UpdateCursorPositionAction } from '../../actions/update-cursor-position-action';
|
|
5
|
+
import { ActionHandleStrategy } from '../action-handle-strategy.abstract';
|
|
6
|
+
/**
|
|
7
|
+
* Insert a new node in nearest position of parent block strategy.
|
|
8
|
+
*/
|
|
9
|
+
export class InsertNodeToNearestRootStrategy extends ActionHandleStrategy {
|
|
10
|
+
/**
|
|
11
|
+
* @inheritDoc
|
|
12
|
+
*/
|
|
13
|
+
handleAction(action, target) {
|
|
14
|
+
const { rteRange, nodeToBeInserted } = action;
|
|
15
|
+
const { startNode, startOffset } = rteRange;
|
|
16
|
+
if (startNode) {
|
|
17
|
+
const parent = target;
|
|
18
|
+
if (startNode.isContentEditable() && startNode.isTextNode()) {
|
|
19
|
+
if (startNode.text === '\n' || !startNode.text || startOffset === 0) {
|
|
20
|
+
parent.apply(new InsertChildrenBeforeAction(startNode, nodeToBeInserted));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const startText = startNode.text.substring(0, startOffset);
|
|
24
|
+
const endText = startNode.text.substring(startOffset);
|
|
25
|
+
const startTextNode = startNode.cloneWithText(startText);
|
|
26
|
+
const endTextNode = startNode.cloneWithText(endText);
|
|
27
|
+
const insertNodes = [startTextNode, nodeToBeInserted];
|
|
28
|
+
if (endText) {
|
|
29
|
+
insertNodes.push(endTextNode);
|
|
30
|
+
}
|
|
31
|
+
parent.apply(new InsertChildrenBeforeAction(startNode, ...insertNodes));
|
|
32
|
+
parent.apply(new RemoveChildrenAction(startNode));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
if (startOffset !== 0) {
|
|
37
|
+
parent.apply(new InsertChildrenAfterAction(startNode, nodeToBeInserted));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
parent.apply(new InsertChildrenBeforeAction(startNode, nodeToBeInserted));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
this.updateCursorPosition(nodeToBeInserted);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Update the cursor position to end of the inserted node.
|
|
48
|
+
*
|
|
49
|
+
* @param {RTENode} node - node to find root content
|
|
50
|
+
*/
|
|
51
|
+
updateCursorPosition(node) {
|
|
52
|
+
const root = this.getRootContent(node.parent);
|
|
53
|
+
if (root) {
|
|
54
|
+
root.apply(new UpdateCursorPositionAction(node));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -11,12 +11,13 @@ export class UpdateCursorPositionStrategy extends ActionHandleStrategy {
|
|
|
11
11
|
* @inheritDoc
|
|
12
12
|
*/
|
|
13
13
|
handleAction(action, target) {
|
|
14
|
-
const { offset, nextFocusNode } = action;
|
|
14
|
+
const { offset, nextFocusNode, immediatelyRun } = action;
|
|
15
15
|
const host = stateEntityRenderingRegistry.getDOMByEntity(target);
|
|
16
16
|
if (host) {
|
|
17
17
|
changeManager.notify(domNodeSubjectFactory.getSubject(host, VegaInternalUpdateRTECursorPosition), {
|
|
18
18
|
node: nextFocusNode,
|
|
19
19
|
offset,
|
|
20
|
+
updateDirectly: immediatelyRun,
|
|
20
21
|
});
|
|
21
22
|
}
|
|
22
23
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ModifyContentAction, ModifyContentActionType } from './modify-content-action.abstract';
|
|
2
|
+
/**
|
|
3
|
+
* Insert a new children to the nearest position of the parent container
|
|
4
|
+
*
|
|
5
|
+
* @example parent.apply(new InsertNodeToNearestRoot(rteRange, nodeToBeInserted))
|
|
6
|
+
*/
|
|
7
|
+
export class InsertNodeToNearestRootAction extends ModifyContentAction {
|
|
8
|
+
constructor(rteRange, nodeToBeInserted) {
|
|
9
|
+
super();
|
|
10
|
+
this.type = ModifyContentActionType.INSERT_NODE_TO_NEAREST_ROOT;
|
|
11
|
+
this.rteRange = rteRange;
|
|
12
|
+
this.nodeToBeInserted = nodeToBeInserted;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -28,6 +28,7 @@ export var ModifyContentActionType;
|
|
|
28
28
|
ModifyContentActionType["DELETE_LINK_GROUP"] = "DELETE_LINK_GROUP";
|
|
29
29
|
ModifyContentActionType["UPDATE_CURSOR_POSITION"] = "UPDATE_CURSOR_POSITION";
|
|
30
30
|
ModifyContentActionType["INSERT_TEXT_TO_DECORATOR_NODE"] = "INSERT_TEXT_TO_DECORATOR_NODE";
|
|
31
|
+
ModifyContentActionType["INSERT_NODE_TO_NEAREST_ROOT"] = "INSERT_NODE_TO_NEAREST_ROOT";
|
|
31
32
|
})(ModifyContentActionType || (ModifyContentActionType = {}));
|
|
32
33
|
/**
|
|
33
34
|
* Abstract class for update node content, delete node, insert node
|
|
@@ -2,7 +2,7 @@ import { ModifyContentAction, ModifyContentActionType } from './modify-content-a
|
|
|
2
2
|
/**
|
|
3
3
|
* Update the cursor position in the editor.
|
|
4
4
|
*
|
|
5
|
-
* @example richEditorRef.value.apply(new UpdateCursorPositionAction(nextFocusNode, [offset]))
|
|
5
|
+
* @example richEditorRef.value.apply(new UpdateCursorPositionAction(nextFocusNode, [offset], [immediatelyRun]))
|
|
6
6
|
*/
|
|
7
7
|
export class UpdateCursorPositionAction extends ModifyContentAction {
|
|
8
8
|
/**
|
|
@@ -10,11 +10,14 @@ export class UpdateCursorPositionAction extends ModifyContentAction {
|
|
|
10
10
|
*
|
|
11
11
|
* @param {RTENode} nextFocusNode - The rich text editor needs focus node.
|
|
12
12
|
* @param {number} offset - The cursor offset position.
|
|
13
|
+
* @param {boolean} immediatelyRun - Whether to immediately set the cursor position after applying it. Usually the set action will trigger after the UI renders.
|
|
13
14
|
*/
|
|
14
|
-
constructor(nextFocusNode, offset) {
|
|
15
|
+
constructor(nextFocusNode, offset, immediatelyRun = false) {
|
|
15
16
|
super();
|
|
16
17
|
this.type = ModifyContentActionType.UPDATE_CURSOR_POSITION;
|
|
18
|
+
this.immediatelyRun = false;
|
|
17
19
|
this.nextFocusNode = nextFocusNode;
|
|
18
20
|
this.offset = offset;
|
|
21
|
+
this.immediatelyRun = immediatelyRun;
|
|
19
22
|
}
|
|
20
23
|
}
|
|
@@ -137,6 +137,18 @@ export class VegaRTEContent {
|
|
|
137
137
|
apply(action) {
|
|
138
138
|
ActionHandleStrategyRegistry.executeTheStrategy(action, this);
|
|
139
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Get the last node in the content.
|
|
142
|
+
*
|
|
143
|
+
* @returns {Nullable<RTENode>} The last node in the content or null if there are no nodes.
|
|
144
|
+
*/
|
|
145
|
+
getLastNode() {
|
|
146
|
+
if (this.children.length === 0) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const lastBlock = this.children[this.children.length - 1];
|
|
150
|
+
return lastBlock.getLastNode();
|
|
151
|
+
}
|
|
140
152
|
/**
|
|
141
153
|
* Convert text to list.
|
|
142
154
|
*
|
|
@@ -31,6 +31,7 @@ import { InlineHtmlAnnotation } from '../annotations/inline-html-annotation';
|
|
|
31
31
|
import { LinkGroupNodeSplitStrategy } from '../action-handle-strategies/modify-content-strategies/link-group-node-split-strategy';
|
|
32
32
|
import { DeleteLinkGroupStrategy } from '../action-handle-strategies/modify-content-strategies/delete-link-group-strategy';
|
|
33
33
|
import { PlainTextAnnotation } from '../annotations/plain-text-annotation';
|
|
34
|
+
import { LinkAnnotationAction } from '../actions/link-annotation-action';
|
|
34
35
|
/**
|
|
35
36
|
* Text node
|
|
36
37
|
*/
|
|
@@ -63,17 +64,29 @@ export class RTETextNode extends RTENode {
|
|
|
63
64
|
const textNode = new RTETextNode(richText.id, richText.text, parentBlock);
|
|
64
65
|
const { annotations } = richText;
|
|
65
66
|
if (annotations) {
|
|
66
|
-
textNode.annotationMap =
|
|
67
|
-
.map((type) => {
|
|
68
|
-
if (type === 'link' && annotations.link && parentBlock) {
|
|
69
|
-
parentBlock.apply(new LinkGroupAnnotationAction(annotations.link.groupKey, [textNode], 'link'));
|
|
70
|
-
}
|
|
71
|
-
return this.createAnnotationEntity(type, annotations[type], options);
|
|
72
|
-
})
|
|
73
|
-
.filter(isNonNullable));
|
|
67
|
+
textNode.annotationMap = this.generateTextAnnotationMap(annotations, options, parentBlock, textNode);
|
|
74
68
|
}
|
|
75
69
|
return textNode;
|
|
76
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Generates a map of text annotations for the given set of annotations.
|
|
73
|
+
*
|
|
74
|
+
* @param {VegaRTETextAnnotations} annotations - The annotations to be converted into a map.
|
|
75
|
+
* @param {VegaRTETransformOptions} options - Optional transformation options.
|
|
76
|
+
* @param {RTETextBlock} parentBlock - The parent text block.
|
|
77
|
+
* @param {RTETextNode} textNode - The text node.
|
|
78
|
+
* @returns {NodeAnnotations} The map of text annotations.
|
|
79
|
+
*/
|
|
80
|
+
static generateTextAnnotationMap(annotations, options, parentBlock, textNode) {
|
|
81
|
+
return new Map(Object.keys(annotations)
|
|
82
|
+
.map((type) => {
|
|
83
|
+
if (type === 'link' && annotations.link && parentBlock && textNode) {
|
|
84
|
+
parentBlock.apply(new LinkGroupAnnotationAction(annotations.link.groupKey, [textNode], 'link'));
|
|
85
|
+
}
|
|
86
|
+
return this.createAnnotationEntity(type, annotations[type], options);
|
|
87
|
+
})
|
|
88
|
+
.filter(isNonNullable));
|
|
89
|
+
}
|
|
77
90
|
/**
|
|
78
91
|
* Creates different types of text annotations based on the provided type and value.
|
|
79
92
|
*
|
|
@@ -200,9 +213,10 @@ export class RTETextNode extends RTENode {
|
|
|
200
213
|
if (this.isContentEditable()) {
|
|
201
214
|
ActionHandleStrategyRegistry.register(ModifyContentActionType.UPDATE_TEXT, dtoClassName, new NodeUpdateTextStrategy());
|
|
202
215
|
ActionHandleStrategyRegistry.register(ModifyContentActionType.REPLACE_SELECTED_TEXT, dtoClassName, new NodeReplaceSelectedTextStrategy());
|
|
203
|
-
ActionHandleStrategyRegistry.register(
|
|
216
|
+
ActionHandleStrategyRegistry.register(ModifyContentActionType.LINK_GROUP_NODE_SPLIT, dtoClassName, new LinkGroupNodeSplitStrategy());
|
|
217
|
+
ActionHandleStrategyRegistry.register(LinkAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
204
218
|
}
|
|
205
|
-
ActionHandleStrategyRegistry.register(
|
|
219
|
+
ActionHandleStrategyRegistry.register(TextSplittableAction.name, dtoClassName, new NodeSplitTextStrategy());
|
|
206
220
|
ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_LINK_GROUP, dtoClassName, new DeleteLinkGroupStrategy());
|
|
207
221
|
ActionHandleStrategyRegistry.register(AnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
208
222
|
RTETextNode.registerActionStrategyStatus[dtoClassName] = true;
|
|
@@ -251,6 +265,18 @@ export class RTETextNode extends RTENode {
|
|
|
251
265
|
if (!(annotation instanceof SelectionRangeAnnotation)) {
|
|
252
266
|
this.syncUpSelectedNodes(node);
|
|
253
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* 1. Try to get the specific strategy for the action and node type first (e.g., LinkAnnotationAction on RTETextNode).
|
|
270
|
+
* 2. If no specific strategy found, try to get the generic NodeUpdateAnnotationMapStrategy for AnnotationAction on RTETextNode.
|
|
271
|
+
*
|
|
272
|
+
* This is useful when we want to check if there is a specific strategy for an action-node combination first, we can use the specific strategy to check if the special toolbar button should be enabled or disabled.
|
|
273
|
+
* TODO: Update the other annotation actions to follow this pattern. https://gethired.atlassian.net/browse/VD-7367
|
|
274
|
+
*/
|
|
275
|
+
const strategy = ActionHandleStrategyRegistry.get(action.constructor.name, node.constructor.name);
|
|
276
|
+
if (strategy) {
|
|
277
|
+
strategy.execute(action, node);
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
254
280
|
const updateAnnotationMapStrategy = ActionHandleStrategyRegistry.get(AnnotationAction.name, RTETextNode.name);
|
|
255
281
|
if (updateAnnotationMapStrategy) {
|
|
256
282
|
updateAnnotationMapStrategy.execute(action, node);
|
|
@@ -8,6 +8,7 @@ import { VegaChange } from '../../../../../helpers/event-manager/event-id/vega-e
|
|
|
8
8
|
import RTETextNodeRenderer from '../nodes/text-node-renderer';
|
|
9
9
|
import { isNonNullable } from '../../../../../types/type-guard';
|
|
10
10
|
import { UnlinkLinkGroupAction } from '../../actions/unlink-link-group-action';
|
|
11
|
+
import RTEDTORendererManager from '../../../../../helpers/rte-manager/dto-renderer-manager';
|
|
11
12
|
/**
|
|
12
13
|
* Renders link nodes and wraps them with link editor or anchor element based on edit mode.
|
|
13
14
|
*/
|
|
@@ -47,11 +48,12 @@ class RTELinkWrapperRenderer {
|
|
|
47
48
|
* @param {RTETextNode[]} nodes - Array of text nodes to render.
|
|
48
49
|
* @param {LinkGroupAnnotation} linkGroupAnnotation - link group annotation
|
|
49
50
|
* @param {RTERenderContext} context - Context containing render options.
|
|
50
|
-
* @returns {
|
|
51
|
+
* @returns {VegaRTERenderResult[]} - Array of rendered HTML elements.
|
|
51
52
|
*/
|
|
52
53
|
render(nodes, linkGroupAnnotation, { editable }) {
|
|
53
54
|
const blockNodes = this.groupNodesByLink(nodes);
|
|
54
|
-
return blockNodes
|
|
55
|
+
return blockNodes
|
|
56
|
+
.flatMap((item) => {
|
|
55
57
|
if (this.isLinkGroup(item)) {
|
|
56
58
|
// TODO: should revert to above code while https://gethired.atlassian.net/browse/VD-6513 have be fixed.
|
|
57
59
|
// const linkAnnotation: LinkAnnotation = item[0].getAnnotationByType<LinkAnnotation>(
|
|
@@ -69,8 +71,12 @@ class RTELinkWrapperRenderer {
|
|
|
69
71
|
? this.renderLinkEditorWrapper(item, linkAnnotation, linkGroupAnnotation)
|
|
70
72
|
: this.renderLink(item, linkAnnotation, linkGroupAnnotation);
|
|
71
73
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
const nodeRenderer = RTEDTORendererManager.getRTERenderer(item.type);
|
|
75
|
+
if (nodeRenderer) {
|
|
76
|
+
return nodeRenderer.render(item, { editable }, h);
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
.filter(isNonNullable);
|
|
74
80
|
}
|
|
75
81
|
groupNodesByLink(nodes) {
|
|
76
82
|
return nodes.reduce((acc, node) => {
|